OSDN Git Service

135fac49569d32f7c27aacf6d4e9b1f9f57ec639
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
2
3         * gcc.c (cc1_options): Pass output file as auxbase when
4         appropriate.
5         * profile.c (init_branch_prob): FILENAME has already had ending
6         stripped.
7         * final.c (end_final): Likewise.
8         * toplev.c (aux_base_name): New global.
9         (compile_file): Pass aux_base_name to init init_branch_prob and
10         end_final.
11         (independent_decode_option, case 'a'): New auxinfo options.
12         (case 'd'): Protect against mising basename.
13         (do_compile): Initialize aux_base_name.
14         * toplev.h (aux_base_name): New global.
15         * doc/invoke.texi: Adjust documentation.
16
17 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
18
19         * config/i386/i386.c (x86_field_alignment): Remove duplicate test
20         of TARGET_ALIGN_DOUBLE.
21
22 2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>
23         
24         * diagnostic.c (inform): New function.
25         * diagnostic.h (inform): Declare.
26         
27 2002-08-03  David Edelsohn  <edelsohn@gnu.org>
28
29         * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
30         (movhi_internal): Same.
31         (movqi_internal): Same.
32         (movdi_internal64): Same.
33
34         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.
35
36         * config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
37         (ASM_OUTPUT_SKIP): Use it.  SIZE unsigned.
38         (COMMON_ASM_OP): Define.
39         (ASM_OUTPUT_ALIGNED_COMMON): Use it.  SIZE unsigned.
40         Use ALIGN parameter.
41         (LOCAL_COMMON_ASM_OP): Define.
42         (ASM_OUTPUT_LOCAL): Use it.  SIZE unsigned.
43
44 2002-08-03  Roger Sayle  <roger@eyesopen.com>
45
46         * builtins.def: Define new builtin functions exp, expf, expl,
47         log, logf and logl (and their __builtin_* variants).
48         * optabs.h (enum optab_index): Add new OTI_exp and OTI_log.
49         Define exp_optab and log_optab.
50         * optabs.c (init_optans): Initialize exp_optab and log_optab.
51         * genopinit.c (optabs): Implement exp_optab and log_optab
52         using exp?f2 and log?f2 patterns.
53         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP*
54         and BUILT_IN_LOG* using exp_optab and log_optab respectively.
55         (expand_builtin): Ignore the new builtins (and all cos and
56         sin variants) when not optimizing.  Expand new builtins via
57         expand_builtin_mathfn when flag_unsafe_math_optimizations.
58
59         * doc/extend.texi: Document new exp and log builtins.
60         * doc/md.texi: Document new exp?f2 and log?f2 patterns
61         (and previously undocumented cos?f2 and sin?f2 patterns).
62
63 2002-08-03  Jason Merrill  <jason@redhat.com>
64
65         * explow.c (int_expr_size): New fn.
66         * expr.c (expand_expr) [CONSTRUCTOR]: Use it.
67         * expr.h: Declare it.
68
69 2002-08-02  Krister Walfridsson  <cato@df.lth.se>
70
71         * Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to
72         gengtype-* dependencies.
73
74 2002-08-02  Eric Christopher  <echristo@redhat.com>
75
76         * config.gcc (mips*-*-linux*): Fix ordering of tm_file.
77         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change
78         #ifndef to #undef.
79         (TARGET_MEM_FUNCTIONS): Define instead of define to 1.
80
81 2002-08-02  David Edelsohn  <edelsohn@gnu.org>
82
83         PR optimize/7067
84         * config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT
85         small if optimizing for size.
86
87 2002-08-02  Daniel Jacobowitz  <drow@mvista.com>
88
89         * configure.in (FORBUILD): Use $build_alias.
90         * configure: Regenerated.
91
92 2002-08-02  Richard Sandiford  <rsandifo@redhat.com>
93
94         * config.gcc: Don't include mips/abi64.h in $tm_file.
95         * hard-reg-set.h (call_really_used_regs): Declare.
96         * config/mips/abi64.h: Remove file.
97         * config/mips/linux.h,
98         * config/mips/iris6.h: Don't include it.
99         * config/mips/mips-protos.h (mips_conditional_register_usage): Declare.
100         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it.
101         (REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING,
102         FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING,
103         FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN):
104         Bring across definitions from abi64.h.
105         (GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS.
106         (BIGGEST_MAX_ARGS_IN_REGISTERS): New.
107         (struct mips_args): Use it.
108         * config/mips/mips.c (mips_conditional_register_usage): Define.
109
110 2002-08-02  Jason Merrill  <jason@redhat.com>
111
112         * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
113         * langhooks.c (lhd_expr_size): Define default.
114         * langhooks.h (struct lang_hooks): Add expr_size.
115         * explow.c (expr_size): Call it.
116         * expr.c (store_expr): Don't copy an expression of size zero.
117         (expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much
118         to store.
119         * Makefile.in (builtins.o): Depend on langhooks.h.
120
121 2002-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
122
123         * Makefile.in (ra-debug.o): Depend on $(TM_P_H).
124         * ra-debug.c: Include "tm_p.h".
125         * ra-rewrite.c (is_partly_live_1): Change return type to bool.
126
127 2002-08-02  Toon Moene  <toon@moene.indiv.nluug.nl>
128
129         * simplify-rtx.c (simplify_binary_operation): x * 1 is allowed
130         when not honoring signalling NaNs.
131         (simplify_ternary_operation): a == b has a definite value
132         when not honoring NaNs.
133
134 2002-08-02  Jason Merrill  <jason@redhat.com>
135
136         * gdbinit.in (pct): New macro.
137
138 2002-08-01  Stan Shebs  <shebs@apple.com>
139             Andreas Tobler  <toa@pop.agri.ch>
140
141         * ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined,
142         plays nice with Darwin headers.
143         (_BSD_RUNE_T_DEFINED_): Likewise.
144
145 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
146
147         * c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
148         * cppinit.c (cpp_post_options): Likewise.
149
150         * cppexp.c (cpp_classify_number): Suppress -Wtraditional
151         warning about 'LL' suffix (but not 'ULL' etc) when
152         -Wno-long-long is in effect.
153
154         * cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
155         Check for failing time()/localtime(), issue a warning, and
156         make __TIME__ and __DATE__ expand to fallback strings.
157
158         * doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
159         and __TIME__ when the date and time cannot be determined.
160
161 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
162
163         * config/rs6000/rs6000.c (output_cbranch): Hint differently for power4.
164
165 2002-08-01  Daniel Jacobowitz  <drow@mvista.com>
166
167         * Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H).
168
169 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
170
171         * config.gcc (mipsisa64sb1-*-elf*): New configuration.
172         (mipsisa64sb1el-*-elf*): Likewise.
173         * config/mips/mips.c (mips_cpu_info_table): Add sb1.
174         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1.
175         (TARGET_SB1, TUNE_SB1): New macros.
176         * doc/invoke.texi: Add sb1 to documentation for MIPS -march and
177         -mtune flags.
178
179 2002-08-01  David Edelsohn  <edelsohn@gnu.org>
180
181         * varasm.c (asm_emit_uninitialized): Return false if global BSS
182         and ASM_EMIT_BSS not supported by target.
183         (assemble_variable): Do not duplicate uninitialized logic.
184         Fall through if asm_emit_uninitialized failed.
185
186 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
187
188         * config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro.
189
190 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
191
192         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
193         (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.
194
195         * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when
196         HOST_BITS_PER_WIDE_INT == 64.
197
198 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
199
200         * df.c (df_insn_table_realloc): Change parameter to unsigned.
201         * optabs.c (expand_binop): Make variable unsigned.
202         * simplify-rtx.c (simplify_subreg): Likewise.
203         * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings.
204
205 2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
206
207         * c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.
208
209 2002-08-01  Richard Henderson  <rth@redhat.com>
210
211         * toplev.c (parse_options_and_default_flags): Don't set
212         flag_reorder_blocks for -Os.
213
214         * config/avr/avr.c (avr_optimization_options): Remove.
215         * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
216         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
217         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.
218
219 2002-08-01  H.J. Lu <hjl@gnu.org>
220             Richard Henderson  <rth@redhat.com>
221
222         * output.h (DECL_READONLY_SECTION): Remove.
223         (decl_readonly_section): Declare.
224         * varasm.c (decl_readonly_section): New.
225         (default_section_type_flags, default_select_section): Use it.
226         * config/arm/pe.c (arm_pe_unique_section): Likewise.
227         * config/i386/interix.c (i386_pe_unique_section): Likewise.
228         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
229         * config/mcore/mcore.c (mcore_unique_section): Likewise.
230         * config/mips/mips.c (mips_unique_section): Likewise.
231
232 2002-08-01  Richard Henderson  <rth@redhat.com>
233
234         * integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it
235         refers to a subroutine parameter.
236
237 2002-08-01  Jakub Jelinek  <jakub@redhat.com>
238
239         * varasm.c (assemble_visibility): Strip name encoding.
240
241 2002-08-01  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
242
243         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch.
244         (RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0
245         when there is no frame pointer.
246         (INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp
247         registers properly.
248         * config/ns32k/__unorddf2.c: New file.
249         * config/ns32k/__unordsf2.c: New file.
250         * config/ns32k/t-ns32k: New file.
251         * config.gcc (ns32k-*-netbsd*): Use it.
252
253 2002-08-01  Aldy Hernandez  <aldyh@redhat.com>
254
255         * config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff.
256
257 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
258
259         * c-common.c (__GXX_ABI_VERSION): Correct spelling.
260
261 2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>
262
263         * c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.
264
265 2002-08-01  Richard Sandiford  <rsandifo@redhat.com>
266
267         * config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions.
268
269 2002-08-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
270
271         * gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
272         n_sets): Removed.
273         (expr_hash_table, set_hash_table): Type changed to ...
274         (struct hash_table): New type.
275         (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
276         insert_expr_in_table, insert_set_in_table, compute_hash_table,
277         dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
278         compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
279         (alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
280         (alloc_hash_table): New.
281         (free_set_hash_table, free_expr_hash_table): Merged to ...
282         (free_hash_table): New.
283         (compute_set_hash_table, compute_expr_hash_table): Merged to ...
284         (compute_hash_table_work): New.
285         (classic_gcse, one_classic_gcse_pass, compute_cprop_data,
286         find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
287         pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
288         one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
289         hoist_code, one_code_hoisting_pass,
290         trim_ld_motion_mems): Altered due to changed type of hash tables.
291
292 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
293
294         * final.c (output_alternate_entry_point):
295         If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it.
296
297 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
298
299         * objc/objc-act.c (encode_complete_bitfield): Add prototype and
300         avoid ISO C style function definition.
301
302         * expr.c (expand_assignment): Delete unused variable.
303
304 2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>
305
306         * c-common.c (cb_register_builtins): Set
307         __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
308         is given, and to 0 otherwise.
309         * combine.c (simplify_if_then_else): HONOR_NANS
310         implies FLOAT_MODE_P.
311
312 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
313
314         * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
315         (cpp_handle_option): Don't handle it.
316         (print_help): Update.
317         * doc/cppopts.texi: Update.
318
319 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
320
321         * c-common.c (cb_register_builtins): If C++, define
322         __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
323         * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
324 cp:
325         * lang-specs.h: Simplify in accordance with new code in
326         c-common.c.
327
328 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
329
330         * c-common.c: Define all C/ObjC/C++ warning and flag variables.
331         * c-common.h: Declare all C/ObjC/C++ warning and flag variables.
332         * c-decl.c: Move all warning and flag variables to c-common.c.
333         * c-format.c: Move all warning variables to c-common.c.
334         * c-tree.h: Move all warning and flag declarations to c-common.h.
335         * objc/objc-act.c: Move all warning variables to c-common.c.
336         (flag_warn_protocol): Rename warn_protocol.
337
338 2002-07-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
339
340         * pa-linux.h (GLOBAL_ASM_OP): Fix typo.
341
342 2002-07-31  Graham Stott  <grahams@btinternet.com>
343
344         * config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing
345         .section prefix.
346
347 2002-07-31  Stan Shebs  <shebs@apple.com>
348
349         * config.gcc (i[34567]86-*-darwin*): New configuration.
350         * config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before
351         defining.
352         (TARGET_ENCODE_SECTION_INFO): Ditto.
353         (ASM_PREFERRED_EH_DATA_FORMAT): Ditto.
354         * config/darwin.c (machopic_indirect_data_reference): Remove
355         setting of RTX_UNCHANGING_P.
356         (machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as
357         not to be applied to sums.
358         * config/i386/t-darwin: New file.
359         * config/i386/darwin.h: New file.
360         * config/i386/i386.h (TARGET_MACHO): Add default definition.
361         * config/i386/i386.md (tablejump): Add TARGET_MACHO case.
362         * config/i386/i386.c (output_set_got): For Mach-O, output Mach-O
363         label and not the GOT add.
364         (constant_address_p): For Mach-O, seeing a CONST is enough.
365         (legitimate_pic_address_disp_p): Add a Mach-O case.
366         (legitimate_address_p): Also test machopic_operand_p if Mach-O.
367         (legitimize_pic_address): Use generic Mach-O code to legitimize.
368         (output_pic_addr_const): Suppress @PLT if Mach-O, and parens
369         if outputting a difference.
370         (ix86_output_addr_diff_elt): Add Mach-O case.
371         (ix86_expand_move): Similarly.
372         (ix86_expand_call): Similarly.
373         (current_machopic_label_num): New global.
374         (machopic_output_stub): New function.
375         (ix86_value_regno): New function.
376         (ix86_function_value): Use it instead of VALUE_REGNO.
377         (ix86_libcall_value): Ditto.
378         * config/i386/unix.h (VALUE_REGNO): Remove.
379
380 2002-07-31  Graham Stott  <grahas@btinternet.com>
381
382         * config/rs6000/rs6000.c(rs6000_hash_constant): Fix
383         hash for LABEL_REF's.
384
385 2002-07-31  Graham Stott  <grahams@btinternet.com>
386
387         * config/rs6000/rs6000.c (spe_init_builtins,
388         altivec_init_builtins, rs6000_common_init_builtins):
389         Replace ANSI with K&R function def.
390
391 2002-07-31  David Edelsohn  <edelsohn@gnu.org>
392
393         * rs6000.c (validate_condition_mode): Test flag_finite_math_only
394         for CCFPmode.
395
396 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
397
398         * config/mips/crtn.asm: Don't use __mips16 to determine the
399         return-address offset.  Define RA to a suitable temporary
400         register for the return address.
401
402 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
403
404         * config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
405         constraints to 'd'.
406
407 2002-07-30  Chris Demetriou  <cgd@broadcom.com>
408
409         * config/mips/elf.h (STARTFILE_SPEC): Define differently if
410         default ABI is MEABI.  (Undoes incorrect change in Eric Christopher's
411         patch on 2002-07-29.)
412         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
413
414 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
415
416         * alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h,
417         fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h,
418         ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h,
419         openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h,
420         s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h:
421         (ASM_GLOBALIZE_LABEL): Delete.
422         (GLOBAL_ASM_OP): Define.
423
424         * m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete.
425
426         * defaults.h (ASM_GLOBALIZE_LABEL): Provide a default.
427         * doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs.
428
429 2002-07-30  Geoffrey Keating  <geoffk@redhat.com>
430
431         * doc/extend.texi (Hints implementation): Document that GCC
432         mostly ignores `register'.
433
434 2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>
435
436         * flags.h: Declare flag_finite_math_only.
437         Use it in definition of HONOR_NANS and
438         HONOR_INFINITIES.
439         * c-common.c (cb_register_builtins): Emit
440         __FINITE_MATH_ONLY__ when flag_finite_math_only
441         is set.
442         * combine.c (simplify_if_then_else): If
443         flag_finite_math_only is set, a == b has a
444         definite value.
445         * toplev.c: Initialize flag_finite_math_only.
446         (set_flags_fast_math): Set it on -ffast-math.
447         (flag_fast_math_set_p): Test it.
448         * doc/invoke.texi: Document -ffinite-math-only.
449
450 2002-07-30  Richard Henderson  <rth@redhat.com>
451
452         * ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p.
453         (noce_process_if_block): Likewise.
454
455 2002-07-30  Bernd Schmidt  <bernds@redhat.com>
456
457         * ifcvt.c (cond_exec_process_if_block): Fix a merging error.
458         Bail out early if false_expr is NULL and we'd crash due to this.
459         * genemit.c (gen_expand): Recognize return insns even if the return
460         appears in a parallel.
461         * libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined.
462         * config/fp-bit.c: Likewise.
463         * doc/tm.texi: Document it.
464
465 2002-07-30  David Edelsohn  <edelsohn@gnu.org>
466             Zack Weinberg  <zack@codesourcery.com>
467
468         * rs6000.c (rs6000_expand_unop_builtin): Check icode not
469         CODE_FOR_nothing.  Change switch to if.
470         (rs6000_expand_binop_builtin): Same.
471         (rs6000_expand_builtin): Expand builtin if target support enabled.
472         (rs6000_init_builtins): Init builtin if target support enabled.
473         (rs6000_common_init_builtins): Check icode not CODE_FOR_nothing.
474
475 2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
476
477         * gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101.
478
479 2002-07-30  Richard Sandiford  <rsandifo@redhat.com>
480
481         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.
482
483 Tue Jul 30 18:31:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
484
485         * sh.md (cond_delay_slot): New attribute.
486         (cbranch delay): Use it for anulled-true case.
487         (stuff_delay_slot): New pattern.
488         * sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length
489         delay slot insn.
490         (gen_far_branch): Emit stuff_delay_slot pattern.
491
492 Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
493
494         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
495
496 2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>
497
498         * fold-const.c: Fix comment typos.
499         * gcse.c: Likewise.
500         * reload1.c: Likewise.
501
502 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
503
504         * config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot
505         for TARGET_SPE.
506
507 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
508
509         * c-pretty-print.h (pp_c_statement): Declare.
510         * c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC.
511         (pp_c_statement): Define.
512
513 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
514
515         * alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h,
516         darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h,
517         ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h,
518         mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h,
519         rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h,
520         v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition.
521
522         * defaults.h (ASM_OUTPUT_LABEL): Provide a default.
523         * doc/tm.texi (ASM_OUTPUT_LABEL): Update docs.
524
525 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
526
527         * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
528         (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
529         COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
530         (pp_c_expression): Update.
531
532 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
533
534         * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
535         concat in lieu of xmalloc/strcpy/memcpy/sprintf.
536         * alpha/vms-ld.c (main): Likewise.
537         * dsp16xx.c (double_reg_to_memory): Likewise.
538         * mcore.c (mcore_expand_prolog): Likewise.
539         * cppfiles.c (read_name_map): Likewise.
540         * gensupport.c (process_rtx, identify_predicable_attribute,
541         alter_test_for_insn): Likewise.
542         * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.
543
544 2002-07-29  Roger Sayle  <roger@eyesopen.com>
545
546         * builtins.c (expand_builtin):  Change the default behavior to
547         only issue an error if the builtin function doesn't have a
548         fallback library call.  Remove several cases handled by the
549         new default.
550
551 2002-07-29  John David Anglin  <dave@hiauly1.hia.nrc>
552
553         * real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the
554         floating point format of the target is IEEE.
555         * (dec_f, dec_d, dec_g, dec_h): Define only if the floating point
556         format of the target is DEC.
557
558 2002-07-29  Richard Henderson  <rth@redhat.com>
559
560         * unroll.c (verify_addresses): Remove.
561         (find_splittable_givs): Never split DEST_ADDR givs.
562
563 2002-07-29  Geoffrey Keating  <geoffk@redhat.com>
564
565         * doc/gty.texi (GGC Roots): Clarify that the list of syntaxes
566         is exhaustive.
567         (Files): Improve documentation on generated source files.
568
569         * doc/extend.texi (Translation implementation): Document what
570         diagnostics look like.
571         (Identifiers implementation): Document that there's normally no
572         limit on identifier names.
573         (Integers implementation): Document two's complement.
574         (Hints implementation): Document that GCC honours 'inline', mostly.
575         (Preprocessing directives implementation): Document that GCC
576         requires the current time.
577
578 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
579
580         * c-pretty-print.h (struct c_pretty_print_info): Add new member.
581         (pp_initializer): New macro.
582         (pp_c_initializer): Declare.
583         * c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR.
584         (pp_c_initializer): Define.
585         (pp_c_initializer_list): New function.
586         (pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST,
587         VECTOR_CST, CONSTRUCTOR.
588         (pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR,
589         IMAGPART_EXPR.
590         (pp_c_cast_expression): Handle FLOAT_EXPR.
591         (pp_c_assignment_expression): Handle INIT_EXPR.
592         (pp_c_expression): Update.
593
594 2002-07-30  Neil Booth  <neil@daikokuya.co.uk>
595
596         * objc/objc-act.c (objc_init): Return immediately if filename
597         is NULL.
598
599 2002-07-29  Eric Christopher  <echristo@redhat.com>
600
601         * config/mips/elf.h: Remove ecoff.h and gofast includes.
602         (DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally.
603         (SDB_DEBUGGING_INFO): Undefine.
604         (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
605         (PUT_SDB_SIZE): Remove.
606         (SUBTARGET_ASM_DEBUGGING_SPEC): Redefine.
607         (STARTFILE_SPEC): Add isa3264 define.
608         * config/mips/elf64.h: Ditto.  Move TARGET_MEM_FUNCTIONS from here...
609         * config/mips/ecoff.h: Remove. and here...
610         * config/mips/iris3.h: and here...
611         * config/mips/sni-svr4.h: and here...
612         * config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs.
613         Add assembler -mmdebug options for non-dwarf debugging.
614         * config/mips/r3900.h: Remove debug info defines.
615         * config/mips/isa32-linux.h: Remove, move functionality to config.gcc.
616         * config/mips/isa3264.h: Ditto.
617         * config/mips/t-isa3264: Fix up for file removal and gofast configure
618         change.
619         * config/mips/t-elf: Ditto.
620         * config/mips/t-ecoff: Ditto.
621         * config/mips/t-r3900: Ditto.
622         * config/mips/t-iris5-6: Ditto.
623         * config/mips/t-isa3264: Ditto.
624         * config/mips/t-linux: Remove.
625         * config/mips/t-netbsd: Remove.
626         * config/mips/t-mips: New file.
627         * config/mips/t-gofast: Ditto.
628         * config/mips/netbsd.h: Remove unnecessary undefines.
629         * config/mips/linux.h: Remove #include of mips.h.
630         * config.gcc: Add mips.h include for elf targets. Remove tm_file
631         for ecoff. Add gofast configure option for mips.
632
633 2002-07-29  Chris Demetriou  <cgd@broadcom.com>
634
635         * configure.in (mips*-*-*): Add a test to see if MIPS libgloss
636         linker scripts use STARTUP directives consistently.
637         * configure: Regenerate.
638         * config.in: Regenerate.
639         * config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based
640         on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined.
641         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
642         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if
643         HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result
644         will be the same.
645
646 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
647
648         * config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute.
649
650 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
651
652         * config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540.
653
654 2002-07-29  Aldy Hernandez  <aldy@quesejoda.com>
655
656         * config/rs6000/rs6000.md: Move altivec patterns from here...
657
658         * config/rs6000/altivec.md: ...to here.
659
660 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
661
662         * config/rs6000/spe.md ("spe_evmra"): Change to unspec.
663
664 2002-07-29  Richard Henderson  <rth@redhat.com>
665
666         * emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
667         set_mem_attributes and add BITPOS argument.  Subtract it from
668         OFFSET when same is adjusted.
669         (set_mem_attributes): New wrapper function.
670         * expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
671         remove offset adjustment hack.
672         * expr.h (set_mem_attributes_minus_bitpos): Declare.
673
674 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
675
676         * Makefile.in (C_OBJS): Include c-pretty-print.o
677         (c-pretty-print.o): Add depency rule.
678         * pretty-print.h: Add more macros.
679         * c-pretty-print.c: New file.
680         * c-pretty-print.h: Likewise.
681
682 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
683
684         * config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
685         constants to __ev64_s32__.
686         (__internal_ev_mwhgsmian): Same.
687         (__internal_ev_mwhgsmfan): Same.
688         (__internal_ev_mwhgssfan): Same.
689         (__internal_ev_mwhgumiaa): Same.
690         (__internal_ev_mwhgsmiaa): Same.
691         (__internal_ev_mwhgsmfaa): Same.
692         (__internal_ev_mwhgssfaa): Same.
693
694 2002-07-29  David Edelsohn  <edelsohn@gnu.org>
695
696         * varasm.c (assemble_variable): Narrow test for uninitialized
697         without BSS target support.
698
699 2002-07-29  Nathan Sidwell  <nathan@codesourcery.com>
700
701         * profile.c: Add file comment describing the overall algorithm and
702         structures.
703         (struct edge_info): Add comments.
704         (struct bb_info): Add comments.
705         * basic-block.h (EDGE_*): Add comments.
706         * doc/gcov.texi (Gcov Data Files): Document bit flags.
707
708 2002-07-29  Bob Wilson  <bob.wilson@acm.org>
709
710         * config/xtensa/elf.h, config/xtensa/linux.h
711         (TARGET_OS_CPP_BUILTINS): Define.
712         (CPP_PREDEFINES): Remove.
713         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define.
714         (CPP_SPEC): Remove.
715
716 2002-07-29  Zack Weinberg  <zack@codesourcery.com>
717
718         * gensupport.c: Include hashtab.h.
719         (insn_elision, condition_table, hash_c_test, cmp_c_test,
720         maybe_eval_c_test): New routines and data structures to
721         support insn elision.
722         (init_md_reader): Read and initialize the condition_table.
723         (read_md_rtx): Discard insn patterns whose C test is provably
724         always false.
725         * gensupport.h: Declare new functions and data structures.
726
727         * genconditions.c, dummy-conditions.c: New files.
728         * Makefile.in: Build genconditions; run it to construct
729         insn-conditions.c; build that and link it into most gen*
730         programs.
731         (HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables.
732         (GEN): Delete, unused.
733         (STAGESTUFF): Update.
734
735         * gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to
736         CODE_FOR_nothing for all elided patterns.
737         (main): Tweaked to support this.
738         * genflags.c (gen_proto): Emit a static inline generator
739         function here for all elided patterns, which simply returns
740         NULL_RTX.
741         (gen_insn): Do not define HAVE_xxx for elided patterns.
742         (main): Tweaked to support this.  No need to forward-declare
743         struct rtx_def.
744         * genrecog.c: Do not bother emitting the C test if it's known
745         to be true at compile time.
746
747 2002-07-29  Mike Stump  <mrs@apple.com>
748
749         * config.gcc (target_gtfiles): Initialize, as otherwise cross
750         compilers hosted on powerpc-apple-darwin6.0 won't even build.
751
752 2002-07-29  Richard Earnshaw  <rearnsha@arm.com>
753
754         * arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
755         remove clobber of LR.
756         (sibcall_insn, sibcall_value_insn): Update accordingly.
757         (sibcall_epilogue): Remove debugging comment from assembler stream.
758
759 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
760
761         * pretty-print.h: Define more macros.
762         * diagnostic.h (output_formatted_integer): Moved from...
763         * diagnostic.c: ... here.
764
765 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
766
767         * stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF.
768
769 2002-07-28  Zack Weinberg  <zack@codesourcery.com>
770
771         * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
772         arguments.  Always use ".-symbol" as expression argument.
773         * doc/tm.texi: Update to match.  Document requirement for
774         ".size symbol, .-symbol" to be acceptable to assembler.
775
776         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
777         config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
778         config/i386/freebsd-aout.h, config/i386/sco5.h,
779         config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
780         config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.
781
782 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
783
784         * Makefile.in (gengtype-lex.c): Fix error in last change.
785
786         * alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing
787         backslash.
788
789         * Makefile.in (vmsdbgout.o): Depend on function.h.
790
791         * vmsdbgout.c: Include function.h.
792
793 2002-07-28  Alan Modra  <amodra@bigpond.net.au>
794
795         * prefix.c (update_path): Don't strip single `.' path components
796         unless stripping a later `..' component.  Exit loop as soon as
797         a valid path is found.
798
799 2002-07-27  Roger Sayle  <roger@eyesopen.com>
800
801         * builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
802         argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
803         BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
804         floating point unordered comparisons (e.g. __builtin_isgreater)
805         as const, and leave the remaining GCC_BUILTINs unchanged.
806
807         * c-decl.c (builtin_function): No need to explicitly mark
808         BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
809
810 2002-07-27  Roger Sayle  <roger@eyesopen.com>
811
812         * Makefile.in: rtlanal.o now depends upon real.h.
813
814         * flags.h [flag_signaling_nans]: New flag.
815         [HONOR_SNANS]: New macro.
816
817         * toplev.c [flag_signaling_nans]: Initialize to false.
818         (f_options): Add processing for "-fsignaling-nans".
819         (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
820         (process_options): flag_signaling_nans implies flag_trapping_math.
821
822         * c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
823         when -fsignaling-nans.  First step to implementing WG14's N965.
824
825         * fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
826         1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
827         [RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.
828
829         * simplify-rtx.c (simplify_relational_operation): Conditionalize
830         transforming abs(x) < 0.0 into false on !HONOR_SNANS.
831
832         * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
833         required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
834         UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
835         -fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
836         not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).
837
838         * doc/invoke.texi: Document new -fsignaling-nans compiler option.
839
840 2002-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
841
842         * Makefile.in (gengtype-lex.c): Work around a bug in flex.
843         * gengtype-lex.l (YY_USE_PROTOS): Undef.
844         (YY_DECL): Define.
845
846 2002-07-27  Roger Sayle  <roger@eyesopen.com>
847
848         * doc/invoke.texi: Document that both -fno-builtin-foo and
849         -fno-builtin are supported by the g++ front-end.
850
851 2002-07-27  Stan Shebs  <shebs@apple.com>
852
853         * configure.in: Rename config_gtfiles to target_gtfiles.
854         * configure: Regenerate.
855         * doc/gty.texi: Update reference.
856         * config.gcc (powerpc-*-darwin*): Set target_gtfiles
857         instead of appending to it.
858
859 2002-07-25  Aldy Hernandez  <aldyh@redhat.com>
860
861         * config/rs6000/rs6000.c (function_arg_advance): SPE vararg
862         vectors are split into two registers.
863         (function_arg): Same.
864
865 Thu Jul 26 23:00:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
866
867         * pa.md (extv): Check predicates before emitting extv_32.
868
869 2002-07-27  Alan Modra  <amodra@bigpond.net.au>
870
871         * config/rs6000/rs6000.c (rs6000_traceback_name): New var.
872         (rs6000_traceback): New var.
873         (rs6000_override_options): Set rs6000_traceback.
874         (rs6000_output_function_epilogue): Implement traceback options.
875         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
876         (rs6000_traceback_name): Declare.
877
878         * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
879         label reference when NO_PROFILE_COUNTERS.
880
881 2002-07-26  Jason Merrill  <jason@redhat.com>
882
883         * function.c (assign_parms): Handle frontend-directed pass by
884         invisible reference.
885
886 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
887
888         * doc/cppopts.texi: Update.
889
890 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
891
892         * cppmacro.c (_cpp_create_definition): Don't attempt redefinition
893         warnings on assertions.
894
895 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
896
897         * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
898         RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
899         RID_COMPL): Remove.
900         * c-parse.in (rid_to_yy): Similarly.
901
902 2002-07-26  Jason Merrill  <jason@redhat.com>
903
904         * c-dump.c: Resurrect.
905         * tree-dump.c: Move C-specific stuff to c-dump.c.
906         * c-common.h: Declare c_dump_tree.
907         * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
908         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
909         (c-dump.o): New rule.
910
911 2002-07-26  Alan Modra  <amodra@bigpond.net.au>
912
913         * config/rs6000/rs6000.md: Enable patterns using rlwinm for
914         PowerPC64.  Replace "T" and "S" constraints with "n" when the
915         predicate will do.  Formatting fixes.
916         (extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
917         as for extzvsi_internal1.
918
919 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
920
921         * dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
922         DERIV_END_LABEL_FMT): Remove.
923         (SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.
924
925 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
926
927         * objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
928         Remove.
929
930 2002-07-25  Stan Shebs  <shebs@apple.com>
931
932         * config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
933         local var dwarfp.
934         (output_compiler_stub): Remove unused locals.
935         (output_call): Always initialize line number.
936
937 Thu Jul 25 20:34:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
938
939         * sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
940         * sh.md (truncdiqi2, movqi_media): Likewise.
941
942 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
943
944         * gcse.c (obstack_chunk_alloc): Remove.
945         (gcse_alloc): Fix to count allocated bytes.
946         * collect2.c (SYMBOL__MAIN): Remove.
947
948 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
949
950         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
951         HAVE_TARGET_EXECUTABLE_SUFFIX.
952
953 Thu Jul 25 18:57:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
954
955         * rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
956         SIZE, EXPR and OFFSET.
957
958 2002-07-25  Richard Henderson  <rth@redhat.com>
959
960         * emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
961         in ARRAY_REF of DECL_P case.
962
963 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
964
965         * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
966         description.  Document -mips32, -mips64, and the associated -march
967         values.  Describe the "mipsN" arguments to -march.  Say that the
968         -mipsN options are equivalent to -march.  Reword the description
969         of default type sizes.
970         * toplev.h (target_flags_explicit): Declare.
971         * toplev.c (target_flags_explicit): New var.
972         (set_target_switch): Update target_flags_explicit.
973         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
974         * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
975         * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
976         * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
977         * config/mips/mips.h (mips_cpu_info): New struct.
978         (mips_cpu_string, mips_explicit_type_size_string): Remove.
979         (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
980         (MIPS_CPP_SET_PROCESSOR): New macro.
981         (TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
982         Define _MIPS_ARCH and _MIPS_TUNE.
983         (MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
984         (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
985         MIPS_ISA_DEFAULT were already defined.
986         (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
987         (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
988         (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
989         (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
990         (ABI_GAS_ASM_SPEC): Remove.
991         (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
992         (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
993         Invoke %(asm_abi_default_spec) if no ABI was specified.
994         (CC1_SPEC): Remove ISA -> register-size rules.
995         (EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
996         * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
997         (mips_cpu_string, mips_explicit_type_size_string): Remove.
998         (mips_cpu_info_table): New array.
999         (mips_set_architecture, mips_set_tune): New fns.
1000         (override_options): Rework to make -mipsN equivalent to -march.
1001         Detect more erroneous cases, including those removed from CC1_SPEC.
1002         Don't change the ABI based on architecture, or vice versa.
1003         Unify logic with GAS.
1004         (mips_asm_file_start): Get architecture name from mips_arch_info.
1005         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
1006         (mips_parse_cpu): Take the name of the option as argument.  Handle
1007         'from-abi'.  Raise an error if the option is wrong.
1008         (mips_cpu_info_from_isa): New fn.
1009
1010 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
1011
1012         * config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
1013         (tablejump_mips162): Likewise.
1014
1015 Thu Jul 25 10:23:41 2002  J"orn Rennecke <joern.rennecke@superh.com>
1016
1017         * simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
1018         int_mode_for_mode.
1019
1020 2002-07-25  Gabriel Dos Reis  <gdr@nerim.net>
1021
1022         * c-common.c (c_sizeof_or_alignof_type): Take a third argument for
1023         complaining.
1024         * c-common.h (c_sizeof): Adjust definition.
1025         (c_alignof): Likewise.
1026         * c-tree.h (c_sizeof_nowarn): Now macro.
1027         * c-typeck.c (c_sizeof_nowarn): Remove definition.
1028
1029 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
1030
1031         * c-decl.c (c_decode_option): No need to handle switches
1032         cpplib handles.
1033
1034 2002-07-24  Zack Weinberg  <zack@codesourcery.com>
1035
1036         * defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
1037         ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
1038         * doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
1039         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
1040
1041         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
1042         config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
1043         config/cris/aout.h, config/i386/freebsd-aout.h,
1044         config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
1045         config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
1046         config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
1047         config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
1048         config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
1049         config/xtensa/elf.h, config/xtensa/linux.h:
1050         Use the new macros.
1051         Where possible, remove redundant definitions of SIZE_ASM_OP,
1052         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
1053
1054 2002-07-24  Aldy Hernandez  <aldyh@redhat.com>
1055
1056         * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
1057         TARGET_ISEL, and TARGET_FPRS.
1058
1059         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1060         -mabi=spe, -mabi=no-spe, and -misel=.
1061
1062         * config/rs6000/rs6000-protos.h: Add output_isel.
1063         Move vrsave_operation prototype here.
1064
1065         * config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
1066         (smaxsi3): Same.
1067         (uminsi3): Same.
1068         (umaxsi3): Same.
1069         (abssi2_nopower): Disallow when TARGET_ISEL.
1070         (*ne0): Same.
1071         (negsf2): Change to expand and rename old pattern to *negsf2.
1072         (abssf2): Change to expand and rename old pattern to *abssf2.
1073
1074         New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
1075         fixunssfsi2.
1076
1077         Change patterns that check for TARGET_HARD_FLOAT or
1078         TARGET_SOFT_FLOAT to also check TARGET_FPRS.
1079
1080         * config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
1081         rs6000_isel, rs6000_fprs, rs6000_isel_string.
1082         (rs6000_override_options): Add 8540 case to
1083         processor_target_table.
1084         Set rs6000_isel for the 8540.
1085         Call rs6000_parse_isel_option.
1086         (enable_mask_for_builtins): New.
1087         (rs6000_parse_isel_option): New.
1088         (rs6000_parse_abi_options): Add spe and no-spe.
1089         (easy_fp_constant): Treat !TARGET_FPRS as soft-float.
1090         (rs6000_legitimize_address): Check for TARGET_FPRS when checking
1091         for TARGET_HARD_FLOAT.
1092         Add case for SPE_VECTOR_MODE.
1093         (rs6000_legitimize_reload_address): Handle SPE vector modes.
1094         (rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
1095         vector modes.
1096         Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
1097         (rs6000_emit_move): Check for TARGET_FPRS.
1098         Add cases for SPE vector modes.
1099         (function_arg_boundary): Return 64 for SPE vector modes.
1100         (function_arg_advance): Check for TARGET_FPRS and
1101         Handle SPE vectors.
1102         (function_arg): Same.
1103         (setup_incoming_varargs): Check for TARGET_FPRS.
1104         (rs6000_va_arg): Same.
1105         (struct builtin_description): Un-constify mask field.  Move up in
1106         file.
1107         (bdesc_2arg): Un-constify and add SPE builtins.
1108         (bdesc_1arg): Same.
1109         (bdesc_spe_predicates): New.
1110         (bdesc_spe_evsel): New.
1111         (rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
1112         (rs6000_expand_binop_builtin): Same.
1113         (bdesc_2arg_spe): New.
1114         (spe_expand_builtin): New.
1115         (spe_expand_predicate_builtin): New.
1116         (spe_expand_evsel_builtin): New.
1117         (rs6000_expand_builtin): Call spe_expand_builtin for SPE.
1118         (rs6000_init_builtins): Initialize SPE builtins.  Call
1119         rs6000_common_init_builtins.
1120         (altivec_init_builtins): Move all non-altivec builtin code to...
1121         (rs6000_common_init_builtins): ...here.  New function.
1122         (branch_positive_comparison_operator): Allow NE code for SPE.
1123         (ccr_bit): Return correct ccr bit for SPE fp.
1124         (print_operand): Emit crnor in 'D' case for SPE.
1125         New case 't'.
1126         Add SPE code for 'y' case.
1127         (rs6000_generate_compare): Generate rtl for SPE fp.
1128         (output_cbranch): Handle SPE hard floats.
1129         (rs6000_emit_cmove): Handle isel.
1130         (rs6000_emit_int_cmove): New.
1131         (output_isel): New.
1132         (rs6000_stack_info): Adjust stack frame so GPRs are saved in
1133         64-bits for SPE.
1134         (debug_stack_info): Add SPE info.
1135         (gen_frame_mem_offset): New.
1136         (rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
1137         Change mode of frame pointer, when saving it, to Pmode.
1138         (rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
1139         Misc cleanups and use gen_frame_mem_offset when appropriate.
1140
1141         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
1142         (TARGET_SPE_ABI): New.
1143         (TARGET_SPE): New.
1144         (TARGET_ISEL): New.
1145         (TARGET_FPRS): New.
1146         (FIXED_SCRATCH): New.
1147         (RTX_COSTS): Add PROCESSOR_PPC8540.
1148         (ASM_CPU_SPEC): Add case for 8540.
1149         (TARGET_OPTIONS): Add isel= case.
1150         (rs6000_spe_abi): New.
1151         (rs6000_isel): New.
1152         (rs6000_fprs): New.
1153         (rs6000_isel_string): New.
1154         (UNITS_PER_SPE_WORD): New.
1155         (LOCAL_ALIGNMENT): Adjust for SPE.
1156         (HARD_REGNO_MODE_OK): Same.
1157         (DATA_ALIGNMENT): Same.
1158         (MEMBER_TYPE_FORCES_BLK): New.
1159         (FIRST_PSEUDO_REGISTER): Set to 113.
1160         (FIXED_REGISTERS): Add SPE registers.
1161         (reg_class): Same.
1162         (REG_CLASS_NAMES): Same.
1163         (REG_CLASS_CONTENTS): Same.
1164         (REGNO_REG_CLASS): Same.
1165         (REGISTER_NAMES): Same.
1166         (DEBUG_REGISTER_NAMES): Same.
1167         (ADDITIONAL_REGISTER_NAMES): Same.
1168         (CALL_USED_REGISTERS): Same.
1169         (CALL_REALLY_USED_REGISTERS): Same.
1170         (SPE_ACC_REGNO): New.
1171         (SPEFSCR_REGNO): New.
1172         (SPE_SIMD_REGNO_P): New.
1173         (HARD_REGNO_NREGS): Adjust for SPE.
1174         (VECTOR_MODE_SUPPORTED_P): Same.
1175         (REGNO_REG_CLASS): Same.
1176         (FUNCTION_VALUE): Same.
1177         (LIBCALL_VALUE): Same.
1178         (LEGITIMATE_OFFSET_ADDRESS_P): Same.
1179         (SPE_VECTOR_MODE): New.
1180         (CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
1181         the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
1182         (rs6000_stack): Add spe_gp_size, spe_padding_size,
1183         spe_gp_save_offset.
1184         (USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
1185         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
1186         (SPE_CONST_OFFSET_OK): New.
1187         (rs6000_builtins): Add SPE builtins.
1188
1189         * testsuite/gcc.dg/ppc-spe.c: New.
1190
1191         * config/rs6000/eabispe.h: New.
1192
1193         * config/rs6000/spe.h: New.
1194
1195         * config/rs600/spe.md: New.
1196
1197         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1198         __SIMD__ for TARGET_SPE.
1199
1200         * config.gcc: Add powerpc-*-eabispe* case.
1201         Add spe.h to user headers for powerpc.
1202
1203 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
1204
1205         * config/mips/elf.h (STARTFILE_SPEC): Undo previous change.
1206         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
1207         * config/mips/isa3264.h (STARTFILE_SPEC): Likewise.
1208
1209 2002-07-24  Richard Henderson  <rth@redhat.com>
1210
1211         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
1212         form when not optimizing.
1213
1214 2002-07-24  David Mosberger  <davidm@hpl.hp.com>
1215
1216         * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
1217         thread_pointer_rtx as unchanging.
1218
1219 2002-07-24  Michael Matz  <matz@suse.de>
1220
1221         * ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
1222         (free_reg): Use it.
1223
1224 2002-07-24  Richard Earnshaw  <rearnsha@arm.com>
1225
1226         * arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
1227         pattern.
1228         (arm_buneq_reversed, arm_bltgt_reversed): Likewise.
1229         (movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT.
1230
1231 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
1232
1233         * config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o.
1234         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
1235         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.
1236
1237 Wed Jul 24 17:59:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
1238
1239         * toplev.c (rest_of_compilation): Dump loops before clobbering
1240         the structure.
1241
1242 Wed Jul 24 17:23:16 CEST 2002  Jan Hubicka  <jh@suse.cz>
1243
1244         * rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.
1245
1246 2002-07-24  Frank van der Linden  <fvdl@wasabisystems.com>
1247
1248         PR optimization/7291
1249         * config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment
1250         problem on x86_64.
1251
1252 2002-07-24  Gabriel Dos Reis  <gdr@nerim.net>
1253
1254         * pretty-print.h: Add macros from cp/error.c
1255
1256 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
1257
1258         * config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare.
1259         (mask64_2_operand): Declare.
1260         (build_mask64_2_operands): Declare.
1261         (and64_2_operand): Declare.
1262         (extract_MB): Declare.
1263         (extract_ME): Declare.
1264         * config/rs6000/rs6000.c (mask64_operand): Allow all ones.  Remove
1265         CONST_DOUBLE code.
1266         (mask_operand_wrap): New insn predicate.
1267         (mask64_2_operand): Likewise.
1268         (and64_2_operand): Likewise.
1269         (build_mask64_2_operands): New function.
1270         (extract_MB): New function.
1271         (extract_ME): New function.
1272         (print_operand <case m,M>): Use extract_MB and extract_ME.
1273         (print_operand <case S>): Allow all ones.  Remove CONST_DOUBLE support.
1274         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'.
1275         (PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and
1276         mask64_2_operand.  Remove CONST_DOUBLE from mask64_operand.
1277         * config/rs6000/rs6000.md (andsi3_internal3): New
1278         (andsi3_internal3+1): Enable split for powerpc64.
1279         (andsi3_internal3+2): New split.
1280         (andsi3_internal4): Renamed old andsi3_internal3.
1281         (andsi3_internal5): New.
1282         (andsi3_internal5+1): Enable split for powerpc64.
1283         (andsi3_internal5+2): New split.
1284         (andsi3_internal6, andsi3_internal7, andsi3_internal8): New.
1285         (anddi3): Handle 't' constraint.
1286         (anddi3+1): New split.
1287         (anddi3_internal2): Handle 't' constraint.
1288         (anddi3_internal2+1): New split.
1289         (anddi3_internal3): Handle 't' constraint.
1290         (anddi3_internal3+1): New split.
1291
1292 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
1293
1294         * config/rs6000/rs6000.md: Remove scratch reg on insns using
1295         addze and similar (plus (comparison r1 r2) r3) insns.  Add
1296         missing scratch reg in one case.  Formatting fixes.
1297
1298 2002-07-24  Neil Booth  <neil@daikokuya.co.uk>
1299
1300         * cppexp.c (parse_defined): Mark macro used.
1301         * cpphash.h (struct cpp_macro): New member "used".
1302         (_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
1303         (struct cpp_reader): New member.
1304         * cppinit.c (cpp_finish_options): Set first_unused_line.
1305         (cpp_finish): Warn of unused macros if requested.
1306         (OPT_TABLE): New switches.
1307         (cpp_handle_option): Handle them.
1308         * cpplib.c (do_undef): Warn if macro unused.
1309         (do_ifdef, do_ifndef): Mark macro used.
1310         * cpplib.h (struct cpp_options): New member.
1311         * cppmacro.c (_cpp_warn_if_unused_macro): New.
1312         (enter_macro_context): Mark macro used.
1313         (_cpp_create_definition): Mark macro unused; warn if unused
1314         when redefined.
1315         * cpptrad.c (scan_out_logcial_line, push_replacement_text):
1316         Mark macros used.
1317         * doc/cppopts.texi: Update.
1318
1319 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1320
1321         * dwarf2out.c (SECTION_ASM_OP,
1322         ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
1323         * system.h (SECTION_ASM_OP): Poison.
1324         * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
1325         * config/alpha/alpha-interix.h, config/mips/linux.h
1326         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
1327         * config/mmix/mmix-protos.h, config/mmix/mmix.c
1328         (mmix_asm_output_define_label_difference_symbol): Remove.
1329         * config/mmix/mmix.h
1330         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
1331         * doc/tm.texi: Remove documentation.
1332
1333 Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
1334
1335         * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
1336         (constrain_operands): Likewise.
1337         * regclass.c (record_reg_classes): Likewise.
1338         * reload.c (find_reloads): Likewise.
1339         * doc/md.texi: Likewise.
1340
1341         * reload.c (find_reloads_toplev): Use simplify_gen_subreg.
1342         * simplify-rtx.c (simplify_subreg): When converting to a non-int
1343         mode, try to convert to an integer mode of matching size first.
1344
1345         * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
1346         from individual subregs, check that each subreg has been generated
1347         sucessfully.
1348
1349 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1350
1351         * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
1352         * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
1353         FOR_EACH_BB_IN_SBITMAP): Remove.
1354         * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
1355         * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
1356         LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
1357         * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
1358         PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
1359         * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.
1360
1361 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
1362
1363         * pretty-print.h: New file.
1364
1365 2002-07-23      Paul Koning     <pkoning@equallogic.com>
1366
1367         * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
1368         (LARGEST_EXPONENT_IS_NORMAL): Ditto.
1369         (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
1370         (TARGET_G_FLOAT): Default to 0 if not defined.
1371         (ieeetoe): New, common routine to convert target format floats
1372         to internal form.
1373         (e24toe, e53toe): Change to use ieeetoe, distinguish DEC
1374         vs. others.
1375         (e113toe): Change to use ieeetoe.
1376
1377 2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1378
1379         * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
1380         IBM.
1381         (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
1382         (e64toe): Remove special cases for DEC and IBM. Remove support for
1383         ARM_EXTENDED_IEEE_FORMAT.
1384         (e24toe): Remove special cases for DEC.
1385         (significand_size): Simplify. Indent.
1386         (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
1387         (etoieee, toieee): New.
1388         (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
1389         etoieee and toieee for IEEE arithmetic.
1390
1391 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
1392
1393         * doc/extend.texi: Say ISO C90, not ISO C89.
1394         * doc/invoke.texi: Likewise.
1395         * doc/standards.texi: Likewise.
1396
1397 2002-07-23  Steve Ellcey  <sje@cup.hp.com>
1398
1399         * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
1400         Fix permutation of conversion and plus/mult.
1401         * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
1402         ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
1403         (expand_builtin_strncpy) Ditto.
1404         (expand_builtin_memset) Ditto.
1405
1406 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
1407
1408         Fix PR/7363:
1409         * c-common.c (c_sizeof_or_alignof_type): New function.
1410         (c_alignof): Remove definition.
1411         * c-common.h (c_sizeof, c_alignof): Define as macros.
1412         (c_sizeof_or_alignof_type): Declare.
1413         (my_friendly_assert): Moved from cp/cp-tree.h
1414         * c-typeck.c (c_sizeof): Remove definition.
1415
1416 2002-07-23  Jan Hubicka  <jh@suse.cz>
1417
1418         * gcse.c (try_replace_reg): Use num_changes_pending.
1419         * recog.c (num_changes_pending): New function.
1420         (validate_replace_src): Use validate_repalce_src_group.
1421         (validate_replace_src_group): New.
1422         * recog.h (validate_repalce_src_group): New.
1423         (num_changes_pending): Likewise.
1424
1425 Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
1426
1427         * calls.c (emit_library_call_value_1): If
1428         FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
1429         libcall, const call nor pure call.
1430
1431 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1432
1433         * config/m88k/m88k.h (SECTION_ASM_OP): Remove.
1434
1435 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1436
1437         * vmsdbgout.c (SECTION_ASM_OP): Remove.
1438
1439 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1440
1441         * config/i386/i386.c (AT_BP): Remove.
1442
1443 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
1444
1445         * defaults.h (obstack_chunk_alloc, obstack_chunk_free):
1446         Default definition.
1447         * gcse.c: Don't define obstack_chunk_free.
1448         * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
1449         flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
1450         integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
1451         reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
1452         Don't define obstack macros.
1453
1454 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
1455
1456         PR target/6744
1457         * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
1458         ASM_OPERANDS instructions.
1459
1460 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
1461
1462         PR target/7361
1463         * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
1464         constant addresses only on 68HC12.
1465
1466 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
1467
1468         * cppfiles.c (stack_include_file): Correct test of whether
1469         a dependency should be output.
1470
1471 2002-07-22  David Edelsohn  <edelsohn@gnu.org>
1472
1473         * collect2.c (is_ctor_dtor): Add other possible JOINER values.
1474
1475 2002-07-22  Richard Earnshaw  <rearnsha@arm.com>
1476
1477         * arm.md (movqi): If optimizing and we can create pseudos, use
1478         a ZERO_EXTEND to load from memory, then copy the result into the
1479         target.
1480         (movhi): Likewise, but only for ARMv4.
1481
1482 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
1483
1484         * ssa-ccp.c (PHI_PARMS): Remove.
1485
1486 2002-07-22  Richard Sandiford  <rsandifo@redhat.com>
1487
1488         * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
1489         on big-endian targets.
1490
1491 2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1492
1493         * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
1494         HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
1495         HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
1496         New formatting macros.
1497
1498         * ra-debug.c (dump_static_insn_cost): Avoid string concatenation.
1499
1500 Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
1501
1502         * rtlanal.c (subreg_regno_offset): Return correct offset for
1503         big endian paradoxical subregs.
1504
1505         * optabs.c (expand_vector_unop): Don't expand using sub_optab
1506         if we got the wrong mode.
1507
1508         * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
1509         * genrecog.c (write_switch, write_cond): Use it.
1510         * genemit.c (gen_exp): Likewise.
1511
1512 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
1513
1514         * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.
1515
1516 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
1517
1518         * c-decl.c (build_compound_literal): Defer compound literal decls
1519         until until file end to emit them only if they are actually used.
1520
1521 2002-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1522
1523         * ra-build.c (check_conflict_numbers): Hide unused function.
1524         (livethrough_conflicts_bb): Avoid automatic aggregate
1525         initialization.
1526         (parts_to_webs_1): Avoid `U' integer constant modifier.
1527         (conflicts_between_webs): Wrap a variable in the macro controlling
1528         its usage.
1529         * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
1530         (dump_igraph, dump_graph_cost): Avoid string concatenation
1531         (dump_static_insn_cost): Avoid automatic aggregate
1532         initialization.
1533         * ra-rewrite.c (insert_stores): Avoid automatic aggregate
1534         initialization.
1535         (dump_cost): Avoid string concatenation
1536
1537 2002-07-21  Richard Henderson  <rth@redhat.com>
1538
1539         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
1540         GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.
1541
1542 2002-07-21  Richard Henderson  <rth@redhat.com>
1543
1544         * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
1545         that are not unrolled completely.
1546
1547 2002-07-21  Richard Henderson  <rth@redhat.com>
1548
1549         * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
1550         * loop.c (strength_reduce): Update.
1551         * toplev.c (rest_of_compilation): Do unrolling in the first
1552         loop pass, not the second.
1553
1554 2002-07-21  Richard Henderson  <rth@redhat.com>
1555
1556         * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
1557         when flag_argument_noalias == 2.
1558         * alias.c (nonoverlapping_memrefs_p): Handle that.
1559         * print-rtl.c (print_mem_expr): Likewise.
1560
1561 2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>
1562
1563         * libgcc2.c (__divdi3, __moddi3): Use unary minus operator
1564         instead of __negdi2 directly.
1565
1566 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
1567
1568         * gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
1569         * function.c (SYMBOL__MAIN): Remove definition.
1570         * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
1571         * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
1572         * profile.c (GCOV_INDEX_TO_BB): Remove.
1573         * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
1574         * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.
1575
1576 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
1577
1578         * c-lex.c (GET_ENVIRONMENT): Remove.
1579         * collect2.c (GET_ENV_PATH_LIST): Remove.
1580         (prefix_from_env): Use GET_ENVIRONMENT.
1581         * cppinit.c (GET_ENV_PATH_LIST): Remove.
1582         (init_standard_includes): Use GET_ENVIRONMENT.
1583         * defaults.h (GET_ENVIRONMENT): Define here if not already.
1584         * gcc.c (GET_ENV_PATH_LIST): Remove.
1585         (make_relative_prefix, process_command): Update.
1586         * protoize.c (GET_ENV_PATH_LIST): Remove.
1587         (do_processing): Update.
1588
1589 2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>
1590
1591         * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
1592         (grokdeclarator): Likewise.
1593         * c-format.c (C_STD_NAME): Likewise.
1594         * c-lex.c (interpret_integer): Likewise.
1595         * c-typeck.c (build_array_ref): Likewise.
1596         * cpplex.c (_cpp_lex_direct): Likewise.
1597         * toplev.c (documented_lang_options): Likewise.
1598
1599 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
1600
1601         * c-format.c (T99_I, T99_UI): Remove.
1602
1603 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
1604
1605         * c-typeck.c (SAVE_SPELLING_DEPTH): Remove.
1606
1607 Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
1608
1609         * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
1610         do_local_cprop.
1611
1612 2002-07-21  Andreas Jaeger  <aj@suse.de>
1613
1614         * reload1.c (fixup_abnormal_edges): Remove unused variable.
1615
1616 2002-07-21  Bernd Schmidt  <bernds@redhat.com>
1617
1618         Improvements for the ifcvt pass from Michael Meissner, with patches
1619         by Richard Sandiford <rsandifo@redhat.com>
1620         * basic-block.h (struct ce_if_block, ce_if_block_t): New types.
1621         * ifcvt.c (cond_exec_changed_p): New static variable.
1622         (last_active_insn): New function, renamed from last_active_insn_p
1623         and changed to return the last active insn in a basic block. All
1624         callers updated.
1625         (block_fallthru): New function.
1626         (cond_exec_process_insns): New argument CE_INFO.  Pass it to
1627         IFCVT_MODIFY_INSN.  All callers updated.
1628         Return false if START or END are NULL.
1629         Handle case where we're processing an insn that is already
1630         conditional.
1631
1632         (noce_process_if_block): CE_INFO argument rather than
1633         multiple args containing the involved basic blocks.  All callers
1634         changed.
1635         (process_if_block, merge_if_block, find_if_block,
1636         cond_exec_process_if_block): Likewise.
1637
1638         (cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
1639         changed.
1640         Use new function last_active_insn to simplify some code.
1641         New code to handle multiple tests.
1642         Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
1643         cond_exec_changed_p to TRUE.
1644
1645         (process_if_block): New code to handle multiple tests.
1646         (merge_if_block): Likewise.
1647         (find_if_header): New arg PASS.  Changed to return the currently
1648         processed basic block or NULL instead of true/false. All callers
1649         changed.
1650         Call IFCVT_INIT_EXTRA_FIELDS.
1651         (block_jumps_and_fallthru_p): New function.
1652         (find_if_block): Discover opportunities to convert multiple tests.
1653         Add additional debugging output.
1654         Update the ce_info structure before returning.
1655
1656         (if_convert): Run multiple passes of if-conversion.
1657         * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
1658         IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
1659         IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
1660         these macros.
1661
1662 Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1663
1664         * gcse.c: Include cselib.h
1665         (constptop_register): Break out from ...
1666         (cprop_insn): ... here; kill basic_block argument.
1667         (do_local_cprop, local_cprop_pass): New functions.
1668         (one_cprop_pass): Call local_cprop_pass.
1669
1670 2002-07-20  Roger Sayle  <roger@eyesopen.com>
1671
1672         * simplify-rtx.c (simplify_relational_operation): Optimize
1673         abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).
1674
1675 2002-07-20  Michae Matz  <matz@suse.de>
1676
1677         * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.
1678
1679 2002-07-20  Neil Booth  <neil@daikokuya.co.uk>
1680
1681         * cppexp.c (struct op): Add token pointer.
1682         (check_promotion, CHECK_PROMOTION): New.
1683         (optab): Update.
1684         (_cpp_parse_expr): Update, use token pointer of struct op.
1685         (reduce): Warn about change of sign owing to promotion.
1686         * cppinit.c (cpp_handle_option): New warning if -Wall.
1687         * cpplib.h (struct cpp_options): New member.
1688
1689 2002-07-19  David Edelsohn  <edelsohn@gnu.org>
1690
1691         * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
1692         fpu list.  Separate Power4 compare and delayed_compare.  Correct
1693         Power4 fpcompare.
1694         (fix_truncdfsi2_internal): Restore FPR preference.
1695         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
1696         mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.
1697
1698 2002-07-19  Momchil Velikov <velco@fadata.bg>
1699
1700         * reload1.c (reload_as_needed): Duplicate oldpat.
1701
1702 2002-07-20  Alan Modra  <amodra@bigpond.net.au>
1703
1704         PR optimization/7130
1705         * loop.h (struct loop_info): Add "preconditioned".
1706         * unroll.c (unroll_loop): Set it.
1707         * doloop.c (doloop_modify_runtime): Correct count for unrolled loops.
1708
1709 2002-07-19  Zack Weinberg  <zack@codesourcery.com>
1710
1711         * rtl.def (CODE_LABEL): Remove slot 8.
1712         * rtl.h (struct rtx_def): Document new uses of jump and call fields.
1713         (LABEL_ALTERNATE_NAME): Delete.
1714         (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
1715         * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
1716
1717         * final.c (output_alternate_entry_point): New.
1718         (final_scan_insn): Use it instead of
1719         ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
1720         of a case label being an alternate entry point.
1721
1722         * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
1723         * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
1724         Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
1725         (field deleted).
1726         * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
1727
1728         * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
1729         LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
1730         * doc/tm.texi: Delete documentation of
1731         ASM_OUTPUT_ALTERNATE_LABEL_NAME.
1732
1733 2002-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1734
1735         * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
1736         (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
1737         (LINK_SPEC): Define.
1738         (STARTFILE_SPEC): Define.
1739         (ENDFILE_SPEC): Define.
1740
1741         * config/mips/iris6-o32.h (LINK_SPEC): Move ...
1742         * config/mips/iris6-o32-as.h (LINK_SPEC): ... here.
1743
1744         * config/mips/iris6-o32-gas.h: New file.
1745         * config.gcc (mips-sgi-irix6*o32): Use it.
1746
1747         * config/mips/t-iris5-gas: New file.
1748         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
1749
1750 2002-07-19  Neil Booth  <neil@daikokuya.co.uk>
1751
1752         * cppexp.c (ALWAYS_EVAL): Remove.
1753         (optab, reduce): Always evaluate.
1754         (num_unary_op, num_binary_op, num_div_op): Issue diagnostics
1755         only if not skipping evaluation.
1756
1757 2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1758
1759         * config/avr/avr.c (debug_hard_reg_set): Remove.
1760
1761 2002-07-19  Chris Demetriou  <cgd@broadcom.com>
1762
1763         * gcc.c (cpp_options): Include "%1" (cc1_spec).
1764
1765 2002-07-19  Richard Henderson  <rth@redhat.com>
1766
1767         * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
1768
1769 2002-07-19  Alan Modra  <amodra@bigpond.net.au>
1770
1771         * prefix.c (update_path): Don't zap single `.' path components
1772         unless followed by another `.' and fix typo last patch.
1773
1774 2002-07-18  Neil Booth  <neil@daikokuya.co.uk>
1775
1776         * cppexp.c (cpp_num_mul): Remove unused parameter.
1777         (UNARY, BINARY, OTHER, binary_handler): Remove.
1778         (ALWAYS_EVAL): New.
1779         (optab): Update.
1780         (reduce): Refactor to a large switch, don't use a function
1781         pointer.
1782
1783 2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>
1784
1785         * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.
1786
1787 Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
1788
1789         * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
1790         (sh_expand_binop_v2sf): Likewise.
1791         * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
1792         (int_gpr_dest, trunc_hi_operand): New functions.
1793         * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
1794         trunc_hi_operand.
1795         (SPECIAL_MODE_PREDICATES, any_register_operand): Define.
1796         * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
1797         (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
1798         (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
1799         (and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
1800         (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
1801         (extendhisi2_media+1, extendqisi2_media+1): Likewise.
1802         (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
1803         (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
1804         (movsf_ie+1): Likewise.
1805         (loaddi_trunc): Use int_gpr_dest predicate.
1806         (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
1807         (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
1808         (casesi_worker_0+[12], casesi_worker): Likewise.
1809         (shcompact_preserve_incoming_args): Likewise.
1810         (mov_nop): Use any_register_operand predicate.
1811         (mperm_w0): Use trunc_hi_operand predicate.
1812
1813 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1814
1815         * pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
1816         * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
1817         numbering.
1818
1819 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1820
1821         * pa.c (output_deferred_plabels): Remove unused millicode enum mulU.
1822
1823 2002-07-18  Richard Henderson  <rth@redhat.com>
1824
1825         PR optimization/7147
1826         * ifcvt.c (noce_get_condition): Make certain that the condition
1827         is valid at JUMP.
1828
1829 Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>
1830
1831         * sh.c (barrier_align, push): Shut up compiler warnings.
1832         (initial_elimination_offset,sh_media_init_builtins): Likewise.
1833         (reg_no_subreg_operand): Delete.
1834
1835 2002-07-17  Bo Thorsen  <bo@suse.de>
1836
1837         * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
1838         (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
1839         (STARTFILE_SPEC): Remove hardcoded library paths.
1840         (ENDFILE_SPEC): Likewise.
1841
1842 Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>
1843
1844         * gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.
1845
1846         * gcse.c (try_replace_reg): Do not return false positives.
1847
1848 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
1849
1850         * prefix.c: (update_path): Strip ".." components when prior dir
1851         doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.
1852
1853         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
1854         (ASM_OUTPUT_REG_POP): Likewise.
1855
1856 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
1857
1858         * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
1859         adjustments to first_reg for profiling case.
1860         (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
1861         Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
1862         Save static chain reg to sp + 12 on ABI_AIX_NODESC.
1863         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
1864         (ASM_OUTPUT_REG_POP): Define.
1865         * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
1866         (ASM_OUTPUT_REG_POP): Undef.
1867
1868 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
1869
1870         * cpplib.c (do_sccs): Handle #sccs on all systems.
1871         * system.h (SCCS_DIRECTIVE): Poison.
1872         * config/darwin.h, config/freebsd.h, config/netbsd.h,
1873         config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
1874         config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
1875         config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
1876         config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
1877         config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
1878         config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
1879         config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
1880         Remove all references to SCCS_DIRECTIVE.
1881         * doc/cpp.texi, doc/tm.texi: Update.
1882
1883 Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
1884
1885         * regrename.c (maybe_mode_change): New function.
1886         (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.
1887
1888 2002-07-17  Rodney Brown  <rbrown64@csc.com.au>
1889
1890         * config/i386/i386.c (ix86_expand_int_movcc): In the general case
1891         suppress addition when either ct or cf are zero.
1892
1893 2002-06-17  Eric Botcazou <ebotcazou@multimania.com>
1894             Glen Nakamura <glen@imodulo.com>
1895
1896         PR optimization/6713
1897         * loop.c (loop_givs_rescan): Explicitly delete the insn that
1898         sets a non-replaceable giv after issuing the new one.
1899
1900 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
1901
1902         * cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
1903         eval_token): Clarify and correct use of "bool" variables.
1904         * cpplib.h (struct cpp_options): Similarly.
1905         * cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
1906         * cpptrad.c (recursive_macro): Similarly.
1907
1908 Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>
1909
1910         * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
1911         SHmedia code.
1912
1913         * sh.md (cmpgtudi_media): Remove spurious @.
1914
1915         * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
1916         * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.
1917
1918         * config/sh/lib1funcs.asm (init_trampoline): New entry point.
1919         * sh-protos.h (sh_initialize_trampoline): Declare.
1920         * sh.c (sh_initialize_trampoline): New function.
1921         * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
1922         (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
1923         (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
1924         (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
1925         * sh.md (initialize_trampoline, double_shori): New patterns.
1926         (initialize_trampoline_compact): Likewise.
1927         (shmedia32_initialize_trampoline_big): Remove.
1928         (shmedia32_initialize_trampoline_little): Likewise.
1929
1930         * sh-protos.h (binary_float_operator): Remove declaration.
1931         (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
1932         * sh.c (print_operand, case 'N'): Check against CONST0_RTX.
1933         (unary_float_operator, sh_expand_unop_v2sf): New functions.
1934         (sh_expand_binop_v2sf): Likewise.
1935         (zero_vec_operand): Delete.
1936         (SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
1937         all non-shared ones.
1938         (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
1939         Enable nsb and byterev.
1940         * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
1941         (HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
1942         in general regs.
1943         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
1944         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
1945         immediate operands.
1946         (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
1947         Add DF_HI_REGS.
1948         (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
1949         lowpart fp regs - only for big endian for now.
1950         (LEGITIMATE_CONSTANT_P): Don't allow non-zero float vectors
1951         when FPU is in use.
1952         (EXTRA_CONTRAINT_U): Check against CONST0_RTX.
1953         (LOAD_EXTEND_OP): NIL for SImode.
1954         (REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
1955         general and fp registers is 4.
1956         PREDICATE_CODES: Amend binary_float_operator entry.
1957         Remove zero_vec_operand.  Add unary_float_operator.
1958         * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
1959         subreg SET_DEST.
1960         (truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
1961         (truncdiqi2): Do sign extension.
1962         (movsi_media, movdi_media): Allow to use r63 to an fp register.
1963         (movdf_media, movsf_media): Likewise.
1964         (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
1965         Collapse to one define_insn_and_split.  Allow immediate sources.
1966         (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
1967         (movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
1968         (movv4sf): Allow immediate sources.
1969         (movsf_media_nofpu+1): Don't split moves to FP registers.
1970         (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
1971         (movv8qi_i+3): Check against CONST0_RTX.
1972         (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
1973         for input and output operands.  Fix argument 3 to gen_mextr_rl.
1974         (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
1975         (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
1976         (mshf0_w, fipr, ftrv): Likewise.
1977         (mshfhi_l_di): Now insn_and_split.  Can handle FP regs.
1978
1979 2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
1980
1981         * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
1982         NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
1983         * arm.c: Similarly.
1984
1985 2002-07-17  Richard Sandiford  <rsandifo@redhat.com>
1986
1987         * config/mips/mips-protos.h (mips_sign_extend): Declare.
1988         * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
1989         (TARGET_SWITCHES): Remove debugh.
1990         (ISA_HAS_TRUNC_W): New macro.
1991         (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
1992         (PREDICATE_CODES): Remove se_nonimmediate_operand.
1993         * config/mips/mips.c (movdi_operand): Allow sign-extensions of
1994         any SImode move_operand.
1995         (se_nonimmediate_operand): Remove.
1996         (mips_sign_extend): New.
1997         (mips_move_2words): Use it for sign-extended source operands.
1998         (override_options): Allow integers to be put into single FPRs.
1999         (mips_secondary_reload_class): Handle integers in float registers.
2000         * config/mips/mips.md (extendsidi2): Turn into a define_expand.
2001         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
2002         (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
2003         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
2004         (fix_truncdfdi2): Provide only a single alternative, in which the
2005         integer is in a float register.  Depend on TARGET_FLOAT64 rather
2006         than TARGET_64BIT.
2007         (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
2008         (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
2009         (movdi_internal2): Don't allow the source operand to be sign-extended.
2010         Add alternatives for float registers.
2011         (*movdi_internal2_extend): New.  Version of movdi_internal2 that
2012         allows sign-extension.
2013         (*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
2014         (movsi_internal2): Rename to movsi_internal.  Add alternatives for
2015         float registers.  Remove TARGET_DEBUG_H_MODE test.
2016         (movhi_internal1): Rename to movhi_internal.  Don't check
2017         TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
2018         (movqi_internal1): Rename to movqi_internal and remove
2019         TARGET_DEBUG_H_MODE dependency.
2020         (movsi_internal1, movhi_internal2, movqi_internal2): Remove.
2021
2022 2002-07-16  Jim Wilson  <wilson@redhat.com>
2023
2024         * toplev.c (lang_dependent_init): Create function context for
2025         init_expr_once.
2026
2027 2002-07-16  Hans-Peter Nilsson  <hp@axis.com>
2028
2029         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
2030         --gc-sections if -r.
2031         * config/cris/cris.h: Ditto.
2032
2033 2002-07-16  Rodney Brown  <rbrown64@csc.com.au>
2034
2035         * config/i386/i386.c (ix86_expand_int_movcc): In the case where
2036         the comparison directly gives a mask suppress addition when cf is
2037         zero by complementing the mask.
2038
2039 2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2040
2041         * Makefile.in: Delete references to enquire.
2042         * enquire.c: Move to contrib.
2043
2044 2002-07-16  Stan Shebs  <shebs@apple.com>
2045
2046         * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
2047         config/rs6000/darwin.h.
2048         (ASM_OUTPUT_SKIP): Ditto.
2049         (TEXT_SECTION_ASM_OP): Ditto.
2050         (DATA_SECTION_ASM_OP): Ditto.
2051         (ASM_APP_ON): Define.
2052         (ASM_APP_OFF): Define.
2053         * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
2054         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.
2055
2056         * config/darwin.c (func_name_maybe_scoped): Remove unused decl.
2057         (machopic_function_base_name): Declare result to be const.
2058         (machopic_non_lazy_ptr_name): Ditto.
2059         (machopic_stub_name): Ditto.
2060         * config/darwin-protos.h: Ditto for the prototypes.
2061
2062 Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2063
2064         * m68hc11.c (m68hc11_reorg): Do not rebuild CFG.
2065
2066 Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
2067
2068         * i386.md (prefetch): Fix for 64bit mode.
2069         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
2070
2071 Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
2072
2073         * i386.h (MACHINE_DEPENDENT_REORG): New macro.
2074         * i386.c (x86_machine_dependent_reorg): New function.
2075         * i386-protos.h (x86_machine_dependent_reorg): Declare.
2076
2077 2002-07-16  Zack Weinberg  <zack@codesourcery.com>
2078
2079         * builtins.c (std_expand_builtin_va_start): Remove unused
2080         first argument.
2081         (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
2082         std_expand_builtin_va_start with just two arguments.
2083         * expr.h: Update prototypes.
2084
2085         * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
2086         arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
2087         i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
2088         m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
2089         mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
2090         rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
2091         s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
2092         sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
2093         xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
2094         argument from all implementations of EXPAND_BUILTIN_VA_START
2095         and all uses of std_expand_builtin_va_start.
2096
2097 Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
2098
2099         * regrename.c (copy_value): Don't record high part copies.
2100
2101 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
2102
2103         * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
2104         (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
2105         * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.
2106
2107 2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
2108
2109         * doc/invoke.texi (NS32K Options): Document -mieee-compare option
2110
2111         * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
2112         into addsi3 using register class "x" and "y".
2113
2114         * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
2115         "earlyclobber" constraint modifier for some alternative.
2116
2117         * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
2118         (*ble, *blt): Flag to indicate bCOND and sCOND should check for
2119         unordered.
2120         config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.
2121
2122         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
2123         (TARGET_SWITCHES): Add -mieee-compare option.
2124         (OVERRIDE_OPTIONS): 32332 is a subset of
2125         32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
2126         (TARGET_SWITCHES): Fix description of bitfield option.
2127         * config/ns32k/netbsd.h (TARGET_DEFAULT): Add
2128         -mieee-compare option. Remove 32332 flag.
2129
2130 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
2131
2132         * explow.c (convert_memory_address): Remove special handling
2133         when POINTERS_EXTEND_UNSIGNED < 0.
2134         * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
2135         (movedi_symbolic): Fix typo.
2136         (load_fptr): Remove mode restriction so it works for SI and DI.
2137         (load_fptr_internal1): Ditto.
2138         (load_gprel): Ditto.
2139         (load_symptr_internal1): Ditto.
2140         (call_pic): Ditto.
2141         * config/ia64.c (call_operand): Modify mode check.
2142         (ia64_expand_load_address): Handle DI and SI addresses and symbols.
2143         (ia64_expand_move): Ditto.
2144         (ia64_assemble_integer): Handle SImode function pointers.
2145         (ia64_expand_fetch_and_op): Handle SImode mem addresses.
2146         (ia64_expand_op_and_fetch): Ditto.
2147         (ia64_expand_compare_and_swap): Ditto.
2148         (ia64_expand_lock_test_and_set): Ditto.
2149         (ia64_expand_lock_release): Ditto.
2150
2151 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
2152
2153         * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
2154
2155 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
2156             Richard Earnshaw  <rearnsha@arm.com>
2157
2158         * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
2159         CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
2160
2161 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
2162
2163         * arm.md (stack_tie): New insn.  Use an idiom that the alias code
2164         understands to be a memory clobber.
2165         * arm.c (arm_expand_prologue): Use it.
2166
2167 2002-07-16  Daniel Berlin  <dberlin@dberlin.org>
2168
2169         * ra-rewrite.c: #include reload.h, insn-config.h
2170         * ra-build.c: #include reload.h
2171         * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
2172         depend on reload.h, insn-config.h.
2173
2174 Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
2175
2176         * expr.c (emit_move_insn_1): Handle arbitrary moves that are
2177         the same size as a word.
2178
2179         * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
2180         BYTES_BIG_ENDIAN into account.
2181
2182 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2183
2184         * i386.md (prefetch): Fix for 64bit mode.
2185         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
2186
2187         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
2188
2189 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2190
2191         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
2192
2193 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
2194
2195         * ginclude/varargs.h: Replace with stub which issues #error.
2196         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
2197         __builtin_va_start.
2198
2199         * builtins.def (BUILT_IN_VARARGS_START): Delete.
2200         (BUILT_IN_VA_START): New.
2201         * builtins.c (expand_builtin_va_start): Eliminate first
2202         argument and code to implement pre-ISO varargs.
2203         (std_expand_builtin_va_start): Ignore first argument; it is
2204         always 1.
2205         (expand_builtin): Handle BUILT_IN_VA_START and
2206         BUILT_IN_STDARG_START identically.  Delete
2207         BUILT_IN_VARARGS_START case.
2208
2209         * function.c (assign_parms): Delete hide_last_arg and all
2210         its uses.
2211         (mark_varargs): Delete function.
2212         * function.h (struct function): Delete 'varargs' bit.
2213         (current_function_varargs): Delete macro.
2214         * tree.h: Don't declare mark_varargs.
2215
2216         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
2217         (c_expand_body): Don't call mark_varargs.
2218         * c-objc-common.c: Handle BUILT_IN_VA_START and
2219         BUILT_IN_STDARG_START identically.  Delete
2220         BUILT_IN_VARARGS_START case.
2221         * c-tree.h: Don't declare c_mark_varargs.
2222         * c-parse.in: Remove grammar rules for '&...' (which has been
2223         commented out since before 2.7.2) and for '...' in K+R
2224         argument declarations.
2225
2226         * builtins.c, function.c, integrate.c, sibcall.c,
2227         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
2228         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
2229         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
2230         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
2231         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
2232         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
2233         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
2234         config/stormy16/stormy16.c: Delete all references to
2235         current_function_varargs, and code predicated on that flag.
2236
2237         * config/alpha/alpha.c (alpha_va_start),
2238         config/arc/arc.c (arc_va_start),
2239         config/i386/i386.c (ix86_va_start),
2240         config/mips/mips.c (mips_va_start),
2241         config/mn10300/mn10300.c (mn10300_va_start),
2242         config/rs6000/rs6000.c (rs6000_va_start),
2243         config/s390/s390.c (s390_va_start),
2244         config/sh/sh.c (sh_va_start),
2245         Ignore first argument; it is always 1.
2246
2247         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
2248         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
2249         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
2250         Delete m68hc11_va_start.
2251         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
2252         No need to define EXPAND_BUILTIN_VA_START.
2253
2254         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
2255         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
2256
2257 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
2258
2259         PR optimization/7153
2260         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
2261         dies in more than one insn.
2262
2263 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
2264
2265         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
2266
2267 2002-07-15  Michael Matz  <matz@suse.de>,
2268             Daniel Berlin  <dberlin@dberlin.org>,
2269             Denis Chertykov  <denisc@overta.ru>
2270
2271         Add a new register allocator.
2272
2273         * ra.c: New file.
2274         * ra.h: New file.
2275         * ra-build.c: New file.
2276         * ra-colorize.c: New file.
2277         * ra-debug.c: New file.
2278         * ra-rewrite.c: New file.
2279
2280         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2281         (ra-rewrite.o): New .o files for libbackend.a.
2282         (GTFILES): Add basic-block.h.
2283
2284         * toplev.c (flag_new_regalloc): New.
2285         (f_options): New option "new-ra".
2286         (rest_of_compilation): Call initialize_uninitialized_subregs()
2287         only for the old allocator.  If flag_new_regalloc is set, call
2288         new allocator, instead of local_alloc(), global_alloc() and
2289         friends.
2290
2291         * doc/invoke.texi: Document -fnew-ra.
2292         * basic-block.h (FOR_ALL_BB): New.
2293         * config/rs6000/rs6000.c (print_operand): Write small constants
2294         as @l+80.
2295
2296         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
2297         (df_reg_table_realloc): Make size at least as large as max_reg_num().
2298         (df_insn_table_realloc): Size argument now is absolute, not relative.
2299         Changed all callers.
2300
2301         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
2302         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
2303
2304         2002-06-20  Michael Matz  <matz@suse.de>
2305
2306         * df.h (struct ref.id): Make unsigned.
2307         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
2308
2309         2002-06-13  Michael Matz  <matz@suse.de>
2310
2311         * df.h (DF_REF_MODE_CHANGE): New flag.
2312         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
2313         involving subregs with invalid mode changes, when
2314         CLASS_CANNOT_CHANGE_MODE is defined.
2315
2316         2002-05-07  Michael Matz  <matz@suse.de>
2317
2318         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
2319
2320         2002-05-03  Michael Matz  <matz@suse.de>
2321
2322         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
2323
2324         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
2325
2326         * regclass.c (regclass): Work with all regs which have sets or
2327         refs.
2328         (reg_scan_mark_refs): Count regs inside (clobber ...).
2329
2330         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
2331
2332         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
2333         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
2334         add new refs.
2335         (df_bb_refs_update): Don't clear insns_modified here, ...
2336         (df_analyse): ... but here.
2337
2338         * sbitmap.c (dump_sbitmap_file): New.
2339         (debug_sbitmap): Use it.
2340
2341         * sbitmap.h (dump_sbitmap_file): Add prototype.
2342
2343         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
2344
2345         * df.c (df_insn_modify): Grow the UID table if necessary, rather
2346         than assume all emits go through df_insns_modify.
2347
2348         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
2349
2350         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
2351         increase REG_N_REFS (like flow does), so that regclass doesn't
2352         think a reg is useless, and thus, not calculate a class, when it
2353         really should have.
2354
2355         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
2356
2357         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
2358         dataflow analysis.
2359
2360 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
2361
2362         PR middle-end/7245
2363         * config/i386/i386.c (const_int_1_31_operand): New.
2364         * config/i386/i386.h (PREDICATE_CODES): Add it.
2365         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
2366         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
2367         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
2368
2369 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
2370
2371         PR target/7282
2372         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
2373         (floatunssidf2): Likewise.
2374         (floatsidf_ppc64): New insn_and_split.
2375         (floatunssidf_ppc64): Likewise.
2376
2377 2002-07-14  Andreas Jaeger  <aj@suse.de>
2378
2379         * config.gcc (sh64): Remove unused
2380         target_requires_64bit_host_wide_int.
2381
2382 2002-07-12  Roger Sayle  <roger@eyesopen.com>
2383
2384         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
2385         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
2386         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
2387         whether clear_by_pieces should be used to clear storage.
2388         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
2389
2390         * doc/tm.texi: Document these two new target macros.
2391
2392 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
2393
2394         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
2395         the scratch register.
2396         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
2397         of it, forbid reload to use it.
2398
2399 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2400
2401         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
2402         usage on 64-bit hosts, return value was truncated to 32 bits.
2403
2404 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
2405
2406         * simplify-rtx.c (simplify_subreg): Handle floating point
2407         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
2408         the element mode is requested, compute a subreg with an
2409         integer mode of the same size as the element mode first.
2410
2411 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2412
2413         * combine.c (try_combine): When converting a paradoxical subreg
2414         to an extension, take LOAD_EXTEND_OP into account.
2415
2416 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2417
2418         * config.gcc (mips-sgi-irix6*o32): New configuration.
2419
2420         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
2421         configurations.
2422         * configure: Regenerate.
2423
2424         * config/mips/iris6-o32-as.h: New file.
2425         * config/mips/iris6-o32.h: New file.
2426
2427         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
2428         (NM_FLAGS): Define.
2429         (HAVE_AS_SHF_MERGE): Undefine.
2430
2431         * config/mips/t-iris5-as: New file.
2432         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
2433
2434         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
2435         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
2436         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
2437         dp-bit.c, fp-bit.c): Move ...
2438         * config/mips/t-iris5-6: ... here.
2439         New file, shared by IRIX 5 and IRIX 6.
2440         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
2441         mips-sgi-irix5*): Use it.
2442
2443         * config/mips/iris6.h: Remove duplicate comment.
2444
2445         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
2446         !TARGET_IRIX6]: Define.
2447         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
2448
2449         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
2450
2451 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2452
2453         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
2454         and delete code to force constant to register.
2455         * pa-protos.h (adddi3_operand): Add prototype.
2456         * pa.c (adddi3_operand): New function.
2457
2458 2002-07-11  Roger Sayle  <roger@eyesopen.com>
2459
2460         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
2461         non-ANSI builtin functions.
2462
2463 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
2464
2465         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
2466         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
2467         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
2468         (gen_const_vector_0): Use it.
2469
2470 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2471
2472         * pa.md (adddi3): For 32-bit targets, force constants to a register
2473         if they don't fit in an 11-bit immediate.  Change insn predicate to
2474         arith11_operand.  Remove comment.
2475         * pa.c (cint_ok_for_move): Fix comment.
2476         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
2477         targets.
2478
2479 2002-07-11  Tim Josling  <tej@melbpc.org.au>
2480
2481         Remove front end hard coding from gengtype.c.
2482
2483         * Makefile.in
2484         (STAGESTUFF): add gtyp-gen.h
2485         (GTFILES): Remove front end specific files.
2486         (GTFILES_FILES_LANGS): New, from configure..
2487         (GTFILES_FILES_FILES): Likewise.
2488         (GTFILES_LANG_DIR_NAMES): Likewise.
2489         (GTFILES_SRCDIR): Likewise.
2490         (gtyp-gen.h): Build from configure information.
2491         (s-gtype): Remove command line parameters from gengtype.
2492         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
2493         (mostlyclean): Delete files generated by and for gengtype.
2494
2495         * c-config-lang.in: New file.
2496
2497         * configure.in (all_gtfiles_files_langs): New. Accumulate files
2498         for each language.
2499         (all_gtfiles_files_files): New. Accumulate language for each file
2500         accumulated.
2501         (gtfiles): Pick up value for C.
2502         (srcdir): AC-SUBST this variable.
2503         (all_gtfiles_files_langs): AC-SUBST this variable.
2504         (all_gtfiles_files_files): AC-SUBST this variable.
2505
2506         * configure: Regenerate.
2507
2508         * gengtype-lex.l (parse_file): Make parameter const.
2509
2510         * gengtype.c (toplevel): include gtyp-gen.h.
2511         (BASE_FILE_<language> unnamed enum): Delete.
2512         (lang_names): Delete (replaced by gtyp-gen.h)
2513         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
2514         all references.
2515         (NUM_GT_FILES): New.
2516         (NUM_LANG_FILES): New.
2517         (srcdir_len): New.
2518         (NUM_BASE_FILES): Change calculation.
2519         (open_base_files): Change prototype to avoid warning.
2520         (startswith): Delete.
2521         (get_file_basename): Iterate through generated language list not
2522         hard coded list.
2523         (get_base_file_bitmap): Use generated list of files and languages.
2524         (close_output_files): Add prototype to rmove warning.
2525         (main): Iterate through list of generated files from gtyp-gen.h
2526         rather than command line paramaters.  Ignore duplicated file
2527         names.
2528
2529         * gengtype.h (parse_file): Amend prototype for const parameter.
2530
2531         * doc/sourcebuild.texi: Document gtfiles variable.
2532
2533         * doc/gty.texi: Document changes to gtfiles variable for front
2534         ends.
2535
2536         * objc/config-lang.in (gtfiles): Add files needed for objc front
2537         end.
2538
2539 2002-07-10  Roger Sayle  <roger@eyesopen.com>
2540
2541         PR c/2454
2542         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
2543         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
2544
2545 2002-07-10  Roger Sayle  <roger@eyesopen.com>
2546             Zack Weinberg <zack@codesourcery.com>
2547
2548         * builtins.def: Make the argument types of abort and exit
2549         independent of the front-end.
2550
2551 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
2552
2553         * config/rs6000/linux64.h (ASM_SPEC): Define.
2554
2555 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
2556
2557         * config/rs6000/rs6000.c (emit_frame_save): New.
2558         (rs6000_frame_related): Replace reg2 before reg.
2559         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
2560         and eh_return registers.
2561
2562 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2563
2564         Revert all patches for optimization of Complex .op. Real.
2565         * complex_part_zero_p: Remove
2566         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
2567         with x.
2568         * expand_cmplxdiv_wide: Ditto.
2569         * expand_binop: Ditto.
2570
2571 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2572
2573         * config/avr/avr.md: Fix two 0x80000000 constants to make them
2574         negative also on 64-bit hosts.
2575
2576         Default to -fno-reorder-blocks when optimizing for size.
2577         * config/avr/avr-protos.h (avr_optimization_options): Declare.
2578         * config/avr/avr.c (avr_optimization_options): New function.
2579         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
2580
2581         Optimize returning from simple functions.
2582         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
2583         * config/avr/avr.c (avr_simple_epilogue): New function.
2584         * config/avr/avr.md (return): New insn.
2585
2586 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
2587
2588         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
2589         HAS_INIT_SECTION to protection.
2590
2591 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
2592
2593         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
2594         deprecated.
2595
2596 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
2597
2598         * combine.c (gen_lowpart_for_combine): Handle vector modes.
2599         Supply non-VOID mode to simplify_gen_subreg.
2600
2601 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
2602
2603         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
2604
2605 2002-07-10  Jeffrey A Law  <law@redhat.com>
2606
2607         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
2608         as appropriate.
2609
2610         * mn10200.c (expand_epilogue): Fix test to determine which scratch
2611         register to use.
2612
2613 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
2614
2615         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
2616         Get mode from dest.
2617         If simplify_gen_subreg fails, try next equivalent.
2618
2619 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
2620
2621         * diagnostic.h: #include location.h
2622         (location_t): Move definition to..
2623         * location.h: ... here.  New file.
2624         * tree.h: #include location.h
2625         (DECL_SOURCE_LOCATION): New macro.
2626         (DECL_SOURCE_FILE): Use.
2627         (DECL_SOURCE_LINE): Likewise.
2628         (struct tree_decl): REplace filename and linenum with locus.
2629         * Makefile.in (TREE_H): add location.h
2630         (diagnostic.o): Depends on gt-location.h
2631         (gt-location.h): Depends on s-gtype
2632
2633 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
2634
2635         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
2636         TARGET_OS_CPP_BUILTINS.
2637         * config/rs6000/aix31.h: Likewise.
2638         * config/rs6000/aix41.h: Likewise.
2639         * config/rs6000/aix43.h: Likewise.
2640         * config/rs6000/aix51.h: Likewise.
2641         * config/rs6000/beos.h: Likewise.
2642         * config/rs6000/darwin.h: Likewise.
2643         * config/rs6000/eabi.h: Likewise.
2644         * config/rs6000/eabisim.h: Likewise.
2645         * config/rs6000/linux.h: Likewise.
2646         * config/rs6000/linux64.h: Likewise.
2647         * config/rs6000/lynx.h: Likewise.
2648         * config/rs6000/mach.h: Likewise.
2649         * config/rs6000/rtems.h: Likewise.
2650         * config/rs6000/sysv4.h: Likewise.
2651         * config/rs6000/vxppc.h: Likewise.
2652
2653 2002-07-09 Devang Patel <dpatel@apple.com>
2654         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
2655         Do not allow ObjC objects as a parameter type for Objective-C methods.
2656         My previous patch restricted  'struct' also.
2657
2658 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
2659
2660         * cpperror.c (cpp_error): Default to directive_line within
2661         directives here.
2662         * cppexp.c (cpp_interpret_integer): Only use traditional
2663         number semantics in directives.
2664         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
2665         (do_include_common): Similarly.
2666         * cpptrad.c (scan_out_logical_line): Implement accurate
2667         quoting of <> in #include.
2668         * doc/cpp.texi: Update.
2669
2670 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
2671                           J"orn Rennecke <joern.rennecke@superh.com>
2672
2673         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
2674         * sh.md (attribute issues): Replace with:
2675         (attribute pipe_model).  All users changed.
2676         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
2677         All users changed.
2678         (function units sh5issue, sh5fds): New.
2679         (attribute is_mac_media): New.
2680         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
2681         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
2682         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
2683         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
2684         (call_media, call_value_media, sibcall_media): Likewise.
2685         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
2686         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
2687         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
2688         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
2689         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
2690         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
2691         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
2692         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
2693         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
2694         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
2695         (truncdfsf2_media): Likewise.
2696         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
2697         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
2698
2699 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
2700
2701         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
2702         * sh.c (general_extend_operand, inqhi_operand): New functions.
2703         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
2704         alternatives using 'N' modifier.  Add type.
2705         (adddi3z_media): Likewise.  Enable generator function generation.
2706         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
2707         exact predicates / constraints.  Add type.
2708         (subsi3): Allow 0 for SHMEDIA.
2709         (udivsi3_i4_media): Use match_operand for input values
2710         rather than hard registers.
2711         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
2712         unnecessarily through hard registers.  Keep copies of pseudo
2713         registers outside of the libcall sequence.
2714         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
2715         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
2716         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
2717         (extendhidi2, extendqidi2): Likewise.
2718         (andsi3_compact): Name.
2719         (andcdi3): Enable generator function generation.
2720         (zero_extendhisi2, zero_extendqisi2): Rename to
2721         (zero_extendhisi2_compact, zero_extendqisi2_compact).
2722         (extendhisi2, extendqisi2): Rename to
2723         (extendhisi2_compact, extendqisi2_compact).
2724         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
2725         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
2726         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
2727         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
2728         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
2729         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
2730         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
2731         (shmedia32_initialize_trampoline_big): Likewise.
2732         (shmedia32_initialize_trampoline_little): Likewise.
2733         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
2734         (negdi2): Remove spurious T clobber.
2735         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
2736         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
2737         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
2738         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
2739         (ic_invalidate_line_media): Write back data cache before invalidating
2740         instruction cache.  Add type.
2741         (movsf_media): Sign-extend when the destination is a general
2742         purpose register.  Add type.
2743         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
2744         (casesi_worker_0+1): Only increment ref count for proper label.
2745         (casesi_worker_0+2): Likewise.
2746
2747 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
2748
2749         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
2750
2751 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
2752
2753         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
2754         from Pmode to ptr_mode.
2755         (get_exception_pointer): Ditto.
2756         (connect_post_landing_pads): Ditto.
2757         (dw2_build_landing_pads): Ditto.
2758
2759 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
2760         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
2761         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
2762         (handle_pragma_redefine_extname): Change to use new function.
2763
2764 2002-07-08  Roger Sayle  <roger@eyesopen.com>
2765
2766         * combine.c (combine_simplify_rtx): Add an explicit cast
2767         to avoid signed/unsigned comparison warning.
2768         (simplify_if_then_else): Likewise.
2769         (extended_count): Likewise.
2770         (simplify_shift_const): Likewise.
2771         (simplify_comparison): Likewise.
2772
2773 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
2774
2775         * config/mips/mips.md: Add imadd type.  Update scheduler description
2776         to use imadd as well as imul.
2777         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
2778         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
2779         (*mul_sub_si): Likewise for first alternative.  Change second
2780         alternative from imul to multi.
2781
2782 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
2783
2784         * c-common.c (c_common_post_options): Update prototype;
2785         don't init backends if preprocessing only.
2786         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
2787         * langhooks.h (struct lang_hooks): Update post_options to
2788         return a boolean.
2789         * toplev.c (parse_options_and_default_flags, do_compile,
2790         lang_independent_init): Update prototypes.  Allow the
2791         front end to specify that there is no need to initialize
2792         the back end.
2793         (general_init): Move call to hex_init here...
2794         (toplev_main): ...from here.  Pass flag for back end init
2795         suppression.
2796
2797 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2798
2799         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
2800         (PREDICATE_CODES): Add entries for equality_comparison_operator,
2801         greater_comparison_operator and less_comparison_operator.
2802         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
2803         more operators.
2804         (equality_comparison_operator): New function.
2805         (greater_comparison_operator, less_comparison_operator): Likewise.
2806         * sh.md (beq_media_i): Disable generator function generation.
2807         Use match_operator to handle a whole class of comparisons.  Add
2808         modifier in output template to provide branch prediction.  Add type.
2809         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
2810         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
2811         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
2812         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
2813
2814 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
2815
2816         Emit MMIX function prologue and epilogue as rtl.
2817         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
2818         not unprototyped get_hard_reg_initial_val.
2819         ("call_value", "nonlocal_goto_receiver"): Ditto.
2820         ("return"): Make define_expand.  Move real insn to...
2821         ("*expanded_return"): New pattern.
2822         ("prologue", "epilogue"): New define_expands.
2823         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
2824         (struct machine_function): New member in_prologue.
2825         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
2826         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
2827         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
2828         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
2829         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
2830         (LOCAL_REGNO): Define.  Adjust comment.
2831         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
2832         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
2833         leaf_function_p.
2834         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
2835         the prologue.
2836         (mmix_target_asm_function_prologue): Make static.  Just mark that
2837         the prologue is being emitted.  Move guts to...
2838         (mmix_expand_prologue): New function.  Adjust for emitting
2839         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
2840         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
2841         \n.  Move guts to...
2842         (mmix_expand_epilogue): New function.  Adjust for emitting
2843         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
2844         (mmix_target_asm_function_end_prologue): Mark that the prologue
2845         has ended.
2846         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
2847         (mmix_conditional_register_usage): Improve comments.
2848         (mmix_local_regno): New function.
2849         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
2850         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
2851         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
2852         (mmix_get_hard_reg_initial_val): Ditto.
2853
2854 2002-07-06  Andreas Jaeger  <aj@suse.de>
2855
2856         * toplev.c (set_fast_math_flags): Don't use ISO C style function
2857         definitions.
2858         * gengtype.c (open_base_files): Likewise.
2859         (close_output_files): Likewise.
2860         * tracer.c (find_best_predecessor): Likewise.
2861         (find_best_successor): Likewise.
2862         (ignore_bb_p): Likewise.
2863
2864 2002-07-05  Roger Sayle  <roger@eyesopen.com>
2865
2866         PR c++/7099
2867         * builtin-attrs.def: Define new attribute lists for use in
2868         builtins.def.
2869         * builtins.def [DEF_BUILTIN]: Modify to take an additional
2870         ATTRS argument, an enumerated value defined in builtin-attrs.def
2871         that represents the attribute list for the builtins.  Modify
2872         all builtin functions to pass an appropriate attribute list.
2873         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
2874         their required noreturn attributes.
2875         * tree.h (enum_builtin_function): Ignore the additional parameter
2876         to DEF_BUILTIN.
2877         * builtins.c (built_in_names): Likewise.
2878         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
2879         argument with a tree representing the functions attribute list.
2880         Pass this "attrs" argument to builtin_function.  No longer handle
2881         the noreturn_p processing manually.
2882         (built_in_attributes): Move the definitions from builtin-attrs.def
2883         before c_common_nodes_and_builtins.
2884         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
2885         DEF_BUILTIN, passing it to both builtin_function and the changed
2886         builtin_function_2.
2887
2888         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
2889         __builtin__exit and __builtin__Exit.
2890
2891 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
2892
2893         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
2894         QI mode registers in soft registers.
2895         ("zero_extendqihi2"): Do not take into account soft registers
2896         for register allocation (use '*' constraint).
2897
2898 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
2899
2900         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
2901         it is dead.
2902         ("*ashrsi3"): Likewise.
2903         ("*lshrsi3"): Likewise.
2904
2905 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
2906
2907         * genautomata.c (output_max_insn_queue_index_def): Take latencies
2908         into account.
2909
2910 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
2911
2912         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
2913         address computation and memory moves.
2914
2915 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
2916
2917         PR c++/6706
2918         * dwarfout.c (output_reg_number): Fix warning message.
2919         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
2920         before using it.
2921
2922 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2923
2924         * gcc/gcc.c (asm_debug): Move initialization ...
2925         (init_spec): ... here.
2926
2927 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
2928
2929         * c-parse.in (extdef): Append ';'.
2930         (old_style_parm_decls): Append ';'.
2931
2932 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
2933
2934         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
2935         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
2936         to gcc_cv_as_gstabs_flag.
2937         * configure: Rebuilt.
2938
2939 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
2940
2941         * ggc.h (ggc_add_root): Document as obsolete.
2942
2943 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
2944
2945         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
2946         (mshflo_w): Likewise.
2947
2948 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
2949
2950         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
2951         vector mode subregs of constants to finding integer mode
2952         subregs of constants.
2953         * cse.c (cse_insn): Use simplify_gen_subreg.
2954         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
2955         From a vector mode expression of different size than the
2956         target mode.
2957
2958 2002-07-03  Eric Christopher  <echristo@redhat.com>
2959
2960         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
2961         * config/mips/mips.h: Remove deprecated -m<processor> options
2962         and cc1_cpu_spec associated.
2963         (CONSTANT_ADDRESS_P): Fix last patch.
2964         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
2965         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
2966         sunge_sf): Remove.
2967
2968 2002-07-03  Stan Shebs  <shebs@apple.com>
2969
2970         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
2971         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
2972         (CPP_SPEC): Remove insertion of APPLE_CC definition.
2973
2974 2002-07-03  Roger Sayle  <roger@eyesopen.com>
2975
2976         * combine.c (struct_undo): Change types of recorded substitutions
2977         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
2978         (do_SUBST_INT): Change types of the substitution from unsigned int
2979         to int, to avoid compilation warning from SUBST_INT's only caller.
2980
2981         (make_extraction): Add cast to avoid compilation warning.
2982         (force_to_mode): Remove cast to avoid compilation warning.
2983
2984 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
2985             Jeff Law  <law@redhat.com>
2986
2987         * i386.md (length_immediate attribute): Fix typo.
2988         (length_address attribute): Likewise.
2989         (modrm attribute): Set it to 0 for immediate call instructions.
2990         (jcc_1 pattern): Set modrm attribute to 0.
2991         (jcc_2 pattern ): Likewise.
2992         (jump pattern): Likewise.
2993         (doloop_end_internal pattern): Explicitly set length.
2994         (leave pattern): Fix typo.
2995         (leave_rex64 pattern): Likewise.
2996
2997 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
2998
2999         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
3000         in FPR as preference.
3001         (fctiwz): Same.
3002         (floatdidf2, fix_truncdfdi2): Same.
3003         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
3004         (floatditf2): Same.
3005         (floatsitf2, fix_trunctfsi2): SImode in GPR.
3006         (ctrdi): Remove FPR alternative and splitter.
3007
3008 2002-07-03  Will Cohen  <wcohen@redhat.com>
3009
3010         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
3011
3012 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
3013
3014         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
3015         than UNITS_PER_WORD, unless this is little endian and the first unit
3016         in this word.  Let extract_bit_field decide how to load an element.
3017         Force arguments to matching mode.
3018         (expand_vector_unop): Likewise.
3019
3020         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
3021         consist of word_mode elements.
3022         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
3023         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
3024         (build_unary_op): Allow vector types for BIT_NOT_EPR.
3025         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
3026         CONST_VECTOR.
3027         * optabs.c (expand_vector_binop): Try to perform operation in
3028         smaller vector modes with same inner size.  Add handling of AND, IOR
3029         and XOR.  Reject expansion to inner-mode sized scalars when using
3030         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
3031         (expand_vector_unop): Try to perform operation in smaller vector
3032         modes with same inner size.  Add handling of one's complement.
3033         When there is no vector negate operation, try a vector subtract
3034         operation.  Use simplify_gen_subreg on constants.
3035         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
3036         constants into smaller vectors with same inner mode, and to
3037         integer CONST_DOUBLEs.
3038
3039 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3040
3041         * c-parse.in (parsing_iso_function_signature): New variable.
3042         (extdef_1): New, copied from...
3043         (extdef): ... here.  Reset parsing_iso_function_signature.
3044         (old_style_parm_decls):  Reset parsing_iso_function_signature.
3045         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
3046         Warn about ISO C style function definitions.
3047         (nested_function, notype_nested_function): Reset
3048         parsing_iso_function_signature.
3049         (parmlist_2): Set parsing_iso_function_signature.
3050
3051         * doc/invoke.texi (-Wtraditional): Document new behavior.
3052
3053 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
3054
3055         * config.gcc (mips*el-*-*): Use tm_defines to set
3056         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
3057         * config/mips/little.h: Remove.
3058
3059 2002-07-02 Devang Patel <dpatel@apple.com>
3060
3061         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
3062         object as parameter. Prevent something like 'NSObject' to be
3063         used as the type for a method argument.
3064
3065 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
3066
3067         * cpptrad.c: Update comment.
3068
3069 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
3070
3071         * doc/cpp.texi: Update for traditional preprocessing changes.
3072         * goc/cppopts.texi: Similarly.
3073
3074 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
3075
3076         * c-parse.in (designator): Enable designated initializers if ObjC.
3077         (objcmessageexpr): Remove references to objc_receiver_context.
3078         * objc/objc-act.h (objc_receiver_context): Remove decl.
3079         * objc/objc-act.c (objc_receiver_context): Remove.
3080         (lookup_objc_ivar): Test objc_method_context instead of
3081         objc_receiver_context.
3082
3083 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
3084
3085         * sh.c (print_operand, case 'N'): Allow zero vector.
3086         (arith_reg_or_0_operand): Likewise.
3087         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
3088         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
3089         IOR, XOR, PLUS and SET and take their respective constant
3090         ranges into account.
3091         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
3092         * sh.md (subdi3, subdi3_media): Allow zero operand.
3093         (movv8qi_i+3): Only vector that is not split is the zero vector.
3094         Fix operand 3 to simplify_subreg.
3095         (movv2si_i): Split alternative 1.
3096         (mshfhi_l_di_rev+1): New splitter.
3097
3098 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
3099
3100         PR preprocessor/7029
3101         * cppinit.c (cpp_handle_option):  Suppress warnings with an
3102         implicit "-w" for "-M" and "-MM".
3103         * doc/cppopts.texi: Update.
3104
3105 2002-07-01  Roger Sayle  <roger@eyesopen.com>
3106
3107         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
3108         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
3109         builtin_function.
3110
3111 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
3112
3113         * README.Portability: Fix typos.
3114
3115 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
3116
3117         PR target/7177
3118         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
3119         of indirections for register inside sign-extended mem part.
3120
3121 2002-07-01  Roger Sayle  <roger@eyesopen.com>
3122
3123         * tree.h:  Modify builtin_function interface to take an extra
3124         argument ATTRS, which is a tree representing an attribute list.
3125
3126         * c-decl.c (builtin_function): Accept additional parameter.
3127         * objc/objc-act.c (builtin_function): Likewise.
3128         * f/com.c (builtin_function): Likewise.
3129         * java/decl.c (builtin_function): Likewise.
3130         * ada/utils.c (builtin_function): Likewise.
3131         * cp/decl.c (builtin_function): Likewise.
3132         (builtin_function_1): Likewise.
3133
3134         * c-common.c (c_common_nodes_and_builtins): Pass an additional
3135         NULL_TREE argument to builtin_function.  (builtin_function_2):
3136         Likewise.
3137         * cp/call.c (build_java_interface_fn_ref): Likewise.
3138         * objc/objc-act.c (synth_module_prologue): Likewise.
3139         * java/decl.c (java_init_decl_processing): Likewise.
3140         * f/com.c (ffe_com_init_0): Likewise.
3141
3142         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
3143         NULL_TREE argument to builtin_function.
3144         * config/arm/arm.c (def_builtin): Likewise.
3145         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
3146         * config/i386/i386.c (def_builtin): Likewise.
3147         * config/ia64/ia64.c (def_builtin): Likewise.
3148         * config/rs6000/rs6000.c (def_builtin): Likewise.
3149
3150 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
3151
3152         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
3153         * config/mips/t-isa3264: Likewise.
3154         * config/mmix/t-mmix: Likewise.
3155
3156 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3157
3158         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
3159
3160 2002-07-01  Roger Sayle  <roger@eyesopen.com>
3161
3162         PR opt/4046
3163         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
3164         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
3165         B are truth values.
3166
3167 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3168
3169         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
3170
3171 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
3172
3173         * README.Portability (Function prototypes): Give an example of
3174         declaring and defining a function with no arguments.
3175
3176         * README.Portability (Function prototypes): Document new
3177         variable-argument function macros.
3178
3179 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
3180
3181         * sh.c (langhooks.h): Include.
3182         (sh_init_builtins, sh_media_init_builtins): New functions.
3183         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
3184         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
3185         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
3186         (builtin_description): New struct tag.
3187         (signature_args, bdesc): New arrays.
3188         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
3189         (print_operand): Add 'N' modifier.
3190         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
3191         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
3192         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
3193         (CONST_COSTS): Add special case for SHmedia AND.
3194         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
3195         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
3196         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
3197         target_operand can also be const or unspec.
3198         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
3199         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
3200         (attribute type): Add new types.
3201         (anddi3): Add splitter.
3202         (movdi_const_16bit+1): Add code to handle vector constants and
3203         bitmasks efficiently.
3204         (shori_media): Have generator function made.
3205         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
3206         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
3207         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
3208         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
3209         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
3210         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
3211         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
3212         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
3213         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
3214         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
3215         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
3216         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
3217         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
3218         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
3219         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
3220         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
3221         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
3222         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
3223         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
3224         (ftrv): Likewise.
3225
3226         (fpu_switch+1, fpu_switch+2): Remove constraint.
3227
3228 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
3229
3230         * tree.c (build_function_type_list): Update function comment.
3231         Rename first argument to return_type.
3232
3233 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
3234
3235         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
3236         tradcif.y and related files.
3237
3238 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
3239
3240         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
3241
3242 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3243
3244         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
3245
3246 2002-06-30  Devang Patel  <dpatel@apple.com>
3247
3248         * objc/objc-act.c (finish_file): Avoid finish_objc() if
3249         -fsyntax-only.
3250
3251 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
3252                           Frank Ch. Eigler  <fche@redhat.com>
3253                           Matthew Green  <mrg@redhat.com>
3254                           Richard Henderson <rtl@redhat.com>
3255                           Dave Hudson  <dave.hudson@ubicom.com>
3256                           Jeff Johnston  <jjohnstn@redhat.com>
3257                           Alan Lehotsky <apl@alum.mit.edu>
3258                           Bernd Schmidt  <bernds@redhat.com>
3259                           Graham Stott  <grahams@redhat.com>
3260
3261         * doc/extend.texi: Add ip2k port to description of attribute
3262         naked.
3263         * doc/install.texi (Specific): Add ip2k description.
3264         * doc/install-old.texi (Configurations): Add ip2k to possible
3265         cpu types.
3266         * doc/md.texi: Document ip2k constraints.
3267         * config/ip2k/crt0.S: New file.
3268         * config/ip2k/ip2k-protos.h: New file.
3269         * config/ip2k/ip2k.c: New file.
3270         * config/ip2k/ip2k.h: New file.
3271         * config/ip2k/ip2k.md: New file.
3272         * config/ip2k/libgcc.S: New file.
3273         * config/ip2k/t-ip2k: New file.
3274
3275 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
3276
3277         * config/mmix/mmix.md ("return"): New pattern.
3278         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
3279         (TARGET_USE_RETURN_INSN): New macros.
3280         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
3281         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
3282         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
3283         (MMIX_POP_ARGUMENT): New macro.
3284         (mmix_target_asm_function_prologue): When no epilogue is executed,
3285         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
3286         (mmix_print_operand) <case '.'>: New case.
3287         (mmix_print_operand_punct_valid_p): Match '.'.
3288         (mmix_use_simple_return): New function.
3289         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
3290         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
3291         -msingle-exit, -mno-single-exit.
3292         (MMIX Options): Ditto.
3293
3294 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
3295
3296         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
3297
3298 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3299
3300         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
3301
3302 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
3303
3304         * unroll.c (loop_iterations): Handle EQ loops.
3305
3306 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
3307
3308         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
3309         constraint in define_expand, not splitter.
3310         Formatting.
3311
3312 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
3313
3314         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
3315         build_function_type_list instead of build_function_type.
3316
3317         * config/ia64/ia64.c (ia64_init_builtins): Same.
3318
3319         * config/alpha/alpha.c (alpha_init_builtins): Same.
3320
3321         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
3322
3323         * config/arm/arm.c (arm_init_builtins): Same.
3324
3325         * tree.h: Add build_function_type_list prototype.
3326
3327         * tree.c (build_function_type_list): New.
3328
3329 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3330
3331         * collect2.c (scan_prog_file): Fix typo in message.
3332
3333 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
3334
3335         * fold-cont.c: Remove unused CHARMASK.
3336
3337 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
3338
3339         PR preprocessor/7150
3340         * cppmain.c (scan_translation_unit_trad): Simplify.
3341         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
3342
3343 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3344
3345         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
3346         Don't use CPP_PREDEFINES.
3347         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
3348         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
3349         * config/i386/djgpp.h, config/i386/i386-coff.h,
3350         config/i386/i386-interix.h, config/i386/i386-interix3.h,
3351         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
3352         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
3353         config/i386/uwin.h: Similarly.
3354
3355 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3356
3357         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
3358         flag_inline_trees to enable inlining.
3359
3360 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
3361
3362         * configure.in (gcc_gxx_include_dir):  Change to match versioned
3363         C++ headers if --enable-version-specific-runtime-libs is used.
3364         * configure:  Regenerate.
3365
3366 2002-06-28  Jan Hubicka  <jh@suse.cz>
3367
3368         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
3369
3370 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
3371
3372         * combine.c (combine_simplify_rtx): Pass the mode of the
3373         shift count, not the shift operation when trying to simplify
3374         a shift on a SHIFT_COUNT_TRUNCATED target.
3375
3376 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
3377
3378         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
3379         avoid the auto increment addressing modes.
3380         ("*subsi3"): Likewise.
3381         (split for add/sub on address): For 68HC12 push the value on
3382         the stack and do the operation with a pop.
3383
3384 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
3385
3386         * cpplib.c (_cpp_handle_directive): Move #define-specific
3387         code to the #define handler...
3388         (do_define): ...here.
3389         (lex_macro_node): No longer a need to check for comments here.
3390
3391 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
3392
3393         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
3394         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
3395         Declare.
3396         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
3397         do not reorder basic blocks at the end when optimizing for size.
3398
3399 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
3400
3401         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
3402         (m68hc11_make_autoinc_notes): New function.
3403         (m68hc11_split_move): Be very cautious when spliting a move with
3404         auto increment/decrement modes because this may result in incompatible
3405         directions; add REG_INC notes to the resulting insn for CSE reg.
3406
3407 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
3408
3409         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
3410         can be a valid address.
3411
3412 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
3413
3414         * config/rs6000/rs6000.c: Remove unusued variables from last
3415         patch.
3416
3417 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
3418
3419         Revert:
3420         * config/rs6000/rs6000.c (rs6000_override_options): Move
3421         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
3422
3423 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
3424
3425         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
3426         lvx/stv/dst builtins...
3427         (altivec_expand_ld_builtin): ...to here.
3428         (altivec_expand_st_builtin): ...here.
3429         (altivec_expand_dst_builtin): ...and here (respectively).
3430
3431 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
3432
3433         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
3434
3435 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
3436
3437         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
3438         subregs.
3439         * recog.c (general_operand, register_operand): Disallow them.
3440
3441 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
3442
3443         PR preprocessor/7138
3444         * cpplib.c (_cpp_handle_directive): Do traditional
3445         preparation after setting state.angled_headers.
3446         * cpptrad.c (scan_out_logical_line): Fix potential
3447         quote bug.
3448
3449 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
3450
3451         * config/rs6000/rs6000.c (rs6000_override_options): Move
3452         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
3453
3454 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
3455
3456         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
3457         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
3458         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
3459
3460 2002-06-27  Roger Sayle  <roger@eyesopen.com>
3461
3462         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
3463         * config/stormy16/stormy16.h: Likewise.
3464
3465         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
3466         with #define.
3467
3468 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3469
3470         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
3471         Hitachi entry.  Make punctuation more consistent.
3472
3473 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
3474
3475         * doc/install.texi: Change ` bit' to `-bit'.
3476         * doc/md.texi: Change `-bits' to `-bit'.
3477         * doc/tm.texi: Change `-bits' to ` bits'.
3478
3479 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
3480
3481         * gcse.c (hoist_code): Rewrite to only get list of dominated
3482         blocks once per BB. Also fix reversed test (by removing need for
3483         the test at all).
3484
3485 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
3486
3487         * cpphash.h (_cpp_set_trad_context): Remove.
3488         * cpplib.c (prepare_directive_trad): Do nothing for #define.
3489         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
3490         * cpptrad.c: Update comments.
3491         (_cpp_read_logical_line_trad): Let scan_logical_line handle
3492         updating the current context.
3493         (scan_logical_line): Update the current context.
3494         (_cpp_create_trad_definition): Similarly.
3495         (_cpp_set_trad_context): Remove.
3496
3497 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
3498
3499         PR preprocessor/7070
3500         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
3501
3502 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
3503
3504         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
3505         config/xtensa/xtensa.c (xtensa_return_addr): New function.
3506         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
3507         config/xtensa/xtensa.md (fix_return_addr): New pattern.
3508
3509 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3510
3511         * mips.c (coprocessor_operand, coprocessor2_operand,
3512         symbolic_operand): Move prototypes from here...
3513         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
3514         symbolic_operand): ...to here.
3515
3516 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3517
3518         * config/sh/crt1.asm: remove _stack label definition
3519         and sentinel value.
3520
3521 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3522
3523         * varasm.c: Include real.h before output.h.
3524
3525 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
3526
3527         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
3528         check for TARGET_ALTIVEC.
3529
3530 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
3531
3532         * config.gcc (vax-*-vms*): Make obselete.
3533
3534 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3535
3536         * gcc.c (warn_std): Delete.
3537
3538 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
3539
3540         * doc/extend.texi: Fix formatting of last checkin.
3541
3542 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3543
3544         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
3545         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
3546
3547 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
3548
3549         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3550         discrepancies from motorola's documentation.
3551
3552 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
3553
3554         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
3555         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
3556
3557         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
3558         produce a 32 bit result before normalization, then normalize with a
3559         left shift.  Compute approximative error of 2nd reciprocal
3560         approximation in 2's complement.  Fix mask generation from upper
3561         longword of second divide stage result.
3562         For large divisor, fix shift count used to truncate first stage
3563         divide result; make decision if to adjust upwards based on comparison
3564         of higher parts of normalized values.
3565         (udivdi): Likewise.  Undo normalization of result for large divisor
3566         case.
3567
3568 2002-06-25  David S. Miller  <davem@redhat.com>
3569
3570         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
3571
3572 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
3573
3574         * cpplib.c (do_include_common): Revert to correct line number
3575         if -traditional.
3576         * cpptrad.c (scan_out_logical_line): Treat null directive as
3577         white space.  Invlidate MI optimization for non-whitespace
3578         text outside a directive.
3579
3580 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3581
3582         * Makefile.in (SHELL): Set to @SHELL@.
3583         * fixinc/Makefile.in (SHELL): Likewise.
3584
3585         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
3586         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
3587         initialization.
3588
3589 2002-06-24  Jeff Law <law@redhat.com>
3590
3591         * flow.c (propagate_one_insn): When removing an insn
3592         with a REG_LIBCALL note but not the entire libcall sequence,
3593         delete the associated REG_RETVAL note.
3594
3595 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
3596
3597         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
3598         (udivsi3): Likewise.  Rewrite SH1 implementation.
3599         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
3600         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
3601         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
3602         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
3603         (_moddi3): Likewise.
3604
3605         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
3606
3607         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
3608         arguments into account for stack_regs.
3609
3610 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
3611
3612         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
3613         in examples.
3614
3615 2002-06-24  Art Haas  <ahaas@neosoft.com>
3616
3617         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
3618         * doc/tm.texi (Frame Layout): Likewise.
3619
3620 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
3621
3622         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
3623         Set float_format to i128.
3624
3625 2002-06-24  David S. Miller  <davem@redhat.com>
3626
3627         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
3628         32-bit ABI libfuncs to NULL.
3629
3630         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
3631         strings instead of quoted strings for code blocks.
3632
3633         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
3634         optabs if op1 is const0_rtx.
3635
3636         * Makefile.in (GTFILES): Add basic-block.h
3637         * basic-block.h (label_value_list, tail_recursion_label_list):
3638         Mark with GTY.
3639
3640 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
3641
3642         * cpptrad.c (scan_out_logical_line): Check recursing only when
3643         we know we have a macro invocation in the function-like case.
3644         Only call _cpp_handle_directive if we know we have a good
3645         directive, or we want to reject a bad directive.
3646
3647 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
3648
3649         * doloop.c (doloop_valid_p): Correct comment.
3650         (doloop_modify_runtime <abs_inc != 1>): Simplify.
3651         (doloop_modify_runtime <do-while>): Don't emit code when NE.
3652
3653 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
3654
3655         * config.gcc: Add support for ip2k.
3656
3657 2002-06-23  Jan Hubicka  <jh@suse.cz>
3658             Jeff Law <law@redhat.com>
3659
3660         * function.h (struct emit_status): Clarify potential contents
3661         of regno_reg_rtx array.
3662         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
3663         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
3664
3665         * reg-stack.c (convert_regs_exit): Push the registers to stack in
3666         proper order.
3667
3668 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
3669
3670         PR middle-end/6963
3671         * function.c (assign_stack_temp_for_type): Do not return
3672         the same MEM rtx for multiple uses of a stack slot.
3673
3674 2002-06-22  David S. Miller  <davem@redhat.com>
3675
3676         PR target/6841 target/6770 target/6719
3677         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
3678         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
3679         GENERAL_OR_EXTRA_FP_REGS.
3680
3681 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
3682
3683         * cpptrad.c (struct fun_macro): Add line number.
3684         (scan_out_logical_line): Set it, and use it to report unterminated
3685         macro invocations.
3686
3687 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3688
3689         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
3690         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
3691         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
3692         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
3693         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
3694         REGEXP_ONEOF, check_name): Const-ify.
3695
3696 2002-06-21  Matt Thomas  <matt@3am-software.com>
3697
3698         * config/vax/vax.c (vax_output_function_prologue): Use
3699         REGISTER_PREFIX.  Fix some indentation.
3700         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
3701         (VAX_ISTREAM_SYNC): Define.
3702         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
3703         i-stream sync to the end.
3704         (REGISTER_PREFIX): Define as "".
3705         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
3706
3707 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
3708
3709         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
3710         configurations.
3711
3712 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3713
3714         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
3715         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
3716
3717 2002-06-21  Matt Thomas  <matt@3am-software.com>
3718
3719         * config/vax/netbsd.h: Adjust a comment.
3720         (TARGET_DEFAULT): Redefine as 0.
3721
3722 2002-06-21  Richard Henderson  <rth@redhat.com>
3723
3724         * bb-reorder.c (make_reorder_chain_1): Search harder for the
3725         vax casesi fallthru edge.
3726         * cfglayout.c (cleanup_unconditional_jumps): Use
3727         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
3728         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
3729         block after ADDR_VEC.
3730
3731 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3732
3733         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
3734
3735 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
3736
3737         * cpperror.c (cpp_error): For traditional CPP, default to
3738         diagnostics on pfile->line.
3739         * cpplib.c (prepare_directive_trad): Set line number for
3740         diagnostics for #define too.
3741         * cpptrad.c (skip_whitespace): Skip comments properly.
3742         (_cpp_expansions_different_trad): Initialize quote2.
3743
3744 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
3745
3746         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
3747         * config/mmix/mmix.h: Ditto.
3748         * config/mmix/mmix-protos.h: Ditto.
3749         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
3750         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
3751         comment.  Comment extra CC modes.
3752
3753 2002-06-20 Jan Hubicka  <jh@suse.cz>
3754
3755         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
3756         (scope_to_insns_finalize): Do not call set_block_levels; handle
3757         sequences.
3758         (choose_inner_scope): New.
3759         * rtl.h (choose_inner_scope): Declare.
3760
3761 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3762
3763         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
3764         HOST_WIDE_INT.
3765         * pa.c (pa_asm_output_mi_thunk): Likewise.
3766         (n_deferred_plabels): Change type to size_t.
3767         (output_deferred_plabels, output_call): Use size_t instead of int.
3768
3769 2002-06-20  Richard Henderson  <rth@redhat.com>
3770
3771         PR target/4041
3772         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
3773         pattern and adjust constraints for coldfire.
3774
3775 2002-06-20  Richard Henderson  <rth@redhat.com>
3776
3777         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
3778
3779 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
3780
3781         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
3782
3783 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
3784
3785         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
3786
3787 2002-06-20  Stan Shebs  <shebs@apple.com>
3788
3789         * dominance.c: Include errors.h instead of error.h.
3790
3791 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
3792
3793         * cppexp.c (cpp_interpret_integer): Don't force traditional
3794         numbers to be unsigned.
3795         * cpplib.c (prepare_directive_trad): Set line number for
3796         diagnostics.
3797         * cpptrad.c (scan_out_logical_line): Continue scanning out
3798         at start of buffer.
3799         * gcc.c (trad_capable_cpp): Use cc1 always.
3800
3801 2002-06-20  Jeffrey Law  <law@redhat.com>
3802
3803         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
3804         elimination in leaf functions by default yet.
3805
3806 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
3807
3808         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
3809
3810 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3811
3812         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
3813         multilibs.
3814         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
3815         Fixes PR other/6836.
3816
3817 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
3818                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
3819
3820         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
3821
3822         * basic-block.h: Do not include et-forest.h
3823         (dominance_info): Declare as struct dominance-info.
3824         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
3825         deleting block.
3826         * dominance.c (struct dominance_info): Define.
3827         (BB_NODE, SET_BB_NODE): New macros.
3828         (bb_hash_func, bb_eq_func): Kill.
3829         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
3830         nearest_common_dominator, dominated_by_p, recount_dominator,
3831         add_to_dominance_info, delete_from_dominance_info): update for new
3832         representation.
3833         (get_dominated_by, redirect_immediate_dominators): Rewrite using
3834         enumerate_sons.
3835         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
3836         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
3837         structure.
3838
3839         * et-forest.h: Update copyright; revamp all function to operate on
3840         nodes
3841         (et_forest_value): Kill.
3842         (et_forest_enumerate_sons, et_forest_node_value): New.
3843         * et-forest.c: Update copyright.
3844         * et-forest.h: Update copyright; revamp all function to operate on
3845         nodes
3846         (et_forest_value): Kill.
3847         (et_forest_enumerate_sons, et_forest_node_value): New.
3848
3849         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3850
3851         * basic-block.h: Inlude et-forest.h
3852         (basic_block_def): Kill dominator.
3853         (dominance_info): New type.
3854         (loops): Use dominace_info.
3855         (dominace handling functions): Take dominace_info as argument
3856         instead of bitmaps.
3857         (create_preheader): Likewise.
3858         * cfg.c (entry_exit_blocks): Kill dominator.
3859         (dump_flow_info): Do not dump dominators.
3860         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
3861         dominators.
3862         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
3863         (flow_loops_pre_header_scan, make_forwarder_block,
3864         canonicale_loop_headers, flow_loops_find): Likewise.
3865         * dominance.c: Include error.h
3866         (idoms_to_doms): Kill.
3867         (bb_hash_func, bb_eq_func): New static functions.
3868         (debug_dominace_info): New global function.
3869         (calculate_dominance_info): Use new et forest structure.
3870         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
3871         get_dominated_by, redirect_immediate_dominators,
3872         nearest_common_dominator, dominated_by_p, verify_dominators,
3873         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
3874         delete_from_dominance_info): New global functions.
3875         * gcse.c (domnators): CHange to dominance_info.
3876         (alloc_hoist_mem): Do not alloc dominators
3877         (free_code_hoist_mem): Use free_dominance_info.
3878         (compute_code_hoist_data): Use dominance_info.
3879         (hoist_code): Likewise.
3880         * ifcvt.c (post_dominators): Likewise.
3881         (find_if_case_2, if_convert): Likewise.
3882         * predict.c (process_note_predictions, process_note_prediction,
3883         estimate-probability): Likewise.
3884         * sched-rgn.c (find_rgns, init_regions): Likewise.
3885         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
3886         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
3887         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
3888         find_evaluations, convert_to_ssa): Likewise.
3889         * ssa.h (compute_dominance_frontiers): Likewise.
3890
3891         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
3892
3893         * Makefile.in (et-forest.c): Add.
3894         * et-forest.c: New file.
3895         * at-forest.h: New file.
3896
3897 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3898
3899         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
3900         array size calculation.
3901         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
3902         Likewise.
3903
3904         * diagnostic.c (diagnostic_kind_text): Const-ify.
3905         * gengtype.c (lang_names): Likewise.
3906
3907 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
3908
3909         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
3910
3911 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3912
3913         * config/sol2.h: New file.
3914         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
3915         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
3916         (sparc-*-chorusos*): Likewise.
3917         (sparc-*-elf*): Likewise.
3918         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
3919         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
3920         (sparc-hal-solaris2*): Likewise.
3921         (sparc-*-solaris2*): Likewise.
3922         (sparclite-*-elf*): Likewise.
3923         (sparc86x-*-elf*): Likewise.
3924         (sparc64-*-elf*): Likewise.
3925
3926         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
3927         config/sol2.h.
3928         (ASM_SPEC): Override config/sol2.h version for now.
3929         Removed obsolete GAS_REJECTS_MINUS_S variant.
3930         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
3931         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
3932         (TARGET_OS_CPP_BUILTINS): Likewise.
3933         Assert system=unix.
3934         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
3935         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
3936         config/sol2.h.
3937         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
3938         (ASM_CPU_SPEC): Define.
3939         (SUBTARGET_EXTRA_SPECS): Define.
3940
3941         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
3942         in config/sparc/sol2.h.
3943         (ASM_SPEC): Moved to config/sol2.h.
3944         (CPP_CPU_SPEC): Simplified.
3945         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
3946         consistency.
3947         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
3948         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
3949         STARTFILE_ARCH64_SPEC.
3950         (STARTFILE_SPEC): Moved to config/sol2.h
3951         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
3952         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
3953         (LINK_ARCH64_SPEC): Simplified.
3954         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
3955         (LINK_SPEC): Moved to config/sol2.h
3956
3957         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
3958         config/sol2.h.
3959         Use BITS_PER_WORD for size.
3960         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
3961         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
3962         (CPP_PREDEFINES): Removed OS-specific part handled by
3963         TARGET_OS_CPP_BUILTINS.
3964         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
3965         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
3966         (ASM_SPEC): Moved to config/sol2.h.
3967         (PREFERRED_DEBUGGING_TYPE): Likewise.
3968         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
3969         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
3970         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
3971         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
3972
3973         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
3974         * config/i386/sol2gas.h: Removed.
3975
3976 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
3977
3978         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
3979
3980 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
3981
3982         * gcc.c-torture/execute/simd-1.c: New.
3983
3984         * gcc.dg/simd-1.c: New.
3985
3986         * doc/extend.texi (Vector Extensions): Document that we can
3987         specify simd types not specifically supported by the hardware.
3988         Document that simd types can be used as function arguments.
3989         Document that signness does make a difference in SIMD types.
3990         Misc cleanups and revisions to the vector extensions section.
3991
3992         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
3993         constants.
3994
3995         * expr.c (vector_mode_valid_p): New.
3996
3997         * expr.h: Add vector_mode_valid_p.
3998
3999         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
4000
4001         * c-common.c (type_for_mode): Always build vector nodes regardless
4002         of VECTOR_MODE_SUPPORTED_P.
4003         (handle_mode_attribute): Error if we can't emulate a nonexisting
4004         vector mode.
4005         (handle_vector_size_attribute): Same.
4006
4007         * optabs.c (expand_binop): Open-code vector operations.
4008         (expand_unop): Open-code vector unops.
4009         (expand_vector_binop): New.
4010         (expand_vector_unop): New.
4011
4012         * c-typeck.c (build_binary_op): Allow vectors in binops.
4013         Allow vectors in conditional operatiors.
4014         (build_unary_op): Allow vectors in unary minus.
4015
4016         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
4017         TARGET_ALTIVEC.
4018
4019 2002-05-20  Richard Henderson  <rth@redhat.com>
4020
4021         * c-common.c (c_common_get_alias_set): Correctly handle characters.
4022         Rearrange order of expressions; don't handle vectors here.
4023         * alias.c (get_alias_set): Let vectors match their components.
4024
4025 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
4026
4027         * config/mips/mips.c (mips_emit_prefetch): Use hints which
4028         match desired locality.
4029
4030 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
4031
4032         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
4033         (h8300_insert_attributes): New.
4034
4035 2002-06-19  Akim Demaille  <akim@epita.fr>
4036
4037         * c-parse.in (initelt: identifier ':' initval): Add an empty
4038         action to fix a type clash.
4039         (aliasdecl, classdef): Add the missing closing `;'.
4040         Whitespace changes.
4041         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
4042         $$ = $1 type clashes.
4043
4044 2002-06-19  Eric Christopher  <echristo@redhat.com>
4045