OSDN Git Service

* optabs.c (expand_binop): Fix nwords sign warnings.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2
3         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
4
5 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6                           Jason R. Thorpe <thorpej@wasabisystems.com>
7
8         config/sh reorganization to factor out endianness and coff:
9
10         * config/sh/little.h: New file.
11         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
12         defined, define to 0 to select big-endian.
13         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
14         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
15         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
16         * config/sh/t-be: New file.
17         * config/sh/t-le: New file.
18
19         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
20         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
21         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
22         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
23         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
24         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
25         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
26         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
27         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
28         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
29         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
30         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
31         (LINK_SPEC): Define to SH_LINK_SPEC.
32         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
33         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
34         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
35         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
36         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
37         * config/sh/coff.h: New file.
38         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
39         (TARGET_OBJFMT_CPP_BUILTINS): Define.
40         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
41         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
42         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
43         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
44         (PTRDIFF_TYPE): Likewise.
45         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
46         (CPP_PREDEFINES): Don't define.
47         (TARGET_OBJFMT_CPP_BUILTINS): Define.
48         (LINK_SPEC): Define to SH_LINK_SPEC.
49         (LINK_EMUL_PREFIX): Redefine.
50         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
51         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
52         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
53         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
54         (TARGET_OS_CPP_BUILTINS): Define.
55         (TARGET_DEFAULT): Redefine.
56         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
57         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
58         (LINK_SPEC): Don't redefine.
59         (LINK_DEFAULT_CPU_EMUL): Redefine.
60         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
61         * sh.c (sh_asm_named_section): Don't declare / define.
62         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
63         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
64         (sh64-*-elf* tm_file): Likewise.
65         (sh-*-rtemself* tm_file): Likewise.
66         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
67         (sh-*-linux* tmake_file): Add sh/t-le.
68         (sh-*-rtems* tm_file): Add sh/coff.h
69         (sh-*-* tm_file): Likewise.
70
71 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
72
73         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
74         CONSTANT_POOL_ADDRESS_P.
75
76         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
77
78 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
79             Jeff Law <law@redhat.com>
80
81         * optabs.c (expand_binop): Fix nwords sign warnings.
82         generate pseudo for add_optab.
83
84         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
85         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
86
87 2002-05-28      Marc Espie <espie@openbsd.org>
88
89         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove, 
90         inherited from gas.h.
91         (ASM_QUAD):  Undef.  OpenBSD does not support it.
92
93 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
94
95         * doc/install.texi (binaries): Change mingw binaries
96         link to www.mingw.org.
97
98 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
99
100         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
101
102 2002-05-28  Richard Henderson  <rth@redhat.com>
103
104         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
105         bottom alignment for leaf functions.
106
107 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
108
109         * config/pa/milli32.S, config/pa/lib1funcs.asm,
110         config/sparc/sol2-g1.asm: Delete unused files.
111
112 2002-05-28  Richard Henderson  <rth@redhat.com>
113
114         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
115
116         * flow.c (calculate_global_regs_live): Rename call_used to
117         invalidated_by_call.  Initialize from regs_invalidated_by_call
118         instead of call_used_regs.
119
120         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
121         DECL_EXTERNAL.
122
123 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
124
125         * tree.h: Forward-declare struct realvaluetype.
126         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
127         contain it.
128         (TREE_REAL_CST_PTR): New accessor.
129         (TREE_REAL_CST): Update.
130         * real.h: Include machmode.h.
131         (realvaluetype): Make it struct realvaluetype, not a typedef.  
132         (build_real): Prototype here.
133
134         * tree.c: Include real.h.
135         (build_real): Allocate the REAL_VALUE_TYPE as a separate  
136         object in GC memory, set TREE_REAL_CST_PTR to point to it. 
137         (build_real_from_int_cst): Use build_real.
138         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
139         REAL_CST.
140
141         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
142         fold-const.c, print-tree.c, real.c: Include real.h.
143         * Makefile.in: Update dependency lists.
144
145 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
146
147         * basic-block.h (last_basic_block): Declare.
148         (expunge_block_nocompact): Declaration removed.
149         (compact_blocks): Declare.
150         * cfg.c (last_basic_block): New variable.
151         (expunge_block_nocompact): Removed.
152         (expunge_block): Do not compact basic blocks.
153         (compact_blocks): New.
154         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
155         longer change.
156         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
157         last_basic_block.
158         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
159         real positions of blocks.
160         (delete_unreachable_blocks): Simplified -- quadratic behavior now
161         cannot occur.
162         (cleanup_cfg): Compact blocks.
163         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
164         basic_block_info varray.
165         (flow_delete_block): Comment update.
166         (back_edge_of_syntactic_loop_p): Modify position check code.
167         (verify_flow_info): Update checking.
168         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
169         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
170         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
171         indices no longer change.
172         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
173         last_basic_block.
174         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
175         * profile.c (branch_prob): Compact blocks.
176         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
177         last_basic_block.
178
179 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
180
181         * config/h8300/h8300.md (two anonymous patterns): New.
182
183 2002-05-28  David S. Miller  <davem@redhat.com>
184
185         * config/sparc/sparc.md (cpu): Tidy.
186         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
187         'trap'.
188         (in_call_delay): Delete reference to 'return' type.
189         (eligible_for_return_delay, in_return_delay, define_delay
190         referencing those): Delete.
191         (rest of file): Use new type attributes as appropriate.
192         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
193         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
194         * config/sparc/ultra1_2.md (us1_single): New reservation.
195         (us1_ialuX): Likewise.
196         * config/sparc/ultra3.md (us3_single): Likewise.
197         (us3_ialuX): Likewise.
198         (us3_imul, us3_idiv): Tweak.
199         
200 2002-05-28  Richard Henderson  <rth@redhat.com>
201
202         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
203         STRING_CST.
204
205 2002-05-28  Richard Henderson  <rth@redhat.com>
206
207         * config.gcc: Obsolete mn10200.
208
209 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
210
211         * cppexp.c (interpret_number): Optimize for single-digit
212         and less-than-half-precision cases.
213         (num_trim, num_positive, num_div_op): Cast constants.
214
215 2002-05-27  Bo Thorsen  <bo@suse.de>
216
217         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
218         3.1 branch. The file was made by Jakub Jelinek.
219         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
220         support so multilib doesn't break. And don't define this at all
221         when -Dinhibit_libc is used.
222         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
223         * config/i386/t-linux64: Implement full multilib support. Patch
224         originally done by Andreas Jaeger and Jakub Jelinek.
225
226 2002-05-27  Roger Sayle  <roger@eyesopen.com>
227
228         * c-common.c: Add support for __attribute__((nothrow)) to specify
229         that a function cannot throw an exception (using TREE_NOTHROW).
230         (handle_nothrow_attribute): New function to process this attribute.
231
232         * doc/extend.texi: Document the new nothrow function attribute.
233
234 2002-05-27  H.J. Lu  (hjl@gnu.org)
235
236         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
237         (num_positive): Likewise.
238         (num_div_op): Likewise.
239
240 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
241
242         * c-common.c (c_common_init): Always use intmax_t.
243
244 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
245
246         * c-common.c (c_common_init): Use intmax_t for now.
247
248 2002-05-24  Andrew Haley  <aph@redhat.com>
249
250         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
251         if T is a boolean type.
252
253 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
254
255         * basic-block.h (last_basic_block): Defined as synonym for
256         n_basic_blocks.
257         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
258         flow_depth_first_order_compute, flow_preorder_transversal_compute,
259         flow_dfs_compute_reverse_init): Replaced relevant occurences of
260         n_basic_blocks with last_basic_block.
261         * cfgbuild.c (make_edges): Likewise.
262         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
263         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
264         * combine.c (combine_instructions): Likewise.
265         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
266         iterative_dataflow_bitmap): Likewise.
267         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
268         calc_idoms, idoms_to_doms): Likewise.
269         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
270         Likewise.
271         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
272         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
273         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
274         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
275         delete_null_pointer_checks, compute_code_hoist_vbeinout,
276         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
277         compute_store_table, build_store_vectors): Likewise.
278         * haifa-sched.c (sched_init): Likewise.
279         * ifcvt.c (if_convert): Likewise.
280         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
281         pre_edge_lcm, compute_available, compute_nearerout,
282         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
283         Likewise.
284         * predict.c (estimate_probability, process_note_prediction,
285         note_prediction_to_br_prob): Likewise.
286         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
287         * recog.c (split_all_insns, peephole2_optimize): Likewise.
288         * regrename.c (copyprop_hardreg_forward): Likewise.
289         * resource.c (init_resource_info): Likewise.
290         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
291         init_regions, schedule_insns): Likewise.
292         * ssa-ccp.c (ssa_const_prop): Likewise.
293         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
294         * ssa.c (compute_dominance_frontiers,
295         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
296
297         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
298         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
299         sizes consistently.
300
301 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
302
303         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
304         new.
305         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
306         hoist_insn_after, hoist_insn_to_edge): New.
307
308 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
309
310         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
311         (PROP_FINAL): Include.
312         * flow.c (life_analysis, update_life_info,
313         init_propagate_block_info, mark_set_1, mark_used_rgs):
314         Support SCAN_DEAD_STORE.
315
316 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
317
318         * c-common.c (c_common_init): Set CPP arithmetic precision.
319         * cppexp.c (cpp_num_part): Move typedef ...
320         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
321         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
322         (sanity_checks): Update.
323
324 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
325
326         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
327         (mkheaders): New rule.
328         (install-mkheaders): New rule.
329         * configure.in (all_outputs): Add mkheaders.
330         * configure: Regenerate.
331         * mkheaders.in: New file.
332
333 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
334
335         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
336
337 2002-05-26  Andreas Jaeger  <aj@suse.de>
338
339         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
340
341 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
342
343         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
344         right_shift): Remove.
345         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
346         HIGH_PART): New.
347         (struct op): Use cpp_num.
348         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
349         num_part_mul, num_unary_op, num_binary_op, num_negate,
350         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
351         num_div_op, num_lshift, num_rshift, append_digit): New.
352         (interpret_number, parse_defined, eval_token, reduce): Update
353         for two-integer arithmetic.
354         (binary_handler): New typedef.
355         (optab): Update.
356         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
357         (_cpp_parse_expr, reduce): Update to handle two-integers.
358         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
359
360 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
361
362         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
363         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
364         branch insn into account, do not assume 1.
365         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
366         over single word insn.  Handle upper half of I/O space too.
367         * config/avr/avr.md (*sbrx_branch): Use it.
368         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
369         (*sbix_branch, *sbix_branch_bit7): Likewise.
370         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
371         Use RTL peepholes to optimize register operand sign tests.
372
373 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
374
375         * config/avr/avr.c (avr_asm_only_p): New variable.
376         (avr_override_options): Set it here if AVR1.
377         (asm_file_start): Test it here, report an error if set.
378
379 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
380
381         * alias.c: Fix formatting.
382         * attribs.c: Likewise.
383         * bb-reorder.c: Likewise.
384         * bitmap.c: Likewise.
385         * bitmap.h: Likewise.
386         * builtins.c: Likewise.
387
388 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
389
390         * reload.c (find_valid_class): Accept new argument DEST,
391         choose class accordingly.
392         (push_reload): Update callers.
393
394 2002-05-26  Andreas Jaeger  <aj@suse.de>
395
396         * combine.c (combine_instructions): Do not indent #if for
397         traditional C.
398
399 2002-05-25  Richard Henderson  <rth@redhat.com>
400
401         * c-pragma.c (apply_pragma_weak): Convert value identifier to
402         string for decl_attributes.
403         (handle_pragma_weak): Call assemble_alias if we're modifying
404         an existing decl.
405
406 2002-05-25  Richard Henderson  <rth@redhat.com>
407
408         PR target/6788
409         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
410         using rtl instead of fprintf.
411         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
412         * config/sparc/sparc-protos.h: Update.
413
414 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
415
416         * Makefile.in (C_COMMON_H): Fix.
417         Update other targets.
418         * c-common.c: Don't include c-lex.h.
419         (builtin_define_with_value): Make static and prototype.
420         (builtin_define_std): Move from c-lex.h.
421         * c-common.h (init_c_lex): Move from c-lex.h.
422         * c-decl.c: Don't include c-lex.h.
423         (make_pointer_declarator): Move from c-parse.in.
424         * c-lex.c: Don't include c-lex.h.
425         * c-lex.h: Remove.
426         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
427         (make_pointer_declarator): Move to c-decl.c.
428         * c-pragma.c: Don't include c-lex.h.
429         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
430         * c-tree.h (make_pointer_declarator): New.
431 doc:
432         * passes.texi, tm.texi: Update.
433 objc:
434         * Make-lang.in: Update and correct.
435         * objc-act.c: Don't include c-lex.h or cpplib.h.
436 treelang:
437         * treetree.c: Don't include c-lex.h.
438 config:
439         * darwin-c.c: Don't include c-lex.h.
440         * c4x/c4x-c.c: Don't include c-lex.h.
441         * c4x/t-c4x: Update.
442         * i370/i370-c.c: Don't include c-lex.h.
443         * i370/t-i370: Update.
444         * i960/i960-c.c: Don't include c-lex.h.
445         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
446         * i960/t-960bare: Update.
447         * i960/t-vxworks: Update.
448         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
449         * rs6000/t-darwin: Update.
450         * rs6000/t-rs6000-c-rule: Update.
451         * v850/v850-c.c: Don't include c-lex.h.
452         * v850/v850.c: Don't include c-lex.h or cpplib.h.
453
454
455 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
456
457         * tree.def: Fix typos.
458         * doc/install.texi: Likewise.
459
460 2002-05-25  Richard Henderson  <rth@redhat.com>
461
462         * configure.in (HAVE_AS_TLS): Add ia64 test.
463         * configure: Rebuild.
464         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
465         (override_options): Set it.
466         (TARGET_HAVE_TLS): New.
467         (sdata_symbolic_operand): Look for 's'.
468         (tls_symbolic_operand): New.
469         (ia64_expand_load_address): Abort for tls symbols.
470         (gen_tls_get_addr): New.
471         (gen_thread_pointer): New.
472         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
473         (rtx_needs_barrier): Add new unspecs.
474         (ia64_encode_section_info): Handle tls symbols.
475         (ia64_strip_name_encoding): Strip two encoding chars.
476         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
477         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
478         (TARGET_OPTIONS): Add tls-size.
479         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
480         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
481         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
482         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
483         (movsf, movdf): Likewise.
484         (movdi_symbolic): Use match_scratch.  Don't split if we won't
485         have a scratch availiable.
486         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
487         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
488         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
489         * config/ia64/ia64-protos.h: Update.
490         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
491         sdata_symbolic_operand.
492         (ASM_OUTPUT_LABELREF): Strip two characters.
493
494 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
495
496         * combine.c (simplify_set): Remove an unnecessary subreg.
497
498 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
499
500         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
501
502         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
503
504 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
505
506         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
507
508 2002-05-25  Roger Sayle  <roger@eyesopen.com>
509
510         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
511         (cond (compare x y) 0) into the equivalent (cond x y).
512
513 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
514
515         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
516
517 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
518
519         * config.gcc: Remove all stanzas for previously obsoleted
520         systems.  Where necessary, add explicit error stanzas to
521         prevent removed systems from being misidentified as something
522         else.  Begin a fresh obsoletions list, with the systems that
523         were reprieved last round.
524         * doc/install.texi: Remove all mention of dead targets.
525         * fixinc/mkfixinc.sh: Likewise.
526
527         * config/arm/arm.h: Bit 31 of target_flags is no longer
528         reserved.
529
530         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
531         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
532         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
533         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
534         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
535         config/alpha/osf12.h, config/alpha/osf2or3.h,
536         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
537         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
538         config/clipper/clipper-protos.h, config/clipper/clipper.c,
539         config/clipper/clipper.h, config/clipper/clipper.md,
540         config/clipper/clix.h, config/convex/convex-protos.h,
541         config/convex/convex.c, config/convex/convex.h,
542         config/convex/convex.md, config/convex/fixinc.convex,
543         config/convex/proto.h, config/elxsi/elxsi-protos.h,
544         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
545         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
546         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
547         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
548         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
549         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
550         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
551         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
552         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
553         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
554         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
555         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
556         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
557         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
558         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
559         config/m68k/altos3068.h, config/m68k/apollo68.h,
560         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
561         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
562         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
563         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
564         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
565         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
566         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
567         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
568         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
569         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
570         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
571         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
572         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
573         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
574         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
575         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
576         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
577         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
578         config/mips/dec-osf1.h, config/mips/elflorion.h,
579         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
580         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
581         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
582         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
583         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
584         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
585         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
586         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
587         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
588         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
589         config/ns32k/sequent.h, config/ns32k/tek6000.h,
590         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
591         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
592         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
593         config/sparc/rtems.h, config/we32k/we32k-protos.h,
594         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
595         Delete file.
596
597 2002-05-24  Richard Henderson  <rth@redhat.com>
598
599         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
600         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
601         * config/i386/i386.c (tls_model_chars): Add leading space.
602         (tls_symbolic_operand): Don't bias by 1.
603         (legitimize_address): Don't unbias by 1.
604
605 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
606
607         * lcm.c (optimize_mode_switching): Change bb used as indices
608         to bb->index.
609
610 2002-05-24  Richard Henderson  <rth@redhat.com>
611
612         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
613         of update_life_info_in_dirty_blocks.
614
615 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
616
617         PR other/6782
618         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
619
620 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
621
622         PR preprocessor/6780
623         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
624
625 2002-05-24  Jim Blandy  <jimb@redhat.com>
626
627         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
628         entry with a type code of zero, marking the end of the compilation
629         unit's macro info.
630
631 2002-05-24  Richard Henderson  <rth@redhat.com>
632
633         * varasm.c (asm_output_bss): Always output one byte.
634         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
635
636 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
637
638         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
639         namespace.
640
641 2002-05-24  Andreas Jaeger  <aj@suse.de>
642
643         * ggc-page.c (alloc_page): Cast variables of type size_t to
644         unsigned long, adjust printf format string.
645         (ggc_alloc): Likewise.
646         (ggc_print_statistics): Likewise.
647         (ggc_print_statistics): Correct printf format string for SCALE to
648         use unsigned long.
649
650 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
651
652         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
653
654 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
655             Zack Weinberg     <zack@codesourcery.com>
656
657         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
658         quoted strings.
659         * dwarf2out.c (lookup_filename): Properly quote filename in .file
660         directive in assembly file.
661         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
662         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
663         * config/pj/pj.h (ASM_FILE_START): Likewise.
664         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
665         * config/avr/avr.c (asm_file_end): Likewise.
666         * toplev.c (output_quoted_string): Handle possibly signed plain
667         char.
668         * toplev.h (output_clean_symbol_name): Declare
669         * toplev.c (output_clean_symbol_name): Define.
670         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
671         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
672
673 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
674
675         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
676
677 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
678
679         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
680         of size of unsigned.
681
682 2002-05-23  Richard Henderson  <rth@redhat.com>
683
684         * configure.in (HAVE_AS_TLS): New test.
685         * config.in, configure: Rebuild.
686         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
687         (ix86_tls_dialect_string, ix86_tls_dialect): New.
688         (override_options): Set it.
689         (tls_model_chars, tls_symbolic_operand): New.
690         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
691         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
692         (local_exec_symbolic_operand): New.
693         (get_pic_label_name): Merge into output_set_got.
694         (ix86_asm_file_end): Emit pic_label_name if defined.
695         (legitimate_constant_p, constant_address_p): New.
696         (legitimate_pic_operand_p): New.
697         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
698         (legitimate_address_p): Likewise.
699         (ix86_encode_section_info): Rename from i386_; handle tls decls.
700         (ix86_strip_name_encoding): New.
701         (get_thread_pointer): New.
702         (legitimize_address): Handle tls symbols.
703         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
704         Remove UNSPEC_PLT.
705         (struct machine_function): Add some_ld_name.
706         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
707         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
708         (output_addr_const_extra): New.
709         (maybe_get_pool_constant): New.
710         (ix86_split_to_parts): Use it.
711         (ix86_expand_move): Handle tls symbols.
712         (ix86_tls_get_addr): New.
713         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
714         (TARGET_OPTIONS): Add tls-dialect.
715         (CONSTANT_ADDRESS_P): Use new out-of-line function.
716         (LEGITIMATE_CONSTANT_P): Likewise.
717         (LEGITIMATE_PIC_OPERAND_P): Likewise.
718         (TARGET_STRIP_NAME_ENCODING): New.
719         (ASM_OUTPUT_LABELREF): New.
720         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
721         (OUTPUT_ADDR_CONST_EXTRA): New.
722         (PREDICATE_CODES): Update.
723         (ix86_tls_dialect, ix86_tls_dialect_string): New.
724         * config/i386/i386.md: Regroup and renumber unspec constants.
725         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
726         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
727         (tls_global_dynamic, tls_local_dynamic_base): New.
728         (tls_local_dynamic_once): New.
729         * config/i386/i386-protos.h: Update.
730
731 2002-05-23  Richard Henderson  <rth@redhat.com>
732
733         * genemit.c (gen_insn): Print file:lineno comment before function.
734         (main): likewise.
735         * gensupport.c (struct queue_elem): Add filename member.
736         (queue_pattern): Initialize it; update all callers.
737         (process_include): Don't free filename.
738         (read_md_rtx): Set read_rtx_filename.
739
740 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
741
742         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
743
744 2002-05-23  Richard Henderson  <rth@redhat.com>
745
746         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
747
748 2002-05-23  Richard Henderson  <rth@redhat.com>
749
750         * doc/extend.texi (C++98 Thread-Local Edits): Update with
751         commentary from Mark.
752
753 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
754
755         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
756         Use FOR_EACH_BB macros to iterate over basic block chain.
757         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
758         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
759         Likewise.
760         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
761         find_unreachable_blocks, create_edge_list, verify_edge_list,
762         remove_fake_edges, add_noreturn_fake_exit_edges,
763         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
764         Likewise.
765         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
766         find_sub_basic_blocks): Likewise.
767         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
768         Likewise.
769         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
770         Likewise.
771         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
772         Likewise.
773         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
774         commit_edge_insertions, commit_edge_insertions_watch_calls,
775         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
776         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
777         * conflict.c (conflict_graph_compute): Likewise.
778         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
779         df_modified_p, df_refs_unlink, df_dump): Likewise.
780         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
781         * final.c (compute_alignments): Likewise.
782         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
783         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
784         count_or_remove_death_notes): Likewise.
785         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
786         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
787         classic_gcse, compute_transp, cprop, compute_pre_data,
788         compute_transpout, invalidate_nonnull_info,
789         delete_null_pointer_checks_1, delete_null_pointer_checks,
790         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
791         compute_store_table, build_store_vectors, store_motion): Likewise.
792         * global.c (global_conflicts, mark_elimination): Likewise.
793         * graph.c (print_rtl_graph_with_bb): Likewise.
794         * haifa-sched.c (sched_init): Likewise.
795         * ifcvt.c (if_convert): Likewise.
796         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
797         compute_available, compute_nearerout, compute_rev_insert_delete,
798         optimize_mode_switching): Likewise.
799         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
800         * predict.c (estimate_probability, note_prediction_to_br_prob,
801         propagate_freq, counts_to_freqs, expensive_function_p,
802         estimate_bb_frequencies): Likewise.
803         * profile.c (instrument_edges, get_exec_counts,
804         compute_branch_probabilities, compute_checksum, branch_prob,
805         find_spanning_tree): Likewise.
806         * recog.c (split_all_insns, peephole2_optimize): Likewise.
807         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
808         Likewise.
809         * regclass.c (scan_one_insn, regclass): Likewise.
810         * regmove.c (mark_flags_life_zones, regmove_optimize,
811         record_stack_memrefs): Likewise.
812         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
813         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
814         * resource.c (find_basic_block): Likewise.
815         * sched-ebb.c (schedule_ebbs): Likewise.
816         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
817         find_single_block_region, find_rgns, schedule_insns)
818         * sibcall.c (optimize_sibling_and_tail_recursive_call)
819         * ssa-ccp.c (optimize_unexecutable_edges,
820         ssa_ccp_df_delete_unreachable_insns): Likewise.
821         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
822         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
823         rename_block, convert_to_ssa, compute_conservative_reg_partition,
824         compute_coalesced_reg_partition, rename_equivalent_regs,
825         convert_from_ssa): Likewise.
826         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
827         process_for_unwind_directive): Likewise.
828
829         * df.c (FOR_ALL_BBS): Removed.
830         * gcse.c (struct null_pointer_info): Type of current_block field
831         changed.
832         (struct reg_avail_info): Type of last_bb field changed.
833         * config/ia64/ia64.c (block_num): Removed.
834         (need_copy_state): Type changed.
835         (last_block): New.
836
837 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
838
839         * cppinit.c (mark_named_operators): Split out from init_builtins.
840         (cpp_finish_options): Call it from here instead.
841
842 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
843
844         * builtin-attrs.def: Update copyright years.
845         (ATTR_NONNULL): New attribute identifier.
846         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
847         attribute tree lists.
848         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
849         format operand.
850         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
851         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
852         attribute lists.  Chain the appropriate nonnull attribute.
853         * c-format.c (check_format_arg): Remove null format string
854         warning.
855         * testsuite/gcc.dg/format/null-1.c: New test.
856
857 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
858
859         * Makefile.in (ADAC): Define.
860         (SYSLIBS): Define.
861         (.SUFFIXES): Move before language makefile fragments.
862         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
863
864 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
865
866         * varasm.c (make_decl_rtl): Don't allow weak variables to be
867         placed in common.
868
869 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
870
871         * cfg.c (dump_flow_info): Print results of
872         maybe_hot/probably_never_executed predicates.
873         * toplev.c (open_dump_file): Print function frequency.
874
875 2002-05-23  David S. Miller  <davem@redhat.com>
876
877         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
878         regsets.
879
880 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
881
882         * c-common.c (warn_nonnull): Declare.
883         (c_common_attribute_table): Add "nonnull" attribute.
884         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
885         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
886         check_function_arguments_recurse): New functions.
887         * c-common.h (warn_nonnull): Declare extern.
888         (check_function_arguments, check_function_arguments_recurse): New
889         prototypes.
890         * c-decl.c (c_decode_option): Add -Wnonnull option.
891         * c-format.c (set_Wformat): Set warn_nonnull if enabling
892         format checking.
893         (format_check_context): New structure.
894         (check_format_info_recurse): Remove recursion and rename to...
895         (check_format_arg): ...this.  Update comment.
896         (check_format_info): Use check_function_arguments_recurse.
897         * c-typeck.c (build_function_call): Call check_function_arguments
898         instead of check_function_format.
899         * doc/extend.texi: Document "nonnull" attribute.
900         * doc/invoke.texi: Docuemnt -Wnonnull option.
901         * testsuite/gcc.dg/nonnull-1.c: New test.
902         * testsuite/gcc.dg/nonnull-2.c: New test.
903
904 2002-05-23  David S. Miller  <davem@redhat.com>
905
906         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
907         * cfgcleanup.c (cleanup_cfg): If it is set do not
908         attempt to delete trivially dead insns.
909         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
910         * toplev.c (rest_of_compilation): Document non-trivial aspect
911         the RTL before optimize_save_area_alloca is run.
912
913 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
914
915         * c-lex.c (indent_level): Remove.
916         (cb_file_change, c_lex): Remove indent level handling.
917         * c-lex.h (indent_level): Remove.
918         * input.h (struct file_stack): Remove indent_level.
919         * toplev.c (push_srcloc): Remove indent_level handling.
920
921 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
922
923         PR target/6753
924         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
925         of x in constraints for clarity.
926         (sse_mov?fcc split): abort if op2 == op3.
927         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
928         sse_movsfcc_const0_4): Add earlyclobber.
929         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
930         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
931         Use Y instead of x in constraints.
932
933 2002-05-23  Richard Henderson  <rth@redhat.com>
934
935         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
936         (C++98 Thread-Local Edits): New subsection.
937
938         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
939         (ix86_arch): Set type to enum processor_type.
940
941         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
942         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
943
944 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
945
946         * configure.in: Fix as version test for binutils 2.12.1 releases
947         (without dates).
948         * configure: Rebuilt.
949
950 2002-05-23  Richard Henderson  <rth@redhat.com>
951
952         * config/i386/i386.c (get_pic_label_name): New.
953         (load_pic_register): Remove.
954         (output_set_got): New.
955         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
956         * config/i386/i386.md (UNSPEC_SET_GOT): New.
957         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
958         (prologue_set_got, prologue_get_pc): Remove.
959         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
960         (builtin_setjmp_receiver): Use gen_set_got.
961         * config/i386/i386-protos.h: Update.
962
963 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
964
965         * gcse.c (hash_expr): Do not use alias set for hashing.
966
967 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
968
969         * dbxout.c (dbxout_class_name_qualifiers): New function.
970         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
971
972 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
973
974         * cpperror.c (_cpp_begin_message): No special casing
975         of CPP_FATAL_LIMIT.
976         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
977         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
978         * cpplib.c (do_include_common): Use DL_ERROR.
979         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
980         (DL_ICE): Renumber.
981         * fix-header.c (read_scan_file): Update.
982
983 2002-05-22  Richard Henderson  <rth@redhat.com>
984
985         * config/i386/i386.c (ix86_expand_call): New function, extracted
986         from md call patterns.  Add pic_offset_table_rtx to
987         CALL_INSN_FUNCTION_USAGE when needed.
988         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
989         (call_value_pop, call_value, untyped_call): Likewise.
990         (call_exp, call_value_exp): Remove.
991         * config/i386/i386-protos.h: Update.
992
993 2002-05-22  Richard Henderson  <rth@redhat.com>
994
995         * varasm.c (default_section_type_flags): Check for VAR_DECL
996         before using DECL_THREAD_LOCAL.
997
998 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
999
1000         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
1001         (STARTFILE_SPEC): Delete PE crt0.o.
1002         * config/rs6000/aix51.h: Same.
1003         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
1004         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
1005         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
1006         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
1007         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
1008
1009 2002-05-22  Richard Henderson  <rth@redhat.com>
1010
1011         * varasm.c (default_section_type_flags): Handle tls data and
1012         default sections.
1013         (default_unique_section): Handle tls sections.
1014
1015 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
1016
1017         * configure.in (CROSS): Define NATIVE_CROSS.
1018         * configure: Regenerate.
1019         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
1020         (startfile_prefix_spec): New var.
1021         (static_specs): Add startfile_prefix_spec.
1022         (do_spec_2): Split out from..
1023         (do_spec): ..here.
1024         (main): Process startfile_prefix_spec.
1025         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
1026         dynamic linker.
1027         (STARTFILE_PREFIX_SPEC): Define.
1028         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
1029         absolute paths.
1030
1031 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1032
1033         * cpperror.c: Fix formatting.
1034         * cppexp.c: Likewise.
1035         * cppfiles.c: Likewise.
1036         * cpphash.c: Likewise.
1037         * cpphash.h: Likewise.
1038         * cppinit.c: Likewise.
1039         * cpplex.c: Likewise.
1040         * cpplib.c: Likewise.
1041         * cppmacro.c: Likewise.
1042         * cppmain.c: Likewise.
1043         * cppspec.c: Likewise.
1044
1045 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1046
1047         * combine.c (force_to_mode): Use gen_int_mode.
1048         Don't clear CONST_INT bits outside of mode.
1049
1050 2002-05-22  Richard Henderson  <rth@redhat.com>
1051
1052         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
1053         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1054
1055 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1056
1057         PR c/6643
1058         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
1059         if DECL_SIZE_UNIT is INTEGER_CST.
1060
1061 2002-05-22  Richard Henderson  <rth@redhat.com>
1062
1063         * flow.c (life_analysis): Delete broken reg_label check.
1064
1065 2002-05-22  Richard Henderson  <rth@redhat.com>
1066
1067         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
1068         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1069
1070 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1071
1072         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
1073         (embed-bb.c): New rule.
1074         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
1075         * config/sh/embed_bb.c: Delete.
1076
1077 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
1078
1079         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
1080
1081 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1082
1083         * config/h8300/h8300.md (*andorqi3): New.
1084
1085 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1086
1087         PR preprocessor/6517
1088         * Makefile.in: Update.
1089         * c-common.c (c_common_post_options): Add preprocessor
1090         errors to the error count.
1091         * c-lang.c (c_post_options): Kill.
1092         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1093         * hooks.h: Add header guards.
1094         * langhooks-def.h: Include hooks.h.
1095         (LANG_HOOKS_POST_OPTIONS): Update.
1096         * langhooks.h (struct lang_hooks): Update post_options.
1097         * toplev.c (parse_options_and_default_flags): Update.
1098 objc:
1099         * objc-lang.c (objc_post_options): Kill.
1100         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1101
1102 2002-05-21  Bruce Korb  <bkorb@gnu.org>
1103
1104         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
1105         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
1106         * fixinc/fixincl.x: regen.
1107
1108 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
1109
1110         * cfgbuild.c: Fix formatting.
1111         * cfg.c: Likewise.
1112         * cfgcleanup.c: Likewise.
1113         * cfglayout.c: Likewise.
1114         * cfgloop.c: Likewise.
1115         * cfgrtl.c: Likewise.
1116
1117 2002-05-21  Richard Henderson  <rth@redhat.com>
1118
1119         * c-common.h (enum rid): Add RID_THREAD.
1120         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
1121         (grokdeclarator): Grok __thread.
1122         * c-parse.in (reswords): Add __thread.
1123         (rid_to_yy): Add RID_THREAD.
1124
1125         * tree.h (DECL_THREAD_LOCAL): New.
1126         (struct tree_decl): Add thread_local_flag.
1127         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
1128         * tree.c (staticp): TLS variables are not static.
1129
1130         * target-def.h (TARGET_HAVE_TLS): New.
1131         * target.h (have_tls): New.
1132         * output.h (SECTION_TLS): New.
1133         * varasm.c (assemble_variable): TLS variables can't be common for now.
1134         (default_section_type_flags): Handle .tdata and .tbss.
1135         (default_elf_asm_named_section): Handle SECTION_TLS.
1136         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
1137
1138         * flags.h (flag_tls_default): Declare.
1139         * toplev.c (flag_tls_default): Define.
1140         (display_help): Display help for it.
1141         (decode_f_option): Set it.
1142
1143         * doc/extend.texi (Thread-Local): New node describing language-level
1144         thread-local storage.
1145         * doc/invoke.texi (-ftls-model): Document.
1146
1147         * fixinc/inclhack.def (thread_keyword): New.
1148         * fixinc/fixincl.x: Rebuild.
1149
1150 2002-05-21  Jeffrey A Law  <law@redhat.com>
1151
1152         * optabs.c (expand_binop): For double-word integer multiplies,
1153         do not compute intermediate results into something that is
1154         not a register (such as a SUBREG or MEM).
1155
1156         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
1157         (ix86_sched_reorder): Make sure to initialize scheduling
1158         data even when there's only one insn in the ready queue.
1159
1160 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1161
1162         * genautomata.c (reserv_sets_hash_value): Fix a typo.
1163
1164 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1165
1166         * genautomata.c (reserv_sets_hash_value): Define hash_value as
1167         set_el_t.  Transform the hash value into unsigned.
1168         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
1169         (transform_3): Add code to process `(A,B)+(D,E)'.
1170
1171 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
1172
1173         * reload1.c (do_output_reload): Run delete_output_reload
1174         only if optimizing.
1175
1176 2002-05-21  Roger Sayle  <roger@eyesopen.com>
1177
1178         PR middle-end/6600
1179         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
1180         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
1181         (can_store_by_pieces): ... and here to limit the largest mode used.
1182         Add a comment to document this function.
1183
1184 2002-05-21  Richard Henderson  <rth@redhat.com>
1185
1186         * flow.c (life_analysis): Fix test for deleted label.
1187
1188 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1189
1190         * doc/tm.texi: Fix typo.
1191
1192 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
1193
1194         * c-common.c (c_common_init): Set options->unsigned_char from
1195         flag_signed_char.
1196         (cb_register_builtins): Define __STRICT_ANSI__ and
1197         __CHAR_UNSIGNED__ here...
1198         * cppinit.c (init_builtins): Not here.
1199         (cpp_create_reader): unsigned_char option defaults to 0, not
1200         !DEFAULT_SIGNED_CHAR.
1201         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
1202         and -funsigned-char.
1203
1204         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
1205         * cpphash.c (_cpp_init_hashtable): Don't set it.
1206         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
1207         directly.  Clarify comment.
1208
1209 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1210
1211         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
1212         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
1213         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
1214         BASIC_BLOCK (n_basic_blocks - 1).
1215         * cfganal.c (can_fallthru, flow_call_edges_add,
1216         flow_preorder_transversal_compute): Too.
1217         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1218         find_sub_basic_blocks): Too.
1219         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
1220         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
1221         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
1222         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
1223         * combine.c (this_basic_block): Type changed to basic_block.
1224         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
1225         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1226         get_last_value, distribute_notes, distribute_links): Too.
1227         * final.c (compute_alignments): Too.
1228         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
1229         * function.c (thread_prologue_and_epilogue_insns): Too.
1230         * gcse.c (compute_code_hoist_vbeinout): Too.
1231         * global.c (build_insn_chain): Too.
1232         * ifcvt.c (find_if_block, find_cond_trap): Too.
1233         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
1234         * regmove.c (regmove_optimize): Too.
1235         * resource.c (find_basic_block): Too.
1236         * sched-ebb.c (schedule_ebbs): Too.
1237         * ssa-dce.c (find_control_dependence, find_pdom): Too.
1238
1239 2002-05-21  Andreas Jaeger  <aj@suse.de>
1240
1241         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
1242
1243 2002-05-21  Richard Henderson  <rth@redhat.com>
1244
1245         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
1246         unspec names, not numbers.
1247
1248 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1249
1250         * doc/sourcebuild.texi: Mention snapshot-README and
1251         snapshot-index.html as needing updating for new front ends.
1252
1253 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1254
1255         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
1256         disabling checking, and avoid multiple evaluation of RTX.
1257
1258 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
1259
1260         * bitmap.c (bitmap_find_bit): Return early if we have the correct
1261         element cached.
1262
1263 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1264
1265         * profile.c (gen_edge_profiler):  Set alias set before the memory is
1266         used.
1267
1268 2002-05-20  David S. Miller  <davem@redhat.com>
1269
1270         * cselib.c (max_value_regs): New.
1271         (cselib_lookup, cselib_invalidate_regno): Initialize it when
1272         adding new entries to the REG_VALUES table and we are dealing with
1273         a hard register.
1274         (clear_table): Initialize it.
1275         (cselib_invalidate_regno): Use it to determine which hard
1276         registers to scan when mode is not VOIDmode.
1277
1278 2002-05-20  Duraid Madina   <duraid@fl.net.au>
1279
1280         * tradcpp.c (fixup_newlines): Use old-style function header.
1281
1282 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
1283
1284         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
1285
1286 2002-05-20  H.J. Lu  (hjl@gnu.org)
1287
1288         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
1289
1290         * config/mips/mips.h (DFMODE_NAN): Defined.
1291         (SFMODE_NAN): Likewise.
1292
1293 2002-05-20  Dale Johannesen  <dalej@apple.com>
1294
1295         * combine.c (cant_combine_insn_p):  Back out my
1296         previous patch.
1297
1298 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
1299
1300         * params.c: Fix formatting.
1301         * params.h: Likewise.
1302         * predict.c: Likewise.
1303         * prefix.c: Likewise.
1304         * print-rtl.c: Likewise.
1305         * print-tree.c: Likewise.
1306         * profile.c: Likewise.
1307
1308 2002-05-20  H.J. Lu  (hjl@gnu.org)
1309
1310         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
1311
1312 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
1313
1314         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
1315         switches straight on to the assembler, do not abbreviate them.
1316         * config/arm/elf.h (ASM_SPEC): As above.
1317         * config/arm/semi.h (ASM_SPEC): As above.
1318         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
1319         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
1320         -mcpu=xscale on to the assembler by default.
1321         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
1322
1323 2002-05-20  Richard Henderson  <rth@redhat.com>
1324
1325         * cse.c (canon_hash): Reorder do_not_record test.  Always
1326         allow pic_offset_table_rtx.
1327
1328 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
1329
1330         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
1331         (expand_binop): Ditto (3 times).
1332
1333 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
1334
1335         * Makefile.in (distclean): Remove QMTest stuff.
1336         (QMTEST_PATH): New variable.
1337         (QMTESTFLAGS): Likewise.
1338         (QMTESTRUNFLAGS): Likewise.
1339         (QMTEST): Likewise.
1340         (QMTEST_GPP_TESTS): Likewise.
1341         (QMTEST_DIR): Likewise.
1342         (QMTEST_DIR/context): New target.
1343         (qmtest-g++): Likeise.
1344         (qmtest-gui): Likewise.
1345         (QMTEST_DIR/gpp-expected.qmr): Likewise.
1346
1347 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
1348
1349         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
1350         an altivec register if TARGET_ALTIVEC.
1351
1352         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
1353         to ALTIVEC_VECTOR_MODE.
1354         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
1355         (rs6000_va_arg): Vectors may go in registers if they are not
1356         altivec vectors.
1357
1358 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
1359
1360         * protoize.c: Fix formatting.
1361
1362 2002-05-19  Richard Henderson  <rth@redhat.com>
1363
1364         * gensupport.c (init_include_reader): Merge into ...
1365         (process_include): ... here.  Simplify composite path creation.
1366         Plug memory leaks.  Fix file/line number tracking.  Do not
1367         process_define_cond_exec.  Return void.
1368         (process_rtx): Don't check process_include return value.
1369
1370 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1371
1372         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
1373         fields.
1374         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1375         traversing basic block chain.
1376         (create_basic_block_structure, create_basic_block): Declaration changed.
1377         (link_block, unlink_block): Declare.
1378         * cfg.c (entry_exit_blocks): Initialize new fields.
1379         (link_block, unlink_block): New.
1380         (expunge_block_nocompact): Unlink basic block.
1381         (dump_flow_info): Print prev_bb/next_bb fields.
1382         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
1383         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
1384         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
1385         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1386         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
1387         (verify_flow_info): Check that list agrees with numbering.
1388
1389 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1390
1391         * c-common.c (preprocessing_asm): New macro.
1392         * c-lex.h (builtin_define, builtin_assert): Use pfile.
1393 doc:
1394         * tm.texi: Update.
1395 config/alpha:
1396         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
1397         (CPP_SPEC): Simplify.
1398         (TARGET_CPU_CPP_BUILTINS): Update.
1399         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
1400         (CPP_SPEC): Simplify.
1401         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
1402         (TARGET_OS_CPP_BUILTINS): Update.
1403         * osf.h (CPP_XFLOAT_SPEC): Kill.
1404         (TARGET_OS_CPP_BUILTINS): Update.
1405         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
1406         * osf5.h (CPP_XFLOAT_SPEC): Kill.
1407         * vms.h (CPP_SUBTARGET_SPEC): Kill.
1408         (TARGET_OS_CPP_BUILTINS): Update.
1409
1410 2002-05-19  Richard Henderson  <rth@redhat.com>
1411
1412         * varasm.c (default_binds_local_p): Fix typo.
1413
1414 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1415
1416         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
1417         CONST_INT operand to the correct mode after adding 1 to it.
1418
1419 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
1420
1421         * config.gcc (powerpc-wrs-windiss*): New target.
1422
1423 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1424
1425         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
1426         (ashrdi3): Use it.
1427
1428 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
1429
1430         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
1431         alphasort.
1432         * config.in: Regenerated.
1433         * configure: Regenerated.
1434
1435 2002-05-19  Richard Henderson  <rth@redhat.com>
1436
1437         * target-def.h (TARGET_BINDS_LOCAL_P): New.
1438         * target.h (struct gcc_target): Move boolean fields to the end.
1439         Add binds_local_p.
1440         * varasm.c (default_binds_local_p): New.
1441         * output.h: Declare it.
1442
1443         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
1444         * config/cris/cris.c (cris_encode_section_info): Likewise.
1445         * config/i386/i386.c (i386_encode_section_info): Likewise.
1446         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1447         * config/sh/sh.c (sh_encode_section_info): Likewise.
1448
1449         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
1450         (TARGET_BINDS_LOCAL_P): New.
1451
1452 2002-05-19  Richard Henderson  <rth@redhat.com>
1453
1454         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
1455         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
1456         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
1457
1458         * toplev.c (display_help): Kill -a -ax help.
1459
1460         * config/1750a/1750a.h, config/alpha/alpha.h,
1461         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
1462         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
1463         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
1464         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
1465
1466         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
1467         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
1468
1469         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
1470         (ix86_output_function_block_profiler): Kill.
1471         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
1472         (m68hc11_function_block_profiler): Kill.
1473         * config/m68hc11/m68hc11-protos.h: Update.
1474         * config/m88k/m88k.c (output_block_profiler): Kill.
1475         (output_function_block_profiler): Kill.
1476         * config/m88k/m88k-protos.h: Update.
1477
1478 2002-05-19  Richard Henderson  <rth@redhat.com>
1479
1480         * system.h (STRIP_NAME_ENCODING): Poison it.
1481         * output.h (STRIP_NAME_ENCODING): Remove.
1482         (default_strip_name_encoding): Declare.
1483         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
1484         * target.h (strip_name_encoding): New.
1485         * varasm.c (default_strip_name_encoding): New.
1486
1487         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
1488         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
1489         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
1490         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
1491         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
1492         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
1493         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
1494         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
1495         config/v850/v850.h: Use the hook, not the macro.
1496
1497         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1498         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
1499         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
1500         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
1501         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
1502         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
1503         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
1504         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
1505         config/v850/v850.c, config/v850/v850.h:
1506         Move STRIP_NAME_ENCODING to out-of-line function and add
1507         TARGET_STRIP_NAME_ENCODING.
1508
1509         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
1510         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
1511         with TARGET_STRIP_NAME_ENCODING referencing existing function;
1512         make function static.
1513
1514         * xcoffout.c: Include target.h
1515         * Makefile.in (xcoffout.o): Update.
1516
1517         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
1518         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
1519         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
1520         reloc argument unused.
1521         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
1522
1523         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
1524         STRIP_NAME_ENCODING docs.
1525
1526 2002-05-19  Andreas Jaeger  <aj@suse.de>
1527
1528         * gengenrtl.c: Add prototype for excluded_rtx.
1529
1530         * real.h: Add prototype for exact_real_truncate.
1531
1532 2002-05-18  Richard Henderson  <rth@redhat.com>
1533
1534         * system.h (ENCODE_SECTION_INFO): Poison it.
1535         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
1536         * target.h (encode_section_info): New.
1537         * varasm.c (make_decl_rtl, output_constant_def): Use it.
1538         * hooks.c (hook_tree_int_void): New.
1539         * hooks.h: Declare it.
1540
1541         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1542         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
1543         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
1544         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
1545         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
1546         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
1547         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
1548         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
1549         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1550         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1551         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
1552         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
1553         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
1554         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
1555         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
1556         referencing existing function.  Make function static.
1557
1558         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
1559         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
1560         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
1561         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
1562         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
1563         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
1564         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
1565         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
1566         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
1567         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
1568         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
1569         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
1570         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
1571         Move ENCODE_SECTION_INFO to out-of-line function and add
1572         TARGET_ENCODE_SECTION_INFO.
1573
1574         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
1575         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1576
1577         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
1578         from SUBTARGET_*
1579         (switch_to_section): Replace in_rdata case with in_readonly_data.
1580
1581         * config/h8300/h8300.c (h8300_encode_label): Make static.
1582         * config/h8300/h8300-protos.h: Update.
1583
1584         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
1585         from rs6000_encode_section_info; make static.
1586         (rs6000_xcoff_encode_section_info): New.
1587
1588         * config/v850/v850.c (v850_encode_data_area): Make static.
1589         * config/v850/v850-protos.h: Update.
1590
1591         * config/vax/vax.c: Include flags.h.
1592         (vms_select_section): Fix typo.
1593
1594         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
1595         ENCODE_SECTION_INFO docs.
1596
1597 2002-05-18  Richard Henderson  <rth@redhat.com>
1598
1599         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
1600         REGISTER_TARGET_PRAGMAS.
1601         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
1602
1603         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
1604
1605 2002-05-18  Richard Henderson  <rth@redhat.com>
1606
1607         * system.h (SELECT_RTX_SECTION): Poison.
1608         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
1609         * target.h (select_rtx_section): New.
1610         * varasm.c (output_constant_pool): Use it.
1611         (default_select_rtx_section, default_elf_select_rtx_section): New.
1612         * output.h: Declare them.
1613
1614         * config/darwin.h (SELECT_RTX_SECTION): Move ...
1615         * config/darwin.c (machopic_select_rtx_section): ... here.
1616         * config/darwin-protos.h: Update.
1617
1618         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
1619         * config/nextstep.c (machopic_select_rtx_section): ... here.
1620         (nextstep_select_section): Rename variable to avoid macro clash.
1621         * config/nextstep-protos.h: Update.
1622
1623         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
1624         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
1625         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
1626         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
1627         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
1628         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
1629         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
1630         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
1631         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
1632         (SELECT_RTX_SECTION): Remove.
1633
1634         * config/darwin.h, config/elfos.h, config/nextstep.h,
1635         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
1636         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
1637         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
1638         config/sparc/lynx.h, config/xtensa/xtensa.c
1639         (TARGET_ASM_SELECT_RTX_SECTION): New.
1640
1641         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
1642         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
1643         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
1644         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
1645         (ia64_aix_select_rtx_section): New.
1646         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
1647         redefining.
1648         * config/mips/mips.c (mips_select_rtx_section): Make static.
1649         Support ELF SHF_MERGE features.
1650         * config/mips/mips-protos.h: Update.
1651         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
1652         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
1653         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
1654         make static, fall back to default_elf_select_rtx_section.
1655         * config/rs6000/rs6000-protos.h: Update.
1656         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
1657         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
1658         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
1659         * config/romp/romp.c (romp_select_rtx_section): New.
1660         * config/s390/s390.c (s390_select_rtx_section): New.
1661         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
1662         declarations before target macro definition.
1663         (xtensa_emit_call): Use static buffer.
1664         (xtensa_select_rtx_section): New.
1665         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
1666         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
1667         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
1668
1669         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
1670         SELECT_RTX_SECTION docs.
1671
1672 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1673
1674         * i386.md (movsi/movdi): Fix template.
1675         (sse2 patterns): Set attributes consistently.
1676
1677         * i386.md (pushqi2, ashrqi_*): Fix constraint.
1678
1679 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
1680
1681         * optabs.c (complex_part_zero_p): New.
1682         * (expand_cmplxdiv_straight): Use it.
1683         * (expand_cmplxdiv_wide): Ditto.
1684         * (expand_binop): Ditto.
1685
1686 2002-05-18  Richard Henderson  <rth@redhat.com>
1687
1688         * final.c (HAVE_READONLY_DATA_SECTION): New.
1689         (shorten_branches): Use it instead of ifdefs.
1690         * varasm.c (enum in_section): Add in_readonly_data.
1691         (text_section, data_section): Tidy.
1692         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
1693
1694         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
1695         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
1696         (READONLY_DATA_SECTION): Don't undef.
1697
1698         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
1699         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
1700         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
1701
1702         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
1703         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
1704         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
1705         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
1706
1707         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
1708         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
1709         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1710         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
1711         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
1712         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
1713         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
1714         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
1715         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
1716
1717         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
1718         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
1719         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
1720         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
1721         config/pa/pa64-hpux.h, config/sparc/litecoff.h
1722         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1723
1724         * config/elfos.h, config/netware.h, config/svr3.h,
1725         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1726         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1727         config/h8300/h8300.h, config/i386/i386-interix.h,
1728         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1729         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
1730
1731         * config/elfos.h, config/netware.h, config/svr3.h,
1732         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1733         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
1734         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1735         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
1736
1737         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
1738         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
1739         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
1740         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
1741         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
1742         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
1743         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
1744         config/rs6000/sysv4.h, config/v850/v850.h
1745         (EXTRA_SECTIONS): Remove in_const/in_rdata.
1746         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
1747
1748         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
1749         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
1750         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
1751         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
1752         * config/alpha/alpha.c (alpha_start_function): Likewise.
1753         (alpha_write_linkage): Likewise.
1754         * config/m32r/m32r.c (m32r_select_section): Likewise.
1755         * config/m88k/m88k.c (m88k_select_section): Likewise.
1756         * config/mips/mips.c (mips_select_rtx_section): Likewise.
1757         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
1758         (rs6000_elf_select_section): Likewise.
1759         * config/v850/v850.c (v850_select_section): Likewise.
1760
1761         * config/1750a/1750a.h, config/i860/sysv3.h
1762         (READONLY_DATA_SECTION_ASM_OP): New.
1763         READONLY_DATA_SECTION_ASM_OP.
1764         * config/i386/interix.c, config/i386/winnt.c
1765         (i386_pe_unique_section): Always use .rdata prefix.
1766         * config/pa/som.h (readonly_data): Always switch to read-only section.
1767         (READONLY_DATA_SECTION): Predicate on flag_pic.
1768         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
1769         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
1770         (READONLY_DATA_SECTION): Update.
1771
1772 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
1773
1774         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
1775         is used without -Wformat.
1776         * c-common.h (warn_format_zero_length): Declare extern.
1777         * c-decl.c (warn_options): Add "format-zero-length".
1778         * c-format.c (warn_format_zero_length): Declare.
1779         (set_Wformat): Set warn_format_zero_length for -Wformat.
1780         (check_format_info): Only warn about zero-length formats if
1781         warn_format_zero_length is true.  Include the format type
1782         name in the warning message.
1783         * doc/invoke.texi: Document -Wformat-zero-length.
1784         * testsuite/gcc.dg/format/zero-length-1.c: New test.
1785
1786 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
1787
1788         * timevar.c: Fix formatting.
1789         * tlink.c: Likewise.
1790         * toplev.c: Likewise.
1791         * tree-dump.c: Likewise.
1792         * tree-inline.c: Likewise.
1793
1794 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1795
1796         * cppinit.c (cpp_post_options): If preprocessed, turn off
1797         traditional.  If traditional, turn off column numbers.
1798         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
1799         * cpptrad.c (handle_newline): Update line_base.
1800         (skip_comment): Handle -Wcomment.
1801
1802 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
1803
1804         * cppinit.c (struct builtin): Remove unused fields.
1805         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
1806         (operator_array): New - was second half of builtin_array.
1807         (init_builtins): Simplify loop over builtin_array/operator_array.
1808
1809 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1810
1811         * defaults.h (UNIQUE_SECTION): Remove.
1812         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
1813
1814 2002-05-17  Richard Henderson  <rth@redhat.com>
1815
1816         * expr.c (init_expr_once): Don't use start/end_sequence.
1817         Use rtx_alloc instead of emit_insn.
1818         * toplev.c (lang_dependent_init): Run init_expr_once here ...
1819         (lang_independent_init): ... not here.
1820
1821 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
1822
1823         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
1824
1825 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1826
1827         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
1828         for fixed registers, possibly used for global register variables.
1829         (initial_elimination_offset, avr_output_function_prologue,
1830         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
1831
1832 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1833
1834         * Makefile.in: Update for cpptrad.c.
1835         * cpphash.h (struct cpp_buffer): New members for buffer
1836         overlays.
1837         (struct cpp_reader): New members for traditional output.
1838         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
1839         * cppinit.c (cpp_create_reader): Set trad_line.
1840         (cpp_destroy): Free trad_out_base if used.
1841         (cpp_read_main_file): Overlay an empty buffer if traditional.
1842         (cpp_finish_options): Don't do builtins.
1843         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
1844         (cpp_handle_option): Handle it.
1845         * cpplex.c (continue_after_nul): New.
1846         (_cpp_lex_direct): Use handle_nul.
1847         * cpplib.h (struct cpp_options): New traditional option.
1848         * cpptrad.c: New file.
1849
1850 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1851
1852         * c-common.c (c_common_init_options): Use C89 for Objective-C,
1853         and set the options flag.
1854         * cppinit.c (lang_flags): Remove objc.
1855         (lang_defaults): Remove OBJC and OBJCXX.
1856         (set_lang): Update.
1857         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
1858         (cpp_handle_option): Remove -+ and -lang-objc++.
1859         For ObjC, just set a flag.
1860         (print_help): Update.
1861         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
1862
1863 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1864
1865         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
1866         bootstrap with -mips3.
1867
1868 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
1869
1870         * final.c: Fix formatting.
1871         * fix-header.c: Likewise.
1872         * flow.c: Likewise.
1873         * fold-const.c: Likewise.
1874         * function.c: Likewise.
1875
1876 2002-05-17  David S. Miller  <davem@redhat.com>
1877
1878         PR c/6689, PR optimization/6615
1879         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
1880         and make it a pointer to rtx.  Update comments.
1881         (update_equiv_regs): When scanning for equivalences, record
1882         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
1883         it while making the equiv replacements.
1884
1885 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1886
1887         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
1888
1889 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1890
1891         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
1892         when encoding visibility into SYMBOL_REF_FLAG.
1893
1894 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
1895
1896         * expr.c (force_operand): Fix reversed move.
1897
1898 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
1899
1900         * doc/install.texi (Testing): Mention two common DejaGnu warnings
1901         that can be ignored.
1902
1903 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1904
1905         * doc/install.texi (Final install): Recommend to install into a
1906         "clean" target directory.
1907
1908 2002-05-17  Richard Henderson  <rth@redhat.com>
1909
1910         * config/ia64/ia64.md: Use braced strings instead of quoted strings
1911         for code blocks.  Tidy whitespace.
1912
1913 2002-05-17  Richard Henderson  <rth@redhat.com>
1914
1915         * hooks.c (hook_tree_bool_false): New.
1916         * hooks.h: Declare it.
1917         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1918         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1919         * target.h (select_section, unique_section): New.
1920         (in_small_data_p): New.
1921         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1922         (variable_section, output_constant_def_contents): Likewise.
1923         (default_select_section, default_unique_section): New.
1924         (categorize_decl_for_section, default_elf_select_section): New.
1925         * output.h: Declare them.
1926
1927         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1928         (TARGET_ASM_SELECT_SECTION): New.
1929         (SELECT_SECTION): Move ...
1930         * config/darwin.c (machopic_select_section): ... here.
1931         * config/darwin-protos.h: Update.
1932
1933         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1934         (SELECT_SECTION): Move ...
1935         * config/nextstep.c (nextstep_select_section): ... here.
1936         * config/nextstep-protos.h: Update.
1937
1938         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1939         (TARGET_ASM_SELECT_SECTION): New.
1940         * config/svr3.h (SELECT_SECTION): Remove.
1941
1942         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1943         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1944         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1945         (alpha_encode_section_info): Use it.
1946         * config/alpha/alpha-protos.h: Update.
1947         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1948         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1949         (TARGET_ASM_SELECT_SECTION): New.
1950         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1951
1952         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1953         (TARGET_ASM_UNIQUE_SECTION): New.
1954
1955         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1956         (avr_unique_section): Rename from unique_section; make static.
1957         * config/avr/avr-protos.h: Update.
1958         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1959
1960         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1961
1962         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1963         (TARGET_ASM_UNIQUE_SECTION): New.
1964         * config/i386/i386-interix.h: Likewise.
1965         * config/i386/win32.h: Likewise.
1966         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1967         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1968         * config/i386/sco5.h (SELECT_SECTION): Remove.
1969         (TARGET_ASM_SELECT_SECTION): New.
1970         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1971
1972         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1973         instead of SELECT_SECTION.
1974         * config/m68k/dpx2.h: Likewise.
1975         * config/rs6000/lynx.h: Likewise.
1976
1977         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1978         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1979         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1980         (ia64_in_small_data_p): New.
1981         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1982         (ia64_aix_select_section, ia64_aix_unique_section): New.
1983         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1984         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1985
1986         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1987         (TARGET_ASM_SELECT_SECTION): New.
1988         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1989         * config/m32r/m32r-protos.h: Update.
1990
1991         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1992         (SELECT_SECTION): Move ...
1993         * config/m88k/m88k.c (m88k_select_section): ... here.
1994
1995         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1996         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1997         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1998         (mcore_unique_section): Make static.
1999         * config/mcore/mcore-protos.h: Update.
2000
2001         * config/mips/elf.h (UNIQUE_SECTION): Remove.
2002         (TARGET_ASM_UNIQUE_SECTION): New.
2003         * config/mips/elf64.h: Likewise.
2004         * config/mips/iris6gld.h: Likewise.
2005         * config/mips/linux.h: Likewise.
2006         * config/mips/mips-protos.h: Update.
2007         * config/mips/mips.c (mips_select_section): Add align argument.
2008         * config/mips/mips.h (SELECT_SECTION): Remove.
2009         (TARGET_ASM_SELECT_SECTION): New.
2010
2011         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2012         * config/mmix/mmix.c (mmix_select_section): Remove.
2013         (mmix_unique_section): Remove.
2014         * config/mmix/mmix-protos.h: Update.
2015
2016         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
2017         (SELECT_SECTION): Move ...
2018         * config/pa/pa.c (pa_select_section): ... here.
2019         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
2020
2021         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
2022         from rs6000_select_section and make static.
2023         (rs6000_elf_unique_section): Similarly.
2024         (rs6000_xcoff_select_section): From xcoff.h.
2025         (rs6000_xcoff_unique_section): Likewise.
2026         * config/rs6000/rs6000-protos.h: Update.
2027         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2028         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
2029         * config/rs6000/xcoff.h: Likewise.
2030
2031         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
2032         (SELECT_SECTION): Move ...
2033         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
2034
2035         * config/v850/v850.h (SELECT_SECTION): Move ...
2036         * config/v850/v850.c (v850_select_section): ... here.
2037         (TARGET_ASM_SELECT_SECTION): New.
2038
2039         * config/vax/vms.h (SELECT_SECTION): Move ...
2040         * config/vax/vax.c (vms_select_section): ... here.
2041         (TARGET_ASM_SELECT_SECTION): New.
2042
2043         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
2044         for the target hooks.
2045
2046 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
2047
2048         * config/arm/arm.c (emit_multi_reg_push): Do not set
2049         RTX_FRAME_RELATED_P on the SEQUENCE.
2050
2051 2002-05-16  Richard Henderson  <rth@redhat.com>
2052
2053         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
2054         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
2055
2056 2002-05-16  Richard Henderson  <rth@redhat.com>
2057
2058         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
2059
2060         * config/ia64/ia64.c (saveable_obstack): Do not declare.
2061
2062 2002-05-16  Richard Henderson  <rth@redhat.com>
2063
2064         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
2065         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
2066         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
2067         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
2068         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
2069         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
2070         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
2071         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
2072         Revert "Basic block renumbering removal", and two followup patches.
2073
2074 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2075
2076         * lcm.c (optimize_mode_switching): Revert previous change.
2077
2078 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2079
2080         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
2081         with only extant block numbers.
2082
2083 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2084
2085         * lcm.c (optimize_mode_switching): Fix typo.
2086
2087 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2088
2089         * flow.c (calculate_global_regs_live): Queue blocks in program order.
2090
2091 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2092
2093         * doc/install.texi (Configuration): Document PWDCMD.
2094
2095 2002-05-16  Dale Johannesen  <dalej@apple.com>
2096
2097         * combine.c (cant_combine_insn_p):  Reenable combinations
2098         involving hard regs unless CLASS_LIKELY_SPILLED_P.
2099
2100 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2101
2102         * c-common.c (cb_register_builtins): Handle more built-ins
2103         here rather than in gcc.c specs.
2104         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
2105         (cpp_options): Pass -O flags even when only preprocessing.
2106         * toplev.c (set_fast_math_flags): New prototype.
2107         (fast_math_flags_set_p): New.
2108         (set_no_fast_math_flags): Remove.
2109         (decode_f_option): Update.
2110         * toplev.h (set_fast_math_flags): Update.
2111         (fast_math_flags_set_p): New.
2112         (set_no_fast_math_flags): Remove.
2113 config:
2114         * c4x/c4x.c (c4x_override_options): Update.
2115
2116 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
2117
2118         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
2119         Default-define here.
2120         (builtin_define_with_value): Can now wrap the expansion in
2121         quotation marks if such is wanted.
2122         (cb_register_builtins): Update calls to builtin_define_with_value.
2123         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
2124         here.
2125         (c_common_init): Set options->stdc_0_in_system_headers.
2126         * c-lex.h: Update prototype of builtin_define_with_value.
2127         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
2128         and REGISTER_PREFIX.
2129
2130         * cppinit.c (VERS, ULP, C, X): Kill.
2131         (builtin_array): Remove entries for __VERSION__,
2132         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
2133         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
2134         a constant.
2135         (init_builtins): Kill off a bunch of now-dead code.
2136         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
2137         -fno-leading-underscore.
2138         (cpp_handle_option): Remove code to set user_label_prefix.
2139         (cpp_post_options): Likewise.
2140
2141         * cpplib.h (struct cpp_options): Remove user_label_prefix.
2142         (stdc_0_in_system_headers): New.
2143         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
2144         stdc_0_in_system_headers) too to decide the value of __STDC__.
2145
2146         * tradcpp.c (user_label_prefix): Kill.
2147         (main): Remove code handling -f(no-)leading-underscore.
2148         (initialize_builtins): Don't define __REGISTER_PREFIX__
2149         or __USER_LABEL_PREFIX__.
2150         (install_value): Wrap compound statement in dummy loop so the
2151         macro works properly in an if statement.
2152
2153
2154 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
2155
2156         * loop.h (struct loop_info): Add member has_prefetch.
2157         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
2158         (prescan_loop): Initialize has_prefetch.
2159         (struct prefetch_info): Change prefetch_in_loop and
2160         prefetch_before_loop from bit fields to ints.
2161         (emit_prefetch_instructions): Several small fixes.
2162         (check_dbra_loop): Don't reverse loop that uses prefetch.
2163
2164 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2165
2166         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
2167         * configure.in: Likewise.
2168         * fixinc/check.tpl: Likewise.
2169         * fixinc/fixinc.dgux: Likewise.
2170         * fixinc/fixinc.svr4: Likewise.
2171         * fixinc/fixinc.winnt: Likewise.
2172         * fixinc/fixincl.sh: Likewise.
2173         * fixproto: Likewise.
2174         * configure: Regenerate.
2175
2176 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2177
2178         Basic block renumbering removal:
2179         * basic_block.h (struct basic_block_def): Renamed index to sindex,
2180         added prev_bb and next_bb fields.
2181         (n_basic_blocks): Renamed to num_basic_blocks.
2182         (last_basic_block): New, index of last basic block.
2183         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
2184         traversing basic block chain.
2185         (BLOCK_NUM): index -> sindex.
2186         (create_basic_block_structure, create_basic_block): Declaration changed.
2187         (debug_num2bb): Declare.
2188         (expunge_block_nocompact): Declaration removed.
2189         (link_block, unlink_block, compact_blocks): Declare.
2190         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
2191         * cfg.c (entry_exit_blocks): Initialize new fields.
2192         (clear_edges, alloc_block, expunge_block, cached_make_edge,
2193         redirect_edge_pred, dump_flow_info, dump_edge_info,
2194         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
2195         free_aux_for_edges): Modified.
2196         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
2197         (expunge_block_nocompact): Removed.
2198         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
2199         find_unreachable_blocks, create_edge_list, print_edge_list,
2200         verify_edge_list, flow_edge_list_print, remove_fake_successors,
2201         remove_fake_edges, flow_reverse_top_sort_order_compute,
2202         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2203         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
2204         flow_dfs_compute_reverse_execute): Modified.
2205         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
2206         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
2207         Modified.
2208         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2209         merge_blocks_move_predecessor_nojumps,
2210         merge_blocks_move_successor_nojumps, merge_blocks,
2211         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
2212         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
2213         * cfglayout.c (skip_insns_after_block, label_for_bb,
2214         record_effective_endpoints, scope_to_insns_finalize,
2215         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
2216         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
2217         cfg_layout_duplicate_bb): Modified.
2218         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
2219         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2220         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
2221         flow_loops_find, flow_loop_outside_edge_p): Modified.
2222         * cfgrtl.c (create_basic_block_structure, create_basic_block,
2223         flow_delete_block, compute_bb_for_insn, split_block,
2224         try_redirect_by_replacing_jump, redirect_edge_and_branch,
2225         force_nonfallthru_and_redirect, tidy_fallthru_edge,
2226         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
2227         commit_edge_insertions, commit_edge_insertions_watch_calls,
2228         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2229         purge_all_dead_edges): Modified.
2230         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
2231         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
2232         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
2233         Modified.
2234         * conflict.c (conflict_graph_compute): Modified.
2235         * df.c (FOR_ALL_BBS): Removed.
2236         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2237         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
2238         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
2239         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
2240         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2241         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
2242         * final.c (compute_alignments, final_scan_insn): Modified.
2243         * flow.c (verify_local_live_at_start, update_life_info,
2244         update_life_info_in_dirty_blocks, free_basic_block_vars,
2245         delete_noop_moves, calculate_global_regs_live,
2246         initialize_uninitialized_subregs, allocate_bb_life_data,
2247         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
2248         mark_used_reg, count_or_remove_death_notes): Modified.
2249         * function.c (thread_prologue_and_epilogue_insns): Modified.
2250         * gcse.c (struct null_pointer_info): Change typo of current_block
2251         to basic_block.
2252         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
2253         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
2254         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
2255         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
2256         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
2257         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
2258         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
2259         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
2260         pre_delete, one_pre_gcse_pass, compute_transpout,
2261         invalidate_nonnull_info, delete_null_pointer_checks_1,
2262         free_code_hoist_mem, compute_code_hoist_vbeinout,
2263         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2264         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
2265         compute_store_table, build_store_vectors, insert_insn_start_bb,
2266         insert_store, replace_store_insn, free_store_memory, store_motion):
2267         Modified.
2268         * global.c (global_alloc, global_conflicts, mark_elimination,
2269         build_insn_chain): Modified.
2270         * graph.c (print_rtl_graph_with_bb): Modified.
2271         * haifa-sched.c (sched_init): Modified.
2272         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2273         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
2274         if_convert): Modified.
2275         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
2276         compute_insert_delete, pre_edge_lcm, compute_available,
2277         compute_farthest, compute_nearerout, compute_rev_insert_delete,
2278         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
2279         Modified.
2280         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
2281         * loop.c (loop_dump_aux): Modified.
2282         * predict.c (combine_predictions_for_insn, estimate_probability,
2283         last_basic_block_p, process_note_prediction, process_note_predictions,
2284         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
2285         expensive_function_p, estimate_bb_frequencies,
2286         compute_function_frequency): Modified.
2287         * print-rtl.c (print_rtx): Modified.
2288         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
2289         get_exec_counts, compute_branch_probabilities, compute_checksum,
2290         branch_prob, find_spanning_tree): Modified.
2291         * recog.c (split_all_insns, peephole2_optimize): Modified.
2292         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
2293         convert_regs_1, convert_regs_2, convert_regs): Modified.
2294         * regclass.c (scan_one_insn, regclass): Modified.
2295         * regmove.c (mark_flags_life_zones, regmove_optimize,
2296         combine_stack_adjustments): Modified.
2297         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
2298         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
2299         * reorg.c (dbr_schedule): Modified.
2300         * resource.c (find_basic_block, init_resource_info): Modified.
2301         * sbitmap.c (sbitmap_intersection_of_succs,
2302         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
2303         sbitmap_union_of_preds): Modified.
2304         * sched-deps.c (init_dependency_caches): Modified.
2305         * sched-ebb.c (schedule_ebbs): Modified.
2306         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
2307         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
2308         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
2309         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
2310         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
2311         ssa_const_prop): Modified.
2312         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
2313         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
2314         * ssa.c (remove_phi_alternative, find_evaluations,
2315         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
2316         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
2317         make_regs_equivalent_over_bad_edges,
2318         make_equivalent_phi_alternatives_equival,
2319         compute_conservative_reg_partition,
2320         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
2321         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
2322         Modified.
2323
2324 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
2325
2326         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
2327
2328 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
2329
2330         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
2331         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2332         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
2333         calling CONSTANT_POOL_ADDRESS_P.
2334         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
2335         to decide whether to define __arm__ or __thumb.
2336         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
2337         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2338
2339 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2340
2341         * config/arc/arc.h (CPP_PREDEFINES): Remove.
2342         (CPP_SPEC): Update.
2343         (TARGET_CPU_CPP_BUILTINS): New.
2344
2345 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2346
2347         * cpphash.h (cpp_macro): Move here, and make expansion a union.
2348         * cppmacro.c (cpp_macro): Remove.
2349         (enter_macro_context, replace_args, warn_of_redefinition,
2350         _cpp_create_definition, cpp_macro_definition): Update.
2351
2352 2002-05-16  Jason Merrill  <jason@redhat.com>
2353
2354         * config/mips/mips.c (mips_output_external): Don't do sdata
2355         optimization for a variable with DECL_COMDAT set.
2356
2357 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2358
2359         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
2360         Cleanups for accepting modifiers on pointers.
2361         Fix predicate typos.
2362         Allow long pointers as well as int pointers.
2363
2364 2002-05-15  Richard Henderson  <rth@redhat.com>
2365
2366         * varasm.c (merge_weak): Remove special case for extern and common.
2367
2368 2002-05-15  Matt Hiller  <hiller@redhat.com>
2369
2370         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
2371         XFAILing.
2372         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
2373         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
2374         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
2375         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
2376         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
2377         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
2378
2379 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2380
2381         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
2382
2383 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2384
2385         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
2386         ("altivec_mfvscr"): Read from VSCR.
2387
2388         Add vscr sets for the following insns: altivec_vctuxs,
2389         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
2390         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
2391         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
2392         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
2393         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
2394         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
2395         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
2396         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
2397         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
2398         altivec_vsum2sws, altivec_vsumsws.
2399
2400         * config/rs6000/rs6000.h: Add VSCR fixed register.
2401         (CALL_REALLY_USED_REGISTERS): Add vscr.
2402         (CALL_USED_REGISTERS): Same.
2403         (FIXED_REGISTERS): Same.
2404         (REG_ALLOC_ORDER): Same.
2405         (reg_class): Add VSCR_REGS.
2406         (REG_CLASS_NAMES): Same.
2407         (REG_CLASS_CONTENTS): Same.
2408         (VSCR_REGNO): New.
2409         (REGISTER_NAMES): Add vscr.
2410         (DEBUG_REGISTER_NAMES): Same.
2411         (ADDITIONAL_REGISTER_NAMES): Same.
2412         (FIRST_PSEUDO_REGISTER): Increment.
2413         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
2414
2415 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
2416
2417         * fold-const.c (fold): Fix a typo.
2418
2419 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
2420
2421         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
2422         comparison against the highest or lowest integer value before
2423         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
2424         transformation and that of an unsigned comparison against 0
2425         right after.
2426
2427 2002-05-15  Richard Henderson  <rth@redhat.com>
2428
2429         * varasm.c (merge_weak): Error for any weakening after definition.
2430         Adjust weakening after use warning to catch more cases.
2431         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
2432         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
2433
2434 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2435
2436         * invoke.texi (-malign-double): Re-add lost warning.
2437
2438         * i386-protos.h (x86_output_mi_thunk): Declare.
2439         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
2440         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
2441
2442         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
2443         when flag_asynchronous_unwind_tables is set.
2444
2445         * flags.h (flag_reorder_functions): Declare.
2446         * function.c (prepare_function_start): Initialize frequnecy.
2447         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
2448         * Makefile.in (predict.o): Add dependency on target.h and params.h
2449         * defaults.h (HOT_TEXT_SECTION_NAME,
2450         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
2451         * predict.c (choose_function_section): New function.
2452         (estimate_bb_frequencies): Use it.
2453         * toplev.c (flag_reorder_functions): New global variable.
2454         (lang_independent_options): New.
2455         (parse_options_and_default_flags): Set.
2456         * varasm.c (assemble_start_function): Bypass functdion alignment
2457         for never executed functions.
2458         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
2459         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
2460         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2461         Document.
2462
2463         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
2464
2465         * predict.c: Inlude profile.h
2466         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
2467         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
2468         Use the information about maximal counter in the program.
2469
2470         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
2471
2472         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
2473         probably_never_executed_bb_p): New functions.
2474         * cfgcleanup.c (outgoing_edges_match): Use them.
2475         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
2476         (maybe_hot_bb_p, probably_cold_bb_p,
2477         probably_never_executed_bb_p): New functions.
2478
2479         * function.h (function): Add new field function_frequency.
2480         * predict.c (compute_function_frequency): New function.
2481         (estimate_probability): Call it.
2482
2483 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
2484
2485         PR optimization/5172, optimization/5200
2486         * gcse.c (gcse_main): Disable store_motion.
2487
2488 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
2489
2490         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
2491         (c_common_nodes_and_builtins): Use it.
2492         (builtin_define_with_value): New function.
2493         (cb_register_builtins): Define __SIZE_TYPE__,
2494         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
2495         using builtin_define_with_value.  Use consistent notation when
2496         defining __GXX_WEAK__.
2497         (WCHAR_TYPE_SIZE): Don't redefine.
2498         (combine_strings): Don't use WCHAR_TYPE_SIZE.
2499
2500         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
2501         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
2502         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
2503         * tradcpp.c (initialize_builtins): Likewise.
2504         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
2505
2506         * c-lex.h (builtin_define_with_value): Prototype.
2507         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
2508         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
2509         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
2510
2511         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
2512         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
2513         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
2514         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
2515         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
2516         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
2517         config/sparc/sol2-bi.h, config/sparc/sparc.h:
2518         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
2519         to __SIZE_TYPE__ etc from all spec strings. When this makes
2520         extra specs empty, delete them.
2521
2522 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2523
2524         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
2525         for PA8000 or generating dwarf2 call frame information.
2526         (output_call): Remove DO_FRAME_NOTES check from return pointer
2527         optimization.
2528         (following_call): Return 0 when scheduling for PA8000 or generating
2529         dwarf2 call frame information.  Revise comment.
2530
2531 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2532
2533 config/alpha:
2534         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
2535         and __IEEE_FP_INEXACT as appropriate.
2536         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
2537         (CPP_SPEC): Remove ieee defines.
2538         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
2539
2540 2002-05-14  Richard Henderson  <rth@redhat.com>
2541
2542         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
2543         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
2544
2545 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2546
2547         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
2548         (CPP_SPEC): Update.
2549         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
2550         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
2551         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
2552         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
2553         (EXTRA_SPECS): Update.
2554         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
2555         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
2556         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
2557         define TARGET_OS_CPP_BUILTINS if necessary.
2558
2559 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2560
2561         * gcc.c (cpp_options): Must pass -m* and -f* options
2562         to the front end even when only preprocessing.
2563         (cc1_options): Remove redundant -lang-c.
2564         * tradcpp.c (main): Ignore -m options.
2565 objc:
2566         * lang-specs.h: Similarly.
2567
2568 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
2569
2570         * genautomata.c (transform_3): Add code for transformation
2571         `(A,B,...)+C -> A+C,B,...'.
2572
2573 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
2574
2575         * final.c (end_final): Do not output profile_arcs constructor, when
2576         no functions are instrumented.
2577
2578 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
2579
2580         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
2581
2582 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2583
2584         * doc/install.texi: Remove special markup originally required for
2585         HTML generation with texi2html.
2586
2587 2002-05-14  Andreas Schwab  <schwab@suse.de>
2588
2589         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
2590         SELECT_SECTION.
2591         (UNIQUE_SECTION): Define to get small data correctly.
2592
2593         * varasm.c (resolve_unique_section): Add third parameter
2594         flag_function_or_data_sections and use it instead of
2595         flag_function_sections.
2596         (assemble_start_function): Pass flag_function_sections.
2597         (asm_emit_uninitialised): Pass flag_data_sections.
2598         (assemble_variable): Likewise.
2599
2600 2002-05-14  Richard Henderson  <rth@redhat.com>
2601
2602         * config/i386/i386.md: Use define_constants for unspec numbers.
2603         * config/i386/i386.c: Likewise.
2604
2605 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2606
2607         * doc/contrib.texi: Update my entry.
2608
2609 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
2610
2611         * fixinc/inclhack.def (winidss_valist): Limit applicability.
2612         * fixinc/fixincl.x: Regenerated.
2613         * fixinc/tests/base/math.h: Update.
2614         * fixinc/tests/base/testing.h: Likewise.
2615
2616 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
2617
2618         * genattr.c (gen_attr): Don't emit a comma after the last
2619         enumerator.
2620
2621 2002-05-13  Richard Henderson  <rth@redhat.com>
2622
2623         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
2624         by non-local gotos.
2625         * recog.c (peephole2_optimize): Likewise.
2626
2627 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
2628
2629         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
2630         input to O_BINARY.
2631
2632 2002-05-13  Jeffrey A Law  (law@redhat.com)
2633
2634         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
2635         Update prototype and callers.
2636         (propagate_one_insn): Stack pointer adjustments kill MEMs on
2637         the mem_set_list which reference the stack pointer, as do
2638         calls to constant functions as they may clobber outgoing
2639         argument space.
2640
2641         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
2642
2643         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
2644         (ia32_multipass_dfa_lookahead): New function.
2645
2646 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2647
2648         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
2649         (translate_options): Remove 'V'.
2650         (process_command): Similarly.
2651 doc:
2652         * invoke.texi: Remove documentation of 'V'.
2653
2654 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2655
2656         * config/s390/linux.h: Revert 2002-04-22 changes.
2657
2658 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
2659
2660         * config/fr30/fr30.md: Only allow splits of immediate loads
2661         if the destination is a register.
2662
2663 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2664
2665         * Makefile.in (c-common.o, cppinit.o): Update.
2666         * c-common.c: Include except.h.
2667         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
2668         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
2669         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
2670         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
2671         CPP_PREDEFINES): Handle here.
2672 config:
2673         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
2674         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
2675         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
2676         TARGET_OS_CPP_BUILTINS.
2677         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
2678         (CPP_SPEC, EXTRA_SPECS): Update.
2679         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
2680         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
2681         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
2682         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
2683         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
2684 doc:
2685         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
2686         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
2687
2688 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2689
2690         * emit-rtl.c (global_rtl): Update comment.
2691         (const_double_htab, const_double_htab_hash,
2692         const_double_htab_hash, lookup_const_double): New.
2693         (const_int_htab_hash, const_int_htab_eq): Remove const
2694         qualifiers, which cause tons of warnings with RTL checking on.
2695         (gen_rtx_CONST_DOUBLE): Deleted.
2696         (const_double_from_real_value): New function - bears some
2697         resemblance to the former immed_real_const_1.
2698         (immed_double_const): Moved here from varasm.c and
2699         simplified.
2700         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
2701         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
2702         (gen_rtx): Use immed_double_const.
2703         (init_emit_once): Initialize the const_double_htab.  Use
2704         REAL_VALUE_FROM_INT where possible.  Can now use
2705         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
2706         * varasm.c (struct varasm_status): Remove x_const_double_chain.
2707         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
2708         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
2709         (init_varasm_status, mark_varasm_status): Don't touch
2710         x_const_double_chain.
2711
2712         * output.h: Delete prototype for clear_const_double_mem.
2713         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
2714         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
2715         const_double_from_real_value, not immed_real_const_1, and use
2716         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
2717         CONST_DOUBLE_ATOF.
2718         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
2719         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
2720         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
2721         (gen_rtx_REG): Second arg is unsigned.
2722
2723         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
2724         (excluded_rtx): New, return true for CONST_DOUBLE.
2725         (genmacro): Write nothing for excluded codes.
2726         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
2727         * expr.c (expand_expr): Likewise.
2728         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
2729         CONST_DOUBLE_CHAIN.
2730         * toplev.c (rest_of_compilation): Don't call
2731         clear_const_double_mem.
2732
2733         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
2734         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
2735         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
2736         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
2737         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
2738         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
2739         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
2740         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
2741
2742 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2743
2744         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
2745
2746 2002-05-12  Tom Tromey  <tromey@redhat.com>
2747
2748         * tree.h (copy_node): Don't mention TREE_PERMANENT.
2749
2750 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2751
2752         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
2753         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
2754         * gensupport.h: Prototype new routines.
2755         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
2756         use of printf.
2757         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
2758         (next_comma_elt): Use scan_comma_elt.
2759
2760         * config/i386/i386.md: Use new attribute notation to break up
2761         long lines in define_attr forms.
2762
2763 2002-05-12  Richard Henderson  <rth@redhat.com>
2764
2765         * expr.c (compress_float_constant): New.
2766         (emit_move_insn): Use it.
2767         (float_extend_from_mem): New.
2768         (init_expr_once): Initialize it.
2769         * real.c (exact_real_truncate): New.
2770
2771         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
2772         dropped into memory; penalize for size.
2773         (RTX_COSTS): FLOAT_EXTEND is free.
2774         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
2775         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
2776
2777 2002-05-12  Richard Henderson  <rth@redhat.com>
2778
2779         * profile.h (profile_info): Add missing extern to declaration.
2780         * profile.c (profile_info): Define it.
2781
2782 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2783
2784         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
2785         used for DImode and TImode.
2786
2787 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2788
2789         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
2790         fake a newline.
2791
2792 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
2793
2794         * config/rs6000/rs6000.c (rs6000_default_long_calls,
2795         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
2796         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
2797         (rs6000_override_options): Handle -m(no-)longcall.
2798         (init_cumulative_args, output_mi_thunk): Check for both
2799         longcall and shortcall attributes on the function.
2800         (rs6000_attribute_table): Add "shortcall".
2801         (rs6000_handle_longcall_attribute): Update comment.
2802         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
2803         altivec_expand_ternop_builtin): Add default clauses to switches
2804         to silence warnings.
2805
2806         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
2807         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
2808         (TARGET_OPTIONS): Add longcall and no-longcall.
2809
2810         * config/rs6000/rs6000.md (call_nonlocal_sysv,
2811         call_value_nonlocal_sysv): Split by alternatives.  One pair
2812         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
2813         the call cookie.  The other pair accepts only LR/CTR and has
2814         no restriction.
2815
2816         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
2817         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
2818         tmake_file.
2819         * config/rs6000/rs6000-c.c: New file.
2820         * config/rs6000/t-rs6000-c-rule: New file.
2821         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
2822         Prototype rs6000_pragma_longcall.
2823
2824         * doc/extend.texi: Document shortcall attribute.
2825         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
2826
2827 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2828
2829         * reorg.c (dbr_schedule): Remove unnecessary test.
2830
2831 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2832
2833         * i386.md (testsi to testqi spliters): New.
2834
2835         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
2836
2837         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
2838
2839         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
2840
2841         * basic-block.h: New flag EDGE_CAN_FALLTHRU
2842         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
2843         that can be made fallthru.
2844
2845         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
2846
2847         * cfglayout.c (cleanup_unconditional_jumps): New static function.
2848         (cfg_layout_initialize): Use it.
2849
2850 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2851
2852         * config/avr/avr.c (avr_mcu_types): Update supported devices.
2853         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2854         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2855
2856 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
2857
2858         * dbxout.c: Fix formatting.
2859         * dependence.c: Likewise.
2860         * df.c: Likewise.
2861         * diagnostic.c: Likewise.
2862         * doloop.c: Likewise.
2863         * dominance.c: Likewise.
2864         * doschk.c: Likewise.
2865         * dwarf2asm.c: Likewise.
2866         * dwarf2out.c: Likewise.
2867         * dwarfout.c: Likewise.
2868
2869 2002-05-10  Richard Henderson  <rth@redhat.com>
2870
2871         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
2872         Convert integers constants as needed.  Replace "nwords" field with
2873         "sizeof_bb".
2874         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
2875         * function.h: Fix typo in comment.
2876         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
2877
2878 2002-05-10  Roger Sayle  <roger@eyesopen.com>
2879
2880         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
2881         into the equivalent (signed char)c > 0.
2882
2883 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
2884
2885         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
2886         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
2887         (struct prefetch_info): Fix spelling of member bytes_accessed.
2888         (emit_prefetch_instructions): Make dump messages more regular;
2889         restructure code to add more dump messages; use new macros for
2890         heuristics. (There are no code generation changes in any of this).
2891
2892 2002-05-10  David S. Miller  <davem@redhat.com>
2893
2894         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
2895         (struct rtx_def): Update unchanging flag comment.
2896         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
2897         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
2898         to be handled to INSN too.
2899         (dbr_schedule): Likewise.
2900         * resource.c (next_insn_no_annul): Likewise.
2901
2902         * cse.c (rtx_cost): Remove multiplication by power of 2 special
2903         casing.
2904
2905 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2906
2907         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
2908         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
2909         (possibly) work around broken /bin/sh.
2910
2911 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2912
2913         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2914         . as N64/N32 libgcc_s.so subdirs.
2915
2916 2002-05-10  David S. Miller  <davem@redhat.com>
2917
2918         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2919
2920         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2921         more accurately.
2922         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2923         comment.
2924         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2925         * doc/rtl.texi: Document these macros more accurately.
2926         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2927         JUMP_INSNs and CALL_INSNs.
2928         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2929         or INSN_FROM_TARGET_P if the code is appropriate.
2930
2931 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2932
2933         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2934         before using SYMBOL_REF_FLAG (addr).
2935
2936         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2937         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2938         Make non-static.  Update all callers.
2939         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2940         New insns to clear/set/test a single bit in I/O address space.
2941
2942 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2943
2944         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2945
2946 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2947
2948         * Makefile.in: Update.
2949         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2950         builtin_define_std): New.
2951         (c_common_init): Register CPP builtins callback.
2952         * c-common.h (flag_iso, flag_undef): New.
2953         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2954         * c-lex.c: Don't include target.h.
2955         (cb_register_builtins): Move to c-common.c.
2956         (init_c_lex): Don't register hook here.
2957         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2958         (cpp_define, cpp_assert): Remove.
2959         * gcc.c (cc1_options): Pass -undef to front end.
2960         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2961         (TARGET_INITIALIZER): Update.
2962         * target.h (struct cpp_reader): Don't predeclare.
2963         (struct gcc_target): Remove cpp builtin hook.
2964         * tree.c (default_register_cpp_builtins): Remove.
2965 doc:
2966         * tm.texi: Update.
2967
2968 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2969
2970         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2971
2972 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2973
2974         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2975         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2976
2977 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2978
2979         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2980         * config/sparc/libgcc-sparc-glibc.ver: New file.
2981         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2982         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2983
2984 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2985
2986         PR target/6429
2987         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2988         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2989         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2990         base multilibs.
2991         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2992         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2993         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2994         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2995
2996 2002-05-09  Richard Henderson  <rth@redhat.com>
2997
2998         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2999         * config/ia64/ia64.c: Likewise.
3000
3001 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
3002
3003         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
3004         (save_restore_insns): Likewise.
3005         (mips_expand_prologue, mips_expand_epilogue): Update callers.
3006         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
3007
3008 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
3009
3010         * athlon.md, k6.md, pentium.md, ppro.md): New files.
3011         * i386.md: Move scheduling information into new files.
3012
3013         * i386.md (type attribute): Add "rotate" for rotate insns.
3014         (rotate insns): Set type to "rotate".
3015         (various attributes and function units): Treat rotate like shift.
3016         (pent_pair attribute): Only rotates by one bit position are
3017         pairable.
3018         (sbb insns): Explicitly set pent_pair attribute on a couple
3019         that were missing it.
3020
3021 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3022
3023         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
3024         make sure that buffer starts on odd word address.
3025         (sh_va_arg): Skip odd fp registers when reading a double precision
3026         value.
3027
3028 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3029
3030         * tree.h (preserve_data, object_permanent_p, type_precision):
3031         Remove.
3032
3033 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3034
3035         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
3036         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
3037 doc:
3038         * cpp.texi: Update for removal of obsolete features.
3039
3040 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
3041                           Jeffrey A Law  (law@redhat.com)
3042
3043         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
3044         the DFA interface for Pentium processors.
3045         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
3046         (attr_pent_pair, ix86_pent_find_pair): Remove.
3047         (ix86_sched_reorder_pentium): Remove.
3048         (ix86_sched_reorder): Remove reordering for Pentium.
3049         * i386.md (Pentium scheduling): Rewrite using DFA description.
3050
3051 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
3052
3053         * cfganal.c (can_fallthru): Fix fast path.
3054         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
3055         with edges to the next block.
3056
3057 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
3058                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
3059
3060         * final.c (end_final): Use C trees to output data structures for profiling.
3061
3062         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
3063         (profile.o): New dependency profile.h
3064         (final.o): New dependency profile.h
3065         * profile.h: New file. New global structure profile_info.
3066         * final.h (count_edges_instrumented_now): Declare.
3067         (current_function_cfg_checksum): Declare.
3068         (function_list): New structure.
3069         (functions_head, functions_tail): New static variables.
3070         (end_final): Emits more data, removed some -ax stuff.
3071         (final): Stores function names and chcksums.
3072         * gcov-io.h (__write_gcov_string): New function.
3073         (__read_gcov_string): New function.
3074         * gcov.c (read_profile): New function.
3075         (create_program_flow_graph): Uses read_profile instead of reading
3076         da_file.
3077         (read_files): Removed da_file checking, it's done by read_profile now.
3078         * libgcc2.c (bb_function_info): New structure.
3079         (bb): New field in structure, removed some -ax stuff.
3080         (__bb_exit_func): Changed structure of da_file.
3081         * profile.c (count_edges_instrumented_now): New global variable.
3082         (current_function_cfg_checksum): New global variable.
3083         (max_counter_in_program): New global variable.
3084         (get_exec_counts): New function.
3085         (compute_checksum): New function.
3086         (instrument_edges): Sets count_edges_instrumented_now.
3087         (compute_branch_probabilities): Uses get_exec_counts instead of
3088         reading da_file.
3089         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
3090         (init_branch_prob): Removed da_file checking, done in get_exec_counts
3091         now.
3092         (end_branch_prob): Removed da_file checking, done in get_exec_counts
3093         now.
3094         * gcov.texi: Updated information about gcov file format.
3095
3096 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
3097
3098         * sbitmap.c: Fix formatting.
3099         * scan.c: Likewise.
3100         * scan-decls.c: Likewise.
3101         * sched-deps.c: Likewise.
3102         * sched-ebb.c: Likewise.
3103         * sched-rgn.c: Likewise.
3104         * sched-vis.c: Likewise.
3105         * sdbout.c: Likewise.
3106         * sibcall.c: Likewise.
3107         * simplify-rtx.c: Likewise.
3108         * ssa.c: Likewise.
3109         * ssa-ccp.c: Likewise.
3110         * ssa-dce.c: Likewise.
3111         * stmt.c: Likewise.
3112         * stor-layout.c: Likewise.
3113         * stringpool.c: Likewise.
3114
3115 2002-05-09  David S. Miller  <davem@redhat.com>
3116
3117         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
3118
3119 2002-05-07  David S. Miller  <davem@redhat.com>
3120
3121         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
3122         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
3123         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
3124         library implementation clobbers the output before the inputs
3125         are fully consumed, use stack temporary for the output.
3126
3127 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
3128
3129         * config/netbsd.h (CPP_SPEC): Remove.
3130         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
3131         * config/i386/netbsd.h (CPP_SPEC): Define.
3132         * config/ns32k/netbsd.h (CPP_SPEC): Define.
3133         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
3134         * config/sparc/netbsd.h (CPP_SPEC): Define.
3135         * config/vax/netbsd.h (CPP_SPEC): Define.
3136
3137 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
3138
3139         * read-rtl.c: Fix formatting.
3140         * real.c: Likewise.
3141         * recog.c: Likewise.
3142         * regclass.c: Likewise.
3143         * regmove.c: Likewise.
3144         * reg-stack.c: Likewise.
3145         * reload1.c: Likewise.
3146         * reload.c: Likewise.
3147         * resource.c: Likewise.
3148         * rtlanal.c: Likewise.
3149         * rtl.c: Likewise.
3150         * rtl-error.c: Likewise.
3151
3152 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3153
3154         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
3155         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
3156
3157 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
3158
3159         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
3160         use __SSE2__ macro instead.
3161         * config/i386/xmmintrin.h: Likewise.
3162
3163 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
3164
3165         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
3166         and use it in all invocations of these macros.  Clean up comments.
3167         * rtl.c (rtl_check_failed_flag): Add an argument for the name
3168         of the flag access macro whose check failed.
3169         * doc/rtl.texi (Flags): Document additional flag uses.
3170
3171 2002-05-08  Robert Spier <rspier@pobox.com>
3172             Neil Booth  <neil@daikokuya.demon.co.uk>
3173
3174         PR preprocessor/6521
3175         * cppfiles.c (handle_missing_header): Don't do anything
3176         different for <> includes.
3177 doc:
3178         * cppopts.texi: Update documentation for -MG.
3179
3180 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3181
3182         * cpplex.c (cpp_interpret_charconst): Truncate as well as
3183         sign-extend.
3184 doc:
3185         * cpp.texi: Clarify multichar charconst valuation.
3186
3187 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3188
3189         * doc/invoke.texi: Document -mwindiss option.
3190
3191 2002-05-08  Jason Merrill  <jason@redhat.com>
3192
3193         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
3194
3195         * dwarf2out.c (gen_type_die): Abort on broken recursion.
3196
3197         PR c++/6381
3198         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
3199         REAL_CST.
3200
3201 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
3202
3203         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
3204         little-endian multilibs to override arm/thumb multilibs.
3205         Do not build hardware floating point multilibs, nor apcs-26
3206         multilibs for the Thumb.
3207
3208 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3209
3210         PR c/6569.
3211         * varasm.c (mark_weak): New function.
3212         (merge_weak): Use it.  Do not call declare_weak.
3213         (declare_weak): Use merge_weak.
3214
3215 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3216
3217         * cse.c (dead_libcall_p): Update counts.
3218         (delete_trivially_dead_insns): Update call of dead_libcall_p.
3219
3220 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3221
3222         * cfglayout.c (function_tail_eff_head): Rename to ...
3223         (function_footer): ... this one.
3224         (unlink_insn_chain): New functions.
3225         (label_for_bb): Only call block_label and emit debug message.
3226         (record_effective_endpoints): Actually unlink the headers and footers.
3227         (fixup_reorder_cahin): Re-insert the unlinked sequences.
3228         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
3229         * cfglayout.h (struct reorder_block_def): New fields footer/header;
3230         remove eff_head/eff_end.
3231         * rtl.h (set_first_insn): Declare.
3232         * emit-rtl.c (set_first_insn): New function.
3233
3234         * cfglayout.c (fixup_reorder_chain): Dump duplicated
3235         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3236         cfg_layout_duplicate_bb): New global function.
3237         (duplicate_insn_chain): New static function.
3238         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3239         cfg_layout_duplicate_bb): Declare.
3240         (struct reorder_block_def): Add "original" field.
3241         * emit-rtl.c (emit_copy_of_insn_after): New function.
3242         * rtl.h (emit_copy_of_insn_after): Declare.
3243
3244         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
3245         (fixup_reorder_chain): properly handle edges to exit block.
3246
3247 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3248                                Jan Hubicka  <jh@suse.cz>
3249
3250         * basic-block.h (note_prediction_to_br_prob): declare.
3251         * c-semantics.c: Inlucde predit.h
3252         (expand_stmt): predict GOTO_STMT as not taken.
3253         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
3254         (cleanup_cfg): Do not free tail_recursion_list.
3255         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
3256         (flow_delete_block): Kill predictions past end of basic block.
3257         * output.h (delete_unreachable_blocks): Declare.
3258         * predict.c (predicted_by_p, process_note_predictions,
3259         process_note_prediction, last_block_p): New function.
3260         (estimate_probability): Bypass loop on PRED_CONTINUE;
3261         do not handle noreturn heuristics; kill PRED_RETURN; add
3262         PRED_EARLY_RETURN.
3263         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
3264         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
3265         * predict.h (IS_TAKEN): New constant.
3266         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
3267         * rtl.c (NOTE_INSN_PREDICTION): New.
3268         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
3269         New macro.
3270         (insn_note): add NOTE_INSN_PREDICTION.
3271         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
3272         CFG; free tail_recursion_label_list.
3273         * stmt.c: Include predict.h;
3274         (return_prediction): New.
3275         (expand_value_return): Use it.
3276         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
3277
3278 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
3279
3280         * config/mips/mips.md: Name the unspecs with define_constant.
3281         (*HILO_delay): Rename to 'hilo_delay' (no star).
3282         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
3283         (reload_outdi, reload_outsi): Likewise.
3284
3285 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
3286
3287         * toplev.c: Fix formatting.
3288
3289 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
3290
3291         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
3292         * configure.in (ac_rtlflag_checking): New.
3293         * doc/install.texi (--enable-checking): Document RTL flag checking.
3294
3295 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3296
3297         * c-common.c (c_common_init): Set options->unsigned_wchar.
3298         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
3299         group target dependencies.
3300         (init_builtins, cpp_handle_option): Update.
3301         * cpplex.c (cpp_interpret_charconst): Update.
3302         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
3303         signed_char to unsigned_char, group target dependencies.
3304         * defaults.h (WCHAR_UNSIGNED): Remove.
3305         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
3306 config:
3307         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
3308         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
3309         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
3310         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
3311         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
3312 doc:
3313         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
3314
3315 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3316
3317         * fixinc/inclhack.def (windiss_math1): New fix.
3318         (windiss_math2): Likewise.
3319         (windiss_valist): Likewise.
3320         * fixinc/fixincl.x: Regenerated.
3321
3322 2002-05-07  Andreas Jaeger  <aj@suse.de>
3323
3324         * genautomata.c (output_internal_min_issue_delay_func): Add
3325         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
3326         (output_internal_trans_func): Likewise.
3327
3328 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
3329
3330         * pa.c (hppa_profile_hook): Use force_reg to get the address
3331         of the profile hook into an appropriate pseudo register.
3332
3333 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3334
3335         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
3336         (LINK_START_SPEC): Handle it.
3337         (LINK_OS_SPEC): Likewise.
3338         (CPP_SPEC): Likewise.
3339         (STARTFILE_SPEC): Likewise.
3340         (LIB_SPEC): Likewise.
3341         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
3342         all platforms.
3343         (CRTSAVRES_DEFAULT_SPEC): New macro.
3344         (LIB_WINDISS_SPEC): New macro.
3345         (CPP_OS_WINDISS_SPEC): Likewise.
3346         (STARTFILE_WINDISS_SPEC): Likewise.
3347         (ENDFILE_WINDISS_SPEC): Likewise.
3348         (LINK_START_WINDISS_SPEC): Likewise.
3349         (LINK_OS_WINDISS_SPEC): Likewise.
3350         * config/rs6000/windiss.h: New file.
3351
3352 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
3353
3354         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
3355
3356 2002-05-06  David S. Miller  <davem@redhat.com>
3357
3358         * config/sparc/sparc.md (shift insns): Do not mask off
3359         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
3360         take care of it.
3361
3362 2002-05-06  Richard Henderson  <rth@redhat.com>
3363
3364         PR c++/6212
3365         * expr.c (highest_pow2_factor_for_type): New.
3366         (expand_assignment): Use it.
3367
3368 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
3369
3370         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
3371         unspec_volatile.
3372         ("altivec_mfvscr"): Same.
3373
3374 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3375
3376         * rtl.h (struct rtx_def): Update comments.
3377         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
3378         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
3379         RTL_FLAG_CHECK macros with list of expected RTL codes.
3380         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
3381         (rtl_check_failed_flag): New.
3382         * reload1.c (reload): Use REG macro before changing rtx to MEM.
3383         (reload_cse_noop_set_p): Check rtx code before using access macro.
3384         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
3385         before using access macro.
3386
3387 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3388
3389         * doc/rtl.texi (Flags): Update to reflect current usage.
3390
3391 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3392
3393         PR opt/3995
3394         * fold-const.c (sign_bit_p): New function.
3395         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
3396         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
3397         Reapply fold when converting (A & C) == C into (A & C) != 0.
3398         (fold_binary_op_with_conditional_arg): Fix typo in comment.
3399
3400 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3401
3402         * c-common.c (warn_multichar): New.
3403         (c_common_init): Set CPP's warn_multichar.
3404         * c-common.h (warn_multichar): New.
3405         * c-decl.c (warn_multichar): Remove.
3406         * c-lex.c (lex_charconst): Update.
3407         * c-tree.h (warn_multichar): Remove.
3408         * cppexp.c (eval_token): Sign-extend charconst value.
3409         * cppinit.c (cpp_create_reader): Set warn_multichar.
3410         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
3411         each character.  Update prototype.  Sign-extend the result.
3412         * cpplib.h: Fix conditions.
3413         (struct cpp_options): Add new warning flag.
3414         (cpp_interpret_charconst): Update prototype.
3415 doc:
3416         * cpp.texi: Update documentation.
3417
3418 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
3419
3420         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
3421         Fix typo in usage of allof instead of unit.
3422
3423 2002-05-06  Richard Henderson  <rth@redhat.com>
3424
3425         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
3426         and any jump or call for IN.
3427
3428 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
3429
3430         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
3431         -msse2.
3432         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
3433
3434 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3435
3436         * fold-const.c (lshift-double): Cast the high word to an unsigned
3437         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
3438         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
3439         avoid compiler warning.  (fold): Remove redundant code from
3440         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
3441
3442 2002-05-06  Jeff Law  <law@redhat.com>
3443
3444         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
3445         * pa.c (pa_adjust_cost): Remove all true dependency cost
3446         adjustments.  Also remove support for non-DFA scheduling.
3447         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
3448         to adjust true dependency costs.  Update various comments.
3449         (7100lc, 7200, 7300 scheduling): Simplify by combining the
3450         FP ALU & MPY units into a single unit.
3451
3452 2002-05-06  Catherine Moore  <clm@redhat.com>
3453
3454         * config/v850/v850.c (compute_register_save_size): Make sure
3455         to count all of the registers that will be saved.
3456
3457 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3458
3459         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
3460
3461 2002-05-06  David S. Miller  <davem@redhat.com>
3462
3463         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
3464         allow result to overlap input operands in memory.
3465
3466 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3467
3468 doc:
3469         * cpp.texi: Update multichar charconst docs.
3470
3471 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3472
3473         * cpplex.c (cpp_interpret_charconst): Sign-extend each
3474         character.  Don't ignore excess characters.  Treat
3475         multicharacter character constants as signed.
3476         (cpp_parse_escape): Clarify diagnostic.
3477
3478 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3479
3480         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
3481         use add instead of shift.
3482         (ashldi3_sp64): Likewise.
3483         (ashlsi3_const1, ashldi3_const1): Remove.
3484         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
3485         * config/sparc/sparc.c (const1_operand): New.
3486
3487 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3488
3489         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
3490
3491 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3492
3493         PR target/6561
3494         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
3495
3496 2002-05-05  Richard Henderson  <rth@redhat.com>
3497
3498         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
3499         memory latency adjustments.
3500         (alpha_variable_issue): Remove.
3501         (alpha_use_dfa_pipeline_interface): New.
3502         (alpha_multipass_dfa_lookahead): New.
3503         * config/alpha/alpha.md: Remove define_function_unit scheduling;
3504         include new dfa scheduling.
3505         (attr type): Add none.
3506         (blockage): Use it.
3507         * config/alpha/ev4.md: New.
3508         * config/alpha/ev5.md: New.
3509         * config/alpha/ev6.md: New.
3510
3511 2002-05-05  David S. Miller  <davem@redhat.com>
3512
3513         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
3514
3515 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
3516
3517         * cse.c: Fix formatting.
3518         * emit-rtl.c: Likewise.
3519
3520 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3521
3522         * genautomata.c (initiate_states): Add additional guard to
3523         initialize `units_array'.
3524
3525 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3526
3527         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
3528         process_unit_to_form_the_same_automaton_unit_lists,
3529         form_the_same_automaton_unit_lists
3530         check_unit_distributions_to_automata): New prototypes and
3531         functions.
3532         (check_automata): Rename it into `check_automata_insn_issues'.
3533         (unit_decl): New fields `the_same_automaton_unit' and
3534         `the_same_automaton_message_reported_p'.
3535         (unit_decl_t): New typedef.
3536         (the_same_automaton_lists): New gloval variable.
3537         (unit_regexp, unit_set_el, units_array, units_cmp,
3538         output_get_cpu_unit_code_func): Use the typedef.
3539         (evaluate_max_reserv_cycles): Increment
3540         `description->max_insn_reserv_cycles'.
3541         (initiate_states): Don't increment `max_cycles_num'.
3542         (transform_insn_regexps): Move code around transformation of
3543         regexps from `generate'.
3544         (generate): Remove call of `transform_insn_regexps'.
3545         (expand_automata): Call `transform_insn_regexps' and
3546         `check_unit_distributions_to_automata'.  Check errors before
3547         `generate'.
3548
3549         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
3550         automaton `ultrasparc3_1'.
3551
3552 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3553
3554         * c-common.c (c_common_init): Set up CPP arithmetic.
3555         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
3556         something reasonable for the host.
3557         (sanity_checks): Add checks.
3558         (cpp_read_main_file): Call sanity_checks() from here...
3559         (cpp_post_options): ... not here.
3560         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
3561         * cpplib.h (struct cpp_options): New member int_precision.
3562
3563 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3564
3565         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
3566
3567 2002-05-04  David S. Miller  <davem@redhat.com>
3568
3569         * config/sparc/linux.h, config/sparc/linux64.h
3570         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
3571
3572         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
3573         more RTX codes.
3574         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
3575
3576         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
3577         of SETs.
3578
3579 2002-05-05  Tim Josling  <tej@melbpc.org.au>
3580
3581         * treelang; New directory for new sample language treelang.
3582
3583 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3584
3585         * Makefile.in (c-lex.o): Update.
3586         * c-lex.c: Include target.h.
3587         (cb_register_builtins): New.
3588         (init_c_lex): Set builtins callback.
3589         * c-lex.h (cpp_define, cpp_assert): New prototypes.
3590         * cppinit.c (init_builtins): Use callback, including for
3591         GXX_WEAK.
3592         * cpplib.h (struct cpp_callbacks): New member.
3593         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
3594         (TARGET_INITIALIZER): Update.
3595         * target.h (struct gcc_target): New hook.
3596         * tree.c (default_register_cpp_builtins): New.
3597         * tree.h (default_register_cpp_builtins): New.
3598 doc:
3599         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
3600
3601 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3602
3603         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
3604         (cpp_post_options): Move sanity checks to...
3605         (sanity_checks): New.
3606         * cpplex.c (maybe_read_ucs): Fix prototype.
3607         (parse_string, cpp_parse_escape): Cast for %c format specifier.
3608         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
3609         if necessary.
3610
3611 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
3612
3613         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
3614         builtins.  Use V2DI patterns instead of TI for logical operations.
3615         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
3616         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
3617         (ix86_expand_builtins): Change the pattern used for movntdq.
3618         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
3619         sse2_nandv2di3): New patterns.
3620         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
3621         on operands.
3622         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
3623         (cvtdq2pd): Correct mode on operand 1.
3624         (sse2_umulsidi3): Describe without unspec.
3625         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
3626         machine modes.
3627         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
3628         (ashlv2di3): Likewise, from sse2_ashlv2di3.
3629         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
3630         ashlv4si3, ashlv2di3): Use SImode for shift count.
3631         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
3632         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
3633         New patterns.
3634         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
3635         New typedefs.
3636         (__m128i, __m128d): New macros.
3637         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
3638         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
3639         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
3640         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
3641         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
3642         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
3643         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
3644         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
3645         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
3646         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
3647         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
3648         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
3649         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
3650         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
3651         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
3652         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
3653         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
3654         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
3655         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
3656         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
3657         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
3658         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
3659         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
3660         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
3661         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
3662         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
3663         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
3664         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
3665         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
3666         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
3667         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
3668         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
3669         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
3670         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
3671         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
3672         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
3673         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
3674         functions.
3675         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
3676         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
3677
3678 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3679
3680         * dwarf2out.c: Fix formatting.
3681         * varasm.c: Likewise.
3682
3683 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
3684
3685         PR c/6543
3686         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
3687         clobber and use result as temporary value.
3688
3689 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3690
3691         * expr.c (force_operand): Use expand_simple_* to handle more
3692         cases.
3693
3694 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3695
3696         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
3697         and sign-extension.
3698         (lex_charconst): Update for change in prototype of
3699         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
3700         appropriately.
3701         * cpphash.h (BITS_PER_CPPCHAR_T): New.
3702         * cppinit.c (cpp_create_reader): Initialize them for no
3703         change in semantics.
3704         (cpp_post_options): Add sanity checks.
3705         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
3706         and truncation issues.  Calculate in type cppchar_t.
3707         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
3708         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
3709         run-time dependent precision correctly.  Return whether the
3710         result is signed or not.
3711         * cpplib.c (dequote_string): Use cppchar_t; update.
3712         * cpplib.h (cppchar_signed_t): New.
3713         struct cpp_options): New precision members.
3714         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
3715         * cppexp.c (eval_token): Update.
3716
3717 2002-05-03  David S. Miller  <davem@redhat.com>
3718
3719         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
3720         * config/sparc/sparc.c (sparc_rtx_costs): New function
3721         implementing RTX_COSTS and CONST_COSTS.
3722         * config/sparc/sparc.h (CONST_COSTS): Delete.
3723         (RTX_COSTS_CASES): Define.
3724         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
3725         the work.
3726
3727         * config/sparc/sparc.md (DFA schedulers): Split out...
3728         * config/sparc/cypress.md, config/sparc/hypersparc.md,
3729         config/sparc/sparclet.md, config/sparc/supersparc.md,
3730         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
3731
3732         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
3733         checks on it, always defined for Sparc.
3734
3735         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
3736         Tweak, and add more detailed comments.
3737
3738 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
3739
3740         * Re-apply patch accidentally reverted with
3741         DFA scheduler merge: remove all rules and variables to slurp
3742         source files out of libiberty and rebuild them with HOST_CC.
3743         ($(HOST_PREFIX_1)varray.o): New rule.
3744         (genattrtab rule): Word wrap.
3745
3746 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3747
3748         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
3749         (CPP_SUBTARGET_SPEC): Define.
3750         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
3751         cpp_subtarget specs.
3752         (CPP_SPEC): Redefine to include %(cpp_subtarget).
3753
3754 2002-05-03  David S. Miller  <davem@redhat.com>
3755
3756         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
3757         * target.h (struct gcc_target): Delete cycle_display member.
3758
3759         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
3760         (rtx_needs_barrier): Delete reference to cycle_display unspec.
3761         (ia64_sched_reorder2): Mention need for cycle display handling
3762         once such notes exist.
3763
3764 2002-05-03  Richard Henderson  <rth@redhat.com>
3765
3766         * real.c (etoasc): Strip most trailing zeros for clarity.
3767         * sched-vis.c: Include real.h.
3768         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
3769         * Makefile.in (sched-vis.o): Add real.h.
3770
3771 2002-05-03  David S. Miller  <davem@redhat.com>
3772
3773         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
3774         no longer needed.
3775
3776 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
3777
3778         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
3779         when we get an out of range literal.
3780         (altivec_expand_ternop_builtin): Same.
3781         (altivec_expand_unop_builtin): Same.
3782         (altivec_expand_builtin): Same, for dss.
3783         (altivec_expand_builtin): Use trees instead of rtl when
3784         determining literal argument validity.
3785
3786 2002-05-03  David S. Miller  <davem@redhat.com>
3787
3788         Delete cycle display scheduling hook.
3789         * config/ia64/ia64.c (ia64_cycle_display,
3790         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
3791         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
3792         and use emit_insn_before instead of ia64_emit_insn_before.
3793         * config/ia64/ia64.md (unspec usage): Delete cycle display.
3794         (cycle_display): Delete insn pattern.
3795         * config/sparc/sparc.md (unspec usage): Delete cycle display.
3796         (cycle_display): Delete insn pattern.
3797         * config/sparc/sparc.c (sparc_cycle_display,
3798         TARGET_SCHED_CYCLE_DISPLAY): Delete.
3799         * doc/md.texi (cycle_display): Don't mention.
3800         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
3801
3802 2002-05-03  Richard Henderson  <rth@redhat.com>
3803
3804         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
3805         * recog.h: Declare them.
3806
3807         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
3808         * config/sparc/sparc.md: Use store_data_bypass_p instead.
3809         * config/sparc/sparc-protos.h: Update.
3810
3811 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3812
3813         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
3814         -D__arch64__.  Add -D_LP64.
3815         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
3816         from sparc.h.
3817         (CPP_ARCH64_SPEC): Likewise.
3818         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
3819         (NO_BUILTIN_SIZE_TYPE): Undef.
3820
3821 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
3822
3823         * genautomata.c (min_issue_delay_pass_states): Change return type
3824         in the prototype.
3825         (min_issue_delay_pass_states): Change the algorithm.
3826         (min_issue_delay): Set up min_insn_issue_delay for the state.
3827         (output_min_issue_delay_table): Interchange the nested loops and
3828         and initiate min_insn_issue_delay for states.
3829
3830 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
3831
3832         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
3833         jump is simplejump.
3834
3835 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
3836
3837         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
3838         sequence.
3839
3840 2002-05-03  Richard Henderson  <rth@redhat.com>
3841
3842         PR opt/6534
3843         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3844         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3845         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
3846         code before JUMP, not EARLIEST.
3847
3848 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3849
3850         * c-format.c (check_format_info_main): Don't check for presence of
3851         parameter for * width until after operand number has been read,
3852         and only check for it if format parameters are available.
3853         Fixes PR c/6547.
3854
3855 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3856
3857         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
3858         (LINK_SPEC): Undef before defining.
3859
3860 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3861
3862         PR preprocessor/6489
3863         * tradcpp.c (fixup_newlines): New.
3864         (main, finclude): Use it.
3865
3866 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
3867
3868         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
3869         * config/mips/mips.c (mips_unique_section): Strip encoding from
3870         decl name.
3871
3872 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3873
3874         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
3875         mode.
3876
3877 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3878
3879         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
3880         (Specific): Removed buildstats references.
3881         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
3882         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
3883         Accomodate Solaris versions beyond 8.
3884         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
3885         (Specific, *-*-solaris2.8): Removed, obsolete.
3886
3887 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3888
3889         PR target/6542
3890         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
3891         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
3892         fill leaf_reg_remap with identity.
3893         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
3894
3895 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3896
3897         * config/h8300/crti.asm: Remove trailing spaces.
3898         * config/h8300/h8300.c: Likewise.
3899         * config/h8300/lib1funcs.asm: Likewise.
3900
3901 2002-05-02  Jason Merrill  <jason@redhat.com>
3902
3903         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
3904         * c-decl.c (c_init_decl_processing): Use it.
3905         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
3906         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
3907         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
3908
3909 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3910
3911         * regrename.c: Fix formatting.
3912         * tree.c: Likewise.
3913
3914 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3915
3916         * i386.md (attribute memory): Handle compares properly.
3917
3918 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
3919
3920         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
3921         to none.
3922
3923 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3924
3925         * function.c: Fix formatting.
3926
3927 2002-05-02  Jan Hubicka  <jh@suse.cz>
3928
3929         * haifa-sched.c (schedule_insn): Print table of instructions and
3930         reservations.
3931         (sched_block): Do not print ready list at verbosity level 1.
3932         * sched-vis.c (print_insn): Make global.
3933         * sched-ebb.c (ebb_print_insn): Rename from...
3934         (print_insn): ... this one.
3935         * sched-int.h (print_insn): Declare
3936
3937 2002-05-02  Richard Henderson  <rth@redhat.com>
3938
3939         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
3940         emitted by cycle_display.
3941
3942 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
3943
3944         * doc/install.texi (*-*-freebsd*): Update to latest status.
3945
3946 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
3947
3948         PR target/6540
3949         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
3950         * config/float-sparc.h: Assume 128-bit long double if
3951         __LONG_DOUBLE_128__ is defined.
3952
3953 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
3954
3955         * genattrtab.c (write_function_unit_info): Add a dummy element
3956         when num_units == 0.
3957
3958 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3959
3960         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
3961         TYPE_MODE (double_type_node) instead of DFmode.
3962
3963 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
3964
3965         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
3966         jumps post reload.
3967         * toplev.c (rest_of_compilation): Revert Richard's patch.
3968
3969 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3970
3971         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
3972
3973 2002-05-02  Catherine Moore  <clm@redhat.com>
3974
3975         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
3976
3977 2002-05-02  Kazu Hirata  <kazu@hxi.com>
3978
3979         * combine.c: Fix comment typos.
3980         * expr.c: Likewise.
3981         * genautomata.c: Likewise.
3982         * stmt.c: Likewise.
3983         * tree.h: Likewise.
3984
3985 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3986
3987         * doc/install.texi: State GNAT version requirements.
3988
3989 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
3990
3991         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
3992         of the frame pointer or arg pointer register which strict register
3993         checking is not enabled.
3994
3995 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
3996
3997         * gcc.dg/altivec-8.c: New.
3998
3999         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
4000         PRE_INC and PRE_DEC for altivec modes.
4001
4002 2002-05-01  Bruce Korb  <bkorb@gnu.org>
4003
4004         * fixinc/check.tpl(set-writable): make sure the function exists first
4005         * fixinc/inclhack.def(alpha_assert): fix test_text
4006         * fixinc/tests/base/assert.h: add in missing result
4007
4008 2002-05-01  Jeff Law  <law@redhat.com>
4009
4010         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
4011         'T' constraint.
4012
4013 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
4014
4015         * dbxout.c (dbxout_type): Emit size information for range types,
4016         as well, but only when using GDB extensions.
4017
4018 2002-05-01  Richard Henderson  <rth@redhat.com>
4019
4020         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
4021         target-independent gnu binutils date test.
4022
4023 2002-05-01  Richard Henderson  <rth@redhat.com>
4024
4025         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
4026         info before expunging the block.
4027
4028 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4029
4030         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
4031         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
4032         -M -or -MM is in effect.
4033
4034 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
4035
4036         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
4037         A29k configurations.
4038         * doc/install.texi: Update to match.
4039
4040 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4041
4042         PR bootstrap/6514
4043         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
4044         for duplicates. Always loop over whole list.
4045
4046 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4047
4048         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
4049
4050 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4051
4052         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
4053         support routines.
4054
4055 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4056
4057         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
4058
4059 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
4060
4061         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
4062         (nabs_nopower): Same.
4063         (floatdisf2): New pattern.
4064         (absdi2): Convert to define_insn_and_split.
4065         (nabsdi2): Same.
4066         (trunctfsf2): Same.
4067         (floatditf2): Same.
4068         (floatsitf2): Same.
4069         (fix_trunctfdi2): Same.
4070         (fix_trunctfsi2): Same.
4071
4072 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
4073
4074         * doc/install.texi: Update Texinfo version requirement
4075         documentation.
4076
4077 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4078
4079         PR target/6512, PR target/5628
4080         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
4081         when memory is not aligned.
4082         (movdf_insn_v9only_vis): Likewise.
4083         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
4084         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
4085         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
4086
4087 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
4088
4089         * gcc.dg/altivec-7.c: New.
4090
4091         * config/rs6000/altivec.h: Cleanup.
4092
4093 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
4094
4095         * doc/invoke.texi (Option Summary): Add -mvrsave=.
4096         (RS/6000 and PowerPC Options): Document -mvrsave=.
4097
4098         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
4099         (rs6000_altivec_vrsave_string): Same.
4100         (rs6000_override_options): Call rs6000_parse_vrsave_option.
4101         (rs6000_parse_vrsave_option): New.
4102         (rs6000_stack_info): Only generate vrsave instructions when
4103         TARGET_ALTIVEC_VRSAVE.
4104
4105         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
4106         (rs6000_altivec_vrsave_string): Define extern.
4107         (rs6000_altivec_vrsave): Same.
4108         (TARGET_ALTIVEC_VRSAVE): New.
4109
4110 2002-04-30  Richard Henderson  <rth@redhat.com>
4111
4112         PR opt/6516
4113         * toplev.c (rest_of_compilation): Don't run cross-jump before
4114         bb-reorder.
4115
4116 2002-04-30  Tom Rix  <trix@redhat.com>
4117
4118         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
4119         check which_alternative.
4120
4121 2002-04-30  Kazu Hirata  <kazu@hxi.com>
4122
4123         * cpplex.c: Fix comment formatting.
4124         * function.c: Likewise.
4125         * integrate.c: Likewise.
4126         * regrename.c: Likewise.
4127         * sibcall.c: Likewise.
4128         * simplify-rtx.c: Likewise.
4129         * tree-inline.c: Likewise.
4130
4131 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4132
4133         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
4134         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
4135         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
4136         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
4137         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
4138         * pa/x-ada: New file.  Define ADA_CFLAGS.
4139
4140 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
4141
4142         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
4143         from MMIX_LAST_REGISTER_FILE_REGNUM.
4144         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
4145         (struct machine_function): New member highest_saved_stack_register
4146         previously static variable in mmix.c.
4147         (MACHINE_DEPENDENT_REORG): Define.
4148         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
4149         (MMIX_OUTPUT_REGNO): New.
4150         (mmix_target_asm_function_prologue): Move calculation of last used
4151         saved-stack-register into...
4152         (mmix_machine_dependent_reorg): New function.  Update to also handle
4153         !TARGET_ABI_GNU.
4154         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
4155         register names, simplify somewhat by new variable regno.
4156         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
4157         register.
4158         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
4159         emitting register names.
4160         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
4161         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
4162         Remove fixed FIXME.
4163         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
4164         Declare.
4165
4166         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
4167
4168 2002-04-30  Richard Henderson  <rth@redhat.com>
4169
4170         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
4171         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
4172         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
4173         emit_tfmode_cvt): New.
4174         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
4175         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
4176         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
4177         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
4178         * config/sparc/sparc-protos.h: Update.
4179
4180 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
4181
4182         * install.texi (Final install): Add to the list of info to include
4183         in a report of a successful bootstrap, and add link to 3.1 list.
4184
4185 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
4186
4187         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
4188         (mode): Add vector modes
4189         (i387): Kill attribute.
4190         (unit): New attribute.
4191         (length_immediate): Grok new types.
4192         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
4193         (modrm): Use "unit".
4194         (memory): Handle MMX/SSE properly.
4195         (scheduling descriptions): Kill uses of fop1.
4196         (sse, mmx, fp patterns): Set type and mode properly.
4197
4198 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
4199
4200         * pa.c (override_options): Default to PA8000 scheduling.
4201         * doc/invoke.texi (HP-PA options): Mention newly added 7300
4202         scheduling parameter.
4203
4204         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
4205         handling of double precision multiplies.
4206
4207         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
4208         fpdiv and fpsqrt instructions.
4209         (7200 & 7300 scheduling): Fix typo in handling of
4210         store-load and store-store penalties.
4211
4212 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4213
4214         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
4215         mips.  Add two missing commas.
4216
4217 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
4218
4219         * doc/contrib.texi (Contributors): Update Paolo Carlini's
4220         and Benjamin Kosnik's entries.
4221
4222 2002-04-29  David S. Miller  <davem@redhat.com>
4223
4224         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
4225         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
4226         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
4227         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4228
4229 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4230
4231         * combine.c (find_split_point): Use gen_int_mode.
4232
4233 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4234
4235         Merging code from dfa-branch:
4236
4237         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
4238
4239         * genautomata.c (output_reserv_sets): Fix typo.
4240
4241         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
4242
4243         * genautomata.c (output_reserv_sets): Remove
4244         next_cycle_output_flag.
4245
4246         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
4247
4248         * sched-rgn.c (init_ready_list): Make the DFA code handle
4249         USE/CLOBBER insns in the same way as the traditional
4250         scheduler.
4251         (new_ready): Similarly..
4252
4253         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
4254
4255         * haifa-sched.c (schedule_block): Change the DFA state only after
4256         issuing insn.
4257
4258         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
4259
4260         * pa.c (hppa_use_dfa_pipeline_interface): New function.
4261         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
4262         (override_options): Add PA7300 scheduling support.
4263         (pa_adjust_cost): Update various comments.  Properly
4264         handle anti and output dependencies when using the
4265         DFA scheduler.
4266         (pa_issue_rate): Add PA7300 scheduling support.
4267         (pa_can_combine_p): Call extract_insn before calling
4268         constrain_operands (taken from mainline tree).
4269         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
4270         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
4271         descriptions using DFA descriptions.  Add PA7300
4272         scheduling support.
4273
4274         2002-03-30  David S. Miller  <davem@redhat.com>
4275
4276         Add UltraSPARC-III DFA scheduling support.
4277         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
4278         Update FP conditional move on register insn patterns to use it, as
4279         appropriate.
4280         (define_attr cpu): Add ultrasparc3.
4281         (define_attr us3load_type): New, update integer load patterns to
4282         set it, as appropriate.
4283         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
4284         (rest): Add UltraSPARC3 scheduling description.
4285         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
4286         (PROCESSOR_ULTRASPARC3): New.
4287         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
4288         ({ASM,CPP}_CPU_SPEC): Likewise.
4289         (REGISTER_MOVE_COST): Likewise.
4290         (RTX_COSTS): Likewise.
4291         * config/sparc/sparc.c (sparc_override_options,
4292         sparc_initialize_trampoline, sparc64_initialize_trampoline,
4293         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4294         sparc_issue_rate): Likewise.
4295         * config/sparc/sol2.h: Likewise.
4296         * config/sparc/sol2-sld-64.h: Likewise.
4297         * config/sparc/linux64.h: Likewise.
4298
4299         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
4300
4301         * doc/md.texi: Add comments about usage the latency time for the
4302         different dependencies and about case when two or more conditions
4303         in different define_insn_reservations returns TRUE for an insn.
4304
4305         * doc/md.texi: Add reference for automaton based pipeline
4306         description.
4307
4308         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
4309
4310         * doc/passes.texi: Add missed information about genattrtab.
4311
4312         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4313
4314         * genautomata.c (output_automata_list_transition_code): Check
4315         automata_list on NULL.
4316
4317         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
4318
4319         * genautomata.c (output_insn_code_cases,
4320         output_automata_list_min_issue_delay_code,
4321         output_automata_list_transition_code,
4322         output_automata_list_state_alts_code): Comment the functions.
4323
4324         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
4325
4326         * genautomata.c (automata_list_el_t): New typedef.
4327         (get_free_automata_list_el,free_automata_list_el,
4328         free_automata_list, automata_list_hash, automata_list_eq_p,
4329         initiate_automata_lists, automata_list_start, automata_list_add,
4330         automata_list_finish, finish_automata_lists,
4331         output_insn_code_cases, output_automata_list_min_issue_delay_code,
4332         output_automata_list_transition_code,
4333         output_automata_list_state_alts_code, add_automaton_state,
4334         form_important_insn_automata_lists): New functions and prototypes.
4335         (insn_reserv_decl): Add members important_automata_list and
4336         processed_p.
4337         (ainsn): Add members important_p.
4338         (automata_list_el): New structure.
4339         (first_free_automata_list_el, current_automata_list,
4340         automata_list_table): New global variables.
4341         (create_ainsns): Initiate member important_p.
4342         (output_internal_min_issue_delay_func): Generate the switch and
4343         call output_insn_code_cases.
4344         (output_internal_trans_func, output_internal_state_alts_func):
4345         Ditto.
4346         (generate): Call initiate_automata_lists.
4347         (automaton_states): New global variable.
4348         (expand_automata): Call form_important_insn_automata_lists.
4349         (write_automata): Call finish_automata_lists.
4350
4351         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
4352
4353         * genautomata.c (add_excls, add_presence_absence): Check that
4354         cpu units in the sets belong the same automaton.
4355
4356         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
4357         about that cpu units in the sets belong the same automaton.
4358
4359         * doc/md.texi: Ditto.
4360
4361         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
4362                     Nitin Gupta  <niting@noida.hcltech.com>
4363
4364         * config/sh/sh.c (sh_use_dfa_interface): New function.
4365
4366         (sh_issue_rate): New Function.
4367         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
4368         TARGET_SCHED_ISSUE_RATE: define.
4369
4370         * config/sh/sh.md: Add DFA based pipeline description for SH4.
4371
4372         (define_attr insn_class): New attribute used for DFA
4373          scheduling.
4374         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
4375         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
4376          cmpeqdi_t): Likewise.
4377
4378         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
4379          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
4380          ex_group.
4381         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
4382
4383         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4384
4385         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
4386         break.
4387
4388         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4389
4390         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
4391         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
4392         necessary.
4393         (output_dfa_start_func): Initiate new variable insn_codes_length,
4394         (write_automata): Output definition of the new variable.
4395
4396         2001-10-02  David S. Miller  <davem@redhat.com>
4397
4398         * haifa-sched.c (advance_one_cycle): New function.
4399         (schedule_block): Use it.
4400         (queue_to_ready): Use it, and also make sure to advance the DFA
4401         state on all stall cycles, not just those where insn_queue links
4402         are found.
4403
4404         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
4405
4406         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
4407         non-zero if the highest-priority instruction could be scheduled.
4408         (choose_ready): Remove last argument from max_issue call.
4409
4410         2001-09-28  David S. Miller  <davem@redhat.com>
4411
4412         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
4413         ultrasparc and 3 for other multi-issue sparcs.
4414
4415         2001-09-27  David S. Miller  <davem@redhat.com>
4416
4417         * config/sparc/sparc.md (cycle_display): New pattern.
4418         * config/sparc/sparc.c (sparc_cycle_display): New.
4419         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
4420
4421         2001-09-25  David S. Miller  <davem@redhat.com>
4422
4423         Convert all of Sparc scheduling to DFA
4424         * config/sparc/sparc.md: Kill all define_function_unit
4425         directives and replace with DFA equivalent.
4426         * config/sparc/sparc.c (ultrasparc_adjust_cost,
4427         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
4428         ultra_fpmode_conflict_exists, ultra_find_type,
4429         ultra_build_types_avail, ultra_flush_pipeline,
4430         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
4431         ultrasparc_variable_issue, ultrasparc_sched_init,
4432         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
4433         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
4434         ultra_cur_hist, ultra_cycles_elapsed): Kill.
4435         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4436         ultrasparc_store_bypass_p): New.
4437         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
4438         Declare.
4439
4440         2001-09-24  David S. Miller  <davem@redhat.com>
4441
4442         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
4443         ready->vec[foo] not ready[foo].
4444
4445         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4446
4447         * doc/md.texi: Correct examples for define_insn_reservations
4448         `mult' and `div'.
4449
4450         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4451
4452         * genautomata.c (create_automata): Print message about creation of
4453         each automaton.
4454         (generate): Remove printing meease about creation of
4455         automata.
4456
4457         2001-09-05  David S. Miller  <davem@redhat.com>
4458
4459         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4460         * config/sparc/linux64.h: Likewise.
4461
4462         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
4463
4464         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
4465         schedule_block, sched_init, sched_finish): Add missed calls of
4466         use_dfa_pipeline_interface.
4467
4468         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
4469         Ditto.
4470
4471         * sched-vis.c (get_visual_tbl_length): Ditto.
4472
4473         2001-08-27  Richard Henderson  <rth@redhat.com>
4474
4475         * genattr.c (main): Emit state_t even when not doing scheduling.
4476
4477         2001-08-27  Richard Henderson  <rth@redhat.com>
4478
4479         * genautomata.c (expand_automata): Always create a description.
4480
4481         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4482
4483         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
4484         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
4485         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
4486         RTL constructions.
4487
4488         * genattr.c (main): New variable num_insn_reservations.  Increase
4489         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
4490         pipeline hazard recognizer interface.
4491
4492         * genattrtab.h: New file.
4493
4494         * genattrtab.c: Include genattrtab.h.
4495         (attr_printf, check_attr_test, make_internal_attr,
4496         make_numeric_value): Move protypes into genattrtab.h.  Define them
4497         as external.
4498         (num_dfa_decls): New global variable.
4499         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
4500         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
4501         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
4502         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
4503
4504         * genautomata.c: New file.
4505
4506         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
4507
4508         * sched-int.h: (curr_state): Add the external definition for
4509         automaton pipeline interface.
4510         (haifa_insn_data): Add comments for members blockage and units.
4511
4512         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4513         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4514         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4515         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4516         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4517         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4518         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
4519         macros.
4520         (TARGET_SCHED): Use the new macros.
4521
4522         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
4523         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
4524         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
4525         dfa_bubble): New members in gcc_target.sched.
4526
4527         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
4528         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
4529         (insn_queue): Redefine it as pointer to array.
4530         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
4531         INSN_QUEUE_SIZE.
4532         (max_insn_queue_index_macro_value): New variable.
4533         (curr_state, dfa_state_size, ready_try): New varaibles for
4534         automaton interface.
4535         (ready_element, ready_remove, max_issue): New function prototypes
4536         for automaton interface.
4537         (choose_ready): New function prototype.
4538         (insn_unit, blockage_range): Add comments.
4539         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
4540         FUNCTION_UNITS_SIZE == 0.
4541         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
4542         actual_hazard, potential_hazard): Add comments.
4543         (insn_cost): Use cost -1 as undefined value.  Remove
4544         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
4545         pipeline interface.
4546         (ready_element, ready_remove): New functions for automaton
4547         interface.
4548         (schedule_insn): Add new code for automaton pipeline interface.
4549         (queue_to_ready): Add new code for automaton pipeline interface.
4550         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
4551         (debug_ready_list): Print newline when the queue is empty.
4552         (max_issue): New function for automaton pipeline interface.
4553         (choose_ready): New function.
4554         (schedule_block): Add new code for automaton pipeline interface.
4555         Print ready list before scheduling each insn.
4556         (sched_init): Add new code for automaton pipeline interface.
4557         Initiate insn cost by -1.
4558         (sched_finish): Free the current automaton state and finalize
4559         automaton pipeline interface.
4560
4561         * sched-rgn.c: Include target.h.
4562         (init_ready_list, new_ready, debug_dependencies): Add new code for
4563         automaton pipeline interface.
4564
4565         * sched-vis.c: Include target.h.
4566         (get_visual_tbl_length): Add code for automaton interface.
4567         (target_units, print_block_visualization):  Add comments.
4568
4569         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
4570         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
4571         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
4572         (getruntime.o, genautomata.o): New entries.
4573         (genattrtab.o): Add new dependency file genattrtab.h.
4574         (genattrtab): Add new dependencies.  Link it with `libm.a'.
4575         (getruntime.o, hashtab.o): New entries for canadian cross.
4576
4577         * doc/md.texi: Description of automaton based model.
4578
4579         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
4580         Add comments.
4581         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4582         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4583         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4584         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4585         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4586         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4587         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
4588         hook descriptions.
4589         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
4590         MAX_DFA_ISSUE_RATE): New macro descriptions.
4591
4592         * doc/contrib.texi: Add dfa based scheduler contribution.
4593
4594         * doc/gcc.texi: Add more information about genattrtab.
4595
4596 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4597
4598         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
4599         adjust_address_nv call.
4600
4601 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
4602
4603         * doc/install.texi (Testing): Provide additional information, and
4604         a stronger encouragement, for running the testsuites.
4605
4606 2002-04-29  DJ Delorie  <dj@redhat.com>
4607
4608         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
4609         given in upper case.
4610
4611 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4612
4613         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
4614         Solaris 2 <widec.h> if missing.
4615         * fixinc/fixincl.x: Regenerate.
4616         * fixinc/tests/base/widec.h: New file.
4617
4618 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
4619
4620         * toplev.c (f_options): Add "profile" switch so that
4621         -fno-profile can be used to disable -p.
4622
4623 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
4624
4625         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
4626         UV2DImode.
4627         * tree.c (build_common_tree_nodes_2): Likewise.
4628         * tree.h (enum tree_index): Likewise.
4629         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
4630
4631         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
4632         entries.
4633         (init_mmx_sse_builtins): Initialize SSE2 builtins.
4634         (ix86_expand_builtin): Add support for SSE2 builtins.
4635         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
4636         (VALID_SSE_REG_MODE): Use it.
4637         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
4638         (enum ix86_builtins): Add SSE2 builtins.
4639         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
4640         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
4641         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
4642         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
4643         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
4644         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
4645         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
4646         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
4647         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
4648         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
4649         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
4650         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
4651         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
4652         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4653         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
4654         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
4655         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
4656         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
4657         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
4658         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
4659         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
4660         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
4661         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
4662         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
4663         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
4664         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
4665         lfence_insn): New patterns.
4666         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
4667         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
4668
4669 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
4670
4671         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
4672
4673 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4674
4675         * doc/contrib.texi (Contributors): Add Paolo Carlini and
4676         Janis Johnson.
4677         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
4678         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
4679         and CPU instead of cpu.
4680
4681 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4682
4683         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
4684         variables.
4685         (lang_independent_options): Add -fif-conversion, -fif-conversion2
4686         (rest_of_compilation): Do if conversion only when asked for.
4687         (parse_options_and_default_flags): Set new variables to 1 for -O1
4688         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
4689
4690 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
4691
4692         * i386.c (dbx64_register_map): Fix typo.
4693
4694 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
4695
4696         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
4697         real_one_half, real_bb_freq_max): New static variables.
4698         (debug_profile_bbauxs): Kill.
4699         (process_note_predictions): Kill unused variable.
4700         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
4701         volatile double.
4702         (propagate_freq): Use REAL_ARITHMETICS.
4703         (estimate_bb_frequencies): Likevise; init new static variables.
4704         * Makefile.in (predict.o): Add dependency on real.h
4705
4706 2002-04-28  David S. Miller  <davem@redhat.com>
4707
4708         PR target/6500
4709         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
4710         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
4711         several {reads,writes} instead.
4712         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
4713         Define.
4714
4715 2002-04-27  David S. Miller  <davem@redhat.com>
4716
4717         PR target/6494
4718         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
4719         of the stack bias.
4720
4721         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
4722         including signal.h and sys/ucontext.h, not needed.
4723
4724 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
4725
4726         * varasm.c (output_constant_def): Correct test for not calling
4727         ENCODE_SECTION_INFO for INTEGER_CST.
4728
4729 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4730
4731         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
4732         keep most cases as function eval_token.
4733         (eval_token): New function.
4734         (_cpp_parse_expr): Read token here for improved diagnostics.
4735         Don't use op_as_text.  Detect bad ':' here.
4736         (reduce): Don't detect bad ':' here.
4737         (op_as_text): Remove.
4738         * cpphash.h (_cpp_test_assertion): Change prototype.
4739         * cpplib.c (_cpp_test_assertion): Change prototype.
4740
4741 2002-04-28  Richard Henderson  <rth@redhat.com>
4742
4743         PR c/5154
4744         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
4745         (ggc_mark_rtx_children): New.
4746
4747 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4748
4749         PR target/6496
4750         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
4751         after call peepholes for UltraSPARC.
4752         (call + jump 64-bit peepholes): Remove.
4753
4754 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4755
4756         PR c/6497
4757         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
4758         result as temporary value.
4759
4760 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4761
4762         PR c++/6396
4763         * toplev.c (rest_of_compilation): Only run regrename and copy
4764         propagation if optimizing.
4765
4766 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4767
4768         PR optimization/6475
4769         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
4770         register of REGNO_DECL (i).
4771         * Makefile.in (reload1.o): Add $(TREE_H).
4772
4773 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4774
4775         * cppexp.c (lex): Update to use state.skip_eval.
4776         (struct op): Remove prio and flags members.
4777         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
4778         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
4779         (LEFT_ASSOC): New macro.
4780         (optab): New table of operator priorities and flags.
4781         (SHIFT): Update.
4782         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
4783         malloc-ed parser stack.
4784         (reduce): New; reduce the operator stack.
4785         (_cpp_expand_op_stack): Expand the operator stack as necessary.
4786         * cpphash.h (struct op): Predeclare.
4787         (struct cpp_reader): New members op_stack, op_limit.
4788         (struct lexer_state): New member skip_eval.
4789         (_cpp_parse_expr): Update.
4790         (_cpp_expand_op_stack): New.
4791         * cpplib.c (do_if): Update.
4792         * cppinit.c (cpp_create_reader): Create op stack.
4793         (cpp_destroy): And destroy it.
4794         * cpplib.h (CPP_LAST_CPP_OP): Correct.
4795         (TTYPE_TABLE): Correct.
4796
4797 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4798
4799         PR c/6343
4800         * c-decl.c (duplicate_decls): Call merge_weak.
4801         * c-pragma.c (apply_pragma_weak): Warn about misuse.
4802         * output.h (merge_weak): Prototype merge_weak.
4803         * varasm.c (merge_weak): New function.
4804         (declare_weak): Make sure we don't give an error on VAR_DECLs.
4805         Mark RTL with SYMBOL_REF_WEAK.
4806
4807 2002-04-27  Kurt Garloff <garloff@suse.de>
4808
4809         * tree-inline.c (inlinable_function_p): Improve heuristics
4810         by using a smoother function to cut down allowable inlinable size.
4811         * param.def: Add parameters max-inline-insns-single,
4812         max-inline-slope, min-inline-insns that determine the exact
4813         shape of the above function.
4814         * param.h: Likewise.
4815
4816 2002-04-26  Richard Henderson  <rth@redhat.com>
4817
4818         * c-parse.in (malloced_yyss, malloced_yyvs): New.
4819         (yyoverflow): Re-add.  Set them.
4820         (free_parser_stacks): New.
4821         * c-common.h: Declare it.
4822         * c-lex.c (c_common_parse_file): Call it.
4823
4824 2002-04-26  Richard Henderson  <rth@redhat.com>
4825
4826         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
4827         for fallthru search.
4828
4829 2002-04-26  Eric Christopher  <echristo@redhat.com>
4830
4831         PR optimization/3700
4832         * config/mips/mips.c (mips_issue_rate): Define.  New function.
4833         (TARGET_SCHED_ISSUE_RATE): Use.
4834
4835 2002-04-25  David S. Miller  <davem@redhat.com>
4836
4837         PR target/6422
4838         * reorg.c (optimize_skip): Do not allow exception causing
4839         instructions to be considered for delay slots.
4840         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
4841         (relax_delay_slots): Do not try to consider exception causing
4842         instructions as redundant.
4843
4844 2002-04-26  Richard Henderson  <rth@redhat.com>
4845
4846         PR c/5225
4847         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
4848
4849 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
4850
4851         PR bootstrap/6445
4852         * config/i386/i386.md (untyped_call): Return the value in a float
4853         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
4854         TARGET_80387.
4855
4856 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
4857
4858         * tree.c (tree_int_cst_lt): Compare constants whose types differ
4859         in unsigned-ness correctly.
4860
4861 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4862
4863         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
4864         portable runtime model.
4865
4866 2002-04-26  Richard Henderson  <rth@redhat.com>
4867
4868         * c-parse.in (yyoverflow): Revert.
4869
4870 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
4871             Richard Henderson  <rth@redhat.com>
4872
4873         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
4874         result as temporary value.
4875
4876 2002-04-26  Richard Henderson  <rth@redhat.com>
4877
4878         PR c/3581
4879         * c-common.c (fix_string_type): Split out of ...
4880         (combine_strings): ... here.  Take a varray, not a tree list.
4881         (c_expand_builtin_printf): Use fix_string_type.
4882         * c-common.h: Update decls.
4883         * c-parse.in (string): Remove.  Update all uses to use STRING
4884         instead, and not call combine_strings.
4885         (yylexstring): New.
4886         (_yylex): Use it.
4887         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
4888         (build_asm_stmt): Likewise.
4889         * objc/objc-act.c (my_build_string): Use fix_string_type.
4890         (build_objc_string_object): Build varray for combine_strings.
4891
4892 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
4893
4894         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
4895         x86-64.
4896
4897 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4898
4899         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
4900         (HAVE_NO_R_OPERAND): Remove.
4901         (HAVE_VALUE): Remove.
4902         (op_to_prio): Update.
4903         (UNARY): Don't alter flags.
4904         (_cpp_parse_expr): want_value used to indicate whether
4905         a number or unary operator is expected next.  Distinguish
4906         unary and binary +/-.
4907         (op_as_text): Update for unary operators.
4908
4909 2002-04-25  Richard Henderson  <rth@redhat.com>
4910
4911         PR c/2161
4912         * c-parse.in (yyoverflow): New.
4913
4914 2002-04-25  Richard Henderson  <rth@redhat.com>
4915
4916         PR c/2098
4917         * c-common.c (shorten_compare): Simplfy conditions leading to
4918         the generation of a warning.
4919
4920 2002-04-25  Richard Henderson  <rth@redhat.com>
4921
4922         PR c/2035
4923         * expmed.c (extract_bit_field): Fall through to generic code rather
4924         than aborting on subreg special case.
4925
4926 2002-04-25  David S. Miller  <davem@redhat.com>
4927
4928         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
4929         for DECL being NULL.
4930
4931 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
4932
4933         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
4934
4935 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
4936
4937         * c-decl.c (grokdeclarator): Remove outdated ??? note
4938         on invalid declaration of flexible array members.
4939
4940 2002-04-25  Richard Henderson  <rth@redhat.com>
4941
4942         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
4943
4944 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
4945
4946         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
4947         needed by the compiler, even if they are used as global regs.
4948
4949 2002-04-25  Matt Hiller  <hiller@redhat.com>
4950
4951         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
4952         functions.
4953         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
4954         of the corresponding functions.
4955         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
4956         New prototypes.
4957
4958 2002-04-25  Matt Hiller  <hiller@redhat.com>
4959
4960         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
4961
4962         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
4963         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
4964         registers, adjust comment accordingly.
4965         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4966         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
4967         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
4968         for coprocessor registers.
4969         (ADDITIONAL_REGISTER_NAMES): Include
4970         ALL_COP_ADDITIONAL_REGISTER_NAMES.
4971
4972         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
4973         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
4974         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
4975         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
4976         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
4977
4978         (mips_char_to_class): Adjust comment to include coprocessor
4979         constraint letters.
4980
4981         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
4982         New functions.
4983         (mips_reg_names, mips_regno_to_class): Include coprocessor
4984         information.
4985         (mips_sw_reg_names): Ditto, make non-static.
4986         (mips_move_1word): Handle moves to and from coprocessor registers.
4987         (mips_move_2words): Handle moves to and from coprocessor
4988         registers.
4989         (mips_class_max_nregs, mips_register_move_cost): Handle
4990         coprocessor register classes.
4991         (override_options): Initialize mips_char_to_class and
4992         mips_hard_regno_mode_ok properly for coprocessor registers.
4993
4994         * config/mips/mips.md (movdi_internal, movdi_internal2,
4995         movsi_internal1, movsi_internal2): Add constraint-sets for
4996         coprocessor registers.
4997         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
4998         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
4999         isn't mips.
5000         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
5001         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
5002         isn't mips.
5003         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
5004         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
5005         isn't mips.
5006         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
5007         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
5008         isn't mips.
5009
5010         * doc/tm.texi: Document feature.
5011
5012 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5013
5014         * integrate.c (function_attribute_inlinable_p): Simplify.
5015         Check the table pointer is not NULL.
5016
5017 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
5018
5019         * doc/c-tree.texi: Fix typo in introduction.
5020
5021 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5022
5023         * c-common.h (c_common_parse_file): Update.
5024         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5025         * c-lex.c (YYDEBUG): Get from c-lex.h.
5026         (c_common_parse_file): Update.
5027         * c-lex.h (YYDEBUG, yydebug): New.
5028         * c-parse.in (YYDEBUG): Get from c-lex.h.
5029         (c_set_yydebug): Remove.
5030         * c-tree.h (c_set_yydebug): Remove.
5031         * langhooks-def.h (lhd_do_nothing_i): New.
5032         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
5033         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
5034         * langhooks.c  (lhd_do_nothing_i): New.
5035         (lhd_set_yydebug): Remove.
5036         * langhooks.h (struct lang_hooks): Update.
5037         * toplev.c (set_yydebug): New.
5038         (compile_file): Update call to parse_file hook.
5039         (decode_d_option): Update.
5040 objc:
5041         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5042
5043 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
5044
5045         * loop.c (load_mems): Don't change the interface of called functions.
5046
5047         * calls.c (expand_call): Take current_function_pretend_args_size
5048         into account when setting argblock for sibcalls.
5049
5050 2002-04-24  Matt Hiller  <hiller@redhat.com>
5051
5052         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
5053         * c-lex.c: Ditto.
5054
5055         * cpplex.c (skip_line_comment): Process comment one multibyte
5056         character at a time rather than one char at a time, if
5057         appropriate.
5058         (parse_string): Process string one multibyte character at a time
5059         rather than one char at a time, if appropriate.
5060         * c-lex.c (lex_string): Lex and copy multibyte strings
5061         appropriately.
5062         * cpplib.h (cppchar_t): Change to unsigned.
5063
5064 2002-04-24  Richard Henderson  <rth@redhat.com>
5065
5066         PR c/3467
5067         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
5068         for c99.
5069
5070 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
5071
5072         * sh.c (sh_va_arg): If argument was passed by reference,
5073         dereference the pointer.
5074
5075         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5076
5077         * sh.md (divsi3_i4_media): Use match_operand for input values
5078         rather than hard registers.
5079         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
5080         unnecessarily through hard registers.  Keep copies of pseudo
5081         registers outside of the libcall sequence.
5082
5083         * sh.md (casesi_shift_media): Add modes.
5084
5085         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
5086         values in memory.
5087
5088 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5089
5090         * attribs.c (c_common_attribute_table): Move table and handlers
5091         to c-common.c.
5092         (format_attribute_table, lang_attribute_table,
5093         lang_attribute_common): Remove.
5094         (init_attributes): Replace NULL pointers with pointers to the
5095         empty table.
5096         (handle_packed_attribute, handle_nocommon_attribute,
5097         handle_common_attribute, handle_noreturn_attribute,
5098         handle_noinline_attribute, handle_always_inline_attribute,
5099         handle_used_attribute, handle_unused_attribute,
5100         handle_const_attribute, handle_transparent_union_attribute,
5101         handle_constructor_attribute, handle_destructor_attribute,
5102         handle_mode_attribute, handle_section_attribute,
5103         handle_aligned_attribute, handle_weak_attribute,
5104         handle_alias_attribute, handle_visibility_attribute,
5105         handle_no_instrument_function_attribute, handle_malloc_attribute,
5106         handle_no_limit_stack_attribute, handle_pure_attribute,
5107         handle_deprecated_attribute, handle_vector_size_attribute,
5108         vector_size_helper): Move to c-common.c.
5109         * c-common.c (c_common_attribute_table,
5110         handle_packed_attribute, handle_nocommon_attribute,
5111         handle_common_attribute, handle_noreturn_attribute,
5112         handle_noinline_attribute, handle_always_inline_attribute,
5113         handle_used_attribute, handle_unused_attribute,
5114         handle_const_attribute, handle_transparent_union_attribute,
5115         handle_constructor_attribute, handle_destructor_attribute,
5116         handle_mode_attribute, handle_section_attribute,
5117         handle_aligned_attribute, handle_weak_attribute,
5118         handle_alias_attribute, handle_visibility_attribute,
5119         handle_no_instrument_function_attribute, handle_malloc_attribute,
5120         handle_no_limit_stack_attribute, handle_pure_attribute,
5121         handle_deprecated_attribute, handle_vector_size_attribute,
5122         vector_size_helper): Move from attribs.c.
5123         * c-common.h (c_common_attribute_table,
5124         c_common_format_attribute_table): New.
5125         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5126         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5127         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5128         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
5129         (LANG_HOOKS_INITIALIZER): Update.
5130         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
5131         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
5132         * target.h: Update comment.
5133         * tree.c (default_target_attribute_table): Remove.
5134         * tree.h (default_target_attribute_table, format_attribute_table,
5135         lang_attribute_table, lang_attribute_common): Remove.
5136 objc:
5137         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5138         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5139
5140 2002-04-24  Jason Merrill  <jason@redhat.com>
5141
5142         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
5143         * dwarf2out.c (dwarf_attr_name): Support it.
5144         (gen_array_type_die): Emit it.
5145         (lookup_type_die): No special handling for VECTOR_TYPE.
5146         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
5147
5148 2002-04-24  Richard Henderson  <rth@redhat.com>
5149
5150         * config/mips/mips.md (movdi_usd): Renumber.
5151
5152 2002-04-24  David S. Miller  <davem@redhat.com>
5153
5154         PR target/6420
5155         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
5156         32-bit Sparc and current_function_returns_struct is true.
5157
5158 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5159
5160         * loop.c (canonicalize_condition): Use gen_int_mode.
5161
5162 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
5163
5164         * config/rs6000/altivec.h: Cleanup file.  Add non individual
5165         variants.
5166         (vec_vaddubm): New.
5167         (vec_vadduhm): New.
5168         (vec_vadduwm): New.
5169         (vec_vaddfp): New.
5170         (vec_vaddcuw): New.
5171         (vec_vaddubs): New.
5172         (vec_vaddsbs): New.
5173         (vec_vadduhs): New.
5174         (vec_vadduws): New.
5175         (vec_vaddsws): New.
5176         (vec_vand): New.
5177         (vec_vandc): New.
5178         (vec_vavgub): New.
5179         (vec_vavgsb): New.
5180         (vec_vavguh): New.
5181         (vec_vavgsh): New.
5182         (vec_vavguw): New.
5183         (vec_vavgsw): New.
5184         (vec_vrfip): New.
5185         (vec_vcmpbfp): New.
5186         (vec_vcmpequb): New.
5187         (vec_vcmpequh): New.
5188         (vec_vcmpequw): New.
5189         (vec_vcmpeqfp): New.
5190         (vec_vcmpgefp): New.
5191         (vec_vcmpgtub): New.
5192         (vec_vcmpgtsb): New.
5193         (vec_vcmpgtuh): New.
5194         (vec_vcmpgtsh): New.
5195         (vec_vcmpgtuw): New.
5196         (vec_vcmpgtsw): New.
5197         (vec_vcmpgtfp): New.
5198         (vec_vcmpgefp): New.
5199         (vec_vcfux): New.
5200         (vec_vcfsx): New.
5201         (vec_vctsxs): New.
5202         (vec_vctuxs): New.
5203         (vec_vexptefp): New.
5204         (vec_vrfim): New.
5205         (vec_lvx): New.
5206         (vec_lvebx): New.
5207         (vec_lvehx): New.
5208         (vec_lde): Add vector float variant.
5209         (vec_lvewx): New.
5210         (vec_lvxl): New.
5211         (vec_vlogefp): New.
5212         (vec_vmaddfp): New.
5213         (vec_vmhaddshs): New.
5214         (vec_vmaxub): New.
5215         (vec_vmaxsb): New.
5216         (vec_vmaxuh): New.
5217         (vec_vmaxsh): New.
5218         (vec_vmaxuw): New.
5219         (vec_vmaxsw): New.
5220         (vec_vmaxsw): New.
5221         (vec_vmaxfp): New.
5222         (vec_vmrghb): New.
5223         (vec_vmrghh): New.
5224         (vec_vmrghw): New.
5225         (vec_vmrglb): New.
5226         (vec_vmrglh): New.
5227         (vec_vmrglw): New.
5228         (vec_vminub): New.
5229         (vec_vminsb): New.
5230         (vec_vminuh): New.
5231         (vec_vminsh): New.
5232         (vec_vminuw): New.
5233         (vec_vminsw): New.
5234         (vec_vminfp): New.
5235         (vec_vmladduhm): New.
5236         (vec_vmhraddshs): New.
5237         (vec_msumubm): New.
5238         (vec_vmsummbm): New.
5239         (vec_vmsumuhm): New.
5240         (vec_vmsumshm): New.
5241         (vec_vmsumuhs): New.
5242         (vec_vmsumshs): New.
5243         (vec_vmuleub): New.
5244         (vec_vmulesb): New.
5245         (vec_vmuleuh): New.
5246         (vec_vmulesh): New.
5247         (vec_vmuloub): New.
5248         (vec_mulosb): New.
5249         (vec_vmulouh): New.
5250         (vec_vmulosh): New.
5251         (vec_vnmsubfp): New.
5252         (vec_vnor): New.
5253         (vec_vor): New.
5254         (vec_vpkuhum): New.
5255         (vec_vpkuwum): New.
5256         (vec_vpkpx): New.
5257         (vec_vpkuhus): New.
5258         (vec_vpkshss): New.
5259         (vec_vpkuwus): New.
5260         (vec_vpkswss): New.
5261         (vec_vpkshus): New.
5262         (vec_vpkswus): New.
5263         (vec_vperm): New.
5264         (vec_vrefp): New.
5265         (vec_vrlb): New.
5266         (vec_vrlh): New.
5267         (vec_vrlw): New.
5268         (vec_vrfin): New.
5269         (vec_vrsqrtefp): New.
5270         (vec_vsel): New.
5271         (vec_vslb): New.
5272         (vec_vslh): New.
5273         (vec_vslw): New.
5274         (vec_vsldoi): New.
5275         (vec_vsl): New.
5276         (vec_vslo): New.
5277         (vec_vspltb): New.
5278         (vec_vsplth): New.
5279         (vec_vspltw): New.
5280         (vec_vspltisb): New.
5281         (vec_vspltish): New.
5282         (vec_vspltisw): New.
5283         (vec_vsrb): New.
5284         (vec_vsrh): New.
5285         (vec_vsrw): New.
5286         (vec_vsrab): New.
5287         (vec_vsrah): New.
5288         (vec_vsraw): New.
5289         (vec_vsr): New.
5290         (vec_vsro): New.
5291         (vec_stvx): New.
5292         (vec_stvebx): New.
5293         (vec_stvehx): New.
5294         (vec_stvewx): New.
5295         (vec_stvxl): New.
5296         (vec_vsububm): New.
5297         (vec_vsubuhm): New.
5298         (vec_vsubuwm): New.
5299         (vec_vsubfp): New.
5300         (vec_vsubcuw): New.
5301         (vec_vsububs): New.
5302         (vec_vsubsbs): New.
5303         (vec_vsubuhs): New.
5304         (vec_vsubshs): New.
5305         (vec_vsubuws): New.
5306         (vec_vsubsws): New.
5307         (vec_vsum4ubs): New.
5308         (vec_vsum4sbs): New.
5309         (vec_vsum4shs): New.
5310         (vec_vsum2sws): New.
5311         (vec_vsumsws): New.
5312         (vec_vrfiz): New.
5313         (vec_vupkhsb): New.
5314         (vec_vupkhpx): New.
5315         (vec_vupkhsh): New.
5316         (vec_vupklsb): New.
5317         (vec_vupklpx): New.
5318         (vec_vupklsh): New.
5319         (vec_vxor): New.
5320
5321 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
5322
5323         PR c/5430
5324         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
5325         added literals from substracted literals.
5326         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
5327         (fold) [associate]: Preserve MINUS_EXPR if needed.
5328
5329 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
5330
5331         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
5332         are obsoleted.
5333
5334 2002-04-23  Tom Tromey  <tromey@redhat.com>
5335
5336         * gcc.c: Added --resource.  For PR java/6314.
5337
5338 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5339
5340         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
5341         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
5342         these libraries.
5343
5344 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5345
5346         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
5347
5348 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5349
5350         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
5351         workaround.
5352         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
5353         (ix86_expand_clrstr): Fix typo.
5354         * loop.c (gen_load_of_final_value): New.
5355         (loop_givs_rescan, strength_reduce, check_dbra_loop):
5356         Use it.
5357
5358 2002-04-23  Roger Sayle  <roger@eyesopen.com>
5359
5360         * builtins.c (builtin_memset_gen_str): New function.
5361         (expand_builtin_memset): Optimize the case of constant length, but
5362         unknown value.
5363
5364 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
5365
5366         * config/rs6000/altivec.h (vec_step): Remove extraneous
5367         parentheses.
5368         (vec_ctu): Cast return.
5369
5370 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
5371
5372         PR target/6413
5373         * function.h: (struct function): Add profile_label_no field.
5374         (current_function_profile_label_no): Define.
5375         * function.c: (profile_label_no): New static var.
5376         (expand_function_start): Increment it, and copy to
5377         current_function_profile_label_no.
5378         * output.h (profile_label_no): Delete.
5379         * final.c (profile_label_no): Delete.
5380         (profile_function): Use current_function_profile_label_no.
5381         (final_end_function): Don't increment profile_label_no here.
5382         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
5383         profile_label_no with current_function_profile_label_no.
5384         * config/pa/pa.c (current_function_number): Delete.
5385         (pa_output_function_prologue): Don't output profile label here.
5386         (hppa_profile_hook): Use label_no param rather than
5387         current_function_number.
5388         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
5389         * config/pa/pa.h: .. here.
5390         (FUNCTION_PROFILER): Output profile label here.
5391
5392 2002-04-22  Eric Christopher  <echristo@redhat.com>
5393
5394         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
5395         patch of 2002-04-09 due to binutils issues.
5396         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
5397
5398 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5399
5400         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
5401         constraint to 'o' for m=r and r=m alternatives.
5402         ("*movv8hi_internal1"): Same.
5403         ("*movv16qi_internal1"): Same.
5404         ("*movv4sf_internal1"): Same.
5405
5406 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
5407
5408         * rtl.h (RTX_FLAG): New macro.
5409         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
5410         * final.c (alter_subreg): Use macro to access rtx flag.
5411         * integrate.c (copy_rtx_and_substitute): Use new access macro.
5412         * print-rtl.c (print_rtx): Use new access macro.
5413
5414         * cse.c (insert): Check rtx code before accessing flag.
5415
5416         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
5417         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
5418         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
5419         convert_const_symbol_ref, make_canonical, make_alternative_compare,
5420         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
5421         simplify_test_exp, optimize_attrs, simplify_by_exploding,
5422         find_and_mark_used_attributes, unmark_used_attributes,
5423         add_values_to_cover, simplify_with_current_value,
5424         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
5425         copy_rtx_unchanging, main): Use new access macros.
5426
5427 2002-04-22  Tom Rix  <trix@redhat.com>
5428
5429         * expmed.c (init_expmed): Generate shifted constant once.
5430
5431 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
5432
5433         * c-lex.c (lex_charconst): Call convert to get constant in
5434         proper type; don't just smash the type field.
5435         Fixes PR c/6300.
5436
5437         * config.gcc: Add list of obsolete configurations.  Disallow
5438         building these without --enable-obsolete.
5439         * doc/install.texi: Document --enable-obsolete and obsoletion
5440         policy.  Mention obsoletion of individual targets in
5441         appropriate places.
5442
5443 2002-04-22  Richard Henderson  <rth@redhat.com>
5444
5445         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
5446
5447 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
5448
5449         PR f/6138.
5450         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
5451         (walk_fixup_memory_subreg): Likewise.
5452         (fixup_var_refs_insn): Adjust accordingly.
5453         (fixup_var_refs_1): Likewise.
5454
5455 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
5456
5457         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
5458         LIBPATH_ARCH64_SPEC): Define.
5459         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
5460         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
5461         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
5462         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
5463
5464 2002-04-22      Joel Sherrill <joel@OARcorp.com>
5465
5466         * gthr-rtems.h: Correct prototypes to remove warnings.
5467
5468 2002-04-22  Richard Henderson  <rth@redhat.com>
5469
5470         PR c/6344
5471         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
5472
5473         * gcse.c (free_insn_expr_list_list): New.
5474         (clear_modify_mem_tables): Use it.  Fix bit set usage.
5475         (canon_list_insert): Use EXPR_LISTs for expressions.
5476         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
5477
5478 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5479
5480         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
5481         file change and include code to _cpp_pop_buffer.
5482         * cpphash.h (struct pending_option): Predeclare.
5483         (struct cpp_reader): New member next_include_file.
5484         (_cpp_pop_file_buffer): Update.
5485         (_cpp_push_next_buffer): Update, rename.
5486         * cppinit.c (cpp_destroy): Free include chain and pending here.
5487         (cpp_finish_options): Simplify.
5488         (_cpp_push_next_buffer): Rename and clean up.
5489         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
5490         Clarify.
5491         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
5492
5493 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5494
5495         * config/rs6000/altivec.h (vec_xor): Add variant for both args
5496         being vector signed int.
5497         (vec_andc): Same.
5498         (vec_xor): Add variant for both args being vector signed char.
5499         Remove redundant variant.
5500         (vec_andc): Same.
5501
5502 2002-04-21  David S. Miller  <davem@redhat.com>
5503
5504         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
5505         compare mode in output RTL.
5506
5507 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
5508
5509         * config/rs6000/rs6000.c (rs6000_override_options): Correct
5510         style and formatting of previous patch.
5511
5512 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
5513
5514         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
5515         flag_pic for ABI_AIX.
5516
5517 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5518
5519         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
5520         * cppfiles.c (read_include_file): Similarly.
5521         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
5522         uxstrdup ustrchr, ufputs): Similarly.
5523         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
5524         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
5525         cpp_ideq, parse_identifier, parse_number): Similarly.
5526         * cpplib.c (struct directive, dequote_string, D, run_directive,
5527         cpp_push_buffer): Similarly.
5528         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
5529         _cpp_create_definition, check_trad_stringification,
5530         cpp_macro_definition): Similarly.
5531
5532 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5533
5534         * cppmacro.c (funlike_invocation_p): Don't step back
5535         over CPP_EOF.
5536
5537 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
5538
5539         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
5540         labelno.
5541
5542 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5543
5544         * doc/invoke.texi: Remove Chill references.
5545         * doc/gcc.texi: Update last modified date.
5546
5547 2002-04-20  Kazu Hirata  <kazu@hxi.com>
5548
5549         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
5550         push and pop.  Replace add.l with add.w.
5551
5552 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5553
5554         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
5555         multiply instructions for H8/300H case.
5556
5557 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5558
5559         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
5560         Bum three instructions from each routine.
5561
5562 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5563
5564         * Makefile.in: Update.
5565         * decl.c (push_c_function_context, pop_c_function_context,
5566         mark_c_function_context): Rename for consistency.
5567         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
5568         * c-tree.h (push_c_function_context, pop_c_function_context,
5569         mark_c_function_context): Rename for consistency.
5570         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5571         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
5572         * function.c (init_lang_status, save_lang_status,
5573         restore_lang_status, mark_lang_status, free_lang_status):
5574         Move to langhooks.h.
5575         (push_function_context_to, pop_function_context_from,
5576         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
5577         Update.
5578         * function.h (init_lang_status, save_lang_status,
5579         restore_lang_status, mark_lang_status, free_lang_status):
5580         Move to langhooks.h.
5581         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
5582         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
5583         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
5584         LANG_HOOKS_FUNCTION_INITIALIZER): New.
5585         (LANG_HOOKS_INITIALIZER): Update.
5586         (lhd_do_nothing_f): New.
5587         * langhooks.h (struct lang_hooks_for_functions): New.
5588         (struct lang_hooks): New hooks.
5589         * langhooks.c (lhd_do_nothing_f): New.
5590 objc:
5591         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5592         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
5593
5594 2002-04-19  David S. Miller  <davem@redhat.com>
5595
5596         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
5597         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
5598
5599 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
5600
5601         PR optimization/3756
5602         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
5603         x = ((int) y < 0) ? cst1 : cst2.
5604
5605 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
5606
5607         PR c/6358
5608         * function.c: Reapply patch for c/6358.
5609         (expand_function_end): Copy decl_rtl's mode, not
5610         current_function_return_rtx mode.
5611
5612 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
5613
5614         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
5615         targets.
5616
5617 2002-04-19  Tom Tromey  <tromey@redhat.com>
5618
5619         * doc/install.texi (Specific): Update status of Solaris 2.8.
5620         For PR libgcj/6158.
5621
5622 2002-04-19  Andreas Schwab  <schwab@suse.de>
5623
5624         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
5625         (PUT_REAL): Restore old definition.
5626
5627 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
5628             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5629
5630         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
5631         binutils 2.11.2 and higher generate smaller binaries than Sun's
5632         native tools.
5633
5634 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
5635
5636         PR c++/6352
5637         * toplev.c (rest_of_compilation): Do not defer functions for which
5638         TREE_SYMBOL_REFERENCED has already been set.
5639
5640 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
5641
5642         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
5643         alternative.
5644
5645 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5646
5647         * builtins.c: Include langhooks.h.
5648         (lang_type_promotes_to): Remove.
5649         (expand_builtin_va_arg): Use new hook.
5650         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
5651         (simple_type_promotes_to): Move to c-typeck.c.
5652         * c-common.h (simple_type_promotes_to): Remove.
5653         * c-decl.c (duplicate_decls, grokdeclarator): Update.
5654         * c-format.c: Include langhooks.h.
5655         (check_format_types): Update.
5656         * c-tree.h (c_type_promotes_to): New.
5657         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
5658         (type_lists_compatible_p): Update.
5659         * langhooks-def.h (lhd_type_promotes_to): New.
5660         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
5661         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5662         * langhooks.c (lhd_type_promotes_to): New.
5663         * langhooks.h (struct lang_hooks_for_types): New hook.
5664         * tree.h (lang_type_promotes_to): Remove.
5665 objc:
5666         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
5667
5668 2002-04-18  Richard Henderson  <rth@redhat.com>
5669
5670         * function.c: Revert patch for c/6358.
5671
5672 2002-04-18  Richard Henderson  <rth@redhat.com>
5673
5674         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
5675         blocks.  Handle multiple references to the TRAP block.  Handle
5676         non-adjacent THEN and OTHER blocks.
5677
5678 2002-04-18  Richard Henderson  <rth@redhat.com>
5679
5680         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
5681         crash with no type for by-mode libcalls.
5682
5683         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
5684
5685 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
5686
5687         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
5688         __xtensa_nonlocal_goto): Use a syscall instructions to flush
5689         the register windows.
5690
5691 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5692
5693         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
5694         appropriate.  Document need for extended precision even when
5695         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
5696         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
5697         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
5698         instead of relying on later syntax error when REAL_WIDTH > 5.
5699         * real.c: Define NE based only on whether or not we have a
5700         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
5701         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
5702         define GET_REAL and PUT_REAL as simple memcpy operations; no
5703         need to byteswap or round.
5704         Use #error instead of #ifdef-ing out the entire file, for
5705         prompt error detection.
5706
5707         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
5708
5709 2002-04-18  David S. Miller  <davem@redhat.com>
5710
5711         * config/sparc/sparc.h (BRANCH_COST): Define.
5712
5713         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
5714         does it.
5715
5716 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5717
5718         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
5719         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
5720         propagate_block calls after relaxation loop using new variable
5721         stabilized_prop_flags.
5722
5723 2002-04-18  Richard Henderson  <rth@redhat.com>
5724
5725         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
5726         (ia64_va_arg): Expect variable sized types by reference.
5727         * config/ia64/ia64-protos.h: Update.
5728         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
5729         ia64_function_arg_pass_by_reference.
5730
5731 2002-04-18  Richard Henderson  <rth@redhat.com>
5732
5733         * ifcvt.c: Include except.h.
5734         (block_has_only_trap): Break out from find_cond_trap.
5735         (find_cond_trap): Use it.  Always delete the trap block.
5736         (merge_if_block): Allow then block null.  Be less simplistic about
5737         what insns can end a block.
5738         * Makefile.in (ifcvt.o): Depend on except.h.
5739
5740         * config/ia64/ia64.md (trap, conditional_trap): New.
5741
5742 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5743
5744         PR c/6358
5745         * function.c (assign_parms): Assign hard current_function_return_rtx
5746         register here...
5747         (expand_function_end): ...not here.
5748
5749 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5750
5751         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5752         * c-tree.h (c_incomplete_type_error): New.
5753         * c-typeck.c (require_complete_type, build_component_ref): Update.
5754         (incomplete_type_error): Rename.
5755         * langhooks-def.h (lhd_incomplete_type_error): New.
5756         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
5757         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5758         * langhooks.c (lhd_incomplete_type_error): New.
5759         * langhooks.h (struct lang_hooks_for_types): New hook.
5760         * tree.c (size_in_bytes): Use new hook.
5761         * tree.h (incomplete_type_error): Remove.
5762 objc:
5763         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5764
5765 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5766
5767         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
5768         TARGET_FLOAT_FORMAT blocks.
5769
5770 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5771
5772         * doc/install.texi (Downloading the source): Do not mention Chill
5773         any longer, but mention Ada.
5774         (Configuration): Do not mention Chill any longer.
5775
5776 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
5777
5778         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
5779
5780 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
5781
5782         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
5783         in last patch.
5784
5785 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5786
5787         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
5788         instead of unsigned_type.
5789
5790 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5791
5792         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
5793         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
5794         later.
5795
5796 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
5797
5798         * attribs.c (vector_type_node_list): New static variable.
5799         (handle_vector_size_attribute): Use it to avoid generating a
5800         new type node each time we are called.
5801
5802         * combine.c (subst): Avoid trying to make a vector mode subreg of
5803         an integer constant.
5804         (gen_lowpart_for_combine): Likewise.
5805
5806 2002-04-18  Roger Sayle  <roger@eyesopen.com>
5807             Jakub Jelinek  <jakub@redhat.com>
5808
5809         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
5810         for integer constant c (if x has unsigned type or sign bit is not
5811         set in c).  This folds the zero/sign extension into the bit-wise and
5812         operation.
5813
5814 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5815
5816         PR middle-end/6205
5817         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
5818         otherwise xorps.
5819
5820 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
5821
5822         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
5823
5824 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
5825
5826         * gcc.c (read_specs): Detect and fail if an attempt is made to
5827         rename a spec string to an already existing string.
5828
5829 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5830
5831         * config/s390/s390.c (legitimize_pic_address): Do not generate
5832         illegal address constant without CONST.
5833
5834 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5835
5836         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
5837         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
5838
5839 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5840
5841         PR optimization/6305
5842         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
5843         to make sure previous reloads are taken into account.  Generate
5844         better code if one operand is an in-range immediate constant.
5845
5846 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
5847
5848         * doc/install.texi (Building): libgcj requires GNU make.
5849
5850 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
5851
5852         PR bootstrap/6315
5853         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
5854         even if hard quad and register is not floating.
5855         (movtf reg<-mem split): Disallow splitting if hard quad and
5856         register is floating.
5857         (movtf mem<-reg split): Likewise.
5858         * config/sparc/sparc.c (fp_register_operand): New predicate.
5859         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
5860
5861 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
5862
5863         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
5864         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
5865         (unprotoize.o): Ditto.  Build from protoize.c.  Define
5866         UNPROTOIZE on command line.
5867         * protoize.c: Include cppdefault.h.  Delete include_defaults.
5868         (in_system_include_dir): Use cpp_include_defaults (defined in
5869         cppdefault.o).
5870         * unprotoize.c: Delete file.
5871
5872 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
5873
5874         * config/rs6000/altivec.h (vec_ld): Add array variants.
5875         (vec_lde): Same.
5876         (vec_ldl): Same.
5877
5878 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
5879             Aldy Hernandez <aldyh@redhat.com>
5880
5881         * config/rs6000/altivec.h: Define __ALTIVEC__.
5882         (bool): New.
5883         (__pixel): New.
5884         (pixel): New.
5885         (vec_cfux): New.
5886         (vec_vmaddfp): New.
5887         (vec_vsldoi): New.
5888         Add parentheses to all macro arguments.
5889
5890 2002-04-16  Richard Henderson  <rth@redhat.com>
5891
5892         PR c++/6320
5893         * except.c (remove_eh_handler): Insert inner regions at beginning
5894         of sibling chain.  Refactor expressions.
5895
5896 2002-04-16  Richard Henderson  <rth@redhat.com>
5897
5898         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
5899         * config/sparc/sol2-gas-bi.h: New file.
5900         * config.gcc (sparc*-solaris): Add it as needed.
5901         * configure.in (AS_SPARC64_FLAG): Remove check.
5902         * config.in, configure: Regenerate.
5903
5904         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
5905
5906 2002-04-16  Richard Henderson  <rth@redhat.com>
5907
5908         * config/mips/mips.c (override_options): Don't override N32 for
5909         a 64-bit ISA.
5910
5911         PR 6202
5912         * config/mips/mips.md (can_delay): Split out of existing define_delays.
5913         (HILO_delay): Set can_delay false.
5914
5915 2002-04-16  Dale Johannesen <dalej@apple.com>
5916
5917         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
5918         instruction addresses.
5919         (rs6000_output_function_epilogue): Likewise.
5920
5921 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
5922
5923         * c-parse.in (poplevel, compstmt_start,
5924         compstmt_primary_start): Add ending ';', in accordance
5925         with POSIX.
5926
5927 2002-04-16  Richard Henderson  <rth@redhat.com>
5928
5929         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
5930         Adjust tm_file order to get TARGET_DEFAULT set properly.
5931         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
5932         * doc/install.texi (sparc-solaris): Update.
5933
5934 2002-04-16  Dale Johannesen <dalej@apple.com>
5935
5936         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
5937         comparison operands do not match each other or if modes of
5938         conditions do not match result.
5939
5940 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
5941
5942         PR target/6305
5943         * config/s390/s390.md (mulsidi3): Set both subregs of the
5944         multiword register.
5945
5946 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
5947
5948         * config/rs6000/altivec.h (vec_addc): Type check.
5949
5950 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5951
5952         PR middle-end/6279
5953         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
5954
5955         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
5956
5957 2002-04-15  Richard Henderson  <rth@redhat.com>
5958
5959         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
5960         call_really_used_regs too.
5961
5962 2002-04-15  Richard Henderson  <rth@redhat.com>
5963
5964         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
5965
5966 2002-04-15  David S. Miller  <davem@redhat.com>
5967
5968         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
5969         as being CLOBBERed.
5970
5971 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5972
5973         PR c/6290
5974         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
5975         CONST_VECTOR is { 0, ... 0 }.
5976
5977 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
5978
5979         * doc/install.texi (Installing GCC: Configuration): Clarify
5980         the only supported ways to configure gcc.
5981
5982 2002-04-15  Roland McGrath  <roland@frob.com>
5983
5984         * config.gcc (alpha*-*-gnu*): New target configuration.
5985         * config/alpha/gnu.h: New file for it.
5986         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
5987
5988 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
5989
5990         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
5991         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
5992         * tree.h (expand_start_stmt_expr): Update prototype.
5993         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
5994         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
5995         on the STMT_EXPR created for the inline function.
5996
5997 2002-04-15  Richard Henderson  <rth@redhat.com>
5998
5999         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
6000         config/i386/linux-aout.h, config/i386/linux-oldld.h,
6001         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
6002         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
6003         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
6004         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
6005         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
6006         Define __gnu_linux__, not gnu_linux.
6007         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
6008
6009 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
6010
6011         Remove Chill front end.
6012         * gcc.c (default_compilers): Remove Chill entries.
6013         * ch: Remove directory.
6014         * doc/frontends.texi: Remove information about Chill.
6015         * doc/sourcebuild.texi: Likewise.
6016         * doc/standards.texi: Likewise.
6017
6018 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
6019
6020         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
6021         (LONGLONG_STANDALONE): Define.
6022
6023 2002-04-15  David S. Miller  <davem@redhat.com>
6024
6025         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
6026         Call emit_library_call with LCT_NORMAL.
6027         (sparc_initialize_trampoline): Use LCT_foo instead of
6028         magic constant in emit_library_call invocations.
6029         (sparc64_initialize_trampoline): Likewise.
6030         (sparc_profile_hook): Likewise.
6031         * config/sparc/sparc.md: Likewise.
6032
6033         * config/sparc/sparc.c (sparc_extra_constraint_check):
6034         Fix type of argument 'c'.
6035         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
6036         Likewise.
6037
6038 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6039
6040         * diagnostic.h (output_buffer_state): Redefine.
6041         (output_format_decoder): New macro.
6042         (output_prefixing_rule): Likewise.
6043         (output_line_cutoff): Likewise.
6044         (diagnostic_format_decoder): Adjust.
6045         (diagnostic_prefixing_rule): Likewise.
6046         (diagnostic_line_cutoff): Likewise.
6047         (diagnostic_state): Likewise.
6048         (diagnostic_kind_count): Likewise.
6049         (diagnostic_buffer): Now a macro.
6050
6051         * diagnostic.c (diagnostic_buffer): Remove definition.
6052         (output_is_line_wrapping): Adjust.
6053         (set_real_maximum_length): Likewise.
6054         (output_set_maximum_length): Likewise.
6055         (init_output_buffer): Likewise.
6056         (lhd_print_error_function): Likewise.
6057         (output_do_verbatim): Likewise.
6058
6059 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6060
6061         * cpperror.c (print_location): Don't print include chain
6062         if line == 0.
6063         (cpp_begin_message): Update to use DL_ macros.
6064         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6065         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6066         cpp_notice, cpp_notice_from_errno): Remove.
6067         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6068         level.
6069         (cpp_errno): New.
6070         * cppexp.c (CPP_ICE): Remove.
6071         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
6072         lex, integer_overflow, _cpp_parse_expr): Update.
6073         * cppfiles.c (read_include_file, find_include_file,
6074         handle_missing_header, _cpp_read_file, remap_filename): Update.
6075         * cpphash.h (enum error_type): Remove.
6076         (_cpp_begin_message): Update.
6077         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
6078         cpp_handle_option, cpp_post_options): Update.
6079         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
6080         skip_whitespace, parse_identifier, parse_slow, parse_string,
6081         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
6082         cpp_interpret_charconst): Update.
6083         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
6084         lex_macro_node, do_undef, glue_header_name, parse_include,
6085         do_include_common, read_flag, do_line, do_linemarker, do_ident,
6086         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
6087         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
6088         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
6089         _cpp_pop_buffer, do_diagnostic): Update.
6090         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
6091         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
6092         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6093         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6094         cpp_notice, cpp_notice_from_errno): Remove.
6095         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6096         level.
6097         (cpp_errno): New.
6098         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
6099         collect_args, enter_macro_context, save_parameter, parse_params,
6100         _cpp_create_definition, check_trad_stringification,
6101         cpp_macro_definition): Update.
6102         * cppmain.c (cpp_preprocess_file): Update.
6103         * fix-header.c (read_scan_file): Update.
6104
6105 2002-04-14  Andreas Schwab  <schwab@suse.de>
6106
6107         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
6108
6109 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
6110
6111         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
6112
6113 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6114
6115         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
6116         not gnu_hurd.
6117
6118 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
6119
6120         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
6121
6122 2002-04-13      Joel Sherrill <joel@OARcorp.com>
6123
6124         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
6125         sparc-elf and sparc-rtems targets.
6126
6127 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6128
6129         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
6130         defined, and __gnu_hurd__ wherever __GNU__ is defined.
6131         * arm/linux-elf.h: Likewise.
6132         * cris/aout.h: Likewise.
6133         * cris/linux.h: Likewise.
6134         * i370/linux.h: Likewise.
6135         * i386/gnu.h: Likewise.
6136         * i386/linux-aout.h: Likewise.
6137         * i386/linux-oldld.h: Likewise.
6138         * i386/linux.h: Likewise.
6139         * i386/linux64.h: Likewise.
6140         * ia64/linux.h: Likewise.
6141         * m68k/linux-aout.h: Likewise.
6142         * m68k/linux.h: Likewise.
6143         * mips/linux.h: Likewise.
6144         * pa/pa-linux.h: Likewise.
6145         * pj/linux.h: Likewise.
6146         * rs6000/sysv4.h: Likewise.
6147         * s390/linux.h: Likewise.
6148         * sh/linux.h: Likewise.
6149         * sparc/linux-aout.h: Likewise.
6150         * sparc/linux.h: Likewise.
6151         * sparc/linux64.h: Likewise.
6152         * xtensa/linux.h: Likewise.
6153
6154 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
6155
6156         * stmt.c (check_unique_operand_names): Expect operand names to
6157         be strings rather than identifiers.  Use simple_cst_equal to
6158         compare them.
6159         (resolve_operand_name_1): Make same identifier to string change here.
6160         * c-parse.in (asm_operand): Convert a named operand into a string.
6161         * cp/parse.y (asm_operand): Likewise.
6162
6163 2002-04-13  Andreas Schwab  <schwab@suse.de>
6164
6165         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
6166
6167 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
6168
6169         Revert these changes:
6170
6171         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6172
6173         PR c++/5571
6174         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6175
6176 2002-04-12  Richard Henderson  <rth@redhat.com>
6177
6178         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
6179         (sparc*-*-solaris): Clean up header files.
6180         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
6181         and plan on generating 64-bit code.
6182         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
6183         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
6184         * config/sparc/sol2-sld-64.h: Rename ...
6185         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
6186         for AS_SPARC64_FLAG not defined.
6187         * config/sparc/sol2-gld-bi.h: New.
6188         * config/sparc/sol2-sld.h: Remove.
6189         * config/sparc/sol26-sld.h: New.
6190         * config/sparc/sol2.h: Tidy comments.
6191         * doc/install.texi: Document sparc-solaris configury changes.
6192
6193 2002-04-12  Richard Henderson  <rth@redhat.com>
6194
6195         * recog.c (offsettable_address_p): Match the logic in adjust_address.
6196
6197         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
6198         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
6199
6200 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6201
6202         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
6203
6204 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
6205
6206         * pa.c (pa_can_combine_p): Call extract_insn before calling
6207         constrain_operands.
6208
6209 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
6210
6211         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
6212         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
6213         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
6214         (CPP_PREDEFINES): Handle __declspec.
6215         * config/i386/t-interix (USER_H): Remove.
6216
6217 2002-04-12  DJ Delorie  <dj@redhat.com>
6218
6219         * integrate.c (compare_blocks): Make comparisons safe for when
6220         sizeof(int) < sizeof(char *).
6221         (find_block): Likewise.
6222
6223 2002-04-12  Jan Hubicka  <jh@suse.cz>
6224             David Edelsohn  <edelsohn@gnu.org>
6225
6226         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
6227         registers.
6228         (symbol_ref_operand): New.
6229         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
6230         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
6231
6232 2002-04-12  Andreas Schwab  <schwab@suse.de>
6233
6234         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
6235         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
6236         overrides the definition in config/svr4.h.
6237
6238 2002-04-12      Eric Norum <eric.norum@usask.ca>
6239
6240         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
6241         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
6242         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
6243         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
6244         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
6245         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
6246         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
6247         definitions to config/rtems.h and make the targets more similar.
6248
6249 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6250
6251         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
6252         POINTERS_EXTEND_UNSIGNED.
6253         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
6254         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
6255
6256         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
6257         not specified.
6258
6259 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
6260
6261         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
6262         depends on TARGET_SHMEDIA, not TARGET_SH5.
6263
6264 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
6265
6266         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
6267         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
6268
6269 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6270
6271         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
6272         no r0 clobber.
6273
6274 2002-04-12  Andreas Schwab  <schwab@suse.de>
6275
6276         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
6277
6278 2002-04-12  Richard Henderson  <rth@redhat.com>
6279
6280         PR bootstrap/4191
6281         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
6282
6283         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
6284         modes spanning multiple hard regs.
6285
6286         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
6287
6288 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6289
6290         * pa.c (pa_output_function_prologue): Don't accumulate the total
6291         number of code bytes when using TARGET_64BIT, or gas, SOM and not
6292         the portable runtime.
6293         (output_deferred_plabels): Handle 64bit plabels.
6294         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
6295         generating pic code using the GAS assembler for object formats that
6296         are not SOM (ie., ELF32 and ELF64).
6297         (output_millicode_call): Check attribute type if attribute length is 28.
6298         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
6299         dbr_sequence_length once.
6300         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
6301         dbr_sequence_length once.
6302         * pa.h (TARGET_SOM): Define if not defined.
6303         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
6304         with GAS and not SOM.
6305         (jump, call_internal_reg, call_value_internal_reg): Likewise.
6306         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
6307
6308 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6309
6310         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
6311         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
6312         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
6313         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
6314         elfos.h and dbxelf.h values are fine now.
6315         * config/i386/freebsd.h, config/alpha/freebsd.h
6316         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
6317
6318 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6319
6320         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
6321         or set Acpu or Amachine.  Reformat.
6322         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6323         define.
6324         (LINK_SPEC): Do not need to undef.
6325         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
6326         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
6327         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6328         define.
6329         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
6330         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
6331         (LINK_SPEC): Do not need to undef.
6332         (DONT_USE_BUILTIN_SETJMP): Do not define.
6333         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
6334         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
6335         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
6336         Remove trailing spaces.
6337         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
6338         __ELF__, or set Acpu or Amachine.  Reformat.
6339         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6340         define.
6341
6342 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6343
6344         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
6345         all other *-*-freebsd* targets.
6346
6347 2002-04-11  Richard Henderson  <rth@redhat.com>
6348
6349         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
6350
6351 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6352
6353         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
6354         Include {cpu}/{cpu}.h thru tm_file.
6355         (alpha*-*-linux*ecoff): Remove target.
6356         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
6357         (LINK_SPEC): Remove, is not OS independent.
6358         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
6359         (LINK_SPEC): Do not need to #undef any longer.
6360         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
6361         any longer.
6362         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
6363         __ELF__.
6364         (LINK_SPEC): Moved here from alpha/elf.h.
6365         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
6366         SUB_CPP_PREDEFINES.
6367         * config/alpha/linux-ecoff.h: Remove.
6368         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
6369         (CPP_SPEC): Define _POSIX_SOURCE as needed.
6370         (CPP_SUBTARGET_SPEC): Do not define.
6371         (LINK_SPEC): Do not need to #undef any longer.
6372         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
6373         * config/alpha/vms.h: Likewise.
6374
6375 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
6376
6377         * doc/extend.texi: Remove old claim that typedefs cannot have
6378         an alignment attribute.
6379
6380 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6381
6382         PR optimization/6177
6383         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
6384         bitpos is 0 and bitsize CONCAT size.
6385
6386 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6387
6388         PR c/6223
6389         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
6390
6391 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
6392
6393         * config/alpha/freebsd.h: Minor reformatting.
6394         (CPP_SPEC): Define ELF and add cpp_subtarget.
6395         (ASM_SPEC): No longer needed.
6396
6397 2002-04-11  Richard Henderson  <rth@redhat.com>
6398
6399         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
6400         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
6401         (dimode mem/zero splitter): New.
6402
6403 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
6404
6405         * config/cris/cris.c (cris_override_options): Tweak error message
6406         for PIC not implemented.
6407
6408         * config/cris/cris.h: Tweak comments related to parameter-passing.
6409
6410         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
6411
6412 2002-04-10  Richard Henderson  <rth@redhat.com>
6413
6414         * except.c (add_ehl_entry): Allow duplicates after landing pad
6415         creation.
6416
6417 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
6418
6419         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
6420
6421 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
6422
6423         * c-decl.c (c_init_decl_processing): Move generation of
6424         decls for g77_integer_type_node and friends from here ...
6425         * c-common.c (c_common_nodes_and_builtins): ... to here.
6426
6427 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6428
6429         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
6430         is only used as frame pointer when frame_pointer_needed is true.
6431
6432 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
6433
6434         PR target/817
6435         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
6436         for the fact that the pool entry uses two words.
6437         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
6438         1k bytes.
6439         (movdf_soft_insn): Similarly.
6440         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
6441         for the fact that the pool entry uses three words.
6442
6443 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
6444
6445         * config/mips/mips.c (mips_va_arg): When using the struct version
6446         of the EABI va_list, allow arguments in the register save area to
6447         take up less room than a stack argument.
6448
6449 2002-04-10  Richard Henderson  <rth@redhat.com>
6450
6451         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
6452         if EXPAND_INITIALIZER.
6453
6454 2002-04-09  Richard Henderson  <rth@redhat.com>
6455
6456         * config/alpha/alpha.md (movdi_er_maybe_g): New.
6457         * config/alpha/alpha.c (alpha_expand_mov): Use it.
6458
6459 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
6460
6461         PR optimization/6233
6462         * rtlanal.c (pure_call_p): New function.
6463         * rtl.h (pure_call_p): Declare.
6464         * loop.c (prescan_loop): Use it to set has_nonconst_call.
6465         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
6466
6467 2002-04-09  Eric Christopher  <echristo@redhat.com>
6468
6469         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
6470         information to .comm directive.
6471
6472 2002-04-09  Richard Henderson  <rth@redhat.com>
6473
6474         PR c/5078
6475         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
6476
6477 2002-04-09  Richard Henderson  <rth@redhat.com>
6478
6479         * basic-block.h (flow_delete_block_noexpunge): Declare.
6480         (expunge_block_nocompact): Declare.
6481         * cfg.c (expunge_block_nocompact): Split out from ...
6482         (expunge_block): ... here.
6483         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
6484         (flow_delete_block_noexpunge): Split out from ...
6485         (flow_delete_block): ... here.
6486         * cfgcleanup.c (delete_unreachable_blocks): Compact while
6487         removing dead blocks.
6488         * except.c (exception_handler_labels): Remove.
6489         (exception_handler_label_map): New.
6490         (struct eh_region): Add aka member.
6491         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
6492         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
6493         (for_each_eh_label, for_each_eh_label_1): New.
6494         (init_eh): Register exception_handler_label_map.
6495         (free_eh_status): Use free_region.
6496         (find_exception_handler_labels): Use the map, not the list.
6497         (remove_exception_handler_label): Likewise.
6498         (maybe_remove_eh_handler): Likewise.
6499         (remove_eh_handler): Use the region aka bitmap.
6500         * except.h (exception_handler_labels): Remove.
6501         (for_each_eh_label): Declare.
6502         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
6503         * loop.c (invalidate_loops_containing_label): New.
6504         (find_and_verify_loops): Use it.  Use for_each_eh_label.
6505         * sched-rgn.c (is_cfg_nonregular): Use
6506         current_function_has_exception_handlers.
6507
6508 2002-04-09  Richard Henderson  <rth@redhat.com>
6509
6510         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
6511         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
6512         Do not return changed status.
6513         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
6514         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
6515         New functions that do return changed status.
6516         * sbitmap.h: Update decls.
6517         * gcse.c, lcm.c: Use _cg functions as needed.
6518
6519 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
6520
6521         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
6522         (sh64-*-elf*, sh-*-rtemself*): Likewise.
6523         * config/sh/embed_bb.c: New file.
6524         * config/sh/embed-elf.h: New file.
6525         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
6526         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
6527         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
6528         __PTRDIFF_TYPE__ .
6529         (SUBTARGET_CPP_PTR_SPEC): Don't define.
6530         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
6531         Add subtarget_asm_endian_spec.
6532         (ASM_SPEC): Use subtarget_asm_endian_spec.
6533         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
6534         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
6535         (WCHAR_UNSIGNED): Define.
6536         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
6537         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
6538         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
6539         Fix value.
6540         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
6541         (sh_adjust_cost): Likewise.
6542         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
6543         __PTRDIFF_TYPE__ .
6544         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
6545         (WCHAR_TYPE_SIZE): Likewise.
6546         (ASM_SPEC): Use subtarget_asm_endian_spec.
6547         (SH_ELF_WCHAR_TYPE): #undef/ #define.
6548         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
6549         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
6550         (MAX_WCHAR_TYPE_SIZE): Don't #define .
6551         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
6552         (USER_LABEL_PREFIX): Don't #undef /#define .
6553         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
6554         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
6555         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
6556         (ASM_SPEC): Likewise.
6557         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
6558         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
6559         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
6560         (LIB2FUNCS_EXTRA): Define.
6561         * t-sh64 (LIB2FUNCS_EXTRA): Define.
6562         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
6563         (LIB1ASMFUNCS_CACHE): Define.
6564         (LIB2FUNCS_EXTRA): Redefine empty.
6565
6566 2002-04-08  Richard Henderson  <rth@redhat.com>
6567
6568         * reorg.c (get_branch_condition): Use reversed_comparison_code.
6569
6570 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6571
6572         * config/m68hc11/larith.asm (__map_data_section): Fix condition
6573         and optimize for size.
6574         (__do_global_ctors): Fix pointer comparison.
6575         (__do_global_dtors): Likewise.
6576
6577 2002-04-09  David S. Miller  <davem@redhat.com>
6578
6579         * config/sparc/sparc.c (sparc_extra_constraint_check): New
6580         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
6581         allow reloading pseudos.
6582         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
6583         * config/sparc/sparc-protos.h: Declare it.
6584
6585         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
6586         unsigned comparison warning.
6587         (output_restore_regs): Mark leaf_function as unused.
6588
6589 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6590
6591         * expr.c (is_aligning_offset): New function.
6592         (expand_expr, case COMPONENT_EXPR): Call it.
6593
6594 2002-04-08  David S. Miller  <davem@redhat.com>
6595
6596         PR target/6082
6597         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
6598
6599         Make init_priority work on Sparc when using GNU ld.
6600         * config/sparc/linux.h, config/sparc/linux64.h,
6601         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
6602         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
6603         * config/sparc/sol2-gld.h: New file to do the same.
6604         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
6605         sparc/sol2-gld.h to tm_file.
6606
6607         PR optimization/4328
6608         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
6609         * doc/md.texi: Document it.
6610         * config/sparc/sparc.md (movdi_insn_sp64_novis,
6611         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
6612         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
6613         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
6614         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
6615
6616 2002-04-08  Andreas Jaeger  <aj@suse.de>
6617
6618         * stmt.c (expand_asm_operands): Revert last patch from Richard
6619         Henderson.
6620
6621 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6622
6623         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
6624         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
6625
6626 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6627
6628         * doc/contrib.texi (Contributors): Add David O'Brien.
6629
6630 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
6631
6632         * configure.in (auto-build.h): Use target_alias and build_alias
6633         when running configure.
6634         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
6635         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
6636         * configure: Regenerate.
6637
6638 2002-04-07  David S. Miller  <davem@redhat.com>
6639
6640         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
6641
6642 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6643
6644         PR 5933
6645         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
6646         generating 32-bit pic code.
6647
6648 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
6649
6650         * cppinit.c (cpp_create_reader): Initialize
6651         discard_comments_in_macro_exp.
6652         (COMMAND_LINE_OPTIONS): Add "-CC" option.
6653         (cpp_handle_option): Handle "-CC" option.
6654         * cpplex.c (save_comment): If saving a C++ comment in
6655         a directive, convert it to a C comment.
6656         (_cpp_lex_direct): Pass second comment start character to
6657         save_comment to indicate comment type.
6658         * cpplib.c (_cpp_handle_directive): If processing
6659         a "#define" directive and discard_comments_in_macro_exp
6660         is false,  re-enable saving of comments.
6661         (lex_macro_node): If discard_comments_in_macro_exp is false,
6662         discard any comments before the macro identifier.
6663         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
6664         member.
6665         * cppmacro.c (cpp_get_token): If expanding a macro while
6666         processing a directive, discard any comments we might encounter.
6667         (parse_params): If discard_comments_in_macro_exp is false,
6668         ignore comments in the macro parameter list.
6669         * gcc.c (cpp_unique_options): Add "-CC" option.
6670         (option_map): Map "--comments-in-macros" to "-CC".
6671         * doc/cppopts.texi: Document "-CC" option.
6672         * f/lang-specs.h: Add "-CC" option.
6673         * testsuite/gcc.dg/cpp/maccom1.c: New test.
6674         * testsuite/gcc.dg/cpp/maccom2.c: New test.
6675         * testsuite/gcc.dg/cpp/maccom3.c: New test.
6676         * testsuite/gcc.dg/cpp/maccom4.c: New test.
6677         * testsuite/gcc.dg/cpp/maccom5.c: New test.
6678         * testsuite/gcc.dg/cpp/maccom6.c: New test.
6679
6680 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6681
6682         PR middle-end/6180
6683         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
6684
6685 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6686
6687         PR c++/5571
6688         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6689
6690         PR opt/5120
6691         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
6692         RTX_UNCHANGING_P for the functions arguments when a tail call
6693         is made.
6694
6695 2002-04-06  Jason Merrill  <jason@redhat.com>
6696
6697         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
6698         (parse_options_and_default_flags): Set them appropriately.
6699         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
6700
6701 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
6702
6703         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
6704         here.
6705
6706         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
6707         semicolon.
6708
6709         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
6710         types come in by-reference.  Fix typo in comment.
6711
6712 2002-04-05  David S. Miller  <davem@redhat.com>
6713
6714         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
6715         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
6716         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
6717         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
6718
6719 2002-04-05  David S. Miller  <davem@redhat.com>
6720
6721         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
6722         are not going to emit return instructions, emit at least a nop
6723         for the sake of sane backtraces.
6724
6725 2002-04-05  Richard Henderson  <rth@redhat.com>
6726
6727         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
6728
6729 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
6730
6731         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
6732
6733 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
6734
6735         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
6736         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
6737         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
6738
6739 2002-04-05  Andreas Schwab  <schwab@suse.de>
6740
6741         * c-convert.c: Include c-common.h.
6742         * Makefile.in (c-convert.o): Updated.
6743
6744 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6745
6746         * mklibgcc.in: Use separate libgcc.map for each multilib.
6747         * Makefile.in (distclean): Don't remove libgcc.map here.
6748
6749 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6750
6751         * Makefile.in (s-mlib): Handle --disable-multilib by separate
6752         genmultilib invocation.
6753
6754 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
6755
6756         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
6757         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
6758         to num_gprs for symmetry.
6759         * config/mips/mips.c: Adjust accordingly.
6760
6761 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6762
6763         * c-common.c (truthvalue_conversion): Rename, update.
6764         * c-common.h (c_common_truthvalue_conversion): New.
6765         * c-convert.c (convert): Update.
6766         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6767         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
6768         * c-typeck.c (build_binary_op, build_unary_op,
6769         build_conditional_expr): Update.
6770         * fold-const.c (constant_boolean_node, fold): Use langhook.
6771         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
6772         * langhooks.h (struct lang_hooks): New hook.
6773         * stmt.c (expand_decl_cleanup): Use langhook.
6774         * tree.h (truthvalue_conversion): Remove.
6775 objc:
6776         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6777
6778 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
6779
6780         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
6781         Add rules to make null object file.
6782
6783 2002-04-04  Jim Blandy  <jimb@redhat.com>
6784
6785         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
6786         macro formal parameter names.
6787
6788 2002-04-04  David S. Miller  <davem@redhat.com>
6789
6790         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
6791
6792 2002-04-04  Richard Henderson  <rth@redhat.com>
6793
6794         PR middle-end/5099
6795         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
6796         Support copies into and out of memory.  Don't accept allows_reg
6797         and allows_mem as gospel.
6798
6799 2002-04-04  Richard Henderson  <rth@redhat.com>
6800
6801         PR opt/6165
6802         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
6803         (write_dependence_p): Likewise.
6804
6805 2002-04-04  Richard Henderson  <rth@redhat.com>
6806
6807         * predict.c (estimate_bb_frequencies): Do frequency calculation
6808         with a volatile temporary.
6809
6810 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
6811
6812         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
6813
6814 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6815
6816         PR c++/6119
6817         * final.c (final_start_function): Don't bump profile_label_no here...
6818         (final_end_function): ...but here.
6819
6820 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6821
6822         * config/sparc/sparc.md (pic): New attribute.
6823         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
6824         into stack slots.
6825         (split after do_builtin_setjmp_setup): New.
6826
6827 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6828
6829         PR fortran/6106
6830         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
6831         change.
6832
6833 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6834
6835         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
6836         UNITS_PER_WORD for zero sized aggregates.
6837
6838 2002-04-03  David S. Miller  <davem@redhat.com>
6839
6840         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
6841         one-character spec for this, just use %(link_gcc_c_sequence).
6842
6843 2002-04-03  David S. Miller  <davem@redhat.com>
6844
6845         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
6846         handling.
6847
6848 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6849
6850         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
6851         (DWARF_FRAME_RETURN_COLUMN): Move.
6852         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6853         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
6854         * pa.c (except.h, predict.h): Include.
6855         (FRP): Delete.
6856         (store_reg_modify, set_reg_plus_d): Revise prototypes.
6857         (output_ascii): Add cast.
6858         (store_reg_modify): Revise to add frame notes.
6859         (set_reg_plus_d): Likewise.
6860         (compute_frame_size): Include space for eh data registers in frame if
6861         the current function calls eh_return.
6862         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
6863         function calls eh_return.  Save eh data registers if the current
6864         function calls eh_return.  Fix code to add frame notes.  Emit
6865         blockage to prevent insns with frame notes being scheduled in the
6866         delay slot of calls.
6867         (hppa_expand_epilogue): Restore eh data registers and do final stack
6868         adjustment if the current function calls eh_return.  Don't add frame
6869         notes.
6870         (output_call): Revise for change in length of call insn.  Don't do
6871         return pointer adjustment for an unconditional jump in the delay slot
6872         of a call when using frame notes.
6873         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
6874         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
6875         (ARG_POINTER_CFA_OFFSET): Define.
6876         * pa.md (return_external_pic): New pattern.
6877         (prologue): Correct formatting.  Use return_external_pic if current
6878         function calls eh_return.
6879         (call_internal_symref, call_value_internal_symref,
6880         sibcall_internal_symref, sibcall_value_internal_symref): Change default
6881         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
6882         respectively.
6883         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
6884
6885         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
6886         list of targets to check using "nop" insn.
6887         * configure: Rebuilt.
6888
6889 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
6890
6891         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
6892
6893 2002-04-03  David S. Miller  <davem@redhat.com>
6894
6895         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
6896         library sequence passed to the linker.
6897         (LINK_COMMAND_SPEC): Use it.
6898         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
6899         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
6900         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6901
6902 2002-04-03  Jason Merrill  <jason@redhat.com>
6903
6904         * except.c (struct eh_status): Remove protect_list.
6905         (begin_protect_partials, end_protect_partials): Remove.
6906         (add_partial_entry): Remove.
6907         * except.h: Remove prototypes.
6908
6909         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
6910         expand_decl_cleanup_eh.
6911
6912         PR c++/5636
6913         * tree.h (CLEANUP_EH_ONLY): New macro.
6914         * stmt.c (expand_decl_cleanup_eh): New fn.
6915         (expand_cleanups): Check CLEANUP_EH_ONLY.
6916         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
6917         Use expand_decl_cleanup_eh.
6918         (expand_stmt): Adjust.
6919         * c-common.h: Adjust prototype.
6920
6921 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
6922
6923         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
6924         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
6925         (cris_target_asm_function_epilogue): Ditto.
6926         (cris_initial_frame_pointer_offset): Ditto.
6927         (cris_simple_epilogue): Ditto.
6928         (cris_expand_builtin_va_arg): Variable-size types come in
6929         by-reference.
6930
6931 2002-04-03  David S. Miller  <davem@redhat.com>
6932
6933         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
6934         little-endian.
6935         (set_fast_math): Correct 'fsr' type.
6936
6937 2002-04-03  Richard Henderson  <rth@redhat.com>
6938
6939         PR opt/3569
6940         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
6941         * toplev.c (check_global_declarations): Use it.
6942         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
6943         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6944         (LANG_HOOKS_DECLS): Add it.
6945         * langhooks.c (lhd_warn_unused_global_decl): New.
6946         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6947         * c-objc-common.c (c_warn_unused_global_decl): New.
6948         * c-tree.h (c_warn_unused_global_decl): Declare.
6949         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6950
6951 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6952
6953         * langhooks-def.h (lhd_set_decl_assembler_name,
6954         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
6955         (LANG_HOOKS_INITIALIZER): Update.
6956         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
6957         * langhooks.h (struct lang_hooks): New hook.
6958         * tree.c (set_decl_assembler_name): Move to langhooks.c.
6959         (lang_set_decl_assembler_name): Remove.
6960         (init_obstacks): Don't set hook.
6961         (decl_assembler_name): New function.
6962         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
6963         (decl_assembler_name): New.
6964         (lang_set_decl_assembler_name): Remove.
6965
6966 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6967
6968         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
6969         works properly with .hidden symbols.
6970         * configure: Rebuilt.
6971         * config.in: Rebuilt.
6972         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6973         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
6974         properly with .hidden symbols.
6975
6976 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6977
6978         PR middle-end/6102
6979         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
6980         USE argument.
6981
6982 2002-04-03  Richard Henderson  <rth@redhat.com>
6983
6984         PR opt/4120
6985         * sched-rgn.c (sets_likely_spilled): New.
6986         (sets_likely_spilled_1): New.
6987         (add_branch_dependences): Use it.
6988
6989 2002-04-02  Richard Henderson  <rth@redhat.com>
6990
6991         PR opt/4311
6992         * loop.h (LOOP_FIRST_PASS): New.
6993         * loop.c (strength_reduce): Mind it when deciding to unroll.
6994         * toplev.c (rest_of_compilation): Set it.
6995
6996 2002-04-02  David S. Miller  <davem@redhat.com>
6997
6998         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
6999         mems_ok_for_ldd_peep when the order of the loads being examined
7000         is reversed.
7001         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
7002         existing comment to increase comprehension of this situation.
7003
7004 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
7005
7006         * config/sh/sh.md: Don't use union real_extract.
7007
7008 2002-04-02  Richard Henderson  <rth@redhat.com>
7009
7010         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
7011
7012 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7013
7014         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
7015         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
7016         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
7017         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
7018         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
7019         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
7020         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
7021         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
7022         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
7023         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
7024         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
7025         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
7026         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
7027         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
7028         Include as many configury headers via tm_file as possible.  This
7029         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
7030         * config/openbsd-oldgas.h: New file.
7031         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
7032         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
7033         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
7034         config/i386/i386-coff.h, config/i386/i386-interix.h,
7035         config/i386/iscdbx.h, config/i386/linux-aout.h,
7036         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
7037         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
7038         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
7039         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
7040         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
7041         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
7042         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
7043         config/i386/vxi386.h: Do not directly include configury headers.
7044         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
7045         Directly include configury headers that are no longer automatically
7046         included by the above headers.
7047         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
7048         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
7049         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
7050         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
7051         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
7052         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
7053         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
7054         (TARGET_VERSION): Define.
7055         * config/i386/beos-elf.h, config/i386/freebsd.h,
7056         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
7057         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
7058         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
7059         config/i386/sco5.h, config/i386/sysv4.h
7060         (TARGET_VERSION): Do not need to protect.
7061         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
7062         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
7063         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
7064         config/i386/i386-interix.h, config/i386/linux-aout.h,
7065         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
7066         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
7067         (YES_UNDERSCORES): Do not define - not needed.
7068         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
7069         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7070         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
7071         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
7072         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7073         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
7074         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
7075         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
7076
7077 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
7078             Richard Henderson  <rth@redhat.com>
7079
7080         PR c/5484
7081         * function.c (assign_temp): Accept either type or decl argument.
7082         Detect variables whose size is too large to fit into an integer.
7083         * stmt.c (expand_decl): Pass the decl, not the type.
7084
7085 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7086
7087         * protoize.c: Match include directory usage with cppdefault.c.
7088
7089 2002-04-03  Jeffrey A Law  (law@redhat.com)
7090             Hans-Peter Nilsson  <hp@bitrange.com>
7091
7092         * combine.c (simplify_comparison): Avoid narrowing a comparison
7093         with a paradoxical subreg when doing so would drop signficant bits.
7094
7095 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
7096
7097         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
7098         if POINTERS_EXTEND_UNSIGNED is defined.
7099
7100 2002-04-02  Richard Henderson  <rth@redhat.com>
7101
7102         PR opt/3967
7103         * local-alloc.c (contains_replace_regs): LO_SUM may contain
7104         replace regs.
7105
7106 2002-04-02  Richard Henderson  <rth@redhat.com>
7107
7108         * doc/standards.texi: Document required freestanding libc entry points.
7109
7110 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
7111
7112         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
7113         associated splitter.  Remove MQ constraint.
7114         (ctrdi_internal4): Correct CCmode clobber.
7115
7116 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7117
7118         * milli64.S ($$dyncall): New function.
7119         * t-linux (LIB1ASMFUNCS): Revise module list.
7120         (LIB1ASMSRC): Use pa/milli64.S.
7121
7122 2002-04-02  Richard Henderson  <rth@redhat.com>
7123
7124         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
7125         rename solaris_sys_varargs_h.
7126
7127 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7128
7129         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
7130         the same mode as its component.
7131
7132 2002-04-02  Richard Henderson  <rth@redhat.com>
7133
7134         PR opt/190
7135         * final.c (this_is_asm_operands): Export.
7136         * output.h (this_is_asm_operands): Declare.
7137         * config/i386/i386.c (print_operand): Error odd asm operands.
7138
7139 2002-04-02  Richard Henderson  <rth@redhat.com>
7140
7141         PR opt/420
7142         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
7143
7144 2002-04-01  Richard Henderson  <rth@redhat.com>
7145
7146         PR target/1538
7147         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
7148         * fixinc/fixincl.x: Rebuild.
7149
7150 2002-04-01  Richard Henderson  <rth@redhat.com>
7151
7152         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
7153         (atomic_alloc, atomic_free): New.
7154         (SIZE, MASK_FOR, PTR_IN): New.
7155         (emergency_reg_state, emergency_reg_state_free): New.
7156         (emergency_labeled_state, emergency_labeled_state_free): New.
7157         (reg_state_alloced, labeled_state_alloced): New.
7158         (alloc_reg_state, free_reg_state): New.
7159         (alloc_label_state, free_label_state, free_label_states): New.
7160         (push, pop, dup_state_stack, free_state_stack): Use them.
7161         (desc_label_state): Likewise.
7162         (uw_frame_state_for): Free label states and state stack.
7163         (uw_update_reg_address): Eliminate warnings.
7164
7165 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
7166
7167         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
7168         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
7169
7170 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7171
7172         * c-decl.c (grokdeclarator): Update.
7173         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7174         * c-tree.h (c_mark_addressable): New.
7175         * c-typeck.c (default_function_array_conversion, build_unary_op,
7176         build_array_ref, convert_for_assignment): Update.
7177         (mark_addressable): Rename.
7178         * calls.c (try_to_integrate, expand_call): Use langhook.
7179         * expr.c (expand_expr): Use langhook.
7180         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
7181         * langhooks.h (struct lang_hooks): New hook.
7182         * stmt.c (expand_asm_operands): Use langhook.
7183         * tree.h (mark_addressable): Remove.
7184 objc:
7185         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7186
7187 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7188
7189         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
7190         in previous change.
7191
7192 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7193
7194         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
7195         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
7196
7197 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7198
7199         * c-common.c (unsigned_conversion_warning, convert_and_check,
7200         unsigned_type, signed_type, shorten_compare,
7201         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
7202         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
7203         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
7204         New.
7205         * c-decl.c (grokdeclarator): Update.
7206         * c-format.c (check_format_types): Update.
7207         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7208         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7209         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
7210         * convert.c (convert_to_integer): Use new hooks.
7211         * expmed.c (make_tree): Use new hooks.
7212         * expr.c (store_expr): Use new hooks.
7213         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
7214         all_ones_mask_p, unextend, fold): Use new hooks.
7215         * langhooks.h (struct lang_hooks_for_types): New hooks.
7216         * tree.h (signed_or_unsigned_type, signed_type,
7217         unsigned_type): Remove.
7218 objc:
7219         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7220         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7221
7222 2002-03-31  Richard Henderson  <rth@redhat.com>
7223
7224         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
7225         (desc_frgr_mem): Fix reference to f16-f31.
7226
7227 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7228
7229         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
7230         RTVEC_ELT): Const-ify.
7231         * varray.h (VARRAY_CHECK): Const-ify.
7232         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
7233         ggc_mark_rtvec, ggc_mark): Const-ify.
7234
7235 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7236
7237         * diagnostic.c: Include langhooks-def.h.
7238         * Makefile.in (diagnostic.o): Update.
7239
7240 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7241
7242         * c-common.c (c_unsafe_for_reeval): Rename.
7243         * c-common.h (c_unsafe_for_reeval): Rename.
7244         * c-decl.c (finish_incomplete_decl): Rename.
7245         (c_init_decl_processing): Don't set langhook.
7246         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7247         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7248         * c-objc-common.c (c_objc_common_init): Don't set langhook.
7249         * c-tree.h (finish_incomplete_decl): Rename.
7250         * langhooks-def.h (lhd_unsafe_for_reeval): New.
7251         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7252         (LANG_HOOKS_INITIALIZER): Update.
7253         * langhooks.c (lhd_unsafe_For_reeval): New.
7254         * langhooks.h (struct langhooks): New hooks.
7255         * toplev.c (incomplete_decl_finalize_hook): Remove.
7256         (wrapup_global_declarations): Update.
7257         * tree.c (lang_unsafe_for_reeval): Remove.
7258         (unsafe_for_reeval): Update.
7259         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
7260         Remove.
7261 objc:
7262         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7263         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7264
7265 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7266
7267         * diagnostic.c (print_error_function): Remove.
7268         (default_print_error_function): Rename.
7269         (report_error_function): Update.
7270         * diagnostic.h (print_error_function): Remove.
7271         (default_print_error_function): Remove.
7272         * langhooks-def.h (struct diagnostic_context): Predeclare.
7273         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
7274         (LANG_HOOKS_INITIALIZER): Update.
7275         * langhooks.h (struct diagnostic context): Predeclare.
7276         (struct lang_hooks): New hook.
7277
7278 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7279
7280         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
7281         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
7282         !flag_pic.
7283         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
7284         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
7285         of PIC_OFFSET_TABLE_REGNUM thruout.
7286         * config/rs6000/rs6000.md: Likewise.
7287         * config/rs6000/darwin.h: Likewise.
7288
7289 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7290
7291         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
7292         unsigned HOST_WIDE_INT, not unsigned int.
7293
7294 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7295
7296         PR middle-end/6096, middle-end/6098, middle-end/6099
7297         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
7298         CODE_LABELs.
7299         (fill_slots_from_thread): Likewise.
7300
7301 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7302
7303         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
7304         floating fields in float regs.
7305         (function_arg_record_value_2): Likewise.
7306
7307 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7308
7309         * config/mmix/mmix.md (define_constants): Remove misleading
7310         FIXME.  Add MMIX_fp_rO_OFFSET.
7311         ("nonlocal_goto_receiver"): Don't have stack-frame address of
7312         saved rO as part of the pattern.  Remove FIXME.
7313         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
7314         here, at output-time.
7315
7316 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7317
7318         PR middle-end/6100
7319         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
7320         REG_BR_PRED.
7321         (output_v9branch): Likewise.
7322
7323 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7324
7325         * gcc.c: Revert previous patch for now.
7326         * config/i386/djgpp.h: Likewise.
7327
7328 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7329
7330         * config/mmix/crti.asm (_init): Register _fini with atexit.
7331         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
7332
7333 2002-03-31  Richard Henderson  <rth@redhat.com>
7334
7335         PR target/3997
7336         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
7337         (ASM_OUTPUT_DEF_FROM_DECLS): New.
7338
7339 2002-03-31  Richard Henderson  <rth@redhat.com>
7340
7341         * libgcc2.c (__bb_exit_func): Make static.
7342
7343         * config/alpha/alpha.md (trap): New.
7344
7345 2002-03-31  Richard Henderson  <rth@redhat.com>
7346
7347         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
7348         promoted argument types; build trap.
7349         (expand_builtin_trap): New.
7350         (expand_builtin): Use it.
7351         * stmt.c (expand_nl_goto_receivers): Likewise.
7352         * expr.h (expand_builtin_trap): Declare.
7353         * libfuncs.h (LTI_abort, abort_libfunc): New.
7354         * optabs.c (init_optabs): Init abort_libfunc.
7355
7356 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7357
7358         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
7359         (LINK_COMMAND_SPEC): ... from here.
7360         (init_gcc_specs): Duplicate it here too, omitting
7361         shared_name in the second copy.
7362         (init_spec): Test for duplicate
7363         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
7364
7365 2002-03-30  David S. Miller  <davem@redhat.com>
7366
7367         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7368         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
7369
7370 2002-03-30  Roger Sayle <roger@eyesopen.com>
7371             Richard Henderson  <rth@redhat.com>
7372
7373         * regmove.c (combine_stack_adjustments_for_block): Avoid
7374         emitting a stack adjustment of zero bytes.  Let delete_insn
7375         update bb->head.
7376
7377 2002-03-30  Richard Henderson  <rth@redhat.com>
7378
7379         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
7380         (sparc_emitting_epilogue): New.
7381         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
7382         * config/sparc/sparc-protos.h: Update.
7383         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
7384         (TARGET_SWITCHES): Update.
7385         * config/sparc/sparc.md (return): Remove.
7386         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
7387         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
7388         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
7389         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
7390         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
7391         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
7392         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
7393         Remove MASK_EPILOGUE.
7394         * doc/invoke.texi: Update.
7395
7396 2002-03-30  Daniel Berlin  <dan@dberlin.org>
7397
7398         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
7399         CPP will start the file for us.
7400
7401 2002-03-30  Richard Henderson  <rth@redhat.com>
7402
7403         PR target/5446
7404         * config/ia64/ia64.c (group_barrier_needed_p): Special case
7405         prologue_allocate_stack.
7406         (ia64_single_set): Use insn codes for recognition of special
7407         cases, not rtl matching.
7408         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
7409
7410 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
7411
7412         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
7413
7414 2002-03-30  Richard Henderson  <rth@redhat.com>
7415
7416         PR target/6032
7417         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
7418         or -fomit-frame-pointer with profiling.
7419         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7420         (FUNCTION_PROFILER): Do nothing.
7421         (PROFILE_HOOK): New.
7422         * config/sparc/sparc.c (sparc_override_options): Don't check
7423         code models for profiling.
7424         (sparc_function_profiler): Remove.
7425         (sparc_profile_hook): New.
7426         * config/sparc/sparc-protos.h: Update.
7427
7428 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
7429
7430         PR optimization/6086
7431         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
7432         of SUBREG of volatile MEM or because the MEM was mode dependent,
7433         return CLOBBER instead of unmodified SUBREG.
7434
7435 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7436
7437         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
7438         when not optimizing.
7439
7440         * toplev.c (rest_of_compilation): Cann mark_constant_function
7441         only when optimizing.
7442
7443         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
7444         are NULL.
7445
7446         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
7447         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
7448         (try_optimize_cfg): clear all AUX fields.
7449
7450         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
7451         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
7452         (ix86_address_cost): Be prepared for SUBREGed registers.
7453         (legitimate_address_p): Accept SUBREGed registers.
7454
7455 2002-03-29  Richard Henderson  <rth@redhat.com>
7456
7457         PR target/5672
7458         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
7459
7460 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7461
7462         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
7463         for aggregate and TFmode types.
7464
7465 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7466
7467         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
7468
7469 2002-03-29  Richard Henderson  <rth@redhat.com>
7470
7471         PR target/5886
7472         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
7473         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
7474
7475 2002-03-29  Richard Henderson  <rth@redhat.com>
7476
7477         PR target/6041
7478         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
7479         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
7480         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
7481         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
7482         conditional.
7483         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
7484
7485 2002-03-29  Dale Johannesen <dalej@apple.com>
7486
7487         * loop.c (combine_movables): Do allow combination of pseudos.
7488
7489 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
7490
7491         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
7492         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
7493         No functional change except ...
7494         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
7495         * doc/install.texi (*-*-freebsd*): Document port configuration.
7496
7497 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7498
7499         * Makefile.in (convert.o, calls.o, expmed.o): Update.
7500         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
7501         Use new hooks.
7502         * builtin-types.def (BT_PTRMODE): Update.
7503         * c-common.c (type_for_size): Rename c_common_type_for_size.
7504         (type_for_mode): Similarly.
7505         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
7506         Use new hook.
7507         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
7508         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
7509         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
7510         Redefine.
7511         * c-typeck.c (common_type, comptypes, default_conversion):
7512         Use new hooks.
7513         * calls.c: Include langhooks.h.
7514         (emit_library_call_value_1): Use new hooks.  Avoid redundant
7515         calls.
7516         * convert.c: Include langhooks.h
7517         (convert_to_pointer, convert_to_integer): Use new hooks.
7518         * except.c (init_eh): Similarly.
7519         * expmed.c: Include langhooks.h.
7520         (expand_mult_add): Use new hooks.
7521         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
7522         try_casesi): Similarly.
7523         * fold-const.c (optimize_bit_field_compare, make_range,
7524         decode_field_reference, fold_truthop, fold): Similarly.
7525         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
7526         put_var_into_stack): Similarly.
7527         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
7528         LANG_HOOKS_TYPE_FOR_SIZE): New.
7529         (LANG_HOOKS_TYPES_INITIALIZER): Update.
7530         * langhooks.h (lang_hooks_for_types): New hooks.
7531         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
7532         * tree.c (get_unwidened, get_narrower): Similarly.
7533         * tree.h (type_for_mode, type_for_size): Remove.
7534         * varasm.c (force_const_mem): Use new hooks.
7535         * utils2.c (nonbinary_modular_operation): Update.
7536 objc:
7537         * objc-act.c (handle_impent): Update.
7538         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
7539         Redefine.
7540
7541 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
7542
7543         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
7544         * config/ia64/ia64.c (basereg_operand): New.
7545         * config/ia64/ia64-protos.h (basereg_operand): Declare.
7546         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
7547
7548 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7549
7550         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
7551         unwind information when frame_pointer_needed.
7552         (mmix_assemble_integer): Tweak wording in comment.
7553
7554 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7555
7556         * Makefile.in (except.o): Update.
7557         * except.c: Include langhooks.h.
7558         (init_eh): Use langhook.
7559         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
7560         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
7561         (LANG_HOOKS_INITIALIZER): Update.
7562         * langhooks.h (lang_hooks_for_types): New.
7563         (struct lang_hooks): Add it.
7564         * tree.c (make_lang_type_fn, make_lang_type): Remove.
7565         * tree.h (make_lang_type_fn, make_lang_type): Remove.
7566 config:
7567         * alpha/alpha.c: Include langhooks.h.
7568         (alpha_build_va_list): Use langhook.
7569         * d30v/d30v.c: Include langhooks.h.
7570         (d30v_build_va_list): Use langhook.
7571         * i386/i386.c: Include langhooks.h.
7572         (ix86_build_va_list): Use langhook.
7573         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
7574         * s390/s390.c: Include langhooks.h.
7575         (s390_build_va_list): Use langhook.
7576         * stormy16/stormy16.c: Include langhooks.h.
7577         (stormy16_build_va_list): Use langhook.
7578
7579 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR c++/5964
7582         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
7583         attributes.
7584         (length): Compute variable length for branches/calls/jumps here.
7585         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
7586         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
7587         define branch_type attribute.
7588         (divsi3_sp32): Maximum length is 6 not 7.
7589         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
7590         call_address_untyped_struct_value_sp32,
7591         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
7592         * config/sparc/sparc.c (empty_delay_slot): New function.
7593         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
7594         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
7595
7596 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
7597
7598         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
7599         nonzero_bits if not needed.
7600         (nonzero_bits) [XOR]: Likewise.
7601         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
7602         reg_last_set_mode and mode are both MODE_INT, but not equal.
7603         (record_value_for_reg): Compute reg_last_set_nonzero_bits
7604         in nonzero_bits_mode for MODE_INT modes.
7605
7606 2002-03-28  Richard Henderson  <rth@redhat.com>
7607
7608         PR target/5715
7609         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
7610         to GAS.  Correct drift between alternatives.
7611
7612 2002-03-28  Richard Henderson  <rth@redhat.com>
7613
7614         PR target/6087
7615         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
7616
7617 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
7618
7619         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
7620         emulation to the linker.
7621
7622 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
7623
7624         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
7625         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
7626
7627 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
7628
7629         * combine.c (simplify_and_const_int): Make sure to apply mask
7630         when force_to_mode returns a constant integer.  PR3311.
7631
7632 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7633
7634         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
7635
7636 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7637
7638         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
7639         and Objective-C Dialect Options.
7640
7641 2002-03-28  Richard Henderson  <rth@redhat.com>
7642
7643         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
7644         comparison should be done vs !=0 not >0 return code.  Tidy cases.
7645
7646 2002-03-28  Richard Henderson  <rth@redhat.com>
7647
7648         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
7649         on to c_expand_body.
7650         * c-tree.h (finish_function): Update decl.
7651         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
7652
7653 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7654
7655         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
7656
7657 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
7658
7659         * rtlanal.c: Include flags.h
7660         (may_trap_p): Do not mark FP operations if trapping
7661         if !flag_trapping_math
7662         * Makefile.in (rtlanal.o): Add dependency on flag.h
7663         * ifcvt.c (noce_operand_ok): Avoid the lameness.
7664
7665 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
7666
7667         * mips.md: Use dconst1, not 1.0, as first argument of
7668         REAL_VALUE_LDEXP.  Don't use union real_extract.
7669
7670 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
7671
7672         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
7673         rather than $target.  Heed program_prefix and
7674         program_transform_name.  Search for gas in cross-compiler case too.
7675         "test -x" rather than "test -f".
7676         (gcc_cv_ld): Likewise.
7677         (gcc_cv_nm): Heed program_prefix and program_transform_name.
7678         (gcc_cv_objdump): Likewise.
7679         * configure: Regenerate.
7680
7681 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7682
7683         * Makefile.in (attribs.o): Update.
7684         * attribs.c: Include langhooks.h.
7685         (decl_attributes): Use langhook.
7686         * c-decl.c (insert_default_attributes): Rename.
7687         * c-tree.h (c_insert_default_attributes): New.
7688         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
7689         (LANG_HOOKS_INITIALIZER): Update.
7690         * langhooks.h (struct lang_hooks): New hook.
7691         * tree.h (insert_default_attributes): Remove.
7692 objc:
7693         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
7694
7695 2002-03-27  Andreas Schwab  <schwab@suse.de>
7696
7697         * config/i386/i386.c (classify_argument): Also check for
7698         QUAL_UNION_TYPE.
7699
7700 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7701
7702         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
7703         any more.
7704
7705 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7706
7707         * i960.md (ret): Set PC.
7708         (nonlocal_goto): Fix expander.
7709         * builtins.c (epxand_builin_longjmp): Check that we've emitted
7710         some jump or call.
7711
7712 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7713
7714         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
7715         of libcall regions.
7716
7717 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7718
7719         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
7720         assigning to BLOCK_FOR_INSN directly.
7721
7722 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
7723
7724         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
7725
7726 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7727
7728         * c-common.c (c_expand_expr): Fix prototype.
7729         * c-common.h (c_expand_expr): Always declare, update.
7730         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7731         * c-objc-common.c (c_objc_common_init): No global hook.
7732         * expr.c (expand_expr): Use langhook.
7733         * expr.h (enum expand_modifier): Conditionally declare.
7734         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
7735         (LANG_HOOKS_INITIALIZER): Update.
7736         * langhooks.c (lhd_expand_expr): New.
7737         * langhooks.h (struct lang_hooks): New hook.
7738         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
7739         (lang_independent_init): Don't default hook.
7740 objc:
7741         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7742
7743 2002-03-27  Richard Henderson  <rth@redhat.com>
7744
7745         PR target/6054
7746         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
7747         TARGET_CONST_GP.  Simplify conditions.
7748
7749 2002-03-27  Richard Henderson  <rth@redhat.com>
7750
7751         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
7752         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
7753         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
7754
7755 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
7756
7757         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
7758         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
7759         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
7760         Remove unnecessary masks.
7761         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
7762         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
7763         -mwindows, -mdll switches and their negations.
7764
7765 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7766
7767         * gcc-common.c (lang_mark_false_label_stack): Remove.
7768         * ggc.h (lang_mark_false_label_stack): Similarly.
7769
7770 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7771
7772         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
7773
7774         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
7775         or __rtems_ is defined.
7776
7777 2002-03-26  Richard Henderson  <rth@redhat.com>
7778
7779         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
7780         if a non-trivial load was emitted.
7781         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
7782         in high+extra+low case.
7783
7784 2002-03-26  Richard Henderson  <rth@redhat.com>
7785
7786         * config.gcc (sparc*-solaris): Use float_format=sparc.
7787
7788 2002-03-26  Richard Henderson  <rth@redhat.com>
7789
7790         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
7791         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
7792         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
7793         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
7794         (WINT_TYPE_SIZE): Fix at 32.
7795
7796 2002-03-26  Richard Henderson  <rth@redhat.com>
7797
7798         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
7799         until after eh landing pad generation.
7800         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
7801         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
7802
7803 2002-03-26  Richard Henderson  <rth@redhat.com>
7804
7805         * expr.h (ADD_PARM_SIZE): One more convert for INC.
7806
7807 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
7808
7809         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
7810         and warning switches.
7811         (cc1_options):  Likewise.
7812
7813 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
7814
7815         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
7816         Restore more of the signal context.  Set no_reg_stack_frame.
7817         * config/ia64/unwind-ia64.c (unw_state_record):
7818         Add no_reg_stack_frame, comments.
7819         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
7820         (uw_update_context): Adjust bsp when unwinding from leaf,
7821         but not signal frame.
7822
7823 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
7824
7825         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
7826
7827 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7828
7829         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
7830
7831 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7832
7833         PR target/5621
7834         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
7835         "Add a pool_range attribute", which was lost during the ARM/Thumb
7836         merge.
7837
7838 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7839
7840         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
7841         a register into the MAC16 accumulator.
7842
7843 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
7844
7845         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
7846         (Warning Options): Document -Wswitch-enum.
7847         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
7848         -Wswitch.
7849         (warn_switch_enum): Define variables.
7850         * flags.h (warn_switch_enum): Declare variables.
7851         * stmt.c (expand_end_case_type): When warn_switch_enum /
7852         -Wswitch-enum, perform switch checks.
7853         Fix PR c/5044.
7854
7855 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7856
7857         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
7858         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
7859         (reload_muladdsi_compare0_scratch): Delete.
7860
7861 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
7862
7863         * doc/install.texi (*-*-freebsd*): Update.
7864
7865 2002-03-26  Richard Henderson  <rth@redhat.com>
7866
7867         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
7868         (SUB_PARM_SIZE): Cast DEC to ssizetype.
7869
7870         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
7871         types from the normal argument frame.
7872
7873         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
7874         variable sized objects by reference.
7875         (sparc_va_arg): Receive them by reference too.
7876
7877 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
7878
7879         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
7880         code to not restoring global registers.
7881
7882 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7883
7884         * Makefile.in (ggc-common.o): Update.
7885         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
7886         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7887         * c-tree.h (c_mark_tree): New.
7888         * ggc-common.c: Include langhooks.h.
7889         (gcc_mark_trees): Use new langhook.
7890         * ggc-callbacks.c: Delete file.
7891         * ggc.h (lang_mark_tree): Remove.
7892         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
7893         (LANG_HOOKS_INITIALIZER): Update.
7894         * langhooks.h (struct lang_hooks): New hook.
7895 objc:
7896         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7897
7898 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7899
7900         * doc/cpp.texi: Exclude entire Top node from printed manual.
7901         Move option index after directive index.  Insert page breaks
7902         before GFDL and concept index.  Index environment variables
7903         with command line options.
7904         * doc/cppenv.texi: Use @vtable for environment variable list.
7905         Add paragraph explaining semantics of empty elements in path
7906         variables.  Exclude a cross-reference to Fishkill from the
7907         manpage.  Remove an unnecessary cross-reference of the entry
7908         right above the referer.  Don't use @anchor in text that goes
7909         into manpage.
7910         * doc/cppopts.texi: Cross-reference the environment variables
7911         section, not the specific environment variable, for consistency.
7912
7913 2002-03-25  Richard Henderson  <rth@redhat.com>
7914
7915         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
7916         anywhere in the block.  Don't refer to insns that have been
7917         removed from the chain.  Iterate backward through the new insns.
7918         Don't refer to edges that have been removed.
7919
7920 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
7921
7922         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
7923         test for overflow of constant.
7924
7925 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
7926
7927         PR target/2623
7928         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
7929         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
7930         these patterns on arm_archv4.
7931
7932 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
7933
7934         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
7935         int".
7936
7937 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7938
7939         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
7940         float_handled, float_handler, float_signal, set_float_handler,
7941         and do_float_handler.  Set handler for SIGFPE to crash_signal.
7942         * toplev.h: Don't prototype do_float_handler.
7943
7944         * c-lex.c: Fold parse_float into lex_number.  Make warning
7945         about portability of hex float constants more informative, and
7946         don't issue it on top of a syntax error.
7947         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
7948         their callers.
7949         * real.h: Define REAL_VALUE_ABS here...
7950         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
7951         simplify_unary_real, simplify_binary_real, and
7952         simplify_binary_is2orm1 into their callers.
7953         * tree.c: Fold build_real_from_int_cst_1 into caller.
7954
7955         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
7956
7957         * tsystem.h: Include float.h here...
7958         * libgcc2.c: ... not here.
7959
7960 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
7961
7962         Fixes for: PR bootstrap/3591, target/5676
7963         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
7964         defined.  Do not disable exceptions or rtti.
7965         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
7966         mcore.h.  Disable exceptions and rtti, since they are not
7967         supported by EPOC.
7968
7969 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7970
7971         * c-decl.c (maybe_build_cleanup): Remove.
7972         * expr.c (expand_expr): Use langhook.
7973         * langhooks-def.h (lhd_return_null_tree,
7974         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
7975         (LANGHOOKS_INITIALIZER): Update.
7976         * langhooks.c (lhd_return_null_tree): New.
7977         * langhooks.h (struct lang_hooks): New hook.
7978         * tree-inline.c (initialize_inlined_parameters): Use langhook.
7979         * tree.h (maybe_build_cleanup): Remove.
7980
7981 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7982
7983         * regrename.c (build_def_use): Move recog_memoized
7984         before extract_insn.
7985
7986 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7987
7988         PR target/6043
7989         * expr.c (emit_group_store): Handle storing into CONCAT.
7990
7991 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7992
7993         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
7994         corresponding MATCH_DUP.
7995
7996 2002-03-24  Richard Henderson  <rth@redhat.com>
7997
7998         * unroll.c (unroll_loop): Zero label_map.
7999
8000         * gcse.c: Include except.h.
8001         * Makefile.in (gcse.o): Update.
8002
8003 2002-03-24  Richard Henderson  <rth@redhat.com>
8004
8005         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
8006         Do resolve_unique_section before shared data clause.
8007
8008 2002-03-24  Richard Henderson  <rth@redhat.com>
8009
8010         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
8011
8012 2002-03-24  Richard Henderson  <rth@redhat.com>
8013
8014         * recog.c (peephole2_optimize): Split blocks when EH insns are
8015         generated in the middle of a block.  Do global life update if
8016         zapped EH edges.
8017
8018 2002-03-24  Richard Henderson  <rth@redhat.com>
8019
8020         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
8021
8022 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8023
8024         preprocessor/3951
8025         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
8026         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
8027         (init_dependency_output): Don't make no_output decision here.
8028
8029 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
8030
8031         * stmt.c (check_for_full_enumeration_handling): Remove tests of
8032         warn_switch.  Update description.
8033         (expand_end_case_type): Call check_for_full_enumeration_handling
8034         when warn_switch.
8035
8036 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8037
8038         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
8039         (m68hc11_split_move): Call it to see if the source and destination
8040         operands use the same direction auto inc/dec mode, otherwise make the
8041         source an offsetable memory operand and generate an add.
8042
8043 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8044
8045         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
8046         register for operand 2.
8047         ("*subsi3_zero_extendqi"): Likewise.
8048         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
8049         bits so that it is compatible with a pop.
8050         ("*andhi3_gen"): Likewise.
8051         ("xorhi3"): Likewise.
8052
8053 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8054
8055         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
8056         -pedantic here...
8057         (cpp_post_options): ... not here.
8058
8059 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8060             Aldy Hernandez  <aldyh@redhat.com>
8061
8062         Removal of separate preprocessor cpp0.
8063
8064         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
8065         cpp0, install-common): Update.
8066         * c-common.c (flag_preprocess_only): New.
8067         (c_common_init): Preprocess for -E.
8068         * c-common.h (flag_preprocess_only): New.
8069         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
8070         * c-objc-common.c (c_init_decl_processing): Exit quickly
8071         for NULL return from c_common_init.
8072         * cpplib.h (cpp_preprocess_file): New.
8073         * cppmain.c (main, general_init, pfile, progname): Remove.
8074         (do_preprocessing): Rename cpp_preprocess_file, don't call
8075         cpp_finish.  Don't close stdout here.
8076         (setup_callbacks): Update prototype.
8077         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
8078         Update.
8079         * tradcpp.c (main): Ignore -quiet.
8080 objc:
8081         * lang-specs.h (default_compilers): Preprocess with cc1obj.
8082
8083 2002-03-24  Richard Henderson  <rth@redhat.com>
8084
8085         PR optimization/5742
8086         * machmode.def: Add inner mode field to complex modes.
8087         * config/mips/mips.c (mips_function_value): Always define.  Add
8088         new argument to handle libcalls.
8089         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
8090         (FUNCTION_VALUE): Likewise.
8091         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
8092         * config/mips/mips-protos.h: Update.
8093
8094 2002-03-23  Richard Henderson  <rth@redhat.com>
8095
8096         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
8097         * config/sparc/sparc-protos.h: Update.
8098         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
8099
8100 2002-03-23  Richard Henderson  <rth@redhat.com>
8101
8102         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
8103         _start or _init begins the text segment.
8104
8105 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
8106
8107         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
8108         not HOST_WIDEST_INT.
8109         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
8110
8111 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
8112
8113         PR java/5489
8114         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
8115         operand argument to output_return_instruction.
8116         * arm.c (arm_print_operand, case 'd'): If the operand is
8117         const_true_rtx then just return.
8118         (arm_print_operand, case 'D'): If the operand is const_true_rtx
8119         then abort.
8120
8121 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
8122
8123         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
8124         (Warning Options): Document -Wswitch-default.
8125         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
8126         -Wswitch.
8127         (warn_switch_default): Define variable.
8128         (warn_switch): Update comment.
8129         * flags.h (warn_switch_default): Declare variable.
8130         (warn_switch): Update comment.
8131         * stmt.c (expand_end_case): Check for and, when
8132         warn_switch_no_default, warn of a missing default case.
8133
8134 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
8135
8136         * real.h (N): Special case 128 bit doubles.
8137
8138         * combine.c (simplify_comparison): When widening modes, ignore
8139         sign extension on CONST_INTs.
8140
8141 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8142
8143         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
8144         passed to adjust_address.  Fix comment formatting.
8145
8146
8147 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
8148
8149         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
8150         Always make REAL_VALUE_TYPE a struct containing an array of
8151         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
8152         big it is.  Don't declare or use union real_extract.
8153
8154         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
8155         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
8156         (print_operand), config/arm/arm.c (output_move_double),
8157         config/arm/arm.md (consttable_4, consttable_8),
8158         config/romp/romp.c (output_fpops), config/s390/s390.h
8159         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
8160         (xtensa_output_literal): Don't use union real_extract.
8161
8162         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
8163         (sfmode_constant_to_ulong), config/ns32k/merlin.h
8164         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
8165         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
8166         (PRINT_OPERAND): Don't use local version of union
8167         real_extract.
8168
8169         * config/convex/convex.c (check_float_value), config/vax/vax.c
8170         (vax_float_literal), config/m88k/m88k.md (divdf3),
8171         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
8172         config/pdp11/pdp11.c (output_move_quad): Don't do host
8173         arithmetic on target floating point quantities.
8174
8175         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
8176         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
8177
8178         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
8179         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
8180
8181         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
8182         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
8183         INFINITY.
8184         * print-rtl.c (print_rtx): Disable code which needs
8185         floating-point emulator.
8186         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
8187         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
8188         depending on HOST_FLOAT_FORMAT to be defined properly.
8189
8190         * config/1750a/1750a.c (get_double, float_label): Delete.
8191         (print_operand): Delete huge commented-out chunk.  Use
8192         REAL_VALUE_TO_DECIMAL.
8193         * config/1750a/1750a-protos.h: Delete prototypes of deleted
8194         functions.
8195         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
8196         IEEE_FLOAT_FORMAT.
8197         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
8198         Use REAL_VALUE_TO_DECIMAL as ELF version does.
8199         * config/m88k/m88k.c (real_power_of_2_operand,
8200         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
8201         real_extract out of the union; run the input through
8202         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
8203         from that into the union.
8204         * config/pdp11/pdp11.c (output_move_double): Rearrange
8205         parentheses to make automatic indenter happy.
8206
8207         * doc/tm.texi (Cross-compilation): Rename node to "Floating
8208         Point" and rewrite to describe current situation.  Also adjust
8209         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
8210         match code.
8211         * doc/rtl.texi: Adjust cross reference.
8212
8213 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8214
8215         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
8216         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
8217         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
8218         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
8219         prevent use of sp as a reload register.
8220         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
8221         non_acc_reg_operand.
8222         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
8223         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
8224         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
8225         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
8226
8227 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8228
8229         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
8230         * cpplex.c (unterminated): Delete.
8231         (parse_string): No string literal may extend over multiple
8232         lines.  Suppress the error when preprocessing assembly.
8233         * cppmain.c (scan_translation_unit): Strings are single-line.
8234
8235         * doc/cpp.texi: Update to match.
8236
8237 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8238
8239         PR optimization/5854
8240         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
8241         Shut up warnings.
8242         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
8243         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
8244         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
8245         const0 if scratch register was not allocated.
8246         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
8247         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
8248         with GEN_INT (...).
8249         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
8250         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
8251         with GEN_INT (...) everywhere.  Remove constraints in define_split
8252         patterns.
8253         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
8254         require scratch register for setting 0 into regs/non-pushable memory.
8255
8256 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8257
8258         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
8259         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
8260
8261 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
8262
8263         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
8264         * cppinit.c (cpp_create_reader):  On by default.
8265         (cpp_handle_option):  Handle -W[no-]endif-labels.
8266         (cpp_post_options):  Also enable if -pedantic.
8267         * cpplib.c (do_else):  Use it.
8268         (do_endif):  Likewise.
8269         * doc/cppopts.texi:  Document new option.
8270         * doc/invoke.texi:  Document new option.
8271
8272 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
8273
8274         * config/i386/i386.c, config/i386/i386.md: Change all occurences
8275         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
8276
8277 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8278
8279         * flow.c (calculate_global_regs_live): Clear aux fields of
8280         ENTRY and EXIT.
8281
8282 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8283
8284         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
8285         REG or MEM subregs, pass rtx * instead of rtx to it.
8286         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
8287         rtx * instead of rtx to alter_subreg.
8288         * config/m32r/m32r.c (gen_split_move_double): Likewise.
8289         * config/pj/pj.c (pj_output_rval): Likewise.
8290
8291 2002-03-22  Richard Henderson  <rth@redhat.com>
8292
8293         PR target/3177
8294         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
8295         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
8296         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
8297         (ia64_expand_prologue): Look at int_regs, not words, for number
8298         of incomming int regs.
8299
8300 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
8301
8302         * expr.c (expand_expr): A RESULT_DECL is part of a call.
8303
8304 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
8305
8306         * toplev.c (flag_loop_optimize, flag_crossjumping):
8307         New static variables.
8308         (rest_of_compilation): Conditionalize crossjumping and
8309         loop optimizer.
8310         (parse_options_and_default_flags): Default loop_optimize and
8311         crossjumping.
8312         (lang_independent_options): Add -fcrossjumping and -floop-optimize
8313         * invoke.texi (crossjumping, loop-optimize): Document.
8314
8315 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8316
8317         * real.c (eiisneg): Move outside #ifdef NANS.
8318
8319 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8320
8321         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
8322         frequencies match; avoid match on different loop depths.
8323         (try_crossjump_to_bb): Kill tests that no longer brings time
8324         savings.
8325         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
8326         updating code.
8327         (split_edge): Likewise.
8328
8329         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
8330         variable.
8331
8332         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
8333         * cfgrtl.c: Include insn-config.h
8334         (split_block) Dirtify block in presence of conditional execution
8335
8336 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8337
8338         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
8339         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
8340         (function_arg): Constify CUMULATIVE_ARGS.
8341         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
8342         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
8343         (UNITS_PER_DOUBLE): New macro.
8344         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
8345         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
8346         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
8347         fp_regs and stack_words.
8348         (EABI_FLOAT_VARARGS_P): New macro.
8349         * config/mips/mips.c (struct mips_arg_info): New.
8350         (mips_arg_info): New function.
8351         (function_arg_advance): Use it.  Add adjustment instructions here
8352         rather than in function_arg.
8353         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
8354         for VOIDmode at the beginning of the function.
8355         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
8356         (function_arg_pass_by_reference): Likewise.
8357         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
8358         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
8359         (mips_va_start): Likewise.  Use the new stack_words field of
8360         CUMULATIVE_ARGS to set up overflow area.  Reformat.
8361         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
8362         doubles and other types, aligning the overflow pointer for non-doubles
8363         too.  Remove some code duplication.  Replace hard-coded constants.
8364
8365 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8366
8367         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
8368         (CLASS_UNITS): Undefine.
8369         (CLASS_MAX_NREGS): Use FP_INC.
8370         * config/mips/mips.c (compute_frame_size): Likewise.
8371         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
8372
8373 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8374
8375         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
8376         prototype, and handle lexing numbers and identifiers.
8377         (parse_identifier): Update to new form of parse_slow.
8378         (parse_number): Fast path only, use parse_slow otherwise.
8379         (_cpp_lex_direct): Update calls to parse_number.
8380
8381 2002-03-21  DJ Delorie  <dj@redhat.com>
8382
8383         * bb-reorder.c (make_reorder_chain_1): Protect against
8384         when redundant edges are omitted.
8385         * predict.c (dump_prediction): Likewise.
8386
8387 2002-03-21  Richard Henderson  <rth@redhat.com>
8388
8389         PR target/5996
8390         * fixinc/inclhack.def (solaris_stdio_tag): New.
8391         * fixinc/fixincl.x: Regenerate.
8392
8393 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8394
8395         PR c/5597
8396         * c-typeck.c (process_init_element): Flag non-static
8397         initialization of a flexible array member as illegal.
8398
8399 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
8400
8401         * config/rs6000/t-linux64: New.
8402         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
8403         t-ppccomm.  Use t-rs6000 and t-linux64.
8404         (powerpc64-*-gnu* <tmake_file>): Likewise.
8405         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
8406         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
8407         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
8408
8409 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
8410
8411         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
8412         flag_really_no_inline instead of optimize == 0.
8413
8414         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
8415
8416         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
8417
8418         * flags.h (flag_really_no_inline): New.
8419
8420         * c-common.c (c_common_post_options): Initialize
8421         flag_really_no_inline.
8422
8423         * toplev.c (flag_really_no_inline): New.
8424
8425 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8426
8427         * config/avr/avr.md (length): Fix length computation for
8428         conditional branches.
8429
8430 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8431
8432         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
8433         sdbout.o, profile.o): Update.
8434         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
8435         langhook.
8436         * c-common.h (gettags): Move here from tree.h.
8437         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
8438         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8439         * dbxout.c (dbxout_init): Use getdecls langhook.
8440         * expr.c (expand_expr): Use insert_block langhook.
8441         * fold-const.c: Include langhooks.h.
8442         (fold_range_test, fold_binary_op_with_conditional_arg,
8443         fold): Use global_bindings_p langhook.
8444         * integrate.c (expand_inline_function): Use insert_block langhook.
8445         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
8446         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
8447         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
8448         LANG_HOOKS_GETDECLS): New.
8449         (LANG_HOOKS_INITIALIZER): Update.
8450         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
8451         langhook.
8452         * langhooks.h (struct lang_hooks_for_decls): New.
8453         (struct lang_hooks): Update.
8454         * profile.c: Include langhooks.h.
8455         (output_func_start_profiler): Use new langhooks.
8456         * sdbout.c: Include langhooks.h.
8457         (sdbout_init, sdbout_finish): Use getdecls langhook.
8458         * stmt.c: Include langhooks.h.
8459         (expand_fixup, fixup_gotos): Use new langhooks.
8460         * stor-layout.c: Include langhooks.h.
8461         (variable_size): Use global_bindings_p langhook.
8462         * toplev.c (compile_file): Use getdecls langhook.
8463         * tree-inline.c (remap_block): Use insert_block langhook.
8464         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
8465         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
8466
8467 2002-03-21  Richard Henderson  <rth@redhat.com>
8468
8469         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
8470         constants in .data when -fpic.
8471
8472 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8473
8474         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
8475         where appropriate.
8476
8477 2002-03-21  Tom Tromey  <tromey@redhat.com>
8478
8479         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
8480
8481 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8482
8483         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
8484
8485         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
8486
8487 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8488             Richard Henderson  <rth@redhat.com>
8489
8490         PR c/5354
8491         * c-common.c (c_expand_expr): Preserve result of a statement
8492         expression if needed.
8493
8494 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8495
8496         PR bootstrap/4195
8497         * genrecog.c (maybe_both_true_mode): Remove.
8498         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
8499         * machmode.def (Pmode): Likewise.
8500
8501 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
8502
8503         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
8504         (nonlocal_mentioned_p_1): New function.
8505         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
8506         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
8507         (mark_constant_function): Recognize pure functions.
8508         * rtl.h (global_reg_mentioned_p): New prototype.
8509         * rtlanal.c (global_reg_mentioned_p,
8510         global_reg_mentioned_p_1): New function.
8511
8512 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8513
8514         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
8515         UNIX assert.h.
8516         * fixinc/fixincl.x: Regenerate.
8517
8518 2002-03-20  Jason Merrill  <jason@redhat.com>
8519
8520         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
8521
8522 2002-03-20  Michael Meissner  <meissner@redhat.com>
8523
8524         * doc/invoke.texi (Optimize Options): Document that -O2 sets
8525         -fstrict-aliasing.
8526
8527 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
8528
8529         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
8530         ".literal_position" directive before the constant pool.
8531
8532 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8533
8534         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
8535         Add Craig Rodrigues.
8536         Add Brad Lucier to testers.
8537
8538 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8539
8540         PR target/4792
8541         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
8542         to if_then_else.
8543         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
8544         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
8545         instead of insn_extract.
8546
8547 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8548
8549         PR bootstrap/4192
8550         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
8551
8552         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
8553         stmt if some case has been output.
8554
8555 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8556
8557         PR c/5972
8558         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
8559         movsfcc_1, movdfcc_1): Add %O2.
8560         * config/i386/i386.c (print_operand): Handle %ON.
8561         Print . before float condition codes in Sun as cmov syntax.
8562         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
8563         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
8564         no longer true.
8565
8566 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
8567
8568         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
8569         return instruction if PC was popped.
8570
8571 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
8572
8573         * config/xtensa/xtensa.md: Remove unused type attributes.
8574         (adddi_carry, subddi_carry): Change type attribute to "multi".
8575
8576 2002-03-19  Dale Johannesen  <dalej@apple.com>
8577
8578         PR optimization/5999, middle-end/5731
8579         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
8580         multiplications by reciprocals.
8581
8582 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8583
8584         * Makefile.in: Update.
8585         * c-common.c: Include langhooks.h.
8586         (inline_forbidden_p): Use new hook.
8587         * diagnostic.c: Include langhooks.h.
8588         (format_with_decl, announce_function,
8589         default_print_error_function): Use new hook.
8590         * dwarf2out.c (dwarf2_name): Use new hook.
8591         * function.c: Include langhooks.h.
8592         (init_function_start): Use new hook.
8593         * langhooks-def.h (lhd_decl_printable_name): New.
8594         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
8595         (LANGHOOKS_INITIALIZER): Update.
8596         * langhooks.c (lhd_decl_printable_name): New.
8597         * langhooks.h (struct lang_hooks): New hook.
8598         * toplev.c (decl_name, decl_printable_name): Remove.
8599         (open_dump_file): Use new hook.
8600         (process_options): Remove old hook.
8601         * tree.h (decl_printable_name): Remove.
8602 objc:
8603         * objc-act.c (objc_init): Remove old hook.
8604         (objc_printable_name): Export.
8605         * objc-act.h (objc_printable_name): New.
8606         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8607
8608 2002-03-19  Jim Blandy  <jimb@redhat.com>
8609
8610         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
8611         the start_source_file debug hook, not the current line number.
8612
8613 2002-03-19  Richard Henderson  <rth@redhat.com>
8614
8615         * flow.c (EH_USES): Provide default.
8616         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
8617         * doc/tm.texi (EH_USES): New.
8618
8619         * config/ia64/ia64.c (ia64_eh_uses): New.
8620         * config/ia64/ia64-protos.h: Update.
8621         * config/ia64/ia64.h (EH_USES): New.
8622
8623 2002-03-19  Richard Henderson  <rth@redhat.com>
8624
8625         * varasm.c (output_constant_def): Fix stupid typo.
8626
8627 2002-03-19  Richard Henderson  <rth@redhat.com>
8628
8629         PR 5879
8630         * except.c (current_function_has_exception_handlers): New.
8631         * except.h: Declare it.
8632         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
8633         Combine tests that disable all sibcalls for the function.
8634
8635 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
8636
8637         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
8638         for INTEGER_CST.
8639
8640 2002-03-19  Richard Henderson  <rth@redhat.com>
8641
8642         PR 5977, 5991
8643         * config/ia64/ia64.c: Revert 2002-03-01 patch.
8644         * config/ia64/ia64.h (INIT_EXPANDERS): New.
8645
8646 2002-03-19  Jim Blandy  <jimb@redhat.com>
8647
8648         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
8649         name, even if the replacement list contains no tokens, as required
8650         by Dwarf.
8651
8652 2002-03-19  Jason Merrill  <jason@redhat.com>
8653
8654         * varasm.c (globalize_decl): Get the name from the RTL, not
8655         DECL_ASSEMBLER_NAME.
8656
8657         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
8658
8659 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
8660
8661         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
8662         subdi_carry): Define.
8663
8664 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8665
8666         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
8667         about -fpic/-fPIC if extra_warnings set.
8668
8669 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8670
8671         * expr.c (expand_expr): Sign-extend CONST_INT generated from
8672         TREE_STRING_POINTER.
8673         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
8674
8675 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8676
8677         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
8678         in favor of SP if FRAME_POINTER_REQUIRED is false.
8679
8680 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
8681
8682         * emit-rtl.c (gen_int_mode): New function.
8683         * rtl.h: Prototype for it.
8684         * combine.c (make_extraction, simplify_comparison), expmed.c
8685         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
8686         (convert_modes, store_field), optabs.c (expand_fix),
8687         simplify-rtx.c (neg_const_int, simplify_unary_real),
8688
8689         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
8690         Use it instead of GEN_INT (trunc_int_for_mode (...)).
8691
8692 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
8693
8694         PR c/5656
8695         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
8696         convert_parm_for_inlining.
8697         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
8698         Define.
8699         * langhooks-def.h: Likewise.
8700         * objc/objc-lang.c: Likewise.
8701         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
8702         function.
8703         * tree-inline.c (initialize_inlined_parameters):
8704         Call convert_parm_for_inlining lang hook if needed.
8705         * c-typeck.c (c_convert_parm_for_inlining): New function.
8706         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
8707
8708 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
8709
8710         * calls.c (precompute_arguments): Do not assume that temporaries
8711         can be destroyed after expanding the argument.
8712         (expand_call): Likewise.
8713
8714 2002-03-15  Eric Christopher  <echristo@redhat.com>
8715
8716         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
8717         Fix register preference on last change.
8718         * config/mips/mips.c (mips_return_in_memory): New function.
8719         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
8720         * config/mips/mips-protos.h: Declare.
8721         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
8722         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
8723
8724 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
8725
8726         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
8727         a register too.
8728         (anddi3, iorsi3): Likewise.
8729
8730         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
8731         use %gprel for symbols that are going to be placed in linkonce
8732         sections.
8733
8734         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
8735         RETURN_ADDRESS_POINTER_REGNUM to $ra.
8736         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
8737         not needed.  Disregard leaf_function_p().
8738         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
8739         mips16 frame pointer.
8740         * config/mips/mips.md (store ra): Only to small SP offsets.
8741         2001-08-22  Graham Stott  <grahams@redhat.com>
8742         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
8743         return a REG rtx for the return address register.
8744
8745 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
8746
8747         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
8748         constant-pool addresses as "mode-dependent".
8749         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
8750
8751 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
8752
8753         PR target/5740
8754         * expr.c (emit_group_load): Use extract_bit_field if
8755         needed for CONCAT arguments.
8756
8757 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
8758
8759         PR target/4863
8760         * arm.md (tablejump): Make this a define_expand.  For PIC add the
8761         offset to the base of the table.
8762         (thumb_tablejump): Matcher for Thumb tablejump insn.
8763         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
8764         as the difference of two labels.
8765         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8766         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
8767         tables in the code.
8768         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
8769         * arm.c (get_jump_table_size): If the table is not in the text
8770         section, return zero.
8771
8772 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
8773
8774         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
8775         of gen_rtx_SUBREG.
8776         (arm_reload_out_hi): Use gen_lowpart instead of
8777         gen_rtx_SUBREG to access QImode components.
8778         * config/arm/arm.md: Disable zero_extend split for QImode
8779         subregs in BIG_ENDIAN mode.
8780         (storehi_bigend): Match use of least significant byte.
8781         (storeinthi): Remove extraneous SUBREG.
8782         Add missing construction of operands[2].
8783         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
8784         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
8785         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
8786
8787 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
8788
8789         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
8790         any_operand.
8791
8792 2002-03-17  Richard Henderson  <rth@redhat.com>
8793
8794         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
8795         explicitly.
8796
8797 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8798
8799         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
8800         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
8801
8802 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8803
8804         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
8805
8806         * predict.c (estimate_bb_frequencies): Delete unused variables.
8807
8808 2002-03-17  Richard Henderson  <rth@redhat.com>
8809
8810         * config/ia64/ia64.c (ia64_attribute_table): Move before
8811         targetm definition.  Make static.
8812
8813 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8814
8815         * c-common.h (yyparse, c_common_parse_file): New.
8816         * c-lang.c: Include c-common.h.
8817         (LANG_HOOKS_PARSE_FILE): Redefine.
8818         * c-lex.c: Include c-common.h.
8819         (yyparse): Rename c_common_parse_file.  Call yyparse.
8820         * c-parse.in (yyparse): Remove macro.
8821         * c-tree.h (yyparse_1): Remove.
8822         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
8823         (LANG_HOOKS_INITIALIZER): Update.
8824         * langhooks.h (struct lang_hoooks): New hook parse_file.
8825         * toplev.c (compile_file): Use parse_file hook.
8826         * tree.h (yyparse): Remove.
8827         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8828
8829 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8830
8831         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
8832         float_truncate, not fix.
8833         ("*truncdfsf2_real"): Ditto.
8834         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
8835
8836         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
8837
8838 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
8839
8840         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
8841         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
8842         where appropriate.  Make the second reference to
8843         leaf_function_p a function call, as intended.  Reindented.
8844
8845         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
8846         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
8847
8848         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
8849         add register to non-constant into sp.
8850
8851         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
8852         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
8853         (mips16_gp_pseudo_rtx): Lose.
8854         (INIT_EXPANDERS): Deleted.
8855         * config/mips/mips.c (mips_init_machine_status): New.
8856         (mips_free_machine_status): New.
8857         (mips_mark_machine_status): New.
8858         (override_options): Set them.
8859         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
8860         (struct machine_function): ... new.  Replaced all references.
8861         (mips_add_gc_roots): Don't mark them.
8862         (embedded_pic_fnaddr_reg): New, extracted from...
8863         (embedded_pic_offset): ... here.
8864         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
8865         (movsi): Likewise.
8866
8867 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8868
8869         * cppinit.c: Revert -MD removal.
8870
8871 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8872
8873         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
8874         soft registers by default for 68HC12.
8875         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
8876         when compiling with -fomit-frame-pointer.
8877         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
8878         (expand_epilogue): Likewise.
8879         (m68hc11_gen_rotate): Use exg when rotating by 8.
8880
8881 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8882
8883         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
8884         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
8885         (splits): Remove unused add splits.
8886         ("*addhi3_68hc12"): Tune constraints.
8887         ("addhi_sp"): Try to use X instead of Y in all cases and if the
8888         constant fits in 8-bits and D is dead use abx/aby instructions.
8889         ("*addhi3"): Remove extern declaration of ix_reg.
8890         ("*subsi3"): Optimize and provide new split.
8891         ("subhi3"): Cleanup.
8892         ("*subhi3_sp"): Avoid saving X if we know it is dead.
8893         (arith splits): For 68hc12 save the address register on the stack
8894         and do the arithmetic operation with a pop.
8895
8896 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8897
8898         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
8899         allocating QImode in address registers.
8900         ("*movqi_m68hc11"): Likewise.
8901
8902 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
8903
8904         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
8905
8906 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8907
8908         * cppinit.c (print_help): Display -MD and -MMD.
8909         Don't display usage string.  Update assertion syntax and
8910         typo.
8911         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
8912         (cpp_handle_option): Update.
8913
8914 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
8915
8916         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
8917         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
8918         and define it so that regardless of target CPU size,
8919         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
8920         of "int" rather than "long."
8921
8922 2002-03-15  Richard Henderson  <rth@redhat.com>
8923
8924         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
8925         size as a tree.
8926
8927 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8928
8929         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
8930         ("tstqi" split): Avoid using memory for tstqi on address register.
8931         (splits): Remove constraints.
8932         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
8933         ("cmpdf", "cmpsf"): Remove since not used.
8934         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
8935         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
8936
8937 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8938
8939         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
8940         ("neghi2"): Tighten constraints.
8941         ("one_cmplsi2"): Optimize and simplify split.
8942         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
8943
8944 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8945
8946         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
8947         and split of AND operation to clear the upper bits.
8948         ("*logicalsi3_zextqi"): Likewise.
8949         ("*logicallhi3_zexthi_ashift8"): Likewise.
8950         ("*logicalsi3_silshr16"): Likewise.
8951         ("logicalsi3_silshl16"): Likewise.
8952         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
8953
8954 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8955
8956         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
8957         (m68hc11_indirect_p): New function.
8958         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
8959         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
8960         TARGET_M6812.
8961         (asm_print_register): Likewise.
8962         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
8963         (m68hc11_indirect_p): Declare.
8964         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
8965         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
8966         (TARGET_SWITCHES): New option -mrelax.
8967         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
8968         destination.
8969         ("iorsi3", "xorsi3"): Likewise.
8970         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
8971         ("*andhi3_mem"): New to handle destination in memory with bclr
8972         and a scratch register.
8973         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
8974         ("*andhi3_const"): New when operand2 is constant.
8975         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
8976         ("*andhi3_gen"): Cleanup of the old "andhi3".
8977         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
8978         ("xorqi3"): Update constraints.
8979
8980 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8981
8982         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
8983         for reg_equiv_memory_loc when the operand is a register that does
8984         not get a hard register (stack location).
8985         (tst_operand): After reload, accept all memory operand.
8986         (symbolic_memory_operand): Fix detection of symbolic references.
8987         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
8988         accept symbols and any constant.
8989
8990 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8991
8992         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
8993         note on the insn that sets the soft frame register.
8994         (must_parenthesize): ix and iy are also reserved names.
8995         (print_operand_address): One more place where parenthesis are required
8996         to avoid confusion with register names.
8997         (m68hc11_gen_movhi): Allow push of stack pointer.
8998         (m68hc11_check_z_replacement): Fix handling of parallel with a
8999         clobber.
9000         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
9001         the replacement register is.
9002         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
9003         and D8_REGS classes.
9004         (MODES_TIEABLE_P): All modes are tieable except QImode.
9005
9006 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9007
9008         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
9009         (___subdi3): Likewise.
9010         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
9011         (__map_data_section): Optimize 68hc11 case.
9012
9013 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9014
9015         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
9016         than a shift to avoid adding a register with itself.
9017         (m68hc11_memory_move_cost): Take into account NO_REGS.
9018         (m68hc11_register_move_cost): Update and use memory move cost
9019         for soft registers.
9020         (m68hc11_address_cost): Make cost of valid offset not 0 so that
9021         it gives more opportunities to cse to optimize.
9022         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
9023         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
9024
9025 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
9026
9027         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
9028         * c-common.def (CLEANUP_STMT): New tree node.
9029         * c-common.h (CLEANUP_DECL): New macro.
9030         (CLEANUP_EXPR): Likewise.
9031         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
9032         * expr.c (expand_expr): Tidy.
9033         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
9034         * tree-inline.c (initialize_inlined_parameters): Clean up
9035         new local variables.
9036
9037 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9038
9039         PR bootstrap/4128
9040         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
9041         before movrXX only, use reg_overlap_mentioned_p.
9042         Only special case NE if just one insn can be generated.
9043
9044 2002-03-15  Jason Merrill  <jason@redhat.com>
9045
9046         * varasm.c (assemble_variable): Call resolve_unique_section before
9047         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
9048         of error_mark_node.
9049
9050 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9051
9052         PR target/5170
9053         * arm.md (split pattern for thumb shiftable immediates): Add comment
9054         explaining non-obvious test.
9055
9056 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9057
9058         PR target/5712
9059         * arm.md (movaddr, movaddr_insn): Delete.
9060
9061 2002-03-15  Jason Merrill  <jason@redhat.com>
9062
9063         * toplev.c (wrapup_global_declarations): Clarify variable handling.
9064         -fkeep-static-consts doesn't apply to comdats.
9065
9066 2002-03-14  Richard Henderson  <rth@redhat.com>
9067
9068         * c-decl.c: Include c-pragma.h.
9069         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
9070         (finish_function): Tidy.
9071         * c-pragma.c: Include c-common.h.
9072         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
9073         (handle_pragma_weak): Use them.
9074         (init_pragma): Register pending_weaks.
9075         * c-pragma.h (maybe_apply_pragma_weak): Declare.
9076         * print-tree.c (print_node): Print DECL_WEAK.
9077         * varasm.c (mark_weak_decls): Remove.
9078         (remove_from_pending_weak_list): Remove.
9079         (add_weak): Remove.
9080         (asm_emit_uninitialised): Call globalize_decl for weak commons.
9081         (weak_decls): Make a tree_list.
9082         (declare_weak): Cons weak_decls directly.
9083         (globalize_decl): Remove weak_decls elements directly.
9084         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
9085         symbols.  Don't pretend to handle aliases.
9086         (init_varasm_once): Update weak_decls registry.
9087         * Makefile.in: Update dependencies.
9088
9089 2002-03-14  Richard Henderson  <rth@redhat.com>
9090
9091         PR target/5312
9092         * config/ia64/ia64.c: Include tm_p.h last.
9093         (gen_nop_type): Remove duplicate definition.
9094         (cycle_end_fill_slots): Set sched_data for second L slot.
9095         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
9096         (nop_cycles_until): Fix typos.
9097
9098 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9099
9100         PR optimization/5891
9101         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
9102
9103 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
9104
9105         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
9106           descriptors correctly.
9107
9108 2002-03-14  Michael Meissner  <meissner@redhat.com>
9109
9110         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
9111         100, allowing MAX_UNROLLED_INSNS to be overridden.
9112
9113         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
9114         --param.
9115
9116         * unroll.c (params.h): Include.
9117         (MAX_UNROLLED_INSNS): Delete, now in params.h.
9118
9119         * doc/invoke.texi (--param max-unroll-insns): Document.
9120
9121         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
9122
9123 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9124
9125         * arm.md: Fix warnings about constraints in peepholes and splits.
9126
9127 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
9128
9129         * cpphash.h (struct lexer_state): Remove line_extension member.
9130         * cpplib.c (dequote_string, do_linemarker): New functions.
9131         (linemarker_dir): New data object.
9132         (DIRECTIVE_TABLE): No longer need to interpret #line in
9133         preprocessed source.  Delete obsolete comment about return
9134         values of handlers.
9135         (end_directive, directive_diagnostics, _cpp_handle_directive):
9136         Don't muck with line_extension.
9137         (directive_diagnostics): No need to issue warnings for
9138         linemarkers here.
9139         (_cpp_handle_directive): Issue warnings for linemarkers here,
9140         when appropriate.  Dispatch linemarkers to do_linemarker, not
9141         do_line.
9142         (do_line): Code to handle linemarkers split out to do_linemarker.
9143         Convert escape sequences in filename argument, both places.
9144
9145         * cppmacro.c (quote_string): Rename cpp_quote_string and
9146         export.  All callers changed.
9147         * cpplib.h (cpp_quote_string): Prototype.
9148         * cppmain.c (print_line): Call cpp_quote_string on to_file
9149         before printing it.
9150
9151         * doc/cpp.texi: Document that escapes are now interpreted in
9152         #line and in linemarkers, and that non-printing characters are
9153         converted to octal escapes when linemarkers are generated.
9154
9155 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
9156
9157         * emit-rtl.c (try_split): Use delete_insns.
9158         * recog.c (split_all_insns): Fix terminating condition.
9159
9160 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9161             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9162
9163         PR target/5828
9164         * arm.c (arm_output_epilogue): Fix floating-point register save
9165         adjustment when using a frame pointer.
9166
9167 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
9168
9169         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
9170         * config/mips/mips.c (compute_frame_size): Retrofit them here.
9171         (save_restore_insns, mips_expand_epilogue): And here.
9172         (build_mips16_call_stub): And here.
9173         (mips_function_value): Use the new macros to decide whether a single
9174         or complex float can be returned in floating-point registers.  Return
9175         a parallel rtx in the complex case.
9176
9177 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9178
9179         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
9180         call after liveness analysis.
9181
9182         * recog.c (split_insn): Use delete_insn_and_edges.
9183
9184         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
9185         instructions to have branch prediction notes.
9186         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
9187
9188 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
9189
9190         * configure.in: Don't pass -Wno-long-long to a ADA compiler
9191         that doesn't support it.
9192         * configure: Regenerate.
9193
9194 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9195
9196         PR target/5626
9197         * config/sparc/sparc.md (normal_branch, inverted_branch,
9198         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
9199         inverted_fp_branch): Adjust calls to output_cbranch.
9200         Set length attribute.
9201         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
9202         output_v9branch.  Set length attribute.
9203         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
9204         predicates.
9205         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
9206         (output_cbranch): Likewise.  Handle far branches.
9207         (output_v9branch): Handle far branches.
9208         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
9209         Adjust prototypes.
9210         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
9211         noov_compare64_op predicates.
9212
9213 2002-03-13  Jason Merrill  <jason@redhat.com>
9214
9215         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
9216         into the function and constify it.
9217         * gthr-dce.h, gthr-solaris.h: Likewise.
9218
9219 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
9220
9221         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
9222         * config/rs6000/rs6000.c (rs6000_va_arg): Use
9223         std_expand_builtin_va_arg if not ABI_V4.
9224
9225 2002-03-13  Jason Merrill  <jason@redhat.com>
9226
9227         * varasm.c (globalize_decl): New fn.
9228         (assemble_start_function): Use it.
9229         (asm_emit_uninitialized): Use it.
9230         (assemble_alias): Use it.
9231         (assemble_variable): Use it.
9232
9233 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
9234
9235         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
9236         2002-03-12 internal visibility change.
9237         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
9238         visibility into SYMBOL_REF_FLAG.
9239
9240 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
9241
9242         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
9243         VOIDmode operand.  Add compile-time optimization for constant results.
9244
9245 2002-03-12  Jason Merrill  <jason@redhat.com>
9246
9247         * c-typeck.c (convert_for_assignment): Don't allow conversions
9248         between pointers and references.  Only allow lvalues to convert to
9249         reference.
9250
9251 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
9252
9253         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
9254         before prologue, to avoid scheduling problems.
9255
9256 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9257
9258         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
9259         (ELIMINABLE_REGS): Add sfp->sp.
9260         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
9261
9262 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9263
9264         PR optimization/5892
9265         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
9266
9267 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9268
9269         * loop.c (basic_induction_var): Don't call convert_modes if mode
9270         classes are different.
9271
9272 2002-03-12  Richard Henderson  <rth@redhat.com>
9273
9274         PR optimization/5901
9275         * function.c (reposition_prologue_and_epilogue_notes): Position
9276         the markers after/before the last/first insn not deleted.
9277
9278 2002-03-12  Richard Henderson  <rth@redhat.com>
9279
9280         PR optimization/5878
9281         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
9282         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
9283         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
9284
9285         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
9286         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
9287         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
9288
9289         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
9290         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
9291         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
9292         also.  Don't set it if not flag_pic.
9293         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
9294         to be INVALID_REGNUM when not used.
9295
9296 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
9297
9298         * expmed.c (store_bit_field): Reset alias set for memory.
9299         (extract_bit_field): Same.
9300
9301 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9302
9303         * c-common.c (c_tree_code_type, c_tree_code_length,
9304         c_tree_code_name, add_c_tree_codes): Delete.
9305         * c-common.h (add_c_tree_codes): Delete.
9306         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
9307         Define.
9308         * c-objc-common.c (c_objc_common_init): Don't call
9309         add_c_tree_codes, instead set lang_unsafe_for_reeval.
9310         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
9311         objc_tree_code_name, add_objc_tree_codes): Delete.
9312         (objc_init): Don't call add_objc_tree_codes.
9313         * objc/objc-lang.c (tree_code_type, tree_code_length,
9314         tree_code_name): Define.
9315         * toplev.c (lang_independent_init): Don't set
9316         tree_code_length[IDENTIFIER_NODE].
9317         * tree.c (tree_code_type, tree_code_length, tree_code_name):
9318         Delete definitions, moved to language front-ends.
9319         * tree.def (IDENTIFIER_NODE): Hardwire the length.
9320         * tree.h (tree_code_type, tree_code_length, tree_code_name):
9321         Const-ify.
9322         (tree_code_length): Change type to unsigned char.
9323
9324 2002-03-12  Richard Henderson  <rth@redhat.com>
9325
9326         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
9327         internal visibility change.
9328
9329 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9330
9331         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
9332         validize_mem() instead of change_address to avoid clobbering
9333         memory attributes.
9334
9335 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9336
9337         * c-lex.h (position_after_whitespace): Remove.
9338
9339 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
9340
9341         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
9342         (lex_string): Use unsigned char pointers.
9343
9344 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9345
9346         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
9347         is not a valid memory_operand.
9348
9349 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9350
9351         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
9352         * config/xtensa/lib1funcs.asm: Fix copyright to include
9353         special case for libgcc files.
9354         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
9355         (__divsi3): Likewise.
9356         (__umodsi3): Likewise.
9357         (__modsi3): Likewise.
9358         * config/xtensa/lib2funcs.S: Fix copyright to include
9359         special case for libgcc files.
9360
9361 2002-03-12  Tom Rix  <trix@redhat.com>
9362
9363         * collect2.c (resolve_lib_name): Move outside of
9364         OBJECT_FORMAT_COFF ifdef.
9365         (ignore_library): Same.
9366
9367 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9368
9369         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
9370
9371 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9372
9373         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
9374         to function_section before writing out the constant pool.
9375
9376 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
9377
9378         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
9379         zero_constant.
9380         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
9381
9382 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
9383
9384         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
9385         (adddi3): Likewise.
9386         (movdf): Likewise.
9387         (movdi): Likewise.
9388         (cmpsi splitter): Likewise.
9389         (modsi3): Fail if <= 0.
9390         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
9391         redundant test when HOST_BITS_PER_WIDE_INT != 32.
9392         (reg_or_sub_cint64_operand): Likewise.
9393         (num_insns_constant_wide): Optimize sign extension.
9394         (rs6000_legitimize_address): Likewise.
9395
9396 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9397
9398         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9399         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9400
9401 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9402
9403         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
9404         address calculation.
9405
9406 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9407
9408         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
9409         scratch register to DImode / TImode.
9410         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
9411         register used does not overlap the target.
9412
9413 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9414
9415         * Makefile.in (debug.o): Depend on debug.h.
9416         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
9417         * debug.c (do_nothing_debug_hooks): Likewise.
9418         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
9419         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
9420         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
9421         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9422         * dwarfout.c (dwarf_debug_hooks): Likewise.
9423         * integrate.c (output_inline_function): Likewise.
9424         * objc/objc-act.c (synth_module_prologue): Likewise.
9425         * sdbout.c (sdb_debug_hooks): Likewise.
9426         * toplev.c (debug_hooks): Likewise.
9427         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9428
9429 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9430
9431         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
9432         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
9433         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
9434         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
9435         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
9436         * defaults.h (POINTER_SIZE): Define.
9437         * doc/tm.texi (POINTER_SIZE): Document default.
9438
9439 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9440
9441         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
9442
9443 2002-03-11  Richard Henderson  <rth@redhat.com>
9444
9445         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
9446         if rebuild_label_notes_after_reload.
9447
9448 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
9449
9450         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
9451         emit pic register load if "internal" visibility.
9452         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
9453         (cris_expand_builtin_va_arg): Do all computations on trees.
9454
9455 2002-03-11  Richard Henderson  <rth@redhat.com>
9456
9457         * rtlanal.c: Include recog.h.
9458         (keep_with_call_p): Fix thinko.
9459         * Makefile.in (rtlanal.o): Update dependencies.
9460
9461 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
9462
9463         * genflags.c (gen_insn): Use IS_VSPACE.
9464         * genoutput.c (output_insn_data): Likewise.
9465         (process_template): Likewise.
9466
9467 2002-03-11  Richard Henderson  <rth@redhat.com>
9468
9469         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
9470
9471 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9472
9473         * Makefile.in: Update.
9474         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
9475         Update documentation.
9476         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
9477         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
9478
9479 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
9480
9481         * Makefile.in: Give texi2pod its input file as a command line
9482         argument, not on stdin.
9483
9484 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
9485             Daniel Berlin  <dan@dberlin.org>
9486
9487         C++ alias analysis improvement.
9488         * alias.c (record_component_aliases): Record aliases for base
9489         classes too.
9490
9491 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9492
9493         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
9494
9495 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
9496
9497         * toplev.c (vms_fopen): Remove, not needed.
9498
9499         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
9500
9501         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
9502
9503         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
9504         for FP, already done later.
9505
9506         * toplev.c (debug_args): Add entry for VMS_DEBUG.
9507         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
9508
9509 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
9510
9511         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
9512         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
9513         LARGEST_EXPONENT_IS_NORMAL for the given mode.
9514         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
9515         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
9516         (ediv, emul, eldexp, esqrt): Likewise.
9517         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
9518         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
9519         (saturate): New function.
9520         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
9521         (make_nan): Use a saturation value instead of a NaN if
9522         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
9523         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
9524         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
9525         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
9526         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
9527         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
9528         !ROUND_TOWARDS_ZERO.
9529         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
9530         (ROUND_TOWARDS_ZERO): Document.
9531
9532 2002-03-11  Andreas Jaeger  <aj@suse.de>
9533
9534         * cfg.c (dump_flow_info): Remove unused variable.
9535
9536 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
9537
9538         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
9539         computations on trees.
9540
9541 2002-03-10  Richard Henderson  <rth@redhat.com>
9542
9543         PR 5693:
9544         * reload.c (copy_replacements_1): New.
9545         (copy_replacements): Use it to recurse through the rtx.
9546
9547 2002-03-10  Richard Henderson  <rth@redhat.com>
9548
9549         * loop.c (strength_reduce): Compute number of iterations as
9550         unsigned HOST_WIDE_INT.
9551
9552 2002-03-10  Richard Henderson  <rth@redhat.com>
9553
9554         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
9555         to move away from the end of the block.
9556
9557 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9558
9559         PR preprocessor/5899
9560         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
9561
9562 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9563
9564         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
9565
9566         * attribs.c (decl_attributes): Fix signed/unsigned warning.
9567
9568 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
9569
9570         * config/mmix/mmix.c: Improve comments.
9571         (mmix_target_asm_function_prologue): Drop variable
9572         empty_stack_frame.  Don't allocate unused slot above fp.
9573         (mmix_target_asm_function_epilogue): Mirror prologue changes.
9574         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
9575         brace in first column.
9576         (enum reg_class): Ditto.
9577         (FIRST_PARM_OFFSET): Now 0.
9578         (USER_LABEL_PREFIX): Remove #if 0:d definition.
9579
9580 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9581
9582         * combine.c (make_extraction): Fix error in last change.
9583
9584 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9585
9586         * c4x.c (c4x_fp_reglist): Const-ify.
9587         * cris.c (cris_print_operand): Likewise.
9588         * i386.c (ix86_va_arg): Likewise.
9589         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
9590         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
9591         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
9592         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
9593         * mcore.h (regno_reg_class): Likewise.
9594         * mips.c (gen_int_relational): Likewise.
9595         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
9596         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
9597         * pdp11.c (move_costs): Likewise.
9598         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
9599         * s390.c (s390_branch_condition_mnemonic, regclass_map):
9600         Likewise.
9601         * s390.h (regclass_map): Likewise.
9602         * sh.c (shift_amounts): Likewise.
9603         * sh.md (rotlsi3): Likewise.
9604
9605 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
9606
9607         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
9608         (ne0+5): Use new clobber to generate proper shift pattern.
9609         Patch by Michael Matz <matz@kde.org>.
9610
9611 2002-03-09  Andreas Schwab  <schwab@suse.de>
9612
9613         * gcc.c (validate_all_switches): Also handle `%W{...}'.
9614
9615 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
9616
9617         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
9618
9619 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
9620
9621         PR middle-end/5877
9622         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
9623         even for non-representable constants.
9624
9625 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9626
9627         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
9628         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
9629         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
9630         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
9631         (pop_function_context): Compute MAY_SHARE parameter for
9632         fixup_var_refs.
9633         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
9634         (gen_mem_addressof): Call fixup_var_refs with new parm.
9635
9636         * combine.c (make_extraction): Don't make extension of CONST_INT.
9637
9638 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
9639
9640         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
9641         in o32 and o64 ABIs.
9642         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
9643         but getting fixed-size structs passed in registers regardless of
9644         padding in o32 and o64 ABIs.
9645
9646         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
9647         offset before loading address of argument passed by transparent
9648         reference.
9649
9650 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9651
9652         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
9653
9654 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
9655
9656         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
9657         marker such that registers after it are saved.
9658
9659 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9660
9661         * sparc.c (arith_4096_operand): Fix error in last change.
9662
9663 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9664
9665         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
9666         defaults for MEABI.
9667
9668 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9669
9670         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
9671         vectors.
9672
9673 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9674
9675         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
9676
9677 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
9678
9679         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
9680         removed; fix return value.
9681         * combine.c (combine_instructions): Dirtify blocks where we failed to
9682         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
9683         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
9684
9685 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9686
9687         * gcse.c (insert_insn_end_bb): Fix typo in last change.
9688
9689 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
9690
9691         * recog.c (peephole2_optimize): Re-distribute EH edges.
9692
9693 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9694
9695         * expr.c (expand_expr): Use unsave lang hook.
9696         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
9697         (LANG_HOOKS_INITIALIZER): Update.
9698         * langhooks.h (struct lang_hooks): New hook unsave.
9699         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
9700         (unsave_expr_1): Remove unused lang_unsave_expr_now.
9701         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
9702         (unsave_expr_now): Remove.
9703         * tree.h (unsave_expr_now, lang_unsave,
9704         lang_unsave_expr_now): Remove.
9705         (lhd_unsave): New.
9706
9707 2002-03-08  Andreas Jaeger  <aj@suse.de>
9708
9709         * flow.c (propagate_block_delete_insn): Remove unused variable.
9710
9711 2002-03-08  Kazu Hirata  <kazu@hxi.com>
9712
9713         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
9714         insn length for memory load/store.
9715
9716 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9717
9718         * doc/install.texi (--with-libiconv-prefix): Document.
9719
9720 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
9721
9722         * doc/sourcebuild.texi: Fix typo.
9723
9724 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
9725
9726         PR c/3711
9727         * builtins.c (std_expand_builtin_va_arg): Do all computations on
9728         trees.
9729
9730 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9731
9732         * rtl.c (copy_most_rtx): Move from here ...
9733         * emit-rtl.c (copy_most_rtx): ... to here.
9734
9735 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9736
9737         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
9738         SUBTARGET_CPP_SIZE_SPEC.
9739         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
9740
9741         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
9742
9743 2002-03-07  Matt Hiller  <hiller@redhat.com>
9744
9745         * gensupport.c (first_dir_md_include): Renamed from include;
9746         change all references.
9747         (last_dir_md_include): Renamed from last_include; change all
9748         references.
9749         (init_md_reader): Unconditionally initialize base_dir whether or
9750         not filename is a relative path.
9751
9752 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
9753
9754         * config/fp-bit.c (_unord_f2): Compile it in even if
9755         US_SOFTWARE_GOFAST is enabled.
9756
9757         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
9758         NULL_RTX.  Set all HFmode operations as NULL_RTX.
9759         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
9760         NULL_RTX, try reversing the comparison and the operands.
9761
9762 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9763
9764         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
9765         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
9766         and MATCH_OP_DUP.
9767
9768 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
9769
9770         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
9771
9772 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9773
9774         * basic-block.h (fixup_abnormal_edges): Declare.
9775         * reload1.c (fixup_abnormal_edges): New function.
9776         * reg-stack.c (convert_regs): Use it.
9777
9778         * gcse.c (insert_insn_end_bb): Handle trapping insns.
9779
9780         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
9781
9782 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
9783
9784         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
9785         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
9786         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
9787         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
9788         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
9789         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
9790         unless x and y could be infinite.
9791         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
9792         Check that the common type of both arguments is a real, even for
9793         targets without unordered comparisons.  Allow an integer argument
9794         to be compared against a real.
9795         (expand_tree_builtin): Use expand_unordered_cmp.
9796         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
9797         * cse.c (fold_rtx): Likewise.  Fix indentation.
9798         * fold-const.c (fold_real_zero_addition_p): New.
9799         (fold): Use it, and the new HONOR_... macros.
9800         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
9801         * jump.c (reversed_comparison_code_parts): After searching for
9802         the true comparison mode, use HONOR_NANS to decide whether it
9803         can be safely reversed.
9804         (reverse_condition_maybe_unordered): Remove IEEE check.
9805         * simplify-rtx.c (simplify_binary_operation): Use the new macros
9806         to decide which simplifications are valid.  Allow the following
9807         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
9808         and (a - -b) to (a + b).
9809         (simplify_relational_operation): Use HONOR_NANS.
9810         * doc/tm.texi: Document the MODE_HAS_... macros.
9811
9812 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
9813
9814         * combine.c (simplify_comparison): If simplifying a logical shift
9815         right and compare with constant, force the comparison to unsigned.
9816
9817 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
9818
9819         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
9820
9821         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
9822         -mabi=no-altivec
9823         (alt_reg_names): Remove % for vrsave.
9824
9825 2002-03-06  Richard Henderson  <rth@redhat.com>
9826
9827         PR optimization/5844
9828         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
9829         if used indicates we've already emitted one copy of an operand.
9830         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
9831         (gen_split): Supply a non-null used.
9832
9833 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9834
9835         * reload1.c (reload): Unshare all rtl after reload is done.
9836
9837         * simplify-rtx.c (simplify_plus_minus): Do not abort,
9838         but simply fail if the expression is too complex to simplify.
9839         (simplify_gen_binary): Handle simplify_plus_minus failures.
9840
9841 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
9842
9843         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
9844         consistently call delete_trivially_dead_insns after CSE and GCSE;
9845         fix DFI_life dumping; do jump threading after liveness; do crossjumping
9846         after liveness2; update comment in last crossjumping.
9847         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
9848
9849 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
9850
9851         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
9852         after completing fast dead code elimination.
9853
9854         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
9855         COMPARE operator.
9856
9857 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
9858
9859         * version.c:  Fix misplaced leading blanks on first line.
9860
9861 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
9862
9863         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
9864
9865 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
9866
9867         * cfgcleanup.c (mentions_nonequal_regs): New function.
9868         (thread_jump): Use it.
9869         * toplev.c (rest_of_compilation): Run jump threading after
9870         liveness.
9871
9872 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
9873
9874         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
9875         patch.
9876
9877 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9878
9879         * predict.c (estimate_bb_frequencies): Do not reload the
9880         frequencies from notes.
9881
9882 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
9883
9884         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
9885         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
9886
9887         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
9888         delete_noop_moves): Return indeger.
9889         * flow.c (ndead): New variable.
9890         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
9891         BB argument; update callers.
9892         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
9893         (life_analysis): Do not call purge_all_dead_edges.
9894         (update_life_info): Return number of deleted insns; print statistics.
9895         (update_life_info_in_dirty_blocks): likewise.
9896         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
9897         return number of insns deleted.
9898
9899         * cse.c: Include timevar.h
9900         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
9901         iterate until stabilizes; print statistics; return number of killed
9902         insns.
9903         * Makefile.in: (cse.o): Add timevar.h dependency
9904         * rtl.h (delete_trivially_dead_insns): New.
9905         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
9906         * toplev.c (rest_of_compilation): Update callers.
9907
9908         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
9909         (try_optimize_cfg): Do not update liveness.
9910         (cleanup-cfg): Loop until try_optimize_cfg and dead code
9911         removal stabilizes; use delete_trivially_dead_insns.
9912
9913         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
9914
9915 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
9916
9917         * cppmain.c (setup_callbacks): Disable #pragma and #ident
9918         callbacks when processing assembly language.
9919
9920 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9921
9922         * pa.h (ASM_FILE_END): Define.
9923         * som.h (ASM_FILE_END): Delete.
9924
9925         * pa.c (function_arg): Don't pass floats in general registers in
9926         indirect calls if TARGET_ELF32.
9927
9928 2002-03-05  Richard Henderson  <rth@redhat.com>
9929
9930         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
9931
9932 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
9933
9934         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
9935
9936 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9937
9938         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
9939         -r command line.  Don't hide any symbols if not building
9940         shared libgcc.
9941
9942 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
9943
9944         * cfg.c (dump_flow_info): Warn about profile mismatches.
9945         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
9946         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
9947
9948 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9949
9950         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
9951         wide volatile memory by parts.
9952
9953 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9954
9955         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
9956         is NULL.
9957
9958 2002-03-05  Richard Henderson  <rth@redhat.com>
9959
9960         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
9961
9962 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9963
9964         * toplev.c (documented_lang_options): Document more
9965         language-specific options.
9966         * doc/invoke.texi (Warning Options): Correct documentation for
9967         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
9968         * c-decl.c (c_decode_option): Use a table to handle warning options.
9969
9970 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
9971
9972         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
9973         parameter to mmix_encode_section_info.
9974         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
9975         relocatably.  Always produce ELF, not mmo if linking relocatably.
9976         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
9977         first is non-zero, don't add symbol prefix.
9978         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
9979         prototype accordingly.
9980
9981 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
9982
9983         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
9984
9985 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9986
9987         * configure.in: Increase required makeinfo version to 4.1.
9988         * configure: Regenerate.
9989
9990 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9991
9992         * .cvsignore: Remove *.info* and genrtl*; these files are generated
9993         elsewhere now.
9994
9995 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9996
9997         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
9998         * doc/invoke.texi: Fix @math uses.
9999
10000 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
10001
10002         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
10003         removal
10004
10005 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
10006
10007         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
10008         (powerpc-*-eabisimaltivec*): Same.
10009
10010         * config/rs6000/t-ppcendian: New.
10011
10012 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10013
10014         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
10015         nonimmediate_src_operand and nonimmediate_lsrc_operand to
10016         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
10017
10018 2002-03-03  Richard Henderson  <rth@redhat.com>
10019
10020         * toplev.c (rest_of_decl_compilation): Revert last two changes.
10021
10022 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
10023
10024         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
10025         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
10026         tree.c, config/m68k/m68k.c:
10027         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
10028         REAL_ARITHMETIC blocks unconditional.  Delete some further
10029         #ifdef blocks predicated on REAL_ARITHMETIC.
10030         * flags.h, toplev.c: Delete remaining references to
10031         flag_pretend_float.
10032
10033         * doc/invoke.texi: Remove documentation of -fpretend-float.
10034         * doc/tm.texi: Describe the various REAL_* macros as provided by
10035         real.h, not by the target configuration files.
10036
10037         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
10038         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
10039         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10040         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
10041         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
10042         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
10043         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
10044         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
10045         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
10046         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
10047         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
10048         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10049         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
10050         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
10051         config/xtensa/xtensa.h:
10052         Do not define, undefine, or mention in comments any of
10053         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
10054         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
10055         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
10056         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
10057         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
10058         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
10059         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
10060         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
10061         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
10062
10063 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10064
10065         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
10066         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
10067         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
10068         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
10069         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
10070         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
10071         Delete.
10072         * defaults.h (BITS_PER_WORD): Define.
10073         * doc/tm.texi (BITS_PER_WORD): Document default value.
10074
10075         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
10076         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
10077         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
10078
10079 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10080
10081         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
10082         lieu of explicit sizeof/sizeof.
10083         * i386.c (override_options, ix86_init_mmx_sse_builtins,
10084         ix86_expand_builtin): Likewise.
10085         * mips.c (mips_add_gc_roots): Likewise.
10086         * mmix.c (mmix_output_condition): Likewise.
10087         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
10088         altivec_init_builtins): Likewise.
10089         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
10090         * cppexp.c (Nsuff, parse_number): Likewise.
10091         * cppinit.c (builtin_array_end): Likewise.
10092         * gcc.c (n_default_compilers, process_command): Likewise.
10093         * genpreds.c (output_predicate_decls): Likewise.
10094         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
10095         * lcm.c (N_ENTITIES): Likewise.
10096         * stor-layout.c (set_sizetype): Likewise.
10097
10098 2002-03-03  Richard Henderson  <rth@redhat.com>
10099
10100         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
10101         for types or labels.
10102
10103 2002-03-03  Richard Henderson  <rth@redhat.com>
10104
10105         * c-decl.c (start_decl): Initialized variables are not common.
10106
10107 2002-03-02  Per Bothner  <per@bothner.com>
10108
10109         * gcc.c (option_map):  Suport new --bootclasspath option.
10110         --CLASSPATH is now just an alias for --classpath.
10111
10112 2002-03-02  Richard Henderson  <rth@redhat.com>
10113
10114         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
10115         load if "internal" visibility.
10116         * doc/extend.texi: Document visibility meanings.
10117
10118 2002-03-02  Richard Henderson  <rth@redhat.com>
10119
10120         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
10121         to functions as well.
10122
10123 2002-03-02  Richard Henderson  <rth@redhat.com>
10124
10125         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
10126         (handle_visibility_attribute): Don't call assemble_visibility.
10127         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
10128         without asmspec.  Invoke assemble_alias when needed.
10129         * varasm.c (maybe_assemble_visibility): New.
10130         (assemble_start_function, assemble_variable, assemble_alias): Use it.
10131
10132 2002-03-02  Richard Henderson  <rth@redhat.com>
10133
10134         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
10135         invoke ENCODE_SECTION_INFO with first call flag.
10136
10137         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
10138         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
10139         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
10140         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
10141         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10142         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10143         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
10144         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
10145         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
10146         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
10147         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10148         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
10149         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10150         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
10151         config/mcore/mcore-protos.h, config/mcore/mcore.c,
10152         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
10153         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
10154         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
10155         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
10156         config/sh/sh.h, config/sparc/sparc.h,
10157         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
10158         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
10159         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
10160         FIRST argument.  As needed, examine it and do nothing.
10161
10162         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
10163         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10164         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
10165
10166         * config/arm/t-pe (pe.o): Add dependencies.
10167
10168 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10169
10170         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
10171         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
10172         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
10173         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
10174         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
10175         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
10176         * defaults.h (BITS_PER_UNIT): Define.
10177         * doc/tm.texi (BITS_PER_UNIT): Document default value.
10178
10179 2002-03-02  Kazu Hirata  <kazu@hxi.com>
10180
10181         * config/h8300/h8300-protos.h: Add a prototype for
10182         compute_a_shift_length.
10183         * config/h8300/h8300.c (h8300_asm_insn_count): New.
10184         (compute_a_shift_length): Likewise.
10185         (h8300_adjust_insn_length): Do not adjust insn length of shift
10186         insns.
10187         * config/h8300/h8300.md (anonymous shift patterns): Use
10188         compute_a_shift_length.
10189
10190 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10191
10192         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
10193         trunc_int_for_mode.
10194
10195         * emit-rtl.c (offset_address): Call update_temp_slot_address.
10196
10197 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10198
10199         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
10200         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
10201         * flags.h (flag_zero_initialized_in_bss): Declare.
10202         * toplev.c (flag_zero_initialized_in_bss): New flag.
10203         (lang_independent_options): Add flag_zero_initialized_in_bss.
10204         * tree.c (initializer_zerop): New function.
10205         * tree.h (initializer_zerop): Declare.
10206         * varasm.c (assemble_variable): If we can emit bss, put zero
10207         initializers in the bss section.
10208
10209 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
10210
10211         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
10212         like more than one symbol per .weak directive.
10213
10214 2002-03-01  Richard Henderson  <rth@redhat.com>
10215
10216         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
10217         adjust argument_pointer by pretend_args_size.
10218         (ia64_va_start): Adjust va_start address by -pretend_args_size.
10219
10220 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10221
10222         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
10223
10224 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
10225
10226         * toplev.c (rest_of_compilation): Delete dead jumptables before
10227         loop.
10228         * flow.c (delete_dead_jumptables): Make global.
10229         * rtl.h (delete_dead_jumptables): Declare.
10230
10231 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
10232
10233         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
10234         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
10235         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
10236
10237 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10238
10239         * config/h8300/h8300-protos.h: Fix formatting.
10240         * config/h8300/h8300.c: Likewise.
10241         * config/h8300/h8300.h: Likewise.
10242
10243 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10244
10245         * config/h8300/h8300.c (print_operand): Support 16-bit
10246         constant addresses.
10247         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
10248
10249 2002-02-28  Richard Henderson  <rth@redhat.com>
10250
10251         * expmed.c (store_bit_field): Prevent generation of CONCATs;
10252         pun complex values as integers; use gen_lowpart instead of
10253         gen_rtx_SUBREG.
10254         (extract_bit_field): Likewise.
10255
10256 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
10257             David Edelsohn  <edelsohn@gnu.org>
10258
10259         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
10260         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
10261         (SUPPORTS_WEAK): Likewise.
10262         * output.h (add_weak): Add tree param.
10263         * varasm.c (add_weak): Likewise.  Save decl.
10264         (struct weak_syms): Add decl field.
10265         (mark_weak_decls): New function.
10266         (init_varasm_once): ggc_add_root mark_weak_decls.
10267         (assemble_start_function): Use ASM_WEAKEN_DECL.
10268         (assemble_variable): Likewise.
10269         (assemble_alias): Likewise.
10270         (declare_weak): Pass decl to add_weak.
10271         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
10272         (remove_from_pending_weak_list): Declare and define for
10273         ASM_WEAKEN_DECL.
10274         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
10275         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
10276         * defaults.h (SUPPORTS_WEAK): Likewise.
10277         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10278         .weak for code sym.  Do emit .size for descriptor sym.
10279         (ASM_DECLARE_FUNCTION_SIZE): Define.
10280         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
10281         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
10282         .lglobl unless TARGET_XCOFF.  Formatting fixes.
10283         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10284         .weak for code sym.
10285         (HANDLE_PRAGMA_WEAK): Remove.
10286         (ASM_WEAKEN_LABEL): Remove.
10287         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
10288
10289 2002-03-01  Jason Merrill  <jason@redhat.com>
10290
10291         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
10292         (TARGET_EXPR_CLEANUP): New macro.
10293
10294 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
10295
10296         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
10297         to take ptr_extend into account as third type of extension.
10298         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
10299         fields used by SUBREG_PROMOTED_UNSIGNED_P.
10300         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
10301         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
10302         * calls.c (precompute_arguments): Use new macro.
10303         (expand_call): Ditto.
10304         * combine.c (nonzero_bits): Ditto.
10305         (record_promoted_value): Ditto.
10306         * expr.c (store_expr): Ditto.
10307         (expand_expr): Ditto.
10308         * function.c (assign_parms): Ditto.
10309
10310 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
10311
10312         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
10313         override -shared and -shared-libgcc.
10314
10315 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
10316
10317         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
10318         of "ultrasparc".
10319         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
10320         to be broken.
10321
10322 2002-02-28  Richard Henderson  <rth@redhat.com>
10323
10324         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
10325         4 cycle latency from MM producers.
10326         (ia64_internal_sched_reorder): Likewise with pipeline flush.
10327
10328 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
10329
10330         * mklibgcc.in: Don't use GNU make extension.
10331
10332 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10333
10334         * c-parse.in (STATIC): New terminal.
10335         (scspec): New non-terminal.  Update productions accordingly.
10336         (program): Remove bogus ifc / end ifc.
10337         (array_declarator): Simplify production using STATIC.
10338
10339 2002-02-28  Jim Meyering  <meyering@lucent.com>
10340
10341         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
10342         \a still means TARGET_BELL.
10343
10344 2002-02-28  Richard Henderson  <rth@redhat.com>
10345
10346         * haifa-sched.c (sched_emit_insn): New.
10347         (schedule_block): Use last_scheduled_insn to track last insn.
10348         * sched-int.h (sched_emit_insn): Prototype.
10349         * config/ia64/ia64.c (last_issued): Remove.
10350         (ia64_variable_issue): Don't set it.
10351         (nop_cycles_until): Use sched_emit_insn.
10352
10353 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
10354
10355         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
10356         extended constants.
10357
10358 2002-02-28  Kazu Hirata  <kazu@hxi.com>
10359
10360         * config/h8300/h8300.c: Fix formatting.
10361         * config/h8300/h8300.h: Likewise.
10362
10363 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10364
10365         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
10366         which may overwrite the high byte of the frame pointer.
10367
10368 2002-02-28  Bo Thorsen  <bo@suse.de>
10369
10370         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
10371         (STARTFILE_SPEC): Add 64 bit files.
10372         (ENDFILE_SPEC): Likewise.
10373
10374 2002-02-28  Jason Merrill  <jason@redhat.com>
10375
10376         * c-decl.c (finish_function): Only warn about missing return
10377         statement with -Wreturn-type.
10378
10379 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10380
10381         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
10382
10383         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
10384         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
10385
10386 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10387
10388         * basic-block.h (BB_REACHABLE): Renumber.
10389         (BB_DIRTY, BB_NEW): New flags.
10390         (clear_bb_flags): Declare.
10391         (update_life_info_in_dirty_blocks): Declare.
10392         * cfg.c (clear_bb_flags): New function.
10393         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
10394         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
10395         reorder_insns, emit_insn_after): Mark block as dirty.
10396         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
10397         (update_life_info_in_dirty_blocks): New function.
10398         * recog.c (apply_change_group): Dirtify block.
10399
10400         * cse.c (cse_insn): Reorder emitting of jump insn to keep
10401         cfg consistent.
10402         * gcse.c (delete_null_pointer_checks): Likewise.
10403
10404         * toplev.c (dump_file_index): Move cse2 after bp,
10405         add DFI_null
10406         (dump_file_info): Similary.
10407         (rest_of_compilation): Avoid most of CFG rebuilds;
10408         do first if converision after null pointer checks, do cse2
10409         after branch prediction; avoid full liveness rebuild after
10410         initializing subregs.
10411         * invoke.texi (-d options): Document -du, renumber.
10412
10413         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
10414         (notice_new_block): Do not set BB_UPDATE_LIFE.
10415         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
10416          merge_blocks_move_successor_nojumps, merge_blocks,
10417          try_crossjump_to_edge): Likewise.
10418         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
10419         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
10420         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
10421         (merge_of_block): Do not use life_data_ok.
10422         (find_if_case_1): Do not use SET_UPDATE_LIFE.
10423         (if_convert): Use BB_DIRTY mechanizm to update life.
10424         * lcm.c (optimize_mode_switching): Update
10425         update_life_info_in_dirty_blocks
10426
10427 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10428
10429         * Makefile.in (integrate.o): Update.
10430         * c-decl.c (copy_lang_decl): Rename.
10431         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10432         * integrate.c: Include langhooks.h.
10433         (copy_decl_for_inlining): Update to use langhook.
10434         * langhooks-def.h (lhd_do_nothing_t,
10435         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
10436         (LANG_HOOKS_INITIALIZER): Update.
10437         * langhooks.c (lhd_do_nothing_t): New.
10438         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
10439         * tree.h (copy_lang_decl): Remove.
10440 objc:
10441         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10442
10443 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
10444
10445         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
10446         POST_DEC, and POST_MODIFY.
10447
10448 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10449
10450         * c-typeck.c (digest_init): Remove unused parameter; all
10451         callers changed.
10452
10453 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
10454
10455         * expmed.c (expand_shift): Correctly test for low part of a
10456         subreg.
10457
10458 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
10459
10460         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
10461         insn UIDs with insn addresses.
10462
10463 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10464
10465         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
10466         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
10467         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
10468         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
10469         gcc.c, toplev.c: Delete code implementing -traditional mode.
10470
10471         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
10472         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
10473         Document removal of -traditional mode for compilation, and
10474         remove documentation only relevant to that mode.
10475
10476         * config/nextstep.h, config/ptx4.h, config/svr4.h,
10477         config/convex/convex.h, config/d30v/d30v.h,
10478         config/i386/dgux.h, config/i386/osf1elf.h,
10479         config/i386/osfelf.h, config/i386/osfrose.h,
10480         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
10481         config/m68k/hp310.h, config/m88k/dgux.h,
10482         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
10483         config/m88k/m88k.h, config/m88k/openbsd.h,
10484         config/mips/abi64.h, config/mips/osfrose.h,
10485         config/mips/svr4-5.h, config/mips/svr4-t.h,
10486         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10487         config/stormy16/stormy16.h: Remove all references to
10488         -traditional from target specs.  Delete all mention of the
10489         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
10490         delete a couple of commented-out definitions of
10491         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
10492         to -traditional.
10493
10494         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
10495         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
10496
10497 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10498
10499         * mklibgcc.in: Don't use \n in a line subject to
10500         interpretation by echo.
10501
10502 2002-02-27  Graham Stott  <grahams@redhat.com>
10503
10504         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
10505         Constify NAME.
10506
10507         * loop.c (prescan_loop): Handle PARALLEL.
10508
10509         * unroll.c (loop_iterations): Return 0 if the add_val for
10510         a BIV is REG.
10511
10512         * final.c (output_operand_lossage): Constify PFX_STR.
10513
10514         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
10515
10516 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10517
10518         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
10519         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
10520
10521 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
10522
10523         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10524
10525 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10526
10527         * cpplex.c (_cpp_lex_token): Handle directives in macro
10528         arguments.
10529         * cpplib.c (_cpp_handle_directive): Save and restore state
10530         if parsing macro args when entering a directive.
10531         * cppmacro.c (collect_args): No need to handle directives
10532         in macro arguments.
10533         (enter_macro_context, replace_args): Use the original macro
10534         definition in case it was redefined whilst collecting arguments.
10535 doc:
10536         * cpp.texi: Update.
10537
10538 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
10539
10540         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
10541         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
10542         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
10543         method on AIX.
10544         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
10545         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
10546         (load_toc_v4_PIC_2): Same.
10547
10548 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
10549
10550         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
10551
10552 2002-02-26  Richard Henderson  <rth@redhat.com>
10553
10554         * config/alpha/alpha.md (ashldi_se): Re-enable.
10555
10556 2002-02-26  Richard Henderson  <rth@redhat.com>
10557
10558         * config/alpha/alpha.c (alpha_encode_section_info): Examine
10559         MODULE_LOCAL_P; improve commentary.
10560
10561 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
10562
10563         * doc/cpp.texi: Clarify documentation of relationship between
10564         #line and #include.
10565
10566 2002-02-26  Kazu Hirata  <kazu@hxi.com>
10567
10568         * config/h8300/h8300-protos.h: Update the prototype for
10569         compute_logical_op_length.  Add the prototype for
10570         compute_logical_op_cc.
10571         * config/h8300/h8300.c (compute_logical_op_length): Figure out
10572         code from operands.
10573         (compute_logical_op_cc): New.
10574         * config/h8300/h8300.md: Combine all the logical op patterns
10575         in HImode and SImode.  Use compute_logical_op_cc.
10576
10577 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
10578
10579         * config/i386/i386.c (print_operand): Don't append ATT-style
10580         length suffixs to x87 opcodes when in Intel mode.
10581
10582 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
10583
10584         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
10585         (init_emit_once): Update calls.
10586         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
10587         (init_syntax_once): Prototype.
10588
10589 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10590
10591         * pa-linux.h (LIB_SPEC): Update definition.
10592         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
10593
10594 2002-02-26  Richard Henderson  <rth@redhat.com>
10595
10596         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
10597         if we emitted a stop bit.
10598
10599 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10600
10601         * configure.in (libgcc_visibility): Substitute.
10602         * configure: Rebuilt.
10603         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
10604         defined symbols .hidden.
10605
10606 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10607
10608         * attribs.c (c_common_attribute_table): Add visibility.
10609         (handle_visibility_attribute): New function.
10610         * varasm.c (assemble_visibility): New function.
10611         * output.h (assemble_visibility): Add prototype.
10612         * tree.h (MODULE_LOCAL_P): Define.
10613         * crtstuff.c (__dso_handle): Use visibility attribute.
10614         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
10615         for MODULE_LOCAL_P symbols too.
10616         * config/ia64/ia64.c (ia64_encode_section_info): Handle
10617         MODULE_LOCAL_P symbols the same way as local symbols.
10618         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
10619         into .sdata/.sbss by the user.
10620         * doc/extend.texi (Function Attributes): Document visibility
10621         attribute.
10622
10623 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10624
10625         PR debug/5770
10626         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
10627         STRING_CST initializer spanning the whole variable without
10628         embedded zeros.
10629         If expand_expr returned MEM, don't use it.
10630
10631 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
10632
10633         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
10634         generate a die for the lexical block.
10635
10636 2002-02-26  Kazu Hirata  <kazu@hxi.com>
10637
10638         * config/h8300/h8300-protos.h: Add a prototype for
10639         compute_logical_op_length.
10640         * config/h8300/h8300.c (compute_logical_op_length): New.
10641         * config/h8300/h8300.md (anonymous logical patterns): Use
10642         compute_logical_op_length for length.
10643
10644 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10645
10646         * dwarf2out.c (modified_type_die): Do not call type_main_variant
10647         for vectors.
10648         (gen_type_die): Same.
10649
10650         * attribs.c (handle_vector_size_attribute): Set debug information.
10651
10652 2002-02-26  Daniel Egger  <degger@fhm.edu>
10653
10654         * config/rs6000/rs6000.md: Swap define_insn attributes to
10655         fix incorrect generation of merge high instructions instead
10656         of merge low.
10657
10658 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10659
10660         * c-typeck.c (really_start_incremental_init): Use
10661         bitsize_zero_node for vectors.
10662
10663 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10664
10665         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
10666         ("*set_vrsave_internal"): Same.
10667
10668 2002-02-25  Richard Henderson  <rth@redhat.com>
10669
10670         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
10671         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
10672
10673 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
10674
10675         PR target/5755
10676         * config/i386/i386.c (ix86_return_pops_args): Only pop
10677         fake structure return argument if it was passed on the stack.
10678
10679 2002-02-25  Jason Merrill  <jason@redhat.com>
10680
10681         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
10682         RESULT_DECL.
10683
10684 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10685
10686         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
10687         link with shared_name only.
10688         * doc/invoke.texi (Link Options): Document new behavior.
10689
10690 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10691
10692         * c-typeck.c (push_init_level): Handle vectors.
10693
10694 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10695
10696         * config/sparc/sparc.c (const64_high_operand): Zero-extend
10697         operands of SPARC_SETHI_P.
10698         (input_operand): Likewise.
10699         (sparc_emit_set_const32): Likewise.
10700         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
10701         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
10702         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
10703         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
10704         (movdi_insn_sp64_vis): Likewise.
10705         (movdi split, movdf split): Use SETHI32.
10706         * doc/md.texi: Document SPARC constraints L, M and N.
10707
10708 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10709
10710         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
10711         ("*set_vrsave_internal"): use mfspr for Darwin.
10712
10713         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
10714         gen_get_vrsave_internal.
10715
10716 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10717
10718         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
10719
10720 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10721
10722         * cpplex.c (cpp_interpret_charconst): Get signedness or
10723         otherwise of wide character constants correct.
10724         * cppexp.c (lex): Get signedness of wide charconsts correct.
10725
10726 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10727
10728         * optabs.c (widen_operand): Only call convert_modes for
10729         promoted SUBREG if signedness matches.
10730         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
10731
10732 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10733
10734         * cpplib.c (glue_header_name): Use local buffer to build up
10735         header name.
10736
10737 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10738
10739         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
10740
10741 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10742
10743         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
10744         H8/300[HS] separately.
10745         * config/h8300/h8300.md: Remove the early clobber constraint
10746         from bit field patterns.
10747
10748 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10749
10750         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
10751         register_operand.
10752         (mulhisi3): Likewise.
10753         (umulqisi3): Likewise.
10754         (umulhisi3): Likewise.
10755
10756 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10757
10758         * cppinit.c (output_deps): Correct test for stdout output.
10759         (init_dependency_output): Cure warning.
10760
10761 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10762
10763         * expr.c (store_expr): When converting expression to promoted
10764         equivalent type, allow using SUBREG_REG of TARGET as the target
10765         of the expansion of EXP.
10766         * loop.c (basic_induction_var, case SUBREG): Always look inside.
10767         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
10768         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
10769         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
10770         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
10771
10772 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10773
10774         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
10775         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
10776         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
10777
10778 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
10779
10780         PR optimization/5747
10781         * loop.c (scan_loop): Update reg info if move_movables created new
10782         pseudos.
10783
10784 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10785
10786         * gcc.c (init_gcc_spec): Revert last change.
10787
10788 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10789
10790         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
10791         gpc_reg_operand constraint.
10792
10793 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
10794
10795         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
10796         Simplify comparison of `low'.
10797         (add_operand): Fix formatting.
10798         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
10799         (mask_operand): Disallow mask to wrap in 64-bit mode.
10800         (rs6000_stack_info): Remove redundant test setting push_p.
10801         (output_toc): Fix formatting.
10802         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
10803         cc_reg_not_cr0_operand constraint.
10804         (booldi3, boolcdi3 splitters): Same.
10805
10806 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
10807
10808         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
10809
10810 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
10811
10812         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
10813         gcc invoked with -shared-libgcc.
10814
10815 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
10816
10817         PR c++/5748
10818         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
10819         decl if any of elements was TREE_USED.
10820
10821 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
10822
10823         * config/sparc/sol2.h: Don't include sys/mman.h.
10824         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
10825         (arith_4096_operand): Don't throw high bits away.
10826         (const64_operand): Take sign extension of CONST_INTs into account.
10827         (const64_high_operand, sparc_emit_set_const32): Likewise.
10828         (GEN_HIGHINT64): Likewise.
10829         (sparc_emit_set_const64_quick1): Likewise.
10830         (const64_is_2insns): Likewise.
10831         (print_operand): Use trunc_int_for_mode for sign extension.
10832         * config/sparc/sparc.h (SMALL_INT32): Likewise.
10833         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
10834         chars.  Assume CONST_INT is already properly sign-extended.
10835         (movdi split): Sign-extend each SImode part.
10836         (andsi3 split): Don't mask high bits off, so that result
10837         remains properly sign-extend.
10838         (iorsi3 split): Likewise.
10839         (xorsi3 split): Likewise.
10840
10841 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
10842
10843         * fold-const.c (fold): Fix typo in comments.
10844
10845 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10846
10847         * Makefile.in (langhooks.o): Update dependencies.
10848
10849 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10850
10851         * langhooks.c: Include flags.h.
10852
10853 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
10854
10855         * testsuite/gcc.dg/attr-alwaysinline.c: New.
10856
10857         * c-common.c (c_common_post_options): Set inline trees by
10858         default.
10859
10860         * doc/extend.texi (Function Attributes): Document always_inline
10861         attribute.
10862         Update documentation about inlining when not optimizing.
10863
10864         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
10865
10866         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
10867         unless DECL_ALWAYS_INLINE.
10868
10869         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
10870         unless DECL_ALWAYS_INLINE.
10871         (c_disregard_inline_limits): Disregard if always_inline set.
10872
10873         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
10874         Disregard if always_inline set.
10875         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
10876         unless DECL_ALWAYS_INLINE.
10877
10878         * attribs.c (handle_always_inline_attribute): New.
10879         (c_common_attribute_table): Add always_inline.
10880
10881         * config/rs6000/altivec.h: Add prototypes for builtins
10882         requiring the always_inline attribute.
10883
10884 2002-02-21  Eric Christopher  <echristo@redhat.com>
10885
10886         * expmed.c (store_bit_field): Try to simplify the subreg
10887         before generating a new one when when the mode size of
10888         value is less than maxmode.
10889
10890 2002-02-21  Richard Henderson  <rth@redhat.com>
10891
10892         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
10893         than gen_rtx_PLUS to form the sum.
10894         * explow.c (force_reg): Rearrange to not allocate new pseudo
10895         when force_operand returns a register.
10896         * expr.c (expand_assignment): Allow offset_rtx expansion to
10897         return a sum.  Do not force addresses into registers.
10898         (expand_expr): Likewise.
10899         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
10900         to canonicalize arithmetic that didn't simpify.
10901         (simplify_plus_minus): New argument force; update
10902         all callers.  Don't split CONST unless we can do something with it,
10903         and wouldn't lose the constness of the operands.
10904
10905         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
10906         that we generated earlier.
10907
10908 2002-02-21  Tom Tromey  <tromey@redhat.com>
10909
10910         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10911         (output_line_info): Use constant `1', with a long explanatory
10912         comment.
10913         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
10914
10915 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
10916
10917         * jump.c (redirect_jump): If old label has no UID, don't try to
10918         delete it.
10919
10920 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
10921
10922         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
10923         If input is constant, do shifts at compile time.
10924
10925 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10926
10927         * doc/extend.texi: Fix some more overfull hboxes.
10928
10929 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10930
10931         PR optimization/4994
10932         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
10933         register moves.
10934
10935 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10936
10937         PR c++/4574
10938         * expr.h (expand_and): Add mode argument.
10939         * expmed.c (expand_and): Add mode argument.
10940         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
10941         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
10942         * except.c (expand_builtin_extract_return_addr): Likewise.
10943         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10944         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10945         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
10946         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
10947         * config/c4x/c4x.md: Use GEN_INT (x) instead of
10948         gen_rtx (CONST_INT, VOIDmode, x).
10949
10950 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10951
10952         PR c/4697:
10953         * stmt.c (warn_if_unused_value): Move side effects test once more.
10954
10955 2002-02-20  Torbjorn Granlund  <tege@swox.com>
10956
10957         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
10958         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
10959
10960 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
10961
10962         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
10963         SUBREG or ZERO_EXTEND.
10964
10965 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
10966
10967         * sh.h (current_function_anonymous_args): Remove.
10968         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
10969         of current_function_varargs and current_function_stdarg is set.
10970         * sh.c (sh_expand_prologue): Check current_function_varargs /
10971         current_function_stdarg / TARGET_SH5 instead of
10972         current_function_anonymous_args.
10973
10974         * sh64.h (TARGET_VERSION): Define.
10975
10976 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
10977
10978         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
10979         VRSAVE_REGNO on TARGET_ALTIVEC.
10980
10981 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
10982
10983         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
10984         bits of SImode const_int.
10985         (includes_rshift_p): Likewise.
10986         (print_operand): Call mask_operand and mask64_operand with correct
10987         mode.
10988         (rs6000_output_function_epilogue): Pad traceback table to word.
10989         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
10990         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
10991         mask64_operand with correct mode.
10992         (FUNCTION_ARG_REGNO_P): Correct parentheses.
10993
10994 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10995
10996         PR debug/4461
10997         * varasm.c (get_pool_constant_mark): New.
10998         * rtl.h (get_pool_constant_mark): Add prototype.
10999         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
11000         be represented if it has not been output.
11001
11002 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11003
11004         * combine.c (do_SUBST): Sanity check substitutions of
11005         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
11006         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
11007         CONST_INT into its operand.
11008         (known_cond): Likewise, for ZERO_EXTEND.
11009         * simplify-rtx.c (simplify_unary_operation): Fix condition to
11010         allow for simplification of wide modes.  Reject CONST_INTs in
11011         ZERO_EXTEND when their actual mode is not given.
11012
11013 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11014
11015         * c-decl.c (pushdecl): If no global declaration is found for an
11016         extern declaration in block scope, try a limbo one.
11017
11018 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11019
11020         PR c++/4401
11021         * c-common.c (pointer_int_sum): Moved from...
11022         * c-typeck.c (pointer_int_sum): ...here.
11023         * c-common.h (pointer_int_sum): Add prototype.
11024
11025 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11026
11027         PR c++/5713
11028         * c-decl.c (duplicate_decls): Return 0 if issued error about
11029         redeclaration.
11030
11031 2002-02-20  Roger Sayle  <roger@eyesopen.com>
11032             Jakub Jelinek  <jakub@redhat.com>
11033
11034         PR c/4389
11035         * tree.c (host_integerp): Ensure that the constant integer is
11036         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
11037         when pos is zero or non-zero respectively.  Clarify comment.
11038         * c-format.c (check_format_info_recurse): Fix host_integerp
11039         usage; the pos argument should be zero when assigning to a
11040         signed HOST_WIDE_INT.
11041
11042 2002-02-20  Richard Henderson  <rth@redhat.com>
11043
11044         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
11045         of the operand, rather than assuming TImode.
11046         (ix86_expand_binop_builtin): Cope with commutative patterns
11047         using nonimmediate_operand for both operands.
11048         (ix86_expand_timode_binop_builtin): Likewise.
11049         (ix86_expand_store_builtin): Validate operand 1.
11050         (ix86_expand_unop1_builtin): Likewise.
11051
11052 2002-02-20  Philip Blundell  <philb@gnu.org>
11053
11054         PR 5705
11055         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
11056
11057 2002-02-20  Richard Henderson  <rth@redhat.com>
11058
11059         PR c/5615
11060         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
11061
11062 2002-02-20  Tom Tromey  <tromey@redhat.com>
11063
11064         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11065         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11066         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11067         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11068         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
11069         unconditionally.
11070
11071 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
11072
11073         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
11074           for (const_int 0) in X not just INTVAL.
11075
11076 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
11077
11078         * doc/extend.texi: Avoid or reduce overfull hboxes.
11079
11080 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
11081
11082         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
11083         operations if the field does not start at a mode boundary.
11084
11085 2001-02-20      Joel Sherrill <joel@OARcorp.com>
11086
11087         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
11088         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
11089         Also done for -Acpu and -Amachine.
11090
11091 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11092
11093         * cppinit.c (init_dependency_output): Take deps output file
11094         from -o if none given with -MF.  Suppress normal output.
11095         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
11096         * doc/cpp.texi, doc/invoke.texi: Update.
11097
11098 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11099
11100         * toplev.c (output_quoted_string): Write unprintable
11101         characters with octal escapes.
11102
11103 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11104
11105         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
11106         really_call_used[VRSAVE_REGNO] if not Altivec.
11107
11108 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
11109
11110         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
11111         MODE_MASK.
11112         (constant_pool_expr_1): Fix formatting.
11113         (rs6000_legitimize_reload_address): Likewise.
11114
11115 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11116
11117         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
11118         now that we have one.
11119
11120 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11121
11122         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
11123         end of first block of bitfields (which was only seven bits);
11124         rename dummy to unused_1; remove comment which is no longer true.
11125
11126 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11127
11128         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
11129
11130 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11131
11132         PR 5399
11133         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
11134         if generating PIC.
11135
11136         PR 5054
11137         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
11138         arm_is_longcall_p rather than inspecting call-type cookie
11139         directly.
11140         (call_value_insn) [TARGET_THUMB]: Likewise.
11141
11142 2002-02-19  Graham Stott  <grahams@redhat.com>
11143
11144         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
11145
11146 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11147
11148         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
11149         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
11150         (FP_SAVE_INLINE): Delete.
11151
11152         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
11153         * config/rs6000/eabi.asm: Remove ABI save restore routines.
11154         * config/rs6000/t-ppccomm: Build crtsavres.o.
11155         * config/rs6000/crtsavres.asm: New file.
11156
11157 2002-02-19  Philip Blundell  <philb@gnu.org>
11158
11159         * config/arm/arm.c (use_return_insn): Don't reject interrupt
11160         functions.
11161         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
11162         (output_return_instruction): Allow interrupt functions to return with
11163         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
11164         (arm_expand_prologue): Subtract 4 before stacking LR in an
11165         interrupt function.
11166
11167 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11168
11169         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
11170         decl, not just FUNCTION_DECL.
11171         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
11172         (arm_assemble_integer): Likewise.
11173         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
11174         marked local.
11175
11176 2002-02-19  matthew green  <mrg@eterna.com.au>
11177
11178         * config.gcc (sparc-*-netbsdelf*): Enable target.
11179         (sparc64-*-netbsd*): New target.
11180         * config/sparc/netbsd-elf.h: New file.
11181         * config/sparc/t-netbsd64: New file.
11182
11183 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11184
11185         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
11186
11187 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
11188
11189         * doc/invoke.texi: explicitly list the style guidelines that
11190         -Weffc++ checks for.
11191
11192 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
11193
11194         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
11195
11196 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11197
11198         PR other/5718
11199         * gcc.c (cpp_unique_options): Treat -o as indicating object file
11200         only if not -E.  If -E, pass -o through to the preprocessor.
11201
11202 2002-02-19  Kazu Hirata  <kazu@hxi.com>
11203
11204         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
11205         register number with an appropriate macro.
11206
11207 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11208
11209         * doc/rtl.texi (Constants): Close @code tag.
11210
11211 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
11212
11213         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
11214         ("mmx_uavgv4hi3"): Same.
11215         ("pmulhrwv4hi3"): Same.
11216
11217         * tree-inline.c (walk_tree): Handle vectors.
11218
11219         * c-common.c (constant_expression_warning): Handle vectors.
11220         (overflow_warning): Same.
11221
11222         * sched-deps.c (sched_analyze_2): Handle vectors.
11223
11224         * rtlanal.c (rtx_unstable_p): Handle vectors.
11225         (rtx_varies_p): Same.
11226         (count_occurrences): Same.
11227         (regs_set_between_p): Same.
11228         (modified_between_p): Same.
11229         (modified_in_p): Same.
11230         (volatile_insn_p): Same.
11231         (volatile_refs_p): Same.
11232         (side_effects_p): Same.
11233         (may_trap_p): Same.
11234         (inequality_comparisons_p): Same.
11235         (replace_regs): Same.
11236         (computed_jump_p_1): Same.
11237
11238         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
11239         argument.
11240         (inner_mode_array): New.
11241         (copy_rtx): Handle vectors.
11242         (copy_most_rtx): Same.
11243         (rtx_equal_p): Same.
11244         (get_mode_alignment): Adjust for vectors.
11245
11246         * resource.c (mark_referenced_resources): Handle vectors.
11247         (mark_set_resources): Same.
11248
11249         * reload1.c (eliminate_regs): Handle vectors.
11250         (elimination_effects): Same.
11251         (scan_paradoxical_subregs): Same.
11252
11253         * reload.c (subst_reg_equivs): Handle vectors.
11254
11255         * regrename.c (scan_rtx): Handle vectors.
11256
11257         * regclass.c (reg_scan_mark_refs): Handle vectors.
11258
11259         * recog.c (find_single_use_1): Handle vectors.
11260
11261         * local-alloc.c (equiv_init_varies_p): Handle vectors.
11262         (contains_replace_regs): Same.
11263         (memref_referenced_p): Same.
11264
11265         * integrate.c (copy_rtx_and_substitute): Handle vectors.
11266         (subst_constants): Same.
11267
11268         * genattrtab.c (attr_copy_rtx): Handle vectors.
11269         (encode_units_mask): Same.
11270         (clear_struct_flag): Same.
11271         (count_sub_rtxs): Same.
11272
11273         * gcse.c (want_to_gcse_p): Handle vectors.
11274         (oprs_unchanged_p): Same.
11275         (hash_expr_1): Same.
11276         (oprs_not_set_p): Same.
11277         (expr_killed_p): Same.
11278         (compute_transp): Same.
11279         (store_ops_ok): Same.
11280
11281         * function.c (purge_addressof_1): Do not allow paradoxical subregs
11282         of vectors.
11283         (fixup_var_refs_1): Same.
11284         (instantiate_virtual_regs_1): Same.
11285
11286         * fold-const.c (operand_equal_p): Handle vectors.
11287         (fold): Same.
11288         (rtl_expr_nonnegative_p): Same.
11289
11290         * flow.c (mark_used_regs): Handle vectors.
11291
11292         * df.c (df_uses_record): Handle vectors.
11293
11294         * cselib.c (cselib_subst_to_values): Handle vectors.
11295         (cselib_mem_conflict_p): Same.
11296         (hash_rtx): Same.
11297
11298         * cse.c (canon_reg): Handle vectors.
11299         (fold_rt): Same.
11300         (cse_process_notes): Same.
11301         (count_reg_usage): Same.
11302         (canon_hash): Same.
11303
11304         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
11305
11306         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
11307
11308         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
11309         (gen_rtx): Handle CONST_VECTOR.
11310         (gen_const_vector_0): New.
11311         (copy_rtx_if_shared): CONST_VECTORs can be shared.
11312         (reset_used_flags): Same.
11313         (copy_insn_1): Same.
11314         (initializer_constant_valid_p): Handle VECTOR_CST.
11315
11316         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
11317
11318         * doc/rtl.texi (Constants): Document const_vector.
11319         (CONST0_RTX): Update for vectors.
11320         (RTL sharing): Same.
11321
11322         * print-tree.c (print_node): Add case for VECTOR_CST.
11323
11324         * tree.h (TREE_VECTOR_CST_ELTS): New.
11325         (struct tree_vector): New.
11326         (union tree_node): Add vector node.
11327         (build_vector): Add prototype.
11328
11329         * tree.def (VECTOR_CST): New.
11330
11331         * tree.c (build_vector): New.
11332
11333         * expmed.c (make_tree): Handle CONST_VECTOR.
11334
11335         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
11336         (CONST_VECTOR_ELT): New.
11337         (CONST_VECTOR_NUNITS): New.
11338
11339         * machmode.h (GET_MODE_INNER): New.
11340         (DEF_MACHMODE): Accept 8th arg.
11341
11342         * machmode.def: Add 8th argument for vector inner mode.
11343         Add inner vector modes for vectors.
11344
11345         * rtl.def (VEC_CONST): Remove.
11346         (CONST_VECTOR): New.
11347
11348         * expr.c (clear_storage): Allow vectors.
11349         (is_zeros_p): Handle VECTOR_CST.
11350
11351         * varasm.c (output_constant_pool): Handle vectors.
11352         (rtx_const): Add veclo and vechi fields.
11353         (kind): Add RTX_VECTOR.
11354         (decode_rtx_const): Add case for vector.
11355
11356         * config/rs6000/rs6000-protos.h: Add zero_constant.
11357
11358         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
11359         constants.  Force easy vector constants into memory.
11360         (easy_vector_constant): New.
11361         (emit_easy_vector_constant): New.
11362         (rs6000_legitimize_reload_address): Do not generate bad reloads on
11363         darwin.
11364
11365         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
11366         instruction does.
11367         ("altivec_lvxl"): Same.
11368         (altivec_lvebx): Same.
11369         (altivec_lvehx): Same.
11370         (altivec_lvewx): Same.
11371         ("*movv4si_const0"): New.
11372         ("*movv4sf_const0"): New.
11373         ("*movv8hi_const0"): New.
11374         ("*movv16qi_const0"): New.
11375
11376 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11377
11378         * config/h8300/h8300.c (notice_update_cc): Use
11379         cc_status.value2.
11380
11381 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11382
11383         * config/h8300/h8300.md (divmod patterns): Change the
11384         constraints for operands[1] to register_operand.
11385
11386 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11387
11388         * config/h8300/h8300-protos.h: Remove the prototype for
11389         p_operand.
11390         * config/h8300/h8300.c (p_operand): Remove.
11391         * config/h8300/h8300.md: Replace p_operand with
11392         const_int_operand.
11393
11394 2002-02-18 Philip Blundell <pb@nexus.co.uk>
11395
11396         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
11397         comment.
11398         (output_return_instruction): Allow use of LDR to unstack
11399         return addresss even for interrupt handlers or when
11400         interworking.  If compiling for ARMv5, use interworking-safe
11401         return instructions by default.  Remove duplicated code and
11402         lengthy "strcat" sequences.
11403
11404 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11405
11406         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
11407         (LINK_EH_SPEC): Define.
11408         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
11409
11410 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11411
11412         * config/s390/s390.c (s390_emit_prologue): Do not set the
11413         frame_related flag for call-clobbered registers.
11414
11415 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11416
11417         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
11418         (construct_container): Fix handling of SSE operands.
11419         (ix86_expand_builtin): Fix handling of 64bit pointers.
11420         (mmx_maskmovq_rex): New pattern.
11421
11422 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11423
11424         * regrename.c (kill_set_value): Handle subregs properly.
11425
11426 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
11427
11428         * objc/objc-act.c (handle_impent): Remove leading '*'
11429         from objc_class_name.
11430
11431 2002-02-17  Richard Henderson  <rth@redhat.com>
11432
11433         * config/alpha/alpha.c (some_small_symbolic_operand,
11434         some_small_symbolic_operand_1, split_small_symbolic_operand,
11435         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
11436         Handle small SYMBOL_REFs anywhere, not just inside memories.
11437         * config/alpha/alpha-protos.h: Update.
11438         * config/alpha/alpha.h (PREDICATE_CODES): Update.
11439         * config/alpha/alpha.md (small symbolic operand splitter): Update.
11440
11441 2002-02-17  Roland McGrath  <roland@frob.com>
11442
11443         * config.gcc (powerpc-*-gnu-gnualtivec*,
11444         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
11445         * config/rs6000/gnu.h: New file.
11446         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
11447         Grok "gnu" in rs6000_abi_name.
11448         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
11449         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
11450         Grok -mcall-gnu analogous to -mcall-linux et al.
11451         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11452         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
11453         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
11454
11455 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
11456
11457         PR c/3444:
11458         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
11459         shortening.
11460
11461 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11462
11463         * config/cris/cris.h: Undefine STARTFILE_SPEC and
11464         ENDFILE_SPEC before (re)defining them.
11465
11466 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11467
11468         * config/h8300/h8300.c: Fix formatting.
11469         * config/h8300/h8300.h: Likewise.
11470
11471 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11472
11473         * doc/tm.texi: Explain why empty strings should not be
11474         marked for translation.
11475
11476 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11477
11478         * final.c (output_operand_lossage): Changed to accept
11479         printf style arguments. Change calls where necessary.
11480         * output.h (output_operand_lossage): Change declaration
11481         accordingly. Update copyright.
11482         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
11483         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
11484         Update copyright date where necessary.
11485
11486         * config/i386/i386.c (print_operand): Likewise. Remove use of
11487         sprintf.
11488
11489         * config/cris/cris.c (cris_operand_lossage): Likewise.
11490         Rename parameter so that exgettext recognizes it as
11491         translatable message.
11492         (LOSE_AND_RETURN): Rename parameter to msgid.
11493
11494 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11495
11496         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
11497         hard coded register number with an appropriate macro.
11498         (HARD_REGNO_MODE_OK): Likewise.
11499         (ARG_POINTER_REGNUM): Likewise.
11500         (STATIC_CHAIN_REGNUM): Likewise.
11501         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
11502         * config/h8300/h8300.md (define_constants): Define more
11503         register numbers.
11504
11505 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11506
11507         * config/i386/i386.h: Don't mark empty strings for translation.
11508
11509 2002-02-16  H.J. Lu <hjl@gnu.org>
11510
11511         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
11512
11513 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
11514
11515         * cppinit.c (merge_include_chains): Check for brack being
11516         NULL before attempting to merge it with qtail.
11517
11518 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
11519
11520         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
11521         DBX_DEBUG.
11522
11523 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11524
11525         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
11526
11527 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11528
11529         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
11530         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
11531         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
11532
11533 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11534
11535         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
11536         now only if !TARGET_FIX.
11537         (*movsi_nt_vms_fix): New pattern.
11538
11539 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
11540
11541         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
11542         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
11543         (alpha_sa_mask, alpha_sa_size): Reflect above change.
11544         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
11545         (alpha_start_function, alpha_expand_epilogue): Likewise.
11546         (unicosmk_gen_dsib): Likewise.
11547
11548 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11549
11550         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
11551
11552 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
11553
11554         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
11555         check_and_change_labels, s390_final_chunkify): Delete.
11556         (s390_split_branches, s390_chunkify_pool): New functions.
11557         (s390_function_prologue): Call them.
11558
11559         * config/s390/s390.h (S390_REL_MAX): Delete.
11560         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
11561
11562         * config/s390/s390.md (cjump, icjump, jump): Fix length
11563         attribute calculation.
11564
11565
11566 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
11567
11568         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
11569         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
11570
11571 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11572
11573         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
11574         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
11575         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
11576
11577 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
11578
11579         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
11580
11581 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
11582
11583         * reload.c (find_dummy_reload): Check that an output register
11584         is valid for its mode.
11585
11586 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
11587
11588         * combine.c (known_cond): After replacing the REG of a SUBREG, try
11589         to simplify it.
11590
11591         * function.c (assign_parms): Demote promoted argument passed by
11592         transparent reference.
11593
11594 2001-02-14      Joel Sherrill <joel@OARcorp.com>
11595
11596         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
11597         -Acpu() and -Amachine() to eliminate warnings.
11598
11599 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
11600
11601         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
11602
11603 2002-02-14  Kazu Hirata  <kazu@hxi.com>
11604
11605         * config/h8300/h8300-protos.h: Update the prototype for
11606         const_costs.
11607         * config/h8300/h8300.c (const_costs): Treat SET as a little
11608         more expensive operation.
11609         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
11610         reference to const_costs.
11611
11612 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
11613
11614         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
11615
11616 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
11617
11618         PR c/5503:
11619         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
11620         use arguments from newtype.
11621
11622 2002-02-13  Eric Christopher  <echristo@redhat.com>
11623
11624         * config/mips/mips.c (override_options): Add check for march/mipsX
11625         on the same command line. Fix error message in cpu processing.
11626         Remove architecture and ISA checks.
11627
11628 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
11629
11630         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
11631
11632         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
11633
11634 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
11635
11636         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
11637         alternatives.
11638         ("*movv8hi_internal1"): Same.
11639         ("*movv16qi_internal1"): Same.
11640         ("*movv4sf_internal1"): Same.
11641
11642         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
11643         not push_reload for altivec modes.
11644
11645 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
11646
11647         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
11648         all RTEMS targets including removal of #includes from config/*/rtems*.h
11649         file and adding them to tm_file setting. Added xm_defines=POSIX to
11650         many targets.
11651         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
11652         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
11653         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
11654         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
11655         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
11656         config/m68k/rtemself.h: Ditto.
11657         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
11658         config/mips/rtems64.h: Ditto.
11659         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
11660         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
11661         Ditto.
11662         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
11663         config/sparc/rtemself.h: Ditto.
11664         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
11665         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
11666         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
11667         more like arm-elf.
11668         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
11669         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
11670         target made more similar to i386-elf.
11671         * config/i386/t-rtems-i386: Added soft float support and multilibs.
11672         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
11673         be similar to config/m68k/t-m68kelf.
11674         * gthr-rtems.h: Encapsulate with extern "C" for C++.
11675
11676 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
11677
11678         * regmove.c (kill_value): Handle subregs.
11679
11680 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11681
11682         * i386.md (mul patterns): Allow memory operand to be first;
11683         add expanders where needed; fix constraints.
11684         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
11685         Allow memory operand to be the first.
11686
11687         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
11688         operands.
11689
11690 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11691
11692         PR c/5681:
11693         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
11694         GET_MODE (x).
11695
11696 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11697
11698         PR optimization/5547:
11699         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
11700         all valid IA-32 address modes involving non-scaled %ebx and
11701         GOT/GOTOFF as displacement.
11702
11703 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11704
11705         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
11706         after emitting ltorg insns.
11707
11708         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
11709         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
11710         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
11711         *abssf2): Fix "op_type" attribute.
11712
11713 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
11714
11715         * mkconfig.sh: Avoid using a subshell redirect.
11716         ($output.T): Change to $(output)T.
11717         (ENABLE_NLS): Remove unneeded undef.
11718
11719         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
11720         * config/alpha/x-vms (libsubdir): Define.
11721
11722         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
11723         register frame procedures. Optimize retrieving context.
11724
11725         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
11726         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
11727         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
11728
11729 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11730
11731         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
11732         Make same change as for find_base_value.
11733
11734 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11735
11736         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
11737         of QImode and SImode.
11738
11739 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11740
11741         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
11742         length computation of movsi.
11743         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
11744
11745 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11746
11747         * config/h8300/h8300.md (subqi3): Tighten the predicate for
11748         operands[2] to register_operand.
11749
11750 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
11751
11752         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
11753
11754 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
11755
11756         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
11757         for altivec_lvx* and altivec_stvx*.
11758         ("*movv4si_internal"): Add constraint for loading from GPRs.
11759         ("*movv8hi_internal1"): Same.
11760         ("*movv16qi_internal1"): Same.
11761         ("*movv4sf_internal1"): Same.
11762
11763         * config/rs6000/rs6000.c (altivec_register_operand): New.
11764
11765         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11766         altivec_register_operand.
11767
11768 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
11769
11770         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
11771         handle SYMBOL_REF.
11772
11773 2002-02-13  Stan Shebs  <shebs@apple.com>
11774
11775         * c-typeck.c (digest_init): Handle vectors.
11776         (really_start_incremental_init): Same.
11777         (pop_init_level): Same.
11778         (process_init_element): Same.
11779
11780         * varasm.c (output_constant): Same.
11781
11782         * expr.c (clear_storage): Same.
11783         (store_constructor): Same.
11784
11785 2002-02-12  Eric Christopher  <echristo@redhat.com>
11786
11787         * explow.c (hard_function_value): Add comment explaining
11788         signed/unsigned comparison.
11789
11790 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
11791
11792         * jump.c (never_reached_warning): Add finish argument.
11793         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
11794         real insn after end.
11795         * rtl.h (never_reached_warning): Adjust prototype.
11796         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
11797         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
11798         never_reached_warning.
11799
11800 2002-02-12  Graham Stott  <grahams@redhat.com>
11801
11802         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
11803
11804 2002-02-12  Kazu Hirata  <kazu@hxi.com>
11805
11806         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
11807         logical shifts on H8/300.
11808         (shift_alg_si): Improve several shifts on H8/300.
11809         (get_shift_alg): Likewise.
11810
11811 2002-02-12  Graham Stott  <grahams@redhat.com>
11812
11813         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
11814
11815 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11816
11817         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
11818         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
11819
11820 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
11821
11822         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
11823         non-CONST_INT through default_assemble_integer.
11824         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
11825         <case 8>: Abort for CONST_DOUBLE.
11826
11827 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11828
11829         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
11830         is specified.
11831         * config/pa/pa-linux.h (LIB_SPEC): Delete.
11832         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11833
11834 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
11835
11836         * config/stormy16/stormy16.md (zero_extendqihi2): New.
11837
11838 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
11839
11840         * regrename.c (regrename_optimize): Don't accept a
11841         part-clobbered register if the replaced register is not part
11842         clobbered.
11843
11844         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
11845         take padding into account when computing the argument value.
11846
11847         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
11848
11849         * combine.c (try_combine): Apply substitutions in
11850         CALL_INSN_FUNCTION_USAGE too.
11851
11852 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
11853
11854         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
11855         __builtin_altivec_abs*.
11856         (bdesc_abs): New.
11857
11858         * config/rs6000/rs6000.h (rs6000_builtins): Add
11859         ALTIVEC_BUILTIN_ABS*.
11860
11861         * config/rs6000/altivec.h: Use const char for builtins expecting
11862         literals.
11863         (vec_abs): New versions for C and C++.
11864         (vec_abss): Same.
11865
11866 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11867
11868         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
11869         using Pmode.
11870
11871 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11872
11873         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
11874         constant definition from h8300.md.
11875         (FRAME_POINTER_REGNUM): Likewise.
11876         * config/h8300/h8300.md (define_constants): Add FP_REG.
11877
11878 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11879
11880         * config/h8300/h8300.c (print_operand): Remove redundant code.
11881
11882 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11883
11884         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
11885         * config/h8300/h8300.c (byte_reg): Make it static.
11886
11887 2002-02-10  Richard Henderson  <rth@redhat.com>
11888
11889         PR c/5623
11890         * c-typeck.c (incomplete_type_error): Handle flexible array members.
11891
11892 2002-02-10  Richard Henderson  <rth@redhat.com>
11893
11894         PR c++/5624
11895         * tree.c (append_random_chars): Don't abort if main_input_filename
11896         does not exist.
11897
11898 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
11899
11900         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
11901
11902 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11903
11904         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
11905         (pushhi1): Likewise.
11906
11907 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11908
11909         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
11910         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
11911
11912 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
11913
11914         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
11915         remove MASK_VIS.
11916         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
11917
11918 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11919
11920         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
11921         a half of an SImode register on H8/300.
11922
11923 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
11924
11925         * i386.md (movdi_2): Add missing '!'.
11926
11927 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11928
11929         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
11930         definitions.
11931
11932 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11933
11934         * config/h8300/h8300.md (length): Correct the distance valid
11935         for the short branch.
11936
11937 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11938
11939         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
11940
11941 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11942
11943         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
11944         registers in SImode.
11945         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
11946         part-clobbered.
11947
11948         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
11949         patch.
11950
11951         Contribute sh64-elf.
11952         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11953         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
11954         (sh_cannot_modify_jumps_p): New function.
11955         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11956         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
11957         (sh_ms_bitfield_layout_p): New function.
11958         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
11959                     Zack Weinberg  <zack@codesourcery.com>
11960         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
11961         expand_simple_binop instead of expand_binop.
11962         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
11963         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
11964         use of .quad and .uaquad.
11965         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
11966         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
11967         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11968         * config/sh/sh.md (movdi_const, movdi_const_32bit,
11969         movdi_const_16bit): Make sure all CONSTs have modes.
11970         (sym2PIC): Ditto, but by adjusting all callers.
11971         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
11972         if the prologue calls the SHmedia argument decoder or register
11973         saver.
11974         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11975         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
11976         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
11977         (sh_expand_epilogue): Don't emit USE of return target register.
11978         (prepare_move_operands): Legitimize DImode PIC addresses.
11979         (sh_media_register_for_return): Skip tr0, used to initialize the
11980         PIC register.
11981         (sh_expand_prologue): Remove explicit USE of return register.
11982         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
11983         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
11984         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
11985         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
11986         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
11987         EXTRA_CONSTRAINT_T.
11988         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
11989         (MOVI_SHORI_BASE_OPERAND_P): New.
11990         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
11991         (EXTRA_CONSTRAINT_T): Define in terms of them.
11992         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
11993         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
11994         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
11995         alternatives supporting TARGET_REGS.
11996         (UNSPEC_GOTPLT): New constant.
11997         (movdi split): Move incrementing of LABEL_NUSES...
11998         (movdi_const, movdi_const_32bit): Here.  Use
11999         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
12000         (movdi_const_16bit): New.
12001         (call, call_value) [flag_pic]: Use GOTPLT.
12002         (call_pop, call_value_pop): New expands.
12003         (call_pop_compact, call_pop_rettramp): New insns.
12004         (call_value_pop_compact, call_value_pop_rettramp): New insns.
12005         (sibcall) [flag_pic]: Use GOT.
12006         (builtint_setjmp_receiver): Remove bogus, unused expand.
12007         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
12008         (*pt, *ptb, ptrel): New insns.
12009         (sym2GOT): Handle DImode GOT.
12010         (sym2GOTPLT, symGOTPLT2reg): New expands.
12011         (sym2PIC): New expand.
12012         (shcompact_return_tramp): Use GOTPLT to return trampoline.
12013         (shcompact_return_tramp_i): Use return register explicitly.
12014         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
12015         disable flag_reorder_blocks.
12016         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
12017         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
12018         clobbers, for clarity.
12019         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
12020         restoring of r0 in macl as MAYBE_DEAD.
12021         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
12022         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
12023         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
12024         alter_subreg all over.
12025         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
12026         reload, instead of emitting instructions that would require
12027         reloading.
12028         (casesi_load_media): Add missing modes.
12029         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
12030         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
12031         as used if the argument decoder is called.
12032         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12033         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
12034         Pmode, then extend it to DImode if necessary.
12035         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12036         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
12037         constants in FPU-enabled SHmedia, let them be loaded from memory.
12038         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12039         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
12040         Adjust whitespace in assembly output templates.
12041         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12042         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
12043         mode of if_then_else.
12044         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
12045         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
12046         sh.h.
12047         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
12048                     Joern Rennecke <amylaar@redhat.com>
12049         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
12050         (SUBTARGET_CPP_PTR_SPEC): New.
12051         (SUBTARGET_CPP_SPEC): Remove.
12052         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12053         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12054         Fix typo in previous checkin.
12055         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
12056         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
12057         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
12058                     Alexandre Oliva  <aoliva@redhat.com>
12059         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
12060         what single FP register can hold for SHmedia target.
12061         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12062                     Alexandre Oliva  <aoliva@redhat.com>
12063         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12064         Do not split into SUBREG.
12065         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
12066         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
12067         and added new functions as specified in SH5 ABI r9.
12068         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
12069         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
12070         8-byte boundary.
12071         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
12072         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
12073         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
12074         and consttable_window_ends.
12075         2001-06-03  Graham Stott  <grahams@redhat,com>
12076         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
12077         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
12078         * config/sh/sh.c (print_operand): Handle floating-point pair,
12079         vector and matrix registers.
12080         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
12081         vector modes into account.
12082         * config/sh/sh.md (movv2sf): Split move between registers into
12083         movdf.
12084         (movv4sf, movv16sf): Introduce insns that get split only after
12085         reload.
12086         * config/sh/shmedia.h: Fix Copyright dates.
12087         * config/sh/ushmedia.h: Likewise.  Move loop counter
12088         declarations into conditionals that uses them.
12089         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
12090         loop boundary.
12091         * config/sh/sshmedia.h: Fix Copyright dates.
12092         (sh_media_PUTCFG): Fix constraints.
12093         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
12094         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
12095         ptrmemfunc_vbit_in_delta for SH5.
12096         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
12097         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
12098         * invoke.texi: Likewise.
12099         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
12100         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
12101         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
12102         GCC_pop_shmedia_regs_nofpu): New global symbols.
12103         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
12104         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
12105         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
12106         compact function with nonlocal labels.
12107         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
12108         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
12109         (initial_elimination_offset): Account for their stack space.
12110         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
12111         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
12112         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
12113         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
12114         least one of the operands to be a register.
12115         (movv2sf): Likewise.  Renamed to movv2sf_i.
12116         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
12117         prepare_move_operands() before emitting SHmedia insns.
12118         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
12119         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
12120         Don't save nor initialize r12.  Don't mis-align the stack.
12121         Pad the code with a nop.
12122         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
12123         stack.
12124         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
12125         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
12126         [__SHMEDIA__]: Implement.
12127         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
12128         * config/sh/sh.md: Set latency of `pt' closer to reality.
12129         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
12130         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
12131         Set move, load and store type attributes.
12132         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
12133         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
12134         profiling.
12135         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
12136         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
12137         * config/sh/sh.c (sh_media_register_for_return): New function.
12138         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
12139         branch-target register.
12140         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
12141         * config/sh/sh.md (return_media_i): Use any call-clobbered
12142         branch-target register.
12143         (return_media): If r18 wasn't copied in the prologue, copy it
12144         here.
12145         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
12146         Clear class FP0_REGS.
12147         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
12148         from elf.h.
12149         2001-03-08  DJ Delorie  <dj@redhat.com>
12150         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
12151         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
12152         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
12153         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
12154         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
12155         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
12156         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
12157         return value correctly for call_cookie.
12158         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
12159         * config/sh/crt1.asm (start): Modified so as to call
12160         ___setup_argv_and_call_main.
12161         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
12162         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
12163         SHmedia mode.
12164         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
12165         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
12166         (STRIP_NAME_ENCODING): Use it.
12167         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
12168         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
12169         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
12170         prepare_scc_operands().
12171         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
12172         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
12173         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
12174         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
12175         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
12176         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
12177         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
12178         used in shcompact_incoming_args.
12179         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
12180         change.
12181         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
12182         mode.
12183         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
12184         Adjust accordingly.
12185         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12186         Simplify.  Adjust.  Add sanity check.
12187         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
12188         FPU_SINGLE_BIT.
12189         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
12190         TARGET_SHCOMPACT.
12191         (udivsi3, divsi3): Use them.
12192         (force_mode_for_call): New insn.
12193         (call, call_value, sibcall_value): Emit it before SHcompact
12194         calls.
12195         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
12196         * config/sh/sh.md (call, call_value, sibcall): Make sure the
12197         call cookie is non-NULL before taking its value.
12198         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
12199         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
12200         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
12201         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
12202         block.
12203         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
12204         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
12205         temporary for stack adjusts.  Use MACL and MACH to pass
12206         arguments to shcompact_incoming_args.
12207         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
12208         clobber r1.
12209         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
12210         (nested_trampoline): Load static chain address into r1.
12211         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
12212         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
12213         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
12214         fp_arith_reg_operand().
12215         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
12216         * config/sh/sh.md (casesi): Sign-extend the first two operands,
12217         and use signed compares for them.
12218         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
12219         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
12220         ones properly aligned.
12221         (find_barrier): Account for extra alignment needed for 8-byte wide
12222         constants.
12223         (machine_dependent_reorg): Require a label for the second 4-byte
12224         constant after an 8-byte one.
12225         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
12226         change.
12227         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12228         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
12229         last_float when switching float modes.
12230         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
12231         auto-increment for general-purpose registers.
12232         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
12233         result.
12234         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
12235         for stack adjust.
12236         * config/sh/sh.c (sh_builtin_saveregs): Support using all
12237         registers for varargs.
12238         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
12239         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
12240         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
12241         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
12242         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
12243         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
12244         call_cookie accordingly.
12245         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
12246         (SHCOMPACT_BYREF): Likewise.
12247         (SHCOMPACT_FORCE_ON_STACK): New macro.
12248         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
12249         (sh_builtin_saveregs): Likewise.
12250         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12251         shcompact_incoming_args): Use new shift values.  Support
12252         sequences of consecutive and non-consecutive pushes/pops.
12253         * config/sh/sh.md (return): Don't explicitly use PR_REG.
12254         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
12255         * config/sh/sh.h (TEXT_SECTION): Define.
12256         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
12257         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12258         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
12259         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
12260         return values on FPU-enabled SHmedia.
12261         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
12262         FPU-enabled SHmedia.
12263         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
12264         value is returned in a non-FP reg and is not returned by
12265         reference.
12266         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
12267         jump_ind.
12268         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
12269         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
12270         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
12271         quad-aligned to be passed by callee-copy reference.
12272         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
12273         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
12274         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
12275         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
12276         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
12277         copying low-numbered FP regs to r7 and r8.
12278         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
12279         FP regs to general-purpose regs only if the copy was passed on the
12280         stack.
12281         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
12282         copying FP reg to r9.
12283         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
12284         copy FP regs to general-purpose regs only in outgoing calls.
12285         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
12286         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
12287         HOST_WIDE_INT.
12288         * config/sh/sh.h (struct sh_args): Document all fields.
12289         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
12290         passed partially on the stack should not consider making
12291         sibcalls.
12292         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
12293         stack_regs only for incoming calls.  When passing FP args,
12294         make sure there are FP regs available before modifying
12295         call_cookie.
12296         (SHCOMPACT_BYREF): Pass double args in general-purpose
12297         registers by reference.
12298         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
12299         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
12300         attempt to generate sibcalls if the caller got any arguments
12301         by reference.
12302         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
12303         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
12304         to 8-byte boundaries.
12305         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
12306         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
12307         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
12308         stored in the stack.
12309         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
12310         for the offsets to have the ISA bit set.
12311         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
12312         invocation.  Use beq instead of bgt to mark end of sequence of
12313         loads.
12314         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
12315         bgt to mark end of sequence of stores.
12316         * config/sh/sh.c (arith_operand): Don't check whether
12317         CONST_OK_FOR_J for now.
12318         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
12319         instead of long for conversion.
12320         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
12321         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
12322         before passing it to fprintf.
12323         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
12324         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
12325         Call set_fpscr before reading/writing SR.
12326         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
12327         Call set_fpscr.
12328         * config/sh/lib1funcs.asm: Add `.align 2' directives before
12329         SHmedia code.
12330         (FMOVD_WORKS): Define on SH5 with FPU.
12331         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
12332         setting.
12333         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
12334         _fpscr_values.
12335         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
12336         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
12337         address.
12338         (ia_main_table): Ditto.
12339         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
12340         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
12341         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
12342         the definitions from sh.h.
12343         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
12344         TARGET_SH5.
12345         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
12346         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
12347         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12348         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
12349         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
12350         Increment LABEL_NUSES.
12351
12352         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
12353         TARGET_SH5.
12354         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
12355         defined.
12356         * config/sh/elf.h (SIZE_TYPE): Likewise.
12357         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12358         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12359         shcompact_incoming_args): Load switch table addresses using
12360         datalabel.
12361         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12362         (NO_BUILTIN_SIZE_TYPE): Define.
12363         (SIZE_TYPE): Don't define.
12364         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12365         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
12366         definition of __SH5__=32 for -m5-compact-nofpu.
12367         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
12368         ADDR_DIFF_VEC.
12369         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
12370         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
12371         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
12372         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
12373         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
12374         (INSN_LENGTH_ALIGNMENT): Likewise.
12375         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12376         * config/sh/sh.md (call, call_value, sibcall): Simplify
12377         copying of non-branch-target register.
12378         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12379         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
12380         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
12381         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12382         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
12383         floating-point values as structs.
12384         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
12385         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
12386         general-purpose register.
12387         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
12388         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12389         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
12390         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
12391         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
12392         (ENCODE_SECTION_INFO): Enclose variables and constants in
12393         DATALABEL unspecs.
12394         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
12395         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
12396         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
12397         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
12398         only for LABEL_REFs.  For SYMBOL_REFs, prepend
12399         SH_DATALABEL_ENCODING to the symbol name.
12400         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
12401         convert_mode().
12402         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12403         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
12404         UNSPEC_DATALABEL.
12405         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
12406         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
12407         (DATALABEL_REF_P): Don't require CONST.
12408         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
12409         REL label.
12410         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
12411         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
12412         right.
12413         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12414         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
12415         Use shallow_copy_rtx and PUT_MODE to change the mode of
12416         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
12417         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
12418         on SHmedia using GENERAL_REGs.
12419         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12420         bltu_media_i): Fix reversion of conditions.
12421         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12422         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
12423         * config/sh/sh.c (output_far_jump): Save r13 in macl.
12424         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
12425         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
12426         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
12427         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
12428         (GCC_nested_trampoline): Likewise.
12429         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
12430         * config/sh/sh.c (gen_datalabel_ref): Define.
12431         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
12432         (INITIALIZE_TRAMPOLINE): Likewise.
12433         (TRAMPOLINE_ADJUST_ADDRESS): Define.
12434         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
12435         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
12436         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
12437         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
12438         (ic_invalidate): Adjust for SH5.
12439         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
12440         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
12441         _nested_trampoline.
12442         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
12443         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
12444         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
12445         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12446         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
12447         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
12448         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12449         * config/sh/sh.c (target_reg_operand): Match only target-branch
12450         registers and pseudos that aren't virtual registers.
12451         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12452         Copy operands that don't match target_reg_operand to pseudos.
12453         (call_media, call_value_media, sibcall_media): Use
12454         target_reg_operand instead of target_operand.
12455         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
12456         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
12457         * config/sh/sh.c (target_reg_operand): Match hardware registers
12458         other than branch-target registers.
12459         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
12460         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
12461         (fpscr_values) [SH5 == 32]: Define.
12462         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
12463         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12464         Handle function addresses coming in SUBREGs.
12465         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
12466         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12467         shcompact_return_trampoline): Use datalabel where appropriate.
12468         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
12469         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
12470         general-purpose register to copy one branch-target register to
12471         another.
12472         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12473         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
12474         SYMBOL_REFs with VOIDmode.
12475         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12476         bltu_media_i): New insns.
12477         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12478         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
12479         (INIT_CUMULATIVE_ARGS): Likewise.
12480         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
12481         * machmode.def (V16SFmode): New mode.
12482         * c-common.c (type_for_mode): Support V2SF and V16SF.
12483         * tree.c (build_common_tree_nodes_2): Likewise.
12484         * tree.h (tree_index): Likewise.
12485         * calls.c (emit_call_1): Take args_so_far.  Adjust all
12486         callers.  Introduce CALL_POPS_ARGS.
12487         * tm.texi (CALL_POPS_ARGS): Document.
12488         * config/sh/crt1.asm: Implement in SHmedia mode.
12489         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
12490         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
12491         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
12492         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
12493         Implement divsi and udivsi in SHmedia mode.  Introduce
12494         SHcompact trampolines.
12495         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
12496         only in SHmedia64.
12497         (regno_reg_class): Rewrite.
12498         (fp_reg_names): Remove.
12499         (sh_register_names, sh_additional_register_names): New.
12500         (print_operand): Added `u'.  Support SUBREGs in addresses.
12501         Add parentheses around shifted CONSTs.
12502         (output_file_start): Output .mode and .abi directives.
12503         (shiftcosts, addsubcosts, multcosts): Adjust.
12504         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
12505         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
12506         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
12507         bytes, not registers.  Take into account the need for the
12508         SHcompact incoming args trampoline.  Adjust all callers.
12509         (sh_expand_prologue): Take stack_regs into account.  Call
12510         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
12511         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
12512         stack aligned as per SH5 ABI.
12513         (sh_builtin_saveregs): Support SH5 ABI.
12514         (sh_build_va_list, sh_va_start): Likewise.
12515         (initial_elimination_offset): Take alignment into account.
12516         Compute location of PR according to the SH5 stack frame.
12517         (arith_reg_operand): Reject branch-target registers.
12518         (shmedia_6bit_operand): New.
12519         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
12520         (target_reg_operand): Match DImode only.  Accept SUBREGs.
12521         (target_operand): New.
12522         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
12523         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
12524         SIBCALL_REGS for SHmedia.
12525         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
12526         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
12527         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
12528         (TARGET_SWITCHES): New SH5 flags.
12529         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
12530         VALID_REGISTER_P to disable unsupported registers.
12531         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
12532         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
12533         (FUNCTION_ARG_PADDING): Define.
12534         (FASTEST_ALIGNMENT): Adjust.
12535         (SH_REGISTER_NAMES_INITIALIZER): New.
12536         (sh_register_names): Declare.
12537         (DEBUG_REGISTER_NAMES): Define.
12538         (REGISTER_NAMES): Define based on sh_register_names.
12539         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
12540         (sh_additional_register_names): Declare.
12541         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
12542         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
12543         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
12544         (REGISTER_NATURAL_MODE): Define.
12545         (FIRST_PSEUDO_REGISTER): Adjust.
12546         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
12547         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
12548         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
12549         (VECTOR_MODE_SUPPORTED_P): Define.
12550         (REG_CLASS_CONTENTS): Adjust.
12551         (SMALL_REGISTER_CLASSES): Adjust.
12552         (REG_ALLOC_ORDER): Adjust.
12553         (INDEX_REG_CLASS): Adjust.
12554         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
12555         (CONST_OK_FOR_LETTER_P): Adjust.
12556         (PREFERRED_RELOAD_CLASS): Adjust.
12557         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
12558         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
12559         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
12560         (FIRST_FP_PARM_REG): Adjust.
12561         (CALL_POPS_ARGS): Define.
12562         (FUNCTION_ARG_REGNO_P): Adjust.
12563         (struct sh_args): New fields.
12564         (GET_SH_ARG_CLASS): Adjust.
12565         (INIT_CUMULATIVE_ARGS): Adjust.
12566         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
12567         (FUNCTION_ARG_ADVANCE): Adjust.
12568         (FUNCTION_ARG): Adjust.
12569         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
12570         (FUNCTION_ARG_CALLEE_COPIES): Define.
12571         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
12572         (STRICT_ARGUMENT_NAMING): Define.
12573         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
12574         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
12575         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
12576         (SETUP_INCOMING_VARARGS): Adjust.
12577         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
12578         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
12579         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
12580         (SUBREG_OK_FOR_INDEX_P): Adjust.
12581         (EXTRA_CONSTRAINT_S): Update.
12582         (EXTRA_CONSTRAINT_T): New.
12583         (EXTRA_CONSTRAINT): Adjust.
12584         (GO_IF_LEGITIMATE_INDEX): Adjust.
12585         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
12586         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
12587         (MOVE_MAX): Adjust.
12588         (MAX_MOVE_MAX): Define.
12589         (Pmode): Adjust.
12590         (CONST_COSTS): Adjust.
12591         (REGISTER_MOVE_COST): Adjust.
12592         (BRANCH_COST): Adjust.
12593         (TEXT_SECTION_ASM_OP): Adjust.
12594         (DBX_REGISTER_NUMBER): Adjust.
12595         (ASM_OUTPUT_DOUBLE_INT): New.
12596         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
12597         (PREDICATE_CODES): Adjust.
12598         (PROMOTE_MODE): Adjust.
12599         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
12600         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
12601         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
12602         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
12603         (DR0_REG, DR2_REG, DR4_REG): Renumber.
12604         (TR0_REG, TR1_REG, TR2_REG): New.
12605         (XD0_REG): Renumber.
12606         (UNSPEC_COMPACT_ARGS): New.
12607         (type): Added pt and ptabs.
12608         (length): Default to 4 on SHmedia.  Default pt length to 12
12609         and     20 on SHmedia32 and SHmedia64, respectively.
12610         (pt): New function unit.
12611         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
12612         Add whitespace between operands of SHmedia instructions.
12613         (movdicc): Fix.
12614         (adddi3_media, addsi3_media): Adjust constraints.
12615         (subsi3) [SHmedia]: Force operand 1 into a register.
12616         (udivsi3_i1_media, udivsi3_i4_media): New.
12617         (udivsi3): Support SHmedia.
12618         (divsi3_i1_media, divsi3_i4_media): New.
12619         (divsi3): Support SHmedia.
12620         (anddi3, iordi3, xordi3): Adjust constraints.
12621         (zero_extendhidi2, zero_extendqidi2): New.
12622         (extendsidi2, extendhidi2, extendqidi2): New.
12623         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
12624         (pop_e, pop_fpul, pop_4): Likewise.
12625         (movsi_media): Support FP and BT registers.
12626         (movsi_media_nofpu): New.  Adjust splits to DImode.
12627         (lduw, ldub): Renamed to zero_extend* above.
12628         (movqi_media): Fix typo.
12629         (movdi_media): Support FP and BT registers.
12630         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
12631         (movdi_const_32bit): New.
12632         (shori_media): Require immediate operand.  Use `u' for output.
12633         (movdf_media, movsf_media): Simplified.
12634         (movdf_media_nofpu, movsf_media_nofpu): New.
12635         (movdf, movsf): Adjust
12636         (movv2sf, movv2sf, movv16sf): New.
12637         (beq_media, beq_media_i): Adjust constraints.  Don't use
12638         scratch BT register.
12639         (bne_media, bne_media_i): Likewise.
12640         (bgt_media, bgt_media_i): Likewise.
12641         (bge_media, bge_media_i): Likewise.
12642         (bgtu_media, bgtu_media_i): Likewise.
12643         (bgeu_media, bgeu_media_i): Likewise.
12644         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
12645         bunordered): Emit jump insn.  Force operands to registers when
12646         needed.
12647         (jump_media, jump): Simplify.
12648         (call_compact, call_compact_rettramp): New.
12649         (call_value_compact, call_value_compact_rettramp): New.
12650         (call_media, call_value_media): Simplify.
12651         (sibcall_compact, sibcall_media): New.
12652         (call, call_value): Adjust for SHmedia and SHcompact.
12653         (sibcall, sibcall_value, untyped_call): Likewise.
12654         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
12655         (indirect_jump): Adjust for SHmedia.
12656         (casesi_jump_media): New.
12657         (nop): Re-enable for SHmedia.
12658         (call_site): Restrict to SH1.
12659         (casesi): Adjust for SHmedia.
12660         (casesi_shift_media, casesi_load_media): New.
12661         (return): Explicitly use PR register.  Call return trampoline
12662         on SHcompact.
12663         (return_i): Explicitly use PR register.
12664         (shcompact_return_tramp, shcompact_return_tramp_i): New.
12665         (return_media): Adjust.
12666         (shcompact_incoming_args): New.
12667         (epilogue): Adjust.
12668         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12669         (movstrsi): Disable on SH5.
12670         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
12671         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
12672         (subsf3, subsf3_media): Likewise.
12673         (mulsf3, mulsf3_media, mac_media): Likewise.
12674         (divsf3, divsf3_media): Likewise.
12675         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
12676         (floatsisf2, fux_truncsfsi2): Likewise.
12677         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
12678         constraints.
12679         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
12680         (cmpunsf_media, cmpsf): Likewise.
12681         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
12682         (abssf2, abssf2_media): Likewise.
12683         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
12684         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
12685         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
12686         (floatsidf2, fix_truncdfsi2): Likewise.
12687         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
12688         constraints.
12689         (cmpeqdf_media, cmpgtdf_media): Likewise.
12690         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
12691         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
12692         (absdf2, absdf2_media): Likewise.
12693         (extendsfdf2, extendsfdf2_media): Likewise.
12694         (truncsfdf2, truncsfdf2_media): Likewise.
12695         * config/sh/sh64.h: New file.
12696         * config/sh/t-sh64: New file.
12697         * config/sh/shmedia.h: New file.
12698         * config/sh/ushmedia.h: New file.
12699         * config/sh/sshmedia.h: New file.
12700         * configure.in: Added sh64-*-elf.
12701         * configure: Rebuilt.
12702         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
12703         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
12704         (reg_class_from_letter): Use `b' for TARGET_REGS.
12705         (print_operand): Support `%M', `%m', `AND' and
12706         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
12707         (andcosts): Adjust for SHmedia.
12708         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
12709         Likewise.
12710         (target_reg_operand): New function.
12711         * config/sh/sh-protos.h (target_reg_operand): Declare.
12712         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
12713         FP registers on SH5.
12714         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
12715         on SH4.
12716         (TARGET_REGISTER_P): New macro.
12717         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
12718         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
12719         (EXTRA_CONSTRAINT_S): New macro.
12720         (EXTRA_CONSTRAINT): Adjust.
12721         (FLOAT_TYPE_SIZE): Define to 32.
12722         (Pmode): DImode on SHmedia.
12723         (CONST_COSTS): Adjust for SHmedia literals.
12724         (PREDICATE_CODES): Added target_reg_operand.
12725         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
12726         * config/sh/sh.md: Remove all attrs from SHmedia insns.
12727         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
12728         (cmpdi): Accept SHmedia.
12729         (movdicc_false, movdicc_true): New insns.
12730         (movdicc): New expand.
12731         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
12732         no_new_pseudos.
12733         (addsi3_media): Match `S' constraint.
12734         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
12735         (negdi2): Expand for SHmedia.
12736         (one_cmpldi2): New expand.
12737         (zero_extendsidi2): Change from expand to insn.
12738         (extendsidi2): Add constraints.
12739         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
12740         LD/ST address.  Fix SI immediate loading split.
12741         (movhi_media, movqi_media, lduw, ldub): New insns.
12742         (movhi, movqi): Accept SHmedia.
12743         (shori_media, movdi_media): Relax input constraints.  Split
12744         symbolic constants.
12745         (movdf_media, movsf_media): New insn.  New split to movdi.
12746         (movdf, movsf): Match on SHmedia.
12747         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
12748         bgeu_media): New insns and splits.  New insns with `_i' suffix.
12749         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
12750         (bunordered): New expand.
12751         (jump_compact): Renamed from `jump'.
12752         (jump_media): New insn.
12753         (jump): New expand.
12754         (call_media, call_value_media): New insns.
12755         (call, call_value): Adjust.
12756         (indirect_jump_compact): Renamed from `indirect_jump'.
12757         (indirect_jump_media): New insn.
12758         (indirect_jump): New expand.
12759         (untyped_call, return): Accept SHmedia.
12760         (return_media): New insn.
12761         (prologue, epilogue, blockage): Accept SHmedia.
12762         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12763         (sunordered): New expand.
12764         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
12765         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
12766         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
12767         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
12768         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
12769         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
12770         abssf2_media): New insns.
12771         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
12772         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
12773         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
12774         floatdidf2, floatsidf2_media, fix_truncdfdi2,
12775         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
12776         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
12777         absdf2_media): New insns.
12778         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
12779         (extendsfdf2_media, truncdfsf2_media): New insns.
12780         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
12781         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
12782         * config/sh/sh.h (CONST_OK_FOR_J): Document.
12783         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
12784         * config/sh/sh.md (adddi3): New expand.
12785         (adddi3_media, adddi3z_media): New insns.
12786         (adddi3_compact): Renamed from adddi3.
12787         (addsi3_media): Use add.l r63 to add constant zero.
12788         (subdi3): New expand.
12789         (subdi3_media): New insn.
12790         (subdi3_compact): Renamed from subdi3.
12791         (mulsidi3): New expand.
12792         (mulsidi3_media): New insn.
12793         (mulsidi3_compact): Renamed from mulsidi3.
12794         (umulsidi3): New expand.
12795         (umulsidi3_media): New insn.
12796         (umulsidi3_compact): Renamed from umulsidi3.
12797         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
12798         (ashlsi3, ashrsi3, lshrsi3): Use them.
12799         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
12800         (ashldi3, ashrdi3, lshrdi3): Use them.
12801         (zero_extendsidi2): New expand.
12802         (extendsidi2): New insn.
12803         (movsi_media): New insn.  Split to movdi to load constants.
12804         (movsi): Enable for shmedia.
12805         (movdi_media): New insn.  Use shori_media to load wide constants.
12806         (short_media): New insn.
12807         (movdi): Enable for shmedia.
12808         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
12809         * config/sh/sh.h (CPP_SPEC): Added `m5'.
12810         (SUBTARGET_CPP_SPEC): Added `!m5'.
12811         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
12812         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
12813         to all other SH variants.
12814         (TARGET_DEFAULT): Set to SH1_BIT.
12815         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
12816         (BITS_PER_WORD): Raise to 64 on shmedia.
12817         (MAX_BITS_PER_WORD): Change to 64.
12818         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
12819         (INT_TYPE_SIZE): Keep as 32.
12820         (UNITS_PER_WORD): Raise to 8 on shmedia.
12821         (MIN_UNITS_PER_WORD): Keep as 4.
12822         (POINTER_SIZE): Raise to 64 on shmedia.
12823         (CONST_OK_FOR_J): New macro.
12824         (CONST_OK_FOR_LETTER_P): Use it.
12825         (processor_type): Add PROCESSOR_SH5.
12826         * config/sh/sh.md: Conditionalize all expands, insns and
12827         splits to TARGET_SH1.
12828         (cpu): Added sh5.
12829         (addsi3_compact): Renamed from...
12830         (addsi3): Now an expand.
12831         (addsi3_media, subsi3_media): New insns.
12832         (subsi3): Don't negate constants with SHmedia.
12833
12834         * hooks.c: New file.
12835         * hooks.h: New file.
12836         * Makefile.in (HOOKS_H): New.
12837         (TARGET_DEF_H): Added $(HOOKS_H).
12838         (OBJS): Added hooks.o.
12839         (cfgcleanup.o, bb-reorder.o): Added target.h.
12840         (hooks.o): Added dependencies.
12841         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
12842         (TARGET_INITIALIZER): this.
12843         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
12844         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
12845         * bb-reorder.c: Include target.h.
12846         (reorder_basic_blocks): Skip if cannot modify jumps.
12847         * cfgcleanup.c: Include target.h.
12848         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
12849
12850 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12851
12852         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12853         Protect jump delay slot instructions with .set noreorder and
12854         .set nomacro.
12855
12856 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12857
12858         * config/mips/mips.md (casesi_internal_di): Calculate
12859         the index into the target offset table correctly.
12860
12861 2002-02-08  Richard Henderson  <rth@redhat.com>
12862
12863         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
12864         * final.c (output_addr_const): Accept and discard SUBREG.
12865         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
12866         mark them unknown instead.
12867         (simplify_subtraction): Handle RTX_UNKNOWN.
12868         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
12869
12870 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
12871
12872         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
12873
12874 2002-02-08  Richard Henderson  <rth@redhat.com>
12875
12876         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
12877
12878 2002-02-08  Andreas Jaeger  <aj@suse.de>
12879
12880         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
12881         * config/i386/t-linux64: New file.
12882
12883 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
12884
12885         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
12886         * c-parse.in (compstmt): Clear last_expr_type.
12887
12888 2002-02-07  Richard Henderson  <rth@redhat.com>
12889
12890         * loop.c (strength_reduce): Sink final_value when not
12891         eliminating a biv.
12892
12893 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
12894
12895         * config/sparc/freebsd.h: Fix mismatched spec {.
12896
12897 2002-02-07  Richard Henderson  <rth@redhat.com>
12898
12899         * cfgrtl.c: Include recog.h and insn-config.h.
12900         (keep_with_call_p): Fix general_operand invocation.
12901         * Makefile.in (cfgrtl.o): Update dependencies.
12902
12903 2002-02-07  Kazu Hirata  <kazu@hxi.com>
12904
12905         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
12906         comment.  Accept HImode only if TARGET_H8300.
12907
12908 2002-02-07  Eric Christopher  <echristo@redhat.com>
12909
12910         * config/mips/crtn.asm: Cleanup #ifdefs.
12911
12912 2002-02-07  Eric Christopher  <echristo@redhat.com>
12913
12914         * config/mips/crti.asm: Add changes for mips16. mips16 uses
12915         register 7 as RA instead of $31.
12916         * config/mips/crtn.asm: Ditto.
12917         * config/mips/mips.c (mips_move_2words): Add case for
12918         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
12919         (compute_frame_size): Fix typo.
12920         (save_restore_insns): Ditto.  Make documentation about using
12921         register $7 as return register more precise.
12922         (mips_expand_epilogue): Fix comment. Add code to work around not
12923         being able to add to the stack pointer directly.
12924         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
12925         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
12926         epilogue.
12927
12928 2002-02-07  Tom Rix  <trix@redhat.com>
12929
12930         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
12931         immediates in ldu and stdu DS opcode field.
12932         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
12933         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
12934         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
12935
12936 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
12937
12938         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
12939         offset for stack bias.
12940
12941 2002-02-07  H.J. Lu <hjl@gnu.org>
12942
12943         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
12944
12945 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
12946
12947         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
12948
12949 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
12950
12951         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
12952         * i386.c (x86_order_regs_for_local_alloc): New global function.
12953         * i386.h (REG_ALLOC_ORDER): CLeanup.
12954         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
12955
12956 2002-02-07  Richard Henderson  <rth@redhat.com>
12957
12958         PR optimization/2463
12959         * alias.c (find_base_value): Recall base values for fixed hard regs.
12960         * loop.c (loop_regs_update): Don't use single_set on non-insns.
12961
12962 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
12963
12964         * config/mips/mips.md (define_delay) [mips16]: Adjust required
12965         length.
12966
12967 2002-02-06  Richard Henderson  <rth@redhat.com>
12968
12969         PR c/5609
12970         * stmt.c (resolve_operand_name_1): Take more care with mixed
12971         named and unnamed operands.
12972
12973 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
12974             Jan Hubicka  <jh@suse.cz>
12975
12976         * loop.c (remove_constant_addition): Avoid clobbering a shared
12977         CONST expression.
12978
12979 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12980
12981         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
12982         * config/s390/t-linux64: New file.
12983         * config/s390/libgcc-glibc.ver: New file.
12984
12985 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12986
12987         * config/s390/linux64.h: Delete file.
12988         * config/s390/s390x.h: New file.
12989         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
12990         as target header file.
12991         * config/s390/linux.h (TARGET_VERSION): Define depending on
12992         DEFAULT_TARGET_64BIT.
12993         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
12994         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
12995         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
12996         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
12997         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
12998         (EXTRA_SPEC): New define.
12999         * config/s390/s390.h (TARGET_VERSION): Define depending on
13000         DEFAULT_TARGET_64BIT.
13001         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
13002
13003 2002-02-06  Jason Merrill  <jason@redhat.com>
13004
13005         * c-decl.c (finish_function): Warn about a non-void function with
13006         no return statement and no abnormal exit.
13007         (current_function_returns_abnormally): New variable.
13008         (start_function): Clear it.
13009         (struct c_language_function): Add returns_abnormally.
13010         (push_c_function_context): Save it.
13011         (pop_c_function_context): Restore it.
13012         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
13013         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
13014         an explicit return type.
13015         * c-tree.h: Declare current_function_returns_abnormally.
13016         (C_FUNCTION_IMPLICIT_INT): New macro.
13017         * c-typeck.c (build_function_call): Set it.
13018         (c_expand_return): Set current_function_returns_value even if the
13019         value is erroneous.
13020
13021 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13022
13023         PR c/5420:
13024         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
13025         unsafe for reevaluation.
13026
13027 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13028
13029         PR c/5482:
13030         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
13031         EXPR_STMT, but COMPOUND_STMT, recurse into it.
13032
13033 2002-02-06  Richard Henderson  <rth@redhat.com>
13034
13035         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
13036         be a general_operand.  Dest for function value must be a pseudo.
13037
13038 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
13039
13040         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
13041         as SYMBOL_REFs from the constant pool.
13042
13043 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
13044
13045         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
13046         passed by invisible reference.
13047
13048 2002-02-05  Richard Henderson  <rth@redhat.com>
13049
13050         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
13051
13052 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
13053
13054         Implement using "base addresses" in insn operands as default.
13055         * config/mmix/mmix.c (mmix_conditional_register_usage): if
13056         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
13057         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
13058         used to read the rtx value.
13059         (mmix_target_asm_function_epilogue): Fix spacing.
13060         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
13061         (mmix_legitimate_address): Ditto.
13062         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
13063         should be loaded with a GETA insn.  Don't allocate needless extra
13064         char for nul termination and fix misleading comment.
13065         (mmix_print_operand_address): Handle constants if
13066         TARGET_BASE_ADDRESSES.
13067         (mmix_output_register_setting): Use base addressing if
13068         TARGET_BASE_ADDRESSES and the number of insns is 3.
13069         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
13070         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
13071         to use R as constraint, add LDA to match s.
13072         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
13073         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
13074         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
13075         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
13076         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
13077         order with other fixed registers.
13078         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
13079         other parameter/call-clobbered registers.
13080         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
13081         -mbase-addresses, -mno-base-addresses.
13082         (MMIX Options): Ditto.
13083
13084 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13085
13086         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
13087
13088 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
13089
13090         * config/rs6000/altivec.h: Change elem to _S_elem.
13091
13092 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13093
13094         * config/netbsd.h (WCHAR_TYPE): Define.
13095         (WCHAR_TYPE_SIZE): Ditto.
13096         (WINT_TYPE): Ditto.
13097         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
13098         (WCHAR_UNSIGNED): Ditto.
13099         (WCHAR_TYPE_SIZE): Ditto.
13100         (WINT_TYPE): Ditto.
13101         * config/arm/netbsd.h: Likewise.
13102         * config/i386/netbsd-elf.h: Likewise.
13103         * config/i386/netbsd.h: Likewise.
13104         * config/m68k/netbsd-elf.h: Likewise.
13105         * config/m68k/netbsd.h: Likewise.
13106         * config/ns32k/netbsd.h: Likewise.
13107         * config/sparc/netbsd.h: Likewise.
13108         * config/vax/netbsd.: Likewise.
13109
13110 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
13111
13112         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
13113         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
13114         (TARGET_INITIALIZER): this.
13115         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
13116         (BITFIELD_NBYTES_LIMITED): Markup fix.
13117         * tree.h (default_ms_bitfield_layout_p): Declare.
13118         (record_layout_info): Added prev_field.
13119         * tree.c (default_ms_bitfield_layout_p): New fn.
13120         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
13121         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
13122         * stor-layout.c: Include target.h.
13123         (start_record_layout): Initialize prev_field.
13124         (place_field): Handle MS bit-field layout, and disregard
13125         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
13126         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
13127         * Makefile.in (stor-layout.o): Adjust dependencies.
13128
13129 2002-02-05  Jason Merrill  <jason@redhat.com>
13130
13131         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
13132
13133 2002-02-05  Andreas Jaeger  <aj@suse.de>
13134
13135         * crtstuff.c: Fix comments.
13136
13137 2002-02-05  Richard Henderson  <rth@redhat.com>
13138
13139         PR fortran/3393
13140         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
13141         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
13142
13143         PR fortran/3392
13144         * config/mips/mips.c (function_arg): Handle TImode.
13145         (function_arg_advance): Likewise.
13146
13147 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13148
13149         * config/rs6000/altivec.h (vec_step_help): Rename to
13150         __vec_step_help.
13151
13152 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13153
13154         * config/rs6000/altivec.h: Fix typos.
13155
13156 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13157
13158         * config/arm/netbsd.h: Correct a comment.
13159
13160 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13161
13162         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
13163         building void typed builtins.
13164
13165         * config/rs6000/altivec.h (vec_ld*): Fix typos.
13166         (vec_step): Implement for C++.
13167
13168 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13169
13170         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
13171
13172 2002-02-04  Richard Henderson  <rth@redhat.com>
13173
13174         * combine.c (nonzero_bits): Re-introduce special case for
13175         sp/fp/ap wrt REGNO_POINTER_ALIGN.
13176
13177 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13178
13179         * doc/extend.texi: Warn about unsupported usage of altivec
13180         builtins.
13181
13182         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
13183         (altivec_predicate_*): New.
13184
13185         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
13186         Add C++ version of vec_*() functions.
13187
13188         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
13189         (bdesc_2arg): Remove altivec predicates.
13190         (altivec_expand_builtin): Handle predicates.
13191         (altivec_init_builtins): Handle predicates.
13192         (altivec_expand_predicate_builtin): New.
13193
13194 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13195
13196         * pa.c (DO_FRAME_NOTES): Move forward.
13197         (store_reg): Revise handling of frame notes.
13198         (load_reg): Likewise.
13199         (set_reg_plus_d): Likewise.
13200         (hppa_expand_prologue): Likewise.
13201         (hppa_expand_epilogue): Likewise.
13202
13203 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13204
13205         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
13206
13207 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13208
13209         PR c/4475, c++/3780:
13210         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
13211         * c-common.h (SWITCH_TYPE): Define.
13212         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
13213         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
13214         Rename spareness variable to sparseness.
13215         (expand_end_case_type): Renamed from expand_end_case, use orig_type
13216         if non-NULL instead of TREE_TYPE (orig_index).
13217         * tree.h (expand_end_case_type): Renamed from expand_end_case.
13218         (expand_end_case): Define using expand_end_case_type.
13219         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
13220         to expand_end_case_type.
13221         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
13222
13223 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13224
13225         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
13226         (BIGGEST_ALIGNMENT): Change to 128.
13227
13228 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13229
13230         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
13231
13232 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13233
13234         * pa.md (call_internal_reg_64bit): Remove unused variable.
13235
13236 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
13237
13238         * config/arm/arm.h (machine_function): Add uses_anonymous_args
13239         field.
13240         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
13241         * config/arm/arm.c (current_function_anonymous_args): Delete,
13242         replace uses with cfun->machine->uses_anonymous_args.
13243         (arm_reorg): Do not reset uses_anonymous_args.
13244
13245         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
13246         any geenral register.
13247
13248 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
13249
13250         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
13251         the entry block.
13252
13253 2002-02-04  Richard Henderson  <rth@redhat.com>
13254
13255         * combine.c (force_to_mode): Remove STACK_BIAS code.
13256         (nonzero_bits): Likewise.  Replace sp/fp special case with
13257         REGNO_POINTER_ALIGN.
13258
13259         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
13260         (HARD_FRAME_POINTER_REGNUM): New.
13261         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
13262         (FIXED_REGS, CALL_USED_REGS): Update.
13263         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
13264         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
13265         (HARD_REGNO_NREGS): Update for SFP.
13266         (STACK_POINTER_OFFSET): Include bias here ...
13267         (FIRST_PARM_OFFSET): ... not here.
13268         (STACK_BIAS): Remove.
13269         (INIT_EXPANDERS): New.
13270         (STARTING_FRAME_OFFSET): Do not include bias.
13271         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
13272         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
13273         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
13274         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
13275         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
13276         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
13277         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
13278         (MUST_SAVE_REGISTER): Likewise.
13279         (sparc_flat_function_prologue): Likewise.
13280         (sparc_flat_function_epilogue): Likewise.
13281         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
13282         (sparc_init_modes): SFP is GENERAL_REGS.
13283         (sparc_builtin_saveregs): SFP does not have bias applied.
13284
13285 2002-02-04  Richard Henderson  <rth@redhat.com>
13286
13287         * config/alpha/alpha.c (current_function_is_thunk): Don't check
13288         current_function_is_thunk.
13289         (alpha_sa_mask): Distinguish between current_function_is_thunk
13290         called from ASM_OUTPUT_MI_THUNK and not.
13291         (alpha_does_function_need_gp): Thunks always need gp.
13292         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13293         (alpha_output_mi_thunk_osf): New.
13294         * config/alpha/alpha-protos.h: Update.
13295         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
13296
13297 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
13298
13299         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
13300         function types, not when they're taken away.
13301
13302 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
13303
13304         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
13305         CODE_LABEL and jump table when replacing a table jump with a
13306         simple jump.
13307
13308 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13309
13310         * config/s390/s390-protos.h (legitimize_la_operand,
13311         s390_secondary_input_reload_class, s390_plus_operand,
13312         s390_expand_plus_operand): Add prototypes.
13313
13314         config/s390/s390.c (s390_secondary_input_reload_class,
13315         s390_plus_operand, s390_expand_plus_operand): New functions.
13316
13317         (struct s390_address): New member 'pointer'.
13318         (s390_decompose_address): Compute it.
13319         (legitimate_la_operand_p): Use it.
13320         (legitimize_la_operand): New function.
13321         (movti, movdi, movdf splitters): Call it.
13322
13323         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
13324         (PREDICATE_CODES): Add s390_plus_operand.
13325
13326         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
13327         (la_ccclobber): Allow GENERAL_REGS as output operand.
13328
13329         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
13330         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
13331         (*la_64, *la_31, reload_indi, reload_insi): ... these.
13332
13333 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13334
13335         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
13336         register names for regular asm () construct.
13337
13338 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13339
13340         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
13341         registers.
13342
13343 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13344
13345         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
13346         pat for recog.
13347
13348 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
13349
13350         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
13351         constant pool to be identical by string address and index.
13352
13353 2002-02-04  Anthony Green  <green@redhat.com>
13354
13355         * output.h (SECTION_OVERRIDE): Define.
13356         * varasm.c (named_section): Obey SECTION_OVERRIDE.
13357
13358 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13359
13360         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
13361         by existing arm*-*-netbsd* (a.out) target.
13362         (ns32k-*-netbsdelf*): Likewise.
13363         (sparc-*-netbsdelf*): Likewise.
13364         (vax-*-netbsdelf*): Likewise.
13365
13366 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
13367
13368         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
13369         headers and libobjc headers.
13370
13371 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
13372
13373         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
13374         (_mingw.h): Remove duplicate include.
13375
13376 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13377
13378         * config.gcc: Set cpu_type to m68k for 68010, as well.
13379         (m68010-*-netbsdelf*): New...
13380         (m68k*-*-netbsdelf*): ...targets.
13381         * config/m68k/netbsd-elf.h: New file.
13382
13383 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13384
13385         * config/h8300/h8300.c (hand_list): Move inside function_arg.
13386
13387 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13388
13389         * config/h8300/h8300.c (h8_push_ops): Move inside
13390         h8300_init_once.
13391         (h8_pop_ops): Likewise.
13392         (h8_move_ops): Likewise.
13393
13394 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13395
13396         * config/h8300/h8300.c (os_task): Make it static.
13397         (monitor): Likewise.
13398         (pragma_saveall): Likewise.
13399
13400 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
13401
13402         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
13403         constant is a valid sign-extension for Pmode.
13404
13405 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13406
13407         * config/h8300/h8300.c: Fix formatting.
13408
13409 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13410
13411         * config/h8300/h8300.md: Fix formatting.
13412
13413 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13414
13415         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
13416         predicates of operands[1].  Split the patterns for each
13417         processor variant.
13418
13419 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13420
13421         * config/h8300/h8300.md (xor patterns): Tighten the predicates
13422         of operands[1] to register_operand.
13423
13424 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13425
13426         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
13427         * cpphash.c (_cpp_init_hashtable): Similarly.
13428         * cppinit.c (cpp_create_reader): Default the signed_char flag.
13429         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
13430         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
13431         (cpp_handle_option): Handle the new options.
13432         * cpplex.c (cpp_interpret_charconst): Use new flag.
13433         * cpplib.h (struct cpp_options): New member signed_char.
13434         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
13435         (cpp_options): Handle -fsigned-char and -funsigned-char.
13436         (static_specs): Remove signed_char_spec.
13437         (do_spec1): Don't handle %c.
13438         * system.h: Poison SIGNED_CHAR_SPEC.
13439         * tradcif.y (yylex): Use flag_signed_char.
13440         * tradcpp.h (flag_signed_char): New.
13441         * tradcpp.c (flag_signed_char): New.
13442         (main): Handle new command-line options.
13443         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
13444 config:
13445         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
13446         * avr/avr.h: Remove old comments.
13447         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
13448         (CC1_SPEC): Pass -fsigned-char if -mic*.
13449         (SIGNED_CHAR_SPEC): Remove.
13450 doc:
13451         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
13452
13453 2002-02-01  Eric Christopher  <echristo@redhat.com>
13454
13455         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
13456         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
13457         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
13458         (ASM_OUTPUT_REG_POP): Ditto.
13459
13460 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13461
13462         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
13463         patch.
13464
13465 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13466
13467         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
13468
13469 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13470
13471         PR c/5304:
13472         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
13473         unconditionally.
13474
13475 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13476
13477         * cfganal.c: Include tm_p.h.
13478         (keep_with_call_p): Fix the test that determines if a register holds
13479         the return value of a call.
13480
13481 2002-02-01  DJ Delorie  <dj@redhat.com>
13482
13483         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
13484         we are given conflicting registers, switch to the other one we
13485         had allocated for us.
13486         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
13487         as TImode so we know when the "other" register is available.
13488
13489 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
13490
13491         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
13492         sparc/sparc_bi.h.
13493
13494 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13495
13496         * cfganal.c (keep_with_call_p): New function.
13497         (flow_call_edges_add): Prevent splitting a block between a call and
13498         a single-set instruction that should be kept in the same block.
13499
13500 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13501
13502         * doc/install.texi (avr): Update outdated URL.
13503
13504 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
13505
13506         * config/stormy16/stormy16.md (pushqi): New.
13507         (popqi): New.
13508         (pushhi): New.
13509         (pophi): New.
13510         (movhi): Remove stack operands.
13511         (movqi): Likewise.
13512         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
13513         nonimmediate_nonstack_operand.
13514         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
13515         New.
13516         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
13517         New.
13518
13519 2002-01-31  Jason Merrill  <jason@redhat.com>
13520
13521         * Makefile.in (c-parse.c): Handle .output file.
13522         * objc/Make-lang.in (objc-parse.c): Likewise.
13523
13524 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
13525
13526         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
13527         the -me[lb] option is given.  Don't output the default flag
13528         twice.
13529
13530 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
13531
13532         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
13533         the primary source file; this has not been done yet.
13534         * c-decl.c (c_expand_body): Reset input_filename from
13535         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
13536
13537 2002-01-31  Kazu Hirata  <kazu@hxi.com>
13538
13539         * rtlanal.c (subreg_regno_offset): Do not use
13540         SUBREG_REGNO_OFFSET.
13541         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
13542         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
13543
13544 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
13545
13546         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
13547         version rather than GNATS version in --version output.
13548
13549 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
13550
13551         * ifcvt.c (noce_process_if_block): Make a copy of the destination
13552         when copying back from a temporary.
13553
13554 2002-01-30  Richard Henderson  <rth@redhat.com>
13555
13556         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
13557         and new_dest are the same.
13558
13559 2002-01-30  Richard Henderson  <rth@redhat.com>
13560
13561         PR opt/5076
13562         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
13563         * rtl.c (note_insn_name): Update.
13564         * emit-rtl.c (remove_unnecessary_notes): Kill it.
13565         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
13566         to perform loop rotation.
13567         (expand_exit_loop_top_cond): New.
13568         * tree.h (expand_exit_loop_top_cond): Declare it.
13569         * c-semantics.c (genrtl_while_stmt): Use it.
13570         (genrtl_for_stmt): Likewise.
13571
13572 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
13573
13574         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
13575         arguments to 64-bit boundaries on 64-bit ABIs.
13576
13577 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
13578
13579         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
13580
13581 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
13582
13583         * c-decl.c (grokdeclarator): Handle type being a typedef for an
13584         invalid type.
13585
13586 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
13587
13588         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
13589         * config/sparc/sparc_bi.h: Remove file.
13590         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
13591
13592 2002-01-30  Richard Henderson  <rth@redhat.com>
13593
13594         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
13595
13596 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
13597
13598         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
13599
13600 2002-01-30  Jason Merrill  <jason@redhat.com>
13601
13602         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
13603         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
13604         (reg_save): Use DW_CFA_offset_extended_sf instead.
13605
13606         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
13607
13608 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13609
13610         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
13611         in cselib_lookup.
13612
13613 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
13614
13615         * rs6000.md ("*call_value_local32"): Remove constraints.
13616         ("*call_value_local64"): Same.
13617         ("*call_value_indirect_nonlocal_aix32"): Same.
13618         ("*call_value_nonlocal_aix32"): Same.
13619         ("*call_value_indirect_nonlocal_aix64"): Same.
13620         ("*call_value_nonlocal_aix64"): Same.
13621         ("*call_value_nonlocal_sysv"): Same.
13622
13623 2002-01-29  Richard Henderson  <rth@redhat.com>
13624
13625         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
13626
13627 2002-01-29  Richard Henderson  <rth@redhat.com>
13628
13629         * expr.c (force_operand): Ignore flag_pic for detecting pic
13630         address loads.
13631         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
13632         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
13633         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
13634         instead of open-coded loop.
13635         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
13636         be fixed when in use.
13637
13638 2002-01-29  Richard Henderson  <rth@redhat.com>
13639
13640         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
13641         * sched-rgn.c (propagate_deps): Update them.
13642         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
13643         clobbers list when either gets too long.
13644
13645 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13646
13647         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
13648         and INDEX_REGS the same as GENERAL_REGS.
13649         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
13650
13651 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13652
13653         * tree.c (build_nonstandard_integer_type): Correct prototype.
13654
13655 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
13656
13657         * config/s390/s390.md (movstrsico, movstrdix_64,
13658         movstrsix_31): Remove, replace by ...
13659         (movstrdi_short, movstrsi_short, movstrdi_long,
13660         movstrsi_long): ... these.  New.
13661         (movstrdi, movstrsi): Adapt.
13662
13663         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
13664         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
13665         Remove unnecessary CC clobber.
13666         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
13667         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
13668
13669         (divmoddi4): Don't partially initialize TImode register.
13670
13671 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
13672
13673         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
13674
13675 2002-01-29  Richard Henderson  <rth@redhat.com>
13676
13677         * flow.c (print_rtl_and_abort): Remove.
13678         (print_rtl_and_abort_fcn): Remove.
13679         (verify_local_live_at_start): Use dump_bb instead.
13680         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
13681         (verify_wide_reg_1): Return 2 on mode test failure.
13682
13683 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13684
13685         PR c/3325, c/3326, c/2511, c/3347
13686         * c-decl.c (enum_decl_context): Remove BITFIELD.
13687         (grokdeclarator): Take bitfield width as an input.
13688         Ensure bitfields are given the correct type.  Perform
13689         bitfield width validation with build_bitfield_integer_type
13690         rather than waiting for finish_struct.
13691         (grok_typename, grok_typename_in_parm_context, start_decl,
13692         push_parmdecl, grokfield, start_function): Update calls to
13693         grokdeclarator.
13694         (build_bitfield_integer_type): New function.
13695         (finish_struct): Move bitfield validation to grokdeclarator
13696         and build_bitfield_integer_type.
13697         * tree.c (build_nonstandard_integer_type): New function.
13698         * tree.h (build_nonstandard_integer_type): New prototype.
13699 objc:
13700         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
13701
13702 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13703
13704         PR other/1502:
13705         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
13706         don't ignore unrecognized -W* options.
13707         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
13708         * cpplib.h (cpp_handle_option): Adjust prototype.
13709         * c-decl.c (c_decode_options): Pass 0 as last argument to
13710         cpp_handle_option.
13711
13712         PR c/2896:
13713         * gcc.c (cpp_unique_options): Split from cpp_options.
13714         (cpp_options): Source cpp_unique_options.
13715         (default_compilers): Use cpp_unique_options instead of cpp_options
13716         when used together with cc1_options.
13717         (static_specs): Add cpp_unique_options.
13718         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
13719         when used together with cc1_options.
13720
13721 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13722
13723         * config/h8300/h8300-protos.h: Update the prototype of
13724         output_a_shift.
13725         * config/h8300/h8300.c (output_a_shift): Remove an unused
13726         argument 'insn'.  Remove redundant code.
13727         * config/h8300/h8300.md: Adust to the new prototype of
13728         output_a_shift.
13729
13730 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13731
13732         * config/h8300/h8300-protos.h: Update the prototypes of
13733         emit_a_rotate and expand_a_rotate.
13734         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
13735         first argument to 'enum rtx_code'.
13736         (expand_a_rotate): Likewise.
13737
13738 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13739
13740         * config/h8300/h8300-protos.h: Update the prototype of
13741         output_simode_bld.
13742         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
13743         'log2'.
13744         * config/h8300/h8300.md: Adjust to the new prototype.
13745
13746 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13747
13748         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
13749         redundant code.
13750
13751 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13752
13753         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
13754         is a fixed register before returning pic_offset_table_rtx.
13755         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
13756         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
13757
13758 2002-01-28  Jason Merrill  <jason@redhat.com>
13759
13760         * dwarf2.h: Sync with src version.
13761
13762 2002-01-28  Paul Koning  <pkoning@equallogic.com>
13763
13764         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
13765         BT_FN_VOID_PTR_VAR.
13766         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
13767         * doc/extend.texi (__builtin_prefetch): Update documentation:
13768         first argument is now const void ptr.
13769
13770 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13771
13772         * config/h8300/h8300-protos.h: Remove an unused prototype.
13773
13774 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
13775
13776         * toplev.c (lang_independent_init): Round up identifier size.
13777
13778 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13779
13780         * config.gcc: Revert previous change.
13781
13782 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
13783
13784         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
13785
13786 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13787
13788         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
13789         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
13790         other non-elf netbsd config frags.
13791         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
13792         collect2 will does that.
13793         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
13794         shared-lib frobbing will work.
13795
13796 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13797
13798         * config/h8300/h8300.h: Fix formatting.
13799         * config/h8300/h8300.md: Likewise.
13800
13801 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
13802
13803         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
13804         the old, removed AAA_standards fix.
13805         * fixinc/fixincl.x: Rebuilt.
13806
13807 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
13808
13809         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
13810         atexit call in crtbegin, hooked in after call to frame_dummy;
13811         register EH before registering __fini__start.
13812
13813 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
13814
13815         * config/rs6000/altivec.h: Remove spurious semicolons.
13816
13817 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13818
13819         * config/h8300/h8300.md: Replace dead bit extraction patterns
13820         with ones that work.
13821
13822 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13823
13824         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
13825         if not STRICT_ALIGNMENT.
13826         * rtl.h (MEM_ALIGN): Likewise.
13827
13828 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13829
13830         * doc/invoke.texi (-fdump-translation-unit): Revert this
13831         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13832
13833 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13834
13835         * config/h8300/h8300.md (define_constants): New.
13836         (anonymous patterns) Use defined constants appropriately.
13837
13838 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13839
13840         * config/h8300/h8300.c (function_arg): Remove redundant code.
13841
13842 2002-01-26  Richard Henderson  <rth@redhat.com>
13843
13844         * sched-deps.c (reg_pending_uses_head): New.
13845         (reg_pending_barrier): Rename from reg_pending_sets_all.
13846         (find_insn_list): Don't mark inline.
13847         (find_insn_mem_list): Remove.
13848         (add_dependence_list, add_dependence_list_and_free): New.
13849         (flush_pending_lists): Replace only_write param with separate
13850         for_read and for_write parameters.  Update all callers.  Use
13851         add_dependence_list_and_free.
13852         (sched_analyze_1): Do not add reg dependencies here; just set
13853         the pending bits.  Use add_dependence_list.
13854         (sched_analyze_2): Likewise.
13855         (sched_analyze_insn): Replace schedule_barrier_found with
13856         reg_pending_barrier.  Add all dependencies for pending reg
13857         uses, sets, and clobbers.
13858         (sched_analyze): Don't add reg dependencies for calls, just
13859         set pending bits.  Use regs_invalidated_by_call.  Treat
13860         sched_before_next_call as a normal list, not a fake insn.
13861         (init_deps): No funny init for sched_before_next_call.
13862         (free_deps): Free pending mems lists.  Don't zero reg_last.
13863         (init_deps_global): Init reg_pending_uses.
13864         (finish_deps_global): Free it.
13865         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
13866         (find_insn_mem_list): Remove.
13867         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
13868         (propagate_deps): Use them.  Zero temp mem lists.
13869
13870 2002-01-26  Richard Henderson  <rth@redhat.com>
13871
13872         * Makefile.in (CRTSTUFF_CFLAGS): New.
13873         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
13874         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
13875         crtstuff.c instead of alpha assembly version.
13876         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
13877         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
13878         not FORCE_{INIT,FINI}_SECTION_ALIGN.
13879         (__do_global_dtors_aux): Mark used.
13880         (frame_dummy, __do_global_ctors_aux): Mark used.
13881         (fini_dummy, init_dummy): Remove.
13882
13883         * config/alpha/crtbegin.asm: Remove file.
13884         * config/alpha/crtend.asm: Remove file.
13885         * config/alpha/t-crtbe: Remove file.
13886         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
13887         (LINK_EH_SPEC): New.
13888
13889         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
13890         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
13891         calling constructors.
13892         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
13893
13894         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
13895         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
13896         CRT_END_INIT_DUMMY hack.
13897         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
13898         FORCE_{INIT,FINI}_SECTION_ALIGN.
13899
13900         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
13901         FORCE_{INIT,FINI}_SECTION_ALIGN.
13902
13903         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
13904         invocation sequence.
13905         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
13906
13907         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
13908         (FORCE_CODE_SECTION_ALIGN): New.
13909
13910 2002-01-26  Richard Henderson  <rth@redhat.com>
13911
13912         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
13913
13914 2002-01-26  Richard Henderson  <rth@redhat.com>
13915
13916         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
13917         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
13918
13919 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13920
13921         * config/h8300/h8300.md: Remove bit extraction patterns that
13922         cannot be triggered.
13923         Restrict each bit extraction pattern to a variant on which the
13924         pattern is tested.
13925
13926 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
13927
13928         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
13929
13930 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13931
13932         * config/h8300/h8300.md: Remove bit test patterns that cannot
13933         be triggered.
13934         Restrict each bit test pattern to a variant on which the
13935         pattern is tested.
13936
13937 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13938
13939         * builtins.c (expand_builtin_strncat): Remove redundant check for
13940         INTEGER_CST.
13941
13942 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13943
13944         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
13945         default setting.
13946         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
13947         existing setting.
13948
13949 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13950
13951         * dbxout.c (dbxout_init): Use assemble_name rather than just
13952         stripping off the first character.
13953         (dbxout_source_file): Likewise.
13954
13955 2002-01-25  DJ Delorie  <dj@redhat.com>
13956
13957         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
13958         using rtx_equal_p, not by comparing pointers.
13959
13960 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
13961
13962         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
13963         for PIC_OFFSET_TABLE_REGNUM.
13964         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
13965
13966 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13967
13968         * config.gcc (x86_64-*-freebsd*): New target.
13969         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
13970         value.
13971         (i[34567]86-*-freebsd*): Don't include svr4.h.
13972         * config/i386/freebsd64.h: New file.
13973
13974 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
13975
13976         * config/alpha/x-vms (version): Make static.
13977
13978         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
13979         in previous checkin.
13980
13981         * Makefile.in (install-headers-cp): New target.
13982         * config.gcc (alpha-dec-*vms*): Install headers with
13983         install-headers-cp
13984
13985 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13986
13987         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
13988         avoid it's copies.
13989
13990 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13991
13992         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
13993         of compare_tree_int.
13994         (expand_builtin_strncat): Likewise.
13995         * c-decl.c (finish_struct): Use tree_low_cst.
13996         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
13997         * tree.c (compare_tree_int): Likewise.
13998
13999 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
14000
14001         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
14002         adjustments even if they are implemented by more than two insns.
14003
14004 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14005
14006         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
14007         * df.h (struct ref): Kill B.
14008         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
14009
14010         * basic-block.h (PROP_EQUAL_NOTES): New flag.
14011         * flow.c (propagate_one_insn): Use it.
14012         (mark_used_regs): Handle NIL.
14013
14014 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
14015
14016         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
14017         to help folding.
14018
14019 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
14020
14021         * rs6000.md (prefetch): Make address V4SI mode so that the address
14022         is restricted to legitimate form for instruction.
14023
14024 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
14025
14026         * doc/install.texi (xtensa-*-elf): New target.
14027         (xtensa-*-linux*): New target.
14028         * doc/contrib.texi: Add myself.
14029
14030 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
14031
14032         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
14033         purpose register to hold an SImode (or smaller) value.
14034
14035 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
14036
14037         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
14038         registry only.
14039         * crtstuff.c: Likewise.
14040
14041 2002-01-25  Kazu Hirata  <kazu@hxi.com>
14042
14043         * config/h8300/h8300.md (negation patterns): Tighten
14044         predicates to register_operand.
14045
14046 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
14047
14048         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
14049         mode, not Pmode.
14050
14051         * builtins.c (expand_builtin_prefetch): Same.
14052
14053 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14054
14055         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
14056         modes.
14057
14058 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14059
14060         * config/h8300/h8300.c (print_operand): Remove support for
14061         operand character 'A'.
14062         * config/h8300/h8300.md (three anonymous patterns): Replace
14063         operand character 'A' with either 'T' or 'S'.
14064
14065 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14066
14067         * config/h8300/h8300.c (print_operand): Remove support for
14068         operand character 'U'.
14069
14070 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
14071
14072         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
14073
14074 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
14075
14076         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
14077         values to be assigned to the stack pointer.
14078
14079 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14080
14081         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
14082         to const_double needs to be done right for big-endian systems.
14083
14084 2002-01-24  Jason Merrill  <jason@redhat.com>
14085
14086         PR c++/2432
14087         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
14088         to can_throw_internal.
14089
14090 2002-01-23  Richard Henderson  <rth@redhat.com>
14091
14092         * fold-const.c (fold): Change UINT_MAX test to check vs precision
14093         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
14094
14095 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14096
14097         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
14098         (symGOT2reg): Use them, then set as GOT value as unchanging.
14099         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
14100         as a temporary, if possible.
14101         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
14102         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
14103
14104 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14105
14106         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
14107         accept to accept 0x80 as operands[2].
14108
14109 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14110
14111         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
14112
14113 2002-01-23  Richard Henderson  <rth@redhat.com>
14114
14115         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
14116
14117 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
14118
14119         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
14120         (parmlist_or_identifiers_1): Verify that only a parmlist follows
14121         an attribute.
14122
14123 2002-01-23  Richard Henderson  <rth@redhat.com>
14124
14125         * expr.c (move_by_pieces_1): Extend size before negation.
14126
14127         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
14128         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
14129         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
14130         * config/m68k/t-m68kelf: Likewise.
14131
14132 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
14133
14134         * config/xtensa/elf.h: New file.
14135         * config/xtensa/lib1funcs.asm: New file.
14136         * config/xtensa/lib2funcs.S: New file.
14137         * config/xtensa/linux.h: New file.
14138         * config/xtensa/t-xtensa: New file.
14139         * config/xtensa/xtensa-config.h: New file.
14140         * config/xtensa/xtensa-protos.h: New file.
14141         * config/xtensa/xtensa.c: New file.
14142         * config/xtensa/xtensa.h: New file.
14143         * config/xtensa/xtensa.md: New file.
14144         * config.gcc (xtensa-*-elf*): New target.
14145         (xtensa-*-linux*): New target.
14146         * cse.c (canon_hash): Compare rtx pointers instead of register
14147         numbers.  This is required for the Xtensa port.
14148         * integrate.c (copy_insn_list): Handle case where the static
14149         chain is in memory and the memory address has to be copied to
14150         a register.
14151         * doc/invoke.texi (Option Summary): Add Xtensa options.
14152         (Xtensa Options): New node.
14153         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
14154
14155 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14156
14157         * diagnostic.c (internal_error): Do ICE suppression only
14158         when ENABLE_CHECKING is not defined.
14159
14160         * c-typeck.c (require_complete_type): Return error_mark_node
14161         if type is error_mark_node.
14162
14163 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
14164
14165         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
14166         -Os and issue a warning.
14167
14168 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14169
14170         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
14171         current (lack of) need for host configuration by hand.
14172
14173         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
14174         references.  Documentation of some target macros moved from
14175         hostconfig.texi to tm.texi.
14176
14177 2002-01-23  Will Cohen  <wcohen@redhat.com>
14178
14179         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
14180         defined.
14181
14182 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14183
14184         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
14185         operand[3].
14186
14187 2002-01-23  Jason Merrill  <jason@redhat.com>
14188
14189         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
14190
14191         * function.c (assign_parms): Don't put args of inline functions
14192         into registers when not optimizing.
14193
14194 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
14195
14196         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
14197         (prologue_use): New pattern.
14198         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
14199         preference to gen_rtx_USE.
14200         (thumb_expand_prologue): Use gen_prologue_use in preference to
14201         gen_rtx_USE.
14202         (thumb_expand_epilogue): Use gen_prologue_use in preference to
14203         gen_rtx_USE.
14204
14205 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
14206
14207         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
14208
14209 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14210
14211         PR c/3504
14212         * doc/extend.texi: Correct documentation of __alignof__.
14213
14214 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
14215
14216         * params.h: Rename arguments of DEFPARAM so that it will be
14217         recognized as a translation keyword.
14218
14219 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14220
14221         * extend.texi: Document altivec functions.
14222         Fix N-bit adjectives in X86 builtin documentation.
14223
14224 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14225
14226         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
14227         auto_inc_dec values.
14228
14229 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
14230
14231         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
14232         after backslash.
14233         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
14234
14235 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14236
14237         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
14238
14239 2002-01-22  Richard Henderson  <rth@redhat.com>
14240
14241         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
14242         copy_insn not copy_rtx.
14243
14244 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
14245
14246         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
14247         "nonzero" as that might add "1" bits.  Ensure "constop" is
14248         properly sign extened.
14249         (force_to_mode): Tweak for sign extended constop.
14250
14251 2002-01-22  Richard Henderson  <rth@redhat.com>
14252
14253         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
14254         for_each_rtx instead of assuming we're already looking at the MEM.
14255         (split_small_symbolic_mem_operand): Likewise.
14256         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14257         * config/alpha/alpha.md (small symbolic memory splitters): Update.
14258
14259 2002-01-22  Richard Henderson  <rth@redhat.com>
14260
14261         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
14262         sequence number for the literal.
14263         (divmoddi_internal_er): Likewise.
14264
14265 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14266
14267         PR java/4972
14268         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
14269         in LIBICONV variable.
14270         * configure: Regenerated.
14271
14272 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
14273
14274         * dependence.c (build_def_use): Remove array_idx.
14275
14276         * dwarfout.c (last_filename): Remove.
14277         (output_compile_unit_die): Remove last_filename.
14278
14279 2002-01-22  Roger Sayle  <roger@eyesopen.com>
14280             Richard Henderson  <rth@redhat.com>
14281
14282         PR opt/3640
14283         * fold-const.c (fold): Optimize unsigned comparisons against
14284         UINT_MAX (and similar unsigned constants).
14285
14286 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
14287
14288         * Makefile.in (loop.o): Depend on OPTABS_H.
14289         * loop.c (emit_prefetch_instructions): Check the prefetch operand
14290         against the predicate.
14291
14292         PR target/5379
14293         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
14294         for the address operand.
14295
14296 2002-01-22  Richard Henderson  <rth@redhat.com>
14297
14298         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
14299
14300 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14301
14302         PR other/5450
14303         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
14304         preprocessor flags.
14305
14306 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
14307
14308         * config.gcc (x86_64-*-netbsd*): New target.
14309         * config/i386/netbsd64.h: New file.
14310
14311 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14312
14313         * regrename.c (kill_value): Fix typo.
14314
14315 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14316
14317         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
14318
14319         * config/rs6000/rs6000.h: Same.
14320
14321         * function.c (instantiate_virtual_regs): Remove
14322         STARTING_FRAME_PHASE.
14323         (assign_stack_local_1): Same.
14324         Calculate frame phase.
14325
14326 2002-01-22  Nick Clifton  <nickc@redhat.com>
14327
14328         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
14329         variable declaration to outer scope in order to simplify
14330         future extensions.
14331         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
14332         arm_hard_regno_mode_ok.
14333         * config/arm/arm-protos.h: Add a prototype for
14334         arm_hard_regno_mode_ok.
14335         * config/arm/arm.c (soft_df_operand): Remove now redundant
14336         check for DImode values using IP_REGNUM.
14337         (nonimmediate_soft_df_operand): Remove now redundant check for
14338         DImode values using IP_REGNUM.
14339         (arm_hard_regno_mode_ok): New function. New check: make sure
14340         that DImode values are not stored in IP_REGNUM.
14341
14342         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
14343         note with a USE.
14344         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
14345
14346 2002-01-22  Jason Merrill  <jason@redhat.com>
14347
14348         * c-semantics.c (genrtl_compound_stmt): Only check nesting
14349         consistency if this COMPOUND_STMT is scoped.
14350
14351 2002-01-22  Kazu Hirata  <kazu@hxi.com>
14352
14353         * predict.c: Fix formatting.
14354         * print-tree.c: Likewise.
14355         * protoize.c: Likewise.
14356         * real.h: Likewise.
14357         * rtl.h: Likewise.
14358         * sbitmap.h: Likewise.
14359         * scan.c: Likewise.
14360         * sched-deps.c: Likewise.
14361         * sched-vis.c: Likewise.
14362         * sdbout.c: Likewise.
14363         * sibcall.c: Likewise.
14364         * ssa.c: Likewise.
14365         * ssa-ccp.c: Likewise.
14366         * ssa-dce.c: Likewise.
14367         * stmt.c: Likewise.
14368         * stor-layout.c: Likewise.
14369         * system.h: Likewise.
14370
14371 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14372
14373         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
14374         if fits in bounds of base type.
14375
14376         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
14377         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
14378         (add_bound_info, default): If can't find a context, make a
14379         SAVE_EXPR.
14380         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
14381
14382 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
14383
14384         * c-typeck.c (parser_build_binary_op): If result from
14385         build_binary_op is ERROR_MARK just return error_mark_node without
14386         further processing.
14387
14388 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
14389
14390         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
14391         Split a.out-specific bits into...
14392         * config/netbsd-aout.h: ...this.
14393         * config/netbsd-elf.h: New file.
14394         * config/alpha/netbsd-elf.h: Remove.
14395         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
14396         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
14397         (STARTFILE_SPEC): Remove redundant definition.
14398         (ENDFILE_SPEC): Likewise.
14399         (LINK_SPEC): Likewise.
14400         (CPP_SPEC): Likewise.
14401         (ASM_SPEC): Likewise.
14402         (LIB_SPEC): Likewise.
14403         (SWITCH_TAKES_ARG): Likewise.
14404         (TARGET_MEM_FUNCTIONS): Likewise.
14405         (CPP_PREDEFINES): Redefine.
14406         (ASM_FINAL_SPEC): Remove redefinition.
14407         (ASM_COMMENT_START): Redefine.
14408         (FUNCTION_PROFILER): Define.
14409         (TARGET_VERSION): Redefine.
14410         Comment and formatting cleanup.
14411         * config/i386/netbsd.h: Include <netbsd-aout.h>.
14412         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
14413         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
14414         big- or little-endian.
14415         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
14416         * config.gcc (*-*-netbsd*): Add definitions common to all
14417         NetBSD configs.
14418         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
14419         gnu_ld definitions.  Add netbsd-elf.h to and remove
14420         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
14421         tmake_file, and don't lose previous tmake_file contents.
14422         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
14423         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
14424         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
14425         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
14426         (mipsel-*-netbsd*): Rename this to...
14427         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
14428         mips/little.h to tm_file for mips*el-*.
14429         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
14430         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
14431         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
14432
14433 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14434
14435         * pa-protos.h (reg_before_reload_operand): New function prototype.
14436         * pa.c (reg_before_reload_operand): New function implementation.
14437         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
14438         contraints to "*m".
14439
14440 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14441
14442         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
14443
14444 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14445
14446         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
14447         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
14448         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
14449         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
14450         (ENDFILE_SPEC): Undefine.
14451         (STARTFILE_SPEC): Redefine for PA.
14452
14453 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14454
14455         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
14456
14457 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
14458
14459         * config.gcc: Add entries to supported PowerPC --with-cpu
14460         types.
14461
14462 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
14463
14464         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
14465         true for 64-bit mode only SSE registers in 32-bit mode.
14466
14467 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14468
14469         * unwind-dw2.c: Fix formatting.
14470         * unwind-dw2-fde.c: Likewise.
14471         * unwind-dw2-fde.h: Likewise.
14472         * unwind-pe.h: Likewise.
14473         * varasm.c: Likewise.
14474         * varray.h: Likewise.
14475
14476 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
14477
14478         Remove workaround for register stack overwrite bug in mmix.
14479         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
14480         support for TARGET_REG_STACK_FILL_BUG.
14481         * config/mmix/mmix.h: Remove member has_call_without_parameters.
14482         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
14483         Delete.
14484         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
14485         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
14486         -mno-reg-stack-fill-bug-workaround.
14487         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
14488         machine member has_call_without_parameters.
14489         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
14490         -mreg-stack-fill-bug-workaround and
14491         -mno-reg-stack-fill-bug-workaround.
14492         (MMIX Options): Ditto.
14493
14494 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14495
14496         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
14497         as appropriate.
14498         Remove redundant code.
14499
14500 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14501
14502         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
14503         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
14504         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
14505         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
14506         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
14507         out target macro definitions and non-target-specific comments
14508         mostly taken from old versions of the manual.
14509
14510 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14511
14512         * config/h8300/h8300.h: Fix comment formatting.
14513         * config/ia64/aix.h: Likewise.
14514         * config/ia64/ia64-protos.h: Likewise.
14515         * config/ia64/ia64.c: Likewise.
14516         * config/ia64/ia64.h: Likewise.
14517         * config/ia64/ia64intrin.h: Likewise.
14518         * config/ia64/linux.h: Likewise.
14519         * config/ia64/unwind-aix.c: Likewise.
14520         * config/ia64/unwind-ia64.c: Likewise.
14521
14522 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14523
14524         * config/h8300/h8300.c: Revise comments about shift code.
14525
14526 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14527
14528         * config/h8300/h8300.c (function_arg): Update a comment.
14529
14530 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14531
14532         * config/h8300/h8300.md: Update the comments at the beginning
14533         of the file.
14534
14535 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14536
14537         * config/i370/i370.c: Fix comment formatting.
14538         * config/i370/i370.h: Likewise.
14539         * config/i370/i370.md: Likewise.
14540         * config/i370/linux.h: Likewise.
14541
14542 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14543
14544         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
14545
14546         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
14547         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
14548         in incomplete case.
14549
14550 2002-01-20  Graham Stott  <grahams@redhat.com>
14551
14552         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
14553
14554 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14555
14556         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
14557
14558 2002-01-19  Tom Rix  <trix@redhat.com>
14559
14560         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
14561
14562 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
14563
14564         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
14565
14566         * function.c (assign_stack_local_1): Adjust x_frame_offset with
14567         STARTING_FRAME_PHASE.
14568         (STARTING_FRAME_PHASE): New.
14569         (instantiate_virtual_regs): Check saneness of
14570         STARTING_FRAME_PHASE.
14571
14572         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
14573
14574 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14575
14576         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
14577
14578 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14579
14580         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
14581         be used for bootstrapping GCC 3.0.
14582
14583 2002-01-18  Kazu Hirata  <kazu@hxi.com>
14584
14585         * config/h8300/h8300.md: Fix an insn length.
14586
14587 2002-01-18  Kazu Hirata  <kazu@hxi.com>
14588
14589         * bitmap.h: Fix comment formatting.
14590         * combine.c: Likewise.
14591         * cppfiles.c: Likewise.
14592         * c-pragma.h: Likewise.
14593         * c-typeck.c: Likewise.
14594         * df.c: Likewise.
14595         * dwarf2out.c: Likewise.
14596         * function.c: Likewise.
14597         * gcc.c: Likewise.
14598         * genattrtab.c: Likewise.
14599         * gthr-win32.h: Likewise.
14600         * haifa-sched.c: Likewise.
14601         * predict.c: Likewise.
14602         * rtlanal.c: Likewise.
14603         * rtl.h: Likewise.
14604         * unwind-dw2-fde.h: Likewise.
14605         * unwind-pe.h: Likewise.
14606         * vmsdbgout.c: Likewise.
14607
14608 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14609
14610         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
14611         if type_required and passed decl.
14612
14613 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
14614
14615         * config.gcc (cpu_type): Include altivec.h in powerpc
14616         extra_headers.
14617         Same for darwin.
14618
14619         * config/rs6000/altivec.h: New.
14620
14621 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
14622
14623         * doc/install.texi (*-ibm-aix*): Update assembler and exception
14624         handling information.
14625         * doc/trouble.texi (Interoperation): Add libstdc++ information
14626         for AIX.
14627         (Misunderstandings): Add template instantiation and static template
14628         member information for AIX.
14629
14630 2002-01-17  Jason Merrill  <jason@redhat.com>
14631
14632         * dbxout.c (dbxout_type): Support const and volatile.
14633
14634         * except.c (add_partial_entry): Remove backwards compatibility code.
14635         (end_protect_partials): Likewise.
14636
14637 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
14638
14639         * config/ia64/ia64.md (prologue_use): New.
14640         * config/ia64/ia64.c (ia64_expand_prologue): Use
14641         gen_prologue_use instead of gen_rtx_USE.
14642         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
14643         as CODE_FOR_pred_rel_mutex.
14644         (ia64_sched_reorder2): Likewise.
14645
14646 2002-01-16  Eric Christopher  <echristo@redhat.com>
14647
14648         * config/mips/r3900.h: Reformat.
14649         (SUBTARGET_CPP_SIZE_SPEC): Remove.
14650         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
14651         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
14652         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
14653         * config/mips/t-elf: Remove mips3 multilib.
14654
14655 2002-01-16  H.J. Lu <hjl@gnu.org>
14656
14657         * config/mips/linux.h: Include "mips/abi64.h".
14658
14659 2002-01-16  H.J. Lu <hjl@gnu.org>
14660
14661         * config/mips/t-linux: New.
14662
14663         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
14664
14665         * config/mips/linux.h: Don't include "gofast.h".
14666         (INIT_SUBTARGET_OPTABS): Removed.
14667
14668 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14669
14670         * config/h8300/h8300-protos.h: Replace emit_a_shift with
14671         output_a_shift.
14672         * config/h8300/h8300.c: Likewise.
14673         * config/h8300/h8300.md: Likewise.
14674
14675 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14676
14677         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
14678         spaces after an opcode name.
14679         (pushqi1_h8300hs): Likewise.
14680         (pushhi1_h8300hs): Likewise.
14681
14682 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14683
14684         * doc/extend.texi: Replace "option" with "attribute"
14685         appropriately.
14686
14687 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14688
14689         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
14690         (and:DI () (const_int -8)).
14691         (split_small_symbolic_mem_operand): Split
14692         (mem (and:DI () (const_int -8)).
14693
14694 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14695
14696         PR target/5309:
14697         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
14698         same way as TYPE_IMUL.
14699         (ultrasparc_sched_reorder): Likewise.
14700         * config/sparc/sparc.md (type): Add comment to update
14701         ultrasparc_sched_reorder when making changes.
14702
14703 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14704
14705         * doc/invoke.texi: Change the dump file name of block
14706         reordering pass from 28.bbro to 29.bbro.
14707         Mention -dk option.
14708
14709 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
14710
14711         * i386.md (minsf splitter): Fix pasto.
14712
14713 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14714
14715         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
14716         to frame pointer initialisation instruction.
14717         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
14718         initialisation instruction.
14719         (soft_df_operand): Do not accept the IP register.
14720         (nonimmediate_soft_df_operand): Do not accept the IP register.
14721
14722 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14723
14724         PR target/5357:
14725         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
14726         MASK_V8 being both set.
14727
14728 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
14729
14730         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
14731         insn for GOT register; add REG_MAYBE_DEAD notes instead.
14732         config/s390/s390.md (call, call_value): Add GOT register to
14733         CALL_INSN_FUNCTION_USAGE where needed.
14734         (call_exp, call_value_exp): New.
14735
14736 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14737
14738         * config/arm/arm.c: General formatting tidy up.
14739
14740 2002-01-16  Graham Stott  <grahams@redhat.com>
14741
14742         * calls.c (try_to_integrate): Use "(size_t)" intermediate
14743         cast and when casting an integer literal to "rtx" pointer.
14744         (expand_call): Likewise.
14745         * flow.c (try_pre_increment): Likewise.
14746         (find_use_as_address): Likewise.
14747         * integrate.c (expand_iline_function): Likewise.
14748         * regmove.c (try_auto_increment): Likewise.
14749
14750 2002-01-16  Graham Stott  <grahams@redhat.com>
14751
14752         * sched-rgn.c (passed): Use sbitmap_free.
14753         (header): Likewise.
14754         (inner): Likewise.
14755         (in_queue): Likewise.
14756         (in_stack): Likewise.
14757
14758 2002-01-15  Eric Christopher  <echristo@redhat.com>
14759
14760         * flow.c (propagate_one_insn): Change to use fatal_insn.
14761
14762 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14763
14764         * expmed.c (extract_fixed_bit_field): Remove unused code.
14765         * system.h: Poison SLOW_ZERO_EXTEND.
14766         * doc/tm.texi: Remove.
14767         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
14768         * config/arm/arm.h: Likewise.
14769         * config/avr/avr.h: Likewise.
14770         * config/clipper/clipper.h: Likewise.
14771         * config/convex/convex.h: Likewise.
14772         * config/d30v/d30v.h: Likewise.
14773         * config/dsp16xx/dsp16xx.h: Likewise.
14774         * config/elxsi/elxsi.h: Likewise.
14775         * config/fr30/fr30.h: Likewise.
14776         * config/h8300/h8300.h: Likewise.
14777         * config/i370/i370.h: Likewise.
14778         * config/i386/i386.h: Likewise.
14779         * config/m68k/m68k.h: Likewise.
14780         * config/mips/mips.h: Likewise.
14781         * config/ns32k/ns32k.h: Likewise.
14782         * config/pdp11/pdp11.h: Likewise.
14783         * config/pj/pj.h: Likewise.
14784         * config/s390/s390.h: Likewise.
14785         * config/sh/sh.h: Likewise.
14786         * config/stormy16/stormy16.h: Likewise.
14787         * config/v850/v850.h: Likewise.
14788         * config/vax/vax.h: Likewise.
14789         * config/we32k/we32k.h: Likewise.
14790
14791 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14792
14793         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
14794         (altivec_lvsl): Change constraint to b.
14795         (altivec_lvsr): Same.
14796         (altivec_lvebx): Same.
14797         (altivec_lvehx): Same.
14798         (altivec_lvewx): Same.
14799         (altivec_lvxl): Same.
14800         (altivec_lvx): Same.
14801         (altivec_stvx): Add parallel.
14802         (altivec_stvxl): Same.
14803         (altivec_stvehx): Same.
14804         (altivec_stvebx): Same.
14805         (altivec_stvebx): Same.
14806
14807 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14808
14809         * config.gcc: Change altivec.h to altivec-defs.h.
14810
14811         * config/rs6000/altivec.h: Delete.
14812
14813         * config/rs6000/altivec-defs.h: Add.
14814
14815 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14816
14817         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
14818         and UMOD modes.
14819
14820         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
14821         less than or equal to eight bytes.
14822
14823         * vax.md (andsi3): Remove constraints and change SET destination
14824         operand type to nonimmediate_operand.
14825         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
14826         when it is a CONST_INT.
14827
14828 2002-01-15  Jason Merrill  <jason@redhat.com>
14829
14830         * c-common.def (FILE_STMT): New code.
14831         * c-common.c (statement_code_p): It's a statement.
14832         * c-common.h (stmt_tree_s): Add x_last_filename.
14833         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
14834         (last_expr_filename): New macro.
14835         * c-semantics.c (begin_stmt_tree): Initialize it.
14836         (add_stmt): If the filename changed, also insert a
14837         FILE_STMT.
14838         (expand_stmt): Handle seeing one.
14839
14840 2002-01-15  Eric Christopher  <echristo@redhat.com>
14841
14842         * flow.c (propagate_one_insn): Add error message and print out
14843         insn for debugging.
14844
14845 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14846
14847         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
14848         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
14849         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
14850         TRAMPOLINE_ALIGNMENT.
14851         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
14852         to be in bits.
14853         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
14854         PCC_BITFIELD_TYPE_MATTERS.
14855         * config/interix.h (STDC_VALUE): Remove.  Use
14856         STDC_0_IN_SYSTEM_HEADERS.
14857         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
14858         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
14859         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
14860
14861 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14862
14863         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
14864         not work on this platform currently.
14865
14866 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14867
14868         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
14869         readonly_warning in _().
14870
14871 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
14872
14873         * gcc.c (delete_if_ordinary): Backout previous change.
14874
14875 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14876
14877         * config/h8300/h8300.c (print_operand): Remove support for
14878         unused operand characters.
14879
14880         * read-rtl.c: Fix formatting.
14881         * real.c: Likewise.
14882         * recog.c: Likewise.
14883         * regclass.c: Likewise.
14884         * regmove.c: Likewise.
14885         * reg-stack.c: Likewise.
14886         * reload1.c: Likewise.
14887         * rtlanal.c: Likewise.
14888
14889 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14890
14891         * config/i386/i386.c: Fix formatting.
14892
14893 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
14894
14895         * c-typeck.c (process_init_element): Don't save_expr
14896         COMPOUND_LITERAL_EXPR if just its initializer will be used.
14897
14898 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
14899
14900         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
14901         emit optional traceback table if optimize_size or TARGET_ELF.
14902         * config/rs6000/rs6000.md (prefetch): New.
14903
14904 2002-01-15  Andreas Jaeger  <aj@suse.de>
14905
14906         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
14907
14908 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14909
14910         * mips-tfile.c: Fix formatting.
14911
14912 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14913
14914         * unroll.c (final_reg_note_copy): Fix previous commit.
14915
14916 2002-01-14  Kazu Hirata  <kazu@hxi.com>
14917
14918         * config/h8300/h8300-protos.h: Remove the prototype for
14919         eq_operator.
14920         * config/h8300/h8300.c (eq_operator): Remove.
14921
14922 2002-01-14  Richard Henderson  <rth@redhat.com>
14923
14924         * config/i386/i386.md (prefetch): Tidy.
14925         (prefetch_3dnow): Fix locality operand.
14926
14927 2002-01-14  Richard Henderson  <rth@redhat.com>
14928
14929         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
14930         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
14931
14932 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
14933
14934         * reload1.c (reload_combine): Pass reg_sum replacement through
14935         copy_rtx in loop performing multiple changes.
14936
14937 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
14938
14939         * except.c (remove_unreachable_regions): New.
14940         (free_eh_status): Clear exception_handler_labels.
14941         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
14942         (find_exception_handler_labels): Don't add the same label more than
14943         once.
14944         (remove_exception_handler_label): Don't die if
14945         find_exception_handler_labels hasn't been called for the current
14946         function yet.
14947
14948 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
14949
14950         * toplev.c (rest_of_compilation): Rebuild jump labels after
14951         gcse.
14952
14953 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
14954
14955         * doc/extend.texi: Move documentation of X86 built-in functions
14956         here.
14957         * doc/invoke.texi: From here.
14958         * doc/sourcebuild.texi: Document location of documentation for
14959         machine built-in functions.
14960
14961 2002-01-13  Christopher Faylor  <cgf@redhat.com>
14962
14963         * cppfiles.c (TEST_THRESHOLD): New macro.
14964         (SHOULD_MMAP): Ditto.
14965         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
14966         be used.
14967
14968 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14969
14970         * unroll.c (final_reg_note_copy): Properly handle
14971         REG_LABEL
14972         (unroll_loops): Fix LOOP_CONDITION heuristics.
14973
14974 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
14975
14976         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
14977         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
14978
14979 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14980
14981         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
14982         threaded loop.
14983
14984 2002-01-14  Tom Rix  <trix@redhat.com>
14985
14986         * config/rs6000/rs6000.md: Fix typo with sradi.
14987
14988 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
14989
14990         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
14991         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
14992         (clrstrdi, clrstrsi): Adapt callers.
14993
14994         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
14995
14996         (movti splitter): Never use register 0 as base register.
14997
14998 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14999
15000         * combine.c (simplify_shift_const): Always generate new rtx
15001         for shift expression instead of reusing given expression.
15002
15003 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15004
15005         * config/alpha/alpha.c (alpha_expand_mov): Don't call
15006         alpha_legitimize_address unless mode is Pmode.
15007
15008 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
15009
15010         * doc/md.texi (Modifiers): Document the '*' constraint for the
15011         user.
15012
15013         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
15014         * doc/extend.texi (Function Attributes): 'interrupt' is valid
15015         for xstormy16 too.
15016
15017 2002-01-13  Richard Henderson  <rth@redhat.com>
15018
15019         * reload.c (find_reloads): Use a hard reg destination as reload reg
15020         for an input reload of the source.
15021
15022 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15023
15024         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
15025         more generic.
15026
15027 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
15028
15029         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15030         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15031
15032         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
15033
15034 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15035
15036         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
15037
15038 2002-01-12  Tom Rix  <trix@redhat.com>
15039
15040         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
15041         TARGET_POWERPC64.
15042
15043 2002-01-12  Richard Henderson  <rth@redhat.com>
15044
15045         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
15046
15047         * doc/invoke.texi: Update Alpha options.
15048
15049         * doc/invoke.texi: Update i386 built-in function lists.
15050
15051 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
15052
15053         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
15054         referencing outside.
15055
15056 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15057
15058         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
15059         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
15060         offsets, and change line folding.
15061         * optabs.c (expand_binop): Remove warnings.
15062         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
15063
15064 2002-01-12  Graham Stott <grahams@redhat.com>
15065
15066         * attribs.c (handle_deprecated_attribute): constify WHAT.
15067         * diagnostic.c (warn_deprecated_use): Add braces, fixes
15068         dangling else warning and constify WHAT.
15069         * except.h (struct function, struct inline_remap): Move
15070         struct tag forward defs before all prototypes.
15071         (duplicate_eh_regions): Whitespace.
15072
15073 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
15074
15075         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
15076         MODE_BASE_REG_CLASS.
15077         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
15078
15079 2002-01-12  Richard Henderson  <rth@redhat.com>
15080
15081         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
15082         (ix86_expand_vector_move): New.
15083         (bdesc_2arg): Remove andps, andnps, orps, xorps.
15084         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
15085         Remove old prefetch builtins.  Special case the logicals removed above.
15086         (ix86_expand_builtin): Likewise.
15087         (safe_vector_operand): Use V4SFmode, not TImode.
15088         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
15089         (ix86_expand_timode_binop_builtin): New.
15090         * config/i386/i386-protos.h: Update.
15091         * config/i386/i386.h (enum ix86_builtins): Update.
15092         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
15093         Use ix86_expand_vector_move in vector move expanders.
15094         (movti_internal, movti_rex64): Add xorps alternative.
15095         (sse_clrv4sf): Rename and adjust from sse_clrti.
15096         (prefetch): Don't work so hard.
15097         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
15098         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
15099         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
15100
15101 2002-01-11  Richard Henderson  <rth@redhat.com>
15102
15103         * config/i386/mmintrin.h: New file.
15104         * config/i386/xmmintrin.h: New file.
15105         * config.gcc (i?86-*-*): Add extra_headers.
15106         * simplify-rtx.c (simplify_unary_operation): Handle saturating
15107         truncation codes.
15108         (simplify_binary_operation): Handle saturating arithmetic codes.
15109         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
15110         not the lowpart subreg.
15111         (ix86_expand_builtin): Return a TImode dummy register instead of 0
15112         on error.
15113         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
15114
15115 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15116
15117         * conflict.c (conflict_graph_compute): Free regsets when finished.
15118         * ssa.c (compute_coalesced_reg_partition): Likewise.
15119
15120 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15121
15122         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
15123         every where we allocate a register.
15124
15125 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15126
15127         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
15128         * lcm.c (compute_earliest, compute_farthest): Likewise.
15129
15130 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15131
15132         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
15133
15134 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15135
15136         * doc/rtl.texi (Insns): Fix 2 typos.
15137
15138 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
15139
15140         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
15141         options.  Use @table @gcctabopt for MMIX options.  Add index
15142         entries for MMIX options.  Start new paragraph with first
15143         heading of the machine-dependent options.
15144
15145 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15146
15147         PR other/5299
15148         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
15149         * combine.c (force_to_mode): Same.
15150         * reload1.c (clear_reload_reg_in_use): Same.
15151
15152 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
15153
15154         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
15155         and 'subtargets'.
15156
15157 2002-01-11  Andreas Jaeger  <aj@suse.de>,
15158             Brad Lucier <lucier@math.purdue.edu>
15159
15160         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
15161         mcpu.
15162
15163 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
15164
15165         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
15166         Protect with IN_LIBGCC.
15167         (LINK_EH_SPEC): Add required trailing space.
15168
15169 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15170
15171         * c-tree.h: Move function declarations so that they are listed
15172         under the filename which contains them.
15173         (check_identifier, finish_decl_top_level,
15174         lookup_name_current_level_global, shadow_record_fields): Remove.
15175
15176 2002-01-11  Andreas Jaeger  <aj@suse.de>
15177
15178         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
15179         march.
15180
15181 2002-01-10  Richard Henderson  <rth@redhat.com>
15182
15183         * config/alpha/alpha.c (print_operand): Add 'J'.
15184         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
15185         new operand with the sequence number for the lituse.  When splitting
15186         the insns, use gen_movdi_er_high_g and generate a sequence number.
15187         (gen_movdi_er_high_g): Print the sequence number if non-zero.
15188
15189 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
15190
15191         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
15192         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
15193         stvxl.
15194         (altivec_expand_builtin): Same.
15195         (altivec_expand_stv_builtin): New.
15196
15197         * config/rs6000/rs6000.h (rs6000_builtins): Same.
15198
15199         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
15200         ("altivec_lvehx"): New.
15201         ("altivec_lvewx"): New.
15202         ("altivec_lvxl"): New.
15203         ("altivec_lvx"): New.
15204         ("altivec_stvx"): New.
15205         ("altivec_stvebx"): New.
15206         ("altivec_stvehx"): New.
15207         ("altivec_stvewx"): New.
15208         ("altivec_stvxl"): New.
15209
15210 2002-01-10  Richard Henderson  <rth@redhat.com>
15211
15212         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
15213         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
15214         care not to delete instructions twice.
15215
15216 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15217
15218         * toplev.c: Don't declare environ (it's not used anywhere).
15219         * configure.in: Don't check for declaration of environ.
15220         * config/i386/xm-mingw32.h: Don't #define environ.
15221         * config.in, configure: Regenerate.
15222
15223 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15224
15225         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
15226         * configure: Regenerate.
15227
15228         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
15229         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
15230         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
15231         alpha/xm-vms.h.
15232         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
15233         LIMITS_H_TEST here, not in m68k/x-next.
15234         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
15235         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
15236
15237         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
15238         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
15239         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
15240
15241         * config/i386/x-djgpp: Renamed i386/t-djgpp.
15242         * config/m88k/x-dolph: Renamed m88k/t-dolph.
15243         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
15244         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
15245         replacement of quadlib.asm with quadlib.c.
15246
15247         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
15248         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
15249         config/rs6000/xm-beos.h: Delete file.
15250
15251         * config.gcc: Update to match above changes.
15252
15253 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15254
15255         * config/h8300/h8300.h: Fix comment typos.
15256         * config/h8300/h8300.md: Likewise.
15257         * config/h8300/lib1funcs.asm: Likewise.
15258
15259 2002-01-10  Dale Johannesen  <dalej@apple.com>
15260
15261         PR optimization/5269
15262         * unroll.c (precondition_loop_p): Make *increment be the correct
15263         sign when n_iterations known, to avoid confusing caller.
15264
15265 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15266
15267         * doc/extend.texi (deprecated): Fix a typo.
15268
15269 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15270
15271         * basic-block.h (update_br_prob_note): Declare.
15272         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
15273         (try_forward_edges): Care negative frequencies and update note.
15274         (outgoing_edges_match): Tweek conditional merging heuristics.
15275         (try_crossjump_to_edge): use update_br_prob_note.
15276         * cfglayout.c (fixup_reorder_chain): Likewise.
15277         * cfrtl.c (update_br_prob_note): New.
15278         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
15279
15280         * i386.c (ix86_decompose_address): Return -1 if address contains
15281         shift.
15282         (legitimate_address_p): Require ix86_decompose_address to return 1.
15283
15284         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
15285         (cprop_insn): Likewise.
15286
15287 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15288
15289         * toplev.c: Fix formatting.
15290         * tree.c: Likewise.
15291         * tree-dump.c: Likewise.
15292         * unroll.c: Likewise.
15293         * unwind-dw2.c: Likewise.
15294         * unwind-dw2-fde.c: Likewise.
15295         * unwind-dw2-fde-glibc.c: Likewise.
15296         * unwind-sjlj.c: Likewise.
15297
15298 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15299
15300         * doc/invoke.texi: Document PDP-11 options.
15301
15302 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15303
15304         * config/h8300/h8300.h: Fix formatting.
15305
15306 2002-01-10  Ira Ruben   <ira@apple.com>
15307
15308         Add __attribute__ ((deprecated)).
15309         * extend.texi: Document __attribute__ ((deprecated)).
15310         * invoke.texi: Document -Wno-deprecated-declarations.
15311         * testsuite/g++.dg/other/deprecated.C: New C++ test.
15312         * testsuite/gcc.dg/deprecated.c: New C test.
15313         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
15314         (c_common_attribute_table): Add "deprecated" entry.
15315         (handle_deprecated_attribute): New function.
15316         * c-decl.c (deprecated_states): New enum.
15317         deprecated_state: State of "deprecated" handling.
15318         (start_decl): Set deprecated_state based on attributes.
15319         (grokdeclarator): Test for deprecated uses, propagate attribute.
15320         * c-typeck.c (build_component_ref): Test for deprecated fields.
15321         (build_external_ref): Test for deprecated primaries.
15322         * diagnostic.c (warn_deprecated_use) New function to issue
15323         warnings about __attribute__ ((depricated)) references.
15324         * flags.h (warn_deprecated_decl): Extern declared for
15325         -W[no-]deprecated-declarations option.
15326         * print-tree.c (print_node): Show deprecated flag status.
15327         * toplev.c (warn_deprecated_decl): Defined.
15328         (W_options): Added "deprecated-declaration".
15329         * toplev.h (warn_deprecated_use): Extern declared.
15330         * tree.h (struct tree_common): Define deprecated_flag.
15331         (TREE_DEPRECATED): New macro to access flag.
15332         * cp/call.c (build_call): Test for deprecated calls.
15333         * cp/class.c (add_implicitly_declared_members): Set global
15334         flag to tell grokdeclarator to not issue deprecated warnings.
15335         * cp/cp-tree.h: Add extern for adding_implicit_members.
15336         * cp/decl.c (deprecated_states): New enum.
15337         (start_decl): Set deprecated_state based on attributes.
15338         (grokdeclarator): Test for deprecated uses, propagate attribute.
15339         * cp/lex.c (do_identifier): Test for deprecated primaries.
15340         * cp/typeck.c (build_component_ref): Test for deprecated fields.
15341
15342 2002-01-10  Ira Ruben   <ira@apple.com>
15343
15344         Fix to assign attributes to inline member functions.
15345         * cp/decl.c (start_method): Handle attrlist.
15346
15347 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15348
15349         * combine.c (expand_field_assignment): Use subreg_lsb().
15350
15351 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
15352
15353         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
15354         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
15355         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
15356         Recurse for any operand of AND as long as constant is non-zero.
15357
15358 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15359
15360         * config/h8300/h8300.md: Remove constraints from expanders.
15361
15362 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15363
15364         * varasm.c: Fix formatting.
15365         * varray.c: Likewise.
15366         * vmsdbgout.c: Likewise.
15367         * xcoffout.c: Likewise.
15368
15369 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15370
15371         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
15372         update edge probabilities to match.
15373
15374 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15375
15376         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
15377         dependencies.
15378         * doc/languages.texi, doc/sourcebuild.texi: New files.
15379         * doc/configfiles.texi: Make a subsubsection.  Update.
15380         * doc/configterms.texi: Add @node.  Remove warning that this isn't
15381         instructions for building GCC.
15382         * doc/makefile.texi: Make a subsection.
15383         * doc/gccint.texi: Update.
15384
15385 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
15386
15387         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
15388
15389 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15390
15391         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
15392
15393 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
15394
15395         * optabs.c (expand_fix): Look for wider integer modes first.
15396
15397         * i386.md (mov?f): Avoid the fake const double trick for medium
15398         memory model.
15399         (min?f*/max?f*): Prohibit memory operands for i387 variant.
15400         (fop_df_4): Disable for SSE compilation.
15401
15402 2002-01-10  Graham Stott  <grahams@redhat.com>
15403
15404         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
15405         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
15406
15407 2002-01-10  Richard Henderson  <rth@redhat.com>
15408
15409         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
15410
15411 2002-01-10  Richard Henderson  <rth@redhat.com>
15412
15413         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
15414         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
15415
15416 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15417
15418         * combine.c (can_combine_p): Fix a comment typo.
15419
15420 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
15421
15422         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
15423         empty list correctly.  Change loop index $t to $f for
15424         consistency with rest of Makefile.
15425
15426 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
15427
15428         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
15429         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15430
15431         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
15432         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
15433         (altivec_init_builtins): Same.
15434         (altivec_expand_unop_builtin): Return NULL_RTX on error.
15435         (altivec_expand_binop_builtin): Same.
15436         (altivec_expand_ternop_builtin): Same.
15437         (bdesc_dst): New.
15438
15439         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
15440         ("altivec_vctuxs"): Fix typo.
15441         ("altivec_vnmsubfp"): Same.
15442         ("altivec_dssall"): New.
15443         ("altivec_mfvscr"): New.
15444         ("altivec_dss"): New.
15445         ("altivec_lvsl"): New.
15446         ("altivec_lvsr"): New.
15447         ("altivec_dstt"): New.
15448         ("altivec_dstst"): New.
15449         ("altivec_dststt"): New.
15450         ("altivec_dst"): New.
15451
15452         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
15453         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15454
15455 2002-01-09  Richard Henderson  <rth@redhat.com>
15456
15457         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
15458
15459 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
15460
15461         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
15462         function.
15463         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
15464         prototype.
15465         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
15466
15467 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15468
15469         * read-rtl.c: Fix formatting.
15470         * real.c: Likewise.
15471         * regclass.c: Likewise.
15472         * regrename.c: Likewise.
15473         * reg-stack.c: Likewise.
15474         * reload1.c: Likewise.
15475         * reload.c: Likewise.
15476         * rtl.c: Likewise.
15477
15478 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15479
15480         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
15481         to extract items in the expr_list chain.
15482
15483 2002-01-09  Richard Henderson  <rth@redhat.com>
15484
15485         * config/vax/vax.c (vax_rtx_cost): Never abort.
15486
15487         * config/vax/vax.h (REAL_ARITHMETIC): Define.
15488
15489 2002-01-09  Jan Hubicka  <jh@suse.cz>
15490
15491         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
15492
15493 2002-01-09  Richard Henderson  <rth@redhat.com>
15494
15495         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
15496         Unify code from various alternatives.
15497
15498 2002-01-09  Richard Henderson  <rth@redhat.com>
15499
15500         * regrename.c (copy_value): Ignore the copy if the source register
15501         is present in the value chain with a narrower mode.
15502
15503 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
15504
15505         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
15506         for the c4x target. Also improve layout.
15507
15508 2002-01-09  Richard Henderson  <rth@redhat.com>
15509
15510         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
15511         * config/m32r/m32r.md (and ior xor splitters): Swap operands
15512         to match insn patterns.
15513
15514 2002-01-09  Richard Henderson  <rth@redhat.com>
15515
15516         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
15517         (copyprop_hardreg_forward_1): Likewise.
15518
15519 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15520
15521         * pa.md (decrement_and_branch_until_zero): Change predicate for
15522         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
15523
15524 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
15525
15526         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
15527         gets undefined. For Darwin.
15528
15529 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15530
15531         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
15532
15533 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15534
15535         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
15536
15537 2002-01-08  Richard Henderson  <rth@redhat.com>
15538
15539         * regrename.c (copy_value): Ignore overlapping copies.
15540
15541 2002-01-08  Richard Henderson  <rth@redhat.com>
15542
15543         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
15544         as needed to avoid shared structure.
15545
15546 2002-01-08  Kazu Hirata  <kazu@hxi.com>
15547
15548         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
15549         H8/300H and H8/S.
15550
15551 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15552
15553         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
15554         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
15555         documentation of obsolete macros.
15556         * system.h: Poison these macros.
15557         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
15558         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
15559         config/c4x/c4x.h, config/clipper/clipper.h,
15560         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
15561         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
15562         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
15563         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
15564         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15565         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
15566         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
15567         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
15568         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
15569         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
15570         config/sparc/sparc.h, config/stormy16/stormy16.h,
15571         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
15572         definitions and commented out definitions of obsolete macros.
15573         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
15574         of MAX_INT_TYPE_SIZE.
15575
15576 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
15577
15578         * config/s390/s390.c (s390_preferred_reload_class): Never
15579         return ADDR_REGS if it isn't a subset of the given class.
15580         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
15581         FP_REGS, but all superclasses as well.
15582
15583         * config/s390/s390.c (s390_function_profiler): Fix thinko.
15584
15585         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
15586         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
15587         must not be a const_int.
15588
15589 2002-01-08  Richard Henderson  <rth@redhat.com>
15590
15591         * Makefile.in (toplev.o): Depend on options.h.
15592         (gcc.o): Depend on specs.h.
15593
15594 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
15595
15596         * expr.c (store_expr): Convert VOIDmode constants back to target's
15597         mode.
15598
15599 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15600
15601         * doc/invoke.texi: Markup gcc as @command.  Refer to
15602         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
15603         of http://gcc.gnu.org/thanks.html.
15604
15605 2002-01-08  Dale Johannesen  <dalej@apple.com>
15606
15607         * config/rs6000/rs6000.md: Add missing int register
15608         target case to movdf_low.
15609
15610 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
15611
15612         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
15613         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
15614         (cppinit.o): Depend on except.h.
15615         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
15616         s-specs): New rules.
15617
15618         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
15619         Don't create specs.h/options.h/gencheck.h here.  Remove
15620         unnecessary variable settings from last argument of AC_OUTPUT.
15621         * config.in, configure: Regenerate.
15622         * intl.c: Hardcode package name as "gcc".
15623
15624         * cppinit.c: Include except.h.
15625         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
15626         appropriate.
15627         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
15628         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
15629         (!)USING_SJLJ_EXCEPTIONS.
15630         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
15631
15632 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15633
15634         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
15635         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
15636         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
15637         documentation of obsolete macros.
15638         * system.h: Poison these macros.
15639         * config/d30v/d30v.h, config/ns32k/encore.h,
15640         config/stormy16/stormy16.h: Remove definitions and commented out
15641         definitions of obsolete macros.
15642
15643 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
15644
15645         * objc/objc-act.c (handle_class_ref): Mark the declaration of
15646         %sobjc_class_ref_%s as used - to prevent unwanted compiler
15647         warnings.
15648
15649 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
15650
15651         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
15652         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
15653         to insn adjusting stack/frame pointer.
15654         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
15655         accept operands that cause the insn to be non-splittable.
15656
15657 2002-01-08  Graham Stott  <grahams@redhat.com>
15658
15659         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
15660         (C_TYPE_FIELDS_VOLATILE): Likewise.
15661         (C_TYPE_BEING_DEFINED): Likewise.
15662         (C_IS_RESERVED_WORD): Likewise.
15663         (C_TYPE_VARIABLE_SIZE): Likewise.
15664         (C_DECL_VARIABLE_SIZE): Likewise.
15665         (C_MISSING_PROTOTYPE_WARNED): Likewise.
15666         (C_SET_EXP_ORIGINAL_CODE): Likewise.
15667         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
15668         parenthesis.
15669         (C_DECL_ANTICIPATED): Likewise.
15670         (c_build_type_variant): Add parenthesis.
15671
15672 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15673
15674         * gcc.c (option_map): Remove --version.
15675         (process_command): Handle -fversion following the GNU Coding
15676         Standards.  Partially addresses PR other/704.
15677
15678 2002-01-08  Graham Stott  <grahams@redhat.com>
15679
15680         * combine.c (combine_instructions): Fix typo.
15681
15682 2002-01-08  Graham Stott  <grahams@redhat.com>
15683
15684         * debug.h: Use "tree" and "rtx" throughout.
15685
15686         * debug.c: Likewise.
15687
15688 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
15689
15690         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
15691         constant pool, use the pool's version of the symbol instead.
15692
15693 2002-01-07  Richard Henderson  <rth@redhat.com>
15694
15695         * regrename.c (find_oldest_value_reg): Ignore the value chain if
15696         the original register was copied in a mode with a fewer number of
15697         hard registers than the desired mode.
15698         (copyprop_hardreg_forward_1): Likewise.
15699         (debug_value_data): Fix loop test.
15700         * toplev.c (parse_options_and_default_flags): Reenable
15701         -fcprop-registers at -O1.
15702
15703 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15704
15705         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
15706         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
15707
15708         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
15709         predicates.
15710
15711         * config/rs6000/rs6000.md: Add altivec predicate patterns.
15712
15713 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15714
15715         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
15716         (pa_output_function_prologue): Output local label at the beginning of
15717         the prologue when profiling.
15718         (hppa_profile_hook): Use the local label rather than the function label.
15719         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
15720
15721 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15722
15723         * config/rs6000/rs6000.c (print_operand): Remove extra space.
15724         (altivec_expand_unop_builtin): Fix thinko.
15725         (altivec_expand_binop_builtin): Same.
15726         (altivec_expand_ternop_builtin): Same.
15727         (altivec_expand_builtin): Same.
15728
15729 2002-01-07  Richard Henderson  <rth@redhat.com>
15730
15731         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
15732
15733 2002-01-07  Jason Merrill  <jason@redhat.com>
15734
15735         * unwind-dw2.c (execute_cfa_program): Use < again.
15736
15737 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15738
15739         * predict.c (combine_predictions_for_insn): Avoid division by zero.
15740
15741 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15742
15743         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
15744         Don't allow -1 - x -> ~x simplifications in the first pass.
15745
15746 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15747
15748         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
15749         arguments.
15750         (altivec_expand_binop_builtin): Same.
15751         (altivec_expand_unop_builtin): Same.
15752         (print_operand): Fix typo.
15753         (bdesc_1arg): Add vupk* variants.
15754
15755         * rs6000.h (rs6000_builtins): Add vupk* enums.
15756
15757         * rs6000.md: Add altivec_vupk* variants.
15758
15759 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
15760
15761         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
15762         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
15763         and last update dates.
15764
15765 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
15766
15767         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
15768
15769 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15770
15771         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
15772         * config/avr/avr.h (CPP_SPEC): Likewise.
15773         (LINK_SPEC): Likewise.
15774         (CRT_BINUTILS_SPECS): Likewise.
15775         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15776         * doc/invoke.texi (AVR Options): Document them.
15777
15778 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15779
15780         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
15781         LABEL_NUSES.
15782
15783 2002-01-07  Graham Stott  <grahams@redhat.com>
15784
15785         * config/i386/i386.h: Update copyright date.
15786         (HALF_PIC_PTR): Add parenthesis.
15787         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
15788         (CONSTANT_ALIGNMENT): Add parenthesis.
15789         (DATA_ALIGNMENT): Likewise.
15790         (LOCAL_ALIGNMENT): Likewise.
15791         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
15792         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
15793         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
15794         (HARD_REGNO_NREGS): Add paranethesis.
15795         (VALID_SSE_REG_MODE): Whitespace.
15796         (VALID_MMX_REG_MODE): Whitespace.
15797         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
15798         (ix86_hard_regno_mode_ok): Add parenthesis.
15799         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
15800         (RETURN_IN_MEMORY): Whitespace.
15801         (N_REG_CLASSES): Add parenthesis.
15802         (INTEGER_CLASS_P): Add parenthesis and wrap.
15803         (FLOAT_CLASS_P): Likewise.
15804         (SSE_CLASS_P): Likewise.
15805         (MMX_CLASS_P): Likewise.
15806         (MAYBE_INTEGER_CLASS_P): Likewise.
15807         (MAYBE_FLOAT_CLASS_P): Likewise.
15808         (MAYBE_SSE_CLASS_P): Likewise.
15809         (MAYBE_MMX_CLASS_P): Likewise.
15810         (Q_CLASS_P): Likewise.
15811         (GENERAL_REGNO_P): Uppercase macro parameter.
15812         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
15813         (FP_REGNO_P): Likewise.
15814         (ANY_FP_REGNO_P): Uppercase macro parameter.
15815         (SSE_REGNO_P): Likewise.
15816         (SSE_REGNO): Likewise.
15817         (SSE_REG_P): Likewise.
15818         (SSE_FLOAT_MODE_P): Likewise.
15819         (MMX_REGNO_P): Likewise.
15820         (MMX_REG_P):Likewise.
15821         (STACK_REG_P): Likewise.
15822         (NON_STACK_REG_P): Likewise.
15823         (STACK_TOP_P): Likewise.
15824         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
15825         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
15826         (SECONDARY_MEMORY_NEEDED): Likewise.
15827         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
15828         (MD_ASM_CLOBBERS): Whitespace and wrap.
15829         (MUST_PASS_IN_STACK): Whitespace and wrap.
15830         (RETURN_POPS_ARGS): Add parenthesis.
15831         (INIT_CUMULATIVE_ARGS): Likewise.
15832         (FUNCTION_ARG): Likewise.
15833         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
15834         (SETUP_INCOMING_VARARGS): Likewise.
15835         (BUILD_VA_LIST_TYPE):  Add parenthesis.
15836         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
15837         parenthsis.
15838         (EXPAND_BUILTIN_VA_ARG): Likewise.
15839         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
15840         (INITIALIZE_TRAMPOLINE): Add parenthesis.
15841         (INITIAL_ELIMINATION_OFFSET): Likewise.
15842         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
15843         (REGNO_OK_FOR_BASE_P): Likewise.
15844         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
15845         (REGNO_OK_FOR_DIREG_P): Likewise.
15846         (REG_OK_FOR_INDEX_P): Whitespace.
15847         (REG_OK_FOR_BASE_P): Whitespace.
15848         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
15849         parenthesis.
15850         (FIND_BASE_TERM): Fix typo.
15851         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
15852         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
15853         (SYMBOLIC_CONST; Whitespace.
15854         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
15855         (ENCODE_SECTION_INFO): Whitespace.
15856         (FINALIZE_PIC): Remove do { ... } while (0).
15857         (PROMOTE_MODE): Wrap in do { ... } while (0).
15858         (CONST_COSTS): Whitespace.
15859         (RTX_COSTS): Add paramethesis, whitespace and wrap.
15860         (REGISTER_MOVE_COST): Add parenthesis.
15861         (MEMORY_MOVE_COST): Likewise.
15862         (EXTRA_CC_MODES): Whitespace.
15863         (SELECT_CC_MODE): Add parenthesis and whitespace.
15864         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
15865         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
15866         (ASM_OUTPUT_LABEL): Add paramethesis.
15867         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
15868         (ASM_OUTPUT_REG_POP): Likewise.
15869         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
15870         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15871
15872         * config/i386/i386.c: Update copyright.
15873         (CHECK_STACK_LIMIT): Add parenthesis.
15874         (AT_BP): Uppercase macro parameter.
15875         (x86_64_int_parameter_registers): Constify.
15876         (x86_64_int_return_registers): Likewise.
15877         (ix86_compare_op0): Use rtx.
15878         (construct_container): Constify INTREG parameter.
15879         (function_arg): Use rtx.
15880
15881         * diagnostic.h: Update copyright date.
15882         (output_buffer_state): Add parenthesis.
15883         (output_buffer_format_args): Likewise.
15884
15885         * combine.c (combine_instructions): Replace XEXP (links, 0)
15886         with link.
15887
15888 2002-01-06  H.J. Lu <hjl@gnu.org>
15889
15890         * cfgcleanup.c (thread_jump): Fix 2 typos.
15891
15892 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
15893
15894         * config.gcc: Add support for --enable-altivec.
15895
15896 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15897
15898         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
15899
15900 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
15901
15902         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
15903         __objc_class_name_*.
15904
15905 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15906
15907         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
15908
15909 2002-01-06  Richard Henderson  <rth@redhat.com>
15910
15911         * reorg.c (emit_delay_sequence): Remove death notes, not merely
15912         nop them out.  Increment label reference count for REG_LABEL.
15913         (fill_slots_from_thread): Frob label reference count around
15914         delete_related_insns.
15915
15916 2002-01-05  Richard Henderson  <rth@redhat.com>
15917
15918         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
15919         jump threading.
15920
15921 2002-01-05  Richard Henderson  <rth@redhat.com>
15922
15923         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
15924         * integrate.c (output_inline_function): Likewise.
15925         * toplev.c (rest_of_compilation): Do it here instead.  Move call
15926         to remove_unnecessary_notes after emitting abstract instance.
15927         Force an emitted nested function to have its parent emited as well.
15928         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
15929         for null.
15930         (rtl_for_decl_location): Do not look at reload data structures
15931         before reload has run.
15932
15933 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15934
15935         * cse.c: Fix formatting.
15936         * dwarf2asm.c: Likewise.
15937         * dwarf2out.c: Likewise.
15938         * explow.c: Likewise.
15939         * expmed.c: Likewise.
15940         * function.c: Likewise.
15941         * gcov.c: Likewise.
15942         * gencheck.c: Likewise.
15943         * genrecog.c: Likewise.
15944         * ggc-common.c: Likewise.
15945         * ggc-page.c: Likewise.
15946         * global.c: Likewise.
15947
15948 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15949
15950         * combine.c: Fix formatting.
15951
15952 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
15953
15954         PR middle-end/1557
15955         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
15956
15957 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
15958
15959         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
15960         as 1 for __powerpc64__ as well.
15961
15962         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
15963
15964         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
15965         return it.
15966
15967 2002-01-05  Daniel Berlin  <dan@dberlin.org>
15968
15969         * lcm.c: Revert change, due to performance regression it causes on
15970         SPEC because it's slightly more conservative (sigh, I hate
15971         edge-based LCM).
15972
15973 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
15974
15975         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
15976
15977 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15978
15979         * doc/cppinternals.texi: Update.
15980
15981 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
15982
15983         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
15984         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
15985         negatives.
15986         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
15987         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
15988         kludge for pre-october-14th mmix versions to handle new-found bug
15989         with PUSHJ/PUSHGO and the register stack.
15990         * config/mmix/mmix.h (struct machine_function): Rename member
15991         has_call_value_without_parameters to has_call_without_parameters.
15992         All referers changed.
15993         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
15994         TARGET_MASK_BRANCH_PREDICT): New macros.
15995         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
15996         -mno-reg-stack-fill-bug-workaround.
15997         * config/mmix/mmix.md ("call"): Set struct machine member
15998         has_call_without_parameters.
15999
16000 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
16001
16002         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
16003
16004 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
16005
16006         * cfgcleanup.c: Include tm_p.h
16007         (mark_effect): Fix handling of hard register; fix handling of SET
16008
16009 2002-01-04  Kazu Hirata  <kazu@hxi.com>
16010
16011         * config/h8300/h8300.md (anonymous patterns): Check that
16012         operands are registers before using REGNO on them.
16013
16014 2002-01-03  Roland McGrath  <roland@frob.com>
16015
16016         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
16017
16018 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
16019
16020         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
16021         * c-common.h (genrtl_expr_stmt_value): Likewise.
16022         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
16023         (expand_expr_stmt_value): Add maybe_last argument.
16024         Don't warn about statement with no effect if it is the last statement
16025         in expression statement.
16026         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
16027         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
16028         expand_expr_stmt_value.
16029         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
16030         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
16031         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
16032         as maybe_last to expand_expr_stmt_value.
16033
16034 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
16035
16036         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
16037         be passed in, do not build it.
16038         (c_begin_if_stmt): New function.
16039         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16040         * c-common.h (c_expand_start_cond): Update prototype.
16041         (c_begin_if_stmt): Prototype new function.
16042         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16043         * c-parse.in (if_prefix): Use c_begin_if_stmt,
16044         c_begin_while_stmt and c_finish_while_stmt_cond.
16045
16046 2002-01-04  William Cohen  <wcohen@redhat.com>
16047
16048         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
16049         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16050         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16051         * config/pa/som.h (ASM_FILE_START): Likewise.
16052
16053 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
16054
16055         * lcm.c: Include df.h.
16056         Add available_transfer_function prototype.
16057         (compute_available): Rework to use iterative dataflow framework.
16058         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
16059         with bb_info in df.h
16060         (available_transfer_function): New function.
16061
16062         * Makefile.in (lcm.o): add df.h to dependencies.
16063
16064 2002-01-04  Richard Henderson  <rth@redhat.com>
16065
16066         * config/alpha/alpha.c (some_operand): Accept HIGH.
16067         (input_operand): Likewise; accept simple references to globals.
16068         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
16069         (alpha_const_double_ok_for_letter_p): Likewise.
16070         (alpha_extra_constraint): Likewise.
16071         (alpha_preferred_reload_class): Likewise.  Do not force
16072         symbolic constants to memory.
16073         (alpha_legitimate_address_p): Accept simple references
16074         to small_symbolic_operand.
16075         (alpha_legitimize_address): New arg scratch.  Be prepared to be
16076         called when no_new_pseudos.  Emit simple symbolic references.
16077         Split integers into low, high, and rest.
16078         (alpha_expand_mov): Use alpha_legitimize_address.
16079         (some_small_symbolic_mem_operand): New.
16080         (split_small_symbolic_mem_operand): New.
16081         * config/alpha/alpha-protos.h: Update.
16082         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
16083         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
16084         (EXTRA_CONSTRAINT): Likewise.
16085         (PREFERRED_RELOAD_CLASS): Likewise.
16086         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
16087         (PREDICATE_CODES): Update.
16088         * config/alpha/alpha.md: New post-reload splitters to convert
16089         simplfied symbolic operands to the form that references $29.
16090         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
16091         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
16092
16093 2002-01-03  Richard Henderson  <rth@redhat.com>
16094
16095         * local-alloc.c (function_invariant_p): Update commentary.
16096
16097 2002-01-04  H.J. Lu <hjl@gnu.org>
16098
16099         * toplev.c (rest_of_compilation): Fix a typo when calling
16100         cleanup_cfg.
16101
16102 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16103
16104         * c-common.c: Fix formatting.
16105         * diagnostic.c: Likewise.
16106         * doloop.c: Likewise.
16107         * dwarf2out.c: Likewise.
16108
16109 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16110
16111         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
16112         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
16113
16114 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16115
16116         * cpperror.c: Update comments and copyright.
16117         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
16118         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
16119
16120 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16121
16122         * collect2.c (main): Use strcmp when testing for "-shared".
16123
16124 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16125
16126         * cppmacro.c: Don't include intl.h.  Update comments.
16127         (new_number_token): Allocate enough buffer for 64-bit unsigned
16128         integers; update prototype.
16129         * cppmain.c: Update comments.
16130
16131 2002-01-03  William Cohen  <wcohen@redhat.com>
16132
16133         * function.h (struct function): Add profile.
16134         (current_function_profile): New.
16135         doc/extend.texi: Update documentation.
16136         * final.c (final_start_function): Use current_function_profile
16137         instead of profile_flag.
16138         (profile_after_prologue): Likewise.
16139         * function.c (expand_function_start): Likewise.
16140         (expand_function_start): Likewise.
16141         * config/alpha/alpha.c (direct_call_operand):
16142         (alpha_does_function_need_gp): Likewise.
16143         (alpha_expand_prologue): Likewise.
16144         * config/arm/arm.c (arm_expand_prologue): Likewise.
16145         thumb_expand_prologue: Likewise.
16146         * config/d30v/d30v.c (d30v_stack_info): Likewise.
16147         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
16148         (fr30_expand_prologue): Likewise.
16149         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
16150         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
16151         * config/i386/i386.h (FINALIZE_PIC): Likewise.
16152         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
16153         * config/i960/i960.c (i960_output_function_prologue): Likewise.
16154         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
16155         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
16156         (m32r_expand_prologue): Likewise.
16157         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
16158         (m88k_expand_prologue): Likewise.
16159         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
16160         * config/mips/mips.c (compute_frame_size): Likewise.
16161         (mips_expand_prologue): Likewise.
16162         (mips_can_use_return_insn): Likewise.
16163         * config/pa/elf.h (ASM_FILE_START): Likewise.
16164         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16165         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16166         * config/pa/som.h (ASM_FILE_START): Likewise.
16167         * config/romp/romp.c (romp_using_r14): Likewise.
16168         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
16169         (rs6000_stack_info): Likewise.
16170         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16171         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
16172         * config/v850/v850.c (compute_register_save_size): Likewise.
16173
16174 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
16175
16176         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
16177         gen_lowpart_common fails, use gen_lowpart_SUBREG.
16178
16179 2002-01-03  Turly O'Connor  <turly@apple.com>
16180
16181         * darwin.c (machopic_output_possible_stub_label): Don't generate
16182         stub routines for pseudo-stubs which we've just defined.
16183
16184 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16185
16186         * builtins.c: Fix formatting.
16187         * c-typeck.c: Likewise.
16188         * combine.c: Likewise.
16189         * expr.c: Likewise.
16190         * loop.c: Likewise.
16191
16192 2002-01-03  Andreas Schwab  <schwab@suse.de>
16193
16194         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
16195         and return true if _cpp_push_next_buffer pushed a new include
16196         file.
16197         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
16198         _cpp_pop_file_buffer did not push a new file.
16199         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
16200
16201 2002-01-02  Eric Christopher  <echristo@redhat.com>
16202
16203         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
16204         FIND_REG_INC_NOTE call. Update copyright.
16205         * loop.c (canonicalize_condition): Ditto.
16206         * reorg.c (delete_scheduled_jump): Ditto.
16207
16208 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16209
16210         * gcse.c: Fix formatting.
16211
16212 2002-01-03  Graham Stott  <grahams@redhat.com>
16213
16214         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
16215         forward defs for struct tags rtx_def, union_tree, rtvec_def
16216         also output corresponding typedefs for rtx, tree, and rtvec.
16217
16218         * system.h: Move forward defs for struct tags rtx_def, union_tree,
16219         rtvec_def along with corresponding typedefs for rtx, tree, and
16220         rtvec to config.h, hconfig.h, tconfig.h.
16221
16222 2002-01-03  Graham Stott  <grahams@redhat.com>
16223
16224         * tree.h: Update copyright date.
16225         (IS_EXPR_CODE_CLASS): Add parenthesis.
16226         (TREE_SET_CODE): Add whitespace.
16227         (TREE_CHECK): Add parenthesis.
16228         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
16229         (CST_OR_CONSTRUCTOR_CHECK):
16230         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
16231         (TREE_SYMBOL_REFERENCED): Whitespace.
16232         (INT_CST_LT): Likewise.
16233         (INT_CST_LT_UNSIGNED): Likewise.
16234         (tree_real_cst): Unwrap comment.
16235         (tree_string): Likewise.
16236         (tree_complex): Likewise.
16237         (IDENTIFIER_POINTER): correct cast.
16238         (SAVE_EXPR_CONTEXT): Whitespace.
16239         (EXPR_WFL_FILENAME_NODE): Likewise.
16240         (EXPR_WFL_FILENAME): Remove parenthesis.
16241         (DECL_ORIGIN): Add parenthesis.
16242         (DECL_FROM_INLINE): Use NULL_TREE.
16243         (build_int_2): Whitespace.
16244         (build_type_variant): Add parenthesis.
16245
16246         * gcc/jcf-parse.c: Update copyright date.
16247         (yyparse): Constify resource_filename.
16248
16249 2002-01-03  Graham Stott  <grahams@redhat.com>
16250
16251         * rtl.h: Update copyright date.
16252         (RTL_CHECK1): Wrap long line.
16253         (RTL_CHECK2): Likewise.
16254         (RTL_CHECKC1): Wrap long line and whitespace.
16255         (RTL_CHECKC2): Likewise.
16256         (XWINT): Whitespace.
16257         (XINT): Likewise.
16258         (XSTR): Likewise.
16259         (XEXP): Likewise.
16260         (XVEC): Likewise.
16261         (XMODE): Likewise.
16262         (XBITMAP): Likewise.
16263         (XTREE): Likewise.
16264         (XBBDEF): Likewise.
16265         (XTMPL): Likewise.
16266         (X0WINT): Likewise.
16267         (X0INT):Likewise.
16268         (X0UINT): Likewise.
16269         (X0STR): Likewise.
16270         (X0EXP): Likewise.
16271         (X0VEC): Likewise.
16272         (X0MODE): Likewise.
16273         (X0BITMAP): Likewise.
16274         (X0TREE): Likewise.
16275         (X0BBDEF): Likewise.
16276         (X0ADVFLAGS): Likewise.
16277         (X0CSELIB): Likewise.
16278         (X0MEMATTR): Likewise.
16279         (XCWINT): Likewise.
16280         (XCINT): Likewise.
16281         (XCUINT): Likewise.
16282         (XCSTR): Likewise.
16283         (XCEXP): Likewise.
16284         (XCVEC): Likewise.
16285         (XCMODE): Likewise.
16286         (XCBITMAP): Likewise.
16287         (XCTREE): Likewise.
16288         (XCBBDEF): Likewise.
16289         (XCADVFLAGS): Likewise.
16290         (XCCSELIB): Likewise.
16291         (XC2EXP): Likewise.
16292         (INSN_UID): Likewise.
16293         (PREV_INSN): Likewise.
16294         (PATTERN): Likewise.
16295         (INSN_CODE): Likewise.
16296         (PUT_REG_NOTE_KIND): Likewise.
16297         (CODE_LABEL_NUMBER): Likewise.
16298         (NOTE_SOURCE_FILE): Likewise.
16299         (NOTE_BLOCK): Likewise.
16300         (NOTE_EH_HANDLER): Likewise.
16301         (NOTE_RANGE_INFO): Likewise.
16302         (NOTE_LIVE_INFO): Likewise.
16303         (NOTE_BASIC_BLOCK): Likewise.
16304         (NOTE_EXPECTED_VALUE): Likewise.
16305         (NOTE_LINE_NUMBER): Likewise.
16306         (LABEL_NAME): Likewise.
16307         (LABEL_NUSES): Likewise.
16308         (LABEL_ALTERNATE_NAME): Likewise.
16309         (ADDRESSOF_DECL): Likewise.
16310         (JUMP_LABEL): Likewise.
16311         (LABEL_NEXTREF): Likewise.
16312         (REGNO): Likewise.
16313         (ORIGINAL_REGNO: Likewise.
16314         (HARD_REGISTER_NUM_P): Add parenthesis.
16315         (SUBREG_REG): Whitespace.
16316         (SUBREG_BYTE): Likewise.
16317         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
16318         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
16319         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
16320         (ASM_OPERANDS_INPUT_VEC): Likewise.
16321         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
16322         (ASM_OPERANDS_INPUT): Likewise.
16323         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
16324         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
16325         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
16326         (ASM_OPERANDS_INPUT_MODE): Likewise.
16327         (ASM_OPERANDS_SOURCE_FILE): Likewise.
16328         (ASM_OPERANDS_SOURCE_LINE): Likewise.
16329         (MEM_SET_IN_STRUCT_P): Minor reformat.
16330         (TRAP_CONDITION): Whitespace.
16331         (TRAP_CODE): Likewise.
16332         (COND_EXEC_TEST): Likewise.
16333         (COND_EXEC_CODE): Likewise.
16334         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
16335         (PHI_NODE_P): Add parenthesis.
16336         (plus_constant): Whitespace and add parenthesis.
16337
16338 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16339
16340         * config/avr/avr.c: Fix comment typos.
16341         * config/c4x/c4x.md: Likewise.
16342         * config/dsp16xx/dsp16xx.h: Likewise.
16343         * config/dsp16xx/dsp16xx.md: Likewise.
16344         * config/i386/i386.md: Likewise.
16345         * config/ia64/ia64.c: Likewise.
16346         * config/m32r/m32r.h: Likewise.
16347         * config/m68hc11/m68hc11.md: Likewise.
16348         * config/mmix/mmix.c: Likewise.
16349         * config/mn10200/mn10200.c: Likewise.
16350         * config/romp/romp.c: Likewise.
16351         * config/sh/sh.c: Likewise.
16352         * config/stormy16/stormy16.c: Likewise.
16353         * config/stormy16/stormy16.h: Likewise.
16354         * config/stormy16/stormy16.md: Likewise.
16355
16356 2002-01-03  Graham Stott  <grahams@redhat.com>
16357
16358         * loop.h: Update copyright date.
16359         (LOOP_MOVABLES): Fix typo.
16360         (LOOP_REGS): Likewise.
16361         (LOOP_IVS): Likewise.
16362
16363 2002-01-03  Graham Stott  <grahams@redhat.com>
16364
16365         * cppinit.c: Update copyright date.
16366         Don't include output.h
16367         * Makefile.in: Update copyright date.
16368         Update dependency.
16369
16370 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16371
16372         PR c/5226
16373         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
16374         (-pthread) Add to RS/6000 options.
16375
16376 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16377
16378         * except.c: Fix comment typos.
16379         * loop.c: Likewise.
16380         * varasm.c: Likewise.
16381         * doc/tm.texi: Fix a typo.
16382
16383 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
16384
16385         * c-typeck.c (output_init_element): Allow initializing static storage
16386         duration objects with compound literals.
16387
16388 2002-01-02  Richard Henderson  <rth@redhat.com>
16389
16390         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
16391         after abusing it.
16392
16393 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16394
16395         * gcc.c (default_compilers): Const-ify.
16396         * mips-tdump.c (stab_names): Likewise.
16397         * mips-tfile.c (map_coff_types, map_coff_storage,
16398         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
16399         pseudo_ops_t, pseudo_ops): Likewise.
16400         * protoize.c (default_include): Likewise
16401
16402         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
16403         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
16404         Add array size in declaration.
16405         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
16406         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
16407         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
16408         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
16409         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
16410         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
16411         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
16412         emtens, make_nan): Const-ify.
16413         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
16414         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
16415
16416 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
16417
16418         * config.gcc (ia64-*-*): Set extra_headers.
16419         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
16420         * config/alpha/t-osf: Remove.
16421         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
16422
16423 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
16424
16425         * config/rs6000/t-aix43: Revert previous change.
16426
16427 2002-01-02  Jason Merrill  <jason@redhat.com>
16428
16429         * c-decl.c (c_expand_body): Call outlining_inline_function when
16430         emitting an inline function out of line.
16431
16432 2002-01-02  Richard Henderson  <rth@redhat.com>
16433
16434         * dwarf2out.c (limbo_die_node): Add created_for member.
16435         (new_die): New argument created_for.  Update all callers.
16436         (mark_limbo_die_list): New.
16437         (dwarf2out_init): Register limbo_die_list as a root.
16438         (dwarf2out_finish): Force insert limbo dies into their function
16439         context.
16440
16441 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
16442
16443         PR c++/5089
16444         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
16445
16446 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16447
16448         * config/h8300/fixunssfsi.c: Update copyright.
16449         Fix comment typos.
16450         Fix formatting.
16451         * config/h8300/h8300.c: Update copyright.
16452         Eliminate warnings.
16453
16454 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16455
16456         * config/romp/romp.c: Fix comment formatting.
16457         * config/romp/romp.h: Likewise.
16458         * config/romp/romp.md: Likewise.
16459         * config/s390/s390.c: Likewise.
16460         * config/stormy16/stormy16.c: Likewise.
16461         * config/stormy16/stormy16.h: Likewise.
16462
16463 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
16464
16465         * c-common.h (genrtl_expr_stmt_value): Declare.
16466         * c-semantics.c (genrtl_goto_stmt): Redirect to...
16467         (genrtl_goto_stmt_value): ... this new function.  Pass new
16468         argument down to expand_expr_stmt_value, taking
16469         TREE_ADDRESSABLE into account.
16470         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
16471         STMT_EXPR as addressable, i.e., one whose result we want.
16472         * expr.c (expand_expr): Don't save expression statement value
16473         of labeled_blocks or loop_exprs.
16474         * stmt.c (expand_expr_stmt): Redirect to...
16475         (expand_expr_stmt_value): ... this new function.  Use new
16476         argument to tell whether to save expression value.
16477         (expand_end_stmt_expr): Reset last_expr_type and
16478         last_expr_value if we don't have either.
16479         * tree-inline.c (declare_return_variable): Mark its use
16480         statement as addressable.
16481         * tree.h: Document new use of TREE_ADDRESSABLE.
16482         (expand_expr_stmt_value): Declare.
16483
16484 2002-01-01  Tom Rix  <trix@redhat.com>
16485
16486         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
16487         rs6000_emit_allocate_stack.
16488
16489 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
16490
16491         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
16492         ${srcdir}/ginclude/ to every entry in extra_headers.
16493         * configure: Regenerate.
16494         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
16495         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
16496         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
16497         * ginclude/proto.h: Rename to config/convex/proto.h.
16498
16499 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16500
16501         * attribs.c (handle_vector_size_attribute): Use host_integerp
16502         and tree_int_cst; remove warnings.
16503         * caller-save.c (insert_restore): Add cast to get rid of warning.
16504         (insert_save): Likewise.
16505         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
16506         * regmove.c (find_matches): Add temporary var to kill a warning.
16507
16508 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
16509
16510         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
16511         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
16512         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
16513         (vms-dwarf2eh.o): Add Makefile rule.
16514         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
16515         * config/alpha/vms-dwarf2eh.asm: New file.
16516
16517         * gcc.c (delete_if_ordinary): Delete all versions.
16518
16519 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16520
16521         * config/mmix/mmix.md: Update FIXME to not mention
16522         define_constants.
16523         (MMIX_rJ_REGNUM): New define_constants constant.
16524         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
16525         "*movdicc_real"): Adjust contraints formatting.
16526         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
16527         for branch prediction.
16528         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
16529         output template.
16530         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
16531         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
16532         number.  Delete related FIXMEs.
16533         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
16534         from number to MMIX_rJ_REGNUM.
16535         (TARGET_MASK_BRANCH_PREDICT): New.
16536         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
16537         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
16538         value.  Add -mbranch-predict and -mno-branch-predict.
16539         (TARGET_VERSION): Drop date.
16540         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
16541         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
16542         for finding out global symbols.
16543         (mmix_asm_output_labelref): Revert condition for global symbol.
16544         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
16545         (mmix_print_operand_punct_valid_p): A '+' is valid.
16546
16547 See ChangeLog.6 for earlier changes.