OSDN Git Service

2002-05-28 David S. Miller <davem@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-28  David S. Miller  <davem@redhat.com>
2
3         * config/sparc/sparc.md (cpu): Tidy.
4         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
5         'trap'.
6         (in_call_delay): Delete reference to 'return' type.
7         (eligible_for_return_delay, in_return_delay, define_delay
8         referencing those): Delete.
9         (rest of file): Use new type attributes as appropriate.
10         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
11         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
12         * config/sparc/ultra1_2.md (us1_single): New reservation.
13         (us1_ialuX): Likewise.
14         * config/sparc/ultra3.md (us3_single): Likewise.
15         (us3_ialuX): Likewise.
16         (us3_imul, us3_idiv): Tweak.
17         
18 2002-05-28  Richard Henderson  <rth@redhat.com>
19
20         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
21         STRING_CST.
22
23 2002-05-28  Richard Henderson  <rth@redhat.com>
24
25         * config.gcc: Obsolete mn10200.
26
27 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
28
29         * cppexp.c (interpret_number): Optimize for single-digit
30         and less-than-half-precision cases.
31         (num_trim, num_positive, num_div_op): Cast constants.
32
33 2002-05-27  Bo Thorsen  <bo@suse.de>
34
35         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
36         3.1 branch. The file was made by Jakub Jelinek.
37         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
38         support so multilib doesn't break. And don't define this at all
39         when -Dinhibit_libc is used.
40         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
41         * config/i386/t-linux64: Implement full multilib support. Patch
42         originally done by Andreas Jaeger and Jakub Jelinek.
43
44 2002-05-27  Roger Sayle  <roger@eyesopen.com>
45
46         * c-common.c: Add support for __attribute__((nothrow)) to specify
47         that a function cannot throw an exception (using TREE_NOTHROW).
48         (handle_nothrow_attribute): New function to process this attribute.
49
50         * doc/extend.texi: Document the new nothrow function attribute.
51
52 2002-05-27  H.J. Lu  (hjl@gnu.org)
53
54         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
55         (num_positive): Likewise.
56         (num_div_op): Likewise.
57
58 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
59
60         * c-common.c (c_common_init): Always use intmax_t.
61
62 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
63
64         * c-common.c (c_common_init): Use intmax_t for now.
65
66 2002-05-24  Andrew Haley  <aph@redhat.com>
67
68         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
69         if T is a boolean type.
70
71 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
72
73         * basic-block.h (last_basic_block): Defined as synonym for
74         n_basic_blocks.
75         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
76         flow_depth_first_order_compute, flow_preorder_transversal_compute,
77         flow_dfs_compute_reverse_init): Replaced relevant occurences of
78         n_basic_blocks with last_basic_block.
79         * cfgbuild.c (make_edges): Likewise.
80         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
81         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
82         * combine.c (combine_instructions): Likewise.
83         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
84         iterative_dataflow_bitmap): Likewise.
85         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
86         calc_idoms, idoms_to_doms): Likewise.
87         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
88         Likewise.
89         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
90         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
91         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
92         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
93         delete_null_pointer_checks, compute_code_hoist_vbeinout,
94         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
95         compute_store_table, build_store_vectors): Likewise.
96         * haifa-sched.c (sched_init): Likewise.
97         * ifcvt.c (if_convert): Likewise.
98         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
99         pre_edge_lcm, compute_available, compute_nearerout,
100         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
101         Likewise.
102         * predict.c (estimate_probability, process_note_prediction,
103         note_prediction_to_br_prob): Likewise.
104         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
105         * recog.c (split_all_insns, peephole2_optimize): Likewise.
106         * regrename.c (copyprop_hardreg_forward): Likewise.
107         * resource.c (init_resource_info): Likewise.
108         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
109         init_regions, schedule_insns): Likewise.
110         * ssa-ccp.c (ssa_const_prop): Likewise.
111         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
112         * ssa.c (compute_dominance_frontiers,
113         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
114
115         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
116         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
117         sizes consistently.
118
119 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
120
121         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
122         new.
123         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
124         hoist_insn_after, hoist_insn_to_edge): New.
125
126 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
127
128         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
129         (PROP_FINAL): Include.
130         * flow.c (life_analysis, update_life_info,
131         init_propagate_block_info, mark_set_1, mark_used_rgs):
132         Support SCAN_DEAD_STORE.
133
134 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
135
136         * c-common.c (c_common_init): Set CPP arithmetic precision.
137         * cppexp.c (cpp_num_part): Move typedef ...
138         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
139         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
140         (sanity_checks): Update.
141
142 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
143
144         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
145         (mkheaders): New rule.
146         (install-mkheaders): New rule.
147         * configure.in (all_outputs): Add mkheaders.
148         * configure: Regenerate.
149         * mkheaders.in: New file.
150
151 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
152
153         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
154
155 2002-05-26  Andreas Jaeger  <aj@suse.de>
156
157         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
158
159 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
160
161         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
162         right_shift): Remove.
163         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
164         HIGH_PART): New.
165         (struct op): Use cpp_num.
166         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
167         num_part_mul, num_unary_op, num_binary_op, num_negate,
168         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
169         num_div_op, num_lshift, num_rshift, append_digit): New.
170         (interpret_number, parse_defined, eval_token, reduce): Update
171         for two-integer arithmetic.
172         (binary_handler): New typedef.
173         (optab): Update.
174         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
175         (_cpp_parse_expr, reduce): Update to handle two-integers.
176         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
177
178 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
179
180         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
181         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
182         branch insn into account, do not assume 1.
183         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
184         over single word insn.  Handle upper half of I/O space too.
185         * config/avr/avr.md (*sbrx_branch): Use it.
186         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
187         (*sbix_branch, *sbix_branch_bit7): Likewise.
188         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
189         Use RTL peepholes to optimize register operand sign tests.
190
191 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
192
193         * config/avr/avr.c (avr_asm_only_p): New variable.
194         (avr_override_options): Set it here if AVR1.
195         (asm_file_start): Test it here, report an error if set.
196
197 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
198
199         * alias.c: Fix formatting.
200         * attribs.c: Likewise.
201         * bb-reorder.c: Likewise.
202         * bitmap.c: Likewise.
203         * bitmap.h: Likewise.
204         * builtins.c: Likewise.
205
206 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
207
208         * reload.c (find_valid_class): Accept new argument DEST,
209         choose class accordingly.
210         (push_reload): Update callers.
211
212 2002-05-26  Andreas Jaeger  <aj@suse.de>
213
214         * combine.c (combine_instructions): Do not indent #if for
215         traditional C.
216
217 2002-05-25  Richard Henderson  <rth@redhat.com>
218
219         * c-pragma.c (apply_pragma_weak): Convert value identifier to
220         string for decl_attributes.
221         (handle_pragma_weak): Call assemble_alias if we're modifying
222         an existing decl.
223
224 2002-05-25  Richard Henderson  <rth@redhat.com>
225
226         PR target/6788
227         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
228         using rtl instead of fprintf.
229         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
230         * config/sparc/sparc-protos.h: Update.
231
232 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
233
234         * Makefile.in (C_COMMON_H): Fix.
235         Update other targets.
236         * c-common.c: Don't include c-lex.h.
237         (builtin_define_with_value): Make static and prototype.
238         (builtin_define_std): Move from c-lex.h.
239         * c-common.h (init_c_lex): Move from c-lex.h.
240         * c-decl.c: Don't include c-lex.h.
241         (make_pointer_declarator): Move from c-parse.in.
242         * c-lex.c: Don't include c-lex.h.
243         * c-lex.h: Remove.
244         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
245         (make_pointer_declarator): Move to c-decl.c.
246         * c-pragma.c: Don't include c-lex.h.
247         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
248         * c-tree.h (make_pointer_declarator): New.
249 doc:
250         * passes.texi, tm.texi: Update.
251 objc:
252         * Make-lang.in: Update and correct.
253         * objc-act.c: Don't include c-lex.h or cpplib.h.
254 treelang:
255         * treetree.c: Don't include c-lex.h.
256 config:
257         * darwin-c.c: Don't include c-lex.h.
258         * c4x/c4x-c.c: Don't include c-lex.h.
259         * c4x/t-c4x: Update.
260         * i370/i370-c.c: Don't include c-lex.h.
261         * i370/t-i370: Update.
262         * i960/i960-c.c: Don't include c-lex.h.
263         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
264         * i960/t-960bare: Update.
265         * i960/t-vxworks: Update.
266         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
267         * rs6000/t-darwin: Update.
268         * rs6000/t-rs6000-c-rule: Update.
269         * v850/v850-c.c: Don't include c-lex.h.
270         * v850/v850.c: Don't include c-lex.h or cpplib.h.
271
272
273 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
274
275         * tree.def: Fix typos.
276         * doc/install.texi: Likewise.
277
278 2002-05-25  Richard Henderson  <rth@redhat.com>
279
280         * configure.in (HAVE_AS_TLS): Add ia64 test.
281         * configure: Rebuild.
282         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
283         (override_options): Set it.
284         (TARGET_HAVE_TLS): New.
285         (sdata_symbolic_operand): Look for 's'.
286         (tls_symbolic_operand): New.
287         (ia64_expand_load_address): Abort for tls symbols.
288         (gen_tls_get_addr): New.
289         (gen_thread_pointer): New.
290         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
291         (rtx_needs_barrier): Add new unspecs.
292         (ia64_encode_section_info): Handle tls symbols.
293         (ia64_strip_name_encoding): Strip two encoding chars.
294         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
295         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
296         (TARGET_OPTIONS): Add tls-size.
297         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
298         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
299         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
300         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
301         (movsf, movdf): Likewise.
302         (movdi_symbolic): Use match_scratch.  Don't split if we won't
303         have a scratch availiable.
304         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
305         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
306         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
307         * config/ia64/ia64-protos.h: Update.
308         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
309         sdata_symbolic_operand.
310         (ASM_OUTPUT_LABELREF): Strip two characters.
311
312 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
313
314         * combine.c (simplify_set): Remove an unnecessary subreg.
315
316 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
317
318         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
319
320         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
321
322 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
323
324         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
325
326 2002-05-25  Roger Sayle  <roger@eyesopen.com>
327
328         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
329         (cond (compare x y) 0) into the equivalent (cond x y).
330
331 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
332
333         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
334
335 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
336
337         * config.gcc: Remove all stanzas for previously obsoleted
338         systems.  Where necessary, add explicit error stanzas to
339         prevent removed systems from being misidentified as something
340         else.  Begin a fresh obsoletions list, with the systems that
341         were reprieved last round.
342         * doc/install.texi: Remove all mention of dead targets.
343         * fixinc/mkfixinc.sh: Likewise.
344
345         * config/arm/arm.h: Bit 31 of target_flags is no longer
346         reserved.
347
348         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
349         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
350         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
351         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
352         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
353         config/alpha/osf12.h, config/alpha/osf2or3.h,
354         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
355         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
356         config/clipper/clipper-protos.h, config/clipper/clipper.c,
357         config/clipper/clipper.h, config/clipper/clipper.md,
358         config/clipper/clix.h, config/convex/convex-protos.h,
359         config/convex/convex.c, config/convex/convex.h,
360         config/convex/convex.md, config/convex/fixinc.convex,
361         config/convex/proto.h, config/elxsi/elxsi-protos.h,
362         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
363         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
364         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
365         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
366         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
367         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
368         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
369         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
370         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
371         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
372         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
373         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
374         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
375         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
376         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
377         config/m68k/altos3068.h, config/m68k/apollo68.h,
378         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
379         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
380         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
381         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
382         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
383         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
384         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
385         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
386         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
387         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
388         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
389         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
390         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
391         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
392         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
393         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
394         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
395         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
396         config/mips/dec-osf1.h, config/mips/elflorion.h,
397         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
398         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
399         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
400         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
401         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
402         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
403         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
404         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
405         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
406         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
407         config/ns32k/sequent.h, config/ns32k/tek6000.h,
408         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
409         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
410         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
411         config/sparc/rtems.h, config/we32k/we32k-protos.h,
412         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
413         Delete file.
414
415 2002-05-24  Richard Henderson  <rth@redhat.com>
416
417         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
418         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
419         * config/i386/i386.c (tls_model_chars): Add leading space.
420         (tls_symbolic_operand): Don't bias by 1.
421         (legitimize_address): Don't unbias by 1.
422
423 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
424
425         * lcm.c (optimize_mode_switching): Change bb used as indices
426         to bb->index.
427
428 2002-05-24  Richard Henderson  <rth@redhat.com>
429
430         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
431         of update_life_info_in_dirty_blocks.
432
433 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
434
435         PR other/6782
436         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
437
438 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
439
440         PR preprocessor/6780
441         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
442
443 2002-05-24  Jim Blandy  <jimb@redhat.com>
444
445         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
446         entry with a type code of zero, marking the end of the compilation
447         unit's macro info.
448
449 2002-05-24  Richard Henderson  <rth@redhat.com>
450
451         * varasm.c (asm_output_bss): Always output one byte.
452         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
453
454 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
455
456         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
457         namespace.
458
459 2002-05-24  Andreas Jaeger  <aj@suse.de>
460
461         * ggc-page.c (alloc_page): Cast variables of type size_t to
462         unsigned long, adjust printf format string.
463         (ggc_alloc): Likewise.
464         (ggc_print_statistics): Likewise.
465         (ggc_print_statistics): Correct printf format string for SCALE to
466         use unsigned long.
467
468 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
469
470         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
471
472 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
473             Zack Weinberg     <zack@codesourcery.com>
474
475         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
476         quoted strings.
477         * dwarf2out.c (lookup_filename): Properly quote filename in .file
478         directive in assembly file.
479         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
480         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
481         * config/pj/pj.h (ASM_FILE_START): Likewise.
482         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
483         * config/avr/avr.c (asm_file_end): Likewise.
484         * toplev.c (output_quoted_string): Handle possibly signed plain
485         char.
486         * toplev.h (output_clean_symbol_name): Declare
487         * toplev.c (output_clean_symbol_name): Define.
488         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
489         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
490
491 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
492
493         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
494
495 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
496
497         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
498         of size of unsigned.
499
500 2002-05-23  Richard Henderson  <rth@redhat.com>
501
502         * configure.in (HAVE_AS_TLS): New test.
503         * config.in, configure: Rebuild.
504         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
505         (ix86_tls_dialect_string, ix86_tls_dialect): New.
506         (override_options): Set it.
507         (tls_model_chars, tls_symbolic_operand): New.
508         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
509         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
510         (local_exec_symbolic_operand): New.
511         (get_pic_label_name): Merge into output_set_got.
512         (ix86_asm_file_end): Emit pic_label_name if defined.
513         (legitimate_constant_p, constant_address_p): New.
514         (legitimate_pic_operand_p): New.
515         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
516         (legitimate_address_p): Likewise.
517         (ix86_encode_section_info): Rename from i386_; handle tls decls.
518         (ix86_strip_name_encoding): New.
519         (get_thread_pointer): New.
520         (legitimize_address): Handle tls symbols.
521         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
522         Remove UNSPEC_PLT.
523         (struct machine_function): Add some_ld_name.
524         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
525         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
526         (output_addr_const_extra): New.
527         (maybe_get_pool_constant): New.
528         (ix86_split_to_parts): Use it.
529         (ix86_expand_move): Handle tls symbols.
530         (ix86_tls_get_addr): New.
531         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
532         (TARGET_OPTIONS): Add tls-dialect.
533         (CONSTANT_ADDRESS_P): Use new out-of-line function.
534         (LEGITIMATE_CONSTANT_P): Likewise.
535         (LEGITIMATE_PIC_OPERAND_P): Likewise.
536         (TARGET_STRIP_NAME_ENCODING): New.
537         (ASM_OUTPUT_LABELREF): New.
538         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
539         (OUTPUT_ADDR_CONST_EXTRA): New.
540         (PREDICATE_CODES): Update.
541         (ix86_tls_dialect, ix86_tls_dialect_string): New.
542         * config/i386/i386.md: Regroup and renumber unspec constants.
543         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
544         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
545         (tls_global_dynamic, tls_local_dynamic_base): New.
546         (tls_local_dynamic_once): New.
547         * config/i386/i386-protos.h: Update.
548
549 2002-05-23  Richard Henderson  <rth@redhat.com>
550
551         * genemit.c (gen_insn): Print file:lineno comment before function.
552         (main): likewise.
553         * gensupport.c (struct queue_elem): Add filename member.
554         (queue_pattern): Initialize it; update all callers.
555         (process_include): Don't free filename.
556         (read_md_rtx): Set read_rtx_filename.
557
558 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
559
560         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
561
562 2002-05-23  Richard Henderson  <rth@redhat.com>
563
564         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
565
566 2002-05-23  Richard Henderson  <rth@redhat.com>
567
568         * doc/extend.texi (C++98 Thread-Local Edits): Update with
569         commentary from Mark.
570
571 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
572
573         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
574         Use FOR_EACH_BB macros to iterate over basic block chain.
575         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
576         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
577         Likewise.
578         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
579         find_unreachable_blocks, create_edge_list, verify_edge_list,
580         remove_fake_edges, add_noreturn_fake_exit_edges,
581         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
582         Likewise.
583         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
584         find_sub_basic_blocks): Likewise.
585         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
586         Likewise.
587         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
588         Likewise.
589         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
590         Likewise.
591         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
592         commit_edge_insertions, commit_edge_insertions_watch_calls,
593         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
594         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
595         * conflict.c (conflict_graph_compute): Likewise.
596         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
597         df_modified_p, df_refs_unlink, df_dump): Likewise.
598         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
599         * final.c (compute_alignments): Likewise.
600         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
601         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
602         count_or_remove_death_notes): Likewise.
603         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
604         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
605         classic_gcse, compute_transp, cprop, compute_pre_data,
606         compute_transpout, invalidate_nonnull_info,
607         delete_null_pointer_checks_1, delete_null_pointer_checks,
608         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
609         compute_store_table, build_store_vectors, store_motion): Likewise.
610         * global.c (global_conflicts, mark_elimination): Likewise.
611         * graph.c (print_rtl_graph_with_bb): Likewise.
612         * haifa-sched.c (sched_init): Likewise.
613         * ifcvt.c (if_convert): Likewise.
614         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
615         compute_available, compute_nearerout, compute_rev_insert_delete,
616         optimize_mode_switching): Likewise.
617         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
618         * predict.c (estimate_probability, note_prediction_to_br_prob,
619         propagate_freq, counts_to_freqs, expensive_function_p,
620         estimate_bb_frequencies): Likewise.
621         * profile.c (instrument_edges, get_exec_counts,
622         compute_branch_probabilities, compute_checksum, branch_prob,
623         find_spanning_tree): Likewise.
624         * recog.c (split_all_insns, peephole2_optimize): Likewise.
625         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
626         Likewise.
627         * regclass.c (scan_one_insn, regclass): Likewise.
628         * regmove.c (mark_flags_life_zones, regmove_optimize,
629         record_stack_memrefs): Likewise.
630         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
631         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
632         * resource.c (find_basic_block): Likewise.
633         * sched-ebb.c (schedule_ebbs): Likewise.
634         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
635         find_single_block_region, find_rgns, schedule_insns)
636         * sibcall.c (optimize_sibling_and_tail_recursive_call)
637         * ssa-ccp.c (optimize_unexecutable_edges,
638         ssa_ccp_df_delete_unreachable_insns): Likewise.
639         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
640         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
641         rename_block, convert_to_ssa, compute_conservative_reg_partition,
642         compute_coalesced_reg_partition, rename_equivalent_regs,
643         convert_from_ssa): Likewise.
644         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
645         process_for_unwind_directive): Likewise.
646
647         * df.c (FOR_ALL_BBS): Removed.
648         * gcse.c (struct null_pointer_info): Type of current_block field
649         changed.
650         (struct reg_avail_info): Type of last_bb field changed.
651         * config/ia64/ia64.c (block_num): Removed.
652         (need_copy_state): Type changed.
653         (last_block): New.
654
655 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
656
657         * cppinit.c (mark_named_operators): Split out from init_builtins.
658         (cpp_finish_options): Call it from here instead.
659
660 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
661
662         * builtin-attrs.def: Update copyright years.
663         (ATTR_NONNULL): New attribute identifier.
664         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
665         attribute tree lists.
666         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
667         format operand.
668         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
669         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
670         attribute lists.  Chain the appropriate nonnull attribute.
671         * c-format.c (check_format_arg): Remove null format string
672         warning.
673         * testsuite/gcc.dg/format/null-1.c: New test.
674
675 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
676
677         * Makefile.in (ADAC): Define.
678         (SYSLIBS): Define.
679         (.SUFFIXES): Move before language makefile fragments.
680         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
681
682 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
683
684         * varasm.c (make_decl_rtl): Don't allow weak variables to be
685         placed in common.
686
687 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
688
689         * cfg.c (dump_flow_info): Print results of
690         maybe_hot/probably_never_executed predicates.
691         * toplev.c (open_dump_file): Print function frequency.
692
693 2002-05-23  David S. Miller  <davem@redhat.com>
694
695         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
696         regsets.
697
698 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
699
700         * c-common.c (warn_nonnull): Declare.
701         (c_common_attribute_table): Add "nonnull" attribute.
702         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
703         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
704         check_function_arguments_recurse): New functions.
705         * c-common.h (warn_nonnull): Declare extern.
706         (check_function_arguments, check_function_arguments_recurse): New
707         prototypes.
708         * c-decl.c (c_decode_option): Add -Wnonnull option.
709         * c-format.c (set_Wformat): Set warn_nonnull if enabling
710         format checking.
711         (format_check_context): New structure.
712         (check_format_info_recurse): Remove recursion and rename to...
713         (check_format_arg): ...this.  Update comment.
714         (check_format_info): Use check_function_arguments_recurse.
715         * c-typeck.c (build_function_call): Call check_function_arguments
716         instead of check_function_format.
717         * doc/extend.texi: Document "nonnull" attribute.
718         * doc/invoke.texi: Docuemnt -Wnonnull option.
719         * testsuite/gcc.dg/nonnull-1.c: New test.
720         * testsuite/gcc.dg/nonnull-2.c: New test.
721
722 2002-05-23  David S. Miller  <davem@redhat.com>
723
724         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
725         * cfgcleanup.c (cleanup_cfg): If it is set do not
726         attempt to delete trivially dead insns.
727         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
728         * toplev.c (rest_of_compilation): Document non-trivial aspect
729         the RTL before optimize_save_area_alloca is run.
730
731 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
732
733         * c-lex.c (indent_level): Remove.
734         (cb_file_change, c_lex): Remove indent level handling.
735         * c-lex.h (indent_level): Remove.
736         * input.h (struct file_stack): Remove indent_level.
737         * toplev.c (push_srcloc): Remove indent_level handling.
738
739 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
740
741         PR target/6753
742         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
743         of x in constraints for clarity.
744         (sse_mov?fcc split): abort if op2 == op3.
745         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
746         sse_movsfcc_const0_4): Add earlyclobber.
747         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
748         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
749         Use Y instead of x in constraints.
750
751 2002-05-23  Richard Henderson  <rth@redhat.com>
752
753         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
754         (C++98 Thread-Local Edits): New subsection.
755
756         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
757         (ix86_arch): Set type to enum processor_type.
758
759         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
760         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
761
762 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
763
764         * configure.in: Fix as version test for binutils 2.12.1 releases
765         (without dates).
766         * configure: Rebuilt.
767
768 2002-05-23  Richard Henderson  <rth@redhat.com>
769
770         * config/i386/i386.c (get_pic_label_name): New.
771         (load_pic_register): Remove.
772         (output_set_got): New.
773         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
774         * config/i386/i386.md (UNSPEC_SET_GOT): New.
775         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
776         (prologue_set_got, prologue_get_pc): Remove.
777         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
778         (builtin_setjmp_receiver): Use gen_set_got.
779         * config/i386/i386-protos.h: Update.
780
781 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
782
783         * gcse.c (hash_expr): Do not use alias set for hashing.
784
785 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
786
787         * dbxout.c (dbxout_class_name_qualifiers): New function.
788         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
789
790 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
791
792         * cpperror.c (_cpp_begin_message): No special casing
793         of CPP_FATAL_LIMIT.
794         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
795         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
796         * cpplib.c (do_include_common): Use DL_ERROR.
797         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
798         (DL_ICE): Renumber.
799         * fix-header.c (read_scan_file): Update.
800
801 2002-05-22  Richard Henderson  <rth@redhat.com>
802
803         * config/i386/i386.c (ix86_expand_call): New function, extracted
804         from md call patterns.  Add pic_offset_table_rtx to
805         CALL_INSN_FUNCTION_USAGE when needed.
806         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
807         (call_value_pop, call_value, untyped_call): Likewise.
808         (call_exp, call_value_exp): Remove.
809         * config/i386/i386-protos.h: Update.
810
811 2002-05-22  Richard Henderson  <rth@redhat.com>
812
813         * varasm.c (default_section_type_flags): Check for VAR_DECL
814         before using DECL_THREAD_LOCAL.
815
816 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
817
818         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
819         (STARTFILE_SPEC): Delete PE crt0.o.
820         * config/rs6000/aix51.h: Same.
821         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
822         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
823         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
824         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
825         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
826
827 2002-05-22  Richard Henderson  <rth@redhat.com>
828
829         * varasm.c (default_section_type_flags): Handle tls data and
830         default sections.
831         (default_unique_section): Handle tls sections.
832
833 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
834
835         * configure.in (CROSS): Define NATIVE_CROSS.
836         * configure: Regenerate.
837         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
838         (startfile_prefix_spec): New var.
839         (static_specs): Add startfile_prefix_spec.
840         (do_spec_2): Split out from..
841         (do_spec): ..here.
842         (main): Process startfile_prefix_spec.
843         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
844         dynamic linker.
845         (STARTFILE_PREFIX_SPEC): Define.
846         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
847         absolute paths.
848
849 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
850
851         * cpperror.c: Fix formatting.
852         * cppexp.c: Likewise.
853         * cppfiles.c: Likewise.
854         * cpphash.c: Likewise.
855         * cpphash.h: Likewise.
856         * cppinit.c: Likewise.
857         * cpplex.c: Likewise.
858         * cpplib.c: Likewise.
859         * cppmacro.c: Likewise.
860         * cppmain.c: Likewise.
861         * cppspec.c: Likewise.
862
863 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
864
865         * combine.c (force_to_mode): Use gen_int_mode.
866         Don't clear CONST_INT bits outside of mode.
867
868 2002-05-22  Richard Henderson  <rth@redhat.com>
869
870         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
871         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
872
873 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
874
875         PR c/6643
876         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
877         if DECL_SIZE_UNIT is INTEGER_CST.
878
879 2002-05-22  Richard Henderson  <rth@redhat.com>
880
881         * flow.c (life_analysis): Delete broken reg_label check.
882
883 2002-05-22  Richard Henderson  <rth@redhat.com>
884
885         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
886         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
887
888 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
889
890         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
891         (embed-bb.c): New rule.
892         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
893         * config/sh/embed_bb.c: Delete.
894
895 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
896
897         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
898
899 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
900
901         * config/h8300/h8300.md (*andorqi3): New.
902
903 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
904
905         PR preprocessor/6517
906         * Makefile.in: Update.
907         * c-common.c (c_common_post_options): Add preprocessor
908         errors to the error count.
909         * c-lang.c (c_post_options): Kill.
910         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
911         * hooks.h: Add header guards.
912         * langhooks-def.h: Include hooks.h.
913         (LANG_HOOKS_POST_OPTIONS): Update.
914         * langhooks.h (struct lang_hooks): Update post_options.
915         * toplev.c (parse_options_and_default_flags): Update.
916 objc:
917         * objc-lang.c (objc_post_options): Kill.
918         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
919
920 2002-05-21  Bruce Korb  <bkorb@gnu.org>
921
922         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
923         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
924         * fixinc/fixincl.x: regen.
925
926 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
927
928         * cfgbuild.c: Fix formatting.
929         * cfg.c: Likewise.
930         * cfgcleanup.c: Likewise.
931         * cfglayout.c: Likewise.
932         * cfgloop.c: Likewise.
933         * cfgrtl.c: Likewise.
934
935 2002-05-21  Richard Henderson  <rth@redhat.com>
936
937         * c-common.h (enum rid): Add RID_THREAD.
938         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
939         (grokdeclarator): Grok __thread.
940         * c-parse.in (reswords): Add __thread.
941         (rid_to_yy): Add RID_THREAD.
942
943         * tree.h (DECL_THREAD_LOCAL): New.
944         (struct tree_decl): Add thread_local_flag.
945         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
946         * tree.c (staticp): TLS variables are not static.
947
948         * target-def.h (TARGET_HAVE_TLS): New.
949         * target.h (have_tls): New.
950         * output.h (SECTION_TLS): New.
951         * varasm.c (assemble_variable): TLS variables can't be common for now.
952         (default_section_type_flags): Handle .tdata and .tbss.
953         (default_elf_asm_named_section): Handle SECTION_TLS.
954         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
955
956         * flags.h (flag_tls_default): Declare.
957         * toplev.c (flag_tls_default): Define.
958         (display_help): Display help for it.
959         (decode_f_option): Set it.
960
961         * doc/extend.texi (Thread-Local): New node describing language-level
962         thread-local storage.
963         * doc/invoke.texi (-ftls-model): Document.
964
965         * fixinc/inclhack.def (thread_keyword): New.
966         * fixinc/fixincl.x: Rebuild.
967
968 2002-05-21  Jeffrey A Law  <law@redhat.com>
969
970         * optabs.c (expand_binop): For double-word integer multiplies,
971         do not compute intermediate results into something that is
972         not a register (such as a SUBREG or MEM).
973
974         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
975         (ix86_sched_reorder): Make sure to initialize scheduling
976         data even when there's only one insn in the ready queue.
977
978 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
979
980         * genautomata.c (reserv_sets_hash_value): Fix a typo.
981
982 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
983
984         * genautomata.c (reserv_sets_hash_value): Define hash_value as
985         set_el_t.  Transform the hash value into unsigned.
986         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
987         (transform_3): Add code to process `(A,B)+(D,E)'.
988
989 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
990
991         * reload1.c (do_output_reload): Run delete_output_reload
992         only if optimizing.
993
994 2002-05-21  Roger Sayle  <roger@eyesopen.com>
995
996         PR middle-end/6600
997         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
998         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
999         (can_store_by_pieces): ... and here to limit the largest mode used.
1000         Add a comment to document this function.
1001
1002 2002-05-21  Richard Henderson  <rth@redhat.com>
1003
1004         * flow.c (life_analysis): Fix test for deleted label.
1005
1006 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1007
1008         * doc/tm.texi: Fix typo.
1009
1010 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
1011
1012         * c-common.c (c_common_init): Set options->unsigned_char from
1013         flag_signed_char.
1014         (cb_register_builtins): Define __STRICT_ANSI__ and
1015         __CHAR_UNSIGNED__ here...
1016         * cppinit.c (init_builtins): Not here.
1017         (cpp_create_reader): unsigned_char option defaults to 0, not
1018         !DEFAULT_SIGNED_CHAR.
1019         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
1020         and -funsigned-char.
1021
1022         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
1023         * cpphash.c (_cpp_init_hashtable): Don't set it.
1024         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
1025         directly.  Clarify comment.
1026
1027 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1028
1029         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
1030         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
1031         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
1032         BASIC_BLOCK (n_basic_blocks - 1).
1033         * cfganal.c (can_fallthru, flow_call_edges_add,
1034         flow_preorder_transversal_compute): Too.
1035         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1036         find_sub_basic_blocks): Too.
1037         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
1038         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
1039         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
1040         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
1041         * combine.c (this_basic_block): Type changed to basic_block.
1042         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
1043         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1044         get_last_value, distribute_notes, distribute_links): Too.
1045         * final.c (compute_alignments): Too.
1046         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
1047         * function.c (thread_prologue_and_epilogue_insns): Too.
1048         * gcse.c (compute_code_hoist_vbeinout): Too.
1049         * global.c (build_insn_chain): Too.
1050         * ifcvt.c (find_if_block, find_cond_trap): Too.
1051         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
1052         * regmove.c (regmove_optimize): Too.
1053         * resource.c (find_basic_block): Too.
1054         * sched-ebb.c (schedule_ebbs): Too.
1055         * ssa-dce.c (find_control_dependence, find_pdom): Too.
1056
1057 2002-05-21  Andreas Jaeger  <aj@suse.de>
1058
1059         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
1060
1061 2002-05-21  Richard Henderson  <rth@redhat.com>
1062
1063         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
1064         unspec names, not numbers.
1065
1066 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1067
1068         * doc/sourcebuild.texi: Mention snapshot-README and
1069         snapshot-index.html as needing updating for new front ends.
1070
1071 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1072
1073         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
1074         disabling checking, and avoid multiple evaluation of RTX.
1075
1076 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
1077
1078         * bitmap.c (bitmap_find_bit): Return early if we have the correct
1079         element cached.
1080
1081 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1082
1083         * profile.c (gen_edge_profiler):  Set alias set before the memory is
1084         used.
1085
1086 2002-05-20  David S. Miller  <davem@redhat.com>
1087
1088         * cselib.c (max_value_regs): New.
1089         (cselib_lookup, cselib_invalidate_regno): Initialize it when
1090         adding new entries to the REG_VALUES table and we are dealing with
1091         a hard register.
1092         (clear_table): Initialize it.
1093         (cselib_invalidate_regno): Use it to determine which hard
1094         registers to scan when mode is not VOIDmode.
1095
1096 2002-05-20  Duraid Madina   <duraid@fl.net.au>
1097
1098         * tradcpp.c (fixup_newlines): Use old-style function header.
1099
1100 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
1101
1102         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
1103
1104 2002-05-20  H.J. Lu  (hjl@gnu.org)
1105
1106         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
1107
1108         * config/mips/mips.h (DFMODE_NAN): Defined.
1109         (SFMODE_NAN): Likewise.
1110
1111 2002-05-20  Dale Johannesen  <dalej@apple.com>
1112
1113         * combine.c (cant_combine_insn_p):  Back out my
1114         previous patch.
1115
1116 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
1117
1118         * params.c: Fix formatting.
1119         * params.h: Likewise.
1120         * predict.c: Likewise.
1121         * prefix.c: Likewise.
1122         * print-rtl.c: Likewise.
1123         * print-tree.c: Likewise.
1124         * profile.c: Likewise.
1125
1126 2002-05-20  H.J. Lu  (hjl@gnu.org)
1127
1128         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
1129
1130 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
1131
1132         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
1133         switches straight on to the assembler, do not abbreviate them.
1134         * config/arm/elf.h (ASM_SPEC): As above.
1135         * config/arm/semi.h (ASM_SPEC): As above.
1136         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
1137         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
1138         -mcpu=xscale on to the assembler by default.
1139         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
1140
1141 2002-05-20  Richard Henderson  <rth@redhat.com>
1142
1143         * cse.c (canon_hash): Reorder do_not_record test.  Always
1144         allow pic_offset_table_rtx.
1145
1146 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
1147
1148         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
1149         (expand_binop): Ditto (3 times).
1150
1151 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
1152
1153         * Makefile.in (distclean): Remove QMTest stuff.
1154         (QMTEST_PATH): New variable.
1155         (QMTESTFLAGS): Likewise.
1156         (QMTESTRUNFLAGS): Likewise.
1157         (QMTEST): Likewise.
1158         (QMTEST_GPP_TESTS): Likewise.
1159         (QMTEST_DIR): Likewise.
1160         (QMTEST_DIR/context): New target.
1161         (qmtest-g++): Likeise.
1162         (qmtest-gui): Likewise.
1163         (QMTEST_DIR/gpp-expected.qmr): Likewise.
1164
1165 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
1166
1167         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
1168         an altivec register if TARGET_ALTIVEC.
1169
1170         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
1171         to ALTIVEC_VECTOR_MODE.
1172         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
1173         (rs6000_va_arg): Vectors may go in registers if they are not
1174         altivec vectors.
1175
1176 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
1177
1178         * protoize.c: Fix formatting.
1179
1180 2002-05-19  Richard Henderson  <rth@redhat.com>
1181
1182         * gensupport.c (init_include_reader): Merge into ...
1183         (process_include): ... here.  Simplify composite path creation.
1184         Plug memory leaks.  Fix file/line number tracking.  Do not
1185         process_define_cond_exec.  Return void.
1186         (process_rtx): Don't check process_include return value.
1187
1188 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1189
1190         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
1191         fields.
1192         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1193         traversing basic block chain.
1194         (create_basic_block_structure, create_basic_block): Declaration changed.
1195         (link_block, unlink_block): Declare.
1196         * cfg.c (entry_exit_blocks): Initialize new fields.
1197         (link_block, unlink_block): New.
1198         (expunge_block_nocompact): Unlink basic block.
1199         (dump_flow_info): Print prev_bb/next_bb fields.
1200         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
1201         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
1202         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
1203         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1204         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
1205         (verify_flow_info): Check that list agrees with numbering.
1206
1207 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1208
1209         * c-common.c (preprocessing_asm): New macro.
1210         * c-lex.h (builtin_define, builtin_assert): Use pfile.
1211 doc:
1212         * tm.texi: Update.
1213 config/alpha:
1214         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
1215         (CPP_SPEC): Simplify.
1216         (TARGET_CPU_CPP_BUILTINS): Update.
1217         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
1218         (CPP_SPEC): Simplify.
1219         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
1220         (TARGET_OS_CPP_BUILTINS): Update.
1221         * osf.h (CPP_XFLOAT_SPEC): Kill.
1222         (TARGET_OS_CPP_BUILTINS): Update.
1223         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
1224         * osf5.h (CPP_XFLOAT_SPEC): Kill.
1225         * vms.h (CPP_SUBTARGET_SPEC): Kill.
1226         (TARGET_OS_CPP_BUILTINS): Update.
1227
1228 2002-05-19  Richard Henderson  <rth@redhat.com>
1229
1230         * varasm.c (default_binds_local_p): Fix typo.
1231
1232 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1233
1234         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
1235         CONST_INT operand to the correct mode after adding 1 to it.
1236
1237 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
1238
1239         * config.gcc (powerpc-wrs-windiss*): New target.
1240
1241 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1242
1243         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
1244         (ashrdi3): Use it.
1245
1246 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
1247
1248         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
1249         alphasort.
1250         * config.in: Regenerated.
1251         * configure: Regenerated.
1252
1253 2002-05-19  Richard Henderson  <rth@redhat.com>
1254
1255         * target-def.h (TARGET_BINDS_LOCAL_P): New.
1256         * target.h (struct gcc_target): Move boolean fields to the end.
1257         Add binds_local_p.
1258         * varasm.c (default_binds_local_p): New.
1259         * output.h: Declare it.
1260
1261         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
1262         * config/cris/cris.c (cris_encode_section_info): Likewise.
1263         * config/i386/i386.c (i386_encode_section_info): Likewise.
1264         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1265         * config/sh/sh.c (sh_encode_section_info): Likewise.
1266
1267         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
1268         (TARGET_BINDS_LOCAL_P): New.
1269
1270 2002-05-19  Richard Henderson  <rth@redhat.com>
1271
1272         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
1273         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
1274         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
1275
1276         * toplev.c (display_help): Kill -a -ax help.
1277
1278         * config/1750a/1750a.h, config/alpha/alpha.h,
1279         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
1280         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
1281         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
1282         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
1283
1284         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
1285         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
1286
1287         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
1288         (ix86_output_function_block_profiler): Kill.
1289         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
1290         (m68hc11_function_block_profiler): Kill.
1291         * config/m68hc11/m68hc11-protos.h: Update.
1292         * config/m88k/m88k.c (output_block_profiler): Kill.
1293         (output_function_block_profiler): Kill.
1294         * config/m88k/m88k-protos.h: Update.
1295
1296 2002-05-19  Richard Henderson  <rth@redhat.com>
1297
1298         * system.h (STRIP_NAME_ENCODING): Poison it.
1299         * output.h (STRIP_NAME_ENCODING): Remove.
1300         (default_strip_name_encoding): Declare.
1301         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
1302         * target.h (strip_name_encoding): New.
1303         * varasm.c (default_strip_name_encoding): New.
1304
1305         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
1306         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
1307         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
1308         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
1309         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
1310         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
1311         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
1312         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
1313         config/v850/v850.h: Use the hook, not the macro.
1314
1315         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1316         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
1317         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
1318         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
1319         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
1320         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
1321         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
1322         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
1323         config/v850/v850.c, config/v850/v850.h:
1324         Move STRIP_NAME_ENCODING to out-of-line function and add
1325         TARGET_STRIP_NAME_ENCODING.
1326
1327         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
1328         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
1329         with TARGET_STRIP_NAME_ENCODING referencing existing function;
1330         make function static.
1331
1332         * xcoffout.c: Include target.h
1333         * Makefile.in (xcoffout.o): Update.
1334
1335         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
1336         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
1337         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
1338         reloc argument unused.
1339         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
1340
1341         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
1342         STRIP_NAME_ENCODING docs.
1343
1344 2002-05-19  Andreas Jaeger  <aj@suse.de>
1345
1346         * gengenrtl.c: Add prototype for excluded_rtx.
1347
1348         * real.h: Add prototype for exact_real_truncate.
1349
1350 2002-05-18  Richard Henderson  <rth@redhat.com>
1351
1352         * system.h (ENCODE_SECTION_INFO): Poison it.
1353         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
1354         * target.h (encode_section_info): New.
1355         * varasm.c (make_decl_rtl, output_constant_def): Use it.
1356         * hooks.c (hook_tree_int_void): New.
1357         * hooks.h: Declare it.
1358
1359         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1360         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
1361         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
1362         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
1363         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
1364         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
1365         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
1366         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
1367         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1368         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1369         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
1370         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
1371         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
1372         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
1373         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
1374         referencing existing function.  Make function static.
1375
1376         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
1377         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
1378         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
1379         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
1380         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
1381         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
1382         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
1383         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
1384         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
1385         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
1386         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
1387         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
1388         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
1389         Move ENCODE_SECTION_INFO to out-of-line function and add
1390         TARGET_ENCODE_SECTION_INFO.
1391
1392         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
1393         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1394
1395         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
1396         from SUBTARGET_*
1397         (switch_to_section): Replace in_rdata case with in_readonly_data.
1398
1399         * config/h8300/h8300.c (h8300_encode_label): Make static.
1400         * config/h8300/h8300-protos.h: Update.
1401
1402         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
1403         from rs6000_encode_section_info; make static.
1404         (rs6000_xcoff_encode_section_info): New.
1405
1406         * config/v850/v850.c (v850_encode_data_area): Make static.
1407         * config/v850/v850-protos.h: Update.
1408
1409         * config/vax/vax.c: Include flags.h.
1410         (vms_select_section): Fix typo.
1411
1412         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
1413         ENCODE_SECTION_INFO docs.
1414
1415 2002-05-18  Richard Henderson  <rth@redhat.com>
1416
1417         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
1418         REGISTER_TARGET_PRAGMAS.
1419         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
1420
1421         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
1422
1423 2002-05-18  Richard Henderson  <rth@redhat.com>
1424
1425         * system.h (SELECT_RTX_SECTION): Poison.
1426         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
1427         * target.h (select_rtx_section): New.
1428         * varasm.c (output_constant_pool): Use it.
1429         (default_select_rtx_section, default_elf_select_rtx_section): New.
1430         * output.h: Declare them.
1431
1432         * config/darwin.h (SELECT_RTX_SECTION): Move ...
1433         * config/darwin.c (machopic_select_rtx_section): ... here.
1434         * config/darwin-protos.h: Update.
1435
1436         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
1437         * config/nextstep.c (machopic_select_rtx_section): ... here.
1438         (nextstep_select_section): Rename variable to avoid macro clash.
1439         * config/nextstep-protos.h: Update.
1440
1441         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
1442         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
1443         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
1444         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
1445         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
1446         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
1447         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
1448         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
1449         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
1450         (SELECT_RTX_SECTION): Remove.
1451
1452         * config/darwin.h, config/elfos.h, config/nextstep.h,
1453         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
1454         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
1455         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
1456         config/sparc/lynx.h, config/xtensa/xtensa.c
1457         (TARGET_ASM_SELECT_RTX_SECTION): New.
1458
1459         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
1460         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
1461         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
1462         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
1463         (ia64_aix_select_rtx_section): New.
1464         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
1465         redefining.
1466         * config/mips/mips.c (mips_select_rtx_section): Make static.
1467         Support ELF SHF_MERGE features.
1468         * config/mips/mips-protos.h: Update.
1469         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
1470         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
1471         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
1472         make static, fall back to default_elf_select_rtx_section.
1473         * config/rs6000/rs6000-protos.h: Update.
1474         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
1475         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
1476         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
1477         * config/romp/romp.c (romp_select_rtx_section): New.
1478         * config/s390/s390.c (s390_select_rtx_section): New.
1479         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
1480         declarations before target macro definition.
1481         (xtensa_emit_call): Use static buffer.
1482         (xtensa_select_rtx_section): New.
1483         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
1484         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
1485         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
1486
1487         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
1488         SELECT_RTX_SECTION docs.
1489
1490 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1491
1492         * i386.md (movsi/movdi): Fix template.
1493         (sse2 patterns): Set attributes consistently.
1494
1495         * i386.md (pushqi2, ashrqi_*): Fix constraint.
1496
1497 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
1498
1499         * optabs.c (complex_part_zero_p): New.
1500         * (expand_cmplxdiv_straight): Use it.
1501         * (expand_cmplxdiv_wide): Ditto.
1502         * (expand_binop): Ditto.
1503
1504 2002-05-18  Richard Henderson  <rth@redhat.com>
1505
1506         * final.c (HAVE_READONLY_DATA_SECTION): New.
1507         (shorten_branches): Use it instead of ifdefs.
1508         * varasm.c (enum in_section): Add in_readonly_data.
1509         (text_section, data_section): Tidy.
1510         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
1511
1512         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
1513         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
1514         (READONLY_DATA_SECTION): Don't undef.
1515
1516         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
1517         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
1518         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
1519
1520         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
1521         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
1522         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
1523         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
1524
1525         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
1526         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
1527         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1528         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
1529         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
1530         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
1531         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
1532         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
1533         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
1534
1535         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
1536         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
1537         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
1538         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
1539         config/pa/pa64-hpux.h, config/sparc/litecoff.h
1540         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1541
1542         * config/elfos.h, config/netware.h, config/svr3.h,
1543         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1544         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1545         config/h8300/h8300.h, config/i386/i386-interix.h,
1546         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1547         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
1548
1549         * config/elfos.h, config/netware.h, config/svr3.h,
1550         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1551         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
1552         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1553         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
1554
1555         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
1556         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
1557         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
1558         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
1559         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
1560         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
1561         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
1562         config/rs6000/sysv4.h, config/v850/v850.h
1563         (EXTRA_SECTIONS): Remove in_const/in_rdata.
1564         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
1565
1566         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
1567         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
1568         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
1569         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
1570         * config/alpha/alpha.c (alpha_start_function): Likewise.
1571         (alpha_write_linkage): Likewise.
1572         * config/m32r/m32r.c (m32r_select_section): Likewise.
1573         * config/m88k/m88k.c (m88k_select_section): Likewise.
1574         * config/mips/mips.c (mips_select_rtx_section): Likewise.
1575         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
1576         (rs6000_elf_select_section): Likewise.
1577         * config/v850/v850.c (v850_select_section): Likewise.
1578
1579         * config/1750a/1750a.h, config/i860/sysv3.h
1580         (READONLY_DATA_SECTION_ASM_OP): New.
1581         READONLY_DATA_SECTION_ASM_OP.
1582         * config/i386/interix.c, config/i386/winnt.c
1583         (i386_pe_unique_section): Always use .rdata prefix.
1584         * config/pa/som.h (readonly_data): Always switch to read-only section.
1585         (READONLY_DATA_SECTION): Predicate on flag_pic.
1586         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
1587         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
1588         (READONLY_DATA_SECTION): Update.
1589
1590 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
1591
1592         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
1593         is used without -Wformat.
1594         * c-common.h (warn_format_zero_length): Declare extern.
1595         * c-decl.c (warn_options): Add "format-zero-length".
1596         * c-format.c (warn_format_zero_length): Declare.
1597         (set_Wformat): Set warn_format_zero_length for -Wformat.
1598         (check_format_info): Only warn about zero-length formats if
1599         warn_format_zero_length is true.  Include the format type
1600         name in the warning message.
1601         * doc/invoke.texi: Document -Wformat-zero-length.
1602         * testsuite/gcc.dg/format/zero-length-1.c: New test.
1603
1604 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
1605
1606         * timevar.c: Fix formatting.
1607         * tlink.c: Likewise.
1608         * toplev.c: Likewise.
1609         * tree-dump.c: Likewise.
1610         * tree-inline.c: Likewise.
1611
1612 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1613
1614         * cppinit.c (cpp_post_options): If preprocessed, turn off
1615         traditional.  If traditional, turn off column numbers.
1616         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
1617         * cpptrad.c (handle_newline): Update line_base.
1618         (skip_comment): Handle -Wcomment.
1619
1620 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
1621
1622         * cppinit.c (struct builtin): Remove unused fields.
1623         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
1624         (operator_array): New - was second half of builtin_array.
1625         (init_builtins): Simplify loop over builtin_array/operator_array.
1626
1627 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1628
1629         * defaults.h (UNIQUE_SECTION): Remove.
1630         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
1631
1632 2002-05-17  Richard Henderson  <rth@redhat.com>
1633
1634         * expr.c (init_expr_once): Don't use start/end_sequence.
1635         Use rtx_alloc instead of emit_insn.
1636         * toplev.c (lang_dependent_init): Run init_expr_once here ...
1637         (lang_independent_init): ... not here.
1638
1639 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
1640
1641         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
1642
1643 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1644
1645         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
1646         for fixed registers, possibly used for global register variables.
1647         (initial_elimination_offset, avr_output_function_prologue,
1648         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
1649
1650 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1651
1652         * Makefile.in: Update for cpptrad.c.
1653         * cpphash.h (struct cpp_buffer): New members for buffer
1654         overlays.
1655         (struct cpp_reader): New members for traditional output.
1656         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
1657         * cppinit.c (cpp_create_reader): Set trad_line.
1658         (cpp_destroy): Free trad_out_base if used.
1659         (cpp_read_main_file): Overlay an empty buffer if traditional.
1660         (cpp_finish_options): Don't do builtins.
1661         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
1662         (cpp_handle_option): Handle it.
1663         * cpplex.c (continue_after_nul): New.
1664         (_cpp_lex_direct): Use handle_nul.
1665         * cpplib.h (struct cpp_options): New traditional option.
1666         * cpptrad.c: New file.
1667
1668 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1669
1670         * c-common.c (c_common_init_options): Use C89 for Objective-C,
1671         and set the options flag.
1672         * cppinit.c (lang_flags): Remove objc.
1673         (lang_defaults): Remove OBJC and OBJCXX.
1674         (set_lang): Update.
1675         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
1676         (cpp_handle_option): Remove -+ and -lang-objc++.
1677         For ObjC, just set a flag.
1678         (print_help): Update.
1679         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
1680
1681 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1682
1683         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
1684         bootstrap with -mips3.
1685
1686 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
1687
1688         * final.c: Fix formatting.
1689         * fix-header.c: Likewise.
1690         * flow.c: Likewise.
1691         * fold-const.c: Likewise.
1692         * function.c: Likewise.
1693
1694 2002-05-17  David S. Miller  <davem@redhat.com>
1695
1696         PR c/6689, PR optimization/6615
1697         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
1698         and make it a pointer to rtx.  Update comments.
1699         (update_equiv_regs): When scanning for equivalences, record
1700         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
1701         it while making the equiv replacements.
1702
1703 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1704
1705         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
1706
1707 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1708
1709         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
1710         when encoding visibility into SYMBOL_REF_FLAG.
1711
1712 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
1713
1714         * expr.c (force_operand): Fix reversed move.
1715
1716 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
1717
1718         * doc/install.texi (Testing): Mention two common DejaGnu warnings
1719         that can be ignored.
1720
1721 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1722
1723         * doc/install.texi (Final install): Recommend to install into a
1724         "clean" target directory.
1725
1726 2002-05-17  Richard Henderson  <rth@redhat.com>
1727
1728         * config/ia64/ia64.md: Use braced strings instead of quoted strings
1729         for code blocks.  Tidy whitespace.
1730
1731 2002-05-17  Richard Henderson  <rth@redhat.com>
1732
1733         * hooks.c (hook_tree_bool_false): New.
1734         * hooks.h: Declare it.
1735         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1736         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1737         * target.h (select_section, unique_section): New.
1738         (in_small_data_p): New.
1739         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1740         (variable_section, output_constant_def_contents): Likewise.
1741         (default_select_section, default_unique_section): New.
1742         (categorize_decl_for_section, default_elf_select_section): New.
1743         * output.h: Declare them.
1744
1745         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1746         (TARGET_ASM_SELECT_SECTION): New.
1747         (SELECT_SECTION): Move ...
1748         * config/darwin.c (machopic_select_section): ... here.
1749         * config/darwin-protos.h: Update.
1750
1751         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1752         (SELECT_SECTION): Move ...
1753         * config/nextstep.c (nextstep_select_section): ... here.
1754         * config/nextstep-protos.h: Update.
1755
1756         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1757         (TARGET_ASM_SELECT_SECTION): New.
1758         * config/svr3.h (SELECT_SECTION): Remove.
1759
1760         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1761         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1762         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1763         (alpha_encode_section_info): Use it.
1764         * config/alpha/alpha-protos.h: Update.
1765         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1766         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1767         (TARGET_ASM_SELECT_SECTION): New.
1768         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1769
1770         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1771         (TARGET_ASM_UNIQUE_SECTION): New.
1772
1773         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1774         (avr_unique_section): Rename from unique_section; make static.
1775         * config/avr/avr-protos.h: Update.
1776         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1777
1778         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1779
1780         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1781         (TARGET_ASM_UNIQUE_SECTION): New.
1782         * config/i386/i386-interix.h: Likewise.
1783         * config/i386/win32.h: Likewise.
1784         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1785         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1786         * config/i386/sco5.h (SELECT_SECTION): Remove.
1787         (TARGET_ASM_SELECT_SECTION): New.
1788         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1789
1790         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1791         instead of SELECT_SECTION.
1792         * config/m68k/dpx2.h: Likewise.
1793         * config/rs6000/lynx.h: Likewise.
1794
1795         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1796         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1797         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1798         (ia64_in_small_data_p): New.
1799         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1800         (ia64_aix_select_section, ia64_aix_unique_section): New.
1801         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1802         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1803
1804         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1805         (TARGET_ASM_SELECT_SECTION): New.
1806         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1807         * config/m32r/m32r-protos.h: Update.
1808
1809         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1810         (SELECT_SECTION): Move ...
1811         * config/m88k/m88k.c (m88k_select_section): ... here.
1812
1813         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1814         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1815         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1816         (mcore_unique_section): Make static.
1817         * config/mcore/mcore-protos.h: Update.
1818
1819         * config/mips/elf.h (UNIQUE_SECTION): Remove.
1820         (TARGET_ASM_UNIQUE_SECTION): New.
1821         * config/mips/elf64.h: Likewise.
1822         * config/mips/iris6gld.h: Likewise.
1823         * config/mips/linux.h: Likewise.
1824         * config/mips/mips-protos.h: Update.
1825         * config/mips/mips.c (mips_select_section): Add align argument.
1826         * config/mips/mips.h (SELECT_SECTION): Remove.
1827         (TARGET_ASM_SELECT_SECTION): New.
1828
1829         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1830         * config/mmix/mmix.c (mmix_select_section): Remove.
1831         (mmix_unique_section): Remove.
1832         * config/mmix/mmix-protos.h: Update.
1833
1834         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
1835         (SELECT_SECTION): Move ...
1836         * config/pa/pa.c (pa_select_section): ... here.
1837         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
1838
1839         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
1840         from rs6000_select_section and make static.
1841         (rs6000_elf_unique_section): Similarly.
1842         (rs6000_xcoff_select_section): From xcoff.h.
1843         (rs6000_xcoff_unique_section): Likewise.
1844         * config/rs6000/rs6000-protos.h: Update.
1845         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1846         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1847         * config/rs6000/xcoff.h: Likewise.
1848
1849         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
1850         (SELECT_SECTION): Move ...
1851         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
1852
1853         * config/v850/v850.h (SELECT_SECTION): Move ...
1854         * config/v850/v850.c (v850_select_section): ... here.
1855         (TARGET_ASM_SELECT_SECTION): New.
1856
1857         * config/vax/vms.h (SELECT_SECTION): Move ...
1858         * config/vax/vax.c (vms_select_section): ... here.
1859         (TARGET_ASM_SELECT_SECTION): New.
1860
1861         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
1862         for the target hooks.
1863
1864 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
1865
1866         * config/arm/arm.c (emit_multi_reg_push): Do not set
1867         RTX_FRAME_RELATED_P on the SEQUENCE.
1868
1869 2002-05-16  Richard Henderson  <rth@redhat.com>
1870
1871         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
1872         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
1873
1874 2002-05-16  Richard Henderson  <rth@redhat.com>
1875
1876         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
1877
1878         * config/ia64/ia64.c (saveable_obstack): Do not declare.
1879
1880 2002-05-16  Richard Henderson  <rth@redhat.com>
1881
1882         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
1883         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
1884         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
1885         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
1886         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
1887         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
1888         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
1889         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
1890         Revert "Basic block renumbering removal", and two followup patches.
1891
1892 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1893
1894         * lcm.c (optimize_mode_switching): Revert previous change.
1895
1896 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1897
1898         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
1899         with only extant block numbers.
1900
1901 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1902
1903         * lcm.c (optimize_mode_switching): Fix typo.
1904
1905 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1906
1907         * flow.c (calculate_global_regs_live): Queue blocks in program order.
1908
1909 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1910
1911         * doc/install.texi (Configuration): Document PWDCMD.
1912
1913 2002-05-16  Dale Johannesen  <dalej@apple.com>
1914
1915         * combine.c (cant_combine_insn_p):  Reenable combinations
1916         involving hard regs unless CLASS_LIKELY_SPILLED_P.
1917
1918 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1919
1920         * c-common.c (cb_register_builtins): Handle more built-ins
1921         here rather than in gcc.c specs.
1922         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1923         (cpp_options): Pass -O flags even when only preprocessing.
1924         * toplev.c (set_fast_math_flags): New prototype.
1925         (fast_math_flags_set_p): New.
1926         (set_no_fast_math_flags): Remove.
1927         (decode_f_option): Update.
1928         * toplev.h (set_fast_math_flags): Update.
1929         (fast_math_flags_set_p): New.
1930         (set_no_fast_math_flags): Remove.
1931 config:
1932         * c4x/c4x.c (c4x_override_options): Update.
1933
1934 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1935
1936         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1937         Default-define here.
1938         (builtin_define_with_value): Can now wrap the expansion in
1939         quotation marks if such is wanted.
1940         (cb_register_builtins): Update calls to builtin_define_with_value.
1941         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1942         here.
1943         (c_common_init): Set options->stdc_0_in_system_headers.
1944         * c-lex.h: Update prototype of builtin_define_with_value.
1945         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1946         and REGISTER_PREFIX.
1947
1948         * cppinit.c (VERS, ULP, C, X): Kill.
1949         (builtin_array): Remove entries for __VERSION__,
1950         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1951         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1952         a constant.
1953         (init_builtins): Kill off a bunch of now-dead code.
1954         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1955         -fno-leading-underscore.
1956         (cpp_handle_option): Remove code to set user_label_prefix.
1957         (cpp_post_options): Likewise.
1958
1959         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1960         (stdc_0_in_system_headers): New.
1961         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1962         stdc_0_in_system_headers) too to decide the value of __STDC__.
1963
1964         * tradcpp.c (user_label_prefix): Kill.
1965         (main): Remove code handling -f(no-)leading-underscore.
1966         (initialize_builtins): Don't define __REGISTER_PREFIX__
1967         or __USER_LABEL_PREFIX__.
1968         (install_value): Wrap compound statement in dummy loop so the
1969         macro works properly in an if statement.
1970
1971
1972 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1973
1974         * loop.h (struct loop_info): Add member has_prefetch.
1975         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1976         (prescan_loop): Initialize has_prefetch.
1977         (struct prefetch_info): Change prefetch_in_loop and
1978         prefetch_before_loop from bit fields to ints.
1979         (emit_prefetch_instructions): Several small fixes.
1980         (check_dbra_loop): Don't reverse loop that uses prefetch.
1981
1982 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1983
1984         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1985         * configure.in: Likewise.
1986         * fixinc/check.tpl: Likewise.
1987         * fixinc/fixinc.dgux: Likewise.
1988         * fixinc/fixinc.svr4: Likewise.
1989         * fixinc/fixinc.winnt: Likewise.
1990         * fixinc/fixincl.sh: Likewise.
1991         * fixproto: Likewise.
1992         * configure: Regenerate.
1993
1994 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1995
1996         Basic block renumbering removal:
1997         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1998         added prev_bb and next_bb fields.
1999         (n_basic_blocks): Renamed to num_basic_blocks.
2000         (last_basic_block): New, index of last basic block.
2001         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
2002         traversing basic block chain.
2003         (BLOCK_NUM): index -> sindex.
2004         (create_basic_block_structure, create_basic_block): Declaration changed.
2005         (debug_num2bb): Declare.
2006         (expunge_block_nocompact): Declaration removed.
2007         (link_block, unlink_block, compact_blocks): Declare.
2008         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
2009         * cfg.c (entry_exit_blocks): Initialize new fields.
2010         (clear_edges, alloc_block, expunge_block, cached_make_edge,
2011         redirect_edge_pred, dump_flow_info, dump_edge_info,
2012         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
2013         free_aux_for_edges): Modified.
2014         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
2015         (expunge_block_nocompact): Removed.
2016         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
2017         find_unreachable_blocks, create_edge_list, print_edge_list,
2018         verify_edge_list, flow_edge_list_print, remove_fake_successors,
2019         remove_fake_edges, flow_reverse_top_sort_order_compute,
2020         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2021         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
2022         flow_dfs_compute_reverse_execute): Modified.
2023         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
2024         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
2025         Modified.
2026         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2027         merge_blocks_move_predecessor_nojumps,
2028         merge_blocks_move_successor_nojumps, merge_blocks,
2029         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
2030         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
2031         * cfglayout.c (skip_insns_after_block, label_for_bb,
2032         record_effective_endpoints, scope_to_insns_finalize,
2033         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
2034         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
2035         cfg_layout_duplicate_bb): Modified.
2036         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
2037         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2038         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
2039         flow_loops_find, flow_loop_outside_edge_p): Modified.
2040         * cfgrtl.c (create_basic_block_structure, create_basic_block,
2041         flow_delete_block, compute_bb_for_insn, split_block,
2042         try_redirect_by_replacing_jump, redirect_edge_and_branch,
2043         force_nonfallthru_and_redirect, tidy_fallthru_edge,
2044         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
2045         commit_edge_insertions, commit_edge_insertions_watch_calls,
2046         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2047         purge_all_dead_edges): Modified.
2048         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
2049         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
2050         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
2051         Modified.
2052         * conflict.c (conflict_graph_compute): Modified.
2053         * df.c (FOR_ALL_BBS): Removed.
2054         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2055         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
2056         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
2057         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
2058         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2059         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
2060         * final.c (compute_alignments, final_scan_insn): Modified.
2061         * flow.c (verify_local_live_at_start, update_life_info,
2062         update_life_info_in_dirty_blocks, free_basic_block_vars,
2063         delete_noop_moves, calculate_global_regs_live,
2064         initialize_uninitialized_subregs, allocate_bb_life_data,
2065         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
2066         mark_used_reg, count_or_remove_death_notes): Modified.
2067         * function.c (thread_prologue_and_epilogue_insns): Modified.
2068         * gcse.c (struct null_pointer_info): Change typo of current_block
2069         to basic_block.
2070         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
2071         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
2072         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
2073         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
2074         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
2075         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
2076         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
2077         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
2078         pre_delete, one_pre_gcse_pass, compute_transpout,
2079         invalidate_nonnull_info, delete_null_pointer_checks_1,
2080         free_code_hoist_mem, compute_code_hoist_vbeinout,
2081         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2082         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
2083         compute_store_table, build_store_vectors, insert_insn_start_bb,
2084         insert_store, replace_store_insn, free_store_memory, store_motion):
2085         Modified.
2086         * global.c (global_alloc, global_conflicts, mark_elimination,
2087         build_insn_chain): Modified.
2088         * graph.c (print_rtl_graph_with_bb): Modified.
2089         * haifa-sched.c (sched_init): Modified.
2090         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2091         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
2092         if_convert): Modified.
2093         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
2094         compute_insert_delete, pre_edge_lcm, compute_available,
2095         compute_farthest, compute_nearerout, compute_rev_insert_delete,
2096         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
2097         Modified.
2098         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
2099         * loop.c (loop_dump_aux): Modified.
2100         * predict.c (combine_predictions_for_insn, estimate_probability,
2101         last_basic_block_p, process_note_prediction, process_note_predictions,
2102         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
2103         expensive_function_p, estimate_bb_frequencies,
2104         compute_function_frequency): Modified.
2105         * print-rtl.c (print_rtx): Modified.
2106         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
2107         get_exec_counts, compute_branch_probabilities, compute_checksum,
2108         branch_prob, find_spanning_tree): Modified.
2109         * recog.c (split_all_insns, peephole2_optimize): Modified.
2110         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
2111         convert_regs_1, convert_regs_2, convert_regs): Modified.
2112         * regclass.c (scan_one_insn, regclass): Modified.
2113         * regmove.c (mark_flags_life_zones, regmove_optimize,
2114         combine_stack_adjustments): Modified.
2115         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
2116         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
2117         * reorg.c (dbr_schedule): Modified.
2118         * resource.c (find_basic_block, init_resource_info): Modified.
2119         * sbitmap.c (sbitmap_intersection_of_succs,
2120         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
2121         sbitmap_union_of_preds): Modified.
2122         * sched-deps.c (init_dependency_caches): Modified.
2123         * sched-ebb.c (schedule_ebbs): Modified.
2124         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
2125         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
2126         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
2127         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
2128         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
2129         ssa_const_prop): Modified.
2130         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
2131         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
2132         * ssa.c (remove_phi_alternative, find_evaluations,
2133         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
2134         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
2135         make_regs_equivalent_over_bad_edges,
2136         make_equivalent_phi_alternatives_equival,
2137         compute_conservative_reg_partition,
2138         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
2139         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
2140         Modified.
2141
2142 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
2143
2144         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
2145
2146 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
2147
2148         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
2149         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2150         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
2151         calling CONSTANT_POOL_ADDRESS_P.
2152         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
2153         to decide whether to define __arm__ or __thumb.
2154         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
2155         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2156
2157 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2158
2159         * config/arc/arc.h (CPP_PREDEFINES): Remove.
2160         (CPP_SPEC): Update.
2161         (TARGET_CPU_CPP_BUILTINS): New.
2162
2163 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2164
2165         * cpphash.h (cpp_macro): Move here, and make expansion a union.
2166         * cppmacro.c (cpp_macro): Remove.
2167         (enter_macro_context, replace_args, warn_of_redefinition,
2168         _cpp_create_definition, cpp_macro_definition): Update.
2169
2170 2002-05-16  Jason Merrill  <jason@redhat.com>
2171
2172         * config/mips/mips.c (mips_output_external): Don't do sdata
2173         optimization for a variable with DECL_COMDAT set.
2174
2175 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2176
2177         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
2178         Cleanups for accepting modifiers on pointers.
2179         Fix predicate typos.
2180         Allow long pointers as well as int pointers.
2181
2182 2002-05-15  Richard Henderson  <rth@redhat.com>
2183
2184         * varasm.c (merge_weak): Remove special case for extern and common.
2185
2186 2002-05-15  Matt Hiller  <hiller@redhat.com>
2187
2188         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
2189         XFAILing.
2190         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
2191         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
2192         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
2193         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
2194         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
2195         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
2196
2197 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2198
2199         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
2200
2201 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2202
2203         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
2204         ("altivec_mfvscr"): Read from VSCR.
2205
2206         Add vscr sets for the following insns: altivec_vctuxs,
2207         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
2208         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
2209         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
2210         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
2211         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
2212         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
2213         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
2214         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
2215         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
2216         altivec_vsum2sws, altivec_vsumsws.
2217
2218         * config/rs6000/rs6000.h: Add VSCR fixed register.
2219         (CALL_REALLY_USED_REGISTERS): Add vscr.
2220         (CALL_USED_REGISTERS): Same.
2221         (FIXED_REGISTERS): Same.
2222         (REG_ALLOC_ORDER): Same.
2223         (reg_class): Add VSCR_REGS.
2224         (REG_CLASS_NAMES): Same.
2225         (REG_CLASS_CONTENTS): Same.
2226         (VSCR_REGNO): New.
2227         (REGISTER_NAMES): Add vscr.
2228         (DEBUG_REGISTER_NAMES): Same.
2229         (ADDITIONAL_REGISTER_NAMES): Same.
2230         (FIRST_PSEUDO_REGISTER): Increment.
2231         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
2232
2233 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
2234
2235         * fold-const.c (fold): Fix a typo.
2236
2237 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
2238
2239         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
2240         comparison against the highest or lowest integer value before
2241         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
2242         transformation and that of an unsigned comparison against 0
2243         right after.
2244
2245 2002-05-15  Richard Henderson  <rth@redhat.com>
2246
2247         * varasm.c (merge_weak): Error for any weakening after definition.
2248         Adjust weakening after use warning to catch more cases.
2249         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
2250         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
2251
2252 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2253
2254         * invoke.texi (-malign-double): Re-add lost warning.
2255
2256         * i386-protos.h (x86_output_mi_thunk): Declare.
2257         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
2258         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
2259
2260         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
2261         when flag_asynchronous_unwind_tables is set.
2262
2263         * flags.h (flag_reorder_functions): Declare.
2264         * function.c (prepare_function_start): Initialize frequnecy.
2265         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
2266         * Makefile.in (predict.o): Add dependency on target.h and params.h
2267         * defaults.h (HOT_TEXT_SECTION_NAME,
2268         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
2269         * predict.c (choose_function_section): New function.
2270         (estimate_bb_frequencies): Use it.
2271         * toplev.c (flag_reorder_functions): New global variable.
2272         (lang_independent_options): New.
2273         (parse_options_and_default_flags): Set.
2274         * varasm.c (assemble_start_function): Bypass functdion alignment
2275         for never executed functions.
2276         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
2277         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
2278         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2279         Document.
2280
2281         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
2282
2283         * predict.c: Inlude profile.h
2284         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
2285         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
2286         Use the information about maximal counter in the program.
2287
2288         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
2289
2290         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
2291         probably_never_executed_bb_p): New functions.
2292         * cfgcleanup.c (outgoing_edges_match): Use them.
2293         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
2294         (maybe_hot_bb_p, probably_cold_bb_p,
2295         probably_never_executed_bb_p): New functions.
2296
2297         * function.h (function): Add new field function_frequency.
2298         * predict.c (compute_function_frequency): New function.
2299         (estimate_probability): Call it.
2300
2301 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
2302
2303         PR optimization/5172, optimization/5200
2304         * gcse.c (gcse_main): Disable store_motion.
2305
2306 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
2307
2308         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
2309         (c_common_nodes_and_builtins): Use it.
2310         (builtin_define_with_value): New function.
2311         (cb_register_builtins): Define __SIZE_TYPE__,
2312         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
2313         using builtin_define_with_value.  Use consistent notation when
2314         defining __GXX_WEAK__.
2315         (WCHAR_TYPE_SIZE): Don't redefine.
2316         (combine_strings): Don't use WCHAR_TYPE_SIZE.
2317
2318         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
2319         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
2320         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
2321         * tradcpp.c (initialize_builtins): Likewise.
2322         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
2323
2324         * c-lex.h (builtin_define_with_value): Prototype.
2325         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
2326         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
2327         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
2328
2329         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
2330         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
2331         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
2332         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
2333         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
2334         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
2335         config/sparc/sol2-bi.h, config/sparc/sparc.h:
2336         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
2337         to __SIZE_TYPE__ etc from all spec strings. When this makes
2338         extra specs empty, delete them.
2339
2340 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2341
2342         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
2343         for PA8000 or generating dwarf2 call frame information.
2344         (output_call): Remove DO_FRAME_NOTES check from return pointer
2345         optimization.
2346         (following_call): Return 0 when scheduling for PA8000 or generating
2347         dwarf2 call frame information.  Revise comment.
2348
2349 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2350
2351 config/alpha:
2352         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
2353         and __IEEE_FP_INEXACT as appropriate.
2354         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
2355         (CPP_SPEC): Remove ieee defines.
2356         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
2357
2358 2002-05-14  Richard Henderson  <rth@redhat.com>
2359
2360         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
2361         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
2362
2363 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2364
2365         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
2366         (CPP_SPEC): Update.
2367         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
2368         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
2369         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
2370         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
2371         (EXTRA_SPECS): Update.
2372         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
2373         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
2374         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
2375         define TARGET_OS_CPP_BUILTINS if necessary.
2376
2377 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2378
2379         * gcc.c (cpp_options): Must pass -m* and -f* options
2380         to the front end even when only preprocessing.
2381         (cc1_options): Remove redundant -lang-c.
2382         * tradcpp.c (main): Ignore -m options.
2383 objc:
2384         * lang-specs.h: Similarly.
2385
2386 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
2387
2388         * genautomata.c (transform_3): Add code for transformation
2389         `(A,B,...)+C -> A+C,B,...'.
2390
2391 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
2392
2393         * final.c (end_final): Do not output profile_arcs constructor, when
2394         no functions are instrumented.
2395
2396 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
2397
2398         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
2399
2400 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2401
2402         * doc/install.texi: Remove special markup originally required for
2403         HTML generation with texi2html.
2404
2405 2002-05-14  Andreas Schwab  <schwab@suse.de>
2406
2407         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
2408         SELECT_SECTION.
2409         (UNIQUE_SECTION): Define to get small data correctly.
2410
2411         * varasm.c (resolve_unique_section): Add third parameter
2412         flag_function_or_data_sections and use it instead of
2413         flag_function_sections.
2414         (assemble_start_function): Pass flag_function_sections.
2415         (asm_emit_uninitialised): Pass flag_data_sections.
2416         (assemble_variable): Likewise.
2417
2418 2002-05-14  Richard Henderson  <rth@redhat.com>
2419
2420         * config/i386/i386.md: Use define_constants for unspec numbers.
2421         * config/i386/i386.c: Likewise.
2422
2423 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2424
2425         * doc/contrib.texi: Update my entry.
2426
2427 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
2428
2429         * fixinc/inclhack.def (winidss_valist): Limit applicability.
2430         * fixinc/fixincl.x: Regenerated.
2431         * fixinc/tests/base/math.h: Update.
2432         * fixinc/tests/base/testing.h: Likewise.
2433
2434 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
2435
2436         * genattr.c (gen_attr): Don't emit a comma after the last
2437         enumerator.
2438
2439 2002-05-13  Richard Henderson  <rth@redhat.com>
2440
2441         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
2442         by non-local gotos.
2443         * recog.c (peephole2_optimize): Likewise.
2444
2445 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
2446
2447         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
2448         input to O_BINARY.
2449
2450 2002-05-13  Jeffrey A Law  (law@redhat.com)
2451
2452         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
2453         Update prototype and callers.
2454         (propagate_one_insn): Stack pointer adjustments kill MEMs on
2455         the mem_set_list which reference the stack pointer, as do
2456         calls to constant functions as they may clobber outgoing
2457         argument space.
2458
2459         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
2460
2461         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
2462         (ia32_multipass_dfa_lookahead): New function.
2463
2464 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2465
2466         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
2467         (translate_options): Remove 'V'.
2468         (process_command): Similarly.
2469 doc:
2470         * invoke.texi: Remove documentation of 'V'.
2471
2472 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2473
2474         * config/s390/linux.h: Revert 2002-04-22 changes.
2475
2476 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
2477
2478         * config/fr30/fr30.md: Only allow splits of immediate loads
2479         if the destination is a register.
2480
2481 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2482
2483         * Makefile.in (c-common.o, cppinit.o): Update.
2484         * c-common.c: Include except.h.
2485         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
2486         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
2487         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
2488         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
2489         CPP_PREDEFINES): Handle here.
2490 config:
2491         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
2492         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
2493         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
2494         TARGET_OS_CPP_BUILTINS.
2495         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
2496         (CPP_SPEC, EXTRA_SPECS): Update.
2497         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
2498         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
2499         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
2500         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
2501         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
2502 doc:
2503         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
2504         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
2505
2506 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2507
2508         * emit-rtl.c (global_rtl): Update comment.
2509         (const_double_htab, const_double_htab_hash,
2510         const_double_htab_hash, lookup_const_double): New.
2511         (const_int_htab_hash, const_int_htab_eq): Remove const
2512         qualifiers, which cause tons of warnings with RTL checking on.
2513         (gen_rtx_CONST_DOUBLE): Deleted.
2514         (const_double_from_real_value): New function - bears some
2515         resemblance to the former immed_real_const_1.
2516         (immed_double_const): Moved here from varasm.c and
2517         simplified.
2518         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
2519         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
2520         (gen_rtx): Use immed_double_const.
2521         (init_emit_once): Initialize the const_double_htab.  Use
2522         REAL_VALUE_FROM_INT where possible.  Can now use
2523         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
2524         * varasm.c (struct varasm_status): Remove x_const_double_chain.
2525         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
2526         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
2527         (init_varasm_status, mark_varasm_status): Don't touch
2528         x_const_double_chain.
2529
2530         * output.h: Delete prototype for clear_const_double_mem.
2531         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
2532         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
2533         const_double_from_real_value, not immed_real_const_1, and use
2534         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
2535         CONST_DOUBLE_ATOF.
2536         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
2537         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
2538         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
2539         (gen_rtx_REG): Second arg is unsigned.
2540
2541         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
2542         (excluded_rtx): New, return true for CONST_DOUBLE.
2543         (genmacro): Write nothing for excluded codes.
2544         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
2545         * expr.c (expand_expr): Likewise.
2546         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
2547         CONST_DOUBLE_CHAIN.
2548         * toplev.c (rest_of_compilation): Don't call
2549         clear_const_double_mem.
2550
2551         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
2552         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
2553         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
2554         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
2555         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
2556         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
2557         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
2558         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
2559
2560 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2561
2562         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
2563
2564 2002-05-12  Tom Tromey  <tromey@redhat.com>
2565
2566         * tree.h (copy_node): Don't mention TREE_PERMANENT.
2567
2568 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2569
2570         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
2571         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
2572         * gensupport.h: Prototype new routines.
2573         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
2574         use of printf.
2575         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
2576         (next_comma_elt): Use scan_comma_elt.
2577
2578         * config/i386/i386.md: Use new attribute notation to break up
2579         long lines in define_attr forms.
2580
2581 2002-05-12  Richard Henderson  <rth@redhat.com>
2582
2583         * expr.c (compress_float_constant): New.
2584         (emit_move_insn): Use it.
2585         (float_extend_from_mem): New.
2586         (init_expr_once): Initialize it.
2587         * real.c (exact_real_truncate): New.
2588
2589         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
2590         dropped into memory; penalize for size.
2591         (RTX_COSTS): FLOAT_EXTEND is free.
2592         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
2593         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
2594
2595 2002-05-12  Richard Henderson  <rth@redhat.com>
2596
2597         * profile.h (profile_info): Add missing extern to declaration.
2598         * profile.c (profile_info): Define it.
2599
2600 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2601
2602         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
2603         used for DImode and TImode.
2604
2605 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2606
2607         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
2608         fake a newline.
2609
2610 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
2611
2612         * config/rs6000/rs6000.c (rs6000_default_long_calls,
2613         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
2614         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
2615         (rs6000_override_options): Handle -m(no-)longcall.
2616         (init_cumulative_args, output_mi_thunk): Check for both
2617         longcall and shortcall attributes on the function.
2618         (rs6000_attribute_table): Add "shortcall".
2619         (rs6000_handle_longcall_attribute): Update comment.
2620         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
2621         altivec_expand_ternop_builtin): Add default clauses to switches
2622         to silence warnings.
2623
2624         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
2625         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
2626         (TARGET_OPTIONS): Add longcall and no-longcall.
2627
2628         * config/rs6000/rs6000.md (call_nonlocal_sysv,
2629         call_value_nonlocal_sysv): Split by alternatives.  One pair
2630         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
2631         the call cookie.  The other pair accepts only LR/CTR and has
2632         no restriction.
2633
2634         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
2635         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
2636         tmake_file.
2637         * config/rs6000/rs6000-c.c: New file.
2638         * config/rs6000/t-rs6000-c-rule: New file.
2639         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
2640         Prototype rs6000_pragma_longcall.
2641
2642         * doc/extend.texi: Document shortcall attribute.
2643         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
2644
2645 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2646
2647         * reorg.c (dbr_schedule): Remove unnecessary test.
2648
2649 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2650
2651         * i386.md (testsi to testqi spliters): New.
2652
2653         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
2654
2655         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
2656
2657         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
2658
2659         * basic-block.h: New flag EDGE_CAN_FALLTHRU
2660         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
2661         that can be made fallthru.
2662
2663         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
2664
2665         * cfglayout.c (cleanup_unconditional_jumps): New static function.
2666         (cfg_layout_initialize): Use it.
2667
2668 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2669
2670         * config/avr/avr.c (avr_mcu_types): Update supported devices.
2671         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2672         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2673
2674 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
2675
2676         * dbxout.c: Fix formatting.
2677         * dependence.c: Likewise.
2678         * df.c: Likewise.
2679         * diagnostic.c: Likewise.
2680         * doloop.c: Likewise.
2681         * dominance.c: Likewise.
2682         * doschk.c: Likewise.
2683         * dwarf2asm.c: Likewise.
2684         * dwarf2out.c: Likewise.
2685         * dwarfout.c: Likewise.
2686
2687 2002-05-10  Richard Henderson  <rth@redhat.com>
2688
2689         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
2690         Convert integers constants as needed.  Replace "nwords" field with
2691         "sizeof_bb".
2692         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
2693         * function.h: Fix typo in comment.
2694         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
2695
2696 2002-05-10  Roger Sayle  <roger@eyesopen.com>
2697
2698         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
2699         into the equivalent (signed char)c > 0.
2700
2701 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
2702
2703         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
2704         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
2705         (struct prefetch_info): Fix spelling of member bytes_accessed.
2706         (emit_prefetch_instructions): Make dump messages more regular;
2707         restructure code to add more dump messages; use new macros for
2708         heuristics. (There are no code generation changes in any of this).
2709
2710 2002-05-10  David S. Miller  <davem@redhat.com>
2711
2712         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
2713         (struct rtx_def): Update unchanging flag comment.
2714         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
2715         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
2716         to be handled to INSN too.
2717         (dbr_schedule): Likewise.
2718         * resource.c (next_insn_no_annul): Likewise.
2719
2720         * cse.c (rtx_cost): Remove multiplication by power of 2 special
2721         casing.
2722
2723 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2724
2725         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
2726         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
2727         (possibly) work around broken /bin/sh.
2728
2729 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2730
2731         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2732         . as N64/N32 libgcc_s.so subdirs.
2733
2734 2002-05-10  David S. Miller  <davem@redhat.com>
2735
2736         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2737
2738         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2739         more accurately.
2740         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2741         comment.
2742         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2743         * doc/rtl.texi: Document these macros more accurately.
2744         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2745         JUMP_INSNs and CALL_INSNs.
2746         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2747         or INSN_FROM_TARGET_P if the code is appropriate.
2748
2749 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2750
2751         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2752         before using SYMBOL_REF_FLAG (addr).
2753
2754         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2755         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2756         Make non-static.  Update all callers.
2757         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2758         New insns to clear/set/test a single bit in I/O address space.
2759
2760 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2761
2762         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2763
2764 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2765
2766         * Makefile.in: Update.
2767         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2768         builtin_define_std): New.
2769         (c_common_init): Register CPP builtins callback.
2770         * c-common.h (flag_iso, flag_undef): New.
2771         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2772         * c-lex.c: Don't include target.h.
2773         (cb_register_builtins): Move to c-common.c.
2774         (init_c_lex): Don't register hook here.
2775         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2776         (cpp_define, cpp_assert): Remove.
2777         * gcc.c (cc1_options): Pass -undef to front end.
2778         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2779         (TARGET_INITIALIZER): Update.
2780         * target.h (struct cpp_reader): Don't predeclare.
2781         (struct gcc_target): Remove cpp builtin hook.
2782         * tree.c (default_register_cpp_builtins): Remove.
2783 doc:
2784         * tm.texi: Update.
2785
2786 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2787
2788         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2789
2790 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2791
2792         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2793         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2794
2795 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2796
2797         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2798         * config/sparc/libgcc-sparc-glibc.ver: New file.
2799         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2800         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2801
2802 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2803
2804         PR target/6429
2805         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2806         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2807         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2808         base multilibs.
2809         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2810         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2811         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2812         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2813
2814 2002-05-09  Richard Henderson  <rth@redhat.com>
2815
2816         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2817         * config/ia64/ia64.c: Likewise.
2818
2819 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
2820
2821         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
2822         (save_restore_insns): Likewise.
2823         (mips_expand_prologue, mips_expand_epilogue): Update callers.
2824         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
2825
2826 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
2827
2828         * athlon.md, k6.md, pentium.md, ppro.md): New files.
2829         * i386.md: Move scheduling information into new files.
2830
2831         * i386.md (type attribute): Add "rotate" for rotate insns.
2832         (rotate insns): Set type to "rotate".
2833         (various attributes and function units): Treat rotate like shift.
2834         (pent_pair attribute): Only rotates by one bit position are
2835         pairable.
2836         (sbb insns): Explicitly set pent_pair attribute on a couple
2837         that were missing it.
2838
2839 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2840
2841         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
2842         make sure that buffer starts on odd word address.
2843         (sh_va_arg): Skip odd fp registers when reading a double precision
2844         value.
2845
2846 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2847
2848         * tree.h (preserve_data, object_permanent_p, type_precision):
2849         Remove.
2850
2851 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2852
2853         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
2854         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
2855 doc:
2856         * cpp.texi: Update for removal of obsolete features.
2857
2858 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
2859                           Jeffrey A Law  (law@redhat.com)
2860
2861         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
2862         the DFA interface for Pentium processors.
2863         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
2864         (attr_pent_pair, ix86_pent_find_pair): Remove.
2865         (ix86_sched_reorder_pentium): Remove.
2866         (ix86_sched_reorder): Remove reordering for Pentium.
2867         * i386.md (Pentium scheduling): Rewrite using DFA description.
2868
2869 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2870
2871         * cfganal.c (can_fallthru): Fix fast path.
2872         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
2873         with edges to the next block.
2874
2875 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2876                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2877
2878         * final.c (end_final): Use C trees to output data structures for profiling.
2879
2880         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2881         (profile.o): New dependency profile.h
2882         (final.o): New dependency profile.h
2883         * profile.h: New file. New global structure profile_info.
2884         * final.h (count_edges_instrumented_now): Declare.
2885         (current_function_cfg_checksum): Declare.
2886         (function_list): New structure.
2887         (functions_head, functions_tail): New static variables.
2888         (end_final): Emits more data, removed some -ax stuff.
2889         (final): Stores function names and chcksums.
2890         * gcov-io.h (__write_gcov_string): New function.
2891         (__read_gcov_string): New function.
2892         * gcov.c (read_profile): New function.
2893         (create_program_flow_graph): Uses read_profile instead of reading
2894         da_file.
2895         (read_files): Removed da_file checking, it's done by read_profile now.
2896         * libgcc2.c (bb_function_info): New structure.
2897         (bb): New field in structure, removed some -ax stuff.
2898         (__bb_exit_func): Changed structure of da_file.
2899         * profile.c (count_edges_instrumented_now): New global variable.
2900         (current_function_cfg_checksum): New global variable.
2901         (max_counter_in_program): New global variable.
2902         (get_exec_counts): New function.
2903         (compute_checksum): New function.
2904         (instrument_edges): Sets count_edges_instrumented_now.
2905         (compute_branch_probabilities): Uses get_exec_counts instead of
2906         reading da_file.
2907         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
2908         (init_branch_prob): Removed da_file checking, done in get_exec_counts
2909         now.
2910         (end_branch_prob): Removed da_file checking, done in get_exec_counts
2911         now.
2912         * gcov.texi: Updated information about gcov file format.
2913
2914 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2915
2916         * sbitmap.c: Fix formatting.
2917         * scan.c: Likewise.
2918         * scan-decls.c: Likewise.
2919         * sched-deps.c: Likewise.
2920         * sched-ebb.c: Likewise.
2921         * sched-rgn.c: Likewise.
2922         * sched-vis.c: Likewise.
2923         * sdbout.c: Likewise.
2924         * sibcall.c: Likewise.
2925         * simplify-rtx.c: Likewise.
2926         * ssa.c: Likewise.
2927         * ssa-ccp.c: Likewise.
2928         * ssa-dce.c: Likewise.
2929         * stmt.c: Likewise.
2930         * stor-layout.c: Likewise.
2931         * stringpool.c: Likewise.
2932
2933 2002-05-09  David S. Miller  <davem@redhat.com>
2934
2935         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2936
2937 2002-05-07  David S. Miller  <davem@redhat.com>
2938
2939         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2940         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2941         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2942         library implementation clobbers the output before the inputs
2943         are fully consumed, use stack temporary for the output.
2944
2945 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2946
2947         * config/netbsd.h (CPP_SPEC): Remove.
2948         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2949         * config/i386/netbsd.h (CPP_SPEC): Define.
2950         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2951         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2952         * config/sparc/netbsd.h (CPP_SPEC): Define.
2953         * config/vax/netbsd.h (CPP_SPEC): Define.
2954
2955 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2956
2957         * read-rtl.c: Fix formatting.
2958         * real.c: Likewise.
2959         * recog.c: Likewise.
2960         * regclass.c: Likewise.
2961         * regmove.c: Likewise.
2962         * reg-stack.c: Likewise.
2963         * reload1.c: Likewise.
2964         * reload.c: Likewise.
2965         * resource.c: Likewise.
2966         * rtlanal.c: Likewise.
2967         * rtl.c: Likewise.
2968         * rtl-error.c: Likewise.
2969
2970 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2971
2972         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2973         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2974
2975 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2976
2977         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2978         use __SSE2__ macro instead.
2979         * config/i386/xmmintrin.h: Likewise.
2980
2981 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2982
2983         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2984         and use it in all invocations of these macros.  Clean up comments.
2985         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2986         of the flag access macro whose check failed.
2987         * doc/rtl.texi (Flags): Document additional flag uses.
2988
2989 2002-05-08  Robert Spier <rspier@pobox.com>
2990             Neil Booth  <neil@daikokuya.demon.co.uk>
2991
2992         PR preprocessor/6521
2993         * cppfiles.c (handle_missing_header): Don't do anything
2994         different for <> includes.
2995 doc:
2996         * cppopts.texi: Update documentation for -MG.
2997
2998 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2999
3000         * cpplex.c (cpp_interpret_charconst): Truncate as well as
3001         sign-extend.
3002 doc:
3003         * cpp.texi: Clarify multichar charconst valuation.
3004
3005 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3006
3007         * doc/invoke.texi: Document -mwindiss option.
3008
3009 2002-05-08  Jason Merrill  <jason@redhat.com>
3010
3011         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
3012
3013         * dwarf2out.c (gen_type_die): Abort on broken recursion.
3014
3015         PR c++/6381
3016         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
3017         REAL_CST.
3018
3019 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
3020
3021         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
3022         little-endian multilibs to override arm/thumb multilibs.
3023         Do not build hardware floating point multilibs, nor apcs-26
3024         multilibs for the Thumb.
3025
3026 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3027
3028         PR c/6569.
3029         * varasm.c (mark_weak): New function.
3030         (merge_weak): Use it.  Do not call declare_weak.
3031         (declare_weak): Use merge_weak.
3032
3033 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3034
3035         * cse.c (dead_libcall_p): Update counts.
3036         (delete_trivially_dead_insns): Update call of dead_libcall_p.
3037
3038 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3039
3040         * cfglayout.c (function_tail_eff_head): Rename to ...
3041         (function_footer): ... this one.
3042         (unlink_insn_chain): New functions.
3043         (label_for_bb): Only call block_label and emit debug message.
3044         (record_effective_endpoints): Actually unlink the headers and footers.
3045         (fixup_reorder_cahin): Re-insert the unlinked sequences.
3046         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
3047         * cfglayout.h (struct reorder_block_def): New fields footer/header;
3048         remove eff_head/eff_end.
3049         * rtl.h (set_first_insn): Declare.
3050         * emit-rtl.c (set_first_insn): New function.
3051
3052         * cfglayout.c (fixup_reorder_chain): Dump duplicated
3053         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3054         cfg_layout_duplicate_bb): New global function.
3055         (duplicate_insn_chain): New static function.
3056         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3057         cfg_layout_duplicate_bb): Declare.
3058         (struct reorder_block_def): Add "original" field.
3059         * emit-rtl.c (emit_copy_of_insn_after): New function.
3060         * rtl.h (emit_copy_of_insn_after): Declare.
3061
3062         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
3063         (fixup_reorder_chain): properly handle edges to exit block.
3064
3065 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3066                                Jan Hubicka  <jh@suse.cz>
3067
3068         * basic-block.h (note_prediction_to_br_prob): declare.
3069         * c-semantics.c: Inlucde predit.h
3070         (expand_stmt): predict GOTO_STMT as not taken.
3071         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
3072         (cleanup_cfg): Do not free tail_recursion_list.
3073         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
3074         (flow_delete_block): Kill predictions past end of basic block.
3075         * output.h (delete_unreachable_blocks): Declare.
3076         * predict.c (predicted_by_p, process_note_predictions,
3077         process_note_prediction, last_block_p): New function.
3078         (estimate_probability): Bypass loop on PRED_CONTINUE;
3079         do not handle noreturn heuristics; kill PRED_RETURN; add
3080         PRED_EARLY_RETURN.
3081         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
3082         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
3083         * predict.h (IS_TAKEN): New constant.
3084         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
3085         * rtl.c (NOTE_INSN_PREDICTION): New.
3086         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
3087         New macro.
3088         (insn_note): add NOTE_INSN_PREDICTION.
3089         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
3090         CFG; free tail_recursion_label_list.
3091         * stmt.c: Include predict.h;
3092         (return_prediction): New.
3093         (expand_value_return): Use it.
3094         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
3095
3096 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
3097
3098         * config/mips/mips.md: Name the unspecs with define_constant.
3099         (*HILO_delay): Rename to 'hilo_delay' (no star).
3100         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
3101         (reload_outdi, reload_outsi): Likewise.
3102
3103 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
3104
3105         * toplev.c: Fix formatting.
3106
3107 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
3108
3109         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
3110         * configure.in (ac_rtlflag_checking): New.
3111         * doc/install.texi (--enable-checking): Document RTL flag checking.
3112
3113 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3114
3115         * c-common.c (c_common_init): Set options->unsigned_wchar.
3116         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
3117         group target dependencies.
3118         (init_builtins, cpp_handle_option): Update.
3119         * cpplex.c (cpp_interpret_charconst): Update.
3120         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
3121         signed_char to unsigned_char, group target dependencies.
3122         * defaults.h (WCHAR_UNSIGNED): Remove.
3123         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
3124 config:
3125         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
3126         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
3127         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
3128         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
3129         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
3130 doc:
3131         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
3132
3133 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3134
3135         * fixinc/inclhack.def (windiss_math1): New fix.
3136         (windiss_math2): Likewise.
3137         (windiss_valist): Likewise.
3138         * fixinc/fixincl.x: Regenerated.
3139
3140 2002-05-07  Andreas Jaeger  <aj@suse.de>
3141
3142         * genautomata.c (output_internal_min_issue_delay_func): Add
3143         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
3144         (output_internal_trans_func): Likewise.
3145
3146 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
3147
3148         * pa.c (hppa_profile_hook): Use force_reg to get the address
3149         of the profile hook into an appropriate pseudo register.
3150
3151 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3152
3153         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
3154         (LINK_START_SPEC): Handle it.
3155         (LINK_OS_SPEC): Likewise.
3156         (CPP_SPEC): Likewise.
3157         (STARTFILE_SPEC): Likewise.
3158         (LIB_SPEC): Likewise.
3159         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
3160         all platforms.
3161         (CRTSAVRES_DEFAULT_SPEC): New macro.
3162         (LIB_WINDISS_SPEC): New macro.
3163         (CPP_OS_WINDISS_SPEC): Likewise.
3164         (STARTFILE_WINDISS_SPEC): Likewise.
3165         (ENDFILE_WINDISS_SPEC): Likewise.
3166         (LINK_START_WINDISS_SPEC): Likewise.
3167         (LINK_OS_WINDISS_SPEC): Likewise.
3168         * config/rs6000/windiss.h: New file.
3169
3170 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
3171
3172         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
3173
3174 2002-05-06  David S. Miller  <davem@redhat.com>
3175
3176         * config/sparc/sparc.md (shift insns): Do not mask off
3177         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
3178         take care of it.
3179
3180 2002-05-06  Richard Henderson  <rth@redhat.com>
3181
3182         PR c++/6212
3183         * expr.c (highest_pow2_factor_for_type): New.
3184         (expand_assignment): Use it.
3185
3186 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
3187
3188         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
3189         unspec_volatile.
3190         ("altivec_mfvscr"): Same.
3191
3192 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3193
3194         * rtl.h (struct rtx_def): Update comments.
3195         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
3196         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
3197         RTL_FLAG_CHECK macros with list of expected RTL codes.
3198         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
3199         (rtl_check_failed_flag): New.
3200         * reload1.c (reload): Use REG macro before changing rtx to MEM.
3201         (reload_cse_noop_set_p): Check rtx code before using access macro.
3202         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
3203         before using access macro.
3204
3205 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3206
3207         * doc/rtl.texi (Flags): Update to reflect current usage.
3208
3209 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3210
3211         PR opt/3995
3212         * fold-const.c (sign_bit_p): New function.
3213         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
3214         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
3215         Reapply fold when converting (A & C) == C into (A & C) != 0.
3216         (fold_binary_op_with_conditional_arg): Fix typo in comment.
3217
3218 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3219
3220         * c-common.c (warn_multichar): New.
3221         (c_common_init): Set CPP's warn_multichar.
3222         * c-common.h (warn_multichar): New.
3223         * c-decl.c (warn_multichar): Remove.
3224         * c-lex.c (lex_charconst): Update.
3225         * c-tree.h (warn_multichar): Remove.
3226         * cppexp.c (eval_token): Sign-extend charconst value.
3227         * cppinit.c (cpp_create_reader): Set warn_multichar.
3228         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
3229         each character.  Update prototype.  Sign-extend the result.
3230         * cpplib.h: Fix conditions.
3231         (struct cpp_options): Add new warning flag.
3232         (cpp_interpret_charconst): Update prototype.
3233 doc:
3234         * cpp.texi: Update documentation.
3235
3236 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
3237
3238         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
3239         Fix typo in usage of allof instead of unit.
3240
3241 2002-05-06  Richard Henderson  <rth@redhat.com>
3242
3243         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
3244         and any jump or call for IN.
3245
3246 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
3247
3248         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
3249         -msse2.
3250         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
3251
3252 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3253
3254         * fold-const.c (lshift-double): Cast the high word to an unsigned
3255         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
3256         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
3257         avoid compiler warning.  (fold): Remove redundant code from
3258         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
3259
3260 2002-05-06  Jeff Law  <law@redhat.com>
3261
3262         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
3263         * pa.c (pa_adjust_cost): Remove all true dependency cost
3264         adjustments.  Also remove support for non-DFA scheduling.
3265         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
3266         to adjust true dependency costs.  Update various comments.
3267         (7100lc, 7200, 7300 scheduling): Simplify by combining the
3268         FP ALU & MPY units into a single unit.
3269
3270 2002-05-06  Catherine Moore  <clm@redhat.com>
3271
3272         * config/v850/v850.c (compute_register_save_size): Make sure
3273         to count all of the registers that will be saved.
3274
3275 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3276
3277         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
3278
3279 2002-05-06  David S. Miller  <davem@redhat.com>
3280
3281         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
3282         allow result to overlap input operands in memory.
3283
3284 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3285
3286 doc:
3287         * cpp.texi: Update multichar charconst docs.
3288
3289 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3290
3291         * cpplex.c (cpp_interpret_charconst): Sign-extend each
3292         character.  Don't ignore excess characters.  Treat
3293         multicharacter character constants as signed.
3294         (cpp_parse_escape): Clarify diagnostic.
3295
3296 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3297
3298         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
3299         use add instead of shift.
3300         (ashldi3_sp64): Likewise.
3301         (ashlsi3_const1, ashldi3_const1): Remove.
3302         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
3303         * config/sparc/sparc.c (const1_operand): New.
3304
3305 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3306
3307         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
3308
3309 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3310
3311         PR target/6561
3312         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
3313
3314 2002-05-05  Richard Henderson  <rth@redhat.com>
3315
3316         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
3317         memory latency adjustments.
3318         (alpha_variable_issue): Remove.
3319         (alpha_use_dfa_pipeline_interface): New.
3320         (alpha_multipass_dfa_lookahead): New.
3321         * config/alpha/alpha.md: Remove define_function_unit scheduling;
3322         include new dfa scheduling.
3323         (attr type): Add none.
3324         (blockage): Use it.
3325         * config/alpha/ev4.md: New.
3326         * config/alpha/ev5.md: New.
3327         * config/alpha/ev6.md: New.
3328
3329 2002-05-05  David S. Miller  <davem@redhat.com>
3330
3331         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
3332
3333 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
3334
3335         * cse.c: Fix formatting.
3336         * emit-rtl.c: Likewise.
3337
3338 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3339
3340         * genautomata.c (initiate_states): Add additional guard to
3341         initialize `units_array'.
3342
3343 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3344
3345         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
3346         process_unit_to_form_the_same_automaton_unit_lists,
3347         form_the_same_automaton_unit_lists
3348         check_unit_distributions_to_automata): New prototypes and
3349         functions.
3350         (check_automata): Rename it into `check_automata_insn_issues'.
3351         (unit_decl): New fields `the_same_automaton_unit' and
3352         `the_same_automaton_message_reported_p'.
3353         (unit_decl_t): New typedef.
3354         (the_same_automaton_lists): New gloval variable.
3355         (unit_regexp, unit_set_el, units_array, units_cmp,
3356         output_get_cpu_unit_code_func): Use the typedef.
3357         (evaluate_max_reserv_cycles): Increment
3358         `description->max_insn_reserv_cycles'.
3359         (initiate_states): Don't increment `max_cycles_num'.
3360         (transform_insn_regexps): Move code around transformation of
3361         regexps from `generate'.
3362         (generate): Remove call of `transform_insn_regexps'.
3363         (expand_automata): Call `transform_insn_regexps' and
3364         `check_unit_distributions_to_automata'.  Check errors before
3365         `generate'.
3366
3367         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
3368         automaton `ultrasparc3_1'.
3369
3370 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3371
3372         * c-common.c (c_common_init): Set up CPP arithmetic.
3373         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
3374         something reasonable for the host.
3375         (sanity_checks): Add checks.
3376         (cpp_read_main_file): Call sanity_checks() from here...
3377         (cpp_post_options): ... not here.
3378         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
3379         * cpplib.h (struct cpp_options): New member int_precision.
3380
3381 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3382
3383         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
3384
3385 2002-05-04  David S. Miller  <davem@redhat.com>
3386
3387         * config/sparc/linux.h, config/sparc/linux64.h
3388         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
3389
3390         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
3391         more RTX codes.
3392         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
3393
3394         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
3395         of SETs.
3396
3397 2002-05-05  Tim Josling  <tej@melbpc.org.au>
3398
3399         * treelang; New directory for new sample language treelang.
3400
3401 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3402
3403         * Makefile.in (c-lex.o): Update.
3404         * c-lex.c: Include target.h.
3405         (cb_register_builtins): New.
3406         (init_c_lex): Set builtins callback.
3407         * c-lex.h (cpp_define, cpp_assert): New prototypes.
3408         * cppinit.c (init_builtins): Use callback, including for
3409         GXX_WEAK.
3410         * cpplib.h (struct cpp_callbacks): New member.
3411         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
3412         (TARGET_INITIALIZER): Update.
3413         * target.h (struct gcc_target): New hook.
3414         * tree.c (default_register_cpp_builtins): New.
3415         * tree.h (default_register_cpp_builtins): New.
3416 doc:
3417         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
3418
3419 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3420
3421         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
3422         (cpp_post_options): Move sanity checks to...
3423         (sanity_checks): New.
3424         * cpplex.c (maybe_read_ucs): Fix prototype.
3425         (parse_string, cpp_parse_escape): Cast for %c format specifier.
3426         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
3427         if necessary.
3428
3429 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
3430
3431         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
3432         builtins.  Use V2DI patterns instead of TI for logical operations.
3433         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
3434         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
3435         (ix86_expand_builtins): Change the pattern used for movntdq.
3436         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
3437         sse2_nandv2di3): New patterns.
3438         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
3439         on operands.
3440         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
3441         (cvtdq2pd): Correct mode on operand 1.
3442         (sse2_umulsidi3): Describe without unspec.
3443         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
3444         machine modes.
3445         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
3446         (ashlv2di3): Likewise, from sse2_ashlv2di3.
3447         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
3448         ashlv4si3, ashlv2di3): Use SImode for shift count.
3449         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
3450         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
3451         New patterns.
3452         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
3453         New typedefs.
3454         (__m128i, __m128d): New macros.
3455         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
3456         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
3457         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
3458         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
3459         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
3460         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
3461         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
3462         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
3463         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
3464         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
3465         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
3466         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
3467         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
3468         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
3469         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
3470         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
3471         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
3472         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
3473         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
3474         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
3475         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
3476         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
3477         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
3478         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
3479         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
3480         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
3481         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
3482         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
3483         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
3484         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
3485         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
3486         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
3487         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
3488         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
3489         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
3490         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
3491         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
3492         functions.
3493         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
3494         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
3495
3496 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3497
3498         * dwarf2out.c: Fix formatting.
3499         * varasm.c: Likewise.
3500
3501 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
3502
3503         PR c/6543
3504         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
3505         clobber and use result as temporary value.
3506
3507 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3508
3509         * expr.c (force_operand): Use expand_simple_* to handle more
3510         cases.
3511
3512 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3513
3514         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
3515         and sign-extension.
3516         (lex_charconst): Update for change in prototype of
3517         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
3518         appropriately.
3519         * cpphash.h (BITS_PER_CPPCHAR_T): New.
3520         * cppinit.c (cpp_create_reader): Initialize them for no
3521         change in semantics.
3522         (cpp_post_options): Add sanity checks.
3523         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
3524         and truncation issues.  Calculate in type cppchar_t.
3525         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
3526         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
3527         run-time dependent precision correctly.  Return whether the
3528         result is signed or not.
3529         * cpplib.c (dequote_string): Use cppchar_t; update.
3530         * cpplib.h (cppchar_signed_t): New.
3531         struct cpp_options): New precision members.
3532         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
3533         * cppexp.c (eval_token): Update.
3534
3535 2002-05-03  David S. Miller  <davem@redhat.com>
3536
3537         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
3538         * config/sparc/sparc.c (sparc_rtx_costs): New function
3539         implementing RTX_COSTS and CONST_COSTS.
3540         * config/sparc/sparc.h (CONST_COSTS): Delete.
3541         (RTX_COSTS_CASES): Define.
3542         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
3543         the work.
3544
3545         * config/sparc/sparc.md (DFA schedulers): Split out...
3546         * config/sparc/cypress.md, config/sparc/hypersparc.md,
3547         config/sparc/sparclet.md, config/sparc/supersparc.md,
3548         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
3549
3550         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
3551         checks on it, always defined for Sparc.
3552
3553         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
3554         Tweak, and add more detailed comments.
3555
3556 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
3557
3558         * Re-apply patch accidentally reverted with
3559         DFA scheduler merge: remove all rules and variables to slurp
3560         source files out of libiberty and rebuild them with HOST_CC.
3561         ($(HOST_PREFIX_1)varray.o): New rule.
3562         (genattrtab rule): Word wrap.
3563
3564 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3565
3566         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
3567         (CPP_SUBTARGET_SPEC): Define.
3568         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
3569         cpp_subtarget specs.
3570         (CPP_SPEC): Redefine to include %(cpp_subtarget).
3571
3572 2002-05-03  David S. Miller  <davem@redhat.com>
3573
3574         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
3575         * target.h (struct gcc_target): Delete cycle_display member.
3576
3577         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
3578         (rtx_needs_barrier): Delete reference to cycle_display unspec.
3579         (ia64_sched_reorder2): Mention need for cycle display handling
3580         once such notes exist.
3581
3582 2002-05-03  Richard Henderson  <rth@redhat.com>
3583
3584         * real.c (etoasc): Strip most trailing zeros for clarity.
3585         * sched-vis.c: Include real.h.
3586         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
3587         * Makefile.in (sched-vis.o): Add real.h.
3588
3589 2002-05-03  David S. Miller  <davem@redhat.com>
3590
3591         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
3592         no longer needed.
3593
3594 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
3595
3596         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
3597         when we get an out of range literal.
3598         (altivec_expand_ternop_builtin): Same.
3599         (altivec_expand_unop_builtin): Same.
3600         (altivec_expand_builtin): Same, for dss.
3601         (altivec_expand_builtin): Use trees instead of rtl when
3602         determining literal argument validity.
3603
3604 2002-05-03  David S. Miller  <davem@redhat.com>
3605
3606         Delete cycle display scheduling hook.
3607         * config/ia64/ia64.c (ia64_cycle_display,
3608         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
3609         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
3610         and use emit_insn_before instead of ia64_emit_insn_before.
3611         * config/ia64/ia64.md (unspec usage): Delete cycle display.
3612         (cycle_display): Delete insn pattern.
3613         * config/sparc/sparc.md (unspec usage): Delete cycle display.
3614         (cycle_display): Delete insn pattern.
3615         * config/sparc/sparc.c (sparc_cycle_display,
3616         TARGET_SCHED_CYCLE_DISPLAY): Delete.
3617         * doc/md.texi (cycle_display): Don't mention.
3618         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
3619
3620 2002-05-03  Richard Henderson  <rth@redhat.com>
3621
3622         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
3623         * recog.h: Declare them.
3624
3625         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
3626         * config/sparc/sparc.md: Use store_data_bypass_p instead.
3627         * config/sparc/sparc-protos.h: Update.
3628
3629 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3630
3631         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
3632         -D__arch64__.  Add -D_LP64.
3633         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
3634         from sparc.h.
3635         (CPP_ARCH64_SPEC): Likewise.
3636         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
3637         (NO_BUILTIN_SIZE_TYPE): Undef.
3638
3639 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
3640
3641         * genautomata.c (min_issue_delay_pass_states): Change return type
3642         in the prototype.
3643         (min_issue_delay_pass_states): Change the algorithm.
3644         (min_issue_delay): Set up min_insn_issue_delay for the state.
3645         (output_min_issue_delay_table): Interchange the nested loops and
3646         and initiate min_insn_issue_delay for states.
3647
3648 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
3649
3650         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
3651         jump is simplejump.
3652
3653 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
3654
3655         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
3656         sequence.
3657
3658 2002-05-03  Richard Henderson  <rth@redhat.com>
3659
3660         PR opt/6534
3661         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3662         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3663         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
3664         code before JUMP, not EARLIEST.
3665
3666 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3667
3668         * c-format.c (check_format_info_main): Don't check for presence of
3669         parameter for * width until after operand number has been read,
3670         and only check for it if format parameters are available.
3671         Fixes PR c/6547.
3672
3673 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3674
3675         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
3676         (LINK_SPEC): Undef before defining.
3677
3678 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3679
3680         PR preprocessor/6489
3681         * tradcpp.c (fixup_newlines): New.
3682         (main, finclude): Use it.
3683
3684 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
3685
3686         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
3687         * config/mips/mips.c (mips_unique_section): Strip encoding from
3688         decl name.
3689
3690 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3691
3692         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
3693         mode.
3694
3695 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3696
3697         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
3698         (Specific): Removed buildstats references.
3699         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
3700         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
3701         Accomodate Solaris versions beyond 8.
3702         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
3703         (Specific, *-*-solaris2.8): Removed, obsolete.
3704
3705 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3706
3707         PR target/6542
3708         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
3709         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
3710         fill leaf_reg_remap with identity.
3711         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
3712
3713 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3714
3715         * config/h8300/crti.asm: Remove trailing spaces.
3716         * config/h8300/h8300.c: Likewise.
3717         * config/h8300/lib1funcs.asm: Likewise.
3718
3719 2002-05-02  Jason Merrill  <jason@redhat.com>
3720
3721         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
3722         * c-decl.c (c_init_decl_processing): Use it.
3723         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
3724         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
3725         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
3726
3727 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3728
3729         * regrename.c: Fix formatting.
3730         * tree.c: Likewise.
3731
3732 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3733
3734         * i386.md (attribute memory): Handle compares properly.
3735
3736 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
3737
3738         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
3739         to none.
3740
3741 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3742
3743         * function.c: Fix formatting.
3744
3745 2002-05-02  Jan Hubicka  <jh@suse.cz>
3746
3747         * haifa-sched.c (schedule_insn): Print table of instructions and
3748         reservations.
3749         (sched_block): Do not print ready list at verbosity level 1.
3750         * sched-vis.c (print_insn): Make global.
3751         * sched-ebb.c (ebb_print_insn): Rename from...
3752         (print_insn): ... this one.
3753         * sched-int.h (print_insn): Declare
3754
3755 2002-05-02  Richard Henderson  <rth@redhat.com>
3756
3757         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
3758         emitted by cycle_display.
3759
3760 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
3761
3762         * doc/install.texi (*-*-freebsd*): Update to latest status.
3763
3764 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
3765
3766         PR target/6540
3767         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
3768         * config/float-sparc.h: Assume 128-bit long double if
3769         __LONG_DOUBLE_128__ is defined.
3770
3771 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
3772
3773         * genattrtab.c (write_function_unit_info): Add a dummy element
3774         when num_units == 0.
3775
3776 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3777
3778         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
3779         TYPE_MODE (double_type_node) instead of DFmode.
3780
3781 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
3782
3783         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
3784         jumps post reload.
3785         * toplev.c (rest_of_compilation): Revert Richard's patch.
3786
3787 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3788
3789         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
3790
3791 2002-05-02  Catherine Moore  <clm@redhat.com>
3792
3793         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
3794
3795 2002-05-02  Kazu Hirata  <kazu@hxi.com>
3796
3797         * combine.c: Fix comment typos.
3798         * expr.c: Likewise.
3799         * genautomata.c: Likewise.
3800         * stmt.c: Likewise.
3801         * tree.h: Likewise.
3802
3803 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3804
3805         * doc/install.texi: State GNAT version requirements.
3806
3807 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
3808
3809         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
3810         of the frame pointer or arg pointer register which strict register
3811         checking is not enabled.
3812
3813 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
3814
3815         * gcc.dg/altivec-8.c: New.
3816
3817         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
3818         PRE_INC and PRE_DEC for altivec modes.
3819
3820 2002-05-01  Bruce Korb  <bkorb@gnu.org>
3821
3822         * fixinc/check.tpl(set-writable): make sure the function exists first
3823         * fixinc/inclhack.def(alpha_assert): fix test_text
3824         * fixinc/tests/base/assert.h: add in missing result
3825
3826 2002-05-01  Jeff Law  <law@redhat.com>
3827
3828         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
3829         'T' constraint.
3830
3831 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
3832
3833         * dbxout.c (dbxout_type): Emit size information for range types,
3834         as well, but only when using GDB extensions.
3835
3836 2002-05-01  Richard Henderson  <rth@redhat.com>
3837
3838         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
3839         target-independent gnu binutils date test.
3840
3841 2002-05-01  Richard Henderson  <rth@redhat.com>
3842
3843         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
3844         info before expunging the block.
3845
3846 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3847
3848         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
3849         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
3850         -M -or -MM is in effect.
3851
3852 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
3853
3854         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
3855         A29k configurations.
3856         * doc/install.texi: Update to match.
3857
3858 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3859
3860         PR bootstrap/6514
3861         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
3862         for duplicates. Always loop over whole list.
3863
3864 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3865
3866         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
3867
3868 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3869
3870         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
3871         support routines.
3872
3873 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3874
3875         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
3876
3877 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
3878
3879         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
3880         (nabs_nopower): Same.
3881         (floatdisf2): New pattern.
3882         (absdi2): Convert to define_insn_and_split.
3883         (nabsdi2): Same.
3884         (trunctfsf2): Same.
3885         (floatditf2): Same.
3886         (floatsitf2): Same.
3887         (fix_trunctfdi2): Same.
3888         (fix_trunctfsi2): Same.
3889
3890 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3891
3892         * doc/install.texi: Update Texinfo version requirement
3893         documentation.
3894
3895 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3896
3897         PR target/6512, PR target/5628
3898         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
3899         when memory is not aligned.
3900         (movdf_insn_v9only_vis): Likewise.
3901         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
3902         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
3903         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
3904
3905 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
3906
3907         * gcc.dg/altivec-7.c: New.
3908
3909         * config/rs6000/altivec.h: Cleanup.
3910
3911 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
3912
3913         * doc/invoke.texi (Option Summary): Add -mvrsave=.
3914         (RS/6000 and PowerPC Options): Document -mvrsave=.
3915
3916         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
3917         (rs6000_altivec_vrsave_string): Same.
3918         (rs6000_override_options): Call rs6000_parse_vrsave_option.
3919         (rs6000_parse_vrsave_option): New.
3920         (rs6000_stack_info): Only generate vrsave instructions when
3921         TARGET_ALTIVEC_VRSAVE.
3922
3923         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
3924         (rs6000_altivec_vrsave_string): Define extern.
3925         (rs6000_altivec_vrsave): Same.
3926         (TARGET_ALTIVEC_VRSAVE): New.
3927
3928 2002-04-30  Richard Henderson  <rth@redhat.com>
3929
3930         PR opt/6516
3931         * toplev.c (rest_of_compilation): Don't run cross-jump before
3932         bb-reorder.
3933
3934 2002-04-30  Tom Rix  <trix@redhat.com>
3935
3936         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3937         check which_alternative.
3938
3939 2002-04-30  Kazu Hirata  <kazu@hxi.com>
3940
3941         * cpplex.c: Fix comment formatting.
3942         * function.c: Likewise.
3943         * integrate.c: Likewise.
3944         * regrename.c: Likewise.
3945         * sibcall.c: Likewise.
3946         * simplify-rtx.c: Likewise.
3947         * tree-inline.c: Likewise.
3948
3949 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3950
3951         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
3952         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
3953         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
3954         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
3955         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
3956         * pa/x-ada: New file.  Define ADA_CFLAGS.
3957
3958 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
3959
3960         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
3961         from MMIX_LAST_REGISTER_FILE_REGNUM.
3962         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
3963         (struct machine_function): New member highest_saved_stack_register
3964         previously static variable in mmix.c.
3965         (MACHINE_DEPENDENT_REORG): Define.
3966         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
3967         (MMIX_OUTPUT_REGNO): New.
3968         (mmix_target_asm_function_prologue): Move calculation of last used
3969         saved-stack-register into...
3970         (mmix_machine_dependent_reorg): New function.  Update to also handle
3971         !TARGET_ABI_GNU.
3972         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
3973         register names, simplify somewhat by new variable regno.
3974         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
3975         register.
3976         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
3977         emitting register names.
3978         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
3979         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
3980         Remove fixed FIXME.
3981         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3982         Declare.
3983
3984         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3985
3986 2002-04-30  Richard Henderson  <rth@redhat.com>
3987
3988         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3989         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
3990         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
3991         emit_tfmode_cvt): New.
3992         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
3993         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
3994         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
3995         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
3996         * config/sparc/sparc-protos.h: Update.
3997
3998 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
3999
4000         * install.texi (Final install): Add to the list of info to include
4001         in a report of a successful bootstrap, and add link to 3.1 list.
4002
4003 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
4004
4005         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
4006         (mode): Add vector modes
4007         (i387): Kill attribute.
4008         (unit): New attribute.
4009         (length_immediate): Grok new types.
4010         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
4011         (modrm): Use "unit".
4012         (memory): Handle MMX/SSE properly.
4013         (scheduling descriptions): Kill uses of fop1.
4014         (sse, mmx, fp patterns): Set type and mode properly.
4015
4016 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
4017
4018         * pa.c (override_options): Default to PA8000 scheduling.
4019         * doc/invoke.texi (HP-PA options): Mention newly added 7300
4020         scheduling parameter.
4021
4022         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
4023         handling of double precision multiplies.
4024
4025         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
4026         fpdiv and fpsqrt instructions.
4027         (7200 & 7300 scheduling): Fix typo in handling of
4028         store-load and store-store penalties.
4029
4030 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4031
4032         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
4033         mips.  Add two missing commas.
4034
4035 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
4036
4037         * doc/contrib.texi (Contributors): Update Paolo Carlini's
4038         and Benjamin Kosnik's entries.
4039
4040 2002-04-29  David S. Miller  <davem@redhat.com>
4041
4042         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
4043         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
4044         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
4045         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4046
4047 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4048
4049         * combine.c (find_split_point): Use gen_int_mode.
4050
4051 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4052
4053         Merging code from dfa-branch:
4054
4055         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
4056
4057         * genautomata.c (output_reserv_sets): Fix typo.
4058
4059         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
4060
4061         * genautomata.c (output_reserv_sets): Remove
4062         next_cycle_output_flag.
4063
4064         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
4065
4066         * sched-rgn.c (init_ready_list): Make the DFA code handle
4067         USE/CLOBBER insns in the same way as the traditional
4068         scheduler.
4069         (new_ready): Similarly..
4070
4071         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
4072
4073         * haifa-sched.c (schedule_block): Change the DFA state only after
4074         issuing insn.
4075
4076         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
4077
4078         * pa.c (hppa_use_dfa_pipeline_interface): New function.
4079         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
4080         (override_options): Add PA7300 scheduling support.
4081         (pa_adjust_cost): Update various comments.  Properly
4082         handle anti and output dependencies when using the
4083         DFA scheduler.
4084         (pa_issue_rate): Add PA7300 scheduling support.
4085         (pa_can_combine_p): Call extract_insn before calling
4086         constrain_operands (taken from mainline tree).
4087         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
4088         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
4089         descriptions using DFA descriptions.  Add PA7300
4090         scheduling support.
4091
4092         2002-03-30  David S. Miller  <davem@redhat.com>
4093
4094         Add UltraSPARC-III DFA scheduling support.
4095         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
4096         Update FP conditional move on register insn patterns to use it, as
4097         appropriate.
4098         (define_attr cpu): Add ultrasparc3.
4099         (define_attr us3load_type): New, update integer load patterns to
4100         set it, as appropriate.
4101         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
4102         (rest): Add UltraSPARC3 scheduling description.
4103         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
4104         (PROCESSOR_ULTRASPARC3): New.
4105         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
4106         ({ASM,CPP}_CPU_SPEC): Likewise.
4107         (REGISTER_MOVE_COST): Likewise.
4108         (RTX_COSTS): Likewise.
4109         * config/sparc/sparc.c (sparc_override_options,
4110         sparc_initialize_trampoline, sparc64_initialize_trampoline,
4111         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4112         sparc_issue_rate): Likewise.
4113         * config/sparc/sol2.h: Likewise.
4114         * config/sparc/sol2-sld-64.h: Likewise.
4115         * config/sparc/linux64.h: Likewise.
4116
4117         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
4118
4119         * doc/md.texi: Add comments about usage the latency time for the
4120         different dependencies and about case when two or more conditions
4121         in different define_insn_reservations returns TRUE for an insn.
4122
4123         * doc/md.texi: Add reference for automaton based pipeline
4124         description.
4125
4126         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
4127
4128         * doc/passes.texi: Add missed information about genattrtab.
4129
4130         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4131
4132         * genautomata.c (output_automata_list_transition_code): Check
4133         automata_list on NULL.
4134
4135         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
4136
4137         * genautomata.c (output_insn_code_cases,
4138         output_automata_list_min_issue_delay_code,
4139         output_automata_list_transition_code,
4140         output_automata_list_state_alts_code): Comment the functions.
4141
4142         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
4143
4144         * genautomata.c (automata_list_el_t): New typedef.
4145         (get_free_automata_list_el,free_automata_list_el,
4146         free_automata_list, automata_list_hash, automata_list_eq_p,
4147         initiate_automata_lists, automata_list_start, automata_list_add,
4148         automata_list_finish, finish_automata_lists,
4149         output_insn_code_cases, output_automata_list_min_issue_delay_code,
4150         output_automata_list_transition_code,
4151         output_automata_list_state_alts_code, add_automaton_state,
4152         form_important_insn_automata_lists): New functions and prototypes.
4153         (insn_reserv_decl): Add members important_automata_list and
4154         processed_p.
4155         (ainsn): Add members important_p.
4156         (automata_list_el): New structure.
4157         (first_free_automata_list_el, current_automata_list,
4158         automata_list_table): New global variables.
4159         (create_ainsns): Initiate member important_p.
4160         (output_internal_min_issue_delay_func): Generate the switch and
4161         call output_insn_code_cases.
4162         (output_internal_trans_func, output_internal_state_alts_func):
4163         Ditto.
4164         (generate): Call initiate_automata_lists.
4165         (automaton_states): New global variable.
4166         (expand_automata): Call form_important_insn_automata_lists.
4167         (write_automata): Call finish_automata_lists.
4168
4169         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
4170
4171         * genautomata.c (add_excls, add_presence_absence): Check that
4172         cpu units in the sets belong the same automaton.
4173
4174         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
4175         about that cpu units in the sets belong the same automaton.
4176
4177         * doc/md.texi: Ditto.
4178
4179         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
4180                     Nitin Gupta  <niting@noida.hcltech.com>
4181
4182         * config/sh/sh.c (sh_use_dfa_interface): New function.
4183
4184         (sh_issue_rate): New Function.
4185         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
4186         TARGET_SCHED_ISSUE_RATE: define.
4187
4188         * config/sh/sh.md: Add DFA based pipeline description for SH4.
4189
4190         (define_attr insn_class): New attribute used for DFA
4191          scheduling.
4192         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
4193         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
4194          cmpeqdi_t): Likewise.
4195
4196         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
4197          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
4198          ex_group.
4199         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
4200
4201         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4202
4203         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
4204         break.
4205
4206         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4207
4208         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
4209         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
4210         necessary.
4211         (output_dfa_start_func): Initiate new variable insn_codes_length,
4212         (write_automata): Output definition of the new variable.
4213
4214         2001-10-02  David S. Miller  <davem@redhat.com>
4215
4216         * haifa-sched.c (advance_one_cycle): New function.
4217         (schedule_block): Use it.
4218         (queue_to_ready): Use it, and also make sure to advance the DFA
4219         state on all stall cycles, not just those where insn_queue links
4220         are found.
4221
4222         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
4223
4224         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
4225         non-zero if the highest-priority instruction could be scheduled.
4226         (choose_ready): Remove last argument from max_issue call.
4227
4228         2001-09-28  David S. Miller  <davem@redhat.com>
4229
4230         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
4231         ultrasparc and 3 for other multi-issue sparcs.
4232
4233         2001-09-27  David S. Miller  <davem@redhat.com>
4234
4235         * config/sparc/sparc.md (cycle_display): New pattern.
4236         * config/sparc/sparc.c (sparc_cycle_display): New.
4237         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
4238
4239         2001-09-25  David S. Miller  <davem@redhat.com>
4240
4241         Convert all of Sparc scheduling to DFA
4242         * config/sparc/sparc.md: Kill all define_function_unit
4243         directives and replace with DFA equivalent.
4244         * config/sparc/sparc.c (ultrasparc_adjust_cost,
4245         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
4246         ultra_fpmode_conflict_exists, ultra_find_type,
4247         ultra_build_types_avail, ultra_flush_pipeline,
4248         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
4249         ultrasparc_variable_issue, ultrasparc_sched_init,
4250         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
4251         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
4252         ultra_cur_hist, ultra_cycles_elapsed): Kill.
4253         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4254         ultrasparc_store_bypass_p): New.
4255         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
4256         Declare.
4257
4258         2001-09-24  David S. Miller  <davem@redhat.com>
4259
4260         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
4261         ready->vec[foo] not ready[foo].
4262
4263         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4264
4265         * doc/md.texi: Correct examples for define_insn_reservations
4266         `mult' and `div'.
4267
4268         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4269
4270         * genautomata.c (create_automata): Print message about creation of
4271         each automaton.
4272         (generate): Remove printing meease about creation of
4273         automata.
4274
4275         2001-09-05  David S. Miller  <davem@redhat.com>
4276
4277         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4278         * config/sparc/linux64.h: Likewise.
4279
4280         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
4281
4282         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
4283         schedule_block, sched_init, sched_finish): Add missed calls of
4284         use_dfa_pipeline_interface.
4285
4286         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
4287         Ditto.
4288
4289         * sched-vis.c (get_visual_tbl_length): Ditto.
4290
4291         2001-08-27  Richard Henderson  <rth@redhat.com>
4292
4293         * genattr.c (main): Emit state_t even when not doing scheduling.
4294
4295         2001-08-27  Richard Henderson  <rth@redhat.com>
4296
4297         * genautomata.c (expand_automata): Always create a description.
4298
4299         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4300
4301         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
4302         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
4303         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
4304         RTL constructions.
4305
4306         * genattr.c (main): New variable num_insn_reservations.  Increase
4307         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
4308         pipeline hazard recognizer interface.
4309
4310         * genattrtab.h: New file.
4311
4312         * genattrtab.c: Include genattrtab.h.
4313         (attr_printf, check_attr_test, make_internal_attr,
4314         make_numeric_value): Move protypes into genattrtab.h.  Define them
4315         as external.
4316         (num_dfa_decls): New global variable.
4317         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
4318         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
4319         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
4320         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
4321
4322         * genautomata.c: New file.
4323
4324         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
4325
4326         * sched-int.h: (curr_state): Add the external definition for
4327         automaton pipeline interface.
4328         (haifa_insn_data): Add comments for members blockage and units.
4329
4330         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4331         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4332         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4333         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4334         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4335         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4336         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
4337         macros.
4338         (TARGET_SCHED): Use the new macros.
4339
4340         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
4341         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
4342         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
4343         dfa_bubble): New members in gcc_target.sched.
4344
4345         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
4346         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
4347         (insn_queue): Redefine it as pointer to array.
4348         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
4349         INSN_QUEUE_SIZE.
4350         (max_insn_queue_index_macro_value): New variable.
4351         (curr_state, dfa_state_size, ready_try): New varaibles for
4352         automaton interface.
4353         (ready_element, ready_remove, max_issue): New function prototypes
4354         for automaton interface.
4355         (choose_ready): New function prototype.
4356         (insn_unit, blockage_range): Add comments.
4357         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
4358         FUNCTION_UNITS_SIZE == 0.
4359         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
4360         actual_hazard, potential_hazard): Add comments.
4361         (insn_cost): Use cost -1 as undefined value.  Remove
4362         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
4363         pipeline interface.
4364         (ready_element, ready_remove): New functions for automaton
4365         interface.
4366         (schedule_insn): Add new code for automaton pipeline interface.
4367         (queue_to_ready): Add new code for automaton pipeline interface.
4368         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
4369         (debug_ready_list): Print newline when the queue is empty.
4370         (max_issue): New function for automaton pipeline interface.
4371         (choose_ready): New function.
4372         (schedule_block): Add new code for automaton pipeline interface.
4373         Print ready list before scheduling each insn.
4374         (sched_init): Add new code for automaton pipeline interface.
4375         Initiate insn cost by -1.
4376         (sched_finish): Free the current automaton state and finalize
4377         automaton pipeline interface.
4378
4379         * sched-rgn.c: Include target.h.
4380         (init_ready_list, new_ready, debug_dependencies): Add new code for
4381         automaton pipeline interface.
4382
4383         * sched-vis.c: Include target.h.
4384         (get_visual_tbl_length): Add code for automaton interface.
4385         (target_units, print_block_visualization):  Add comments.
4386
4387         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
4388         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
4389         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
4390         (getruntime.o, genautomata.o): New entries.
4391         (genattrtab.o): Add new dependency file genattrtab.h.
4392         (genattrtab): Add new dependencies.  Link it with `libm.a'.
4393         (getruntime.o, hashtab.o): New entries for canadian cross.
4394
4395         * doc/md.texi: Description of automaton based model.
4396
4397         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
4398         Add comments.
4399         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4400         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4401         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4402         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4403         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4404         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4405         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
4406         hook descriptions.
4407         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
4408         MAX_DFA_ISSUE_RATE): New macro descriptions.
4409
4410         * doc/contrib.texi: Add dfa based scheduler contribution.
4411
4412         * doc/gcc.texi: Add more information about genattrtab.
4413
4414 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4415
4416         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
4417         adjust_address_nv call.
4418
4419 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
4420
4421         * doc/install.texi (Testing): Provide additional information, and
4422         a stronger encouragement, for running the testsuites.
4423
4424 2002-04-29  DJ Delorie  <dj@redhat.com>
4425
4426         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
4427         given in upper case.
4428
4429 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4430
4431         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
4432         Solaris 2 <widec.h> if missing.
4433         * fixinc/fixincl.x: Regenerate.
4434         * fixinc/tests/base/widec.h: New file.
4435
4436 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
4437
4438         * toplev.c (f_options): Add "profile" switch so that
4439         -fno-profile can be used to disable -p.
4440
4441 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
4442
4443         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
4444         UV2DImode.
4445         * tree.c (build_common_tree_nodes_2): Likewise.
4446         * tree.h (enum tree_index): Likewise.
4447         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
4448
4449         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
4450         entries.
4451         (init_mmx_sse_builtins): Initialize SSE2 builtins.
4452         (ix86_expand_builtin): Add support for SSE2 builtins.
4453         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
4454         (VALID_SSE_REG_MODE): Use it.
4455         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
4456         (enum ix86_builtins): Add SSE2 builtins.
4457         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
4458         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
4459         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
4460         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
4461         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
4462         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
4463         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
4464         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
4465         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
4466         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
4467         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
4468         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
4469         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
4470         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4471         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
4472         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
4473         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
4474         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
4475         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
4476         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
4477         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
4478         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
4479         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
4480         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
4481         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
4482         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
4483         lfence_insn): New patterns.
4484         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
4485         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
4486
4487 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
4488
4489         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
4490
4491 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4492
4493         * doc/contrib.texi (Contributors): Add Paolo Carlini and
4494         Janis Johnson.
4495         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
4496         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
4497         and CPU instead of cpu.
4498
4499 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4500
4501         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
4502         variables.
4503         (lang_independent_options): Add -fif-conversion, -fif-conversion2
4504         (rest_of_compilation): Do if conversion only when asked for.
4505         (parse_options_and_default_flags): Set new variables to 1 for -O1
4506         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
4507
4508 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
4509
4510         * i386.c (dbx64_register_map): Fix typo.
4511
4512 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
4513
4514         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
4515         real_one_half, real_bb_freq_max): New static variables.
4516         (debug_profile_bbauxs): Kill.
4517         (process_note_predictions): Kill unused variable.
4518         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
4519         volatile double.
4520         (propagate_freq): Use REAL_ARITHMETICS.
4521         (estimate_bb_frequencies): Likevise; init new static variables.
4522         * Makefile.in (predict.o): Add dependency on real.h
4523
4524 2002-04-28  David S. Miller  <davem@redhat.com>
4525
4526         PR target/6500
4527         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
4528         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
4529         several {reads,writes} instead.
4530         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
4531         Define.
4532
4533 2002-04-27  David S. Miller  <davem@redhat.com>
4534
4535         PR target/6494
4536         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
4537         of the stack bias.
4538
4539         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
4540         including signal.h and sys/ucontext.h, not needed.
4541
4542 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
4543
4544         * varasm.c (output_constant_def): Correct test for not calling
4545         ENCODE_SECTION_INFO for INTEGER_CST.
4546
4547 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4548
4549         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
4550         keep most cases as function eval_token.
4551         (eval_token): New function.
4552         (_cpp_parse_expr): Read token here for improved diagnostics.
4553         Don't use op_as_text.  Detect bad ':' here.
4554         (reduce): Don't detect bad ':' here.
4555         (op_as_text): Remove.
4556         * cpphash.h (_cpp_test_assertion): Change prototype.
4557         * cpplib.c (_cpp_test_assertion): Change prototype.
4558
4559 2002-04-28  Richard Henderson  <rth@redhat.com>
4560
4561         PR c/5154
4562         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
4563         (ggc_mark_rtx_children): New.
4564
4565 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4566
4567         PR target/6496
4568         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
4569         after call peepholes for UltraSPARC.
4570         (call + jump 64-bit peepholes): Remove.
4571
4572 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4573
4574         PR c/6497
4575         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
4576         result as temporary value.
4577
4578 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4579
4580         PR c++/6396
4581         * toplev.c (rest_of_compilation): Only run regrename and copy
4582         propagation if optimizing.
4583
4584 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4585
4586         PR optimization/6475
4587         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
4588         register of REGNO_DECL (i).
4589         * Makefile.in (reload1.o): Add $(TREE_H).
4590
4591 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4592
4593         * cppexp.c (lex): Update to use state.skip_eval.
4594         (struct op): Remove prio and flags members.
4595         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
4596         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
4597         (LEFT_ASSOC): New macro.
4598         (optab): New table of operator priorities and flags.
4599         (SHIFT): Update.
4600         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
4601         malloc-ed parser stack.
4602         (reduce): New; reduce the operator stack.
4603         (_cpp_expand_op_stack): Expand the operator stack as necessary.
4604         * cpphash.h (struct op): Predeclare.
4605         (struct cpp_reader): New members op_stack, op_limit.
4606         (struct lexer_state): New member skip_eval.
4607         (_cpp_parse_expr): Update.
4608         (_cpp_expand_op_stack): New.
4609         * cpplib.c (do_if): Update.
4610         * cppinit.c (cpp_create_reader): Create op stack.
4611         (cpp_destroy): And destroy it.
4612         * cpplib.h (CPP_LAST_CPP_OP): Correct.
4613         (TTYPE_TABLE): Correct.
4614
4615 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4616
4617         PR c/6343
4618         * c-decl.c (duplicate_decls): Call merge_weak.
4619         * c-pragma.c (apply_pragma_weak): Warn about misuse.
4620         * output.h (merge_weak): Prototype merge_weak.
4621         * varasm.c (merge_weak): New function.
4622         (declare_weak): Make sure we don't give an error on VAR_DECLs.
4623         Mark RTL with SYMBOL_REF_WEAK.
4624
4625 2002-04-27  Kurt Garloff <garloff@suse.de>
4626
4627         * tree-inline.c (inlinable_function_p): Improve heuristics
4628         by using a smoother function to cut down allowable inlinable size.
4629         * param.def: Add parameters max-inline-insns-single,
4630         max-inline-slope, min-inline-insns that determine the exact
4631         shape of the above function.
4632         * param.h: Likewise.
4633
4634 2002-04-26  Richard Henderson  <rth@redhat.com>
4635
4636         * c-parse.in (malloced_yyss, malloced_yyvs): New.
4637         (yyoverflow): Re-add.  Set them.
4638         (free_parser_stacks): New.
4639         * c-common.h: Declare it.
4640         * c-lex.c (c_common_parse_file): Call it.
4641
4642 2002-04-26  Richard Henderson  <rth@redhat.com>
4643
4644         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
4645         for fallthru search.
4646
4647 2002-04-26  Eric Christopher  <echristo@redhat.com>
4648
4649         PR optimization/3700
4650         * config/mips/mips.c (mips_issue_rate): Define.  New function.
4651         (TARGET_SCHED_ISSUE_RATE): Use.
4652
4653 2002-04-25  David S. Miller  <davem@redhat.com>
4654
4655         PR target/6422
4656         * reorg.c (optimize_skip): Do not allow exception causing
4657         instructions to be considered for delay slots.
4658         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
4659         (relax_delay_slots): Do not try to consider exception causing
4660         instructions as redundant.
4661
4662 2002-04-26  Richard Henderson  <rth@redhat.com>
4663
4664         PR c/5225
4665         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
4666
4667 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
4668
4669         PR bootstrap/6445
4670         * config/i386/i386.md (untyped_call): Return the value in a float
4671         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
4672         TARGET_80387.
4673
4674 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
4675
4676         * tree.c (tree_int_cst_lt): Compare constants whose types differ
4677         in unsigned-ness correctly.
4678
4679 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4680
4681         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
4682         portable runtime model.
4683
4684 2002-04-26  Richard Henderson  <rth@redhat.com>
4685
4686         * c-parse.in (yyoverflow): Revert.
4687
4688 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
4689             Richard Henderson  <rth@redhat.com>
4690
4691         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
4692         result as temporary value.
4693
4694 2002-04-26  Richard Henderson  <rth@redhat.com>
4695
4696         PR c/3581
4697         * c-common.c (fix_string_type): Split out of ...
4698         (combine_strings): ... here.  Take a varray, not a tree list.
4699         (c_expand_builtin_printf): Use fix_string_type.
4700         * c-common.h: Update decls.
4701         * c-parse.in (string): Remove.  Update all uses to use STRING
4702         instead, and not call combine_strings.
4703         (yylexstring): New.
4704         (_yylex): Use it.
4705         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
4706         (build_asm_stmt): Likewise.
4707         * objc/objc-act.c (my_build_string): Use fix_string_type.
4708         (build_objc_string_object): Build varray for combine_strings.
4709
4710 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
4711
4712         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
4713         x86-64.
4714
4715 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4716
4717         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
4718         (HAVE_NO_R_OPERAND): Remove.
4719         (HAVE_VALUE): Remove.
4720         (op_to_prio): Update.
4721         (UNARY): Don't alter flags.
4722         (_cpp_parse_expr): want_value used to indicate whether
4723         a number or unary operator is expected next.  Distinguish
4724         unary and binary +/-.
4725         (op_as_text): Update for unary operators.
4726
4727 2002-04-25  Richard Henderson  <rth@redhat.com>
4728
4729         PR c/2161
4730         * c-parse.in (yyoverflow): New.
4731
4732 2002-04-25  Richard Henderson  <rth@redhat.com>
4733
4734         PR c/2098
4735         * c-common.c (shorten_compare): Simplfy conditions leading to
4736         the generation of a warning.
4737
4738 2002-04-25  Richard Henderson  <rth@redhat.com>
4739
4740         PR c/2035
4741         * expmed.c (extract_bit_field): Fall through to generic code rather
4742         than aborting on subreg special case.
4743
4744 2002-04-25  David S. Miller  <davem@redhat.com>
4745
4746         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
4747         for DECL being NULL.
4748
4749 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
4750
4751         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
4752
4753 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
4754
4755         * c-decl.c (grokdeclarator): Remove outdated ??? note
4756         on invalid declaration of flexible array members.
4757
4758 2002-04-25  Richard Henderson  <rth@redhat.com>
4759
4760         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
4761
4762 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
4763
4764         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
4765         needed by the compiler, even if they are used as global regs.
4766
4767 2002-04-25  Matt Hiller  <hiller@redhat.com>
4768
4769         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
4770         functions.
4771         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
4772         of the corresponding functions.
4773         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
4774         New prototypes.
4775
4776 2002-04-25  Matt Hiller  <hiller@redhat.com>
4777
4778         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
4779
4780         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
4781         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
4782         registers, adjust comment accordingly.
4783         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4784         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
4785         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
4786         for coprocessor registers.
4787         (ADDITIONAL_REGISTER_NAMES): Include
4788         ALL_COP_ADDITIONAL_REGISTER_NAMES.
4789
4790         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
4791         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
4792         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
4793         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
4794         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
4795
4796         (mips_char_to_class): Adjust comment to include coprocessor
4797         constraint letters.
4798
4799         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
4800         New functions.
4801         (mips_reg_names, mips_regno_to_class): Include coprocessor
4802         information.
4803         (mips_sw_reg_names): Ditto, make non-static.
4804         (mips_move_1word): Handle moves to and from coprocessor registers.
4805         (mips_move_2words): Handle moves to and from coprocessor
4806         registers.
4807         (mips_class_max_nregs, mips_register_move_cost): Handle
4808         coprocessor register classes.
4809         (override_options): Initialize mips_char_to_class and
4810         mips_hard_regno_mode_ok properly for coprocessor registers.
4811
4812         * config/mips/mips.md (movdi_internal, movdi_internal2,
4813         movsi_internal1, movsi_internal2): Add constraint-sets for
4814         coprocessor registers.
4815         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
4816         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
4817         isn't mips.
4818         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
4819         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
4820         isn't mips.
4821         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
4822         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
4823         isn't mips.
4824         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
4825         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
4826         isn't mips.
4827
4828         * doc/tm.texi: Document feature.
4829
4830 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4831
4832         * integrate.c (function_attribute_inlinable_p): Simplify.
4833         Check the table pointer is not NULL.
4834
4835 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
4836
4837         * doc/c-tree.texi: Fix typo in introduction.
4838
4839 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4840
4841         * c-common.h (c_common_parse_file): Update.
4842         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4843         * c-lex.c (YYDEBUG): Get from c-lex.h.
4844         (c_common_parse_file): Update.
4845         * c-lex.h (YYDEBUG, yydebug): New.
4846         * c-parse.in (YYDEBUG): Get from c-lex.h.
4847         (c_set_yydebug): Remove.
4848         * c-tree.h (c_set_yydebug): Remove.
4849         * langhooks-def.h (lhd_do_nothing_i): New.
4850         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
4851         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
4852         * langhooks.c  (lhd_do_nothing_i): New.
4853         (lhd_set_yydebug): Remove.
4854         * langhooks.h (struct lang_hooks): Update.
4855         * toplev.c (set_yydebug): New.
4856         (compile_file): Update call to parse_file hook.
4857         (decode_d_option): Update.
4858 objc:
4859         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4860
4861 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
4862
4863         * loop.c (load_mems): Don't change the interface of called functions.
4864
4865         * calls.c (expand_call): Take current_function_pretend_args_size
4866         into account when setting argblock for sibcalls.
4867
4868 2002-04-24  Matt Hiller  <hiller@redhat.com>
4869
4870         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
4871         * c-lex.c: Ditto.
4872
4873         * cpplex.c (skip_line_comment): Process comment one multibyte
4874         character at a time rather than one char at a time, if
4875         appropriate.
4876         (parse_string): Process string one multibyte character at a time
4877         rather than one char at a time, if appropriate.
4878         * c-lex.c (lex_string): Lex and copy multibyte strings
4879         appropriately.
4880         * cpplib.h (cppchar_t): Change to unsigned.
4881
4882 2002-04-24  Richard Henderson  <rth@redhat.com>
4883
4884         PR c/3467
4885         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
4886         for c99.
4887
4888 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
4889
4890         * sh.c (sh_va_arg): If argument was passed by reference,
4891         dereference the pointer.
4892
4893         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
4894
4895         * sh.md (divsi3_i4_media): Use match_operand for input values
4896         rather than hard registers.
4897         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
4898         unnecessarily through hard registers.  Keep copies of pseudo
4899         registers outside of the libcall sequence.
4900
4901         * sh.md (casesi_shift_media): Add modes.
4902
4903         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
4904         values in memory.
4905
4906 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4907
4908         * attribs.c (c_common_attribute_table): Move table and handlers
4909         to c-common.c.
4910         (format_attribute_table, lang_attribute_table,
4911         lang_attribute_common): Remove.
4912         (init_attributes): Replace NULL pointers with pointers to the
4913         empty table.
4914         (handle_packed_attribute, handle_nocommon_attribute,
4915         handle_common_attribute, handle_noreturn_attribute,
4916         handle_noinline_attribute, handle_always_inline_attribute,
4917         handle_used_attribute, handle_unused_attribute,
4918         handle_const_attribute, handle_transparent_union_attribute,
4919         handle_constructor_attribute, handle_destructor_attribute,
4920         handle_mode_attribute, handle_section_attribute,
4921         handle_aligned_attribute, handle_weak_attribute,
4922         handle_alias_attribute, handle_visibility_attribute,
4923         handle_no_instrument_function_attribute, handle_malloc_attribute,
4924         handle_no_limit_stack_attribute, handle_pure_attribute,
4925         handle_deprecated_attribute, handle_vector_size_attribute,
4926         vector_size_helper): Move to c-common.c.
4927         * c-common.c (c_common_attribute_table,
4928         handle_packed_attribute, handle_nocommon_attribute,
4929         handle_common_attribute, handle_noreturn_attribute,
4930         handle_noinline_attribute, handle_always_inline_attribute,
4931         handle_used_attribute, handle_unused_attribute,
4932         handle_const_attribute, handle_transparent_union_attribute,
4933         handle_constructor_attribute, handle_destructor_attribute,
4934         handle_mode_attribute, handle_section_attribute,
4935         handle_aligned_attribute, handle_weak_attribute,
4936         handle_alias_attribute, handle_visibility_attribute,
4937         handle_no_instrument_function_attribute, handle_malloc_attribute,
4938         handle_no_limit_stack_attribute, handle_pure_attribute,
4939         handle_deprecated_attribute, handle_vector_size_attribute,
4940         vector_size_helper): Move from attribs.c.
4941         * c-common.h (c_common_attribute_table,
4942         c_common_format_attribute_table): New.
4943         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4944         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4945         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4946         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
4947         (LANG_HOOKS_INITIALIZER): Update.
4948         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
4949         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
4950         * target.h: Update comment.
4951         * tree.c (default_target_attribute_table): Remove.
4952         * tree.h (default_target_attribute_table, format_attribute_table,
4953         lang_attribute_table, lang_attribute_common): Remove.
4954 objc:
4955         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4956         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4957
4958 2002-04-24  Jason Merrill  <jason@redhat.com>
4959
4960         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
4961         * dwarf2out.c (dwarf_attr_name): Support it.
4962         (gen_array_type_die): Emit it.
4963         (lookup_type_die): No special handling for VECTOR_TYPE.
4964         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
4965
4966 2002-04-24  Richard Henderson  <rth@redhat.com>
4967
4968         * config/mips/mips.md (movdi_usd): Renumber.
4969
4970 2002-04-24  David S. Miller  <davem@redhat.com>
4971
4972         PR target/6420
4973         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
4974         32-bit Sparc and current_function_returns_struct is true.
4975
4976 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4977
4978         * loop.c (canonicalize_condition): Use gen_int_mode.
4979
4980 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
4981
4982         * config/rs6000/altivec.h: Cleanup file.  Add non individual
4983         variants.
4984         (vec_vaddubm): New.
4985         (vec_vadduhm): New.
4986         (vec_vadduwm): New.
4987         (vec_vaddfp): New.
4988         (vec_vaddcuw): New.
4989         (vec_vaddubs): New.
4990         (vec_vaddsbs): New.
4991         (vec_vadduhs): New.
4992         (vec_vadduws): New.
4993         (vec_vaddsws): New.
4994         (vec_vand): New.
4995         (vec_vandc): New.
4996         (vec_vavgub): New.
4997         (vec_vavgsb): New.
4998         (vec_vavguh): New.
4999         (vec_vavgsh): New.
5000         (vec_vavguw): New.
5001         (vec_vavgsw): New.
5002         (vec_vrfip): New.
5003         (vec_vcmpbfp): New.
5004         (vec_vcmpequb): New.
5005         (vec_vcmpequh): New.
5006         (vec_vcmpequw): New.
5007         (vec_vcmpeqfp): New.
5008         (vec_vcmpgefp): New.
5009         (vec_vcmpgtub): New.
5010         (vec_vcmpgtsb): New.
5011         (vec_vcmpgtuh): New.
5012         (vec_vcmpgtsh): New.
5013         (vec_vcmpgtuw): New.
5014         (vec_vcmpgtsw): New.
5015         (vec_vcmpgtfp): New.
5016         (vec_vcmpgefp): New.
5017         (vec_vcfux): New.
5018         (vec_vcfsx): New.
5019         (vec_vctsxs): New.
5020         (vec_vctuxs): New.
5021         (vec_vexptefp): New.
5022         (vec_vrfim): New.
5023         (vec_lvx): New.
5024         (vec_lvebx): New.
5025         (vec_lvehx): New.
5026         (vec_lde): Add vector float variant.
5027         (vec_lvewx): New.
5028         (vec_lvxl): New.
5029         (vec_vlogefp): New.
5030         (vec_vmaddfp): New.
5031         (vec_vmhaddshs): New.
5032         (vec_vmaxub): New.
5033         (vec_vmaxsb): New.
5034         (vec_vmaxuh): New.
5035         (vec_vmaxsh): New.
5036         (vec_vmaxuw): New.
5037         (vec_vmaxsw): New.
5038         (vec_vmaxsw): New.
5039         (vec_vmaxfp): New.
5040         (vec_vmrghb): New.
5041         (vec_vmrghh): New.
5042         (vec_vmrghw): New.
5043         (vec_vmrglb): New.
5044         (vec_vmrglh): New.
5045         (vec_vmrglw): New.
5046         (vec_vminub): New.
5047         (vec_vminsb): New.
5048         (vec_vminuh): New.
5049         (vec_vminsh): New.
5050         (vec_vminuw): New.
5051         (vec_vminsw): New.
5052         (vec_vminfp): New.
5053         (vec_vmladduhm): New.
5054         (vec_vmhraddshs): New.
5055         (vec_msumubm): New.
5056         (vec_vmsummbm): New.
5057         (vec_vmsumuhm): New.
5058         (vec_vmsumshm): New.
5059         (vec_vmsumuhs): New.
5060         (vec_vmsumshs): New.
5061         (vec_vmuleub): New.
5062         (vec_vmulesb): New.
5063         (vec_vmuleuh): New.
5064         (vec_vmulesh): New.
5065         (vec_vmuloub): New.
5066         (vec_mulosb): New.
5067         (vec_vmulouh): New.
5068         (vec_vmulosh): New.
5069         (vec_vnmsubfp): New.
5070         (vec_vnor): New.
5071         (vec_vor): New.
5072         (vec_vpkuhum): New.
5073         (vec_vpkuwum): New.
5074         (vec_vpkpx): New.
5075         (vec_vpkuhus): New.
5076         (vec_vpkshss): New.
5077         (vec_vpkuwus): New.
5078         (vec_vpkswss): New.
5079         (vec_vpkshus): New.
5080         (vec_vpkswus): New.
5081         (vec_vperm): New.
5082         (vec_vrefp): New.
5083         (vec_vrlb): New.
5084         (vec_vrlh): New.
5085         (vec_vrlw): New.
5086         (vec_vrfin): New.
5087         (vec_vrsqrtefp): New.
5088         (vec_vsel): New.
5089         (vec_vslb): New.
5090         (vec_vslh): New.
5091         (vec_vslw): New.
5092         (vec_vsldoi): New.
5093         (vec_vsl): New.
5094         (vec_vslo): New.
5095         (vec_vspltb): New.
5096         (vec_vsplth): New.
5097         (vec_vspltw): New.
5098         (vec_vspltisb): New.
5099         (vec_vspltish): New.
5100         (vec_vspltisw): New.
5101         (vec_vsrb): New.
5102         (vec_vsrh): New.
5103         (vec_vsrw): New.
5104         (vec_vsrab): New.
5105         (vec_vsrah): New.
5106         (vec_vsraw): New.
5107         (vec_vsr): New.
5108         (vec_vsro): New.
5109         (vec_stvx): New.
5110         (vec_stvebx): New.
5111         (vec_stvehx): New.
5112         (vec_stvewx): New.
5113         (vec_stvxl): New.
5114         (vec_vsububm): New.
5115         (vec_vsubuhm): New.
5116         (vec_vsubuwm): New.
5117         (vec_vsubfp): New.
5118         (vec_vsubcuw): New.
5119         (vec_vsububs): New.
5120         (vec_vsubsbs): New.
5121         (vec_vsubuhs): New.
5122         (vec_vsubshs): New.
5123         (vec_vsubuws): New.
5124         (vec_vsubsws): New.
5125         (vec_vsum4ubs): New.
5126         (vec_vsum4sbs): New.
5127         (vec_vsum4shs): New.
5128         (vec_vsum2sws): New.
5129         (vec_vsumsws): New.
5130         (vec_vrfiz): New.
5131         (vec_vupkhsb): New.
5132         (vec_vupkhpx): New.
5133         (vec_vupkhsh): New.
5134         (vec_vupklsb): New.
5135         (vec_vupklpx): New.
5136         (vec_vupklsh): New.
5137         (vec_vxor): New.
5138
5139 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
5140
5141         PR c/5430
5142         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
5143         added literals from substracted literals.
5144         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
5145         (fold) [associate]: Preserve MINUS_EXPR if needed.
5146
5147 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
5148
5149         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
5150         are obsoleted.
5151
5152 2002-04-23  Tom Tromey  <tromey@redhat.com>
5153
5154         * gcc.c: Added --resource.  For PR java/6314.
5155
5156 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5157
5158         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
5159         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
5160         these libraries.
5161
5162 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5163
5164         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
5165
5166 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5167
5168         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
5169         workaround.
5170         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
5171         (ix86_expand_clrstr): Fix typo.
5172         * loop.c (gen_load_of_final_value): New.
5173         (loop_givs_rescan, strength_reduce, check_dbra_loop):
5174         Use it.
5175
5176 2002-04-23  Roger Sayle  <roger@eyesopen.com>
5177
5178         * builtins.c (builtin_memset_gen_str): New function.
5179         (expand_builtin_memset): Optimize the case of constant length, but
5180         unknown value.
5181
5182 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
5183
5184         * config/rs6000/altivec.h (vec_step): Remove extraneous
5185         parentheses.
5186         (vec_ctu): Cast return.
5187
5188 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
5189
5190         PR target/6413
5191         * function.h: (struct function): Add profile_label_no field.
5192         (current_function_profile_label_no): Define.
5193         * function.c: (profile_label_no): New static var.
5194         (expand_function_start): Increment it, and copy to
5195         current_function_profile_label_no.
5196         * output.h (profile_label_no): Delete.
5197         * final.c (profile_label_no): Delete.
5198         (profile_function): Use current_function_profile_label_no.
5199         (final_end_function): Don't increment profile_label_no here.
5200         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
5201         profile_label_no with current_function_profile_label_no.
5202         * config/pa/pa.c (current_function_number): Delete.
5203         (pa_output_function_prologue): Don't output profile label here.
5204         (hppa_profile_hook): Use label_no param rather than
5205         current_function_number.
5206         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
5207         * config/pa/pa.h: .. here.
5208         (FUNCTION_PROFILER): Output profile label here.
5209
5210 2002-04-22  Eric Christopher  <echristo@redhat.com>
5211
5212         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
5213         patch of 2002-04-09 due to binutils issues.
5214         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
5215
5216 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5217
5218         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
5219         constraint to 'o' for m=r and r=m alternatives.
5220         ("*movv8hi_internal1"): Same.
5221         ("*movv16qi_internal1"): Same.
5222         ("*movv4sf_internal1"): Same.
5223
5224 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
5225
5226         * rtl.h (RTX_FLAG): New macro.
5227         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
5228         * final.c (alter_subreg): Use macro to access rtx flag.
5229         * integrate.c (copy_rtx_and_substitute): Use new access macro.
5230         * print-rtl.c (print_rtx): Use new access macro.
5231
5232         * cse.c (insert): Check rtx code before accessing flag.
5233
5234         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
5235         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
5236         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
5237         convert_const_symbol_ref, make_canonical, make_alternative_compare,
5238         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
5239         simplify_test_exp, optimize_attrs, simplify_by_exploding,
5240         find_and_mark_used_attributes, unmark_used_attributes,
5241         add_values_to_cover, simplify_with_current_value,
5242         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
5243         copy_rtx_unchanging, main): Use new access macros.
5244
5245 2002-04-22  Tom Rix  <trix@redhat.com>
5246
5247         * expmed.c (init_expmed): Generate shifted constant once.
5248
5249 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
5250
5251         * c-lex.c (lex_charconst): Call convert to get constant in
5252         proper type; don't just smash the type field.
5253         Fixes PR c/6300.
5254
5255         * config.gcc: Add list of obsolete configurations.  Disallow
5256         building these without --enable-obsolete.
5257         * doc/install.texi: Document --enable-obsolete and obsoletion
5258         policy.  Mention obsoletion of individual targets in
5259         appropriate places.
5260
5261 2002-04-22  Richard Henderson  <rth@redhat.com>
5262
5263         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
5264
5265 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
5266
5267         PR f/6138.
5268         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
5269         (walk_fixup_memory_subreg): Likewise.
5270         (fixup_var_refs_insn): Adjust accordingly.
5271         (fixup_var_refs_1): Likewise.
5272
5273 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
5274
5275         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
5276         LIBPATH_ARCH64_SPEC): Define.
5277         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
5278         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
5279         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
5280         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
5281
5282 2002-04-22      Joel Sherrill <joel@OARcorp.com>
5283
5284         * gthr-rtems.h: Correct prototypes to remove warnings.
5285
5286 2002-04-22  Richard Henderson  <rth@redhat.com>
5287
5288         PR c/6344
5289         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
5290
5291         * gcse.c (free_insn_expr_list_list): New.
5292         (clear_modify_mem_tables): Use it.  Fix bit set usage.
5293         (canon_list_insert): Use EXPR_LISTs for expressions.
5294         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
5295
5296 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5297
5298         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
5299         file change and include code to _cpp_pop_buffer.
5300         * cpphash.h (struct pending_option): Predeclare.
5301         (struct cpp_reader): New member next_include_file.
5302         (_cpp_pop_file_buffer): Update.
5303         (_cpp_push_next_buffer): Update, rename.
5304         * cppinit.c (cpp_destroy): Free include chain and pending here.
5305         (cpp_finish_options): Simplify.
5306         (_cpp_push_next_buffer): Rename and clean up.
5307         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
5308         Clarify.
5309         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
5310
5311 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5312
5313         * config/rs6000/altivec.h (vec_xor): Add variant for both args
5314         being vector signed int.
5315         (vec_andc): Same.
5316         (vec_xor): Add variant for both args being vector signed char.
5317         Remove redundant variant.
5318         (vec_andc): Same.
5319
5320 2002-04-21  David S. Miller  <davem@redhat.com>
5321
5322         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
5323         compare mode in output RTL.
5324
5325 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
5326
5327         * config/rs6000/rs6000.c (rs6000_override_options): Correct
5328         style and formatting of previous patch.
5329
5330 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
5331
5332         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
5333         flag_pic for ABI_AIX.
5334
5335 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5336
5337         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
5338         * cppfiles.c (read_include_file): Similarly.
5339         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
5340         uxstrdup ustrchr, ufputs): Similarly.
5341         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
5342         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
5343         cpp_ideq, parse_identifier, parse_number): Similarly.
5344         * cpplib.c (struct directive, dequote_string, D, run_directive,
5345         cpp_push_buffer): Similarly.
5346         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
5347         _cpp_create_definition, check_trad_stringification,
5348         cpp_macro_definition): Similarly.
5349
5350 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5351
5352         * cppmacro.c (funlike_invocation_p): Don't step back
5353         over CPP_EOF.
5354
5355 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
5356
5357         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
5358         labelno.
5359
5360 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5361
5362         * doc/invoke.texi: Remove Chill references.
5363         * doc/gcc.texi: Update last modified date.
5364
5365 2002-04-20  Kazu Hirata  <kazu@hxi.com>
5366
5367         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
5368         push and pop.  Replace add.l with add.w.
5369
5370 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5371
5372         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
5373         multiply instructions for H8/300H case.
5374
5375 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5376
5377         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
5378         Bum three instructions from each routine.
5379
5380 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5381
5382         * Makefile.in: Update.
5383         * decl.c (push_c_function_context, pop_c_function_context,
5384         mark_c_function_context): Rename for consistency.
5385         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
5386         * c-tree.h (push_c_function_context, pop_c_function_context,
5387         mark_c_function_context): Rename for consistency.
5388         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5389         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
5390         * function.c (init_lang_status, save_lang_status,
5391         restore_lang_status, mark_lang_status, free_lang_status):
5392         Move to langhooks.h.
5393         (push_function_context_to, pop_function_context_from,
5394         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
5395         Update.
5396         * function.h (init_lang_status, save_lang_status,
5397         restore_lang_status, mark_lang_status, free_lang_status):
5398         Move to langhooks.h.
5399         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
5400         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
5401         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
5402         LANG_HOOKS_FUNCTION_INITIALIZER): New.
5403         (LANG_HOOKS_INITIALIZER): Update.
5404         (lhd_do_nothing_f): New.
5405         * langhooks.h (struct lang_hooks_for_functions): New.
5406         (struct lang_hooks): New hooks.
5407         * langhooks.c (lhd_do_nothing_f): New.
5408 objc:
5409         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5410         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
5411
5412 2002-04-19  David S. Miller  <davem@redhat.com>
5413
5414         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
5415         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
5416
5417 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
5418
5419         PR optimization/3756
5420         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
5421         x = ((int) y < 0) ? cst1 : cst2.
5422
5423 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
5424
5425         PR c/6358
5426         * function.c: Reapply patch for c/6358.
5427         (expand_function_end): Copy decl_rtl's mode, not
5428         current_function_return_rtx mode.
5429
5430 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
5431
5432         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
5433         targets.
5434
5435 2002-04-19  Tom Tromey  <tromey@redhat.com>
5436
5437         * doc/install.texi (Specific): Update status of Solaris 2.8.
5438         For PR libgcj/6158.
5439
5440 2002-04-19  Andreas Schwab  <schwab@suse.de>
5441
5442         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
5443         (PUT_REAL): Restore old definition.
5444
5445 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
5446             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5447
5448         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
5449         binutils 2.11.2 and higher generate smaller binaries than Sun's
5450         native tools.
5451
5452 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
5453
5454         PR c++/6352
5455         * toplev.c (rest_of_compilation): Do not defer functions for which
5456         TREE_SYMBOL_REFERENCED has already been set.
5457
5458 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
5459
5460         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
5461         alternative.
5462
5463 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5464
5465         * builtins.c: Include langhooks.h.
5466         (lang_type_promotes_to): Remove.
5467         (expand_builtin_va_arg): Use new hook.
5468         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
5469         (simple_type_promotes_to): Move to c-typeck.c.
5470         * c-common.h (simple_type_promotes_to): Remove.
5471         * c-decl.c (duplicate_decls, grokdeclarator): Update.
5472         * c-format.c: Include langhooks.h.
5473         (check_format_types): Update.
5474         * c-tree.h (c_type_promotes_to): New.
5475         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
5476         (type_lists_compatible_p): Update.
5477         * langhooks-def.h (lhd_type_promotes_to): New.
5478         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
5479         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5480         * langhooks.c (lhd_type_promotes_to): New.
5481         * langhooks.h (struct lang_hooks_for_types): New hook.
5482         * tree.h (lang_type_promotes_to): Remove.
5483 objc:
5484         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
5485
5486 2002-04-18  Richard Henderson  <rth@redhat.com>
5487
5488         * function.c: Revert patch for c/6358.
5489
5490 2002-04-18  Richard Henderson  <rth@redhat.com>
5491
5492         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
5493         blocks.  Handle multiple references to the TRAP block.  Handle
5494         non-adjacent THEN and OTHER blocks.
5495
5496 2002-04-18  Richard Henderson  <rth@redhat.com>
5497
5498         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
5499         crash with no type for by-mode libcalls.
5500
5501         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
5502
5503 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
5504
5505         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
5506         __xtensa_nonlocal_goto): Use a syscall instructions to flush
5507         the register windows.
5508
5509 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5510
5511         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
5512         appropriate.  Document need for extended precision even when
5513         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
5514         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
5515         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
5516         instead of relying on later syntax error when REAL_WIDTH > 5.
5517         * real.c: Define NE based only on whether or not we have a
5518         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
5519         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
5520         define GET_REAL and PUT_REAL as simple memcpy operations; no
5521         need to byteswap or round.
5522         Use #error instead of #ifdef-ing out the entire file, for
5523         prompt error detection.
5524
5525         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
5526
5527 2002-04-18  David S. Miller  <davem@redhat.com>
5528
5529         * config/sparc/sparc.h (BRANCH_COST): Define.
5530
5531         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
5532         does it.
5533
5534 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5535
5536         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
5537         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
5538         propagate_block calls after relaxation loop using new variable
5539         stabilized_prop_flags.
5540
5541 2002-04-18  Richard Henderson  <rth@redhat.com>
5542
5543         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
5544         (ia64_va_arg): Expect variable sized types by reference.
5545         * config/ia64/ia64-protos.h: Update.
5546         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
5547         ia64_function_arg_pass_by_reference.
5548
5549 2002-04-18  Richard Henderson  <rth@redhat.com>
5550
5551         * ifcvt.c: Include except.h.
5552         (block_has_only_trap): Break out from find_cond_trap.
5553         (find_cond_trap): Use it.  Always delete the trap block.
5554         (merge_if_block): Allow then block null.  Be less simplistic about
5555         what insns can end a block.
5556         * Makefile.in (ifcvt.o): Depend on except.h.
5557
5558         * config/ia64/ia64.md (trap, conditional_trap): New.
5559
5560 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5561
5562         PR c/6358
5563         * function.c (assign_parms): Assign hard current_function_return_rtx
5564         register here...
5565         (expand_function_end): ...not here.
5566
5567 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5568
5569         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5570         * c-tree.h (c_incomplete_type_error): New.
5571         * c-typeck.c (require_complete_type, build_component_ref): Update.
5572         (incomplete_type_error): Rename.
5573         * langhooks-def.h (lhd_incomplete_type_error): New.
5574         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
5575         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5576         * langhooks.c (lhd_incomplete_type_error): New.
5577         * langhooks.h (struct lang_hooks_for_types): New hook.
5578         * tree.c (size_in_bytes): Use new hook.
5579         * tree.h (incomplete_type_error): Remove.
5580 objc:
5581         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5582
5583 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5584
5585         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
5586         TARGET_FLOAT_FORMAT blocks.
5587
5588 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5589
5590         * doc/install.texi (Downloading the source): Do not mention Chill
5591         any longer, but mention Ada.
5592         (Configuration): Do not mention Chill any longer.
5593
5594 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
5595
5596         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
5597
5598 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
5599
5600         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
5601         in last patch.
5602
5603 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5604
5605         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
5606         instead of unsigned_type.
5607
5608 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5609
5610         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
5611         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
5612         later.
5613
5614 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
5615
5616         * attribs.c (vector_type_node_list): New static variable.
5617         (handle_vector_size_attribute): Use it to avoid generating a
5618         new type node each time we are called.
5619
5620         * combine.c (subst): Avoid trying to make a vector mode subreg of
5621         an integer constant.
5622         (gen_lowpart_for_combine): Likewise.
5623
5624 2002-04-18  Roger Sayle  <roger@eyesopen.com>
5625             Jakub Jelinek  <jakub@redhat.com>
5626
5627         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
5628         for integer constant c (if x has unsigned type or sign bit is not
5629         set in c).  This folds the zero/sign extension into the bit-wise and
5630         operation.
5631
5632 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5633
5634         PR middle-end/6205
5635         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
5636         otherwise xorps.
5637
5638 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
5639
5640         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
5641
5642 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
5643
5644         * gcc.c (read_specs): Detect and fail if an attempt is made to
5645         rename a spec string to an already existing string.
5646
5647 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5648
5649         * config/s390/s390.c (legitimize_pic_address): Do not generate
5650         illegal address constant without CONST.
5651
5652 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5653
5654         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
5655         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
5656
5657 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5658
5659         PR optimization/6305
5660         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
5661         to make sure previous reloads are taken into account.  Generate
5662         better code if one operand is an in-range immediate constant.
5663
5664 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
5665
5666         * doc/install.texi (Building): libgcj requires GNU make.
5667
5668 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
5669
5670         PR bootstrap/6315
5671         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
5672         even if hard quad and register is not floating.
5673         (movtf reg<-mem split): Disallow splitting if hard quad and
5674         register is floating.
5675         (movtf mem<-reg split): Likewise.
5676         * config/sparc/sparc.c (fp_register_operand): New predicate.
5677         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
5678
5679 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
5680
5681         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
5682         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
5683         (unprotoize.o): Ditto.  Build from protoize.c.  Define
5684         UNPROTOIZE on command line.
5685         * protoize.c: Include cppdefault.h.  Delete include_defaults.
5686         (in_system_include_dir): Use cpp_include_defaults (defined in
5687         cppdefault.o).
5688         * unprotoize.c: Delete file.
5689
5690 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
5691
5692         * config/rs6000/altivec.h (vec_ld): Add array variants.
5693         (vec_lde): Same.
5694         (vec_ldl): Same.
5695
5696 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
5697             Aldy Hernandez <aldyh@redhat.com>
5698
5699         * config/rs6000/altivec.h: Define __ALTIVEC__.
5700         (bool): New.
5701         (__pixel): New.
5702         (pixel): New.
5703         (vec_cfux): New.
5704         (vec_vmaddfp): New.
5705         (vec_vsldoi): New.
5706         Add parentheses to all macro arguments.
5707
5708 2002-04-16  Richard Henderson  <rth@redhat.com>
5709
5710         PR c++/6320
5711         * except.c (remove_eh_handler): Insert inner regions at beginning
5712         of sibling chain.  Refactor expressions.
5713
5714 2002-04-16  Richard Henderson  <rth@redhat.com>
5715
5716         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
5717         * config/sparc/sol2-gas-bi.h: New file.
5718         * config.gcc (sparc*-solaris): Add it as needed.
5719         * configure.in (AS_SPARC64_FLAG): Remove check.
5720         * config.in, configure: Regenerate.
5721
5722         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
5723
5724 2002-04-16  Richard Henderson  <rth@redhat.com>
5725
5726         * config/mips/mips.c (override_options): Don't override N32 for
5727         a 64-bit ISA.
5728
5729         PR 6202
5730         * config/mips/mips.md (can_delay): Split out of existing define_delays.
5731         (HILO_delay): Set can_delay false.
5732
5733 2002-04-16  Dale Johannesen <dalej@apple.com>
5734
5735         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
5736         instruction addresses.
5737         (rs6000_output_function_epilogue): Likewise.
5738
5739 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
5740
5741         * c-parse.in (poplevel, compstmt_start,
5742         compstmt_primary_start): Add ending ';', in accordance
5743         with POSIX.
5744
5745 2002-04-16  Richard Henderson  <rth@redhat.com>
5746
5747         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
5748         Adjust tm_file order to get TARGET_DEFAULT set properly.
5749         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
5750         * doc/install.texi (sparc-solaris): Update.
5751
5752 2002-04-16  Dale Johannesen <dalej@apple.com>
5753
5754         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
5755         comparison operands do not match each other or if modes of
5756         conditions do not match result.
5757
5758 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
5759
5760         PR target/6305
5761         * config/s390/s390.md (mulsidi3): Set both subregs of the
5762         multiword register.
5763
5764 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
5765
5766         * config/rs6000/altivec.h (vec_addc): Type check.
5767
5768 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5769
5770         PR middle-end/6279
5771         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
5772
5773         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
5774
5775 2002-04-15  Richard Henderson  <rth@redhat.com>
5776
5777         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
5778         call_really_used_regs too.
5779
5780 2002-04-15  Richard Henderson  <rth@redhat.com>
5781
5782         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
5783
5784 2002-04-15  David S. Miller  <davem@redhat.com>
5785
5786         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
5787         as being CLOBBERed.
5788
5789 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5790
5791         PR c/6290
5792         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
5793         CONST_VECTOR is { 0, ... 0 }.
5794
5795 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
5796
5797         * doc/install.texi (Installing GCC: Configuration): Clarify
5798         the only supported ways to configure gcc.
5799
5800 2002-04-15  Roland McGrath  <roland@frob.com>
5801
5802         * config.gcc (alpha*-*-gnu*): New target configuration.
5803         * config/alpha/gnu.h: New file for it.
5804         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
5805
5806 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
5807
5808         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
5809         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
5810         * tree.h (expand_start_stmt_expr): Update prototype.
5811         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
5812         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
5813         on the STMT_EXPR created for the inline function.
5814
5815 2002-04-15  Richard Henderson  <rth@redhat.com>
5816
5817         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
5818         config/i386/linux-aout.h, config/i386/linux-oldld.h,
5819         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
5820         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
5821         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
5822         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
5823         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
5824         Define __gnu_linux__, not gnu_linux.
5825         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
5826
5827 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
5828
5829         Remove Chill front end.
5830         * gcc.c (default_compilers): Remove Chill entries.
5831         * ch: Remove directory.
5832         * doc/frontends.texi: Remove information about Chill.
5833         * doc/sourcebuild.texi: Likewise.
5834         * doc/standards.texi: Likewise.
5835
5836 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
5837
5838         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
5839         (LONGLONG_STANDALONE): Define.
5840
5841 2002-04-15  David S. Miller  <davem@redhat.com>
5842
5843         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
5844         Call emit_library_call with LCT_NORMAL.
5845         (sparc_initialize_trampoline): Use LCT_foo instead of
5846         magic constant in emit_library_call invocations.
5847         (sparc64_initialize_trampoline): Likewise.
5848         (sparc_profile_hook): Likewise.
5849         * config/sparc/sparc.md: Likewise.
5850
5851         * config/sparc/sparc.c (sparc_extra_constraint_check):
5852         Fix type of argument 'c'.
5853         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
5854         Likewise.
5855
5856 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5857
5858         * diagnostic.h (output_buffer_state): Redefine.
5859         (output_format_decoder): New macro.
5860         (output_prefixing_rule): Likewise.
5861         (output_line_cutoff): Likewise.
5862         (diagnostic_format_decoder): Adjust.
5863         (diagnostic_prefixing_rule): Likewise.
5864         (diagnostic_line_cutoff): Likewise.
5865         (diagnostic_state): Likewise.
5866         (diagnostic_kind_count): Likewise.
5867         (diagnostic_buffer): Now a macro.
5868
5869         * diagnostic.c (diagnostic_buffer): Remove definition.
5870         (output_is_line_wrapping): Adjust.
5871         (set_real_maximum_length): Likewise.
5872         (output_set_maximum_length): Likewise.
5873         (init_output_buffer): Likewise.
5874         (lhd_print_error_function): Likewise.
5875         (output_do_verbatim): Likewise.
5876
5877 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5878
5879         * cpperror.c (print_location): Don't print include chain
5880         if line == 0.
5881         (cpp_begin_message): Update to use DL_ macros.
5882         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5883         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5884         cpp_notice, cpp_notice_from_errno): Remove.
5885         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5886         level.
5887         (cpp_errno): New.
5888         * cppexp.c (CPP_ICE): Remove.
5889         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
5890         lex, integer_overflow, _cpp_parse_expr): Update.
5891         * cppfiles.c (read_include_file, find_include_file,
5892         handle_missing_header, _cpp_read_file, remap_filename): Update.
5893         * cpphash.h (enum error_type): Remove.
5894         (_cpp_begin_message): Update.
5895         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
5896         cpp_handle_option, cpp_post_options): Update.
5897         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
5898         skip_whitespace, parse_identifier, parse_slow, parse_string,
5899         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
5900         cpp_interpret_charconst): Update.
5901         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
5902         lex_macro_node, do_undef, glue_header_name, parse_include,
5903         do_include_common, read_flag, do_line, do_linemarker, do_ident,
5904         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
5905         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
5906         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
5907         _cpp_pop_buffer, do_diagnostic): Update.
5908         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
5909         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
5910         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5911         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5912         cpp_notice, cpp_notice_from_errno): Remove.
5913         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5914         level.
5915         (cpp_errno): New.
5916         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
5917         collect_args, enter_macro_context, save_parameter, parse_params,
5918         _cpp_create_definition, check_trad_stringification,
5919         cpp_macro_definition): Update.
5920         * cppmain.c (cpp_preprocess_file): Update.
5921         * fix-header.c (read_scan_file): Update.
5922
5923 2002-04-14  Andreas Schwab  <schwab@suse.de>
5924
5925         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
5926
5927 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5928
5929         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
5930
5931 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5932
5933         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
5934         not gnu_hurd.
5935
5936 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
5937
5938         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
5939
5940 2002-04-13      Joel Sherrill <joel@OARcorp.com>
5941
5942         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
5943         sparc-elf and sparc-rtems targets.
5944
5945 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5946
5947         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
5948         defined, and __gnu_hurd__ wherever __GNU__ is defined.
5949         * arm/linux-elf.h: Likewise.
5950         * cris/aout.h: Likewise.
5951         * cris/linux.h: Likewise.
5952         * i370/linux.h: Likewise.
5953         * i386/gnu.h: Likewise.
5954         * i386/linux-aout.h: Likewise.
5955         * i386/linux-oldld.h: Likewise.
5956         * i386/linux.h: Likewise.
5957         * i386/linux64.h: Likewise.
5958         * ia64/linux.h: Likewise.
5959         * m68k/linux-aout.h: Likewise.
5960         * m68k/linux.h: Likewise.
5961         * mips/linux.h: Likewise.
5962         * pa/pa-linux.h: Likewise.
5963         * pj/linux.h: Likewise.
5964         * rs6000/sysv4.h: Likewise.
5965         * s390/linux.h: Likewise.
5966         * sh/linux.h: Likewise.
5967         * sparc/linux-aout.h: Likewise.
5968         * sparc/linux.h: Likewise.
5969         * sparc/linux64.h: Likewise.
5970         * xtensa/linux.h: Likewise.
5971
5972 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
5973
5974         * stmt.c (check_unique_operand_names): Expect operand names to
5975         be strings rather than identifiers.  Use simple_cst_equal to
5976         compare them.
5977         (resolve_operand_name_1): Make same identifier to string change here.
5978         * c-parse.in (asm_operand): Convert a named operand into a string.
5979         * cp/parse.y (asm_operand): Likewise.
5980
5981 2002-04-13  Andreas Schwab  <schwab@suse.de>
5982
5983         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
5984
5985 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
5986
5987         Revert these changes:
5988
5989         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5990
5991         PR c++/5571
5992         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5993
5994 2002-04-12  Richard Henderson  <rth@redhat.com>
5995
5996         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
5997         (sparc*-*-solaris): Clean up header files.
5998         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
5999         and plan on generating 64-bit code.
6000         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
6001         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
6002         * config/sparc/sol2-sld-64.h: Rename ...
6003         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
6004         for AS_SPARC64_FLAG not defined.
6005         * config/sparc/sol2-gld-bi.h: New.
6006         * config/sparc/sol2-sld.h: Remove.
6007         * config/sparc/sol26-sld.h: New.
6008         * config/sparc/sol2.h: Tidy comments.
6009         * doc/install.texi: Document sparc-solaris configury changes.
6010
6011 2002-04-12  Richard Henderson  <rth@redhat.com>
6012
6013         * recog.c (offsettable_address_p): Match the logic in adjust_address.
6014
6015         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
6016         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
6017
6018 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6019
6020         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
6021
6022 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
6023
6024         * pa.c (pa_can_combine_p): Call extract_insn before calling
6025         constrain_operands.
6026
6027 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
6028
6029         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
6030         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
6031         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
6032         (CPP_PREDEFINES): Handle __declspec.
6033         * config/i386/t-interix (USER_H): Remove.
6034
6035 2002-04-12  DJ Delorie  <dj@redhat.com>
6036
6037         * integrate.c (compare_blocks): Make comparisons safe for when
6038         sizeof(int) < sizeof(char *).
6039         (find_block): Likewise.
6040
6041 2002-04-12  Jan Hubicka  <jh@suse.cz>
6042             David Edelsohn  <edelsohn@gnu.org>
6043
6044         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
6045         registers.
6046         (symbol_ref_operand): New.
6047         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
6048         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
6049
6050 2002-04-12  Andreas Schwab  <schwab@suse.de>
6051
6052         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
6053         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
6054         overrides the definition in config/svr4.h.
6055
6056 2002-04-12      Eric Norum <eric.norum@usask.ca>
6057
6058         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
6059         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
6060         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
6061         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
6062         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
6063         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
6064         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
6065         definitions to config/rtems.h and make the targets more similar.
6066
6067 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6068
6069         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
6070         POINTERS_EXTEND_UNSIGNED.
6071         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
6072         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
6073
6074         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
6075         not specified.
6076
6077 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
6078
6079         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
6080         depends on TARGET_SHMEDIA, not TARGET_SH5.
6081
6082 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
6083
6084         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
6085         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
6086
6087 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6088
6089         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
6090         no r0 clobber.
6091
6092 2002-04-12  Andreas Schwab  <schwab@suse.de>
6093
6094         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
6095
6096 2002-04-12  Richard Henderson  <rth@redhat.com>
6097
6098         PR bootstrap/4191
6099         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
6100
6101         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
6102         modes spanning multiple hard regs.
6103
6104         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
6105
6106 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6107
6108         * pa.c (pa_output_function_prologue): Don't accumulate the total
6109         number of code bytes when using TARGET_64BIT, or gas, SOM and not
6110         the portable runtime.
6111         (output_deferred_plabels): Handle 64bit plabels.
6112         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
6113         generating pic code using the GAS assembler for object formats that
6114         are not SOM (ie., ELF32 and ELF64).
6115         (output_millicode_call): Check attribute type if attribute length is 28.
6116         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
6117         dbr_sequence_length once.
6118         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
6119         dbr_sequence_length once.
6120         * pa.h (TARGET_SOM): Define if not defined.
6121         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
6122         with GAS and not SOM.
6123         (jump, call_internal_reg, call_value_internal_reg): Likewise.
6124         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
6125
6126 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6127
6128         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
6129         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
6130         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
6131         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
6132         elfos.h and dbxelf.h values are fine now.
6133         * config/i386/freebsd.h, config/alpha/freebsd.h
6134         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
6135
6136 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6137
6138         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
6139         or set Acpu or Amachine.  Reformat.
6140         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6141         define.
6142         (LINK_SPEC): Do not need to undef.
6143         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
6144         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
6145         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6146         define.
6147         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
6148         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
6149         (LINK_SPEC): Do not need to undef.
6150         (DONT_USE_BUILTIN_SETJMP): Do not define.
6151         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
6152         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
6153         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
6154         Remove trailing spaces.
6155         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
6156         __ELF__, or set Acpu or Amachine.  Reformat.
6157         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6158         define.
6159
6160 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6161
6162         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
6163         all other *-*-freebsd* targets.
6164
6165 2002-04-11  Richard Henderson  <rth@redhat.com>
6166
6167         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
6168
6169 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6170
6171         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
6172         Include {cpu}/{cpu}.h thru tm_file.
6173         (alpha*-*-linux*ecoff): Remove target.
6174         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
6175         (LINK_SPEC): Remove, is not OS independent.
6176         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
6177         (LINK_SPEC): Do not need to #undef any longer.
6178         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
6179         any longer.
6180         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
6181         __ELF__.
6182         (LINK_SPEC): Moved here from alpha/elf.h.
6183         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
6184         SUB_CPP_PREDEFINES.
6185         * config/alpha/linux-ecoff.h: Remove.
6186         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
6187         (CPP_SPEC): Define _POSIX_SOURCE as needed.
6188         (CPP_SUBTARGET_SPEC): Do not define.
6189         (LINK_SPEC): Do not need to #undef any longer.
6190         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
6191         * config/alpha/vms.h: Likewise.
6192
6193 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
6194
6195         * doc/extend.texi: Remove old claim that typedefs cannot have
6196         an alignment attribute.
6197
6198 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6199
6200         PR optimization/6177
6201         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
6202         bitpos is 0 and bitsize CONCAT size.
6203
6204 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6205
6206         PR c/6223
6207         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
6208
6209 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
6210
6211         * config/alpha/freebsd.h: Minor reformatting.
6212         (CPP_SPEC): Define ELF and add cpp_subtarget.
6213         (ASM_SPEC): No longer needed.
6214
6215 2002-04-11  Richard Henderson  <rth@redhat.com>
6216
6217         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
6218         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
6219         (dimode mem/zero splitter): New.
6220
6221 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
6222
6223         * config/cris/cris.c (cris_override_options): Tweak error message
6224         for PIC not implemented.
6225
6226         * config/cris/cris.h: Tweak comments related to parameter-passing.
6227
6228         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
6229
6230 2002-04-10  Richard Henderson  <rth@redhat.com>
6231
6232         * except.c (add_ehl_entry): Allow duplicates after landing pad
6233         creation.
6234
6235 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
6236
6237         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
6238
6239 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
6240
6241         * c-decl.c (c_init_decl_processing): Move generation of
6242         decls for g77_integer_type_node and friends from here ...
6243         * c-common.c (c_common_nodes_and_builtins): ... to here.
6244
6245 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6246
6247         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
6248         is only used as frame pointer when frame_pointer_needed is true.
6249
6250 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
6251
6252         PR target/817
6253         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
6254         for the fact that the pool entry uses two words.
6255         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
6256         1k bytes.
6257         (movdf_soft_insn): Similarly.
6258         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
6259         for the fact that the pool entry uses three words.
6260
6261 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
6262
6263         * config/mips/mips.c (mips_va_arg): When using the struct version
6264         of the EABI va_list, allow arguments in the register save area to
6265         take up less room than a stack argument.
6266
6267 2002-04-10  Richard Henderson  <rth@redhat.com>
6268
6269         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
6270         if EXPAND_INITIALIZER.
6271
6272 2002-04-09  Richard Henderson  <rth@redhat.com>
6273
6274         * config/alpha/alpha.md (movdi_er_maybe_g): New.
6275         * config/alpha/alpha.c (alpha_expand_mov): Use it.
6276
6277 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
6278
6279         PR optimization/6233
6280         * rtlanal.c (pure_call_p): New function.
6281         * rtl.h (pure_call_p): Declare.
6282         * loop.c (prescan_loop): Use it to set has_nonconst_call.
6283         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
6284
6285 2002-04-09  Eric Christopher  <echristo@redhat.com>
6286
6287         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
6288         information to .comm directive.
6289
6290 2002-04-09  Richard Henderson  <rth@redhat.com>
6291
6292         PR c/5078
6293         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
6294
6295 2002-04-09  Richard Henderson  <rth@redhat.com>
6296
6297         * basic-block.h (flow_delete_block_noexpunge): Declare.
6298         (expunge_block_nocompact): Declare.
6299         * cfg.c (expunge_block_nocompact): Split out from ...
6300         (expunge_block): ... here.
6301         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
6302         (flow_delete_block_noexpunge): Split out from ...
6303         (flow_delete_block): ... here.
6304         * cfgcleanup.c (delete_unreachable_blocks): Compact while
6305         removing dead blocks.
6306         * except.c (exception_handler_labels): Remove.
6307         (exception_handler_label_map): New.
6308         (struct eh_region): Add aka member.
6309         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
6310         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
6311         (for_each_eh_label, for_each_eh_label_1): New.
6312         (init_eh): Register exception_handler_label_map.
6313         (free_eh_status): Use free_region.
6314         (find_exception_handler_labels): Use the map, not the list.
6315         (remove_exception_handler_label): Likewise.
6316         (maybe_remove_eh_handler): Likewise.
6317         (remove_eh_handler): Use the region aka bitmap.
6318         * except.h (exception_handler_labels): Remove.
6319         (for_each_eh_label): Declare.
6320         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
6321         * loop.c (invalidate_loops_containing_label): New.
6322         (find_and_verify_loops): Use it.  Use for_each_eh_label.
6323         * sched-rgn.c (is_cfg_nonregular): Use
6324         current_function_has_exception_handlers.
6325
6326 2002-04-09  Richard Henderson  <rth@redhat.com>
6327
6328         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
6329         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
6330         Do not return changed status.
6331         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
6332         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
6333         New functions that do return changed status.
6334         * sbitmap.h: Update decls.
6335         * gcse.c, lcm.c: Use _cg functions as needed.
6336
6337 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
6338
6339         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
6340         (sh64-*-elf*, sh-*-rtemself*): Likewise.
6341         * config/sh/embed_bb.c: New file.
6342         * config/sh/embed-elf.h: New file.
6343         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
6344         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
6345         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
6346         __PTRDIFF_TYPE__ .
6347         (SUBTARGET_CPP_PTR_SPEC): Don't define.
6348         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
6349         Add subtarget_asm_endian_spec.
6350         (ASM_SPEC): Use subtarget_asm_endian_spec.
6351         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
6352         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
6353         (WCHAR_UNSIGNED): Define.
6354         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
6355         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
6356         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
6357         Fix value.
6358         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
6359         (sh_adjust_cost): Likewise.
6360         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
6361         __PTRDIFF_TYPE__ .
6362         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
6363         (WCHAR_TYPE_SIZE): Likewise.
6364         (ASM_SPEC): Use subtarget_asm_endian_spec.
6365         (SH_ELF_WCHAR_TYPE): #undef/ #define.
6366         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
6367         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
6368         (MAX_WCHAR_TYPE_SIZE): Don't #define .
6369         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
6370         (USER_LABEL_PREFIX): Don't #undef /#define .
6371         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
6372         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
6373         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
6374         (ASM_SPEC): Likewise.
6375         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
6376         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
6377         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
6378         (LIB2FUNCS_EXTRA): Define.
6379         * t-sh64 (LIB2FUNCS_EXTRA): Define.
6380         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
6381         (LIB1ASMFUNCS_CACHE): Define.
6382         (LIB2FUNCS_EXTRA): Redefine empty.
6383
6384 2002-04-08  Richard Henderson  <rth@redhat.com>
6385
6386         * reorg.c (get_branch_condition): Use reversed_comparison_code.
6387
6388 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6389
6390         * config/m68hc11/larith.asm (__map_data_section): Fix condition
6391         and optimize for size.
6392         (__do_global_ctors): Fix pointer comparison.
6393         (__do_global_dtors): Likewise.
6394
6395 2002-04-09  David S. Miller  <davem@redhat.com>
6396
6397         * config/sparc/sparc.c (sparc_extra_constraint_check): New
6398         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
6399         allow reloading pseudos.
6400         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
6401         * config/sparc/sparc-protos.h: Declare it.
6402
6403         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
6404         unsigned comparison warning.
6405         (output_restore_regs): Mark leaf_function as unused.
6406
6407 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6408
6409         * expr.c (is_aligning_offset): New function.
6410         (expand_expr, case COMPONENT_EXPR): Call it.
6411
6412 2002-04-08  David S. Miller  <davem@redhat.com>
6413
6414         PR target/6082
6415         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
6416
6417         Make init_priority work on Sparc when using GNU ld.
6418         * config/sparc/linux.h, config/sparc/linux64.h,
6419         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
6420         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
6421         * config/sparc/sol2-gld.h: New file to do the same.
6422         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
6423         sparc/sol2-gld.h to tm_file.
6424
6425         PR optimization/4328
6426         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
6427         * doc/md.texi: Document it.
6428         * config/sparc/sparc.md (movdi_insn_sp64_novis,
6429         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
6430         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
6431         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
6432         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
6433
6434 2002-04-08  Andreas Jaeger  <aj@suse.de>
6435
6436         * stmt.c (expand_asm_operands): Revert last patch from Richard
6437         Henderson.
6438
6439 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6440
6441         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
6442         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
6443
6444 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6445
6446         * doc/contrib.texi (Contributors): Add David O'Brien.
6447
6448 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
6449
6450         * configure.in (auto-build.h): Use target_alias and build_alias
6451         when running configure.
6452         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
6453         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
6454         * configure: Regenerate.
6455
6456 2002-04-07  David S. Miller  <davem@redhat.com>
6457
6458         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
6459
6460 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6461
6462         PR 5933
6463         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
6464         generating 32-bit pic code.
6465
6466 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
6467
6468         * cppinit.c (cpp_create_reader): Initialize
6469         discard_comments_in_macro_exp.
6470         (COMMAND_LINE_OPTIONS): Add "-CC" option.
6471         (cpp_handle_option): Handle "-CC" option.
6472         * cpplex.c (save_comment): If saving a C++ comment in
6473         a directive, convert it to a C comment.
6474         (_cpp_lex_direct): Pass second comment start character to
6475         save_comment to indicate comment type.
6476         * cpplib.c (_cpp_handle_directive): If processing
6477         a "#define" directive and discard_comments_in_macro_exp
6478         is false,  re-enable saving of comments.
6479         (lex_macro_node): If discard_comments_in_macro_exp is false,
6480         discard any comments before the macro identifier.
6481         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
6482         member.
6483         * cppmacro.c (cpp_get_token): If expanding a macro while
6484         processing a directive, discard any comments we might encounter.
6485         (parse_params): If discard_comments_in_macro_exp is false,
6486         ignore comments in the macro parameter list.
6487         * gcc.c (cpp_unique_options): Add "-CC" option.
6488         (option_map): Map "--comments-in-macros" to "-CC".
6489         * doc/cppopts.texi: Document "-CC" option.
6490         * f/lang-specs.h: Add "-CC" option.
6491         * testsuite/gcc.dg/cpp/maccom1.c: New test.
6492         * testsuite/gcc.dg/cpp/maccom2.c: New test.
6493         * testsuite/gcc.dg/cpp/maccom3.c: New test.
6494         * testsuite/gcc.dg/cpp/maccom4.c: New test.
6495         * testsuite/gcc.dg/cpp/maccom5.c: New test.
6496         * testsuite/gcc.dg/cpp/maccom6.c: New test.
6497
6498 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6499
6500         PR middle-end/6180
6501         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
6502
6503 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6504
6505         PR c++/5571
6506         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6507
6508         PR opt/5120
6509         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
6510         RTX_UNCHANGING_P for the functions arguments when a tail call
6511         is made.
6512
6513 2002-04-06  Jason Merrill  <jason@redhat.com>
6514
6515         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
6516         (parse_options_and_default_flags): Set them appropriately.
6517         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
6518
6519 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
6520
6521         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
6522         here.
6523
6524         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
6525         semicolon.
6526
6527         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
6528         types come in by-reference.  Fix typo in comment.
6529
6530 2002-04-05  David S. Miller  <davem@redhat.com>
6531
6532         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
6533         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
6534         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
6535         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
6536
6537 2002-04-05  David S. Miller  <davem@redhat.com>
6538
6539         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
6540         are not going to emit return instructions, emit at least a nop
6541         for the sake of sane backtraces.
6542
6543 2002-04-05  Richard Henderson  <rth@redhat.com>
6544
6545         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
6546
6547 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
6548
6549         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
6550
6551 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
6552
6553         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
6554         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
6555         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
6556
6557 2002-04-05  Andreas Schwab  <schwab@suse.de>
6558
6559         * c-convert.c: Include c-common.h.
6560         * Makefile.in (c-convert.o): Updated.
6561
6562 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6563
6564         * mklibgcc.in: Use separate libgcc.map for each multilib.
6565         * Makefile.in (distclean): Don't remove libgcc.map here.
6566
6567 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6568
6569         * Makefile.in (s-mlib): Handle --disable-multilib by separate
6570         genmultilib invocation.
6571
6572 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
6573
6574         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
6575         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
6576         to num_gprs for symmetry.
6577         * config/mips/mips.c: Adjust accordingly.
6578
6579 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6580
6581         * c-common.c (truthvalue_conversion): Rename, update.
6582         * c-common.h (c_common_truthvalue_conversion): New.
6583         * c-convert.c (convert): Update.
6584         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6585         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
6586         * c-typeck.c (build_binary_op, build_unary_op,
6587         build_conditional_expr): Update.
6588         * fold-const.c (constant_boolean_node, fold): Use langhook.
6589         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
6590         * langhooks.h (struct lang_hooks): New hook.
6591         * stmt.c (expand_decl_cleanup): Use langhook.
6592         * tree.h (truthvalue_conversion): Remove.
6593 objc:
6594         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6595
6596 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
6597
6598         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
6599         Add rules to make null object file.
6600
6601 2002-04-04  Jim Blandy  <jimb@redhat.com>
6602
6603         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
6604         macro formal parameter names.
6605
6606 2002-04-04  David S. Miller  <davem@redhat.com>
6607
6608         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
6609
6610 2002-04-04  Richard Henderson  <rth@redhat.com>
6611
6612         PR middle-end/5099
6613         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
6614         Support copies into and out of memory.  Don't accept allows_reg
6615         and allows_mem as gospel.
6616
6617 2002-04-04  Richard Henderson  <rth@redhat.com>
6618
6619         PR opt/6165
6620         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
6621         (write_dependence_p): Likewise.
6622
6623 2002-04-04  Richard Henderson  <rth@redhat.com>
6624
6625         * predict.c (estimate_bb_frequencies): Do frequency calculation
6626         with a volatile temporary.
6627
6628 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
6629
6630         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
6631
6632 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR c++/6119
6635         * final.c (final_start_function): Don't bump profile_label_no here...
6636         (final_end_function): ...but here.
6637
6638 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6639
6640         * config/sparc/sparc.md (pic): New attribute.
6641         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
6642         into stack slots.
6643         (split after do_builtin_setjmp_setup): New.
6644
6645 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6646
6647         PR fortran/6106
6648         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
6649         change.
6650
6651 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6652
6653         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
6654         UNITS_PER_WORD for zero sized aggregates.
6655
6656 2002-04-03  David S. Miller  <davem@redhat.com>
6657
6658         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
6659         one-character spec for this, just use %(link_gcc_c_sequence).
6660
6661 2002-04-03  David S. Miller  <davem@redhat.com>
6662
6663         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
6664         handling.
6665
6666 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6667
6668         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
6669         (DWARF_FRAME_RETURN_COLUMN): Move.
6670         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6671         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
6672         * pa.c (except.h, predict.h): Include.
6673         (FRP): Delete.
6674         (store_reg_modify, set_reg_plus_d): Revise prototypes.
6675         (output_ascii): Add cast.
6676         (store_reg_modify): Revise to add frame notes.
6677         (set_reg_plus_d): Likewise.
6678         (compute_frame_size): Include space for eh data registers in frame if
6679         the current function calls eh_return.
6680         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
6681         function calls eh_return.  Save eh data registers if the current
6682         function calls eh_return.  Fix code to add frame notes.  Emit
6683         blockage to prevent insns with frame notes being scheduled in the
6684         delay slot of calls.
6685         (hppa_expand_epilogue): Restore eh data registers and do final stack
6686         adjustment if the current function calls eh_return.  Don't add frame
6687         notes.
6688         (output_call): Revise for change in length of call insn.  Don't do
6689         return pointer adjustment for an unconditional jump in the delay slot
6690         of a call when using frame notes.
6691         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
6692         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
6693         (ARG_POINTER_CFA_OFFSET): Define.
6694         * pa.md (return_external_pic): New pattern.
6695         (prologue): Correct formatting.  Use return_external_pic if current
6696         function calls eh_return.
6697         (call_internal_symref, call_value_internal_symref,
6698         sibcall_internal_symref, sibcall_value_internal_symref): Change default
6699         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
6700         respectively.
6701         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
6702
6703         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
6704         list of targets to check using "nop" insn.
6705         * configure: Rebuilt.
6706
6707 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
6708
6709         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
6710
6711 2002-04-03  David S. Miller  <davem@redhat.com>
6712
6713         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
6714         library sequence passed to the linker.
6715         (LINK_COMMAND_SPEC): Use it.
6716         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
6717         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
6718         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6719
6720 2002-04-03  Jason Merrill  <jason@redhat.com>
6721
6722         * except.c (struct eh_status): Remove protect_list.
6723         (begin_protect_partials, end_protect_partials): Remove.
6724         (add_partial_entry): Remove.
6725         * except.h: Remove prototypes.
6726
6727         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
6728         expand_decl_cleanup_eh.
6729
6730         PR c++/5636
6731         * tree.h (CLEANUP_EH_ONLY): New macro.
6732         * stmt.c (expand_decl_cleanup_eh): New fn.
6733         (expand_cleanups): Check CLEANUP_EH_ONLY.
6734         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
6735         Use expand_decl_cleanup_eh.
6736         (expand_stmt): Adjust.
6737         * c-common.h: Adjust prototype.
6738
6739 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
6740
6741         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
6742         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
6743         (cris_target_asm_function_epilogue): Ditto.
6744         (cris_initial_frame_pointer_offset): Ditto.
6745         (cris_simple_epilogue): Ditto.
6746         (cris_expand_builtin_va_arg): Variable-size types come in
6747         by-reference.
6748
6749 2002-04-03  David S. Miller  <davem@redhat.com>
6750
6751         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
6752         little-endian.
6753         (set_fast_math): Correct 'fsr' type.
6754
6755 2002-04-03  Richard Henderson  <rth@redhat.com>
6756
6757         PR opt/3569
6758         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
6759         * toplev.c (check_global_declarations): Use it.
6760         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
6761         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6762         (LANG_HOOKS_DECLS): Add it.
6763         * langhooks.c (lhd_warn_unused_global_decl): New.
6764         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6765         * c-objc-common.c (c_warn_unused_global_decl): New.
6766         * c-tree.h (c_warn_unused_global_decl): Declare.
6767         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6768
6769 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6770
6771         * langhooks-def.h (lhd_set_decl_assembler_name,
6772         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
6773         (LANG_HOOKS_INITIALIZER): Update.
6774         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
6775         * langhooks.h (struct lang_hooks): New hook.
6776         * tree.c (set_decl_assembler_name): Move to langhooks.c.
6777         (lang_set_decl_assembler_name): Remove.
6778         (init_obstacks): Don't set hook.
6779         (decl_assembler_name): New function.
6780         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
6781         (decl_assembler_name): New.
6782         (lang_set_decl_assembler_name): Remove.
6783
6784 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6785
6786         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
6787         works properly with .hidden symbols.
6788         * configure: Rebuilt.
6789         * config.in: Rebuilt.
6790         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6791         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
6792         properly with .hidden symbols.
6793
6794 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6795
6796         PR middle-end/6102
6797         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
6798         USE argument.
6799
6800 2002-04-03  Richard Henderson  <rth@redhat.com>
6801
6802         PR opt/4120
6803         * sched-rgn.c (sets_likely_spilled): New.
6804         (sets_likely_spilled_1): New.
6805         (add_branch_dependences): Use it.
6806
6807 2002-04-02  Richard Henderson  <rth@redhat.com>
6808
6809         PR opt/4311
6810         * loop.h (LOOP_FIRST_PASS): New.
6811         * loop.c (strength_reduce): Mind it when deciding to unroll.
6812         * toplev.c (rest_of_compilation): Set it.
6813
6814 2002-04-02  David S. Miller  <davem@redhat.com>
6815
6816         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
6817         mems_ok_for_ldd_peep when the order of the loads being examined
6818         is reversed.
6819         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
6820         existing comment to increase comprehension of this situation.
6821
6822 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
6823
6824         * config/sh/sh.md: Don't use union real_extract.
6825
6826 2002-04-02  Richard Henderson  <rth@redhat.com>
6827
6828         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
6829
6830 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6831
6832         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
6833         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
6834         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
6835         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
6836         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
6837         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
6838         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
6839         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
6840         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
6841         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
6842         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
6843         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
6844         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
6845         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
6846         Include as many configury headers via tm_file as possible.  This
6847         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
6848         * config/openbsd-oldgas.h: New file.
6849         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
6850         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
6851         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
6852         config/i386/i386-coff.h, config/i386/i386-interix.h,
6853         config/i386/iscdbx.h, config/i386/linux-aout.h,
6854         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
6855         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
6856         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
6857         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
6858         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
6859         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
6860         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
6861         config/i386/vxi386.h: Do not directly include configury headers.
6862         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
6863         Directly include configury headers that are no longer automatically
6864         included by the above headers.
6865         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
6866         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
6867         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
6868         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
6869         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
6870         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
6871         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
6872         (TARGET_VERSION): Define.
6873         * config/i386/beos-elf.h, config/i386/freebsd.h,
6874         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
6875         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
6876         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
6877         config/i386/sco5.h, config/i386/sysv4.h
6878         (TARGET_VERSION): Do not need to protect.
6879         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
6880         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
6881         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
6882         config/i386/i386-interix.h, config/i386/linux-aout.h,
6883         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
6884         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
6885         (YES_UNDERSCORES): Do not define - not needed.
6886         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
6887         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6888         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
6889         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
6890         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6891         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
6892         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
6893         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
6894
6895 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
6896             Richard Henderson  <rth@redhat.com>
6897
6898         PR c/5484
6899         * function.c (assign_temp): Accept either type or decl argument.
6900         Detect variables whose size is too large to fit into an integer.
6901         * stmt.c (expand_decl): Pass the decl, not the type.
6902
6903 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6904
6905         * protoize.c: Match include directory usage with cppdefault.c.
6906
6907 2002-04-03  Jeffrey A Law  (law@redhat.com)
6908             Hans-Peter Nilsson  <hp@bitrange.com>
6909
6910         * combine.c (simplify_comparison): Avoid narrowing a comparison
6911         with a paradoxical subreg when doing so would drop signficant bits.
6912
6913 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
6914
6915         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
6916         if POINTERS_EXTEND_UNSIGNED is defined.
6917
6918 2002-04-02  Richard Henderson  <rth@redhat.com>
6919
6920         PR opt/3967
6921         * local-alloc.c (contains_replace_regs): LO_SUM may contain
6922         replace regs.
6923
6924 2002-04-02  Richard Henderson  <rth@redhat.com>
6925
6926         * doc/standards.texi: Document required freestanding libc entry points.
6927
6928 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
6929
6930         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
6931         associated splitter.  Remove MQ constraint.
6932         (ctrdi_internal4): Correct CCmode clobber.
6933
6934 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6935
6936         * milli64.S ($$dyncall): New function.
6937         * t-linux (LIB1ASMFUNCS): Revise module list.
6938         (LIB1ASMSRC): Use pa/milli64.S.
6939
6940 2002-04-02  Richard Henderson  <rth@redhat.com>
6941
6942         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
6943         rename solaris_sys_varargs_h.
6944
6945 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6946
6947         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
6948         the same mode as its component.
6949
6950 2002-04-02  Richard Henderson  <rth@redhat.com>
6951
6952         PR opt/190
6953         * final.c (this_is_asm_operands): Export.
6954         * output.h (this_is_asm_operands): Declare.
6955         * config/i386/i386.c (print_operand): Error odd asm operands.
6956
6957 2002-04-02  Richard Henderson  <rth@redhat.com>
6958
6959         PR opt/420
6960         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
6961
6962 2002-04-01  Richard Henderson  <rth@redhat.com>
6963
6964         PR target/1538
6965         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
6966         * fixinc/fixincl.x: Rebuild.
6967
6968 2002-04-01  Richard Henderson  <rth@redhat.com>
6969
6970         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
6971         (atomic_alloc, atomic_free): New.
6972         (SIZE, MASK_FOR, PTR_IN): New.
6973         (emergency_reg_state, emergency_reg_state_free): New.
6974         (emergency_labeled_state, emergency_labeled_state_free): New.
6975         (reg_state_alloced, labeled_state_alloced): New.
6976         (alloc_reg_state, free_reg_state): New.
6977         (alloc_label_state, free_label_state, free_label_states): New.
6978         (push, pop, dup_state_stack, free_state_stack): Use them.
6979         (desc_label_state): Likewise.
6980         (uw_frame_state_for): Free label states and state stack.
6981         (uw_update_reg_address): Eliminate warnings.
6982
6983 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
6984
6985         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
6986         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
6987
6988 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6989
6990         * c-decl.c (grokdeclarator): Update.
6991         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6992         * c-tree.h (c_mark_addressable): New.
6993         * c-typeck.c (default_function_array_conversion, build_unary_op,
6994         build_array_ref, convert_for_assignment): Update.
6995         (mark_addressable): Rename.
6996         * calls.c (try_to_integrate, expand_call): Use langhook.
6997         * expr.c (expand_expr): Use langhook.
6998         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
6999         * langhooks.h (struct lang_hooks): New hook.
7000         * stmt.c (expand_asm_operands): Use langhook.
7001         * tree.h (mark_addressable): Remove.
7002 objc:
7003         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7004
7005 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7006
7007         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
7008         in previous change.
7009
7010 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7011
7012         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
7013         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
7014
7015 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7016
7017         * c-common.c (unsigned_conversion_warning, convert_and_check,
7018         unsigned_type, signed_type, shorten_compare,
7019         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
7020         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
7021         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
7022         New.
7023         * c-decl.c (grokdeclarator): Update.
7024         * c-format.c (check_format_types): Update.
7025         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7026         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7027         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
7028         * convert.c (convert_to_integer): Use new hooks.
7029         * expmed.c (make_tree): Use new hooks.
7030         * expr.c (store_expr): Use new hooks.
7031         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
7032         all_ones_mask_p, unextend, fold): Use new hooks.
7033         * langhooks.h (struct lang_hooks_for_types): New hooks.
7034         * tree.h (signed_or_unsigned_type, signed_type,
7035         unsigned_type): Remove.
7036 objc:
7037         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7038         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7039
7040 2002-03-31  Richard Henderson  <rth@redhat.com>
7041
7042         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
7043         (desc_frgr_mem): Fix reference to f16-f31.
7044
7045 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7046
7047         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
7048         RTVEC_ELT): Const-ify.
7049         * varray.h (VARRAY_CHECK): Const-ify.
7050         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
7051         ggc_mark_rtvec, ggc_mark): Const-ify.
7052
7053 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7054
7055         * diagnostic.c: Include langhooks-def.h.
7056         * Makefile.in (diagnostic.o): Update.
7057
7058 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7059
7060         * c-common.c (c_unsafe_for_reeval): Rename.
7061         * c-common.h (c_unsafe_for_reeval): Rename.
7062         * c-decl.c (finish_incomplete_decl): Rename.
7063         (c_init_decl_processing): Don't set langhook.
7064         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7065         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7066         * c-objc-common.c (c_objc_common_init): Don't set langhook.
7067         * c-tree.h (finish_incomplete_decl): Rename.
7068         * langhooks-def.h (lhd_unsafe_for_reeval): New.
7069         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7070         (LANG_HOOKS_INITIALIZER): Update.
7071         * langhooks.c (lhd_unsafe_For_reeval): New.
7072         * langhooks.h (struct langhooks): New hooks.
7073         * toplev.c (incomplete_decl_finalize_hook): Remove.
7074         (wrapup_global_declarations): Update.
7075         * tree.c (lang_unsafe_for_reeval): Remove.
7076         (unsafe_for_reeval): Update.
7077         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
7078         Remove.
7079 objc:
7080         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7081         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7082
7083 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7084
7085         * diagnostic.c (print_error_function): Remove.
7086         (default_print_error_function): Rename.
7087         (report_error_function): Update.
7088         * diagnostic.h (print_error_function): Remove.
7089         (default_print_error_function): Remove.
7090         * langhooks-def.h (struct diagnostic_context): Predeclare.
7091         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
7092         (LANG_HOOKS_INITIALIZER): Update.
7093         * langhooks.h (struct diagnostic context): Predeclare.
7094         (struct lang_hooks): New hook.
7095
7096 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7097
7098         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
7099         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
7100         !flag_pic.
7101         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
7102         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
7103         of PIC_OFFSET_TABLE_REGNUM thruout.
7104         * config/rs6000/rs6000.md: Likewise.
7105         * config/rs6000/darwin.h: Likewise.
7106
7107 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7108
7109         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
7110         unsigned HOST_WIDE_INT, not unsigned int.
7111
7112 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7113
7114         PR middle-end/6096, middle-end/6098, middle-end/6099
7115         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
7116         CODE_LABELs.
7117         (fill_slots_from_thread): Likewise.
7118
7119 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7120
7121         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
7122         floating fields in float regs.
7123         (function_arg_record_value_2): Likewise.
7124
7125 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7126
7127         * config/mmix/mmix.md (define_constants): Remove misleading
7128         FIXME.  Add MMIX_fp_rO_OFFSET.
7129         ("nonlocal_goto_receiver"): Don't have stack-frame address of
7130         saved rO as part of the pattern.  Remove FIXME.
7131         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
7132         here, at output-time.
7133
7134 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7135
7136         PR middle-end/6100
7137         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
7138         REG_BR_PRED.
7139         (output_v9branch): Likewise.
7140
7141 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7142
7143         * gcc.c: Revert previous patch for now.
7144         * config/i386/djgpp.h: Likewise.
7145
7146 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7147
7148         * config/mmix/crti.asm (_init): Register _fini with atexit.
7149         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
7150
7151 2002-03-31  Richard Henderson  <rth@redhat.com>
7152
7153         PR target/3997
7154         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
7155         (ASM_OUTPUT_DEF_FROM_DECLS): New.
7156
7157 2002-03-31  Richard Henderson  <rth@redhat.com>
7158
7159         * libgcc2.c (__bb_exit_func): Make static.
7160
7161         * config/alpha/alpha.md (trap): New.
7162
7163 2002-03-31  Richard Henderson  <rth@redhat.com>
7164
7165         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
7166         promoted argument types; build trap.
7167         (expand_builtin_trap): New.
7168         (expand_builtin): Use it.
7169         * stmt.c (expand_nl_goto_receivers): Likewise.
7170         * expr.h (expand_builtin_trap): Declare.
7171         * libfuncs.h (LTI_abort, abort_libfunc): New.
7172         * optabs.c (init_optabs): Init abort_libfunc.
7173
7174 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7175
7176         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
7177         (LINK_COMMAND_SPEC): ... from here.
7178         (init_gcc_specs): Duplicate it here too, omitting
7179         shared_name in the second copy.
7180         (init_spec): Test for duplicate
7181         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
7182
7183 2002-03-30  David S. Miller  <davem@redhat.com>
7184
7185         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7186         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
7187
7188 2002-03-30  Roger Sayle <roger@eyesopen.com>
7189             Richard Henderson  <rth@redhat.com>
7190
7191         * regmove.c (combine_stack_adjustments_for_block): Avoid
7192         emitting a stack adjustment of zero bytes.  Let delete_insn
7193         update bb->head.
7194
7195 2002-03-30  Richard Henderson  <rth@redhat.com>
7196
7197         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
7198         (sparc_emitting_epilogue): New.
7199         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
7200         * config/sparc/sparc-protos.h: Update.
7201         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
7202         (TARGET_SWITCHES): Update.
7203         * config/sparc/sparc.md (return): Remove.
7204         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
7205         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
7206         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
7207         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
7208         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
7209         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
7210         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
7211         Remove MASK_EPILOGUE.
7212         * doc/invoke.texi: Update.
7213
7214 2002-03-30  Daniel Berlin  <dan@dberlin.org>
7215
7216         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
7217         CPP will start the file for us.
7218
7219 2002-03-30  Richard Henderson  <rth@redhat.com>
7220
7221         PR target/5446
7222         * config/ia64/ia64.c (group_barrier_needed_p): Special case
7223         prologue_allocate_stack.
7224         (ia64_single_set): Use insn codes for recognition of special
7225         cases, not rtl matching.
7226         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
7227
7228 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
7229
7230         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
7231
7232 2002-03-30  Richard Henderson  <rth@redhat.com>
7233
7234         PR target/6032
7235         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
7236         or -fomit-frame-pointer with profiling.
7237         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7238         (FUNCTION_PROFILER): Do nothing.
7239         (PROFILE_HOOK): New.
7240         * config/sparc/sparc.c (sparc_override_options): Don't check
7241         code models for profiling.
7242         (sparc_function_profiler): Remove.
7243         (sparc_profile_hook): New.
7244         * config/sparc/sparc-protos.h: Update.
7245
7246 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
7247
7248         PR optimization/6086
7249         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
7250         of SUBREG of volatile MEM or because the MEM was mode dependent,
7251         return CLOBBER instead of unmodified SUBREG.
7252
7253 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7254
7255         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
7256         when not optimizing.
7257
7258         * toplev.c (rest_of_compilation): Cann mark_constant_function
7259         only when optimizing.
7260
7261         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
7262         are NULL.
7263
7264         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
7265         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
7266         (try_optimize_cfg): clear all AUX fields.
7267
7268         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
7269         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
7270         (ix86_address_cost): Be prepared for SUBREGed registers.
7271         (legitimate_address_p): Accept SUBREGed registers.
7272
7273 2002-03-29  Richard Henderson  <rth@redhat.com>
7274
7275         PR target/5672
7276         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
7277
7278 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7279
7280         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
7281         for aggregate and TFmode types.
7282
7283 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7284
7285         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
7286
7287 2002-03-29  Richard Henderson  <rth@redhat.com>
7288
7289         PR target/5886
7290         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
7291         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
7292
7293 2002-03-29  Richard Henderson  <rth@redhat.com>
7294
7295         PR target/6041
7296         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
7297         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
7298         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
7299         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
7300         conditional.
7301         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
7302
7303 2002-03-29  Dale Johannesen <dalej@apple.com>
7304
7305         * loop.c (combine_movables): Do allow combination of pseudos.
7306
7307 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
7308
7309         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
7310         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
7311         No functional change except ...
7312         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
7313         * doc/install.texi (*-*-freebsd*): Document port configuration.
7314
7315 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7316
7317         * Makefile.in (convert.o, calls.o, expmed.o): Update.
7318         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
7319         Use new hooks.
7320         * builtin-types.def (BT_PTRMODE): Update.
7321         * c-common.c (type_for_size): Rename c_common_type_for_size.
7322         (type_for_mode): Similarly.
7323         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
7324         Use new hook.
7325         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
7326         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
7327         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
7328         Redefine.
7329         * c-typeck.c (common_type, comptypes, default_conversion):
7330         Use new hooks.
7331         * calls.c: Include langhooks.h.
7332         (emit_library_call_value_1): Use new hooks.  Avoid redundant
7333         calls.
7334         * convert.c: Include langhooks.h
7335         (convert_to_pointer, convert_to_integer): Use new hooks.
7336         * except.c (init_eh): Similarly.
7337         * expmed.c: Include langhooks.h.
7338         (expand_mult_add): Use new hooks.
7339         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
7340         try_casesi): Similarly.
7341         * fold-const.c (optimize_bit_field_compare, make_range,
7342         decode_field_reference, fold_truthop, fold): Similarly.
7343         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
7344         put_var_into_stack): Similarly.
7345         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
7346         LANG_HOOKS_TYPE_FOR_SIZE): New.
7347         (LANG_HOOKS_TYPES_INITIALIZER): Update.
7348         * langhooks.h (lang_hooks_for_types): New hooks.
7349         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
7350         * tree.c (get_unwidened, get_narrower): Similarly.
7351         * tree.h (type_for_mode, type_for_size): Remove.
7352         * varasm.c (force_const_mem): Use new hooks.
7353         * utils2.c (nonbinary_modular_operation): Update.
7354 objc:
7355         * objc-act.c (handle_impent): Update.
7356         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
7357         Redefine.
7358
7359 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
7360
7361         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
7362         * config/ia64/ia64.c (basereg_operand): New.
7363         * config/ia64/ia64-protos.h (basereg_operand): Declare.
7364         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
7365
7366 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7367
7368         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
7369         unwind information when frame_pointer_needed.
7370         (mmix_assemble_integer): Tweak wording in comment.
7371
7372 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7373
7374         * Makefile.in (except.o): Update.
7375         * except.c: Include langhooks.h.
7376         (init_eh): Use langhook.
7377         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
7378         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
7379         (LANG_HOOKS_INITIALIZER): Update.
7380         * langhooks.h (lang_hooks_for_types): New.
7381         (struct lang_hooks): Add it.
7382         * tree.c (make_lang_type_fn, make_lang_type): Remove.
7383         * tree.h (make_lang_type_fn, make_lang_type): Remove.
7384 config:
7385         * alpha/alpha.c: Include langhooks.h.
7386         (alpha_build_va_list): Use langhook.
7387         * d30v/d30v.c: Include langhooks.h.
7388         (d30v_build_va_list): Use langhook.
7389         * i386/i386.c: Include langhooks.h.
7390         (ix86_build_va_list): Use langhook.
7391         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
7392         * s390/s390.c: Include langhooks.h.
7393         (s390_build_va_list): Use langhook.
7394         * stormy16/stormy16.c: Include langhooks.h.
7395         (stormy16_build_va_list): Use langhook.
7396
7397 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
7398
7399         PR c++/5964
7400         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
7401         attributes.
7402         (length): Compute variable length for branches/calls/jumps here.
7403         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
7404         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
7405         define branch_type attribute.
7406         (divsi3_sp32): Maximum length is 6 not 7.
7407         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
7408         call_address_untyped_struct_value_sp32,
7409         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
7410         * config/sparc/sparc.c (empty_delay_slot): New function.
7411         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
7412         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
7413
7414 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
7415
7416         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
7417         nonzero_bits if not needed.
7418         (nonzero_bits) [XOR]: Likewise.
7419         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
7420         reg_last_set_mode and mode are both MODE_INT, but not equal.
7421         (record_value_for_reg): Compute reg_last_set_nonzero_bits
7422         in nonzero_bits_mode for MODE_INT modes.
7423
7424 2002-03-28  Richard Henderson  <rth@redhat.com>
7425
7426         PR target/5715
7427         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
7428         to GAS.  Correct drift between alternatives.
7429
7430 2002-03-28  Richard Henderson  <rth@redhat.com>
7431
7432         PR target/6087
7433         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
7434
7435 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
7436
7437         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
7438         emulation to the linker.
7439
7440 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
7441
7442         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
7443         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
7444
7445 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
7446
7447         * combine.c (simplify_and_const_int): Make sure to apply mask
7448         when force_to_mode returns a constant integer.  PR3311.
7449
7450 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7451
7452         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
7453
7454 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7455
7456         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
7457         and Objective-C Dialect Options.
7458
7459 2002-03-28  Richard Henderson  <rth@redhat.com>
7460
7461         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
7462         comparison should be done vs !=0 not >0 return code.  Tidy cases.
7463
7464 2002-03-28  Richard Henderson  <rth@redhat.com>
7465
7466         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
7467         on to c_expand_body.
7468         * c-tree.h (finish_function): Update decl.
7469         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
7470
7471 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7472
7473         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
7474
7475 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
7476
7477         * rtlanal.c: Include flags.h
7478         (may_trap_p): Do not mark FP operations if trapping
7479         if !flag_trapping_math
7480         * Makefile.in (rtlanal.o): Add dependency on flag.h
7481         * ifcvt.c (noce_operand_ok): Avoid the lameness.
7482
7483 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
7484
7485         * mips.md: Use dconst1, not 1.0, as first argument of
7486         REAL_VALUE_LDEXP.  Don't use union real_extract.
7487
7488 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
7489
7490         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
7491         rather than $target.  Heed program_prefix and
7492         program_transform_name.  Search for gas in cross-compiler case too.
7493         "test -x" rather than "test -f".
7494         (gcc_cv_ld): Likewise.
7495         (gcc_cv_nm): Heed program_prefix and program_transform_name.
7496         (gcc_cv_objdump): Likewise.
7497         * configure: Regenerate.
7498
7499 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7500
7501         * Makefile.in (attribs.o): Update.
7502         * attribs.c: Include langhooks.h.
7503         (decl_attributes): Use langhook.
7504         * c-decl.c (insert_default_attributes): Rename.
7505         * c-tree.h (c_insert_default_attributes): New.
7506         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
7507         (LANG_HOOKS_INITIALIZER): Update.
7508         * langhooks.h (struct lang_hooks): New hook.
7509         * tree.h (insert_default_attributes): Remove.
7510 objc:
7511         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
7512
7513 2002-03-27  Andreas Schwab  <schwab@suse.de>
7514
7515         * config/i386/i386.c (classify_argument): Also check for
7516         QUAL_UNION_TYPE.
7517
7518 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7519
7520         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
7521         any more.
7522
7523 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7524
7525         * i960.md (ret): Set PC.
7526         (nonlocal_goto): Fix expander.
7527         * builtins.c (epxand_builin_longjmp): Check that we've emitted
7528         some jump or call.
7529
7530 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7531
7532         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
7533         of libcall regions.
7534
7535 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7536
7537         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
7538         assigning to BLOCK_FOR_INSN directly.
7539
7540 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
7541
7542         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
7543
7544 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7545
7546         * c-common.c (c_expand_expr): Fix prototype.
7547         * c-common.h (c_expand_expr): Always declare, update.
7548         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7549         * c-objc-common.c (c_objc_common_init): No global hook.
7550         * expr.c (expand_expr): Use langhook.
7551         * expr.h (enum expand_modifier): Conditionally declare.
7552         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
7553         (LANG_HOOKS_INITIALIZER): Update.
7554         * langhooks.c (lhd_expand_expr): New.
7555         * langhooks.h (struct lang_hooks): New hook.
7556         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
7557         (lang_independent_init): Don't default hook.
7558 objc:
7559         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7560
7561 2002-03-27  Richard Henderson  <rth@redhat.com>
7562
7563         PR target/6054
7564         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
7565         TARGET_CONST_GP.  Simplify conditions.
7566
7567 2002-03-27  Richard Henderson  <rth@redhat.com>
7568
7569         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
7570         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
7571         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
7572
7573 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
7574
7575         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
7576         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
7577         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
7578         Remove unnecessary masks.
7579         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
7580         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
7581         -mwindows, -mdll switches and their negations.
7582
7583 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7584
7585         * gcc-common.c (lang_mark_false_label_stack): Remove.
7586         * ggc.h (lang_mark_false_label_stack): Similarly.
7587
7588 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7589
7590         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
7591
7592         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
7593         or __rtems_ is defined.
7594
7595 2002-03-26  Richard Henderson  <rth@redhat.com>
7596
7597         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
7598         if a non-trivial load was emitted.
7599         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
7600         in high+extra+low case.
7601
7602 2002-03-26  Richard Henderson  <rth@redhat.com>
7603
7604         * config.gcc (sparc*-solaris): Use float_format=sparc.
7605
7606 2002-03-26  Richard Henderson  <rth@redhat.com>
7607
7608         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
7609         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
7610         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
7611         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
7612         (WINT_TYPE_SIZE): Fix at 32.
7613
7614 2002-03-26  Richard Henderson  <rth@redhat.com>
7615
7616         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
7617         until after eh landing pad generation.
7618         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
7619         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
7620
7621 2002-03-26  Richard Henderson  <rth@redhat.com>
7622
7623         * expr.h (ADD_PARM_SIZE): One more convert for INC.
7624
7625 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
7626
7627         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
7628         and warning switches.
7629         (cc1_options):  Likewise.
7630
7631 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
7632
7633         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
7634         Restore more of the signal context.  Set no_reg_stack_frame.
7635         * config/ia64/unwind-ia64.c (unw_state_record):
7636         Add no_reg_stack_frame, comments.
7637         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
7638         (uw_update_context): Adjust bsp when unwinding from leaf,
7639         but not signal frame.
7640
7641 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
7642
7643         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
7644
7645 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7646
7647         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
7648
7649 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7650
7651         PR target/5621
7652         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
7653         "Add a pool_range attribute", which was lost during the ARM/Thumb
7654         merge.
7655
7656 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7657
7658         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
7659         a register into the MAC16 accumulator.
7660
7661 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
7662
7663         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
7664         (Warning Options): Document -Wswitch-enum.
7665         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
7666         -Wswitch.
7667         (warn_switch_enum): Define variables.
7668         * flags.h (warn_switch_enum): Declare variables.
7669         * stmt.c (expand_end_case_type): When warn_switch_enum /
7670         -Wswitch-enum, perform switch checks.
7671         Fix PR c/5044.
7672
7673 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7674
7675         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
7676         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
7677         (reload_muladdsi_compare0_scratch): Delete.
7678
7679 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
7680
7681         * doc/install.texi (*-*-freebsd*): Update.
7682
7683 2002-03-26  Richard Henderson  <rth@redhat.com>
7684
7685         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
7686         (SUB_PARM_SIZE): Cast DEC to ssizetype.
7687
7688         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
7689         types from the normal argument frame.
7690
7691         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
7692         variable sized objects by reference.
7693         (sparc_va_arg): Receive them by reference too.
7694
7695 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
7696
7697         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
7698         code to not restoring global registers.
7699
7700 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7701
7702         * Makefile.in (ggc-common.o): Update.
7703         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
7704         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7705         * c-tree.h (c_mark_tree): New.
7706         * ggc-common.c: Include langhooks.h.
7707         (gcc_mark_trees): Use new langhook.
7708         * ggc-callbacks.c: Delete file.
7709         * ggc.h (lang_mark_tree): Remove.
7710         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
7711         (LANG_HOOKS_INITIALIZER): Update.
7712         * langhooks.h (struct lang_hooks): New hook.
7713 objc:
7714         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7715
7716 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7717
7718         * doc/cpp.texi: Exclude entire Top node from printed manual.
7719         Move option index after directive index.  Insert page breaks
7720         before GFDL and concept index.  Index environment variables
7721         with command line options.
7722         * doc/cppenv.texi: Use @vtable for environment variable list.
7723         Add paragraph explaining semantics of empty elements in path
7724         variables.  Exclude a cross-reference to Fishkill from the
7725         manpage.  Remove an unnecessary cross-reference of the entry
7726         right above the referer.  Don't use @anchor in text that goes
7727         into manpage.
7728         * doc/cppopts.texi: Cross-reference the environment variables
7729         section, not the specific environment variable, for consistency.
7730
7731 2002-03-25  Richard Henderson  <rth@redhat.com>
7732
7733         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
7734         anywhere in the block.  Don't refer to insns that have been
7735         removed from the chain.  Iterate backward through the new insns.
7736         Don't refer to edges that have been removed.
7737
7738 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
7739
7740         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
7741         test for overflow of constant.
7742
7743 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
7744
7745         PR target/2623
7746         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
7747         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
7748         these patterns on arm_archv4.
7749
7750 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
7751
7752         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
7753         int".
7754
7755 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7756
7757         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
7758         float_handled, float_handler, float_signal, set_float_handler,
7759         and do_float_handler.  Set handler for SIGFPE to crash_signal.
7760         * toplev.h: Don't prototype do_float_handler.
7761
7762         * c-lex.c: Fold parse_float into lex_number.  Make warning
7763         about portability of hex float constants more informative, and
7764         don't issue it on top of a syntax error.
7765         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
7766         their callers.
7767         * real.h: Define REAL_VALUE_ABS here...
7768         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
7769         simplify_unary_real, simplify_binary_real, and
7770         simplify_binary_is2orm1 into their callers.
7771         * tree.c: Fold build_real_from_int_cst_1 into caller.
7772
7773         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
7774
7775         * tsystem.h: Include float.h here...
7776         * libgcc2.c: ... not here.
7777
7778 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
7779
7780         Fixes for: PR bootstrap/3591, target/5676
7781         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
7782         defined.  Do not disable exceptions or rtti.
7783         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
7784         mcore.h.  Disable exceptions and rtti, since they are not
7785         supported by EPOC.
7786
7787 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7788
7789         * c-decl.c (maybe_build_cleanup): Remove.
7790         * expr.c (expand_expr): Use langhook.
7791         * langhooks-def.h (lhd_return_null_tree,
7792         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
7793         (LANGHOOKS_INITIALIZER): Update.
7794         * langhooks.c (lhd_return_null_tree): New.
7795         * langhooks.h (struct lang_hooks): New hook.
7796         * tree-inline.c (initialize_inlined_parameters): Use langhook.
7797         * tree.h (maybe_build_cleanup): Remove.
7798
7799 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7800
7801         * regrename.c (build_def_use): Move recog_memoized
7802         before extract_insn.
7803
7804 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7805
7806         PR target/6043
7807         * expr.c (emit_group_store): Handle storing into CONCAT.
7808
7809 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7810
7811         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
7812         corresponding MATCH_DUP.
7813
7814 2002-03-24  Richard Henderson  <rth@redhat.com>
7815
7816         * unroll.c (unroll_loop): Zero label_map.
7817
7818         * gcse.c: Include except.h.
7819         * Makefile.in (gcse.o): Update.
7820
7821 2002-03-24  Richard Henderson  <rth@redhat.com>
7822
7823         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
7824         Do resolve_unique_section before shared data clause.
7825
7826 2002-03-24  Richard Henderson  <rth@redhat.com>
7827
7828         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
7829
7830 2002-03-24  Richard Henderson  <rth@redhat.com>
7831
7832         * recog.c (peephole2_optimize): Split blocks when EH insns are
7833         generated in the middle of a block.  Do global life update if
7834         zapped EH edges.
7835
7836 2002-03-24  Richard Henderson  <rth@redhat.com>
7837
7838         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
7839
7840 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7841
7842         preprocessor/3951
7843         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
7844         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
7845         (init_dependency_output): Don't make no_output decision here.
7846
7847 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
7848
7849         * stmt.c (check_for_full_enumeration_handling): Remove tests of
7850         warn_switch.  Update description.
7851         (expand_end_case_type): Call check_for_full_enumeration_handling
7852         when warn_switch.
7853
7854 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7855
7856         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
7857         (m68hc11_split_move): Call it to see if the source and destination
7858         operands use the same direction auto inc/dec mode, otherwise make the
7859         source an offsetable memory operand and generate an add.
7860
7861 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7862
7863         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
7864         register for operand 2.
7865         ("*subsi3_zero_extendqi"): Likewise.
7866         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
7867         bits so that it is compatible with a pop.
7868         ("*andhi3_gen"): Likewise.
7869         ("xorhi3"): Likewise.
7870
7871 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7872
7873         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
7874         -pedantic here...
7875         (cpp_post_options): ... not here.
7876
7877 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7878             Aldy Hernandez  <aldyh@redhat.com>
7879
7880         Removal of separate preprocessor cpp0.
7881
7882         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
7883         cpp0, install-common): Update.
7884         * c-common.c (flag_preprocess_only): New.
7885         (c_common_init): Preprocess for -E.
7886         * c-common.h (flag_preprocess_only): New.
7887         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
7888         * c-objc-common.c (c_init_decl_processing): Exit quickly
7889         for NULL return from c_common_init.
7890         * cpplib.h (cpp_preprocess_file): New.
7891         * cppmain.c (main, general_init, pfile, progname): Remove.
7892         (do_preprocessing): Rename cpp_preprocess_file, don't call
7893         cpp_finish.  Don't close stdout here.
7894         (setup_callbacks): Update prototype.
7895         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
7896         Update.
7897         * tradcpp.c (main): Ignore -quiet.
7898 objc:
7899         * lang-specs.h (default_compilers): Preprocess with cc1obj.
7900
7901 2002-03-24  Richard Henderson  <rth@redhat.com>
7902
7903         PR optimization/5742
7904         * machmode.def: Add inner mode field to complex modes.
7905         * config/mips/mips.c (mips_function_value): Always define.  Add
7906         new argument to handle libcalls.
7907         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
7908         (FUNCTION_VALUE): Likewise.
7909         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
7910         * config/mips/mips-protos.h: Update.
7911
7912 2002-03-23  Richard Henderson  <rth@redhat.com>
7913
7914         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
7915         * config/sparc/sparc-protos.h: Update.
7916         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
7917
7918 2002-03-23  Richard Henderson  <rth@redhat.com>
7919
7920         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
7921         _start or _init begins the text segment.
7922
7923 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
7924
7925         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
7926         not HOST_WIDEST_INT.
7927         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
7928
7929 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
7930
7931         PR java/5489
7932         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
7933         operand argument to output_return_instruction.
7934         * arm.c (arm_print_operand, case 'd'): If the operand is
7935         const_true_rtx then just return.
7936         (arm_print_operand, case 'D'): If the operand is const_true_rtx
7937         then abort.
7938
7939 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
7940
7941         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
7942         (Warning Options): Document -Wswitch-default.
7943         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
7944         -Wswitch.
7945         (warn_switch_default): Define variable.
7946         (warn_switch): Update comment.
7947         * flags.h (warn_switch_default): Declare variable.
7948         (warn_switch): Update comment.
7949         * stmt.c (expand_end_case): Check for and, when
7950         warn_switch_no_default, warn of a missing default case.
7951
7952 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
7953
7954         * real.h (N): Special case 128 bit doubles.
7955
7956         * combine.c (simplify_comparison): When widening modes, ignore
7957         sign extension on CONST_INTs.
7958
7959 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7960
7961         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
7962         passed to adjust_address.  Fix comment formatting.
7963
7964
7965 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
7966
7967         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
7968         Always make REAL_VALUE_TYPE a struct containing an array of
7969         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
7970         big it is.  Don't declare or use union real_extract.
7971
7972         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
7973         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
7974         (print_operand), config/arm/arm.c (output_move_double),
7975         config/arm/arm.md (consttable_4, consttable_8),
7976         config/romp/romp.c (output_fpops), config/s390/s390.h
7977         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
7978         (xtensa_output_literal): Don't use union real_extract.
7979
7980         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
7981         (sfmode_constant_to_ulong), config/ns32k/merlin.h
7982         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
7983         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
7984         (PRINT_OPERAND): Don't use local version of union
7985         real_extract.
7986
7987         * config/convex/convex.c (check_float_value), config/vax/vax.c
7988         (vax_float_literal), config/m88k/m88k.md (divdf3),
7989         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
7990         config/pdp11/pdp11.c (output_move_quad): Don't do host
7991         arithmetic on target floating point quantities.
7992
7993         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
7994         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
7995
7996         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
7997         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
7998
7999         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
8000         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
8001         INFINITY.
8002         * print-rtl.c (print_rtx): Disable code which needs
8003         floating-point emulator.
8004         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
8005         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
8006         depending on HOST_FLOAT_FORMAT to be defined properly.
8007
8008         * config/1750a/1750a.c (get_double, float_label): Delete.
8009         (print_operand): Delete huge commented-out chunk.  Use
8010         REAL_VALUE_TO_DECIMAL.
8011         * config/1750a/1750a-protos.h: Delete prototypes of deleted
8012         functions.
8013         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
8014         IEEE_FLOAT_FORMAT.
8015         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
8016         Use REAL_VALUE_TO_DECIMAL as ELF version does.
8017         * config/m88k/m88k.c (real_power_of_2_operand,
8018         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
8019         real_extract out of the union; run the input through
8020         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
8021         from that into the union.
8022         * config/pdp11/pdp11.c (output_move_double): Rearrange
8023         parentheses to make automatic indenter happy.
8024
8025         * doc/tm.texi (Cross-compilation): Rename node to "Floating
8026         Point" and rewrite to describe current situation.  Also adjust
8027         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
8028         match code.
8029         * doc/rtl.texi: Adjust cross reference.
8030
8031 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8032
8033         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
8034         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
8035         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
8036         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
8037         prevent use of sp as a reload register.
8038         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
8039         non_acc_reg_operand.
8040         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
8041         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
8042         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
8043         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
8044
8045 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8046
8047         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
8048         * cpplex.c (unterminated): Delete.
8049         (parse_string): No string literal may extend over multiple
8050         lines.  Suppress the error when preprocessing assembly.
8051         * cppmain.c (scan_translation_unit): Strings are single-line.
8052
8053         * doc/cpp.texi: Update to match.
8054
8055 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8056
8057         PR optimization/5854
8058         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
8059         Shut up warnings.
8060         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
8061         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
8062         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
8063         const0 if scratch register was not allocated.
8064         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
8065         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
8066         with GEN_INT (...).
8067         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
8068         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
8069         with GEN_INT (...) everywhere.  Remove constraints in define_split
8070         patterns.
8071         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
8072         require scratch register for setting 0 into regs/non-pushable memory.
8073
8074 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8075
8076         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
8077         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
8078
8079 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
8080
8081         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
8082         * cppinit.c (cpp_create_reader):  On by default.
8083         (cpp_handle_option):  Handle -W[no-]endif-labels.
8084         (cpp_post_options):  Also enable if -pedantic.
8085         * cpplib.c (do_else):  Use it.
8086         (do_endif):  Likewise.
8087         * doc/cppopts.texi:  Document new option.
8088         * doc/invoke.texi:  Document new option.
8089
8090 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
8091
8092         * config/i386/i386.c, config/i386/i386.md: Change all occurences
8093         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
8094
8095 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8096
8097         * flow.c (calculate_global_regs_live): Clear aux fields of
8098         ENTRY and EXIT.
8099
8100 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8101
8102         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
8103         REG or MEM subregs, pass rtx * instead of rtx to it.
8104         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
8105         rtx * instead of rtx to alter_subreg.
8106         * config/m32r/m32r.c (gen_split_move_double): Likewise.
8107         * config/pj/pj.c (pj_output_rval): Likewise.
8108
8109 2002-03-22  Richard Henderson  <rth@redhat.com>
8110
8111         PR target/3177
8112         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
8113         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
8114         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
8115         (ia64_expand_prologue): Look at int_regs, not words, for number
8116         of incomming int regs.
8117
8118 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
8119
8120         * expr.c (expand_expr): A RESULT_DECL is part of a call.
8121
8122 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
8123
8124         * toplev.c (flag_loop_optimize, flag_crossjumping):
8125         New static variables.
8126         (rest_of_compilation): Conditionalize crossjumping and
8127         loop optimizer.
8128         (parse_options_and_default_flags): Default loop_optimize and
8129         crossjumping.
8130         (lang_independent_options): Add -fcrossjumping and -floop-optimize
8131         * invoke.texi (crossjumping, loop-optimize): Document.
8132
8133 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8134
8135         * real.c (eiisneg): Move outside #ifdef NANS.
8136
8137 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8138
8139         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
8140         frequencies match; avoid match on different loop depths.
8141         (try_crossjump_to_bb): Kill tests that no longer brings time
8142         savings.
8143         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
8144         updating code.
8145         (split_edge): Likewise.
8146
8147         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
8148         variable.
8149
8150         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
8151         * cfgrtl.c: Include insn-config.h
8152         (split_block) Dirtify block in presence of conditional execution
8153
8154 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8155
8156         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
8157         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
8158         (function_arg): Constify CUMULATIVE_ARGS.
8159         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
8160         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
8161         (UNITS_PER_DOUBLE): New macro.
8162         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
8163         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
8164         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
8165         fp_regs and stack_words.
8166         (EABI_FLOAT_VARARGS_P): New macro.
8167         * config/mips/mips.c (struct mips_arg_info): New.
8168         (mips_arg_info): New function.
8169         (function_arg_advance): Use it.  Add adjustment instructions here
8170         rather than in function_arg.
8171         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
8172         for VOIDmode at the beginning of the function.
8173         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
8174         (function_arg_pass_by_reference): Likewise.
8175         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
8176         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
8177         (mips_va_start): Likewise.  Use the new stack_words field of
8178         CUMULATIVE_ARGS to set up overflow area.  Reformat.
8179         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
8180         doubles and other types, aligning the overflow pointer for non-doubles
8181         too.  Remove some code duplication.  Replace hard-coded constants.
8182
8183 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8184
8185         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
8186         (CLASS_UNITS): Undefine.
8187         (CLASS_MAX_NREGS): Use FP_INC.
8188         * config/mips/mips.c (compute_frame_size): Likewise.
8189         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
8190
8191 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8192
8193         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
8194         prototype, and handle lexing numbers and identifiers.
8195         (parse_identifier): Update to new form of parse_slow.
8196         (parse_number): Fast path only, use parse_slow otherwise.
8197         (_cpp_lex_direct): Update calls to parse_number.
8198
8199 2002-03-21  DJ Delorie  <dj@redhat.com>
8200
8201         * bb-reorder.c (make_reorder_chain_1): Protect against
8202         when redundant edges are omitted.
8203         * predict.c (dump_prediction): Likewise.
8204
8205 2002-03-21  Richard Henderson  <rth@redhat.com>
8206
8207         PR target/5996
8208         * fixinc/inclhack.def (solaris_stdio_tag): New.
8209         * fixinc/fixincl.x: Regenerate.
8210
8211 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8212
8213         PR c/5597
8214         * c-typeck.c (process_init_element): Flag non-static
8215         initialization of a flexible array member as illegal.
8216
8217 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
8218
8219         * config/rs6000/t-linux64: New.
8220         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
8221         t-ppccomm.  Use t-rs6000 and t-linux64.
8222         (powerpc64-*-gnu* <tmake_file>): Likewise.
8223         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
8224         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
8225         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
8226
8227 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
8228
8229         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
8230         flag_really_no_inline instead of optimize == 0.
8231
8232         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
8233
8234         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
8235
8236         * flags.h (flag_really_no_inline): New.
8237
8238         * c-common.c (c_common_post_options): Initialize
8239         flag_really_no_inline.
8240
8241         * toplev.c (flag_really_no_inline): New.
8242
8243 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8244
8245         * config/avr/avr.md (length): Fix length computation for
8246         conditional branches.
8247
8248 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8249
8250         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
8251         sdbout.o, profile.o): Update.
8252         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
8253         langhook.
8254         * c-common.h (gettags): Move here from tree.h.
8255         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
8256         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8257         * dbxout.c (dbxout_init): Use getdecls langhook.
8258         * expr.c (expand_expr): Use insert_block langhook.
8259         * fold-const.c: Include langhooks.h.
8260         (fold_range_test, fold_binary_op_with_conditional_arg,
8261         fold): Use global_bindings_p langhook.
8262         * integrate.c (expand_inline_function): Use insert_block langhook.
8263         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
8264         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
8265         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
8266         LANG_HOOKS_GETDECLS): New.
8267         (LANG_HOOKS_INITIALIZER): Update.
8268         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
8269         langhook.
8270         * langhooks.h (struct lang_hooks_for_decls): New.
8271         (struct lang_hooks): Update.
8272         * profile.c: Include langhooks.h.
8273         (output_func_start_profiler): Use new langhooks.
8274         * sdbout.c: Include langhooks.h.
8275         (sdbout_init, sdbout_finish): Use getdecls langhook.
8276         * stmt.c: Include langhooks.h.
8277         (expand_fixup, fixup_gotos): Use new langhooks.
8278         * stor-layout.c: Include langhooks.h.
8279         (variable_size): Use global_bindings_p langhook.
8280         * toplev.c (compile_file): Use getdecls langhook.
8281         * tree-inline.c (remap_block): Use insert_block langhook.
8282         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
8283         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
8284
8285 2002-03-21  Richard Henderson  <rth@redhat.com>
8286
8287         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
8288         constants in .data when -fpic.
8289
8290 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8291
8292         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
8293         where appropriate.
8294
8295 2002-03-21  Tom Tromey  <tromey@redhat.com>
8296
8297         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
8298
8299 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8300
8301         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
8302
8303         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
8304
8305 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8306             Richard Henderson  <rth@redhat.com>
8307
8308         PR c/5354
8309         * c-common.c (c_expand_expr): Preserve result of a statement
8310         expression if needed.
8311
8312 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8313
8314         PR bootstrap/4195
8315         * genrecog.c (maybe_both_true_mode): Remove.
8316         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
8317         * machmode.def (Pmode): Likewise.
8318
8319 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
8320
8321         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
8322         (nonlocal_mentioned_p_1): New function.
8323         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
8324         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
8325         (mark_constant_function): Recognize pure functions.
8326         * rtl.h (global_reg_mentioned_p): New prototype.
8327         * rtlanal.c (global_reg_mentioned_p,
8328         global_reg_mentioned_p_1): New function.
8329
8330 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8331
8332         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
8333         UNIX assert.h.
8334         * fixinc/fixincl.x: Regenerate.
8335
8336 2002-03-20  Jason Merrill  <jason@redhat.com>
8337
8338         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
8339
8340 2002-03-20  Michael Meissner  <meissner@redhat.com>
8341
8342         * doc/invoke.texi (Optimize Options): Document that -O2 sets
8343         -fstrict-aliasing.
8344
8345 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
8346
8347         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
8348         ".literal_position" directive before the constant pool.
8349
8350 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8351
8352         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
8353         Add Craig Rodrigues.
8354         Add Brad Lucier to testers.
8355
8356 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8357
8358         PR target/4792
8359         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
8360         to if_then_else.
8361         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
8362         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
8363         instead of insn_extract.
8364
8365 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8366
8367         PR bootstrap/4192
8368         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
8369
8370         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
8371         stmt if some case has been output.
8372
8373 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
8374
8375         PR c/5972
8376         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
8377         movsfcc_1, movdfcc_1): Add %O2.
8378         * config/i386/i386.c (print_operand): Handle %ON.
8379         Print . before float condition codes in Sun as cmov syntax.
8380         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
8381         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
8382         no longer true.
8383
8384 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
8385
8386         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
8387         return instruction if PC was popped.
8388
8389 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
8390
8391         * config/xtensa/xtensa.md: Remove unused type attributes.
8392         (adddi_carry, subddi_carry): Change type attribute to "multi".
8393
8394 2002-03-19  Dale Johannesen  <dalej@apple.com>
8395
8396         PR optimization/5999, middle-end/5731
8397         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
8398         multiplications by reciprocals.
8399
8400 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8401
8402         * Makefile.in: Update.
8403         * c-common.c: Include langhooks.h.
8404         (inline_forbidden_p): Use new hook.
8405         * diagnostic.c: Include langhooks.h.
8406         (format_with_decl, announce_function,
8407         default_print_error_function): Use new hook.
8408         * dwarf2out.c (dwarf2_name): Use new hook.
8409         * function.c: Include langhooks.h.
8410         (init_function_start): Use new hook.
8411         * langhooks-def.h (lhd_decl_printable_name): New.
8412         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
8413         (LANGHOOKS_INITIALIZER): Update.
8414         * langhooks.c (lhd_decl_printable_name): New.
8415         * langhooks.h (struct lang_hooks): New hook.
8416         * toplev.c (decl_name, decl_printable_name): Remove.
8417         (open_dump_file): Use new hook.
8418         (process_options): Remove old hook.
8419         * tree.h (decl_printable_name): Remove.
8420 objc:
8421         * objc-act.c (objc_init): Remove old hook.
8422         (objc_printable_name): Export.
8423         * objc-act.h (objc_printable_name): New.
8424         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8425
8426 2002-03-19  Jim Blandy  <jimb@redhat.com>
8427
8428         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
8429         the start_source_file debug hook, not the current line number.
8430
8431 2002-03-19  Richard Henderson  <rth@redhat.com>
8432
8433         * flow.c (EH_USES): Provide default.
8434         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
8435         * doc/tm.texi (EH_USES): New.
8436
8437         * config/ia64/ia64.c (ia64_eh_uses): New.
8438         * config/ia64/ia64-protos.h: Update.
8439         * config/ia64/ia64.h (EH_USES): New.
8440
8441 2002-03-19  Richard Henderson  <rth@redhat.com>
8442
8443         * varasm.c (output_constant_def): Fix stupid typo.
8444
8445 2002-03-19  Richard Henderson  <rth@redhat.com>
8446
8447         PR 5879
8448         * except.c (current_function_has_exception_handlers): New.
8449         * except.h: Declare it.
8450         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
8451         Combine tests that disable all sibcalls for the function.
8452
8453 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
8454
8455         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
8456         for INTEGER_CST.
8457
8458 2002-03-19  Richard Henderson  <rth@redhat.com>
8459
8460         PR 5977, 5991
8461         * config/ia64/ia64.c: Revert 2002-03-01 patch.
8462         * config/ia64/ia64.h (INIT_EXPANDERS): New.
8463
8464 2002-03-19  Jim Blandy  <jimb@redhat.com>
8465
8466         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
8467         name, even if the replacement list contains no tokens, as required
8468         by Dwarf.
8469
8470 2002-03-19  Jason Merrill  <jason@redhat.com>
8471
8472         * varasm.c (globalize_decl): Get the name from the RTL, not
8473         DECL_ASSEMBLER_NAME.
8474
8475         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
8476
8477 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
8478
8479         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
8480         subdi_carry): Define.
8481
8482 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8483
8484         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
8485         about -fpic/-fPIC if extra_warnings set.
8486
8487 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8488
8489         * expr.c (expand_expr): Sign-extend CONST_INT generated from
8490         TREE_STRING_POINTER.
8491         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
8492
8493 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8494
8495         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
8496         in favor of SP if FRAME_POINTER_REQUIRED is false.
8497
8498 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
8499
8500         * emit-rtl.c (gen_int_mode): New function.
8501         * rtl.h: Prototype for it.
8502         * combine.c (make_extraction, simplify_comparison), expmed.c
8503         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
8504         (convert_modes, store_field), optabs.c (expand_fix),
8505         simplify-rtx.c (neg_const_int, simplify_unary_real),
8506
8507         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
8508         Use it instead of GEN_INT (trunc_int_for_mode (...)).
8509
8510 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
8511
8512         PR c/5656
8513         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
8514         convert_parm_for_inlining.
8515         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
8516         Define.
8517         * langhooks-def.h: Likewise.
8518         * objc/objc-lang.c: Likewise.
8519         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
8520         function.
8521         * tree-inline.c (initialize_inlined_parameters):
8522         Call convert_parm_for_inlining lang hook if needed.
8523         * c-typeck.c (c_convert_parm_for_inlining): New function.
8524         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
8525
8526 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
8527
8528         * calls.c (precompute_arguments): Do not assume that temporaries
8529         can be destroyed after expanding the argument.
8530         (expand_call): Likewise.
8531
8532 2002-03-15  Eric Christopher  <echristo@redhat.com>
8533
8534         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
8535         Fix register preference on last change.
8536         * config/mips/mips.c (mips_return_in_memory): New function.
8537         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
8538         * config/mips/mips-protos.h: Declare.
8539         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
8540         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
8541
8542 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
8543
8544         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
8545         a register too.
8546         (anddi3, iorsi3): Likewise.
8547
8548         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
8549         use %gprel for symbols that are going to be placed in linkonce
8550         sections.
8551
8552         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
8553         RETURN_ADDRESS_POINTER_REGNUM to $ra.
8554         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
8555         not needed.  Disregard leaf_function_p().
8556         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
8557         mips16 frame pointer.
8558         * config/mips/mips.md (store ra): Only to small SP offsets.
8559         2001-08-22  Graham Stott  <grahams@redhat.com>
8560         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
8561         return a REG rtx for the return address register.
8562
8563 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
8564
8565         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
8566         constant-pool addresses as "mode-dependent".
8567         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
8568
8569 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
8570
8571         PR target/5740
8572         * expr.c (emit_group_load): Use extract_bit_field if
8573         needed for CONCAT arguments.
8574
8575 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
8576
8577         PR target/4863
8578         * arm.md (tablejump): Make this a define_expand.  For PIC add the
8579         offset to the base of the table.
8580         (thumb_tablejump): Matcher for Thumb tablejump insn.
8581         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
8582         as the difference of two labels.
8583         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8584         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
8585         tables in the code.
8586         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
8587         * arm.c (get_jump_table_size): If the table is not in the text
8588         section, return zero.
8589
8590 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
8591
8592         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
8593         of gen_rtx_SUBREG.
8594         (arm_reload_out_hi): Use gen_lowpart instead of
8595         gen_rtx_SUBREG to access QImode components.
8596         * config/arm/arm.md: Disable zero_extend split for QImode
8597         subregs in BIG_ENDIAN mode.
8598         (storehi_bigend): Match use of least significant byte.
8599         (storeinthi): Remove extraneous SUBREG.
8600         Add missing construction of operands[2].
8601         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
8602         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
8603         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
8604
8605 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
8606
8607         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
8608         any_operand.
8609
8610 2002-03-17  Richard Henderson  <rth@redhat.com>
8611
8612         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
8613         explicitly.
8614
8615 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8616
8617         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
8618         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
8619
8620 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8621
8622         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
8623
8624         * predict.c (estimate_bb_frequencies): Delete unused variables.
8625
8626 2002-03-17  Richard Henderson  <rth@redhat.com>
8627
8628         * config/ia64/ia64.c (ia64_attribute_table): Move before
8629         targetm definition.  Make static.
8630
8631 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8632
8633         * c-common.h (yyparse, c_common_parse_file): New.
8634         * c-lang.c: Include c-common.h.
8635         (LANG_HOOKS_PARSE_FILE): Redefine.
8636         * c-lex.c: Include c-common.h.
8637         (yyparse): Rename c_common_parse_file.  Call yyparse.
8638         * c-parse.in (yyparse): Remove macro.
8639         * c-tree.h (yyparse_1): Remove.
8640         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
8641         (LANG_HOOKS_INITIALIZER): Update.
8642         * langhooks.h (struct lang_hoooks): New hook parse_file.
8643         * toplev.c (compile_file): Use parse_file hook.
8644         * tree.h (yyparse): Remove.
8645         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8646
8647 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8648
8649         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
8650         float_truncate, not fix.
8651         ("*truncdfsf2_real"): Ditto.
8652         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
8653
8654         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
8655
8656 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
8657
8658         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
8659         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
8660         where appropriate.  Make the second reference to
8661         leaf_function_p a function call, as intended.  Reindented.
8662
8663         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
8664         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
8665
8666         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
8667         add register to non-constant into sp.
8668
8669         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
8670         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
8671         (mips16_gp_pseudo_rtx): Lose.
8672         (INIT_EXPANDERS): Deleted.
8673         * config/mips/mips.c (mips_init_machine_status): New.
8674         (mips_free_machine_status): New.
8675         (mips_mark_machine_status): New.
8676         (override_options): Set them.
8677         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
8678         (struct machine_function): ... new.  Replaced all references.
8679         (mips_add_gc_roots): Don't mark them.
8680         (embedded_pic_fnaddr_reg): New, extracted from...
8681         (embedded_pic_offset): ... here.
8682         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
8683         (movsi): Likewise.
8684
8685 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8686
8687         * cppinit.c: Revert -MD removal.
8688
8689 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8690
8691         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
8692         soft registers by default for 68HC12.
8693         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
8694         when compiling with -fomit-frame-pointer.
8695         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
8696         (expand_epilogue): Likewise.
8697         (m68hc11_gen_rotate): Use exg when rotating by 8.
8698
8699 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8700
8701         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
8702         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
8703         (splits): Remove unused add splits.
8704         ("*addhi3_68hc12"): Tune constraints.
8705         ("addhi_sp"): Try to use X instead of Y in all cases and if the
8706         constant fits in 8-bits and D is dead use abx/aby instructions.
8707         ("*addhi3"): Remove extern declaration of ix_reg.
8708         ("*subsi3"): Optimize and provide new split.
8709         ("subhi3"): Cleanup.
8710         ("*subhi3_sp"): Avoid saving X if we know it is dead.
8711         (arith splits): For 68hc12 save the address register on the stack
8712         and do the arithmetic operation with a pop.
8713
8714 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8715
8716         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
8717         allocating QImode in address registers.
8718         ("*movqi_m68hc11"): Likewise.
8719
8720 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
8721
8722         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
8723
8724 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8725
8726         * cppinit.c (print_help): Display -MD and -MMD.
8727         Don't display usage string.  Update assertion syntax and
8728         typo.
8729         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
8730         (cpp_handle_option): Update.
8731
8732 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
8733
8734         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
8735         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
8736         and define it so that regardless of target CPU size,
8737         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
8738         of "int" rather than "long."
8739
8740 2002-03-15  Richard Henderson  <rth@redhat.com>
8741
8742         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
8743         size as a tree.
8744
8745 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8746
8747         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
8748         ("tstqi" split): Avoid using memory for tstqi on address register.
8749         (splits): Remove constraints.
8750         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
8751         ("cmpdf", "cmpsf"): Remove since not used.
8752         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
8753         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
8754
8755 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8756
8757         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
8758         ("neghi2"): Tighten constraints.
8759         ("one_cmplsi2"): Optimize and simplify split.
8760         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
8761
8762 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8763
8764         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
8765         and split of AND operation to clear the upper bits.
8766         ("*logicalsi3_zextqi"): Likewise.
8767         ("*logicallhi3_zexthi_ashift8"): Likewise.
8768         ("*logicalsi3_silshr16"): Likewise.
8769         ("logicalsi3_silshl16"): Likewise.
8770         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
8771
8772 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8773
8774         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
8775         (m68hc11_indirect_p): New function.
8776         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
8777         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
8778         TARGET_M6812.
8779         (asm_print_register): Likewise.
8780         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
8781         (m68hc11_indirect_p): Declare.
8782         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
8783         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
8784         (TARGET_SWITCHES): New option -mrelax.
8785         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
8786         destination.
8787         ("iorsi3", "xorsi3"): Likewise.
8788         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
8789         ("*andhi3_mem"): New to handle destination in memory with bclr
8790         and a scratch register.
8791         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
8792         ("*andhi3_const"): New when operand2 is constant.
8793         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
8794         ("*andhi3_gen"): Cleanup of the old "andhi3".
8795         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
8796         ("xorqi3"): Update constraints.
8797
8798 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8799
8800         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
8801         for reg_equiv_memory_loc when the operand is a register that does
8802         not get a hard register (stack location).
8803         (tst_operand): After reload, accept all memory operand.
8804         (symbolic_memory_operand): Fix detection of symbolic references.
8805         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
8806         accept symbols and any constant.
8807
8808 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8809
8810         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
8811         note on the insn that sets the soft frame register.
8812         (must_parenthesize): ix and iy are also reserved names.
8813         (print_operand_address): One more place where parenthesis are required
8814         to avoid confusion with register names.
8815         (m68hc11_gen_movhi): Allow push of stack pointer.
8816         (m68hc11_check_z_replacement): Fix handling of parallel with a
8817         clobber.
8818         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
8819         the replacement register is.
8820         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
8821         and D8_REGS classes.
8822         (MODES_TIEABLE_P): All modes are tieable except QImode.
8823
8824 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8825
8826         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
8827         (___subdi3): Likewise.
8828         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
8829         (__map_data_section): Optimize 68hc11 case.
8830
8831 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8832
8833         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
8834         than a shift to avoid adding a register with itself.
8835         (m68hc11_memory_move_cost): Take into account NO_REGS.
8836         (m68hc11_register_move_cost): Update and use memory move cost
8837         for soft registers.
8838         (m68hc11_address_cost): Make cost of valid offset not 0 so that
8839         it gives more opportunities to cse to optimize.
8840         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
8841         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
8842
8843 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
8844
8845         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
8846         * c-common.def (CLEANUP_STMT): New tree node.
8847         * c-common.h (CLEANUP_DECL): New macro.
8848         (CLEANUP_EXPR): Likewise.
8849         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
8850         * expr.c (expand_expr): Tidy.
8851         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
8852         * tree-inline.c (initialize_inlined_parameters): Clean up
8853         new local variables.
8854
8855 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8856
8857         PR bootstrap/4128
8858         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
8859         before movrXX only, use reg_overlap_mentioned_p.
8860         Only special case NE if just one insn can be generated.
8861
8862 2002-03-15  Jason Merrill  <jason@redhat.com>
8863
8864         * varasm.c (assemble_variable): Call resolve_unique_section before
8865         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
8866         of error_mark_node.
8867
8868 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8869
8870         PR target/5170
8871         * arm.md (split pattern for thumb shiftable immediates): Add comment
8872         explaining non-obvious test.
8873
8874 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8875
8876         PR target/5712
8877         * arm.md (movaddr, movaddr_insn): Delete.
8878
8879 2002-03-15  Jason Merrill  <jason@redhat.com>
8880
8881         * toplev.c (wrapup_global_declarations): Clarify variable handling.
8882         -fkeep-static-consts doesn't apply to comdats.
8883
8884 2002-03-14  Richard Henderson  <rth@redhat.com>
8885
8886         * c-decl.c: Include c-pragma.h.
8887         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
8888         (finish_function): Tidy.
8889         * c-pragma.c: Include c-common.h.
8890         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
8891         (handle_pragma_weak): Use them.
8892         (init_pragma): Register pending_weaks.
8893         * c-pragma.h (maybe_apply_pragma_weak): Declare.
8894         * print-tree.c (print_node): Print DECL_WEAK.
8895         * varasm.c (mark_weak_decls): Remove.
8896         (remove_from_pending_weak_list): Remove.
8897         (add_weak): Remove.
8898         (asm_emit_uninitialised): Call globalize_decl for weak commons.
8899         (weak_decls): Make a tree_list.
8900         (declare_weak): Cons weak_decls directly.
8901         (globalize_decl): Remove weak_decls elements directly.
8902         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
8903         symbols.  Don't pretend to handle aliases.
8904         (init_varasm_once): Update weak_decls registry.
8905         * Makefile.in: Update dependencies.
8906
8907 2002-03-14  Richard Henderson  <rth@redhat.com>
8908
8909         PR target/5312
8910         * config/ia64/ia64.c: Include tm_p.h last.
8911         (gen_nop_type): Remove duplicate definition.
8912         (cycle_end_fill_slots): Set sched_data for second L slot.
8913         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
8914         (nop_cycles_until): Fix typos.
8915
8916 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8917
8918         PR optimization/5891
8919         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
8920
8921 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
8922
8923         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
8924           descriptors correctly.
8925
8926 2002-03-14  Michael Meissner  <meissner@redhat.com>
8927
8928         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
8929         100, allowing MAX_UNROLLED_INSNS to be overridden.
8930
8931         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
8932         --param.
8933
8934         * unroll.c (params.h): Include.
8935         (MAX_UNROLLED_INSNS): Delete, now in params.h.
8936
8937         * doc/invoke.texi (--param max-unroll-insns): Document.
8938
8939         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
8940
8941 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8942
8943         * arm.md: Fix warnings about constraints in peepholes and splits.
8944
8945 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
8946
8947         * cpphash.h (struct lexer_state): Remove line_extension member.
8948         * cpplib.c (dequote_string, do_linemarker): New functions.
8949         (linemarker_dir): New data object.
8950         (DIRECTIVE_TABLE): No longer need to interpret #line in
8951         preprocessed source.  Delete obsolete comment about return
8952         values of handlers.
8953         (end_directive, directive_diagnostics, _cpp_handle_directive):
8954         Don't muck with line_extension.
8955         (directive_diagnostics): No need to issue warnings for
8956         linemarkers here.
8957         (_cpp_handle_directive): Issue warnings for linemarkers here,
8958         when appropriate.  Dispatch linemarkers to do_linemarker, not
8959         do_line.
8960         (do_line): Code to handle linemarkers split out to do_linemarker.
8961         Convert escape sequences in filename argument, both places.
8962
8963         * cppmacro.c (quote_string): Rename cpp_quote_string and
8964         export.  All callers changed.
8965         * cpplib.h (cpp_quote_string): Prototype.
8966         * cppmain.c (print_line): Call cpp_quote_string on to_file
8967         before printing it.
8968
8969         * doc/cpp.texi: Document that escapes are now interpreted in
8970         #line and in linemarkers, and that non-printing characters are
8971         converted to octal escapes when linemarkers are generated.
8972
8973 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
8974
8975         * emit-rtl.c (try_split): Use delete_insns.
8976         * recog.c (split_all_insns): Fix terminating condition.
8977
8978 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8979             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8980
8981         PR target/5828
8982         * arm.c (arm_output_epilogue): Fix floating-point register save
8983         adjustment when using a frame pointer.
8984
8985 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
8986
8987         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
8988         * config/mips/mips.c (compute_frame_size): Retrofit them here.
8989         (save_restore_insns, mips_expand_epilogue): And here.
8990         (build_mips16_call_stub): And here.
8991         (mips_function_value): Use the new macros to decide whether a single
8992         or complex float can be returned in floating-point registers.  Return
8993         a parallel rtx in the complex case.
8994
8995 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
8996
8997         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
8998         call after liveness analysis.
8999
9000         * recog.c (split_insn): Use delete_insn_and_edges.
9001
9002         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
9003         instructions to have branch prediction notes.
9004         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
9005
9006 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
9007
9008         * configure.in: Don't pass -Wno-long-long to a ADA compiler
9009         that doesn't support it.
9010         * configure: Regenerate.
9011
9012 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9013
9014         PR target/5626
9015         * config/sparc/sparc.md (normal_branch, inverted_branch,
9016         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
9017         inverted_fp_branch): Adjust calls to output_cbranch.
9018         Set length attribute.
9019         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
9020         output_v9branch.  Set length attribute.
9021         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
9022         predicates.
9023         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
9024         (output_cbranch): Likewise.  Handle far branches.
9025         (output_v9branch): Handle far branches.
9026         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
9027         Adjust prototypes.
9028         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
9029         noov_compare64_op predicates.
9030
9031 2002-03-13  Jason Merrill  <jason@redhat.com>
9032
9033         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
9034         into the function and constify it.
9035         * gthr-dce.h, gthr-solaris.h: Likewise.
9036
9037 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
9038
9039         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
9040         * config/rs6000/rs6000.c (rs6000_va_arg): Use
9041         std_expand_builtin_va_arg if not ABI_V4.
9042
9043 2002-03-13  Jason Merrill  <jason@redhat.com>
9044
9045         * varasm.c (globalize_decl): New fn.
9046         (assemble_start_function): Use it.
9047         (asm_emit_uninitialized): Use it.
9048         (assemble_alias): Use it.
9049         (assemble_variable): Use it.
9050
9051 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
9052
9053         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
9054         2002-03-12 internal visibility change.
9055         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
9056         visibility into SYMBOL_REF_FLAG.
9057
9058 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
9059
9060         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
9061         VOIDmode operand.  Add compile-time optimization for constant results.
9062
9063 2002-03-12  Jason Merrill  <jason@redhat.com>
9064
9065         * c-typeck.c (convert_for_assignment): Don't allow conversions
9066         between pointers and references.  Only allow lvalues to convert to
9067         reference.
9068
9069 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
9070
9071         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
9072         before prologue, to avoid scheduling problems.
9073
9074 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9075
9076         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
9077         (ELIMINABLE_REGS): Add sfp->sp.
9078         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
9079
9080 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9081
9082         PR optimization/5892
9083         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
9084
9085 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9086
9087         * loop.c (basic_induction_var): Don't call convert_modes if mode
9088         classes are different.
9089
9090 2002-03-12  Richard Henderson  <rth@redhat.com>
9091
9092         PR optimization/5901
9093         * function.c (reposition_prologue_and_epilogue_notes): Position
9094         the markers after/before the last/first insn not deleted.
9095
9096 2002-03-12  Richard Henderson  <rth@redhat.com>
9097
9098         PR optimization/5878
9099         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
9100         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
9101         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
9102
9103         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
9104         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
9105         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
9106
9107         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
9108         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
9109         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
9110         also.  Don't set it if not flag_pic.
9111         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
9112         to be INVALID_REGNUM when not used.
9113
9114 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
9115
9116         * expmed.c (store_bit_field): Reset alias set for memory.
9117         (extract_bit_field): Same.
9118
9119 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9120
9121         * c-common.c (c_tree_code_type, c_tree_code_length,
9122         c_tree_code_name, add_c_tree_codes): Delete.
9123         * c-common.h (add_c_tree_codes): Delete.
9124         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
9125         Define.
9126         * c-objc-common.c (c_objc_common_init): Don't call
9127         add_c_tree_codes, instead set lang_unsafe_for_reeval.
9128         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
9129         objc_tree_code_name, add_objc_tree_codes): Delete.
9130         (objc_init): Don't call add_objc_tree_codes.
9131         * objc/objc-lang.c (tree_code_type, tree_code_length,
9132         tree_code_name): Define.
9133         * toplev.c (lang_independent_init): Don't set
9134         tree_code_length[IDENTIFIER_NODE].
9135         * tree.c (tree_code_type, tree_code_length, tree_code_name):
9136         Delete definitions, moved to language front-ends.
9137         * tree.def (IDENTIFIER_NODE): Hardwire the length.
9138         * tree.h (tree_code_type, tree_code_length, tree_code_name):
9139         Const-ify.
9140         (tree_code_length): Change type to unsigned char.
9141
9142 2002-03-12  Richard Henderson  <rth@redhat.com>
9143
9144         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
9145         internal visibility change.
9146
9147 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9148
9149         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
9150         validize_mem() instead of change_address to avoid clobbering
9151         memory attributes.
9152
9153 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9154
9155         * c-lex.h (position_after_whitespace): Remove.
9156
9157 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
9158
9159         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
9160         (lex_string): Use unsigned char pointers.
9161
9162 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9163
9164         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
9165         is not a valid memory_operand.
9166
9167 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9168
9169         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
9170         * config/xtensa/lib1funcs.asm: Fix copyright to include
9171         special case for libgcc files.
9172         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
9173         (__divsi3): Likewise.
9174         (__umodsi3): Likewise.
9175         (__modsi3): Likewise.
9176         * config/xtensa/lib2funcs.S: Fix copyright to include
9177         special case for libgcc files.
9178
9179 2002-03-12  Tom Rix  <trix@redhat.com>
9180
9181         * collect2.c (resolve_lib_name): Move outside of
9182         OBJECT_FORMAT_COFF ifdef.
9183         (ignore_library): Same.
9184
9185 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9186
9187         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
9188
9189 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9190
9191         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
9192         to function_section before writing out the constant pool.
9193
9194 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
9195
9196         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
9197         zero_constant.
9198         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
9199
9200 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
9201
9202         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
9203         (adddi3): Likewise.
9204         (movdf): Likewise.
9205         (movdi): Likewise.
9206         (cmpsi splitter): Likewise.
9207         (modsi3): Fail if <= 0.
9208         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
9209         redundant test when HOST_BITS_PER_WIDE_INT != 32.
9210         (reg_or_sub_cint64_operand): Likewise.
9211         (num_insns_constant_wide): Optimize sign extension.
9212         (rs6000_legitimize_address): Likewise.
9213
9214 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9215
9216         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9217         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9218
9219 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9220
9221         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
9222         address calculation.
9223
9224 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9225
9226         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
9227         scratch register to DImode / TImode.
9228         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
9229         register used does not overlap the target.
9230
9231 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9232
9233         * Makefile.in (debug.o): Depend on debug.h.
9234         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
9235         * debug.c (do_nothing_debug_hooks): Likewise.
9236         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
9237         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
9238         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
9239         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9240         * dwarfout.c (dwarf_debug_hooks): Likewise.
9241         * integrate.c (output_inline_function): Likewise.
9242         * objc/objc-act.c (synth_module_prologue): Likewise.
9243         * sdbout.c (sdb_debug_hooks): Likewise.
9244         * toplev.c (debug_hooks): Likewise.
9245         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9246
9247 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9248
9249         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
9250         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
9251         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
9252         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
9253         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
9254         * defaults.h (POINTER_SIZE): Define.
9255         * doc/tm.texi (POINTER_SIZE): Document default.
9256
9257 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9258
9259         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
9260
9261 2002-03-11  Richard Henderson  <rth@redhat.com>
9262
9263         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
9264         if rebuild_label_notes_after_reload.
9265
9266 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
9267
9268         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
9269         emit pic register load if "internal" visibility.
9270         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
9271         (cris_expand_builtin_va_arg): Do all computations on trees.
9272
9273 2002-03-11  Richard Henderson  <rth@redhat.com>
9274
9275         * rtlanal.c: Include recog.h.
9276         (keep_with_call_p): Fix thinko.
9277         * Makefile.in (rtlanal.o): Update dependencies.
9278
9279 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
9280
9281         * genflags.c (gen_insn): Use IS_VSPACE.
9282         * genoutput.c (output_insn_data): Likewise.
9283         (process_template): Likewise.
9284
9285 2002-03-11  Richard Henderson  <rth@redhat.com>
9286
9287         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
9288
9289 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9290
9291         * Makefile.in: Update.
9292         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
9293         Update documentation.
9294         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
9295         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
9296
9297 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
9298
9299         * Makefile.in: Give texi2pod its input file as a command line
9300         argument, not on stdin.
9301
9302 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
9303             Daniel Berlin  <dan@dberlin.org>
9304
9305         C++ alias analysis improvement.
9306         * alias.c (record_component_aliases): Record aliases for base
9307         classes too.
9308
9309 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9310
9311         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
9312
9313 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
9314
9315         * toplev.c (vms_fopen): Remove, not needed.
9316
9317         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
9318
9319         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
9320
9321         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
9322         for FP, already done later.
9323
9324         * toplev.c (debug_args): Add entry for VMS_DEBUG.
9325         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
9326
9327 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
9328
9329         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
9330         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
9331         LARGEST_EXPONENT_IS_NORMAL for the given mode.
9332         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
9333         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
9334         (ediv, emul, eldexp, esqrt): Likewise.
9335         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
9336         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
9337         (saturate): New function.
9338         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
9339         (make_nan): Use a saturation value instead of a NaN if
9340         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
9341         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
9342         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
9343         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
9344         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
9345         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
9346         !ROUND_TOWARDS_ZERO.
9347         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
9348         (ROUND_TOWARDS_ZERO): Document.
9349
9350 2002-03-11  Andreas Jaeger  <aj@suse.de>
9351
9352         * cfg.c (dump_flow_info): Remove unused variable.
9353
9354 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
9355
9356         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
9357         computations on trees.
9358
9359 2002-03-10  Richard Henderson  <rth@redhat.com>
9360
9361         PR 5693:
9362         * reload.c (copy_replacements_1): New.
9363         (copy_replacements): Use it to recurse through the rtx.
9364
9365 2002-03-10  Richard Henderson  <rth@redhat.com>
9366
9367         * loop.c (strength_reduce): Compute number of iterations as
9368         unsigned HOST_WIDE_INT.
9369
9370 2002-03-10  Richard Henderson  <rth@redhat.com>
9371
9372         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
9373         to move away from the end of the block.
9374
9375 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9376
9377         PR preprocessor/5899
9378         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
9379
9380 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9381
9382         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
9383
9384         * attribs.c (decl_attributes): Fix signed/unsigned warning.
9385
9386 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
9387
9388         * config/mmix/mmix.c: Improve comments.
9389         (mmix_target_asm_function_prologue): Drop variable
9390         empty_stack_frame.  Don't allocate unused slot above fp.
9391         (mmix_target_asm_function_epilogue): Mirror prologue changes.
9392         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
9393         brace in first column.
9394         (enum reg_class): Ditto.
9395         (FIRST_PARM_OFFSET): Now 0.
9396         (USER_LABEL_PREFIX): Remove #if 0:d definition.
9397
9398 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9399
9400         * combine.c (make_extraction): Fix error in last change.
9401
9402 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9403
9404         * c4x.c (c4x_fp_reglist): Const-ify.
9405         * cris.c (cris_print_operand): Likewise.
9406         * i386.c (ix86_va_arg): Likewise.
9407         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
9408         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
9409         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
9410         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
9411         * mcore.h (regno_reg_class): Likewise.
9412         * mips.c (gen_int_relational): Likewise.
9413         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
9414         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
9415         * pdp11.c (move_costs): Likewise.
9416         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
9417         * s390.c (s390_branch_condition_mnemonic, regclass_map):
9418         Likewise.
9419         * s390.h (regclass_map): Likewise.
9420         * sh.c (shift_amounts): Likewise.
9421         * sh.md (rotlsi3): Likewise.
9422
9423 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
9424
9425         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
9426         (ne0+5): Use new clobber to generate proper shift pattern.
9427         Patch by Michael Matz <matz@kde.org>.
9428
9429 2002-03-09  Andreas Schwab  <schwab@suse.de>
9430
9431         * gcc.c (validate_all_switches): Also handle `%W{...}'.
9432
9433 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
9434
9435         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
9436
9437 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
9438
9439         PR middle-end/5877
9440         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
9441         even for non-representable constants.
9442
9443 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9444
9445         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
9446         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
9447         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
9448         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
9449         (pop_function_context): Compute MAY_SHARE parameter for
9450         fixup_var_refs.
9451         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
9452         (gen_mem_addressof): Call fixup_var_refs with new parm.
9453
9454         * combine.c (make_extraction): Don't make extension of CONST_INT.
9455
9456 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
9457
9458         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
9459         in o32 and o64 ABIs.
9460         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
9461         but getting fixed-size structs passed in registers regardless of
9462         padding in o32 and o64 ABIs.
9463
9464         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
9465         offset before loading address of argument passed by transparent
9466         reference.
9467
9468 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9469
9470         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
9471
9472 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
9473
9474         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
9475         marker such that registers after it are saved.
9476
9477 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9478
9479         * sparc.c (arith_4096_operand): Fix error in last change.
9480
9481 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9482
9483         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
9484         defaults for MEABI.
9485
9486 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9487
9488         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
9489         vectors.
9490
9491 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9492
9493         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
9494
9495 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
9496
9497         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
9498         removed; fix return value.
9499         * combine.c (combine_instructions): Dirtify blocks where we failed to
9500         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
9501         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
9502
9503 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9504
9505         * gcse.c (insert_insn_end_bb): Fix typo in last change.
9506
9507 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
9508
9509         * recog.c (peephole2_optimize): Re-distribute EH edges.
9510
9511 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9512
9513         * expr.c (expand_expr): Use unsave lang hook.
9514         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
9515         (LANG_HOOKS_INITIALIZER): Update.
9516         * langhooks.h (struct lang_hooks): New hook unsave.
9517         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
9518         (unsave_expr_1): Remove unused lang_unsave_expr_now.
9519         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
9520         (unsave_expr_now): Remove.
9521         * tree.h (unsave_expr_now, lang_unsave,
9522         lang_unsave_expr_now): Remove.
9523         (lhd_unsave): New.
9524
9525 2002-03-08  Andreas Jaeger  <aj@suse.de>
9526
9527         * flow.c (propagate_block_delete_insn): Remove unused variable.
9528
9529 2002-03-08  Kazu Hirata  <kazu@hxi.com>
9530
9531         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
9532         insn length for memory load/store.
9533
9534 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9535
9536         * doc/install.texi (--with-libiconv-prefix): Document.
9537
9538 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
9539
9540         * doc/sourcebuild.texi: Fix typo.
9541
9542 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
9543
9544         PR c/3711
9545         * builtins.c (std_expand_builtin_va_arg): Do all computations on
9546         trees.
9547
9548 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9549
9550         * rtl.c (copy_most_rtx): Move from here ...
9551         * emit-rtl.c (copy_most_rtx): ... to here.
9552
9553 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9554
9555         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
9556         SUBTARGET_CPP_SIZE_SPEC.
9557         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
9558
9559         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
9560
9561 2002-03-07  Matt Hiller  <hiller@redhat.com>
9562
9563         * gensupport.c (first_dir_md_include): Renamed from include;
9564         change all references.
9565         (last_dir_md_include): Renamed from last_include; change all
9566         references.
9567         (init_md_reader): Unconditionally initialize base_dir whether or
9568         not filename is a relative path.
9569
9570 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
9571
9572         * config/fp-bit.c (_unord_f2): Compile it in even if
9573         US_SOFTWARE_GOFAST is enabled.
9574
9575         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
9576         NULL_RTX.  Set all HFmode operations as NULL_RTX.
9577         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
9578         NULL_RTX, try reversing the comparison and the operands.
9579
9580 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9581
9582         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
9583         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
9584         and MATCH_OP_DUP.
9585
9586 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
9587
9588         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
9589
9590 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9591
9592         * basic-block.h (fixup_abnormal_edges): Declare.
9593         * reload1.c (fixup_abnormal_edges): New function.
9594         * reg-stack.c (convert_regs): Use it.
9595
9596         * gcse.c (insert_insn_end_bb): Handle trapping insns.
9597
9598         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
9599
9600 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
9601
9602         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
9603         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
9604         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
9605         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
9606         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
9607         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
9608         unless x and y could be infinite.
9609         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
9610         Check that the common type of both arguments is a real, even for
9611         targets without unordered comparisons.  Allow an integer argument
9612         to be compared against a real.
9613         (expand_tree_builtin): Use expand_unordered_cmp.
9614         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
9615         * cse.c (fold_rtx): Likewise.  Fix indentation.
9616         * fold-const.c (fold_real_zero_addition_p): New.
9617         (fold): Use it, and the new HONOR_... macros.
9618         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
9619         * jump.c (reversed_comparison_code_parts): After searching for
9620         the true comparison mode, use HONOR_NANS to decide whether it
9621         can be safely reversed.
9622         (reverse_condition_maybe_unordered): Remove IEEE check.
9623         * simplify-rtx.c (simplify_binary_operation): Use the new macros
9624         to decide which simplifications are valid.  Allow the following
9625         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
9626         and (a - -b) to (a + b).
9627         (simplify_relational_operation): Use HONOR_NANS.
9628         * doc/tm.texi: Document the MODE_HAS_... macros.
9629
9630 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
9631
9632         * combine.c (simplify_comparison): If simplifying a logical shift
9633         right and compare with constant, force the comparison to unsigned.
9634
9635 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
9636
9637         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
9638
9639         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
9640         -mabi=no-altivec
9641         (alt_reg_names): Remove % for vrsave.
9642
9643 2002-03-06  Richard Henderson  <rth@redhat.com>
9644
9645         PR optimization/5844
9646         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
9647         if used indicates we've already emitted one copy of an operand.
9648         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
9649         (gen_split): Supply a non-null used.
9650
9651 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9652
9653         * reload1.c (reload): Unshare all rtl after reload is done.
9654
9655         * simplify-rtx.c (simplify_plus_minus): Do not abort,
9656         but simply fail if the expression is too complex to simplify.
9657         (simplify_gen_binary): Handle simplify_plus_minus failures.
9658
9659 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
9660
9661         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
9662         consistently call delete_trivially_dead_insns after CSE and GCSE;
9663         fix DFI_life dumping; do jump threading after liveness; do crossjumping
9664         after liveness2; update comment in last crossjumping.
9665         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
9666
9667 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
9668
9669         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
9670         after completing fast dead code elimination.
9671
9672         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
9673         COMPARE operator.
9674
9675 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
9676
9677         * version.c:  Fix misplaced leading blanks on first line.
9678
9679 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
9680
9681         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
9682
9683 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
9684
9685         * cfgcleanup.c (mentions_nonequal_regs): New function.
9686         (thread_jump): Use it.
9687         * toplev.c (rest_of_compilation): Run jump threading after
9688         liveness.
9689
9690 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
9691
9692         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
9693         patch.
9694
9695 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9696
9697         * predict.c (estimate_bb_frequencies): Do not reload the
9698         frequencies from notes.
9699
9700 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
9701
9702         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
9703         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
9704
9705         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
9706         delete_noop_moves): Return indeger.
9707         * flow.c (ndead): New variable.
9708         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
9709         BB argument; update callers.
9710         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
9711         (life_analysis): Do not call purge_all_dead_edges.
9712         (update_life_info): Return number of deleted insns; print statistics.
9713         (update_life_info_in_dirty_blocks): likewise.
9714         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
9715         return number of insns deleted.
9716
9717         * cse.c: Include timevar.h
9718         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
9719         iterate until stabilizes; print statistics; return number of killed
9720         insns.
9721         * Makefile.in: (cse.o): Add timevar.h dependency
9722         * rtl.h (delete_trivially_dead_insns): New.
9723         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
9724         * toplev.c (rest_of_compilation): Update callers.
9725
9726         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
9727         (try_optimize_cfg): Do not update liveness.
9728         (cleanup-cfg): Loop until try_optimize_cfg and dead code
9729         removal stabilizes; use delete_trivially_dead_insns.
9730
9731         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
9732
9733 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
9734
9735         * cppmain.c (setup_callbacks): Disable #pragma and #ident
9736         callbacks when processing assembly language.
9737
9738 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9739
9740         * pa.h (ASM_FILE_END): Define.
9741         * som.h (ASM_FILE_END): Delete.
9742
9743         * pa.c (function_arg): Don't pass floats in general registers in
9744         indirect calls if TARGET_ELF32.
9745
9746 2002-03-05  Richard Henderson  <rth@redhat.com>
9747
9748         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
9749
9750 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
9751
9752         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
9753
9754 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9755
9756         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
9757         -r command line.  Don't hide any symbols if not building
9758         shared libgcc.
9759
9760 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
9761
9762         * cfg.c (dump_flow_info): Warn about profile mismatches.
9763         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
9764         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
9765
9766 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9767
9768         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
9769         wide volatile memory by parts.
9770
9771 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9772
9773         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
9774         is NULL.
9775
9776 2002-03-05  Richard Henderson  <rth@redhat.com>
9777
9778         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
9779
9780 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9781
9782         * toplev.c (documented_lang_options): Document more
9783         language-specific options.
9784         * doc/invoke.texi (Warning Options): Correct documentation for
9785         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
9786         * c-decl.c (c_decode_option): Use a table to handle warning options.
9787
9788 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
9789
9790         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
9791         parameter to mmix_encode_section_info.
9792         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
9793         relocatably.  Always produce ELF, not mmo if linking relocatably.
9794         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
9795         first is non-zero, don't add symbol prefix.
9796         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
9797         prototype accordingly.
9798
9799 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
9800
9801         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
9802
9803 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9804
9805         * configure.in: Increase required makeinfo version to 4.1.
9806         * configure: Regenerate.
9807
9808 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9809
9810         * .cvsignore: Remove *.info* and genrtl*; these files are generated
9811         elsewhere now.
9812
9813 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9814
9815         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
9816         * doc/invoke.texi: Fix @math uses.
9817
9818 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9819
9820         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
9821         removal
9822
9823 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
9824
9825         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
9826         (powerpc-*-eabisimaltivec*): Same.
9827
9828         * config/rs6000/t-ppcendian: New.
9829
9830 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9831
9832         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
9833         nonimmediate_src_operand and nonimmediate_lsrc_operand to
9834         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
9835
9836 2002-03-03  Richard Henderson  <rth@redhat.com>
9837
9838         * toplev.c (rest_of_decl_compilation): Revert last two changes.
9839
9840 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
9841
9842         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
9843         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
9844         tree.c, config/m68k/m68k.c:
9845         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9846         REAL_ARITHMETIC blocks unconditional.  Delete some further
9847         #ifdef blocks predicated on REAL_ARITHMETIC.
9848         * flags.h, toplev.c: Delete remaining references to
9849         flag_pretend_float.
9850
9851         * doc/invoke.texi: Remove documentation of -fpretend-float.
9852         * doc/tm.texi: Describe the various REAL_* macros as provided by
9853         real.h, not by the target configuration files.
9854
9855         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
9856         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
9857         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9858         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
9859         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
9860         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
9861         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
9862         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
9863         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9864         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
9865         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9866         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
9867         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
9868         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
9869         config/xtensa/xtensa.h:
9870         Do not define, undefine, or mention in comments any of
9871         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
9872         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
9873         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
9874         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
9875         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
9876         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
9877         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
9878         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
9879         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
9880
9881 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9882
9883         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
9884         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
9885         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
9886         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
9887         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
9888         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
9889         Delete.
9890         * defaults.h (BITS_PER_WORD): Define.
9891         * doc/tm.texi (BITS_PER_WORD): Document default value.
9892
9893         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
9894         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
9895         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
9896
9897 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9898
9899         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
9900         lieu of explicit sizeof/sizeof.
9901         * i386.c (override_options, ix86_init_mmx_sse_builtins,
9902         ix86_expand_builtin): Likewise.
9903         * mips.c (mips_add_gc_roots): Likewise.
9904         * mmix.c (mmix_output_condition): Likewise.
9905         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
9906         altivec_init_builtins): Likewise.
9907         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
9908         * cppexp.c (Nsuff, parse_number): Likewise.
9909         * cppinit.c (builtin_array_end): Likewise.
9910         * gcc.c (n_default_compilers, process_command): Likewise.
9911         * genpreds.c (output_predicate_decls): Likewise.
9912         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
9913         * lcm.c (N_ENTITIES): Likewise.
9914         * stor-layout.c (set_sizetype): Likewise.
9915
9916 2002-03-03  Richard Henderson  <rth@redhat.com>
9917
9918         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
9919         for types or labels.
9920
9921 2002-03-03  Richard Henderson  <rth@redhat.com>
9922
9923         * c-decl.c (start_decl): Initialized variables are not common.
9924
9925 2002-03-02  Per Bothner  <per@bothner.com>
9926
9927         * gcc.c (option_map):  Suport new --bootclasspath option.
9928         --CLASSPATH is now just an alias for --classpath.
9929
9930 2002-03-02  Richard Henderson  <rth@redhat.com>
9931
9932         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
9933         load if "internal" visibility.
9934         * doc/extend.texi: Document visibility meanings.
9935
9936 2002-03-02  Richard Henderson  <rth@redhat.com>
9937
9938         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
9939         to functions as well.
9940
9941 2002-03-02  Richard Henderson  <rth@redhat.com>
9942
9943         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
9944         (handle_visibility_attribute): Don't call assemble_visibility.
9945         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
9946         without asmspec.  Invoke assemble_alias when needed.
9947         * varasm.c (maybe_assemble_visibility): New.
9948         (assemble_start_function, assemble_variable, assemble_alias): Use it.
9949
9950 2002-03-02  Richard Henderson  <rth@redhat.com>
9951
9952         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
9953         invoke ENCODE_SECTION_INFO with first call flag.
9954
9955         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
9956         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
9957         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
9958         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
9959         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
9960         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9961         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
9962         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
9963         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
9964         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
9965         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9966         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
9967         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
9968         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
9969         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9970         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
9971         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
9972         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9973         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
9974         config/sh/sh.h, config/sparc/sparc.h,
9975         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9976         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
9977         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
9978         FIRST argument.  As needed, examine it and do nothing.
9979
9980         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
9981         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
9982         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
9983
9984         * config/arm/t-pe (pe.o): Add dependencies.
9985
9986 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9987
9988         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
9989         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
9990         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
9991         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
9992         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
9993         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
9994         * defaults.h (BITS_PER_UNIT): Define.
9995         * doc/tm.texi (BITS_PER_UNIT): Document default value.
9996
9997 2002-03-02  Kazu Hirata  <kazu@hxi.com>
9998
9999         * config/h8300/h8300-protos.h: Add a prototype for
10000         compute_a_shift_length.
10001         * config/h8300/h8300.c (h8300_asm_insn_count): New.
10002         (compute_a_shift_length): Likewise.
10003         (h8300_adjust_insn_length): Do not adjust insn length of shift
10004         insns.
10005         * config/h8300/h8300.md (anonymous shift patterns): Use
10006         compute_a_shift_length.
10007
10008 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10009
10010         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
10011         trunc_int_for_mode.
10012
10013         * emit-rtl.c (offset_address): Call update_temp_slot_address.
10014
10015 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10016
10017         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
10018         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
10019         * flags.h (flag_zero_initialized_in_bss): Declare.
10020         * toplev.c (flag_zero_initialized_in_bss): New flag.
10021         (lang_independent_options): Add flag_zero_initialized_in_bss.
10022         * tree.c (initializer_zerop): New function.
10023         * tree.h (initializer_zerop): Declare.
10024         * varasm.c (assemble_variable): If we can emit bss, put zero
10025         initializers in the bss section.
10026
10027 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
10028
10029         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
10030         like more than one symbol per .weak directive.
10031
10032 2002-03-01  Richard Henderson  <rth@redhat.com>
10033
10034         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
10035         adjust argument_pointer by pretend_args_size.
10036         (ia64_va_start): Adjust va_start address by -pretend_args_size.
10037
10038 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10039
10040         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
10041
10042 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
10043
10044         * toplev.c (rest_of_compilation): Delete dead jumptables before
10045         loop.
10046         * flow.c (delete_dead_jumptables): Make global.
10047         * rtl.h (delete_dead_jumptables): Declare.
10048
10049 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
10050
10051         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
10052         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
10053         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
10054
10055 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10056
10057         * config/h8300/h8300-protos.h: Fix formatting.
10058         * config/h8300/h8300.c: Likewise.
10059         * config/h8300/h8300.h: Likewise.
10060
10061 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10062
10063         * config/h8300/h8300.c (print_operand): Support 16-bit
10064         constant addresses.
10065         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
10066
10067 2002-02-28  Richard Henderson  <rth@redhat.com>
10068
10069         * expmed.c (store_bit_field): Prevent generation of CONCATs;
10070         pun complex values as integers; use gen_lowpart instead of
10071         gen_rtx_SUBREG.
10072         (extract_bit_field): Likewise.
10073
10074 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
10075             David Edelsohn  <edelsohn@gnu.org>
10076
10077         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
10078         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
10079         (SUPPORTS_WEAK): Likewise.
10080         * output.h (add_weak): Add tree param.
10081         * varasm.c (add_weak): Likewise.  Save decl.
10082         (struct weak_syms): Add decl field.
10083         (mark_weak_decls): New function.
10084         (init_varasm_once): ggc_add_root mark_weak_decls.
10085         (assemble_start_function): Use ASM_WEAKEN_DECL.
10086         (assemble_variable): Likewise.
10087         (assemble_alias): Likewise.
10088         (declare_weak): Pass decl to add_weak.
10089         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
10090         (remove_from_pending_weak_list): Declare and define for
10091         ASM_WEAKEN_DECL.
10092         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
10093         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
10094         * defaults.h (SUPPORTS_WEAK): Likewise.
10095         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10096         .weak for code sym.  Do emit .size for descriptor sym.
10097         (ASM_DECLARE_FUNCTION_SIZE): Define.
10098         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
10099         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
10100         .lglobl unless TARGET_XCOFF.  Formatting fixes.
10101         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10102         .weak for code sym.
10103         (HANDLE_PRAGMA_WEAK): Remove.
10104         (ASM_WEAKEN_LABEL): Remove.
10105         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
10106
10107 2002-03-01  Jason Merrill  <jason@redhat.com>
10108
10109         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
10110         (TARGET_EXPR_CLEANUP): New macro.
10111
10112 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
10113
10114         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
10115         to take ptr_extend into account as third type of extension.
10116         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
10117         fields used by SUBREG_PROMOTED_UNSIGNED_P.
10118         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
10119         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
10120         * calls.c (precompute_arguments): Use new macro.
10121         (expand_call): Ditto.
10122         * combine.c (nonzero_bits): Ditto.
10123         (record_promoted_value): Ditto.
10124         * expr.c (store_expr): Ditto.
10125         (expand_expr): Ditto.
10126         * function.c (assign_parms): Ditto.
10127
10128 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
10129
10130         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
10131         override -shared and -shared-libgcc.
10132
10133 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
10134
10135         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
10136         of "ultrasparc".
10137         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
10138         to be broken.
10139
10140 2002-02-28  Richard Henderson  <rth@redhat.com>
10141
10142         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
10143         4 cycle latency from MM producers.
10144         (ia64_internal_sched_reorder): Likewise with pipeline flush.
10145
10146 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
10147
10148         * mklibgcc.in: Don't use GNU make extension.
10149
10150 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10151
10152         * c-parse.in (STATIC): New terminal.
10153         (scspec): New non-terminal.  Update productions accordingly.
10154         (program): Remove bogus ifc / end ifc.
10155         (array_declarator): Simplify production using STATIC.
10156
10157 2002-02-28  Jim Meyering  <meyering@lucent.com>
10158
10159         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
10160         \a still means TARGET_BELL.
10161
10162 2002-02-28  Richard Henderson  <rth@redhat.com>
10163
10164         * haifa-sched.c (sched_emit_insn): New.
10165         (schedule_block): Use last_scheduled_insn to track last insn.
10166         * sched-int.h (sched_emit_insn): Prototype.
10167         * config/ia64/ia64.c (last_issued): Remove.
10168         (ia64_variable_issue): Don't set it.
10169         (nop_cycles_until): Use sched_emit_insn.
10170
10171 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
10172
10173         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
10174         extended constants.
10175
10176 2002-02-28  Kazu Hirata  <kazu@hxi.com>
10177
10178         * config/h8300/h8300.c: Fix formatting.
10179         * config/h8300/h8300.h: Likewise.
10180
10181 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10182
10183         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
10184         which may overwrite the high byte of the frame pointer.
10185
10186 2002-02-28  Bo Thorsen  <bo@suse.de>
10187
10188         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
10189         (STARTFILE_SPEC): Add 64 bit files.
10190         (ENDFILE_SPEC): Likewise.
10191
10192 2002-02-28  Jason Merrill  <jason@redhat.com>
10193
10194         * c-decl.c (finish_function): Only warn about missing return
10195         statement with -Wreturn-type.
10196
10197 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10198
10199         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
10200
10201         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
10202         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
10203
10204 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10205
10206         * basic-block.h (BB_REACHABLE): Renumber.
10207         (BB_DIRTY, BB_NEW): New flags.
10208         (clear_bb_flags): Declare.
10209         (update_life_info_in_dirty_blocks): Declare.
10210         * cfg.c (clear_bb_flags): New function.
10211         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
10212         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
10213         reorder_insns, emit_insn_after): Mark block as dirty.
10214         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
10215         (update_life_info_in_dirty_blocks): New function.
10216         * recog.c (apply_change_group): Dirtify block.
10217
10218         * cse.c (cse_insn): Reorder emitting of jump insn to keep
10219         cfg consistent.
10220         * gcse.c (delete_null_pointer_checks): Likewise.
10221
10222         * toplev.c (dump_file_index): Move cse2 after bp,
10223         add DFI_null
10224         (dump_file_info): Similary.
10225         (rest_of_compilation): Avoid most of CFG rebuilds;
10226         do first if converision after null pointer checks, do cse2
10227         after branch prediction; avoid full liveness rebuild after
10228         initializing subregs.
10229         * invoke.texi (-d options): Document -du, renumber.
10230
10231         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
10232         (notice_new_block): Do not set BB_UPDATE_LIFE.
10233         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
10234          merge_blocks_move_successor_nojumps, merge_blocks,
10235          try_crossjump_to_edge): Likewise.
10236         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
10237         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
10238         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
10239         (merge_of_block): Do not use life_data_ok.
10240         (find_if_case_1): Do not use SET_UPDATE_LIFE.
10241         (if_convert): Use BB_DIRTY mechanizm to update life.
10242         * lcm.c (optimize_mode_switching): Update
10243         update_life_info_in_dirty_blocks
10244
10245 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10246
10247         * Makefile.in (integrate.o): Update.
10248         * c-decl.c (copy_lang_decl): Rename.
10249         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10250         * integrate.c: Include langhooks.h.
10251         (copy_decl_for_inlining): Update to use langhook.
10252         * langhooks-def.h (lhd_do_nothing_t,
10253         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
10254         (LANG_HOOKS_INITIALIZER): Update.
10255         * langhooks.c (lhd_do_nothing_t): New.
10256         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
10257         * tree.h (copy_lang_decl): Remove.
10258 objc:
10259         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10260
10261 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
10262
10263         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
10264         POST_DEC, and POST_MODIFY.
10265
10266 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10267
10268         * c-typeck.c (digest_init): Remove unused parameter; all
10269         callers changed.
10270
10271 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
10272
10273         * expmed.c (expand_shift): Correctly test for low part of a
10274         subreg.
10275
10276 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
10277
10278         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
10279         insn UIDs with insn addresses.
10280
10281 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10282
10283         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
10284         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
10285         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
10286         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
10287         gcc.c, toplev.c: Delete code implementing -traditional mode.
10288
10289         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
10290         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
10291         Document removal of -traditional mode for compilation, and
10292         remove documentation only relevant to that mode.
10293
10294         * config/nextstep.h, config/ptx4.h, config/svr4.h,
10295         config/convex/convex.h, config/d30v/d30v.h,
10296         config/i386/dgux.h, config/i386/osf1elf.h,
10297         config/i386/osfelf.h, config/i386/osfrose.h,
10298         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
10299         config/m68k/hp310.h, config/m88k/dgux.h,
10300         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
10301         config/m88k/m88k.h, config/m88k/openbsd.h,
10302         config/mips/abi64.h, config/mips/osfrose.h,
10303         config/mips/svr4-5.h, config/mips/svr4-t.h,
10304         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10305         config/stormy16/stormy16.h: Remove all references to
10306         -traditional from target specs.  Delete all mention of the
10307         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
10308         delete a couple of commented-out definitions of
10309         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
10310         to -traditional.
10311
10312         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
10313         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
10314
10315 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10316
10317         * mklibgcc.in: Don't use \n in a line subject to
10318         interpretation by echo.
10319
10320 2002-02-27  Graham Stott  <grahams@redhat.com>
10321
10322         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
10323         Constify NAME.
10324
10325         * loop.c (prescan_loop): Handle PARALLEL.
10326
10327         * unroll.c (loop_iterations): Return 0 if the add_val for
10328         a BIV is REG.
10329
10330         * final.c (output_operand_lossage): Constify PFX_STR.
10331
10332         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
10333
10334 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10335
10336         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
10337         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
10338
10339 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
10340
10341         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10342
10343 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10344
10345         * cpplex.c (_cpp_lex_token): Handle directives in macro
10346         arguments.
10347         * cpplib.c (_cpp_handle_directive): Save and restore state
10348         if parsing macro args when entering a directive.
10349         * cppmacro.c (collect_args): No need to handle directives
10350         in macro arguments.
10351         (enter_macro_context, replace_args): Use the original macro
10352         definition in case it was redefined whilst collecting arguments.
10353 doc:
10354         * cpp.texi: Update.
10355
10356 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
10357
10358         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
10359         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
10360         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
10361         method on AIX.
10362         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
10363         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
10364         (load_toc_v4_PIC_2): Same.
10365
10366 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
10367
10368         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
10369
10370 2002-02-26  Richard Henderson  <rth@redhat.com>
10371
10372         * config/alpha/alpha.md (ashldi_se): Re-enable.
10373
10374 2002-02-26  Richard Henderson  <rth@redhat.com>
10375
10376         * config/alpha/alpha.c (alpha_encode_section_info): Examine
10377         MODULE_LOCAL_P; improve commentary.
10378
10379 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
10380
10381         * doc/cpp.texi: Clarify documentation of relationship between
10382         #line and #include.
10383
10384 2002-02-26  Kazu Hirata  <kazu@hxi.com>
10385
10386         * config/h8300/h8300-protos.h: Update the prototype for
10387         compute_logical_op_length.  Add the prototype for
10388         compute_logical_op_cc.
10389         * config/h8300/h8300.c (compute_logical_op_length): Figure out
10390         code from operands.
10391         (compute_logical_op_cc): New.
10392         * config/h8300/h8300.md: Combine all the logical op patterns
10393         in HImode and SImode.  Use compute_logical_op_cc.
10394
10395 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
10396
10397         * config/i386/i386.c (print_operand): Don't append ATT-style
10398         length suffixs to x87 opcodes when in Intel mode.
10399
10400 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
10401
10402         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
10403         (init_emit_once): Update calls.
10404         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
10405         (init_syntax_once): Prototype.
10406
10407 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10408
10409         * pa-linux.h (LIB_SPEC): Update definition.
10410         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
10411
10412 2002-02-26  Richard Henderson  <rth@redhat.com>
10413
10414         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
10415         if we emitted a stop bit.
10416
10417 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10418
10419         * configure.in (libgcc_visibility): Substitute.
10420         * configure: Rebuilt.
10421         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
10422         defined symbols .hidden.
10423
10424 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10425
10426         * attribs.c (c_common_attribute_table): Add visibility.
10427         (handle_visibility_attribute): New function.
10428         * varasm.c (assemble_visibility): New function.
10429         * output.h (assemble_visibility): Add prototype.
10430         * tree.h (MODULE_LOCAL_P): Define.
10431         * crtstuff.c (__dso_handle): Use visibility attribute.
10432         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
10433         for MODULE_LOCAL_P symbols too.
10434         * config/ia64/ia64.c (ia64_encode_section_info): Handle
10435         MODULE_LOCAL_P symbols the same way as local symbols.
10436         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
10437         into .sdata/.sbss by the user.
10438         * doc/extend.texi (Function Attributes): Document visibility
10439         attribute.
10440
10441 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
10442
10443         PR debug/5770
10444         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
10445         STRING_CST initializer spanning the whole variable without
10446         embedded zeros.
10447         If expand_expr returned MEM, don't use it.
10448
10449 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
10450
10451         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
10452         generate a die for the lexical block.
10453
10454 2002-02-26  Kazu Hirata  <kazu@hxi.com>
10455
10456         * config/h8300/h8300-protos.h: Add a prototype for
10457         compute_logical_op_length.
10458         * config/h8300/h8300.c (compute_logical_op_length): New.
10459         * config/h8300/h8300.md (anonymous logical patterns): Use
10460         compute_logical_op_length for length.
10461
10462 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10463
10464         * dwarf2out.c (modified_type_die): Do not call type_main_variant
10465         for vectors.
10466         (gen_type_die): Same.
10467
10468         * attribs.c (handle_vector_size_attribute): Set debug information.
10469
10470 2002-02-26  Daniel Egger  <degger@fhm.edu>
10471
10472         * config/rs6000/rs6000.md: Swap define_insn attributes to
10473         fix incorrect generation of merge high instructions instead
10474         of merge low.
10475
10476 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10477
10478         * c-typeck.c (really_start_incremental_init): Use
10479         bitsize_zero_node for vectors.
10480
10481 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10482
10483         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
10484         ("*set_vrsave_internal"): Same.
10485
10486 2002-02-25  Richard Henderson  <rth@redhat.com>
10487
10488         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
10489         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
10490
10491 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
10492
10493         PR target/5755
10494         * config/i386/i386.c (ix86_return_pops_args): Only pop
10495         fake structure return argument if it was passed on the stack.
10496
10497 2002-02-25  Jason Merrill  <jason@redhat.com>
10498
10499         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
10500         RESULT_DECL.
10501
10502 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10503
10504         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
10505         link with shared_name only.
10506         * doc/invoke.texi (Link Options): Document new behavior.
10507
10508 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10509
10510         * c-typeck.c (push_init_level): Handle vectors.
10511
10512 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10513
10514         * config/sparc/sparc.c (const64_high_operand): Zero-extend
10515         operands of SPARC_SETHI_P.
10516         (input_operand): Likewise.
10517         (sparc_emit_set_const32): Likewise.
10518         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
10519         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
10520         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
10521         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
10522         (movdi_insn_sp64_vis): Likewise.
10523         (movdi split, movdf split): Use SETHI32.
10524         * doc/md.texi: Document SPARC constraints L, M and N.
10525
10526 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10527
10528         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
10529         ("*set_vrsave_internal"): use mfspr for Darwin.
10530
10531         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
10532         gen_get_vrsave_internal.
10533
10534 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10535
10536         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
10537
10538 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10539
10540         * cpplex.c (cpp_interpret_charconst): Get signedness or
10541         otherwise of wide character constants correct.
10542         * cppexp.c (lex): Get signedness of wide charconsts correct.
10543
10544 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10545
10546         * optabs.c (widen_operand): Only call convert_modes for
10547         promoted SUBREG if signedness matches.
10548         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
10549
10550 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10551
10552         * cpplib.c (glue_header_name): Use local buffer to build up
10553         header name.
10554
10555 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10556
10557         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
10558
10559 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10560
10561         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
10562         H8/300[HS] separately.
10563         * config/h8300/h8300.md: Remove the early clobber constraint
10564         from bit field patterns.
10565
10566 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10567
10568         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
10569         register_operand.
10570         (mulhisi3): Likewise.
10571         (umulqisi3): Likewise.
10572         (umulhisi3): Likewise.
10573
10574 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10575
10576         * cppinit.c (output_deps): Correct test for stdout output.
10577         (init_dependency_output): Cure warning.
10578
10579 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10580
10581         * expr.c (store_expr): When converting expression to promoted
10582         equivalent type, allow using SUBREG_REG of TARGET as the target
10583         of the expansion of EXP.
10584         * loop.c (basic_induction_var, case SUBREG): Always look inside.
10585         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
10586         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
10587         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
10588         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
10589
10590 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10591
10592         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
10593         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
10594         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
10595
10596 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
10597
10598         PR optimization/5747
10599         * loop.c (scan_loop): Update reg info if move_movables created new
10600         pseudos.
10601
10602 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10603
10604         * gcc.c (init_gcc_spec): Revert last change.
10605
10606 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10607
10608         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
10609         gpc_reg_operand constraint.
10610
10611 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
10612
10613         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
10614         Simplify comparison of `low'.
10615         (add_operand): Fix formatting.
10616         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
10617         (mask_operand): Disallow mask to wrap in 64-bit mode.
10618         (rs6000_stack_info): Remove redundant test setting push_p.
10619         (output_toc): Fix formatting.
10620         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
10621         cc_reg_not_cr0_operand constraint.
10622         (booldi3, boolcdi3 splitters): Same.
10623
10624 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
10625
10626         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
10627
10628 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
10629
10630         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
10631         gcc invoked with -shared-libgcc.
10632
10633 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
10634
10635         PR c++/5748
10636         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
10637         decl if any of elements was TREE_USED.
10638
10639 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
10640
10641         * config/sparc/sol2.h: Don't include sys/mman.h.
10642         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
10643         (arith_4096_operand): Don't throw high bits away.
10644         (const64_operand): Take sign extension of CONST_INTs into account.
10645         (const64_high_operand, sparc_emit_set_const32): Likewise.
10646         (GEN_HIGHINT64): Likewise.
10647         (sparc_emit_set_const64_quick1): Likewise.
10648         (const64_is_2insns): Likewise.
10649         (print_operand): Use trunc_int_for_mode for sign extension.
10650         * config/sparc/sparc.h (SMALL_INT32): Likewise.
10651         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
10652         chars.  Assume CONST_INT is already properly sign-extended.
10653         (movdi split): Sign-extend each SImode part.
10654         (andsi3 split): Don't mask high bits off, so that result
10655         remains properly sign-extend.
10656         (iorsi3 split): Likewise.
10657         (xorsi3 split): Likewise.
10658
10659 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
10660
10661         * fold-const.c (fold): Fix typo in comments.
10662
10663 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10664
10665         * Makefile.in (langhooks.o): Update dependencies.
10666
10667 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10668
10669         * langhooks.c: Include flags.h.
10670
10671 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
10672
10673         * testsuite/gcc.dg/attr-alwaysinline.c: New.
10674
10675         * c-common.c (c_common_post_options): Set inline trees by
10676         default.
10677
10678         * doc/extend.texi (Function Attributes): Document always_inline
10679         attribute.
10680         Update documentation about inlining when not optimizing.
10681
10682         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
10683
10684         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
10685         unless DECL_ALWAYS_INLINE.
10686
10687         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
10688         unless DECL_ALWAYS_INLINE.
10689         (c_disregard_inline_limits): Disregard if always_inline set.
10690
10691         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
10692         Disregard if always_inline set.
10693         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
10694         unless DECL_ALWAYS_INLINE.
10695
10696         * attribs.c (handle_always_inline_attribute): New.
10697         (c_common_attribute_table): Add always_inline.
10698
10699         * config/rs6000/altivec.h: Add prototypes for builtins
10700         requiring the always_inline attribute.
10701
10702 2002-02-21  Eric Christopher  <echristo@redhat.com>
10703
10704         * expmed.c (store_bit_field): Try to simplify the subreg
10705         before generating a new one when when the mode size of
10706         value is less than maxmode.
10707
10708 2002-02-21  Richard Henderson  <rth@redhat.com>
10709
10710         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
10711         than gen_rtx_PLUS to form the sum.
10712         * explow.c (force_reg): Rearrange to not allocate new pseudo
10713         when force_operand returns a register.
10714         * expr.c (expand_assignment): Allow offset_rtx expansion to
10715         return a sum.  Do not force addresses into registers.
10716         (expand_expr): Likewise.
10717         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
10718         to canonicalize arithmetic that didn't simpify.
10719         (simplify_plus_minus): New argument force; update
10720         all callers.  Don't split CONST unless we can do something with it,
10721         and wouldn't lose the constness of the operands.
10722
10723         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
10724         that we generated earlier.
10725
10726 2002-02-21  Tom Tromey  <tromey@redhat.com>
10727
10728         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10729         (output_line_info): Use constant `1', with a long explanatory
10730         comment.
10731         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
10732
10733 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
10734
10735         * jump.c (redirect_jump): If old label has no UID, don't try to
10736         delete it.
10737
10738 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
10739
10740         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
10741         If input is constant, do shifts at compile time.
10742
10743 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10744
10745         * doc/extend.texi: Fix some more overfull hboxes.
10746
10747 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10748
10749         PR optimization/4994
10750         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
10751         register moves.
10752
10753 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10754
10755         PR c++/4574
10756         * expr.h (expand_and): Add mode argument.
10757         * expmed.c (expand_and): Add mode argument.
10758         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
10759         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
10760         * except.c (expand_builtin_extract_return_addr): Likewise.
10761         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10762         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10763         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
10764         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
10765         * config/c4x/c4x.md: Use GEN_INT (x) instead of
10766         gen_rtx (CONST_INT, VOIDmode, x).
10767
10768 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10769
10770         PR c/4697:
10771         * stmt.c (warn_if_unused_value): Move side effects test once more.
10772
10773 2002-02-20  Torbjorn Granlund  <tege@swox.com>
10774
10775         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
10776         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
10777
10778 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
10779
10780         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
10781         SUBREG or ZERO_EXTEND.
10782
10783 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
10784
10785         * sh.h (current_function_anonymous_args): Remove.
10786         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
10787         of current_function_varargs and current_function_stdarg is set.
10788         * sh.c (sh_expand_prologue): Check current_function_varargs /
10789         current_function_stdarg / TARGET_SH5 instead of
10790         current_function_anonymous_args.
10791
10792         * sh64.h (TARGET_VERSION): Define.
10793
10794 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
10795
10796         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
10797         VRSAVE_REGNO on TARGET_ALTIVEC.
10798
10799 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
10800
10801         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
10802         bits of SImode const_int.
10803         (includes_rshift_p): Likewise.
10804         (print_operand): Call mask_operand and mask64_operand with correct
10805         mode.
10806         (rs6000_output_function_epilogue): Pad traceback table to word.
10807         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
10808         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
10809         mask64_operand with correct mode.
10810         (FUNCTION_ARG_REGNO_P): Correct parentheses.
10811
10812 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10813
10814         PR debug/4461
10815         * varasm.c (get_pool_constant_mark): New.
10816         * rtl.h (get_pool_constant_mark): Add prototype.
10817         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
10818         be represented if it has not been output.
10819
10820 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10821
10822         * combine.c (do_SUBST): Sanity check substitutions of
10823         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
10824         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
10825         CONST_INT into its operand.
10826         (known_cond): Likewise, for ZERO_EXTEND.
10827         * simplify-rtx.c (simplify_unary_operation): Fix condition to
10828         allow for simplification of wide modes.  Reject CONST_INTs in
10829         ZERO_EXTEND when their actual mode is not given.
10830
10831 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10832
10833         * c-decl.c (pushdecl): If no global declaration is found for an
10834         extern declaration in block scope, try a limbo one.
10835
10836 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10837
10838         PR c++/4401
10839         * c-common.c (pointer_int_sum): Moved from...
10840         * c-typeck.c (pointer_int_sum): ...here.
10841         * c-common.h (pointer_int_sum): Add prototype.
10842
10843 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10844
10845         PR c++/5713
10846         * c-decl.c (duplicate_decls): Return 0 if issued error about
10847         redeclaration.
10848
10849 2002-02-20  Roger Sayle  <roger@eyesopen.com>
10850             Jakub Jelinek  <jakub@redhat.com>
10851
10852         PR c/4389
10853         * tree.c (host_integerp): Ensure that the constant integer is
10854         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
10855         when pos is zero or non-zero respectively.  Clarify comment.
10856         * c-format.c (check_format_info_recurse): Fix host_integerp
10857         usage; the pos argument should be zero when assigning to a
10858         signed HOST_WIDE_INT.
10859
10860 2002-02-20  Richard Henderson  <rth@redhat.com>
10861
10862         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
10863         of the operand, rather than assuming TImode.
10864         (ix86_expand_binop_builtin): Cope with commutative patterns
10865         using nonimmediate_operand for both operands.
10866         (ix86_expand_timode_binop_builtin): Likewise.
10867         (ix86_expand_store_builtin): Validate operand 1.
10868         (ix86_expand_unop1_builtin): Likewise.
10869
10870 2002-02-20  Philip Blundell  <philb@gnu.org>
10871
10872         PR 5705
10873         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
10874
10875 2002-02-20  Richard Henderson  <rth@redhat.com>
10876
10877         PR c/5615
10878         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
10879
10880 2002-02-20  Tom Tromey  <tromey@redhat.com>
10881
10882         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10883         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10884         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10885         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10886         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
10887         unconditionally.
10888
10889 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
10890
10891         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
10892           for (const_int 0) in X not just INTVAL.
10893
10894 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
10895
10896         * doc/extend.texi: Avoid or reduce overfull hboxes.
10897
10898 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
10899
10900         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
10901         operations if the field does not start at a mode boundary.
10902
10903 2001-02-20      Joel Sherrill <joel@OARcorp.com>
10904
10905         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
10906         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
10907         Also done for -Acpu and -Amachine.
10908
10909 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10910
10911         * cppinit.c (init_dependency_output): Take deps output file
10912         from -o if none given with -MF.  Suppress normal output.
10913         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
10914         * doc/cpp.texi, doc/invoke.texi: Update.
10915
10916 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10917
10918         * toplev.c (output_quoted_string): Write unprintable
10919         characters with octal escapes.
10920
10921 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10922
10923         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
10924         really_call_used[VRSAVE_REGNO] if not Altivec.
10925
10926 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
10927
10928         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
10929         MODE_MASK.
10930         (constant_pool_expr_1): Fix formatting.
10931         (rs6000_legitimize_reload_address): Likewise.
10932
10933 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10934
10935         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
10936         now that we have one.
10937
10938 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10939
10940         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
10941         end of first block of bitfields (which was only seven bits);
10942         rename dummy to unused_1; remove comment which is no longer true.
10943
10944 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10945
10946         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
10947
10948 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10949
10950         PR 5399
10951         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
10952         if generating PIC.
10953
10954         PR 5054
10955         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
10956         arm_is_longcall_p rather than inspecting call-type cookie
10957         directly.
10958         (call_value_insn) [TARGET_THUMB]: Likewise.
10959
10960 2002-02-19  Graham Stott  <grahams@redhat.com>
10961
10962         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
10963
10964 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10965
10966         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
10967         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
10968         (FP_SAVE_INLINE): Delete.
10969
10970         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
10971         * config/rs6000/eabi.asm: Remove ABI save restore routines.
10972         * config/rs6000/t-ppccomm: Build crtsavres.o.
10973         * config/rs6000/crtsavres.asm: New file.
10974
10975 2002-02-19  Philip Blundell  <philb@gnu.org>
10976
10977         * config/arm/arm.c (use_return_insn): Don't reject interrupt
10978         functions.
10979         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
10980         (output_return_instruction): Allow interrupt functions to return with
10981         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
10982         (arm_expand_prologue): Subtract 4 before stacking LR in an
10983         interrupt function.
10984
10985 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10986
10987         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
10988         decl, not just FUNCTION_DECL.
10989         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
10990         (arm_assemble_integer): Likewise.
10991         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
10992         marked local.
10993
10994 2002-02-19  matthew green  <mrg@eterna.com.au>
10995
10996         * config.gcc (sparc-*-netbsdelf*): Enable target.
10997         (sparc64-*-netbsd*): New target.
10998         * config/sparc/netbsd-elf.h: New file.
10999         * config/sparc/t-netbsd64: New file.
11000
11001 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11002
11003         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
11004
11005 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
11006
11007         * doc/invoke.texi: explicitly list the style guidelines that
11008         -Weffc++ checks for.
11009
11010 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
11011
11012         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
11013
11014 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11015
11016         PR other/5718
11017         * gcc.c (cpp_unique_options): Treat -o as indicating object file
11018         only if not -E.  If -E, pass -o through to the preprocessor.
11019
11020 2002-02-19  Kazu Hirata  <kazu@hxi.com>
11021
11022         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
11023         register number with an appropriate macro.
11024
11025 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11026
11027         * doc/rtl.texi (Constants): Close @code tag.
11028
11029 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
11030
11031         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
11032         ("mmx_uavgv4hi3"): Same.
11033         ("pmulhrwv4hi3"): Same.
11034
11035         * tree-inline.c (walk_tree): Handle vectors.
11036
11037         * c-common.c (constant_expression_warning): Handle vectors.
11038         (overflow_warning): Same.
11039
11040         * sched-deps.c (sched_analyze_2): Handle vectors.
11041
11042         * rtlanal.c (rtx_unstable_p): Handle vectors.
11043         (rtx_varies_p): Same.
11044         (count_occurrences): Same.
11045         (regs_set_between_p): Same.
11046         (modified_between_p): Same.
11047         (modified_in_p): Same.
11048         (volatile_insn_p): Same.
11049         (volatile_refs_p): Same.
11050         (side_effects_p): Same.
11051         (may_trap_p): Same.
11052         (inequality_comparisons_p): Same.
11053         (replace_regs): Same.
11054         (computed_jump_p_1): Same.
11055
11056         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
11057         argument.
11058         (inner_mode_array): New.
11059         (copy_rtx): Handle vectors.
11060         (copy_most_rtx): Same.
11061         (rtx_equal_p): Same.
11062         (get_mode_alignment): Adjust for vectors.
11063
11064         * resource.c (mark_referenced_resources): Handle vectors.
11065         (mark_set_resources): Same.
11066
11067         * reload1.c (eliminate_regs): Handle vectors.
11068         (elimination_effects): Same.
11069         (scan_paradoxical_subregs): Same.
11070
11071         * reload.c (subst_reg_equivs): Handle vectors.
11072
11073         * regrename.c (scan_rtx): Handle vectors.
11074
11075         * regclass.c (reg_scan_mark_refs): Handle vectors.
11076
11077         * recog.c (find_single_use_1): Handle vectors.
11078
11079         * local-alloc.c (equiv_init_varies_p): Handle vectors.
11080         (contains_replace_regs): Same.
11081         (memref_referenced_p): Same.
11082
11083         * integrate.c (copy_rtx_and_substitute): Handle vectors.
11084         (subst_constants): Same.
11085
11086         * genattrtab.c (attr_copy_rtx): Handle vectors.
11087         (encode_units_mask): Same.
11088         (clear_struct_flag): Same.
11089         (count_sub_rtxs): Same.
11090
11091         * gcse.c (want_to_gcse_p): Handle vectors.
11092         (oprs_unchanged_p): Same.
11093         (hash_expr_1): Same.
11094         (oprs_not_set_p): Same.
11095         (expr_killed_p): Same.
11096         (compute_transp): Same.
11097         (store_ops_ok): Same.
11098
11099         * function.c (purge_addressof_1): Do not allow paradoxical subregs
11100         of vectors.
11101         (fixup_var_refs_1): Same.
11102         (instantiate_virtual_regs_1): Same.
11103
11104         * fold-const.c (operand_equal_p): Handle vectors.
11105         (fold): Same.
11106         (rtl_expr_nonnegative_p): Same.
11107
11108         * flow.c (mark_used_regs): Handle vectors.
11109
11110         * df.c (df_uses_record): Handle vectors.
11111
11112         * cselib.c (cselib_subst_to_values): Handle vectors.
11113         (cselib_mem_conflict_p): Same.
11114         (hash_rtx): Same.
11115
11116         * cse.c (canon_reg): Handle vectors.
11117         (fold_rt): Same.
11118         (cse_process_notes): Same.
11119         (count_reg_usage): Same.
11120         (canon_hash): Same.
11121
11122         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
11123
11124         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
11125
11126         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
11127         (gen_rtx): Handle CONST_VECTOR.
11128         (gen_const_vector_0): New.
11129         (copy_rtx_if_shared): CONST_VECTORs can be shared.
11130         (reset_used_flags): Same.
11131         (copy_insn_1): Same.
11132         (initializer_constant_valid_p): Handle VECTOR_CST.
11133
11134         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
11135
11136         * doc/rtl.texi (Constants): Document const_vector.
11137         (CONST0_RTX): Update for vectors.
11138         (RTL sharing): Same.
11139
11140         * print-tree.c (print_node): Add case for VECTOR_CST.
11141
11142         * tree.h (TREE_VECTOR_CST_ELTS): New.
11143         (struct tree_vector): New.
11144         (union tree_node): Add vector node.
11145         (build_vector): Add prototype.
11146
11147         * tree.def (VECTOR_CST): New.
11148
11149         * tree.c (build_vector): New.
11150
11151         * expmed.c (make_tree): Handle CONST_VECTOR.
11152
11153         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
11154         (CONST_VECTOR_ELT): New.
11155         (CONST_VECTOR_NUNITS): New.
11156
11157         * machmode.h (GET_MODE_INNER): New.
11158         (DEF_MACHMODE): Accept 8th arg.
11159
11160         * machmode.def: Add 8th argument for vector inner mode.
11161         Add inner vector modes for vectors.
11162
11163         * rtl.def (VEC_CONST): Remove.
11164         (CONST_VECTOR): New.
11165
11166         * expr.c (clear_storage): Allow vectors.
11167         (is_zeros_p): Handle VECTOR_CST.
11168
11169         * varasm.c (output_constant_pool): Handle vectors.
11170         (rtx_const): Add veclo and vechi fields.
11171         (kind): Add RTX_VECTOR.
11172         (decode_rtx_const): Add case for vector.
11173
11174         * config/rs6000/rs6000-protos.h: Add zero_constant.
11175
11176         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
11177         constants.  Force easy vector constants into memory.
11178         (easy_vector_constant): New.
11179         (emit_easy_vector_constant): New.
11180         (rs6000_legitimize_reload_address): Do not generate bad reloads on
11181         darwin.
11182
11183         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
11184         instruction does.
11185         ("altivec_lvxl"): Same.
11186         (altivec_lvebx): Same.
11187         (altivec_lvehx): Same.
11188         (altivec_lvewx): Same.
11189         ("*movv4si_const0"): New.
11190         ("*movv4sf_const0"): New.
11191         ("*movv8hi_const0"): New.
11192         ("*movv16qi_const0"): New.
11193
11194 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11195
11196         * config/h8300/h8300.c (notice_update_cc): Use
11197         cc_status.value2.
11198
11199 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11200
11201         * config/h8300/h8300.md (divmod patterns): Change the
11202         constraints for operands[1] to register_operand.
11203
11204 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11205
11206         * config/h8300/h8300-protos.h: Remove the prototype for
11207         p_operand.
11208         * config/h8300/h8300.c (p_operand): Remove.
11209         * config/h8300/h8300.md: Replace p_operand with
11210         const_int_operand.
11211
11212 2002-02-18 Philip Blundell <pb@nexus.co.uk>
11213
11214         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
11215         comment.
11216         (output_return_instruction): Allow use of LDR to unstack
11217         return addresss even for interrupt handlers or when
11218         interworking.  If compiling for ARMv5, use interworking-safe
11219         return instructions by default.  Remove duplicated code and
11220         lengthy "strcat" sequences.
11221
11222 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11223
11224         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
11225         (LINK_EH_SPEC): Define.
11226         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
11227
11228 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11229
11230         * config/s390/s390.c (s390_emit_prologue): Do not set the
11231         frame_related flag for call-clobbered registers.
11232
11233 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11234
11235         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
11236         (construct_container): Fix handling of SSE operands.
11237         (ix86_expand_builtin): Fix handling of 64bit pointers.
11238         (mmx_maskmovq_rex): New pattern.
11239
11240 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11241
11242         * regrename.c (kill_set_value): Handle subregs properly.
11243
11244 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
11245
11246         * objc/objc-act.c (handle_impent): Remove leading '*'
11247         from objc_class_name.
11248
11249 2002-02-17  Richard Henderson  <rth@redhat.com>
11250
11251         * config/alpha/alpha.c (some_small_symbolic_operand,
11252         some_small_symbolic_operand_1, split_small_symbolic_operand,
11253         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
11254         Handle small SYMBOL_REFs anywhere, not just inside memories.
11255         * config/alpha/alpha-protos.h: Update.
11256         * config/alpha/alpha.h (PREDICATE_CODES): Update.
11257         * config/alpha/alpha.md (small symbolic operand splitter): Update.
11258
11259 2002-02-17  Roland McGrath  <roland@frob.com>
11260
11261         * config.gcc (powerpc-*-gnu-gnualtivec*,
11262         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
11263         * config/rs6000/gnu.h: New file.
11264         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
11265         Grok "gnu" in rs6000_abi_name.
11266         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
11267         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
11268         Grok -mcall-gnu analogous to -mcall-linux et al.
11269         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11270         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
11271         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
11272
11273 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
11274
11275         PR c/3444:
11276         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
11277         shortening.
11278
11279 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11280
11281         * config/cris/cris.h: Undefine STARTFILE_SPEC and
11282         ENDFILE_SPEC before (re)defining them.
11283
11284 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11285
11286         * config/h8300/h8300.c: Fix formatting.
11287         * config/h8300/h8300.h: Likewise.
11288
11289 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11290
11291         * doc/tm.texi: Explain why empty strings should not be
11292         marked for translation.
11293
11294 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11295
11296         * final.c (output_operand_lossage): Changed to accept
11297         printf style arguments. Change calls where necessary.
11298         * output.h (output_operand_lossage): Change declaration
11299         accordingly. Update copyright.
11300         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
11301         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
11302         Update copyright date where necessary.
11303
11304         * config/i386/i386.c (print_operand): Likewise. Remove use of
11305         sprintf.
11306
11307         * config/cris/cris.c (cris_operand_lossage): Likewise.
11308         Rename parameter so that exgettext recognizes it as
11309         translatable message.
11310         (LOSE_AND_RETURN): Rename parameter to msgid.
11311
11312 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11313
11314         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
11315         hard coded register number with an appropriate macro.
11316         (HARD_REGNO_MODE_OK): Likewise.
11317         (ARG_POINTER_REGNUM): Likewise.
11318         (STATIC_CHAIN_REGNUM): Likewise.
11319         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
11320         * config/h8300/h8300.md (define_constants): Define more
11321         register numbers.
11322
11323 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11324
11325         * config/i386/i386.h: Don't mark empty strings for translation.
11326
11327 2002-02-16  H.J. Lu <hjl@gnu.org>
11328
11329         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
11330
11331 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
11332
11333         * cppinit.c (merge_include_chains): Check for brack being
11334         NULL before attempting to merge it with qtail.
11335
11336 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
11337
11338         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
11339         DBX_DEBUG.
11340
11341 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11342
11343         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
11344
11345 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11346
11347         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
11348         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
11349         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
11350
11351 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11352
11353         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
11354         now only if !TARGET_FIX.
11355         (*movsi_nt_vms_fix): New pattern.
11356
11357 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
11358
11359         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
11360         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
11361         (alpha_sa_mask, alpha_sa_size): Reflect above change.
11362         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
11363         (alpha_start_function, alpha_expand_epilogue): Likewise.
11364         (unicosmk_gen_dsib): Likewise.
11365
11366 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11367
11368         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
11369
11370 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
11371
11372         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
11373         check_and_change_labels, s390_final_chunkify): Delete.
11374         (s390_split_branches, s390_chunkify_pool): New functions.
11375         (s390_function_prologue): Call them.
11376
11377         * config/s390/s390.h (S390_REL_MAX): Delete.
11378         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
11379
11380         * config/s390/s390.md (cjump, icjump, jump): Fix length
11381         attribute calculation.
11382
11383
11384 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
11385
11386         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
11387         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
11388
11389 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11390
11391         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
11392         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
11393         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
11394
11395 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
11396
11397         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
11398
11399 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
11400
11401         * reload.c (find_dummy_reload): Check that an output register
11402         is valid for its mode.
11403
11404 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
11405
11406         * combine.c (known_cond): After replacing the REG of a SUBREG, try
11407         to simplify it.
11408
11409         * function.c (assign_parms): Demote promoted argument passed by
11410         transparent reference.
11411
11412 2001-02-14      Joel Sherrill <joel@OARcorp.com>
11413
11414         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
11415         -Acpu() and -Amachine() to eliminate warnings.
11416
11417 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
11418
11419         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
11420
11421 2002-02-14  Kazu Hirata  <kazu@hxi.com>
11422
11423         * config/h8300/h8300-protos.h: Update the prototype for
11424         const_costs.
11425         * config/h8300/h8300.c (const_costs): Treat SET as a little
11426         more expensive operation.
11427         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
11428         reference to const_costs.
11429
11430 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
11431
11432         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
11433
11434 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
11435
11436         PR c/5503:
11437         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
11438         use arguments from newtype.
11439
11440 2002-02-13  Eric Christopher  <echristo@redhat.com>
11441
11442         * config/mips/mips.c (override_options): Add check for march/mipsX
11443         on the same command line. Fix error message in cpu processing.
11444         Remove architecture and ISA checks.
11445
11446 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
11447
11448         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
11449
11450         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
11451
11452 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
11453
11454         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
11455         alternatives.
11456         ("*movv8hi_internal1"): Same.
11457         ("*movv16qi_internal1"): Same.
11458         ("*movv4sf_internal1"): Same.
11459
11460         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
11461         not push_reload for altivec modes.
11462
11463 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
11464
11465         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
11466         all RTEMS targets including removal of #includes from config/*/rtems*.h
11467         file and adding them to tm_file setting. Added xm_defines=POSIX to
11468         many targets.
11469         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
11470         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
11471         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
11472         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
11473         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
11474         config/m68k/rtemself.h: Ditto.
11475         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
11476         config/mips/rtems64.h: Ditto.
11477         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
11478         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
11479         Ditto.
11480         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
11481         config/sparc/rtemself.h: Ditto.
11482         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
11483         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
11484         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
11485         more like arm-elf.
11486         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
11487         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
11488         target made more similar to i386-elf.
11489         * config/i386/t-rtems-i386: Added soft float support and multilibs.
11490         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
11491         be similar to config/m68k/t-m68kelf.
11492         * gthr-rtems.h: Encapsulate with extern "C" for C++.
11493
11494 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
11495
11496         * regmove.c (kill_value): Handle subregs.
11497
11498 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11499
11500         * i386.md (mul patterns): Allow memory operand to be first;
11501         add expanders where needed; fix constraints.
11502         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
11503         Allow memory operand to be the first.
11504
11505         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
11506         operands.
11507
11508 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11509
11510         PR c/5681:
11511         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
11512         GET_MODE (x).
11513
11514 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11515
11516         PR optimization/5547:
11517         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
11518         all valid IA-32 address modes involving non-scaled %ebx and
11519         GOT/GOTOFF as displacement.
11520
11521 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11522
11523         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
11524         after emitting ltorg insns.
11525
11526         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
11527         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
11528         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
11529         *abssf2): Fix "op_type" attribute.
11530
11531 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
11532
11533         * mkconfig.sh: Avoid using a subshell redirect.
11534         ($output.T): Change to $(output)T.
11535         (ENABLE_NLS): Remove unneeded undef.
11536
11537         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
11538         * config/alpha/x-vms (libsubdir): Define.
11539
11540         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
11541         register frame procedures. Optimize retrieving context.
11542
11543         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
11544         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
11545         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
11546
11547 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11548
11549         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
11550         Make same change as for find_base_value.
11551
11552 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11553
11554         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
11555         of QImode and SImode.
11556
11557 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11558
11559         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
11560         length computation of movsi.
11561         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
11562
11563 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11564
11565         * config/h8300/h8300.md (subqi3): Tighten the predicate for
11566         operands[2] to register_operand.
11567
11568 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
11569
11570         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
11571
11572 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
11573
11574         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
11575         for altivec_lvx* and altivec_stvx*.
11576         ("*movv4si_internal"): Add constraint for loading from GPRs.
11577         ("*movv8hi_internal1"): Same.
11578         ("*movv16qi_internal1"): Same.
11579         ("*movv4sf_internal1"): Same.
11580
11581         * config/rs6000/rs6000.c (altivec_register_operand): New.
11582
11583         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11584         altivec_register_operand.
11585
11586 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
11587
11588         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
11589         handle SYMBOL_REF.
11590
11591 2002-02-13  Stan Shebs  <shebs@apple.com>
11592
11593         * c-typeck.c (digest_init): Handle vectors.
11594         (really_start_incremental_init): Same.
11595         (pop_init_level): Same.
11596         (process_init_element): Same.
11597
11598         * varasm.c (output_constant): Same.
11599
11600         * expr.c (clear_storage): Same.
11601         (store_constructor): Same.
11602
11603 2002-02-12  Eric Christopher  <echristo@redhat.com>
11604
11605         * explow.c (hard_function_value): Add comment explaining
11606         signed/unsigned comparison.
11607
11608 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
11609
11610         * jump.c (never_reached_warning): Add finish argument.
11611         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
11612         real insn after end.
11613         * rtl.h (never_reached_warning): Adjust prototype.
11614         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
11615         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
11616         never_reached_warning.
11617
11618 2002-02-12  Graham Stott  <grahams@redhat.com>
11619
11620         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
11621
11622 2002-02-12  Kazu Hirata  <kazu@hxi.com>
11623
11624         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
11625         logical shifts on H8/300.
11626         (shift_alg_si): Improve several shifts on H8/300.
11627         (get_shift_alg): Likewise.
11628
11629 2002-02-12  Graham Stott  <grahams@redhat.com>
11630
11631         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
11632
11633 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11634
11635         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
11636         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
11637
11638 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
11639
11640         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
11641         non-CONST_INT through default_assemble_integer.
11642         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
11643         <case 8>: Abort for CONST_DOUBLE.
11644
11645 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11646
11647         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
11648         is specified.
11649         * config/pa/pa-linux.h (LIB_SPEC): Delete.
11650         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11651
11652 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
11653
11654         * config/stormy16/stormy16.md (zero_extendqihi2): New.
11655
11656 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
11657
11658         * regrename.c (regrename_optimize): Don't accept a
11659         part-clobbered register if the replaced register is not part
11660         clobbered.
11661
11662         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
11663         take padding into account when computing the argument value.
11664
11665         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
11666
11667         * combine.c (try_combine): Apply substitutions in
11668         CALL_INSN_FUNCTION_USAGE too.
11669
11670 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
11671
11672         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
11673         __builtin_altivec_abs*.
11674         (bdesc_abs): New.
11675
11676         * config/rs6000/rs6000.h (rs6000_builtins): Add
11677         ALTIVEC_BUILTIN_ABS*.
11678
11679         * config/rs6000/altivec.h: Use const char for builtins expecting
11680         literals.
11681         (vec_abs): New versions for C and C++.
11682         (vec_abss): Same.
11683
11684 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11685
11686         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
11687         using Pmode.
11688
11689 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11690
11691         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
11692         constant definition from h8300.md.
11693         (FRAME_POINTER_REGNUM): Likewise.
11694         * config/h8300/h8300.md (define_constants): Add FP_REG.
11695
11696 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11697
11698         * config/h8300/h8300.c (print_operand): Remove redundant code.
11699
11700 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11701
11702         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
11703         * config/h8300/h8300.c (byte_reg): Make it static.
11704
11705 2002-02-10  Richard Henderson  <rth@redhat.com>
11706
11707         PR c/5623
11708         * c-typeck.c (incomplete_type_error): Handle flexible array members.
11709
11710 2002-02-10  Richard Henderson  <rth@redhat.com>
11711
11712         PR c++/5624
11713         * tree.c (append_random_chars): Don't abort if main_input_filename
11714         does not exist.
11715
11716 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
11717
11718         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
11719
11720 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11721
11722         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
11723         (pushhi1): Likewise.
11724
11725 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11726
11727         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
11728         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
11729
11730 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
11731
11732         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
11733         remove MASK_VIS.
11734         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
11735
11736 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11737
11738         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
11739         a half of an SImode register on H8/300.
11740
11741 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
11742
11743         * i386.md (movdi_2): Add missing '!'.
11744
11745 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11746
11747         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
11748         definitions.
11749
11750 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11751
11752         * config/h8300/h8300.md (length): Correct the distance valid
11753         for the short branch.
11754
11755 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11756
11757         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
11758
11759 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11760
11761         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
11762         registers in SImode.
11763         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
11764         part-clobbered.
11765
11766         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
11767         patch.
11768
11769         Contribute sh64-elf.
11770         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11771         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
11772         (sh_cannot_modify_jumps_p): New function.
11773         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11774         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
11775         (sh_ms_bitfield_layout_p): New function.
11776         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
11777                     Zack Weinberg  <zack@codesourcery.com>
11778         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
11779         expand_simple_binop instead of expand_binop.
11780         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
11781         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
11782         use of .quad and .uaquad.
11783         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
11784         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
11785         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11786         * config/sh/sh.md (movdi_const, movdi_const_32bit,
11787         movdi_const_16bit): Make sure all CONSTs have modes.
11788         (sym2PIC): Ditto, but by adjusting all callers.
11789         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
11790         if the prologue calls the SHmedia argument decoder or register
11791         saver.
11792         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11793         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
11794         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
11795         (sh_expand_epilogue): Don't emit USE of return target register.
11796         (prepare_move_operands): Legitimize DImode PIC addresses.
11797         (sh_media_register_for_return): Skip tr0, used to initialize the
11798         PIC register.
11799         (sh_expand_prologue): Remove explicit USE of return register.
11800         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
11801         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
11802         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
11803         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
11804         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
11805         EXTRA_CONSTRAINT_T.
11806         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
11807         (MOVI_SHORI_BASE_OPERAND_P): New.
11808         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
11809         (EXTRA_CONSTRAINT_T): Define in terms of them.
11810         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
11811         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
11812         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
11813         alternatives supporting TARGET_REGS.
11814         (UNSPEC_GOTPLT): New constant.
11815         (movdi split): Move incrementing of LABEL_NUSES...
11816         (movdi_const, movdi_const_32bit): Here.  Use
11817         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
11818         (movdi_const_16bit): New.
11819         (call, call_value) [flag_pic]: Use GOTPLT.
11820         (call_pop, call_value_pop): New expands.
11821         (call_pop_compact, call_pop_rettramp): New insns.
11822         (call_value_pop_compact, call_value_pop_rettramp): New insns.
11823         (sibcall) [flag_pic]: Use GOT.
11824         (builtint_setjmp_receiver): Remove bogus, unused expand.
11825         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
11826         (*pt, *ptb, ptrel): New insns.
11827         (sym2GOT): Handle DImode GOT.
11828         (sym2GOTPLT, symGOTPLT2reg): New expands.
11829         (sym2PIC): New expand.
11830         (shcompact_return_tramp): Use GOTPLT to return trampoline.
11831         (shcompact_return_tramp_i): Use return register explicitly.
11832         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
11833         disable flag_reorder_blocks.
11834         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
11835         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
11836         clobbers, for clarity.
11837         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
11838         restoring of r0 in macl as MAYBE_DEAD.
11839         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
11840         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
11841         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
11842         alter_subreg all over.
11843         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
11844         reload, instead of emitting instructions that would require
11845         reloading.
11846         (casesi_load_media): Add missing modes.
11847         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
11848         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
11849         as used if the argument decoder is called.
11850         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11851         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
11852         Pmode, then extend it to DImode if necessary.
11853         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11854         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
11855         constants in FPU-enabled SHmedia, let them be loaded from memory.
11856         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11857         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
11858         Adjust whitespace in assembly output templates.
11859         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11860         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
11861         mode of if_then_else.
11862         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
11863         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
11864         sh.h.
11865         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
11866                     Joern Rennecke <amylaar@redhat.com>
11867         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
11868         (SUBTARGET_CPP_PTR_SPEC): New.
11869         (SUBTARGET_CPP_SPEC): Remove.
11870         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11871         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11872         Fix typo in previous checkin.
11873         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
11874         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
11875         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
11876                     Alexandre Oliva  <aoliva@redhat.com>
11877         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
11878         what single FP register can hold for SHmedia target.
11879         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11880                     Alexandre Oliva  <aoliva@redhat.com>
11881         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11882         Do not split into SUBREG.
11883         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
11884         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
11885         and added new functions as specified in SH5 ABI r9.
11886         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
11887         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
11888         8-byte boundary.
11889         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
11890         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
11891         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
11892         and consttable_window_ends.
11893         2001-06-03  Graham Stott  <grahams@redhat,com>
11894         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
11895         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
11896         * config/sh/sh.c (print_operand): Handle floating-point pair,
11897         vector and matrix registers.
11898         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
11899         vector modes into account.
11900         * config/sh/sh.md (movv2sf): Split move between registers into
11901         movdf.
11902         (movv4sf, movv16sf): Introduce insns that get split only after
11903         reload.
11904         * config/sh/shmedia.h: Fix Copyright dates.
11905         * config/sh/ushmedia.h: Likewise.  Move loop counter
11906         declarations into conditionals that uses them.
11907         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
11908         loop boundary.
11909         * config/sh/sshmedia.h: Fix Copyright dates.
11910         (sh_media_PUTCFG): Fix constraints.
11911         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
11912         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
11913         ptrmemfunc_vbit_in_delta for SH5.
11914         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
11915         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
11916         * invoke.texi: Likewise.
11917         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
11918         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
11919         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
11920         GCC_pop_shmedia_regs_nofpu): New global symbols.
11921         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
11922         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
11923         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
11924         compact function with nonlocal labels.
11925         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
11926         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
11927         (initial_elimination_offset): Account for their stack space.
11928         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
11929         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
11930         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
11931         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
11932         least one of the operands to be a register.
11933         (movv2sf): Likewise.  Renamed to movv2sf_i.
11934         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
11935         prepare_move_operands() before emitting SHmedia insns.
11936         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
11937         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
11938         Don't save nor initialize r12.  Don't mis-align the stack.
11939         Pad the code with a nop.
11940         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
11941         stack.
11942         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
11943         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
11944         [__SHMEDIA__]: Implement.
11945         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
11946         * config/sh/sh.md: Set latency of `pt' closer to reality.
11947         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
11948         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
11949         Set move, load and store type attributes.
11950         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
11951         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
11952         profiling.
11953         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
11954         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
11955         * config/sh/sh.c (sh_media_register_for_return): New function.
11956         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
11957         branch-target register.
11958         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
11959         * config/sh/sh.md (return_media_i): Use any call-clobbered
11960         branch-target register.
11961         (return_media): If r18 wasn't copied in the prologue, copy it
11962         here.
11963         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
11964         Clear class FP0_REGS.
11965         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
11966         from elf.h.
11967         2001-03-08  DJ Delorie  <dj@redhat.com>
11968         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
11969         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
11970         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
11971         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
11972         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
11973         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
11974         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
11975         return value correctly for call_cookie.
11976         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
11977         * config/sh/crt1.asm (start): Modified so as to call
11978         ___setup_argv_and_call_main.
11979         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
11980         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
11981         SHmedia mode.
11982         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
11983         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
11984         (STRIP_NAME_ENCODING): Use it.
11985         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
11986         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
11987         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
11988         prepare_scc_operands().
11989         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
11990         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
11991         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
11992         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
11993         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
11994         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
11995         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
11996         used in shcompact_incoming_args.
11997         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
11998         change.
11999         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
12000         mode.
12001         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
12002         Adjust accordingly.
12003         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12004         Simplify.  Adjust.  Add sanity check.
12005         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
12006         FPU_SINGLE_BIT.
12007         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
12008         TARGET_SHCOMPACT.
12009         (udivsi3, divsi3): Use them.
12010         (force_mode_for_call): New insn.
12011         (call, call_value, sibcall_value): Emit it before SHcompact
12012         calls.
12013         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
12014         * config/sh/sh.md (call, call_value, sibcall): Make sure the
12015         call cookie is non-NULL before taking its value.
12016         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
12017         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
12018         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
12019         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
12020         block.
12021         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
12022         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
12023         temporary for stack adjusts.  Use MACL and MACH to pass
12024         arguments to shcompact_incoming_args.
12025         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
12026         clobber r1.
12027         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
12028         (nested_trampoline): Load static chain address into r1.
12029         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
12030         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
12031         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
12032         fp_arith_reg_operand().
12033         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
12034         * config/sh/sh.md (casesi): Sign-extend the first two operands,
12035         and use signed compares for them.
12036         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
12037         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
12038         ones properly aligned.
12039         (find_barrier): Account for extra alignment needed for 8-byte wide
12040         constants.
12041         (machine_dependent_reorg): Require a label for the second 4-byte
12042         constant after an 8-byte one.
12043         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
12044         change.
12045         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12046         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
12047         last_float when switching float modes.
12048         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
12049         auto-increment for general-purpose registers.
12050         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
12051         result.
12052         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
12053         for stack adjust.
12054         * config/sh/sh.c (sh_builtin_saveregs): Support using all
12055         registers for varargs.
12056         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
12057         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
12058         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
12059         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
12060         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
12061         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
12062         call_cookie accordingly.
12063         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
12064         (SHCOMPACT_BYREF): Likewise.
12065         (SHCOMPACT_FORCE_ON_STACK): New macro.
12066         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
12067         (sh_builtin_saveregs): Likewise.
12068         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12069         shcompact_incoming_args): Use new shift values.  Support
12070         sequences of consecutive and non-consecutive pushes/pops.
12071         * config/sh/sh.md (return): Don't explicitly use PR_REG.
12072         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
12073         * config/sh/sh.h (TEXT_SECTION): Define.
12074         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
12075         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12076         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
12077         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
12078         return values on FPU-enabled SHmedia.
12079         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
12080         FPU-enabled SHmedia.
12081         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
12082         value is returned in a non-FP reg and is not returned by
12083         reference.
12084         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
12085         jump_ind.
12086         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
12087         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
12088         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
12089         quad-aligned to be passed by callee-copy reference.
12090         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
12091         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
12092         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
12093         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
12094         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
12095         copying low-numbered FP regs to r7 and r8.
12096         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
12097         FP regs to general-purpose regs only if the copy was passed on the
12098         stack.
12099         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
12100         copying FP reg to r9.
12101         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
12102         copy FP regs to general-purpose regs only in outgoing calls.
12103         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
12104         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
12105         HOST_WIDE_INT.
12106         * config/sh/sh.h (struct sh_args): Document all fields.
12107         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
12108         passed partially on the stack should not consider making
12109         sibcalls.
12110         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
12111         stack_regs only for incoming calls.  When passing FP args,
12112         make sure there are FP regs available before modifying
12113         call_cookie.
12114         (SHCOMPACT_BYREF): Pass double args in general-purpose
12115         registers by reference.
12116         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
12117         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
12118         attempt to generate sibcalls if the caller got any arguments
12119         by reference.
12120         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
12121         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
12122         to 8-byte boundaries.
12123         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
12124         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
12125         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
12126         stored in the stack.
12127         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
12128         for the offsets to have the ISA bit set.
12129         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
12130         invocation.  Use beq instead of bgt to mark end of sequence of
12131         loads.
12132         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
12133         bgt to mark end of sequence of stores.
12134         * config/sh/sh.c (arith_operand): Don't check whether
12135         CONST_OK_FOR_J for now.
12136         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
12137         instead of long for conversion.
12138         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
12139         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
12140         before passing it to fprintf.
12141         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
12142         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
12143         Call set_fpscr before reading/writing SR.
12144         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
12145         Call set_fpscr.
12146         * config/sh/lib1funcs.asm: Add `.align 2' directives before
12147         SHmedia code.
12148         (FMOVD_WORKS): Define on SH5 with FPU.
12149         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
12150         setting.
12151         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
12152         _fpscr_values.
12153         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
12154         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
12155         address.
12156         (ia_main_table): Ditto.
12157         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
12158         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
12159         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
12160         the definitions from sh.h.
12161         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
12162         TARGET_SH5.
12163         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
12164         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
12165         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12166         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
12167         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
12168         Increment LABEL_NUSES.
12169
12170         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
12171         TARGET_SH5.
12172         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
12173         defined.
12174         * config/sh/elf.h (SIZE_TYPE): Likewise.
12175         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12176         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12177         shcompact_incoming_args): Load switch table addresses using
12178         datalabel.
12179         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12180         (NO_BUILTIN_SIZE_TYPE): Define.
12181         (SIZE_TYPE): Don't define.
12182         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12183         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
12184         definition of __SH5__=32 for -m5-compact-nofpu.
12185         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
12186         ADDR_DIFF_VEC.
12187         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
12188         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
12189         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
12190         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
12191         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
12192         (INSN_LENGTH_ALIGNMENT): Likewise.
12193         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12194         * config/sh/sh.md (call, call_value, sibcall): Simplify
12195         copying of non-branch-target register.
12196         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12197         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
12198         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
12199         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12200         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
12201         floating-point values as structs.
12202         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
12203         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
12204         general-purpose register.
12205         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
12206         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12207         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
12208         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
12209         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
12210         (ENCODE_SECTION_INFO): Enclose variables and constants in
12211         DATALABEL unspecs.
12212         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
12213         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
12214         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
12215         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
12216         only for LABEL_REFs.  For SYMBOL_REFs, prepend
12217         SH_DATALABEL_ENCODING to the symbol name.
12218         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
12219         convert_mode().
12220         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12221         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
12222         UNSPEC_DATALABEL.
12223         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
12224         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
12225         (DATALABEL_REF_P): Don't require CONST.
12226         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
12227         REL label.
12228         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
12229         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
12230         right.
12231         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12232         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
12233         Use shallow_copy_rtx and PUT_MODE to change the mode of
12234         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
12235         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
12236         on SHmedia using GENERAL_REGs.
12237         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12238         bltu_media_i): Fix reversion of conditions.
12239         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12240         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
12241         * config/sh/sh.c (output_far_jump): Save r13 in macl.
12242         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
12243         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
12244         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
12245         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
12246         (GCC_nested_trampoline): Likewise.
12247         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
12248         * config/sh/sh.c (gen_datalabel_ref): Define.
12249         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
12250         (INITIALIZE_TRAMPOLINE): Likewise.
12251         (TRAMPOLINE_ADJUST_ADDRESS): Define.
12252         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
12253         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
12254         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
12255         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
12256         (ic_invalidate): Adjust for SH5.
12257         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
12258         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
12259         _nested_trampoline.
12260         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
12261         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
12262         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
12263         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12264         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
12265         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
12266         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12267         * config/sh/sh.c (target_reg_operand): Match only target-branch
12268         registers and pseudos that aren't virtual registers.
12269         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12270         Copy operands that don't match target_reg_operand to pseudos.
12271         (call_media, call_value_media, sibcall_media): Use
12272         target_reg_operand instead of target_operand.
12273         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
12274         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
12275         * config/sh/sh.c (target_reg_operand): Match hardware registers
12276         other than branch-target registers.
12277         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
12278         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
12279         (fpscr_values) [SH5 == 32]: Define.
12280         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
12281         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12282         Handle function addresses coming in SUBREGs.
12283         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
12284         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12285         shcompact_return_trampoline): Use datalabel where appropriate.
12286         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
12287         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
12288         general-purpose register to copy one branch-target register to
12289         another.
12290         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12291         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
12292         SYMBOL_REFs with VOIDmode.
12293         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12294         bltu_media_i): New insns.
12295         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12296         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
12297         (INIT_CUMULATIVE_ARGS): Likewise.
12298         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
12299         * machmode.def (V16SFmode): New mode.
12300         * c-common.c (type_for_mode): Support V2SF and V16SF.
12301         * tree.c (build_common_tree_nodes_2): Likewise.
12302         * tree.h (tree_index): Likewise.
12303         * calls.c (emit_call_1): Take args_so_far.  Adjust all
12304         callers.  Introduce CALL_POPS_ARGS.
12305         * tm.texi (CALL_POPS_ARGS): Document.
12306         * config/sh/crt1.asm: Implement in SHmedia mode.
12307         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
12308         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
12309         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
12310         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
12311         Implement divsi and udivsi in SHmedia mode.  Introduce
12312         SHcompact trampolines.
12313         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
12314         only in SHmedia64.
12315         (regno_reg_class): Rewrite.
12316         (fp_reg_names): Remove.
12317         (sh_register_names, sh_additional_register_names): New.
12318         (print_operand): Added `u'.  Support SUBREGs in addresses.
12319         Add parentheses around shifted CONSTs.
12320         (output_file_start): Output .mode and .abi directives.
12321         (shiftcosts, addsubcosts, multcosts): Adjust.
12322         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
12323         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
12324         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
12325         bytes, not registers.  Take into account the need for the
12326         SHcompact incoming args trampoline.  Adjust all callers.
12327         (sh_expand_prologue): Take stack_regs into account.  Call
12328         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
12329         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
12330         stack aligned as per SH5 ABI.
12331         (sh_builtin_saveregs): Support SH5 ABI.
12332         (sh_build_va_list, sh_va_start): Likewise.
12333         (initial_elimination_offset): Take alignment into account.
12334         Compute location of PR according to the SH5 stack frame.
12335         (arith_reg_operand): Reject branch-target registers.
12336         (shmedia_6bit_operand): New.
12337         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
12338         (target_reg_operand): Match DImode only.  Accept SUBREGs.
12339         (target_operand): New.
12340         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
12341         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
12342         SIBCALL_REGS for SHmedia.
12343         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
12344         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
12345         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
12346         (TARGET_SWITCHES): New SH5 flags.
12347         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
12348         VALID_REGISTER_P to disable unsupported registers.
12349         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
12350         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
12351         (FUNCTION_ARG_PADDING): Define.
12352         (FASTEST_ALIGNMENT): Adjust.
12353         (SH_REGISTER_NAMES_INITIALIZER): New.
12354         (sh_register_names): Declare.
12355         (DEBUG_REGISTER_NAMES): Define.
12356         (REGISTER_NAMES): Define based on sh_register_names.
12357         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
12358         (sh_additional_register_names): Declare.
12359         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
12360         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
12361         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
12362         (REGISTER_NATURAL_MODE): Define.
12363         (FIRST_PSEUDO_REGISTER): Adjust.
12364         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
12365         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
12366         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
12367         (VECTOR_MODE_SUPPORTED_P): Define.
12368         (REG_CLASS_CONTENTS): Adjust.
12369         (SMALL_REGISTER_CLASSES): Adjust.
12370         (REG_ALLOC_ORDER): Adjust.
12371         (INDEX_REG_CLASS): Adjust.
12372         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
12373         (CONST_OK_FOR_LETTER_P): Adjust.
12374         (PREFERRED_RELOAD_CLASS): Adjust.
12375         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
12376         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
12377         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
12378         (FIRST_FP_PARM_REG): Adjust.
12379         (CALL_POPS_ARGS): Define.
12380         (FUNCTION_ARG_REGNO_P): Adjust.
12381         (struct sh_args): New fields.
12382         (GET_SH_ARG_CLASS): Adjust.
12383         (INIT_CUMULATIVE_ARGS): Adjust.
12384         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
12385         (FUNCTION_ARG_ADVANCE): Adjust.
12386         (FUNCTION_ARG): Adjust.
12387         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
12388         (FUNCTION_ARG_CALLEE_COPIES): Define.
12389         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
12390         (STRICT_ARGUMENT_NAMING): Define.
12391         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
12392         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
12393         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
12394         (SETUP_INCOMING_VARARGS): Adjust.
12395         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
12396         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
12397         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
12398         (SUBREG_OK_FOR_INDEX_P): Adjust.
12399         (EXTRA_CONSTRAINT_S): Update.
12400         (EXTRA_CONSTRAINT_T): New.
12401         (EXTRA_CONSTRAINT): Adjust.
12402         (GO_IF_LEGITIMATE_INDEX): Adjust.
12403         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
12404         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
12405         (MOVE_MAX): Adjust.
12406         (MAX_MOVE_MAX): Define.
12407         (Pmode): Adjust.
12408         (CONST_COSTS): Adjust.
12409         (REGISTER_MOVE_COST): Adjust.
12410         (BRANCH_COST): Adjust.
12411         (TEXT_SECTION_ASM_OP): Adjust.
12412         (DBX_REGISTER_NUMBER): Adjust.
12413         (ASM_OUTPUT_DOUBLE_INT): New.
12414         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
12415         (PREDICATE_CODES): Adjust.
12416         (PROMOTE_MODE): Adjust.
12417         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
12418         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
12419         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
12420         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
12421         (DR0_REG, DR2_REG, DR4_REG): Renumber.
12422         (TR0_REG, TR1_REG, TR2_REG): New.
12423         (XD0_REG): Renumber.
12424         (UNSPEC_COMPACT_ARGS): New.
12425         (type): Added pt and ptabs.
12426         (length): Default to 4 on SHmedia.  Default pt length to 12
12427         and     20 on SHmedia32 and SHmedia64, respectively.
12428         (pt): New function unit.
12429         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
12430         Add whitespace between operands of SHmedia instructions.
12431         (movdicc): Fix.
12432         (adddi3_media, addsi3_media): Adjust constraints.
12433         (subsi3) [SHmedia]: Force operand 1 into a register.
12434         (udivsi3_i1_media, udivsi3_i4_media): New.
12435         (udivsi3): Support SHmedia.
12436         (divsi3_i1_media, divsi3_i4_media): New.
12437         (divsi3): Support SHmedia.
12438         (anddi3, iordi3, xordi3): Adjust constraints.
12439         (zero_extendhidi2, zero_extendqidi2): New.
12440         (extendsidi2, extendhidi2, extendqidi2): New.
12441         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
12442         (pop_e, pop_fpul, pop_4): Likewise.
12443         (movsi_media): Support FP and BT registers.
12444         (movsi_media_nofpu): New.  Adjust splits to DImode.
12445         (lduw, ldub): Renamed to zero_extend* above.
12446         (movqi_media): Fix typo.
12447         (movdi_media): Support FP and BT registers.
12448         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
12449         (movdi_const_32bit): New.
12450         (shori_media): Require immediate operand.  Use `u' for output.
12451         (movdf_media, movsf_media): Simplified.
12452         (movdf_media_nofpu, movsf_media_nofpu): New.
12453         (movdf, movsf): Adjust
12454         (movv2sf, movv2sf, movv16sf): New.
12455         (beq_media, beq_media_i): Adjust constraints.  Don't use
12456         scratch BT register.
12457         (bne_media, bne_media_i): Likewise.
12458         (bgt_media, bgt_media_i): Likewise.
12459         (bge_media, bge_media_i): Likewise.
12460         (bgtu_media, bgtu_media_i): Likewise.
12461         (bgeu_media, bgeu_media_i): Likewise.
12462         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
12463         bunordered): Emit jump insn.  Force operands to registers when
12464         needed.
12465         (jump_media, jump): Simplify.
12466         (call_compact, call_compact_rettramp): New.
12467         (call_value_compact, call_value_compact_rettramp): New.
12468         (call_media, call_value_media): Simplify.
12469         (sibcall_compact, sibcall_media): New.
12470         (call, call_value): Adjust for SHmedia and SHcompact.
12471         (sibcall, sibcall_value, untyped_call): Likewise.
12472         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
12473         (indirect_jump): Adjust for SHmedia.
12474         (casesi_jump_media): New.
12475         (nop): Re-enable for SHmedia.
12476         (call_site): Restrict to SH1.
12477         (casesi): Adjust for SHmedia.
12478         (casesi_shift_media, casesi_load_media): New.
12479         (return): Explicitly use PR register.  Call return trampoline
12480         on SHcompact.
12481         (return_i): Explicitly use PR register.
12482         (shcompact_return_tramp, shcompact_return_tramp_i): New.
12483         (return_media): Adjust.
12484         (shcompact_incoming_args): New.
12485         (epilogue): Adjust.
12486         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12487         (movstrsi): Disable on SH5.
12488         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
12489         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
12490         (subsf3, subsf3_media): Likewise.
12491         (mulsf3, mulsf3_media, mac_media): Likewise.
12492         (divsf3, divsf3_media): Likewise.
12493         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
12494         (floatsisf2, fux_truncsfsi2): Likewise.
12495         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
12496         constraints.
12497         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
12498         (cmpunsf_media, cmpsf): Likewise.
12499         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
12500         (abssf2, abssf2_media): Likewise.
12501         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
12502         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
12503         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
12504         (floatsidf2, fix_truncdfsi2): Likewise.
12505         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
12506         constraints.
12507         (cmpeqdf_media, cmpgtdf_media): Likewise.
12508         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
12509         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
12510         (absdf2, absdf2_media): Likewise.
12511         (extendsfdf2, extendsfdf2_media): Likewise.
12512         (truncsfdf2, truncsfdf2_media): Likewise.
12513         * config/sh/sh64.h: New file.
12514         * config/sh/t-sh64: New file.
12515         * config/sh/shmedia.h: New file.
12516         * config/sh/ushmedia.h: New file.
12517         * config/sh/sshmedia.h: New file.
12518         * configure.in: Added sh64-*-elf.
12519         * configure: Rebuilt.
12520         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
12521         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
12522         (reg_class_from_letter): Use `b' for TARGET_REGS.
12523         (print_operand): Support `%M', `%m', `AND' and
12524         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
12525         (andcosts): Adjust for SHmedia.
12526         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
12527         Likewise.
12528         (target_reg_operand): New function.
12529         * config/sh/sh-protos.h (target_reg_operand): Declare.
12530         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
12531         FP registers on SH5.
12532         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
12533         on SH4.
12534         (TARGET_REGISTER_P): New macro.
12535         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
12536         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
12537         (EXTRA_CONSTRAINT_S): New macro.
12538         (EXTRA_CONSTRAINT): Adjust.
12539         (FLOAT_TYPE_SIZE): Define to 32.
12540         (Pmode): DImode on SHmedia.
12541         (CONST_COSTS): Adjust for SHmedia literals.
12542         (PREDICATE_CODES): Added target_reg_operand.
12543         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
12544         * config/sh/sh.md: Remove all attrs from SHmedia insns.
12545         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
12546         (cmpdi): Accept SHmedia.
12547         (movdicc_false, movdicc_true): New insns.
12548         (movdicc): New expand.
12549         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
12550         no_new_pseudos.
12551         (addsi3_media): Match `S' constraint.
12552         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
12553         (negdi2): Expand for SHmedia.
12554         (one_cmpldi2): New expand.
12555         (zero_extendsidi2): Change from expand to insn.
12556         (extendsidi2): Add constraints.
12557         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
12558         LD/ST address.  Fix SI immediate loading split.
12559         (movhi_media, movqi_media, lduw, ldub): New insns.
12560         (movhi, movqi): Accept SHmedia.
12561         (shori_media, movdi_media): Relax input constraints.  Split
12562         symbolic constants.
12563         (movdf_media, movsf_media): New insn.  New split to movdi.
12564         (movdf, movsf): Match on SHmedia.
12565         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
12566         bgeu_media): New insns and splits.  New insns with `_i' suffix.
12567         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
12568         (bunordered): New expand.
12569         (jump_compact): Renamed from `jump'.
12570         (jump_media): New insn.
12571         (jump): New expand.
12572         (call_media, call_value_media): New insns.
12573         (call, call_value): Adjust.
12574         (indirect_jump_compact): Renamed from `indirect_jump'.
12575         (indirect_jump_media): New insn.
12576         (indirect_jump): New expand.
12577         (untyped_call, return): Accept SHmedia.
12578         (return_media): New insn.
12579         (prologue, epilogue, blockage): Accept SHmedia.
12580         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12581         (sunordered): New expand.
12582         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
12583         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
12584         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
12585         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
12586         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
12587         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
12588         abssf2_media): New insns.
12589         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
12590         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
12591         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
12592         floatdidf2, floatsidf2_media, fix_truncdfdi2,
12593         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
12594         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
12595         absdf2_media): New insns.
12596         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
12597         (extendsfdf2_media, truncdfsf2_media): New insns.
12598         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
12599         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
12600         * config/sh/sh.h (CONST_OK_FOR_J): Document.
12601         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
12602         * config/sh/sh.md (adddi3): New expand.
12603         (adddi3_media, adddi3z_media): New insns.
12604         (adddi3_compact): Renamed from adddi3.
12605         (addsi3_media): Use add.l r63 to add constant zero.
12606         (subdi3): New expand.
12607         (subdi3_media): New insn.
12608         (subdi3_compact): Renamed from subdi3.
12609         (mulsidi3): New expand.
12610         (mulsidi3_media): New insn.
12611         (mulsidi3_compact): Renamed from mulsidi3.
12612         (umulsidi3): New expand.
12613         (umulsidi3_media): New insn.
12614         (umulsidi3_compact): Renamed from umulsidi3.
12615         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
12616         (ashlsi3, ashrsi3, lshrsi3): Use them.
12617         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
12618         (ashldi3, ashrdi3, lshrdi3): Use them.
12619         (zero_extendsidi2): New expand.
12620         (extendsidi2): New insn.
12621         (movsi_media): New insn.  Split to movdi to load constants.
12622         (movsi): Enable for shmedia.
12623         (movdi_media): New insn.  Use shori_media to load wide constants.
12624         (short_media): New insn.
12625         (movdi): Enable for shmedia.
12626         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
12627         * config/sh/sh.h (CPP_SPEC): Added `m5'.
12628         (SUBTARGET_CPP_SPEC): Added `!m5'.
12629         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
12630         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
12631         to all other SH variants.
12632         (TARGET_DEFAULT): Set to SH1_BIT.
12633         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
12634         (BITS_PER_WORD): Raise to 64 on shmedia.
12635         (MAX_BITS_PER_WORD): Change to 64.
12636         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
12637         (INT_TYPE_SIZE): Keep as 32.
12638         (UNITS_PER_WORD): Raise to 8 on shmedia.
12639         (MIN_UNITS_PER_WORD): Keep as 4.
12640         (POINTER_SIZE): Raise to 64 on shmedia.
12641         (CONST_OK_FOR_J): New macro.
12642         (CONST_OK_FOR_LETTER_P): Use it.
12643         (processor_type): Add PROCESSOR_SH5.
12644         * config/sh/sh.md: Conditionalize all expands, insns and
12645         splits to TARGET_SH1.
12646         (cpu): Added sh5.
12647         (addsi3_compact): Renamed from...
12648         (addsi3): Now an expand.
12649         (addsi3_media, subsi3_media): New insns.
12650         (subsi3): Don't negate constants with SHmedia.
12651
12652         * hooks.c: New file.
12653         * hooks.h: New file.
12654         * Makefile.in (HOOKS_H): New.
12655         (TARGET_DEF_H): Added $(HOOKS_H).
12656         (OBJS): Added hooks.o.
12657         (cfgcleanup.o, bb-reorder.o): Added target.h.
12658         (hooks.o): Added dependencies.
12659         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
12660         (TARGET_INITIALIZER): this.
12661         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
12662         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
12663         * bb-reorder.c: Include target.h.
12664         (reorder_basic_blocks): Skip if cannot modify jumps.
12665         * cfgcleanup.c: Include target.h.
12666         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
12667
12668 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12669
12670         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12671         Protect jump delay slot instructions with .set noreorder and
12672         .set nomacro.
12673
12674 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12675
12676         * config/mips/mips.md (casesi_internal_di): Calculate
12677         the index into the target offset table correctly.
12678
12679 2002-02-08  Richard Henderson  <rth@redhat.com>
12680
12681         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
12682         * final.c (output_addr_const): Accept and discard SUBREG.
12683         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
12684         mark them unknown instead.
12685         (simplify_subtraction): Handle RTX_UNKNOWN.
12686         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
12687
12688 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
12689
12690         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
12691
12692 2002-02-08  Richard Henderson  <rth@redhat.com>
12693
12694         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
12695
12696 2002-02-08  Andreas Jaeger  <aj@suse.de>
12697
12698         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
12699         * config/i386/t-linux64: New file.
12700
12701 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
12702
12703         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
12704         * c-parse.in (compstmt): Clear last_expr_type.
12705
12706 2002-02-07  Richard Henderson  <rth@redhat.com>
12707
12708         * loop.c (strength_reduce): Sink final_value when not
12709         eliminating a biv.
12710
12711 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
12712
12713         * config/sparc/freebsd.h: Fix mismatched spec {.
12714
12715 2002-02-07  Richard Henderson  <rth@redhat.com>
12716
12717         * cfgrtl.c: Include recog.h and insn-config.h.
12718         (keep_with_call_p): Fix general_operand invocation.
12719         * Makefile.in (cfgrtl.o): Update dependencies.
12720
12721 2002-02-07  Kazu Hirata  <kazu@hxi.com>
12722
12723         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
12724         comment.  Accept HImode only if TARGET_H8300.
12725
12726 2002-02-07  Eric Christopher  <echristo@redhat.com>
12727
12728         * config/mips/crtn.asm: Cleanup #ifdefs.
12729
12730 2002-02-07  Eric Christopher  <echristo@redhat.com>
12731
12732         * config/mips/crti.asm: Add changes for mips16. mips16 uses
12733         register 7 as RA instead of $31.
12734         * config/mips/crtn.asm: Ditto.
12735         * config/mips/mips.c (mips_move_2words): Add case for
12736         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
12737         (compute_frame_size): Fix typo.
12738         (save_restore_insns): Ditto.  Make documentation about using
12739         register $7 as return register more precise.
12740         (mips_expand_epilogue): Fix comment. Add code to work around not
12741         being able to add to the stack pointer directly.
12742         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
12743         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
12744         epilogue.
12745
12746 2002-02-07  Tom Rix  <trix@redhat.com>
12747
12748         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
12749         immediates in ldu and stdu DS opcode field.
12750         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
12751         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
12752         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
12753
12754 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
12755
12756         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
12757         offset for stack bias.
12758
12759 2002-02-07  H.J. Lu <hjl@gnu.org>
12760
12761         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
12762
12763 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
12764
12765         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
12766
12767 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
12768
12769         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
12770         * i386.c (x86_order_regs_for_local_alloc): New global function.
12771         * i386.h (REG_ALLOC_ORDER): CLeanup.
12772         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
12773
12774 2002-02-07  Richard Henderson  <rth@redhat.com>
12775
12776         PR optimization/2463
12777         * alias.c (find_base_value): Recall base values for fixed hard regs.
12778         * loop.c (loop_regs_update): Don't use single_set on non-insns.
12779
12780 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
12781
12782         * config/mips/mips.md (define_delay) [mips16]: Adjust required
12783         length.
12784
12785 2002-02-06  Richard Henderson  <rth@redhat.com>
12786
12787         PR c/5609
12788         * stmt.c (resolve_operand_name_1): Take more care with mixed
12789         named and unnamed operands.
12790
12791 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
12792             Jan Hubicka  <jh@suse.cz>
12793
12794         * loop.c (remove_constant_addition): Avoid clobbering a shared
12795         CONST expression.
12796
12797 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12798
12799         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
12800         * config/s390/t-linux64: New file.
12801         * config/s390/libgcc-glibc.ver: New file.
12802
12803 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12804
12805         * config/s390/linux64.h: Delete file.
12806         * config/s390/s390x.h: New file.
12807         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
12808         as target header file.
12809         * config/s390/linux.h (TARGET_VERSION): Define depending on
12810         DEFAULT_TARGET_64BIT.
12811         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
12812         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
12813         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
12814         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
12815         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
12816         (EXTRA_SPEC): New define.
12817         * config/s390/s390.h (TARGET_VERSION): Define depending on
12818         DEFAULT_TARGET_64BIT.
12819         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
12820
12821 2002-02-06  Jason Merrill  <jason@redhat.com>
12822
12823         * c-decl.c (finish_function): Warn about a non-void function with
12824         no return statement and no abnormal exit.
12825         (current_function_returns_abnormally): New variable.
12826         (start_function): Clear it.
12827         (struct c_language_function): Add returns_abnormally.
12828         (push_c_function_context): Save it.
12829         (pop_c_function_context): Restore it.
12830         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
12831         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
12832         an explicit return type.
12833         * c-tree.h: Declare current_function_returns_abnormally.
12834         (C_FUNCTION_IMPLICIT_INT): New macro.
12835         * c-typeck.c (build_function_call): Set it.
12836         (c_expand_return): Set current_function_returns_value even if the
12837         value is erroneous.
12838
12839 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12840
12841         PR c/5420:
12842         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
12843         unsafe for reevaluation.
12844
12845 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12846
12847         PR c/5482:
12848         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
12849         EXPR_STMT, but COMPOUND_STMT, recurse into it.
12850
12851 2002-02-06  Richard Henderson  <rth@redhat.com>
12852
12853         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
12854         be a general_operand.  Dest for function value must be a pseudo.
12855
12856 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
12857
12858         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
12859         as SYMBOL_REFs from the constant pool.
12860
12861 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
12862
12863         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
12864         passed by invisible reference.
12865
12866 2002-02-05  Richard Henderson  <rth@redhat.com>
12867
12868         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
12869
12870 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
12871
12872         Implement using "base addresses" in insn operands as default.
12873         * config/mmix/mmix.c (mmix_conditional_register_usage): if
12874         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
12875         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
12876         used to read the rtx value.
12877         (mmix_target_asm_function_epilogue): Fix spacing.
12878         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
12879         (mmix_legitimate_address): Ditto.
12880         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
12881         should be loaded with a GETA insn.  Don't allocate needless extra
12882         char for nul termination and fix misleading comment.
12883         (mmix_print_operand_address): Handle constants if
12884         TARGET_BASE_ADDRESSES.
12885         (mmix_output_register_setting): Use base addressing if
12886         TARGET_BASE_ADDRESSES and the number of insns is 3.
12887         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
12888         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
12889         to use R as constraint, add LDA to match s.
12890         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
12891         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
12892         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
12893         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
12894         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
12895         order with other fixed registers.
12896         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
12897         other parameter/call-clobbered registers.
12898         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
12899         -mbase-addresses, -mno-base-addresses.
12900         (MMIX Options): Ditto.
12901
12902 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12903
12904         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
12905
12906 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
12907
12908         * config/rs6000/altivec.h: Change elem to _S_elem.
12909
12910 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12911
12912         * config/netbsd.h (WCHAR_TYPE): Define.
12913         (WCHAR_TYPE_SIZE): Ditto.
12914         (WINT_TYPE): Ditto.
12915         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
12916         (WCHAR_UNSIGNED): Ditto.
12917         (WCHAR_TYPE_SIZE): Ditto.
12918         (WINT_TYPE): Ditto.
12919         * config/arm/netbsd.h: Likewise.
12920         * config/i386/netbsd-elf.h: Likewise.
12921         * config/i386/netbsd.h: Likewise.
12922         * config/m68k/netbsd-elf.h: Likewise.
12923         * config/m68k/netbsd.h: Likewise.
12924         * config/ns32k/netbsd.h: Likewise.
12925         * config/sparc/netbsd.h: Likewise.
12926         * config/vax/netbsd.: Likewise.
12927
12928 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12929
12930         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
12931         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
12932         (TARGET_INITIALIZER): this.
12933         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
12934         (BITFIELD_NBYTES_LIMITED): Markup fix.
12935         * tree.h (default_ms_bitfield_layout_p): Declare.
12936         (record_layout_info): Added prev_field.
12937         * tree.c (default_ms_bitfield_layout_p): New fn.
12938         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
12939         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
12940         * stor-layout.c: Include target.h.
12941         (start_record_layout): Initialize prev_field.
12942         (place_field): Handle MS bit-field layout, and disregard
12943         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
12944         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
12945         * Makefile.in (stor-layout.o): Adjust dependencies.
12946
12947 2002-02-05  Jason Merrill  <jason@redhat.com>
12948
12949         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
12950
12951 2002-02-05  Andreas Jaeger  <aj@suse.de>
12952
12953         * crtstuff.c: Fix comments.
12954
12955 2002-02-05  Richard Henderson  <rth@redhat.com>
12956
12957         PR fortran/3393
12958         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
12959         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
12960
12961         PR fortran/3392
12962         * config/mips/mips.c (function_arg): Handle TImode.
12963         (function_arg_advance): Likewise.
12964
12965 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12966
12967         * config/rs6000/altivec.h (vec_step_help): Rename to
12968         __vec_step_help.
12969
12970 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12971
12972         * config/rs6000/altivec.h: Fix typos.
12973
12974 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12975
12976         * config/arm/netbsd.h: Correct a comment.
12977
12978 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12979
12980         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
12981         building void typed builtins.
12982
12983         * config/rs6000/altivec.h (vec_ld*): Fix typos.
12984         (vec_step): Implement for C++.
12985
12986 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12987
12988         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
12989
12990 2002-02-04  Richard Henderson  <rth@redhat.com>
12991
12992         * combine.c (nonzero_bits): Re-introduce special case for
12993         sp/fp/ap wrt REGNO_POINTER_ALIGN.
12994
12995 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12996
12997         * doc/extend.texi: Warn about unsupported usage of altivec
12998         builtins.
12999
13000         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
13001         (altivec_predicate_*): New.
13002
13003         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
13004         Add C++ version of vec_*() functions.
13005
13006         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
13007         (bdesc_2arg): Remove altivec predicates.
13008         (altivec_expand_builtin): Handle predicates.
13009         (altivec_init_builtins): Handle predicates.
13010         (altivec_expand_predicate_builtin): New.
13011
13012 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13013
13014         * pa.c (DO_FRAME_NOTES): Move forward.
13015         (store_reg): Revise handling of frame notes.
13016         (load_reg): Likewise.
13017         (set_reg_plus_d): Likewise.
13018         (hppa_expand_prologue): Likewise.
13019         (hppa_expand_epilogue): Likewise.
13020
13021 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13022
13023         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
13024
13025 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR c/4475, c++/3780:
13028         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
13029         * c-common.h (SWITCH_TYPE): Define.
13030         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
13031         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
13032         Rename spareness variable to sparseness.
13033         (expand_end_case_type): Renamed from expand_end_case, use orig_type
13034         if non-NULL instead of TREE_TYPE (orig_index).
13035         * tree.h (expand_end_case_type): Renamed from expand_end_case.
13036         (expand_end_case): Define using expand_end_case_type.
13037         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
13038         to expand_end_case_type.
13039         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
13040
13041 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13042
13043         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
13044         (BIGGEST_ALIGNMENT): Change to 128.
13045
13046 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13047
13048         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
13049
13050 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13051
13052         * pa.md (call_internal_reg_64bit): Remove unused variable.
13053
13054 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
13055
13056         * config/arm/arm.h (machine_function): Add uses_anonymous_args
13057         field.
13058         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
13059         * config/arm/arm.c (current_function_anonymous_args): Delete,
13060         replace uses with cfun->machine->uses_anonymous_args.
13061         (arm_reorg): Do not reset uses_anonymous_args.
13062
13063         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
13064         any geenral register.
13065
13066 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
13067
13068         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
13069         the entry block.
13070
13071 2002-02-04  Richard Henderson  <rth@redhat.com>
13072
13073         * combine.c (force_to_mode): Remove STACK_BIAS code.
13074         (nonzero_bits): Likewise.  Replace sp/fp special case with
13075         REGNO_POINTER_ALIGN.
13076
13077         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
13078         (HARD_FRAME_POINTER_REGNUM): New.
13079         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
13080         (FIXED_REGS, CALL_USED_REGS): Update.
13081         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
13082         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
13083         (HARD_REGNO_NREGS): Update for SFP.
13084         (STACK_POINTER_OFFSET): Include bias here ...
13085         (FIRST_PARM_OFFSET): ... not here.
13086         (STACK_BIAS): Remove.
13087         (INIT_EXPANDERS): New.
13088         (STARTING_FRAME_OFFSET): Do not include bias.
13089         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
13090         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
13091         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
13092         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
13093         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
13094         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
13095         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
13096         (MUST_SAVE_REGISTER): Likewise.
13097         (sparc_flat_function_prologue): Likewise.
13098         (sparc_flat_function_epilogue): Likewise.
13099         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
13100         (sparc_init_modes): SFP is GENERAL_REGS.
13101         (sparc_builtin_saveregs): SFP does not have bias applied.
13102
13103 2002-02-04  Richard Henderson  <rth@redhat.com>
13104
13105         * config/alpha/alpha.c (current_function_is_thunk): Don't check
13106         current_function_is_thunk.
13107         (alpha_sa_mask): Distinguish between current_function_is_thunk
13108         called from ASM_OUTPUT_MI_THUNK and not.
13109         (alpha_does_function_need_gp): Thunks always need gp.
13110         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13111         (alpha_output_mi_thunk_osf): New.
13112         * config/alpha/alpha-protos.h: Update.
13113         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
13114
13115 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
13116
13117         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
13118         function types, not when they're taken away.
13119
13120 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
13121
13122         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
13123         CODE_LABEL and jump table when replacing a table jump with a
13124         simple jump.
13125
13126 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13127
13128         * config/s390/s390-protos.h (legitimize_la_operand,
13129         s390_secondary_input_reload_class, s390_plus_operand,
13130         s390_expand_plus_operand): Add prototypes.
13131
13132         config/s390/s390.c (s390_secondary_input_reload_class,
13133         s390_plus_operand, s390_expand_plus_operand): New functions.
13134
13135         (struct s390_address): New member 'pointer'.
13136         (s390_decompose_address): Compute it.
13137         (legitimate_la_operand_p): Use it.
13138         (legitimize_la_operand): New function.
13139         (movti, movdi, movdf splitters): Call it.
13140
13141         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
13142         (PREDICATE_CODES): Add s390_plus_operand.
13143
13144         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
13145         (la_ccclobber): Allow GENERAL_REGS as output operand.
13146
13147         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
13148         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
13149         (*la_64, *la_31, reload_indi, reload_insi): ... these.
13150
13151 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13152
13153         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
13154         register names for regular asm () construct.
13155
13156 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13157
13158         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
13159         registers.
13160
13161 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13162
13163         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
13164         pat for recog.
13165
13166 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
13167
13168         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
13169         constant pool to be identical by string address and index.
13170
13171 2002-02-04  Anthony Green  <green@redhat.com>
13172
13173         * output.h (SECTION_OVERRIDE): Define.
13174         * varasm.c (named_section): Obey SECTION_OVERRIDE.
13175
13176 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13177
13178         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
13179         by existing arm*-*-netbsd* (a.out) target.
13180         (ns32k-*-netbsdelf*): Likewise.
13181         (sparc-*-netbsdelf*): Likewise.
13182         (vax-*-netbsdelf*): Likewise.
13183
13184 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
13185
13186         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
13187         headers and libobjc headers.
13188
13189 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
13190
13191         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
13192         (_mingw.h): Remove duplicate include.
13193
13194 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13195
13196         * config.gcc: Set cpu_type to m68k for 68010, as well.
13197         (m68010-*-netbsdelf*): New...
13198         (m68k*-*-netbsdelf*): ...targets.
13199         * config/m68k/netbsd-elf.h: New file.
13200
13201 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13202
13203         * config/h8300/h8300.c (hand_list): Move inside function_arg.
13204
13205 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13206
13207         * config/h8300/h8300.c (h8_push_ops): Move inside
13208         h8300_init_once.
13209         (h8_pop_ops): Likewise.
13210         (h8_move_ops): Likewise.
13211
13212 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13213
13214         * config/h8300/h8300.c (os_task): Make it static.
13215         (monitor): Likewise.
13216         (pragma_saveall): Likewise.
13217
13218 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
13219
13220         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
13221         constant is a valid sign-extension for Pmode.
13222
13223 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13224
13225         * config/h8300/h8300.c: Fix formatting.
13226
13227 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13228
13229         * config/h8300/h8300.md: Fix formatting.
13230
13231 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13232
13233         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
13234         predicates of operands[1].  Split the patterns for each
13235         processor variant.
13236
13237 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13238
13239         * config/h8300/h8300.md (xor patterns): Tighten the predicates
13240         of operands[1] to register_operand.
13241
13242 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13243
13244         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
13245         * cpphash.c (_cpp_init_hashtable): Similarly.
13246         * cppinit.c (cpp_create_reader): Default the signed_char flag.
13247         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
13248         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
13249         (cpp_handle_option): Handle the new options.
13250         * cpplex.c (cpp_interpret_charconst): Use new flag.
13251         * cpplib.h (struct cpp_options): New member signed_char.
13252         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
13253         (cpp_options): Handle -fsigned-char and -funsigned-char.
13254         (static_specs): Remove signed_char_spec.
13255         (do_spec1): Don't handle %c.
13256         * system.h: Poison SIGNED_CHAR_SPEC.
13257         * tradcif.y (yylex): Use flag_signed_char.
13258         * tradcpp.h (flag_signed_char): New.
13259         * tradcpp.c (flag_signed_char): New.
13260         (main): Handle new command-line options.
13261         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
13262 config:
13263         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
13264         * avr/avr.h: Remove old comments.
13265         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
13266         (CC1_SPEC): Pass -fsigned-char if -mic*.
13267         (SIGNED_CHAR_SPEC): Remove.
13268 doc:
13269         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
13270
13271 2002-02-01  Eric Christopher  <echristo@redhat.com>
13272
13273         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
13274         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
13275         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
13276         (ASM_OUTPUT_REG_POP): Ditto.
13277
13278 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13279
13280         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
13281         patch.
13282
13283 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13284
13285         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
13286
13287 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13288
13289         PR c/5304:
13290         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
13291         unconditionally.
13292
13293 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13294
13295         * cfganal.c: Include tm_p.h.
13296         (keep_with_call_p): Fix the test that determines if a register holds
13297         the return value of a call.
13298
13299 2002-02-01  DJ Delorie  <dj@redhat.com>
13300
13301         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
13302         we are given conflicting registers, switch to the other one we
13303         had allocated for us.
13304         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
13305         as TImode so we know when the "other" register is available.
13306
13307 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
13308
13309         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
13310         sparc/sparc_bi.h.
13311
13312 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13313
13314         * cfganal.c (keep_with_call_p): New function.
13315         (flow_call_edges_add): Prevent splitting a block between a call and
13316         a single-set instruction that should be kept in the same block.
13317
13318 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13319
13320         * doc/install.texi (avr): Update outdated URL.
13321
13322 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
13323
13324         * config/stormy16/stormy16.md (pushqi): New.
13325         (popqi): New.
13326         (pushhi): New.
13327         (pophi): New.
13328         (movhi): Remove stack operands.
13329         (movqi): Likewise.
13330         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
13331         nonimmediate_nonstack_operand.
13332         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
13333         New.
13334         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
13335         New.
13336
13337 2002-01-31  Jason Merrill  <jason@redhat.com>
13338
13339         * Makefile.in (c-parse.c): Handle .output file.
13340         * objc/Make-lang.in (objc-parse.c): Likewise.
13341
13342 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
13343
13344         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
13345         the -me[lb] option is given.  Don't output the default flag
13346         twice.
13347
13348 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
13349
13350         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
13351         the primary source file; this has not been done yet.
13352         * c-decl.c (c_expand_body): Reset input_filename from
13353         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
13354
13355 2002-01-31  Kazu Hirata  <kazu@hxi.com>
13356
13357         * rtlanal.c (subreg_regno_offset): Do not use
13358         SUBREG_REGNO_OFFSET.
13359         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
13360         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
13361
13362 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
13363
13364         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
13365         version rather than GNATS version in --version output.
13366
13367 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
13368
13369         * ifcvt.c (noce_process_if_block): Make a copy of the destination
13370         when copying back from a temporary.
13371
13372 2002-01-30  Richard Henderson  <rth@redhat.com>
13373
13374         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
13375         and new_dest are the same.
13376
13377 2002-01-30  Richard Henderson  <rth@redhat.com>
13378
13379         PR opt/5076
13380         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
13381         * rtl.c (note_insn_name): Update.
13382         * emit-rtl.c (remove_unnecessary_notes): Kill it.
13383         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
13384         to perform loop rotation.
13385         (expand_exit_loop_top_cond): New.
13386         * tree.h (expand_exit_loop_top_cond): Declare it.
13387         * c-semantics.c (genrtl_while_stmt): Use it.
13388         (genrtl_for_stmt): Likewise.
13389
13390 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
13391
13392         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
13393         arguments to 64-bit boundaries on 64-bit ABIs.
13394
13395 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
13396
13397         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
13398
13399 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
13400
13401         * c-decl.c (grokdeclarator): Handle type being a typedef for an
13402         invalid type.
13403
13404 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
13405
13406         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
13407         * config/sparc/sparc_bi.h: Remove file.
13408         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
13409
13410 2002-01-30  Richard Henderson  <rth@redhat.com>
13411
13412         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
13413
13414 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
13415
13416         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
13417
13418 2002-01-30  Jason Merrill  <jason@redhat.com>
13419
13420         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
13421         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
13422         (reg_save): Use DW_CFA_offset_extended_sf instead.
13423
13424         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
13425
13426 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13427
13428         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
13429         in cselib_lookup.
13430
13431 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
13432
13433         * rs6000.md ("*call_value_local32"): Remove constraints.
13434         ("*call_value_local64"): Same.
13435         ("*call_value_indirect_nonlocal_aix32"): Same.
13436         ("*call_value_nonlocal_aix32"): Same.
13437         ("*call_value_indirect_nonlocal_aix64"): Same.
13438         ("*call_value_nonlocal_aix64"): Same.
13439         ("*call_value_nonlocal_sysv"): Same.
13440
13441 2002-01-29  Richard Henderson  <rth@redhat.com>
13442
13443         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
13444
13445 2002-01-29  Richard Henderson  <rth@redhat.com>
13446
13447         * expr.c (force_operand): Ignore flag_pic for detecting pic
13448         address loads.
13449         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
13450         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
13451         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
13452         instead of open-coded loop.
13453         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
13454         be fixed when in use.
13455
13456 2002-01-29  Richard Henderson  <rth@redhat.com>
13457
13458         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
13459         * sched-rgn.c (propagate_deps): Update them.
13460         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
13461         clobbers list when either gets too long.
13462
13463 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13464
13465         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
13466         and INDEX_REGS the same as GENERAL_REGS.
13467         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
13468
13469 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13470
13471         * tree.c (build_nonstandard_integer_type): Correct prototype.
13472
13473 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
13474
13475         * config/s390/s390.md (movstrsico, movstrdix_64,
13476         movstrsix_31): Remove, replace by ...
13477         (movstrdi_short, movstrsi_short, movstrdi_long,
13478         movstrsi_long): ... these.  New.
13479         (movstrdi, movstrsi): Adapt.
13480
13481         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
13482         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
13483         Remove unnecessary CC clobber.
13484         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
13485         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
13486
13487         (divmoddi4): Don't partially initialize TImode register.
13488
13489 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
13490
13491         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
13492
13493 2002-01-29  Richard Henderson  <rth@redhat.com>
13494
13495         * flow.c (print_rtl_and_abort): Remove.
13496         (print_rtl_and_abort_fcn): Remove.
13497         (verify_local_live_at_start): Use dump_bb instead.
13498         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
13499         (verify_wide_reg_1): Return 2 on mode test failure.
13500
13501 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13502
13503         PR c/3325, c/3326, c/2511, c/3347
13504         * c-decl.c (enum_decl_context): Remove BITFIELD.
13505         (grokdeclarator): Take bitfield width as an input.
13506         Ensure bitfields are given the correct type.  Perform
13507         bitfield width validation with build_bitfield_integer_type
13508         rather than waiting for finish_struct.
13509         (grok_typename, grok_typename_in_parm_context, start_decl,
13510         push_parmdecl, grokfield, start_function): Update calls to
13511         grokdeclarator.
13512         (build_bitfield_integer_type): New function.
13513         (finish_struct): Move bitfield validation to grokdeclarator
13514         and build_bitfield_integer_type.
13515         * tree.c (build_nonstandard_integer_type): New function.
13516         * tree.h (build_nonstandard_integer_type): New prototype.
13517 objc:
13518         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
13519
13520 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13521
13522         PR other/1502:
13523         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
13524         don't ignore unrecognized -W* options.
13525         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
13526         * cpplib.h (cpp_handle_option): Adjust prototype.
13527         * c-decl.c (c_decode_options): Pass 0 as last argument to
13528         cpp_handle_option.
13529
13530         PR c/2896:
13531         * gcc.c (cpp_unique_options): Split from cpp_options.
13532         (cpp_options): Source cpp_unique_options.
13533         (default_compilers): Use cpp_unique_options instead of cpp_options
13534         when used together with cc1_options.
13535         (static_specs): Add cpp_unique_options.
13536         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
13537         when used together with cc1_options.
13538
13539 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13540
13541         * config/h8300/h8300-protos.h: Update the prototype of
13542         output_a_shift.
13543         * config/h8300/h8300.c (output_a_shift): Remove an unused
13544         argument 'insn'.  Remove redundant code.
13545         * config/h8300/h8300.md: Adust to the new prototype of
13546         output_a_shift.
13547
13548 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13549
13550         * config/h8300/h8300-protos.h: Update the prototypes of
13551         emit_a_rotate and expand_a_rotate.
13552         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
13553         first argument to 'enum rtx_code'.
13554         (expand_a_rotate): Likewise.
13555
13556 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13557
13558         * config/h8300/h8300-protos.h: Update the prototype of
13559         output_simode_bld.
13560         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
13561         'log2'.
13562         * config/h8300/h8300.md: Adjust to the new prototype.
13563
13564 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13565
13566         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
13567         redundant code.
13568
13569 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13570
13571         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
13572         is a fixed register before returning pic_offset_table_rtx.
13573         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
13574         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
13575
13576 2002-01-28  Jason Merrill  <jason@redhat.com>
13577
13578         * dwarf2.h: Sync with src version.
13579
13580 2002-01-28  Paul Koning  <pkoning@equallogic.com>
13581
13582         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
13583         BT_FN_VOID_PTR_VAR.
13584         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
13585         * doc/extend.texi (__builtin_prefetch): Update documentation:
13586         first argument is now const void ptr.
13587
13588 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13589
13590         * config/h8300/h8300-protos.h: Remove an unused prototype.
13591
13592 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
13593
13594         * toplev.c (lang_independent_init): Round up identifier size.
13595
13596 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13597
13598         * config.gcc: Revert previous change.
13599
13600 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
13601
13602         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
13603
13604 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13605
13606         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
13607         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
13608         other non-elf netbsd config frags.
13609         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
13610         collect2 will does that.
13611         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
13612         shared-lib frobbing will work.
13613
13614 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13615
13616         * config/h8300/h8300.h: Fix formatting.
13617         * config/h8300/h8300.md: Likewise.
13618
13619 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
13620
13621         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
13622         the old, removed AAA_standards fix.
13623         * fixinc/fixincl.x: Rebuilt.
13624
13625 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
13626
13627         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
13628         atexit call in crtbegin, hooked in after call to frame_dummy;
13629         register EH before registering __fini__start.
13630
13631 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
13632
13633         * config/rs6000/altivec.h: Remove spurious semicolons.
13634
13635 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13636
13637         * config/h8300/h8300.md: Replace dead bit extraction patterns
13638         with ones that work.
13639
13640 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13641
13642         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
13643         if not STRICT_ALIGNMENT.
13644         * rtl.h (MEM_ALIGN): Likewise.
13645
13646 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13647
13648         * doc/invoke.texi (-fdump-translation-unit): Revert this
13649         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13650
13651 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13652
13653         * config/h8300/h8300.md (define_constants): New.
13654         (anonymous patterns) Use defined constants appropriately.
13655
13656 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13657
13658         * config/h8300/h8300.c (function_arg): Remove redundant code.
13659
13660 2002-01-26  Richard Henderson  <rth@redhat.com>
13661
13662         * sched-deps.c (reg_pending_uses_head): New.
13663         (reg_pending_barrier): Rename from reg_pending_sets_all.
13664         (find_insn_list): Don't mark inline.
13665         (find_insn_mem_list): Remove.
13666         (add_dependence_list, add_dependence_list_and_free): New.
13667         (flush_pending_lists): Replace only_write param with separate
13668         for_read and for_write parameters.  Update all callers.  Use
13669         add_dependence_list_and_free.
13670         (sched_analyze_1): Do not add reg dependencies here; just set
13671         the pending bits.  Use add_dependence_list.
13672         (sched_analyze_2): Likewise.
13673         (sched_analyze_insn): Replace schedule_barrier_found with
13674         reg_pending_barrier.  Add all dependencies for pending reg
13675         uses, sets, and clobbers.
13676         (sched_analyze): Don't add reg dependencies for calls, just
13677         set pending bits.  Use regs_invalidated_by_call.  Treat
13678         sched_before_next_call as a normal list, not a fake insn.
13679         (init_deps): No funny init for sched_before_next_call.
13680         (free_deps): Free pending mems lists.  Don't zero reg_last.
13681         (init_deps_global): Init reg_pending_uses.
13682         (finish_deps_global): Free it.
13683         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
13684         (find_insn_mem_list): Remove.
13685         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
13686         (propagate_deps): Use them.  Zero temp mem lists.
13687
13688 2002-01-26  Richard Henderson  <rth@redhat.com>
13689
13690         * Makefile.in (CRTSTUFF_CFLAGS): New.
13691         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
13692         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
13693         crtstuff.c instead of alpha assembly version.
13694         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
13695         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
13696         not FORCE_{INIT,FINI}_SECTION_ALIGN.
13697         (__do_global_dtors_aux): Mark used.
13698         (frame_dummy, __do_global_ctors_aux): Mark used.
13699         (fini_dummy, init_dummy): Remove.
13700
13701         * config/alpha/crtbegin.asm: Remove file.
13702         * config/alpha/crtend.asm: Remove file.
13703         * config/alpha/t-crtbe: Remove file.
13704         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
13705         (LINK_EH_SPEC): New.
13706
13707         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
13708         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
13709         calling constructors.
13710         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
13711
13712         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
13713         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
13714         CRT_END_INIT_DUMMY hack.
13715         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
13716         FORCE_{INIT,FINI}_SECTION_ALIGN.
13717
13718         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
13719         FORCE_{INIT,FINI}_SECTION_ALIGN.
13720
13721         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
13722         invocation sequence.
13723         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
13724
13725         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
13726         (FORCE_CODE_SECTION_ALIGN): New.
13727
13728 2002-01-26  Richard Henderson  <rth@redhat.com>
13729
13730         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
13731
13732 2002-01-26  Richard Henderson  <rth@redhat.com>
13733
13734         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
13735         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
13736
13737 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13738
13739         * config/h8300/h8300.md: Remove bit extraction patterns that
13740         cannot be triggered.
13741         Restrict each bit extraction pattern to a variant on which the
13742         pattern is tested.
13743
13744 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
13745
13746         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
13747
13748 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13749
13750         * config/h8300/h8300.md: Remove bit test patterns that cannot
13751         be triggered.
13752         Restrict each bit test pattern to a variant on which the
13753         pattern is tested.
13754
13755 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13756
13757         * builtins.c (expand_builtin_strncat): Remove redundant check for
13758         INTEGER_CST.
13759
13760 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13761
13762         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
13763         default setting.
13764         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
13765         existing setting.
13766
13767 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13768
13769         * dbxout.c (dbxout_init): Use assemble_name rather than just
13770         stripping off the first character.
13771         (dbxout_source_file): Likewise.
13772
13773 2002-01-25  DJ Delorie  <dj@redhat.com>
13774
13775         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
13776         using rtx_equal_p, not by comparing pointers.
13777
13778 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
13779
13780         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
13781         for PIC_OFFSET_TABLE_REGNUM.
13782         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
13783
13784 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13785
13786         * config.gcc (x86_64-*-freebsd*): New target.
13787         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
13788         value.
13789         (i[34567]86-*-freebsd*): Don't include svr4.h.
13790         * config/i386/freebsd64.h: New file.
13791
13792 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
13793
13794         * config/alpha/x-vms (version): Make static.
13795
13796         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
13797         in previous checkin.
13798
13799         * Makefile.in (install-headers-cp): New target.
13800         * config.gcc (alpha-dec-*vms*): Install headers with
13801         install-headers-cp
13802
13803 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13804
13805         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
13806         avoid it's copies.
13807
13808 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13809
13810         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
13811         of compare_tree_int.
13812         (expand_builtin_strncat): Likewise.
13813         * c-decl.c (finish_struct): Use tree_low_cst.
13814         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
13815         * tree.c (compare_tree_int): Likewise.
13816
13817 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
13818
13819         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
13820         adjustments even if they are implemented by more than two insns.
13821
13822 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
13823
13824         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
13825         * df.h (struct ref): Kill B.
13826         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
13827
13828         * basic-block.h (PROP_EQUAL_NOTES): New flag.
13829         * flow.c (propagate_one_insn): Use it.
13830         (mark_used_regs): Handle NIL.
13831
13832 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13833
13834         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
13835         to help folding.
13836
13837 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
13838
13839         * rs6000.md (prefetch): Make address V4SI mode so that the address
13840         is restricted to legitimate form for instruction.
13841
13842 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
13843
13844         * doc/install.texi (xtensa-*-elf): New target.
13845         (xtensa-*-linux*): New target.
13846         * doc/contrib.texi: Add myself.
13847
13848 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
13849
13850         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
13851         purpose register to hold an SImode (or smaller) value.
13852
13853 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
13854
13855         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
13856         registry only.
13857         * crtstuff.c: Likewise.
13858
13859 2002-01-25  Kazu Hirata  <kazu@hxi.com>
13860
13861         * config/h8300/h8300.md (negation patterns): Tighten
13862         predicates to register_operand.
13863
13864 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
13865
13866         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
13867         mode, not Pmode.
13868
13869         * builtins.c (expand_builtin_prefetch): Same.
13870
13871 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13872
13873         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
13874         modes.
13875
13876 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13877
13878         * config/h8300/h8300.c (print_operand): Remove support for
13879         operand character 'A'.
13880         * config/h8300/h8300.md (three anonymous patterns): Replace
13881         operand character 'A' with either 'T' or 'S'.
13882
13883 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13884
13885         * config/h8300/h8300.c (print_operand): Remove support for
13886         operand character 'U'.
13887
13888 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
13889
13890         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
13891
13892 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
13893
13894         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
13895         values to be assigned to the stack pointer.
13896
13897 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13898
13899         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
13900         to const_double needs to be done right for big-endian systems.
13901
13902 2002-01-24  Jason Merrill  <jason@redhat.com>
13903
13904         PR c++/2432
13905         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
13906         to can_throw_internal.
13907
13908 2002-01-23  Richard Henderson  <rth@redhat.com>
13909
13910         * fold-const.c (fold): Change UINT_MAX test to check vs precision
13911         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
13912
13913 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13914
13915         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
13916         (symGOT2reg): Use them, then set as GOT value as unchanging.
13917         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
13918         as a temporary, if possible.
13919         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
13920         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
13921
13922 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13923
13924         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
13925         accept to accept 0x80 as operands[2].
13926
13927 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13928
13929         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
13930
13931 2002-01-23  Richard Henderson  <rth@redhat.com>
13932
13933         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
13934
13935 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
13936
13937         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
13938         (parmlist_or_identifiers_1): Verify that only a parmlist follows
13939         an attribute.
13940
13941 2002-01-23  Richard Henderson  <rth@redhat.com>
13942
13943         * expr.c (move_by_pieces_1): Extend size before negation.
13944
13945         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
13946         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
13947         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
13948         * config/m68k/t-m68kelf: Likewise.
13949
13950 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
13951
13952         * config/xtensa/elf.h: New file.
13953         * config/xtensa/lib1funcs.asm: New file.
13954         * config/xtensa/lib2funcs.S: New file.
13955         * config/xtensa/linux.h: New file.
13956         * config/xtensa/t-xtensa: New file.
13957         * config/xtensa/xtensa-config.h: New file.
13958         * config/xtensa/xtensa-protos.h: New file.
13959         * config/xtensa/xtensa.c: New file.
13960         * config/xtensa/xtensa.h: New file.
13961         * config/xtensa/xtensa.md: New file.
13962         * config.gcc (xtensa-*-elf*): New target.
13963         (xtensa-*-linux*): New target.
13964         * cse.c (canon_hash): Compare rtx pointers instead of register
13965         numbers.  This is required for the Xtensa port.
13966         * integrate.c (copy_insn_list): Handle case where the static
13967         chain is in memory and the memory address has to be copied to
13968         a register.
13969         * doc/invoke.texi (Option Summary): Add Xtensa options.
13970         (Xtensa Options): New node.
13971         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
13972
13973 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13974
13975         * diagnostic.c (internal_error): Do ICE suppression only
13976         when ENABLE_CHECKING is not defined.
13977
13978         * c-typeck.c (require_complete_type): Return error_mark_node
13979         if type is error_mark_node.
13980
13981 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
13982
13983         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
13984         -Os and issue a warning.
13985
13986 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13987
13988         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
13989         current (lack of) need for host configuration by hand.
13990
13991         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
13992         references.  Documentation of some target macros moved from
13993         hostconfig.texi to tm.texi.
13994
13995 2002-01-23  Will Cohen  <wcohen@redhat.com>
13996
13997         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
13998         defined.
13999
14000 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14001
14002         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
14003         operand[3].
14004
14005 2002-01-23  Jason Merrill  <jason@redhat.com>
14006
14007         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
14008
14009         * function.c (assign_parms): Don't put args of inline functions
14010         into registers when not optimizing.
14011
14012 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
14013
14014         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
14015         (prologue_use): New pattern.
14016         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
14017         preference to gen_rtx_USE.
14018         (thumb_expand_prologue): Use gen_prologue_use in preference to
14019         gen_rtx_USE.
14020         (thumb_expand_epilogue): Use gen_prologue_use in preference to
14021         gen_rtx_USE.
14022
14023 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
14024
14025         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
14026
14027 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14028
14029         PR c/3504
14030         * doc/extend.texi: Correct documentation of __alignof__.
14031
14032 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
14033
14034         * params.h: Rename arguments of DEFPARAM so that it will be
14035         recognized as a translation keyword.
14036
14037 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14038
14039         * extend.texi: Document altivec functions.
14040         Fix N-bit adjectives in X86 builtin documentation.
14041
14042 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14043
14044         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
14045         auto_inc_dec values.
14046
14047 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
14048
14049         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
14050         after backslash.
14051         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
14052
14053 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14054
14055         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
14056
14057 2002-01-22  Richard Henderson  <rth@redhat.com>
14058
14059         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
14060         copy_insn not copy_rtx.
14061
14062 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
14063
14064         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
14065         "nonzero" as that might add "1" bits.  Ensure "constop" is
14066         properly sign extened.
14067         (force_to_mode): Tweak for sign extended constop.
14068
14069 2002-01-22  Richard Henderson  <rth@redhat.com>
14070
14071         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
14072         for_each_rtx instead of assuming we're already looking at the MEM.
14073         (split_small_symbolic_mem_operand): Likewise.
14074         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14075         * config/alpha/alpha.md (small symbolic memory splitters): Update.
14076
14077 2002-01-22  Richard Henderson  <rth@redhat.com>
14078
14079         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
14080         sequence number for the literal.
14081         (divmoddi_internal_er): Likewise.
14082
14083 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14084
14085         PR java/4972
14086         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
14087         in LIBICONV variable.
14088         * configure: Regenerated.
14089
14090 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
14091
14092         * dependence.c (build_def_use): Remove array_idx.
14093
14094         * dwarfout.c (last_filename): Remove.
14095         (output_compile_unit_die): Remove last_filename.
14096
14097 2002-01-22  Roger Sayle  <roger@eyesopen.com>
14098             Richard Henderson  <rth@redhat.com>
14099
14100         PR opt/3640
14101         * fold-const.c (fold): Optimize unsigned comparisons against
14102         UINT_MAX (and similar unsigned constants).
14103
14104 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
14105
14106         * Makefile.in (loop.o): Depend on OPTABS_H.
14107         * loop.c (emit_prefetch_instructions): Check the prefetch operand
14108         against the predicate.
14109
14110         PR target/5379
14111         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
14112         for the address operand.
14113
14114 2002-01-22  Richard Henderson  <rth@redhat.com>
14115
14116         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
14117
14118 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14119
14120         PR other/5450
14121         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
14122         preprocessor flags.
14123
14124 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
14125
14126         * config.gcc (x86_64-*-netbsd*): New target.
14127         * config/i386/netbsd64.h: New file.
14128
14129 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14130
14131         * regrename.c (kill_value): Fix typo.
14132
14133 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14134
14135         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
14136
14137         * config/rs6000/rs6000.h: Same.
14138
14139         * function.c (instantiate_virtual_regs): Remove
14140         STARTING_FRAME_PHASE.
14141         (assign_stack_local_1): Same.
14142         Calculate frame phase.
14143
14144 2002-01-22  Nick Clifton  <nickc@redhat.com>
14145
14146         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
14147         variable declaration to outer scope in order to simplify
14148         future extensions.
14149         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
14150         arm_hard_regno_mode_ok.
14151         * config/arm/arm-protos.h: Add a prototype for
14152         arm_hard_regno_mode_ok.
14153         * config/arm/arm.c (soft_df_operand): Remove now redundant
14154         check for DImode values using IP_REGNUM.
14155         (nonimmediate_soft_df_operand): Remove now redundant check for
14156         DImode values using IP_REGNUM.
14157         (arm_hard_regno_mode_ok): New function. New check: make sure
14158         that DImode values are not stored in IP_REGNUM.
14159
14160         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
14161         note with a USE.
14162         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
14163
14164 2002-01-22  Jason Merrill  <jason@redhat.com>
14165
14166         * c-semantics.c (genrtl_compound_stmt): Only check nesting
14167         consistency if this COMPOUND_STMT is scoped.
14168
14169 2002-01-22  Kazu Hirata  <kazu@hxi.com>
14170
14171         * predict.c: Fix formatting.
14172         * print-tree.c: Likewise.
14173         * protoize.c: Likewise.
14174         * real.h: Likewise.
14175         * rtl.h: Likewise.
14176         * sbitmap.h: Likewise.
14177         * scan.c: Likewise.
14178         * sched-deps.c: Likewise.
14179         * sched-vis.c: Likewise.
14180         * sdbout.c: Likewise.
14181         * sibcall.c: Likewise.
14182         * ssa.c: Likewise.
14183         * ssa-ccp.c: Likewise.
14184         * ssa-dce.c: Likewise.
14185         * stmt.c: Likewise.
14186         * stor-layout.c: Likewise.
14187         * system.h: Likewise.
14188
14189 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14190
14191         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
14192         if fits in bounds of base type.
14193
14194         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
14195         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
14196         (add_bound_info, default): If can't find a context, make a
14197         SAVE_EXPR.
14198         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
14199
14200 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
14201
14202         * c-typeck.c (parser_build_binary_op): If result from
14203         build_binary_op is ERROR_MARK just return error_mark_node without
14204         further processing.
14205
14206 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
14207
14208         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
14209         Split a.out-specific bits into...
14210         * config/netbsd-aout.h: ...this.
14211         * config/netbsd-elf.h: New file.
14212         * config/alpha/netbsd-elf.h: Remove.
14213         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
14214         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
14215         (STARTFILE_SPEC): Remove redundant definition.
14216         (ENDFILE_SPEC): Likewise.
14217         (LINK_SPEC): Likewise.
14218         (CPP_SPEC): Likewise.
14219         (ASM_SPEC): Likewise.
14220         (LIB_SPEC): Likewise.
14221         (SWITCH_TAKES_ARG): Likewise.
14222         (TARGET_MEM_FUNCTIONS): Likewise.
14223         (CPP_PREDEFINES): Redefine.
14224         (ASM_FINAL_SPEC): Remove redefinition.
14225         (ASM_COMMENT_START): Redefine.
14226         (FUNCTION_PROFILER): Define.
14227         (TARGET_VERSION): Redefine.
14228         Comment and formatting cleanup.
14229         * config/i386/netbsd.h: Include <netbsd-aout.h>.
14230         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
14231         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
14232         big- or little-endian.
14233         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
14234         * config.gcc (*-*-netbsd*): Add definitions common to all
14235         NetBSD configs.
14236         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
14237         gnu_ld definitions.  Add netbsd-elf.h to and remove
14238         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
14239         tmake_file, and don't lose previous tmake_file contents.
14240         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
14241         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
14242         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
14243         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
14244         (mipsel-*-netbsd*): Rename this to...
14245         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
14246         mips/little.h to tm_file for mips*el-*.
14247         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
14248         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
14249         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
14250
14251 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14252
14253         * pa-protos.h (reg_before_reload_operand): New function prototype.
14254         * pa.c (reg_before_reload_operand): New function implementation.
14255         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
14256         contraints to "*m".
14257
14258 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14259
14260         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
14261
14262 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14263
14264         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
14265         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
14266         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
14267         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
14268         (ENDFILE_SPEC): Undefine.
14269         (STARTFILE_SPEC): Redefine for PA.
14270
14271 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14272
14273         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
14274
14275 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
14276
14277         * config.gcc: Add entries to supported PowerPC --with-cpu
14278         types.
14279
14280 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
14281
14282         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
14283         true for 64-bit mode only SSE registers in 32-bit mode.
14284
14285 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14286
14287         * unwind-dw2.c: Fix formatting.
14288         * unwind-dw2-fde.c: Likewise.
14289         * unwind-dw2-fde.h: Likewise.
14290         * unwind-pe.h: Likewise.
14291         * varasm.c: Likewise.
14292         * varray.h: Likewise.
14293
14294 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
14295
14296         Remove workaround for register stack overwrite bug in mmix.
14297         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
14298         support for TARGET_REG_STACK_FILL_BUG.
14299         * config/mmix/mmix.h: Remove member has_call_without_parameters.
14300         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
14301         Delete.
14302         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
14303         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
14304         -mno-reg-stack-fill-bug-workaround.
14305         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
14306         machine member has_call_without_parameters.
14307         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
14308         -mreg-stack-fill-bug-workaround and
14309         -mno-reg-stack-fill-bug-workaround.
14310         (MMIX Options): Ditto.
14311
14312 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14313
14314         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
14315         as appropriate.
14316         Remove redundant code.
14317
14318 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14319
14320         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
14321         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
14322         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
14323         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
14324         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
14325         out target macro definitions and non-target-specific comments
14326         mostly taken from old versions of the manual.
14327
14328 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14329
14330         * config/h8300/h8300.h: Fix comment formatting.
14331         * config/ia64/aix.h: Likewise.
14332         * config/ia64/ia64-protos.h: Likewise.
14333         * config/ia64/ia64.c: Likewise.
14334         * config/ia64/ia64.h: Likewise.
14335         * config/ia64/ia64intrin.h: Likewise.
14336         * config/ia64/linux.h: Likewise.
14337         * config/ia64/unwind-aix.c: Likewise.
14338         * config/ia64/unwind-ia64.c: Likewise.
14339
14340 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14341
14342         * config/h8300/h8300.c: Revise comments about shift code.
14343
14344 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14345
14346         * config/h8300/h8300.c (function_arg): Update a comment.
14347
14348 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14349
14350         * config/h8300/h8300.md: Update the comments at the beginning
14351         of the file.
14352
14353 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14354
14355         * config/i370/i370.c: Fix comment formatting.
14356         * config/i370/i370.h: Likewise.
14357         * config/i370/i370.md: Likewise.
14358         * config/i370/linux.h: Likewise.
14359
14360 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14361
14362         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
14363
14364         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
14365         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
14366         in incomplete case.
14367
14368 2002-01-20  Graham Stott  <grahams@redhat.com>
14369
14370         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
14371
14372 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14373
14374         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
14375
14376 2002-01-19  Tom Rix  <trix@redhat.com>
14377
14378         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
14379
14380 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
14381
14382         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
14383
14384         * function.c (assign_stack_local_1): Adjust x_frame_offset with
14385         STARTING_FRAME_PHASE.
14386         (STARTING_FRAME_PHASE): New.
14387         (instantiate_virtual_regs): Check saneness of
14388         STARTING_FRAME_PHASE.
14389
14390         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
14391
14392 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14393
14394         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
14395
14396 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14397
14398         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
14399         be used for bootstrapping GCC 3.0.
14400
14401 2002-01-18  Kazu Hirata  <kazu@hxi.com>
14402
14403         * config/h8300/h8300.md: Fix an insn length.
14404
14405 2002-01-18  Kazu Hirata  <kazu@hxi.com>
14406
14407         * bitmap.h: Fix comment formatting.
14408         * combine.c: Likewise.
14409         * cppfiles.c: Likewise.
14410         * c-pragma.h: Likewise.
14411         * c-typeck.c: Likewise.
14412         * df.c: Likewise.
14413         * dwarf2out.c: Likewise.
14414         * function.c: Likewise.
14415         * gcc.c: Likewise.
14416         * genattrtab.c: Likewise.
14417         * gthr-win32.h: Likewise.
14418         * haifa-sched.c: Likewise.
14419         * predict.c: Likewise.
14420         * rtlanal.c: Likewise.
14421         * rtl.h: Likewise.
14422         * unwind-dw2-fde.h: Likewise.
14423         * unwind-pe.h: Likewise.
14424         * vmsdbgout.c: Likewise.
14425
14426 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14427
14428         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
14429         if type_required and passed decl.
14430
14431 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
14432
14433         * config.gcc (cpu_type): Include altivec.h in powerpc
14434         extra_headers.
14435         Same for darwin.
14436
14437         * config/rs6000/altivec.h: New.
14438
14439 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
14440
14441         * doc/install.texi (*-ibm-aix*): Update assembler and exception
14442         handling information.
14443         * doc/trouble.texi (Interoperation): Add libstdc++ information
14444         for AIX.
14445         (Misunderstandings): Add template instantiation and static template
14446         member information for AIX.
14447
14448 2002-01-17  Jason Merrill  <jason@redhat.com>
14449
14450         * dbxout.c (dbxout_type): Support const and volatile.
14451
14452         * except.c (add_partial_entry): Remove backwards compatibility code.
14453         (end_protect_partials): Likewise.
14454
14455 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
14456
14457         * config/ia64/ia64.md (prologue_use): New.
14458         * config/ia64/ia64.c (ia64_expand_prologue): Use
14459         gen_prologue_use instead of gen_rtx_USE.
14460         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
14461         as CODE_FOR_pred_rel_mutex.
14462         (ia64_sched_reorder2): Likewise.
14463
14464 2002-01-16  Eric Christopher  <echristo@redhat.com>
14465
14466         * config/mips/r3900.h: Reformat.
14467         (SUBTARGET_CPP_SIZE_SPEC): Remove.
14468         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
14469         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
14470         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
14471         * config/mips/t-elf: Remove mips3 multilib.
14472
14473 2002-01-16  H.J. Lu <hjl@gnu.org>
14474
14475         * config/mips/linux.h: Include "mips/abi64.h".
14476
14477 2002-01-16  H.J. Lu <hjl@gnu.org>
14478
14479         * config/mips/t-linux: New.
14480
14481         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
14482
14483         * config/mips/linux.h: Don't include "gofast.h".
14484         (INIT_SUBTARGET_OPTABS): Removed.
14485
14486 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14487
14488         * config/h8300/h8300-protos.h: Replace emit_a_shift with
14489         output_a_shift.
14490         * config/h8300/h8300.c: Likewise.
14491         * config/h8300/h8300.md: Likewise.
14492
14493 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14494
14495         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
14496         spaces after an opcode name.
14497         (pushqi1_h8300hs): Likewise.
14498         (pushhi1_h8300hs): Likewise.
14499
14500 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14501
14502         * doc/extend.texi: Replace "option" with "attribute"
14503         appropriately.
14504
14505 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14506
14507         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
14508         (and:DI () (const_int -8)).
14509         (split_small_symbolic_mem_operand): Split
14510         (mem (and:DI () (const_int -8)).
14511
14512 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14513
14514         PR target/5309:
14515         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
14516         same way as TYPE_IMUL.
14517         (ultrasparc_sched_reorder): Likewise.
14518         * config/sparc/sparc.md (type): Add comment to update
14519         ultrasparc_sched_reorder when making changes.
14520
14521 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14522
14523         * doc/invoke.texi: Change the dump file name of block
14524         reordering pass from 28.bbro to 29.bbro.
14525         Mention -dk option.
14526
14527 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
14528
14529         * i386.md (minsf splitter): Fix pasto.
14530
14531 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14532
14533         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
14534         to frame pointer initialisation instruction.
14535         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
14536         initialisation instruction.
14537         (soft_df_operand): Do not accept the IP register.
14538         (nonimmediate_soft_df_operand): Do not accept the IP register.
14539
14540 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14541
14542         PR target/5357:
14543         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
14544         MASK_V8 being both set.
14545
14546 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
14547
14548         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
14549         insn for GOT register; add REG_MAYBE_DEAD notes instead.
14550         config/s390/s390.md (call, call_value): Add GOT register to
14551         CALL_INSN_FUNCTION_USAGE where needed.
14552         (call_exp, call_value_exp): New.
14553
14554 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14555
14556         * config/arm/arm.c: General formatting tidy up.
14557
14558 2002-01-16  Graham Stott  <grahams@redhat.com>
14559
14560         * calls.c (try_to_integrate): Use "(size_t)" intermediate
14561         cast and when casting an integer literal to "rtx" pointer.
14562         (expand_call): Likewise.
14563         * flow.c (try_pre_increment): Likewise.
14564         (find_use_as_address): Likewise.
14565         * integrate.c (expand_iline_function): Likewise.
14566         * regmove.c (try_auto_increment): Likewise.
14567
14568 2002-01-16  Graham Stott  <grahams@redhat.com>
14569
14570         * sched-rgn.c (passed): Use sbitmap_free.
14571         (header): Likewise.
14572         (inner): Likewise.
14573         (in_queue): Likewise.
14574         (in_stack): Likewise.
14575
14576 2002-01-15  Eric Christopher  <echristo@redhat.com>
14577
14578         * flow.c (propagate_one_insn): Change to use fatal_insn.
14579
14580 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14581
14582         * expmed.c (extract_fixed_bit_field): Remove unused code.
14583         * system.h: Poison SLOW_ZERO_EXTEND.
14584         * doc/tm.texi: Remove.
14585         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
14586         * config/arm/arm.h: Likewise.
14587         * config/avr/avr.h: Likewise.
14588         * config/clipper/clipper.h: Likewise.
14589         * config/convex/convex.h: Likewise.
14590         * config/d30v/d30v.h: Likewise.
14591         * config/dsp16xx/dsp16xx.h: Likewise.
14592         * config/elxsi/elxsi.h: Likewise.
14593         * config/fr30/fr30.h: Likewise.
14594         * config/h8300/h8300.h: Likewise.
14595         * config/i370/i370.h: Likewise.
14596         * config/i386/i386.h: Likewise.
14597         * config/m68k/m68k.h: Likewise.
14598         * config/mips/mips.h: Likewise.
14599         * config/ns32k/ns32k.h: Likewise.
14600         * config/pdp11/pdp11.h: Likewise.
14601         * config/pj/pj.h: Likewise.
14602         * config/s390/s390.h: Likewise.
14603         * config/sh/sh.h: Likewise.
14604         * config/stormy16/stormy16.h: Likewise.
14605         * config/v850/v850.h: Likewise.
14606         * config/vax/vax.h: Likewise.
14607         * config/we32k/we32k.h: Likewise.
14608
14609 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14610
14611         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
14612         (altivec_lvsl): Change constraint to b.
14613         (altivec_lvsr): Same.
14614         (altivec_lvebx): Same.
14615         (altivec_lvehx): Same.
14616         (altivec_lvewx): Same.
14617         (altivec_lvxl): Same.
14618         (altivec_lvx): Same.
14619         (altivec_stvx): Add parallel.
14620         (altivec_stvxl): Same.
14621         (altivec_stvehx): Same.
14622         (altivec_stvebx): Same.
14623         (altivec_stvebx): Same.
14624
14625 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14626
14627         * config.gcc: Change altivec.h to altivec-defs.h.
14628
14629         * config/rs6000/altivec.h: Delete.
14630
14631         * config/rs6000/altivec-defs.h: Add.
14632
14633 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14634
14635         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
14636         and UMOD modes.
14637
14638         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
14639         less than or equal to eight bytes.
14640
14641         * vax.md (andsi3): Remove constraints and change SET destination
14642         operand type to nonimmediate_operand.
14643         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
14644         when it is a CONST_INT.
14645
14646 2002-01-15  Jason Merrill  <jason@redhat.com>
14647
14648         * c-common.def (FILE_STMT): New code.
14649         * c-common.c (statement_code_p): It's a statement.
14650         * c-common.h (stmt_tree_s): Add x_last_filename.
14651         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
14652         (last_expr_filename): New macro.
14653         * c-semantics.c (begin_stmt_tree): Initialize it.
14654         (add_stmt): If the filename changed, also insert a
14655         FILE_STMT.
14656         (expand_stmt): Handle seeing one.
14657
14658 2002-01-15  Eric Christopher  <echristo@redhat.com>
14659
14660         * flow.c (propagate_one_insn): Add error message and print out
14661         insn for debugging.
14662
14663 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14664
14665         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
14666         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
14667         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
14668         TRAMPOLINE_ALIGNMENT.
14669         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
14670         to be in bits.
14671         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
14672         PCC_BITFIELD_TYPE_MATTERS.
14673         * config/interix.h (STDC_VALUE): Remove.  Use
14674         STDC_0_IN_SYSTEM_HEADERS.
14675         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
14676         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
14677         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
14678
14679 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14680
14681         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
14682         not work on this platform currently.
14683
14684 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14685
14686         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
14687         readonly_warning in _().
14688
14689 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
14690
14691         * gcc.c (delete_if_ordinary): Backout previous change.
14692
14693 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14694
14695         * config/h8300/h8300.c (print_operand): Remove support for
14696         unused operand characters.
14697
14698         * read-rtl.c: Fix formatting.
14699         * real.c: Likewise.
14700         * recog.c: Likewise.
14701         * regclass.c: Likewise.
14702         * regmove.c: Likewise.
14703         * reg-stack.c: Likewise.
14704         * reload1.c: Likewise.
14705         * rtlanal.c: Likewise.
14706
14707 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14708
14709         * config/i386/i386.c: Fix formatting.
14710
14711 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
14712
14713         * c-typeck.c (process_init_element): Don't save_expr
14714         COMPOUND_LITERAL_EXPR if just its initializer will be used.
14715
14716 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
14717
14718         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
14719         emit optional traceback table if optimize_size or TARGET_ELF.
14720         * config/rs6000/rs6000.md (prefetch): New.
14721
14722 2002-01-15  Andreas Jaeger  <aj@suse.de>
14723
14724         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
14725
14726 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14727
14728         * mips-tfile.c: Fix formatting.
14729
14730 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14731
14732         * unroll.c (final_reg_note_copy): Fix previous commit.
14733
14734 2002-01-14  Kazu Hirata  <kazu@hxi.com>
14735
14736         * config/h8300/h8300-protos.h: Remove the prototype for
14737         eq_operator.
14738         * config/h8300/h8300.c (eq_operator): Remove.
14739
14740 2002-01-14  Richard Henderson  <rth@redhat.com>
14741
14742         * config/i386/i386.md (prefetch): Tidy.
14743         (prefetch_3dnow): Fix locality operand.
14744
14745 2002-01-14  Richard Henderson  <rth@redhat.com>
14746
14747         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
14748         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
14749
14750 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
14751
14752         * reload1.c (reload_combine): Pass reg_sum replacement through
14753         copy_rtx in loop performing multiple changes.
14754
14755 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
14756
14757         * except.c (remove_unreachable_regions): New.
14758         (free_eh_status): Clear exception_handler_labels.
14759         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
14760         (find_exception_handler_labels): Don't add the same label more than
14761         once.
14762         (remove_exception_handler_label): Don't die if
14763         find_exception_handler_labels hasn't been called for the current
14764         function yet.
14765
14766 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
14767
14768         * toplev.c (rest_of_compilation): Rebuild jump labels after
14769         gcse.
14770
14771 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
14772
14773         * doc/extend.texi: Move documentation of X86 built-in functions
14774         here.
14775         * doc/invoke.texi: From here.
14776         * doc/sourcebuild.texi: Document location of documentation for
14777         machine built-in functions.
14778
14779 2002-01-13  Christopher Faylor  <cgf@redhat.com>
14780
14781         * cppfiles.c (TEST_THRESHOLD): New macro.
14782         (SHOULD_MMAP): Ditto.
14783         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
14784         be used.
14785
14786 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14787
14788         * unroll.c (final_reg_note_copy): Properly handle
14789         REG_LABEL
14790         (unroll_loops): Fix LOOP_CONDITION heuristics.
14791
14792 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
14793
14794         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
14795         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
14796
14797 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14798
14799         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
14800         threaded loop.
14801
14802 2002-01-14  Tom Rix  <trix@redhat.com>
14803
14804         * config/rs6000/rs6000.md: Fix typo with sradi.
14805
14806 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
14807
14808         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
14809         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
14810         (clrstrdi, clrstrsi): Adapt callers.
14811
14812         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
14813
14814         (movti splitter): Never use register 0 as base register.
14815
14816 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14817
14818         * combine.c (simplify_shift_const): Always generate new rtx
14819         for shift expression instead of reusing given expression.
14820
14821 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14822
14823         * config/alpha/alpha.c (alpha_expand_mov): Don't call
14824         alpha_legitimize_address unless mode is Pmode.
14825
14826 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
14827
14828         * doc/md.texi (Modifiers): Document the '*' constraint for the
14829         user.
14830
14831         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
14832         * doc/extend.texi (Function Attributes): 'interrupt' is valid
14833         for xstormy16 too.
14834
14835 2002-01-13  Richard Henderson  <rth@redhat.com>
14836
14837         * reload.c (find_reloads): Use a hard reg destination as reload reg
14838         for an input reload of the source.
14839
14840 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14841
14842         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
14843         more generic.
14844
14845 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
14846
14847         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14848         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14849
14850         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
14851
14852 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14853
14854         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
14855
14856 2002-01-12  Tom Rix  <trix@redhat.com>
14857
14858         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
14859         TARGET_POWERPC64.
14860
14861 2002-01-12  Richard Henderson  <rth@redhat.com>
14862
14863         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
14864
14865         * doc/invoke.texi: Update Alpha options.
14866
14867         * doc/invoke.texi: Update i386 built-in function lists.
14868
14869 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14870
14871         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
14872         referencing outside.
14873
14874 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14875
14876         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
14877         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
14878         offsets, and change line folding.
14879         * optabs.c (expand_binop): Remove warnings.
14880         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
14881
14882 2002-01-12  Graham Stott <grahams@redhat.com>
14883
14884         * attribs.c (handle_deprecated_attribute): constify WHAT.
14885         * diagnostic.c (warn_deprecated_use): Add braces, fixes
14886         dangling else warning and constify WHAT.
14887         * except.h (struct function, struct inline_remap): Move
14888         struct tag forward defs before all prototypes.
14889         (duplicate_eh_regions): Whitespace.
14890
14891 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
14892
14893         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14894         MODE_BASE_REG_CLASS.
14895         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
14896
14897 2002-01-12  Richard Henderson  <rth@redhat.com>
14898
14899         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
14900         (ix86_expand_vector_move): New.
14901         (bdesc_2arg): Remove andps, andnps, orps, xorps.
14902         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
14903         Remove old prefetch builtins.  Special case the logicals removed above.
14904         (ix86_expand_builtin): Likewise.
14905         (safe_vector_operand): Use V4SFmode, not TImode.
14906         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
14907         (ix86_expand_timode_binop_builtin): New.
14908         * config/i386/i386-protos.h: Update.
14909         * config/i386/i386.h (enum ix86_builtins): Update.
14910         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
14911         Use ix86_expand_vector_move in vector move expanders.
14912         (movti_internal, movti_rex64): Add xorps alternative.
14913         (sse_clrv4sf): Rename and adjust from sse_clrti.
14914         (prefetch): Don't work so hard.
14915         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
14916         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
14917         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
14918
14919 2002-01-11  Richard Henderson  <rth@redhat.com>
14920
14921         * config/i386/mmintrin.h: New file.
14922         * config/i386/xmmintrin.h: New file.
14923         * config.gcc (i?86-*-*): Add extra_headers.
14924         * simplify-rtx.c (simplify_unary_operation): Handle saturating
14925         truncation codes.
14926         (simplify_binary_operation): Handle saturating arithmetic codes.
14927         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
14928         not the lowpart subreg.
14929         (ix86_expand_builtin): Return a TImode dummy register instead of 0
14930         on error.
14931         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
14932
14933 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14934
14935         * conflict.c (conflict_graph_compute): Free regsets when finished.
14936         * ssa.c (compute_coalesced_reg_partition): Likewise.
14937
14938 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14939
14940         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
14941         every where we allocate a register.
14942
14943 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14944
14945         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
14946         * lcm.c (compute_earliest, compute_farthest): Likewise.
14947
14948 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14949
14950         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
14951
14952 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14953
14954         * doc/rtl.texi (Insns): Fix 2 typos.
14955
14956 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
14957
14958         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
14959         options.  Use @table @gcctabopt for MMIX options.  Add index
14960         entries for MMIX options.  Start new paragraph with first
14961         heading of the machine-dependent options.
14962
14963 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14964
14965         PR other/5299
14966         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
14967         * combine.c (force_to_mode): Same.
14968         * reload1.c (clear_reload_reg_in_use): Same.
14969
14970 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
14971
14972         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
14973         and 'subtargets'.
14974
14975 2002-01-11  Andreas Jaeger  <aj@suse.de>,
14976             Brad Lucier <lucier@math.purdue.edu>
14977
14978         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
14979         mcpu.
14980
14981 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
14982
14983         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
14984         Protect with IN_LIBGCC.
14985         (LINK_EH_SPEC): Add required trailing space.
14986
14987 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14988
14989         * c-tree.h: Move function declarations so that they are listed
14990         under the filename which contains them.
14991         (check_identifier, finish_decl_top_level,
14992         lookup_name_current_level_global, shadow_record_fields): Remove.
14993
14994 2002-01-11  Andreas Jaeger  <aj@suse.de>
14995
14996         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
14997         march.
14998
14999 2002-01-10  Richard Henderson  <rth@redhat.com>
15000
15001         * config/alpha/alpha.c (print_operand): Add 'J'.
15002         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
15003         new operand with the sequence number for the lituse.  When splitting
15004         the insns, use gen_movdi_er_high_g and generate a sequence number.
15005         (gen_movdi_er_high_g): Print the sequence number if non-zero.
15006
15007 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
15008
15009         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
15010         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
15011         stvxl.
15012         (altivec_expand_builtin): Same.
15013         (altivec_expand_stv_builtin): New.
15014
15015         * config/rs6000/rs6000.h (rs6000_builtins): Same.
15016
15017         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
15018         ("altivec_lvehx"): New.
15019         ("altivec_lvewx"): New.
15020         ("altivec_lvxl"): New.
15021         ("altivec_lvx"): New.
15022         ("altivec_stvx"): New.
15023         ("altivec_stvebx"): New.
15024         ("altivec_stvehx"): New.
15025         ("altivec_stvewx"): New.
15026         ("altivec_stvxl"): New.
15027
15028 2002-01-10  Richard Henderson  <rth@redhat.com>
15029
15030         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
15031         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
15032         care not to delete instructions twice.
15033
15034 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15035
15036         * toplev.c: Don't declare environ (it's not used anywhere).
15037         * configure.in: Don't check for declaration of environ.
15038         * config/i386/xm-mingw32.h: Don't #define environ.
15039         * config.in, configure: Regenerate.
15040
15041 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15042
15043         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
15044         * configure: Regenerate.
15045
15046         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
15047         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
15048         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
15049         alpha/xm-vms.h.
15050         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
15051         LIMITS_H_TEST here, not in m68k/x-next.
15052         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
15053         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
15054
15055         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
15056         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
15057         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
15058
15059         * config/i386/x-djgpp: Renamed i386/t-djgpp.
15060         * config/m88k/x-dolph: Renamed m88k/t-dolph.
15061         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
15062         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
15063         replacement of quadlib.asm with quadlib.c.
15064
15065         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
15066         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
15067         config/rs6000/xm-beos.h: Delete file.
15068
15069         * config.gcc: Update to match above changes.
15070
15071 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15072
15073         * config/h8300/h8300.h: Fix comment typos.
15074         * config/h8300/h8300.md: Likewise.
15075         * config/h8300/lib1funcs.asm: Likewise.
15076
15077 2002-01-10  Dale Johannesen  <dalej@apple.com>
15078
15079         PR optimization/5269
15080         * unroll.c (precondition_loop_p): Make *increment be the correct
15081         sign when n_iterations known, to avoid confusing caller.
15082
15083 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15084
15085         * doc/extend.texi (deprecated): Fix a typo.
15086
15087 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15088
15089         * basic-block.h (update_br_prob_note): Declare.
15090         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
15091         (try_forward_edges): Care negative frequencies and update note.
15092         (outgoing_edges_match): Tweek conditional merging heuristics.
15093         (try_crossjump_to_edge): use update_br_prob_note.
15094         * cfglayout.c (fixup_reorder_chain): Likewise.
15095         * cfrtl.c (update_br_prob_note): New.
15096         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
15097
15098         * i386.c (ix86_decompose_address): Return -1 if address contains
15099         shift.
15100         (legitimate_address_p): Require ix86_decompose_address to return 1.
15101
15102         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
15103         (cprop_insn): Likewise.
15104
15105 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15106
15107         * toplev.c: Fix formatting.
15108         * tree.c: Likewise.
15109         * tree-dump.c: Likewise.
15110         * unroll.c: Likewise.
15111         * unwind-dw2.c: Likewise.
15112         * unwind-dw2-fde.c: Likewise.
15113         * unwind-dw2-fde-glibc.c: Likewise.
15114         * unwind-sjlj.c: Likewise.
15115
15116 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15117
15118         * doc/invoke.texi: Document PDP-11 options.
15119
15120 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15121
15122         * config/h8300/h8300.h: Fix formatting.
15123
15124 2002-01-10  Ira Ruben   <ira@apple.com>
15125
15126         Add __attribute__ ((deprecated)).
15127         * extend.texi: Document __attribute__ ((deprecated)).
15128         * invoke.texi: Document -Wno-deprecated-declarations.
15129         * testsuite/g++.dg/other/deprecated.C: New C++ test.
15130         * testsuite/gcc.dg/deprecated.c: New C test.
15131         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
15132         (c_common_attribute_table): Add "deprecated" entry.
15133         (handle_deprecated_attribute): New function.
15134         * c-decl.c (deprecated_states): New enum.
15135         deprecated_state: State of "deprecated" handling.
15136         (start_decl): Set deprecated_state based on attributes.
15137         (grokdeclarator): Test for deprecated uses, propagate attribute.
15138         * c-typeck.c (build_component_ref): Test for deprecated fields.
15139         (build_external_ref): Test for deprecated primaries.
15140         * diagnostic.c (warn_deprecated_use) New function to issue
15141         warnings about __attribute__ ((depricated)) references.
15142         * flags.h (warn_deprecated_decl): Extern declared for
15143         -W[no-]deprecated-declarations option.
15144         * print-tree.c (print_node): Show deprecated flag status.
15145         * toplev.c (warn_deprecated_decl): Defined.
15146         (W_options): Added "deprecated-declaration".
15147         * toplev.h (warn_deprecated_use): Extern declared.
15148         * tree.h (struct tree_common): Define deprecated_flag.
15149         (TREE_DEPRECATED): New macro to access flag.
15150         * cp/call.c (build_call): Test for deprecated calls.
15151         * cp/class.c (add_implicitly_declared_members): Set global
15152         flag to tell grokdeclarator to not issue deprecated warnings.
15153         * cp/cp-tree.h: Add extern for adding_implicit_members.
15154         * cp/decl.c (deprecated_states): New enum.
15155         (start_decl): Set deprecated_state based on attributes.
15156         (grokdeclarator): Test for deprecated uses, propagate attribute.
15157         * cp/lex.c (do_identifier): Test for deprecated primaries.
15158         * cp/typeck.c (build_component_ref): Test for deprecated fields.
15159
15160 2002-01-10  Ira Ruben   <ira@apple.com>
15161
15162         Fix to assign attributes to inline member functions.
15163         * cp/decl.c (start_method): Handle attrlist.
15164
15165 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15166
15167         * combine.c (expand_field_assignment): Use subreg_lsb().
15168
15169 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
15170
15171         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
15172         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
15173         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
15174         Recurse for any operand of AND as long as constant is non-zero.
15175
15176 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15177
15178         * config/h8300/h8300.md: Remove constraints from expanders.
15179
15180 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15181
15182         * varasm.c: Fix formatting.
15183         * varray.c: Likewise.
15184         * vmsdbgout.c: Likewise.
15185         * xcoffout.c: Likewise.
15186
15187 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15188
15189         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
15190         update edge probabilities to match.
15191
15192 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15193
15194         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
15195         dependencies.
15196         * doc/languages.texi, doc/sourcebuild.texi: New files.
15197         * doc/configfiles.texi: Make a subsubsection.  Update.
15198         * doc/configterms.texi: Add @node.  Remove warning that this isn't
15199         instructions for building GCC.
15200         * doc/makefile.texi: Make a subsection.
15201         * doc/gccint.texi: Update.
15202
15203 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
15204
15205         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
15206
15207 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15208
15209         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
15210
15211 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
15212
15213         * optabs.c (expand_fix): Look for wider integer modes first.
15214
15215         * i386.md (mov?f): Avoid the fake const double trick for medium
15216         memory model.
15217         (min?f*/max?f*): Prohibit memory operands for i387 variant.
15218         (fop_df_4): Disable for SSE compilation.
15219
15220 2002-01-10  Graham Stott  <grahams@redhat.com>
15221
15222         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
15223         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
15224
15225 2002-01-10  Richard Henderson  <rth@redhat.com>
15226
15227         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
15228
15229 2002-01-10  Richard Henderson  <rth@redhat.com>
15230
15231         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
15232         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
15233
15234 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15235
15236         * combine.c (can_combine_p): Fix a comment typo.
15237
15238 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
15239
15240         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
15241         empty list correctly.  Change loop index $t to $f for
15242         consistency with rest of Makefile.
15243
15244 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
15245
15246         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
15247         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15248
15249         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
15250         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
15251         (altivec_init_builtins): Same.
15252         (altivec_expand_unop_builtin): Return NULL_RTX on error.
15253         (altivec_expand_binop_builtin): Same.
15254         (altivec_expand_ternop_builtin): Same.
15255         (bdesc_dst): New.
15256
15257         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
15258         ("altivec_vctuxs"): Fix typo.
15259         ("altivec_vnmsubfp"): Same.
15260         ("altivec_dssall"): New.
15261         ("altivec_mfvscr"): New.
15262         ("altivec_dss"): New.
15263         ("altivec_lvsl"): New.
15264         ("altivec_lvsr"): New.
15265         ("altivec_dstt"): New.
15266         ("altivec_dstst"): New.
15267         ("altivec_dststt"): New.
15268         ("altivec_dst"): New.
15269
15270         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
15271         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15272
15273 2002-01-09  Richard Henderson  <rth@redhat.com>
15274
15275         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
15276
15277 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
15278
15279         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
15280         function.
15281         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
15282         prototype.
15283         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
15284
15285 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15286
15287         * read-rtl.c: Fix formatting.
15288         * real.c: Likewise.
15289         * regclass.c: Likewise.
15290         * regrename.c: Likewise.
15291         * reg-stack.c: Likewise.
15292         * reload1.c: Likewise.
15293         * reload.c: Likewise.
15294         * rtl.c: Likewise.
15295
15296 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15297
15298         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
15299         to extract items in the expr_list chain.
15300
15301 2002-01-09  Richard Henderson  <rth@redhat.com>
15302
15303         * config/vax/vax.c (vax_rtx_cost): Never abort.
15304
15305         * config/vax/vax.h (REAL_ARITHMETIC): Define.
15306
15307 2002-01-09  Jan Hubicka  <jh@suse.cz>
15308
15309         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
15310
15311 2002-01-09  Richard Henderson  <rth@redhat.com>
15312
15313         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
15314         Unify code from various alternatives.
15315
15316 2002-01-09  Richard Henderson  <rth@redhat.com>
15317
15318         * regrename.c (copy_value): Ignore the copy if the source register
15319         is present in the value chain with a narrower mode.
15320
15321 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
15322
15323         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
15324         for the c4x target. Also improve layout.
15325
15326 2002-01-09  Richard Henderson  <rth@redhat.com>
15327
15328         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
15329         * config/m32r/m32r.md (and ior xor splitters): Swap operands
15330         to match insn patterns.
15331
15332 2002-01-09  Richard Henderson  <rth@redhat.com>
15333
15334         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
15335         (copyprop_hardreg_forward_1): Likewise.
15336
15337 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15338
15339         * pa.md (decrement_and_branch_until_zero): Change predicate for
15340         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
15341
15342 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
15343
15344         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
15345         gets undefined. For Darwin.
15346
15347 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15348
15349         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
15350
15351 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15352
15353         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
15354
15355 2002-01-08  Richard Henderson  <rth@redhat.com>
15356
15357         * regrename.c (copy_value): Ignore overlapping copies.
15358
15359 2002-01-08  Richard Henderson  <rth@redhat.com>
15360
15361         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
15362         as needed to avoid shared structure.
15363
15364 2002-01-08  Kazu Hirata  <kazu@hxi.com>
15365
15366         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
15367         H8/300H and H8/S.
15368
15369 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15370
15371         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
15372         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
15373         documentation of obsolete macros.
15374         * system.h: Poison these macros.
15375         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
15376         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
15377         config/c4x/c4x.h, config/clipper/clipper.h,
15378         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
15379         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
15380         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
15381         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
15382         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15383         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
15384         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
15385         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
15386         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
15387         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
15388         config/sparc/sparc.h, config/stormy16/stormy16.h,
15389         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
15390         definitions and commented out definitions of obsolete macros.
15391         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
15392         of MAX_INT_TYPE_SIZE.
15393
15394 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
15395
15396         * config/s390/s390.c (s390_preferred_reload_class): Never
15397         return ADDR_REGS if it isn't a subset of the given class.
15398         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
15399         FP_REGS, but all superclasses as well.
15400
15401         * config/s390/s390.c (s390_function_profiler): Fix thinko.
15402
15403         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
15404         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
15405         must not be a const_int.
15406
15407 2002-01-08  Richard Henderson  <rth@redhat.com>
15408
15409         * Makefile.in (toplev.o): Depend on options.h.
15410         (gcc.o): Depend on specs.h.
15411
15412 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
15413
15414         * expr.c (store_expr): Convert VOIDmode constants back to target's
15415         mode.
15416
15417 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15418
15419         * doc/invoke.texi: Markup gcc as @command.  Refer to
15420         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
15421         of http://gcc.gnu.org/thanks.html.
15422
15423 2002-01-08  Dale Johannesen  <dalej@apple.com>
15424
15425         * config/rs6000/rs6000.md: Add missing int register
15426         target case to movdf_low.
15427
15428 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
15429
15430         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
15431         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
15432         (cppinit.o): Depend on except.h.
15433         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
15434         s-specs): New rules.
15435
15436         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
15437         Don't create specs.h/options.h/gencheck.h here.  Remove
15438         unnecessary variable settings from last argument of AC_OUTPUT.
15439         * config.in, configure: Regenerate.
15440         * intl.c: Hardcode package name as "gcc".
15441
15442         * cppinit.c: Include except.h.
15443         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
15444         appropriate.
15445         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
15446         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
15447         (!)USING_SJLJ_EXCEPTIONS.
15448         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
15449
15450 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15451
15452         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
15453         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
15454         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
15455         documentation of obsolete macros.
15456         * system.h: Poison these macros.
15457         * config/d30v/d30v.h, config/ns32k/encore.h,
15458         config/stormy16/stormy16.h: Remove definitions and commented out
15459         definitions of obsolete macros.
15460
15461 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
15462
15463         * objc/objc-act.c (handle_class_ref): Mark the declaration of
15464         %sobjc_class_ref_%s as used - to prevent unwanted compiler
15465         warnings.
15466
15467 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
15468
15469         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
15470         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
15471         to insn adjusting stack/frame pointer.
15472         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
15473         accept operands that cause the insn to be non-splittable.
15474
15475 2002-01-08  Graham Stott  <grahams@redhat.com>
15476
15477         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
15478         (C_TYPE_FIELDS_VOLATILE): Likewise.
15479         (C_TYPE_BEING_DEFINED): Likewise.
15480         (C_IS_RESERVED_WORD): Likewise.
15481         (C_TYPE_VARIABLE_SIZE): Likewise.
15482         (C_DECL_VARIABLE_SIZE): Likewise.
15483         (C_MISSING_PROTOTYPE_WARNED): Likewise.
15484         (C_SET_EXP_ORIGINAL_CODE): Likewise.
15485         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
15486         parenthesis.
15487         (C_DECL_ANTICIPATED): Likewise.
15488         (c_build_type_variant): Add parenthesis.
15489
15490 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15491
15492         * gcc.c (option_map): Remove --version.
15493         (process_command): Handle -fversion following the GNU Coding
15494         Standards.  Partially addresses PR other/704.
15495
15496 2002-01-08  Graham Stott  <grahams@redhat.com>
15497
15498         * combine.c (combine_instructions): Fix typo.
15499
15500 2002-01-08  Graham Stott  <grahams@redhat.com>
15501
15502         * debug.h: Use "tree" and "rtx" throughout.
15503
15504         * debug.c: Likewise.
15505
15506 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
15507
15508         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
15509         constant pool, use the pool's version of the symbol instead.
15510
15511 2002-01-07  Richard Henderson  <rth@redhat.com>
15512
15513         * regrename.c (find_oldest_value_reg): Ignore the value chain if
15514         the original register was copied in a mode with a fewer number of
15515         hard registers than the desired mode.
15516         (copyprop_hardreg_forward_1): Likewise.
15517         (debug_value_data): Fix loop test.
15518         * toplev.c (parse_options_and_default_flags): Reenable
15519         -fcprop-registers at -O1.
15520
15521 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15522
15523         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
15524         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
15525
15526         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
15527         predicates.
15528
15529         * config/rs6000/rs6000.md: Add altivec predicate patterns.
15530
15531 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15532
15533         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
15534         (pa_output_function_prologue): Output local label at the beginning of
15535         the prologue when profiling.
15536         (hppa_profile_hook): Use the local label rather than the function label.
15537         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
15538
15539 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15540
15541         * config/rs6000/rs6000.c (print_operand): Remove extra space.
15542         (altivec_expand_unop_builtin): Fix thinko.
15543         (altivec_expand_binop_builtin): Same.
15544         (altivec_expand_ternop_builtin): Same.
15545         (altivec_expand_builtin): Same.
15546
15547 2002-01-07  Richard Henderson  <rth@redhat.com>
15548
15549         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
15550
15551 2002-01-07  Jason Merrill  <jason@redhat.com>
15552
15553         * unwind-dw2.c (execute_cfa_program): Use < again.
15554
15555 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15556
15557         * predict.c (combine_predictions_for_insn): Avoid division by zero.
15558
15559 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15560
15561         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
15562         Don't allow -1 - x -> ~x simplifications in the first pass.
15563
15564 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15565
15566         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
15567         arguments.
15568         (altivec_expand_binop_builtin): Same.
15569         (altivec_expand_unop_builtin): Same.
15570         (print_operand): Fix typo.
15571         (bdesc_1arg): Add vupk* variants.
15572
15573         * rs6000.h (rs6000_builtins): Add vupk* enums.
15574
15575         * rs6000.md: Add altivec_vupk* variants.
15576
15577 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
15578
15579         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
15580         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
15581         and last update dates.
15582
15583 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
15584
15585         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
15586
15587 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15588
15589         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
15590         * config/avr/avr.h (CPP_SPEC): Likewise.
15591         (LINK_SPEC): Likewise.
15592         (CRT_BINUTILS_SPECS): Likewise.
15593         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15594         * doc/invoke.texi (AVR Options): Document them.
15595
15596 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15597
15598         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
15599         LABEL_NUSES.
15600
15601 2002-01-07  Graham Stott  <grahams@redhat.com>
15602
15603         * config/i386/i386.h: Update copyright date.
15604         (HALF_PIC_PTR): Add parenthesis.
15605         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
15606         (CONSTANT_ALIGNMENT): Add parenthesis.
15607         (DATA_ALIGNMENT): Likewise.
15608         (LOCAL_ALIGNMENT): Likewise.
15609         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
15610         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
15611         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
15612         (HARD_REGNO_NREGS): Add paranethesis.
15613         (VALID_SSE_REG_MODE): Whitespace.
15614         (VALID_MMX_REG_MODE): Whitespace.
15615         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
15616         (ix86_hard_regno_mode_ok): Add parenthesis.
15617         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
15618         (RETURN_IN_MEMORY): Whitespace.
15619         (N_REG_CLASSES): Add parenthesis.
15620         (INTEGER_CLASS_P): Add parenthesis and wrap.
15621         (FLOAT_CLASS_P): Likewise.
15622         (SSE_CLASS_P): Likewise.
15623         (MMX_CLASS_P): Likewise.
15624         (MAYBE_INTEGER_CLASS_P): Likewise.
15625         (MAYBE_FLOAT_CLASS_P): Likewise.
15626         (MAYBE_SSE_CLASS_P): Likewise.
15627         (MAYBE_MMX_CLASS_P): Likewise.
15628         (Q_CLASS_P): Likewise.
15629         (GENERAL_REGNO_P): Uppercase macro parameter.
15630         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
15631         (FP_REGNO_P): Likewise.
15632         (ANY_FP_REGNO_P): Uppercase macro parameter.
15633         (SSE_REGNO_P): Likewise.
15634         (SSE_REGNO): Likewise.
15635         (SSE_REG_P): Likewise.
15636         (SSE_FLOAT_MODE_P): Likewise.
15637         (MMX_REGNO_P): Likewise.
15638         (MMX_REG_P):Likewise.
15639         (STACK_REG_P): Likewise.
15640         (NON_STACK_REG_P): Likewise.
15641         (STACK_TOP_P): Likewise.
15642         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
15643         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
15644         (SECONDARY_MEMORY_NEEDED): Likewise.
15645         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
15646         (MD_ASM_CLOBBERS): Whitespace and wrap.
15647         (MUST_PASS_IN_STACK): Whitespace and wrap.
15648         (RETURN_POPS_ARGS): Add parenthesis.
15649         (INIT_CUMULATIVE_ARGS): Likewise.
15650         (FUNCTION_ARG): Likewise.
15651         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
15652         (SETUP_INCOMING_VARARGS): Likewise.
15653         (BUILD_VA_LIST_TYPE):  Add parenthesis.
15654         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
15655         parenthsis.
15656         (EXPAND_BUILTIN_VA_ARG): Likewise.
15657         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
15658         (INITIALIZE_TRAMPOLINE): Add parenthesis.
15659         (INITIAL_ELIMINATION_OFFSET): Likewise.
15660         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
15661         (REGNO_OK_FOR_BASE_P): Likewise.
15662         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
15663         (REGNO_OK_FOR_DIREG_P): Likewise.
15664         (REG_OK_FOR_INDEX_P): Whitespace.
15665         (REG_OK_FOR_BASE_P): Whitespace.
15666         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
15667         parenthesis.
15668         (FIND_BASE_TERM): Fix typo.
15669         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
15670         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
15671         (SYMBOLIC_CONST; Whitespace.
15672         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
15673         (ENCODE_SECTION_INFO): Whitespace.
15674         (FINALIZE_PIC): Remove do { ... } while (0).
15675         (PROMOTE_MODE): Wrap in do { ... } while (0).
15676         (CONST_COSTS): Whitespace.
15677         (RTX_COSTS): Add paramethesis, whitespace and wrap.
15678         (REGISTER_MOVE_COST): Add parenthesis.
15679         (MEMORY_MOVE_COST): Likewise.
15680         (EXTRA_CC_MODES): Whitespace.
15681         (SELECT_CC_MODE): Add parenthesis and whitespace.
15682         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
15683         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
15684         (ASM_OUTPUT_LABEL): Add paramethesis.
15685         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
15686         (ASM_OUTPUT_REG_POP): Likewise.
15687         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
15688         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15689
15690         * config/i386/i386.c: Update copyright.
15691         (CHECK_STACK_LIMIT): Add parenthesis.
15692         (AT_BP): Uppercase macro parameter.
15693         (x86_64_int_parameter_registers): Constify.
15694         (x86_64_int_return_registers): Likewise.
15695         (ix86_compare_op0): Use rtx.
15696         (construct_container): Constify INTREG parameter.
15697         (function_arg): Use rtx.
15698
15699         * diagnostic.h: Update copyright date.
15700         (output_buffer_state): Add parenthesis.
15701         (output_buffer_format_args): Likewise.
15702
15703         * combine.c (combine_instructions): Replace XEXP (links, 0)
15704         with link.
15705
15706 2002-01-06  H.J. Lu <hjl@gnu.org>
15707
15708         * cfgcleanup.c (thread_jump): Fix 2 typos.
15709
15710 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
15711
15712         * config.gcc: Add support for --enable-altivec.
15713
15714 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15715
15716         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
15717
15718 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
15719
15720         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
15721         __objc_class_name_*.
15722
15723 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15724
15725         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
15726
15727 2002-01-06  Richard Henderson  <rth@redhat.com>
15728
15729         * reorg.c (emit_delay_sequence): Remove death notes, not merely
15730         nop them out.  Increment label reference count for REG_LABEL.
15731         (fill_slots_from_thread): Frob label reference count around
15732         delete_related_insns.
15733
15734 2002-01-05  Richard Henderson  <rth@redhat.com>
15735
15736         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
15737         jump threading.
15738
15739 2002-01-05  Richard Henderson  <rth@redhat.com>
15740
15741         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
15742         * integrate.c (output_inline_function): Likewise.
15743         * toplev.c (rest_of_compilation): Do it here instead.  Move call
15744         to remove_unnecessary_notes after emitting abstract instance.
15745         Force an emitted nested function to have its parent emited as well.
15746         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
15747         for null.
15748         (rtl_for_decl_location): Do not look at reload data structures
15749         before reload has run.
15750
15751 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15752
15753         * cse.c: Fix formatting.
15754         * dwarf2asm.c: Likewise.
15755         * dwarf2out.c: Likewise.
15756         * explow.c: Likewise.
15757         * expmed.c: Likewise.
15758         * function.c: Likewise.
15759         * gcov.c: Likewise.
15760         * gencheck.c: Likewise.
15761         * genrecog.c: Likewise.
15762         * ggc-common.c: Likewise.
15763         * ggc-page.c: Likewise.
15764         * global.c: Likewise.
15765
15766 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15767
15768         * combine.c: Fix formatting.
15769
15770 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
15771
15772         PR middle-end/1557
15773         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
15774
15775 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
15776
15777         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
15778         as 1 for __powerpc64__ as well.
15779
15780         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
15781
15782         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
15783         return it.
15784
15785 2002-01-05  Daniel Berlin  <dan@dberlin.org>
15786
15787         * lcm.c: Revert change, due to performance regression it causes on
15788         SPEC because it's slightly more conservative (sigh, I hate
15789         edge-based LCM).
15790
15791 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
15792
15793         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
15794
15795 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15796
15797         * doc/cppinternals.texi: Update.
15798
15799 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
15800
15801         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
15802         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
15803         negatives.
15804         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
15805         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
15806         kludge for pre-october-14th mmix versions to handle new-found bug
15807         with PUSHJ/PUSHGO and the register stack.
15808         * config/mmix/mmix.h (struct machine_function): Rename member
15809         has_call_value_without_parameters to has_call_without_parameters.
15810         All referers changed.
15811         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
15812         TARGET_MASK_BRANCH_PREDICT): New macros.
15813         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
15814         -mno-reg-stack-fill-bug-workaround.
15815         * config/mmix/mmix.md ("call"): Set struct machine member
15816         has_call_without_parameters.
15817
15818 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15819
15820         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
15821
15822 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15823
15824         * cfgcleanup.c: Include tm_p.h
15825         (mark_effect): Fix handling of hard register; fix handling of SET
15826
15827 2002-01-04  Kazu Hirata  <kazu@hxi.com>
15828
15829         * config/h8300/h8300.md (anonymous patterns): Check that
15830         operands are registers before using REGNO on them.
15831
15832 2002-01-03  Roland McGrath  <roland@frob.com>
15833
15834         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
15835
15836 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
15837
15838         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
15839         * c-common.h (genrtl_expr_stmt_value): Likewise.
15840         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
15841         (expand_expr_stmt_value): Add maybe_last argument.
15842         Don't warn about statement with no effect if it is the last statement
15843         in expression statement.
15844         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
15845         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
15846         expand_expr_stmt_value.
15847         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
15848         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
15849         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
15850         as maybe_last to expand_expr_stmt_value.
15851
15852 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
15853
15854         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
15855         be passed in, do not build it.
15856         (c_begin_if_stmt): New function.
15857         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15858         * c-common.h (c_expand_start_cond): Update prototype.
15859         (c_begin_if_stmt): Prototype new function.
15860         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15861         * c-parse.in (if_prefix): Use c_begin_if_stmt,
15862         c_begin_while_stmt and c_finish_while_stmt_cond.
15863
15864 2002-01-04  William Cohen  <wcohen@redhat.com>
15865
15866         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
15867         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15868         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15869         * config/pa/som.h (ASM_FILE_START): Likewise.
15870
15871 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
15872
15873         * lcm.c: Include df.h.
15874         Add available_transfer_function prototype.
15875         (compute_available): Rework to use iterative dataflow framework.
15876         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
15877         with bb_info in df.h
15878         (available_transfer_function): New function.
15879
15880         * Makefile.in (lcm.o): add df.h to dependencies.
15881
15882 2002-01-04  Richard Henderson  <rth@redhat.com>
15883
15884         * config/alpha/alpha.c (some_operand): Accept HIGH.
15885         (input_operand): Likewise; accept simple references to globals.
15886         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
15887         (alpha_const_double_ok_for_letter_p): Likewise.
15888         (alpha_extra_constraint): Likewise.
15889         (alpha_preferred_reload_class): Likewise.  Do not force
15890         symbolic constants to memory.
15891         (alpha_legitimate_address_p): Accept simple references
15892         to small_symbolic_operand.
15893         (alpha_legitimize_address): New arg scratch.  Be prepared to be
15894         called when no_new_pseudos.  Emit simple symbolic references.
15895         Split integers into low, high, and rest.
15896         (alpha_expand_mov): Use alpha_legitimize_address.
15897         (some_small_symbolic_mem_operand): New.
15898         (split_small_symbolic_mem_operand): New.
15899         * config/alpha/alpha-protos.h: Update.
15900         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
15901         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
15902         (EXTRA_CONSTRAINT): Likewise.
15903         (PREFERRED_RELOAD_CLASS): Likewise.
15904         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
15905         (PREDICATE_CODES): Update.
15906         * config/alpha/alpha.md: New post-reload splitters to convert
15907         simplfied symbolic operands to the form that references $29.
15908         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
15909         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
15910
15911 2002-01-03  Richard Henderson  <rth@redhat.com>
15912
15913         * local-alloc.c (function_invariant_p): Update commentary.
15914
15915 2002-01-04  H.J. Lu <hjl@gnu.org>
15916
15917         * toplev.c (rest_of_compilation): Fix a typo when calling
15918         cleanup_cfg.
15919
15920 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15921
15922         * c-common.c: Fix formatting.
15923         * diagnostic.c: Likewise.
15924         * doloop.c: Likewise.
15925         * dwarf2out.c: Likewise.
15926
15927 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15928
15929         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
15930         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
15931
15932 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15933
15934         * cpperror.c: Update comments and copyright.
15935         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
15936         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
15937
15938 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15939
15940         * collect2.c (main): Use strcmp when testing for "-shared".
15941
15942 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15943
15944         * cppmacro.c: Don't include intl.h.  Update comments.
15945         (new_number_token): Allocate enough buffer for 64-bit unsigned
15946         integers; update prototype.
15947         * cppmain.c: Update comments.
15948
15949 2002-01-03  William Cohen  <wcohen@redhat.com>
15950
15951         * function.h (struct function): Add profile.
15952         (current_function_profile): New.
15953         doc/extend.texi: Update documentation.
15954         * final.c (final_start_function): Use current_function_profile
15955         instead of profile_flag.
15956         (profile_after_prologue): Likewise.
15957         * function.c (expand_function_start): Likewise.
15958         (expand_function_start): Likewise.
15959         * config/alpha/alpha.c (direct_call_operand):
15960         (alpha_does_function_need_gp): Likewise.
15961         (alpha_expand_prologue): Likewise.
15962         * config/arm/arm.c (arm_expand_prologue): Likewise.
15963         thumb_expand_prologue: Likewise.
15964         * config/d30v/d30v.c (d30v_stack_info): Likewise.
15965         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
15966         (fr30_expand_prologue): Likewise.
15967         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
15968         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
15969         * config/i386/i386.h (FINALIZE_PIC): Likewise.
15970         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15971         * config/i960/i960.c (i960_output_function_prologue): Likewise.
15972         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
15973         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
15974         (m32r_expand_prologue): Likewise.
15975         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
15976         (m88k_expand_prologue): Likewise.
15977         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
15978         * config/mips/mips.c (compute_frame_size): Likewise.
15979         (mips_expand_prologue): Likewise.
15980         (mips_can_use_return_insn): Likewise.
15981         * config/pa/elf.h (ASM_FILE_START): Likewise.
15982         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15983         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15984         * config/pa/som.h (ASM_FILE_START): Likewise.
15985         * config/romp/romp.c (romp_using_r14): Likewise.
15986         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
15987         (rs6000_stack_info): Likewise.
15988         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15989         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
15990         * config/v850/v850.c (compute_register_save_size): Likewise.
15991
15992 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
15993
15994         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
15995         gen_lowpart_common fails, use gen_lowpart_SUBREG.
15996
15997 2002-01-03  Turly O'Connor  <turly@apple.com>
15998
15999         * darwin.c (machopic_output_possible_stub_label): Don't generate
16000         stub routines for pseudo-stubs which we've just defined.
16001
16002 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16003
16004         * builtins.c: Fix formatting.
16005         * c-typeck.c: Likewise.
16006         * combine.c: Likewise.
16007         * expr.c: Likewise.
16008         * loop.c: Likewise.
16009
16010 2002-01-03  Andreas Schwab  <schwab@suse.de>
16011
16012         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
16013         and return true if _cpp_push_next_buffer pushed a new include
16014         file.
16015         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
16016         _cpp_pop_file_buffer did not push a new file.
16017         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
16018
16019 2002-01-02  Eric Christopher  <echristo@redhat.com>
16020
16021         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
16022         FIND_REG_INC_NOTE call. Update copyright.
16023         * loop.c (canonicalize_condition): Ditto.
16024         * reorg.c (delete_scheduled_jump): Ditto.
16025
16026 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16027
16028         * gcse.c: Fix formatting.
16029
16030 2002-01-03  Graham Stott  <grahams@redhat.com>
16031
16032         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
16033         forward defs for struct tags rtx_def, union_tree, rtvec_def
16034         also output corresponding typedefs for rtx, tree, and rtvec.
16035
16036         * system.h: Move forward defs for struct tags rtx_def, union_tree,
16037         rtvec_def along with corresponding typedefs for rtx, tree, and
16038         rtvec to config.h, hconfig.h, tconfig.h.
16039
16040 2002-01-03  Graham Stott  <grahams@redhat.com>
16041
16042         * tree.h: Update copyright date.
16043         (IS_EXPR_CODE_CLASS): Add parenthesis.
16044         (TREE_SET_CODE): Add whitespace.
16045         (TREE_CHECK): Add parenthesis.
16046         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
16047         (CST_OR_CONSTRUCTOR_CHECK):
16048         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
16049         (TREE_SYMBOL_REFERENCED): Whitespace.
16050         (INT_CST_LT): Likewise.
16051         (INT_CST_LT_UNSIGNED): Likewise.
16052         (tree_real_cst): Unwrap comment.
16053         (tree_string): Likewise.
16054         (tree_complex): Likewise.
16055         (IDENTIFIER_POINTER): correct cast.
16056         (SAVE_EXPR_CONTEXT): Whitespace.
16057         (EXPR_WFL_FILENAME_NODE): Likewise.
16058         (EXPR_WFL_FILENAME): Remove parenthesis.
16059         (DECL_ORIGIN): Add parenthesis.
16060         (DECL_FROM_INLINE): Use NULL_TREE.
16061         (build_int_2): Whitespace.
16062         (build_type_variant): Add parenthesis.
16063
16064         * gcc/jcf-parse.c: Update copyright date.
16065         (yyparse): Constify resource_filename.
16066
16067 2002-01-03  Graham Stott  <grahams@redhat.com>
16068
16069         * rtl.h: Update copyright date.
16070         (RTL_CHECK1): Wrap long line.
16071         (RTL_CHECK2): Likewise.
16072         (RTL_CHECKC1): Wrap long line and whitespace.
16073         (RTL_CHECKC2): Likewise.
16074         (XWINT): Whitespace.
16075         (XINT): Likewise.
16076         (XSTR): Likewise.
16077         (XEXP): Likewise.
16078         (XVEC): Likewise.
16079         (XMODE): Likewise.
16080         (XBITMAP): Likewise.
16081         (XTREE): Likewise.
16082         (XBBDEF): Likewise.
16083         (XTMPL): Likewise.
16084         (X0WINT): Likewise.
16085         (X0INT):Likewise.
16086         (X0UINT): Likewise.
16087         (X0STR): Likewise.
16088         (X0EXP): Likewise.
16089         (X0VEC): Likewise.
16090         (X0MODE): Likewise.
16091         (X0BITMAP): Likewise.
16092         (X0TREE): Likewise.
16093         (X0BBDEF): Likewise.
16094         (X0ADVFLAGS): Likewise.
16095         (X0CSELIB): Likewise.
16096         (X0MEMATTR): Likewise.
16097         (XCWINT): Likewise.
16098         (XCINT): Likewise.
16099         (XCUINT): Likewise.
16100         (XCSTR): Likewise.
16101         (XCEXP): Likewise.
16102         (XCVEC): Likewise.
16103         (XCMODE): Likewise.
16104         (XCBITMAP): Likewise.
16105         (XCTREE): Likewise.
16106         (XCBBDEF): Likewise.
16107         (XCADVFLAGS): Likewise.
16108         (XCCSELIB): Likewise.
16109         (XC2EXP): Likewise.
16110         (INSN_UID): Likewise.
16111         (PREV_INSN): Likewise.
16112         (PATTERN): Likewise.
16113         (INSN_CODE): Likewise.
16114         (PUT_REG_NOTE_KIND): Likewise.
16115         (CODE_LABEL_NUMBER): Likewise.
16116         (NOTE_SOURCE_FILE): Likewise.
16117         (NOTE_BLOCK): Likewise.
16118         (NOTE_EH_HANDLER): Likewise.
16119         (NOTE_RANGE_INFO): Likewise.
16120         (NOTE_LIVE_INFO): Likewise.
16121         (NOTE_BASIC_BLOCK): Likewise.
16122         (NOTE_EXPECTED_VALUE): Likewise.
16123         (NOTE_LINE_NUMBER): Likewise.
16124         (LABEL_NAME): Likewise.
16125         (LABEL_NUSES): Likewise.
16126         (LABEL_ALTERNATE_NAME): Likewise.
16127         (ADDRESSOF_DECL): Likewise.
16128         (JUMP_LABEL): Likewise.
16129         (LABEL_NEXTREF): Likewise.
16130         (REGNO): Likewise.
16131         (ORIGINAL_REGNO: Likewise.
16132         (HARD_REGISTER_NUM_P): Add parenthesis.
16133         (SUBREG_REG): Whitespace.
16134         (SUBREG_BYTE): Likewise.
16135         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
16136         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
16137         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
16138         (ASM_OPERANDS_INPUT_VEC): Likewise.
16139         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
16140         (ASM_OPERANDS_INPUT): Likewise.
16141         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
16142         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
16143         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
16144         (ASM_OPERANDS_INPUT_MODE): Likewise.
16145         (ASM_OPERANDS_SOURCE_FILE): Likewise.
16146         (ASM_OPERANDS_SOURCE_LINE): Likewise.
16147         (MEM_SET_IN_STRUCT_P): Minor reformat.
16148         (TRAP_CONDITION): Whitespace.
16149         (TRAP_CODE): Likewise.
16150         (COND_EXEC_TEST): Likewise.
16151         (COND_EXEC_CODE): Likewise.
16152         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
16153         (PHI_NODE_P): Add parenthesis.
16154         (plus_constant): Whitespace and add parenthesis.
16155
16156 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16157
16158         * config/avr/avr.c: Fix comment typos.
16159         * config/c4x/c4x.md: Likewise.
16160         * config/dsp16xx/dsp16xx.h: Likewise.
16161         * config/dsp16xx/dsp16xx.md: Likewise.
16162         * config/i386/i386.md: Likewise.
16163         * config/ia64/ia64.c: Likewise.
16164         * config/m32r/m32r.h: Likewise.
16165         * config/m68hc11/m68hc11.md: Likewise.
16166         * config/mmix/mmix.c: Likewise.
16167         * config/mn10200/mn10200.c: Likewise.
16168         * config/romp/romp.c: Likewise.
16169         * config/sh/sh.c: Likewise.
16170         * config/stormy16/stormy16.c: Likewise.
16171         * config/stormy16/stormy16.h: Likewise.
16172         * config/stormy16/stormy16.md: Likewise.
16173
16174 2002-01-03  Graham Stott  <grahams@redhat.com>
16175
16176         * loop.h: Update copyright date.
16177         (LOOP_MOVABLES): Fix typo.
16178         (LOOP_REGS): Likewise.
16179         (LOOP_IVS): Likewise.
16180
16181 2002-01-03  Graham Stott  <grahams@redhat.com>
16182
16183         * cppinit.c: Update copyright date.
16184         Don't include output.h
16185         * Makefile.in: Update copyright date.
16186         Update dependency.
16187
16188 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16189
16190         PR c/5226
16191         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
16192         (-pthread) Add to RS/6000 options.
16193
16194 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16195
16196         * except.c: Fix comment typos.
16197         * loop.c: Likewise.
16198         * varasm.c: Likewise.
16199         * doc/tm.texi: Fix a typo.
16200
16201 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
16202
16203         * c-typeck.c (output_init_element): Allow initializing static storage
16204         duration objects with compound literals.
16205
16206 2002-01-02  Richard Henderson  <rth@redhat.com>
16207
16208         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
16209         after abusing it.
16210
16211 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16212
16213         * gcc.c (default_compilers): Const-ify.
16214         * mips-tdump.c (stab_names): Likewise.
16215         * mips-tfile.c (map_coff_types, map_coff_storage,
16216         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
16217         pseudo_ops_t, pseudo_ops): Likewise.
16218         * protoize.c (default_include): Likewise
16219
16220         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
16221         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
16222         Add array size in declaration.
16223         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
16224         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
16225         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
16226         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
16227         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
16228         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
16229         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
16230         emtens, make_nan): Const-ify.
16231         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
16232         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
16233
16234 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
16235
16236         * config.gcc (ia64-*-*): Set extra_headers.
16237         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
16238         * config/alpha/t-osf: Remove.
16239         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
16240
16241 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
16242
16243         * config/rs6000/t-aix43: Revert previous change.
16244
16245 2002-01-02  Jason Merrill  <jason@redhat.com>
16246
16247         * c-decl.c (c_expand_body): Call outlining_inline_function when
16248         emitting an inline function out of line.
16249
16250 2002-01-02  Richard Henderson  <rth@redhat.com>
16251
16252         * dwarf2out.c (limbo_die_node): Add created_for member.
16253         (new_die): New argument created_for.  Update all callers.
16254         (mark_limbo_die_list): New.
16255         (dwarf2out_init): Register limbo_die_list as a root.
16256         (dwarf2out_finish): Force insert limbo dies into their function
16257         context.
16258
16259 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
16260
16261         PR c++/5089
16262         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
16263
16264 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16265
16266         * config/h8300/fixunssfsi.c: Update copyright.
16267         Fix comment typos.
16268         Fix formatting.
16269         * config/h8300/h8300.c: Update copyright.
16270         Eliminate warnings.
16271
16272 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16273
16274         * config/romp/romp.c: Fix comment formatting.
16275         * config/romp/romp.h: Likewise.
16276         * config/romp/romp.md: Likewise.
16277         * config/s390/s390.c: Likewise.
16278         * config/stormy16/stormy16.c: Likewise.
16279         * config/stormy16/stormy16.h: Likewise.
16280
16281 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
16282
16283         * c-common.h (genrtl_expr_stmt_value): Declare.
16284         * c-semantics.c (genrtl_goto_stmt): Redirect to...
16285         (genrtl_goto_stmt_value): ... this new function.  Pass new
16286         argument down to expand_expr_stmt_value, taking
16287         TREE_ADDRESSABLE into account.
16288         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
16289         STMT_EXPR as addressable, i.e., one whose result we want.
16290         * expr.c (expand_expr): Don't save expression statement value
16291         of labeled_blocks or loop_exprs.
16292         * stmt.c (expand_expr_stmt): Redirect to...
16293         (expand_expr_stmt_value): ... this new function.  Use new
16294         argument to tell whether to save expression value.
16295         (expand_end_stmt_expr): Reset last_expr_type and
16296         last_expr_value if we don't have either.
16297         * tree-inline.c (declare_return_variable): Mark its use
16298         statement as addressable.
16299         * tree.h: Document new use of TREE_ADDRESSABLE.
16300         (expand_expr_stmt_value): Declare.
16301
16302 2002-01-01  Tom Rix  <trix@redhat.com>
16303
16304         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
16305         rs6000_emit_allocate_stack.
16306
16307 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
16308
16309         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
16310         ${srcdir}/ginclude/ to every entry in extra_headers.
16311         * configure: Regenerate.
16312         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
16313         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
16314         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
16315         * ginclude/proto.h: Rename to config/convex/proto.h.
16316
16317 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16318
16319         * attribs.c (handle_vector_size_attribute): Use host_integerp
16320         and tree_int_cst; remove warnings.
16321         * caller-save.c (insert_restore): Add cast to get rid of warning.
16322         (insert_save): Likewise.
16323         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
16324         * regmove.c (find_matches): Add temporary var to kill a warning.
16325
16326 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
16327
16328         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
16329         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
16330         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
16331         (vms-dwarf2eh.o): Add Makefile rule.
16332         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
16333         * config/alpha/vms-dwarf2eh.asm: New file.
16334
16335         * gcc.c (delete_if_ordinary): Delete all versions.
16336
16337 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16338
16339         * config/mmix/mmix.md: Update FIXME to not mention
16340         define_constants.
16341         (MMIX_rJ_REGNUM): New define_constants constant.
16342         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
16343         "*movdicc_real"): Adjust contraints formatting.
16344         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
16345         for branch prediction.
16346         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
16347         output template.
16348         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
16349         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
16350         number.  Delete related FIXMEs.
16351         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
16352         from number to MMIX_rJ_REGNUM.
16353         (TARGET_MASK_BRANCH_PREDICT): New.
16354         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
16355         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
16356         value.  Add -mbranch-predict and -mno-branch-predict.
16357         (TARGET_VERSION): Drop date.
16358         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
16359         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
16360         for finding out global symbols.
16361         (mmix_asm_output_labelref): Revert condition for global symbol.
16362         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
16363         (mmix_print_operand_punct_valid_p): A '+' is valid.
16364
16365 See ChangeLog.6 for earlier changes.