OSDN Git Service

2002-05-27 H.J. Lu (hjl@gnu.org)
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-27  H.J. Lu  (hjl@gnu.org)
2
3         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
4         (num_positive): Likewise.
5         (num_div_op): Likewise.
6
7 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8
9         * c-common.c (c_common_init): Always use intmax_t.
10
11 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12
13         * c-common.c (c_common_init): Use intmax_t for now.
14
15 2002-05-24  Andrew Haley  <aph@redhat.com>
16
17         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
18         if T is a boolean type.
19
20 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21
22         * basic-block.h (last_basic_block): Defined as synonym for
23         n_basic_blocks.
24         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
25         flow_depth_first_order_compute, flow_preorder_transversal_compute,
26         flow_dfs_compute_reverse_init): Replaced relevant occurences of
27         n_basic_blocks with last_basic_block.
28         * cfgbuild.c (make_edges): Likewise.
29         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
30         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
31         * combine.c (combine_instructions): Likewise.
32         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
33         iterative_dataflow_bitmap): Likewise.
34         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
35         calc_idoms, idoms_to_doms): Likewise.
36         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
37         Likewise.
38         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
39         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
40         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
41         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
42         delete_null_pointer_checks, compute_code_hoist_vbeinout,
43         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
44         compute_store_table, build_store_vectors): Likewise.
45         * haifa-sched.c (sched_init): Likewise.
46         * ifcvt.c (if_convert): Likewise.
47         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
48         pre_edge_lcm, compute_available, compute_nearerout,
49         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
50         Likewise.
51         * predict.c (estimate_probability, process_note_prediction,
52         note_prediction_to_br_prob): Likewise.
53         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
54         * recog.c (split_all_insns, peephole2_optimize): Likewise.
55         * regrename.c (copyprop_hardreg_forward): Likewise.
56         * resource.c (init_resource_info): Likewise.
57         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
58         init_regions, schedule_insns): Likewise.
59         * ssa-ccp.c (ssa_const_prop): Likewise.
60         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
61         * ssa.c (compute_dominance_frontiers,
62         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
63
64         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
65         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
66         sizes consistently.
67
68 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
69
70         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
71         new.
72         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
73         hoist_insn_after, hoist_insn_to_edge): New.
74
75 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
76
77         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
78         (PROP_FINAL): Include.
79         * flow.c (life_analysis, update_life_info,
80         init_propagate_block_info, mark_set_1, mark_used_rgs):
81         Support SCAN_DEAD_STORE.
82
83 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
84
85         * c-common.c (c_common_init): Set CPP arithmetic precision.
86         * cppexp.c (cpp_num_part): Move typedef ...
87         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
88         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
89         (sanity_checks): Update.
90
91 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
92
93         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
94         (mkheaders): New rule.
95         (install-mkheaders): New rule.
96         * configure.in (all_outputs): Add mkheaders.
97         * configure: Regenerate.
98         * mkheaders.in: New file.
99
100 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
101
102         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
103
104 2002-05-26  Andreas Jaeger  <aj@suse.de>
105
106         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
107
108 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
109
110         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
111         right_shift): Remove.
112         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
113         HIGH_PART): New.
114         (struct op): Use cpp_num.
115         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
116         num_part_mul, num_unary_op, num_binary_op, num_negate,
117         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
118         num_div_op, num_lshift, num_rshift, append_digit): New.
119         (interpret_number, parse_defined, eval_token, reduce): Update
120         for two-integer arithmetic.
121         (binary_handler): New typedef.
122         (optab): Update.
123         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
124         (_cpp_parse_expr, reduce): Update to handle two-integers.
125         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
126
127 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
128
129         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
130         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
131         branch insn into account, do not assume 1.
132         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
133         over single word insn.  Handle upper half of I/O space too.
134         * config/avr/avr.md (*sbrx_branch): Use it.
135         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
136         (*sbix_branch, *sbix_branch_bit7): Likewise.
137         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
138         Use RTL peepholes to optimize register operand sign tests.
139
140 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
141
142         * config/avr/avr.c (avr_asm_only_p): New variable.
143         (avr_override_options): Set it here if AVR1.
144         (asm_file_start): Test it here, report an error if set.
145
146 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
147
148         * alias.c: Fix formatting.
149         * attribs.c: Likewise.
150         * bb-reorder.c: Likewise.
151         * bitmap.c: Likewise.
152         * bitmap.h: Likewise.
153         * builtins.c: Likewise.
154
155 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
156
157         * reload.c (find_valid_class): Accept new argument DEST,
158         choose class accordingly.
159         (push_reload): Update callers.
160
161 2002-05-26  Andreas Jaeger  <aj@suse.de>
162
163         * combine.c (combine_instructions): Do not indent #if for
164         traditional C.
165
166 2002-05-25  Richard Henderson  <rth@redhat.com>
167
168         * c-pragma.c (apply_pragma_weak): Convert value identifier to
169         string for decl_attributes.
170         (handle_pragma_weak): Call assemble_alias if we're modifying
171         an existing decl.
172
173 2002-05-25  Richard Henderson  <rth@redhat.com>
174
175         PR target/6788
176         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
177         using rtl instead of fprintf.
178         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
179         * config/sparc/sparc-protos.h: Update.
180
181 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
182
183         * Makefile.in (C_COMMON_H): Fix.
184         Update other targets.
185         * c-common.c: Don't include c-lex.h.
186         (builtin_define_with_value): Make static and prototype.
187         (builtin_define_std): Move from c-lex.h.
188         * c-common.h (init_c_lex): Move from c-lex.h.
189         * c-decl.c: Don't include c-lex.h.
190         (make_pointer_declarator): Move from c-parse.in.
191         * c-lex.c: Don't include c-lex.h.
192         * c-lex.h: Remove.
193         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
194         (make_pointer_declarator): Move to c-decl.c.
195         * c-pragma.c: Don't include c-lex.h.
196         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
197         * c-tree.h (make_pointer_declarator): New.
198 doc:
199         * passes.texi, tm.texi: Update.
200 objc:
201         * Make-lang.in: Update and correct.
202         * objc-act.c: Don't include c-lex.h or cpplib.h.
203 treelang:
204         * treetree.c: Don't include c-lex.h.
205 config:
206         * darwin-c.c: Don't include c-lex.h.
207         * c4x/c4x-c.c: Don't include c-lex.h.
208         * c4x/t-c4x: Update.
209         * i370/i370-c.c: Don't include c-lex.h.
210         * i370/t-i370: Update.
211         * i960/i960-c.c: Don't include c-lex.h.
212         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
213         * i960/t-960bare: Update.
214         * i960/t-vxworks: Update.
215         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
216         * rs6000/t-darwin: Update.
217         * rs6000/t-rs6000-c-rule: Update.
218         * v850/v850-c.c: Don't include c-lex.h.
219         * v850/v850.c: Don't include c-lex.h or cpplib.h.
220
221
222 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
223
224         * tree.def: Fix typos.
225         * doc/install.texi: Likewise.
226
227 2002-05-25  Richard Henderson  <rth@redhat.com>
228
229         * configure.in (HAVE_AS_TLS): Add ia64 test.
230         * configure: Rebuild.
231         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
232         (override_options): Set it.
233         (TARGET_HAVE_TLS): New.
234         (sdata_symbolic_operand): Look for 's'.
235         (tls_symbolic_operand): New.
236         (ia64_expand_load_address): Abort for tls symbols.
237         (gen_tls_get_addr): New.
238         (gen_thread_pointer): New.
239         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
240         (rtx_needs_barrier): Add new unspecs.
241         (ia64_encode_section_info): Handle tls symbols.
242         (ia64_strip_name_encoding): Strip two encoding chars.
243         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
244         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
245         (TARGET_OPTIONS): Add tls-size.
246         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
247         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
248         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
249         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
250         (movsf, movdf): Likewise.
251         (movdi_symbolic): Use match_scratch.  Don't split if we won't
252         have a scratch availiable.
253         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
254         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
255         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
256         * config/ia64/ia64-protos.h: Update.
257         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
258         sdata_symbolic_operand.
259         (ASM_OUTPUT_LABELREF): Strip two characters.
260
261 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
262
263         * combine.c (simplify_set): Remove an unnecessary subreg.
264
265 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
266
267         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
268
269         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
270
271 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
272
273         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
274
275 2002-05-25  Roger Sayle  <roger@eyesopen.com>
276
277         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
278         (cond (compare x y) 0) into the equivalent (cond x y).
279
280 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
281
282         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
283
284 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
285
286         * config.gcc: Remove all stanzas for previously obsoleted
287         systems.  Where necessary, add explicit error stanzas to
288         prevent removed systems from being misidentified as something
289         else.  Begin a fresh obsoletions list, with the systems that
290         were reprieved last round.
291         * doc/install.texi: Remove all mention of dead targets.
292         * fixinc/mkfixinc.sh: Likewise.
293
294         * config/arm/arm.h: Bit 31 of target_flags is no longer
295         reserved.
296
297         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
298         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
299         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
300         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
301         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
302         config/alpha/osf12.h, config/alpha/osf2or3.h,
303         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
304         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
305         config/clipper/clipper-protos.h, config/clipper/clipper.c,
306         config/clipper/clipper.h, config/clipper/clipper.md,
307         config/clipper/clix.h, config/convex/convex-protos.h,
308         config/convex/convex.c, config/convex/convex.h,
309         config/convex/convex.md, config/convex/fixinc.convex,
310         config/convex/proto.h, config/elxsi/elxsi-protos.h,
311         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
312         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
313         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
314         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
315         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
316         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
317         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
318         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
319         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
320         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
321         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
322         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
323         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
324         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
325         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
326         config/m68k/altos3068.h, config/m68k/apollo68.h,
327         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
328         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
329         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
330         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
331         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
332         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
333         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
334         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
335         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
336         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
337         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
338         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
339         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
340         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
341         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
342         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
343         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
344         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
345         config/mips/dec-osf1.h, config/mips/elflorion.h,
346         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
347         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
348         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
349         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
350         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
351         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
352         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
353         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
354         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
355         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
356         config/ns32k/sequent.h, config/ns32k/tek6000.h,
357         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
358         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
359         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
360         config/sparc/rtems.h, config/we32k/we32k-protos.h,
361         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
362         Delete file.
363
364 2002-05-24  Richard Henderson  <rth@redhat.com>
365
366         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
367         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
368         * config/i386/i386.c (tls_model_chars): Add leading space.
369         (tls_symbolic_operand): Don't bias by 1.
370         (legitimize_address): Don't unbias by 1.
371
372 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
373
374         * lcm.c (optimize_mode_switching): Change bb used as indices
375         to bb->index.
376
377 2002-05-24  Richard Henderson  <rth@redhat.com>
378
379         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
380         of update_life_info_in_dirty_blocks.
381
382 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
383
384         PR other/6782
385         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
386
387 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
388
389         PR preprocessor/6780
390         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
391
392 2002-05-24  Jim Blandy  <jimb@redhat.com>
393
394         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
395         entry with a type code of zero, marking the end of the compilation
396         unit's macro info.
397
398 2002-05-24  Richard Henderson  <rth@redhat.com>
399
400         * varasm.c (asm_output_bss): Always output one byte.
401         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
402
403 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
404
405         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
406         namespace.
407
408 2002-05-24  Andreas Jaeger  <aj@suse.de>
409
410         * ggc-page.c (alloc_page): Cast variables of type size_t to
411         unsigned long, adjust printf format string.
412         (ggc_alloc): Likewise.
413         (ggc_print_statistics): Likewise.
414         (ggc_print_statistics): Correct printf format string for SCALE to
415         use unsigned long.
416
417 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
418
419         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
420
421 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
422             Zack Weinberg     <zack@codesourcery.com>
423
424         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
425         quoted strings.
426         * dwarf2out.c (lookup_filename): Properly quote filename in .file
427         directive in assembly file.
428         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
429         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
430         * config/pj/pj.h (ASM_FILE_START): Likewise.
431         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
432         * config/avr/avr.c (asm_file_end): Likewise.
433         * toplev.c (output_quoted_string): Handle possibly signed plain
434         char.
435         * toplev.h (output_clean_symbol_name): Declare
436         * toplev.c (output_clean_symbol_name): Define.
437         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
438         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
439
440 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
441
442         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
443
444 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
445
446         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
447         of size of unsigned.
448
449 2002-05-23  Richard Henderson  <rth@redhat.com>
450
451         * configure.in (HAVE_AS_TLS): New test.
452         * config.in, configure: Rebuild.
453         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
454         (ix86_tls_dialect_string, ix86_tls_dialect): New.
455         (override_options): Set it.
456         (tls_model_chars, tls_symbolic_operand): New.
457         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
458         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
459         (local_exec_symbolic_operand): New.
460         (get_pic_label_name): Merge into output_set_got.
461         (ix86_asm_file_end): Emit pic_label_name if defined.
462         (legitimate_constant_p, constant_address_p): New.
463         (legitimate_pic_operand_p): New.
464         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
465         (legitimate_address_p): Likewise.
466         (ix86_encode_section_info): Rename from i386_; handle tls decls.
467         (ix86_strip_name_encoding): New.
468         (get_thread_pointer): New.
469         (legitimize_address): Handle tls symbols.
470         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
471         Remove UNSPEC_PLT.
472         (struct machine_function): Add some_ld_name.
473         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
474         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
475         (output_addr_const_extra): New.
476         (maybe_get_pool_constant): New.
477         (ix86_split_to_parts): Use it.
478         (ix86_expand_move): Handle tls symbols.
479         (ix86_tls_get_addr): New.
480         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
481         (TARGET_OPTIONS): Add tls-dialect.
482         (CONSTANT_ADDRESS_P): Use new out-of-line function.
483         (LEGITIMATE_CONSTANT_P): Likewise.
484         (LEGITIMATE_PIC_OPERAND_P): Likewise.
485         (TARGET_STRIP_NAME_ENCODING): New.
486         (ASM_OUTPUT_LABELREF): New.
487         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
488         (OUTPUT_ADDR_CONST_EXTRA): New.
489         (PREDICATE_CODES): Update.
490         (ix86_tls_dialect, ix86_tls_dialect_string): New.
491         * config/i386/i386.md: Regroup and renumber unspec constants.
492         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
493         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
494         (tls_global_dynamic, tls_local_dynamic_base): New.
495         (tls_local_dynamic_once): New.
496         * config/i386/i386-protos.h: Update.
497
498 2002-05-23  Richard Henderson  <rth@redhat.com>
499
500         * genemit.c (gen_insn): Print file:lineno comment before function.
501         (main): likewise.
502         * gensupport.c (struct queue_elem): Add filename member.
503         (queue_pattern): Initialize it; update all callers.
504         (process_include): Don't free filename.
505         (read_md_rtx): Set read_rtx_filename.
506
507 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
508
509         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
510
511 2002-05-23  Richard Henderson  <rth@redhat.com>
512
513         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
514
515 2002-05-23  Richard Henderson  <rth@redhat.com>
516
517         * doc/extend.texi (C++98 Thread-Local Edits): Update with
518         commentary from Mark.
519
520 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
521
522         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
523         Use FOR_EACH_BB macros to iterate over basic block chain.
524         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
525         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
526         Likewise.
527         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
528         find_unreachable_blocks, create_edge_list, verify_edge_list,
529         remove_fake_edges, add_noreturn_fake_exit_edges,
530         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
531         Likewise.
532         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
533         find_sub_basic_blocks): Likewise.
534         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
535         Likewise.
536         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
537         Likewise.
538         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
539         Likewise.
540         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
541         commit_edge_insertions, commit_edge_insertions_watch_calls,
542         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
543         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
544         * conflict.c (conflict_graph_compute): Likewise.
545         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
546         df_modified_p, df_refs_unlink, df_dump): Likewise.
547         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
548         * final.c (compute_alignments): Likewise.
549         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
550         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
551         count_or_remove_death_notes): Likewise.
552         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
553         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
554         classic_gcse, compute_transp, cprop, compute_pre_data,
555         compute_transpout, invalidate_nonnull_info,
556         delete_null_pointer_checks_1, delete_null_pointer_checks,
557         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
558         compute_store_table, build_store_vectors, store_motion): Likewise.
559         * global.c (global_conflicts, mark_elimination): Likewise.
560         * graph.c (print_rtl_graph_with_bb): Likewise.
561         * haifa-sched.c (sched_init): Likewise.
562         * ifcvt.c (if_convert): Likewise.
563         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
564         compute_available, compute_nearerout, compute_rev_insert_delete,
565         optimize_mode_switching): Likewise.
566         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
567         * predict.c (estimate_probability, note_prediction_to_br_prob,
568         propagate_freq, counts_to_freqs, expensive_function_p,
569         estimate_bb_frequencies): Likewise.
570         * profile.c (instrument_edges, get_exec_counts,
571         compute_branch_probabilities, compute_checksum, branch_prob,
572         find_spanning_tree): Likewise.
573         * recog.c (split_all_insns, peephole2_optimize): Likewise.
574         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
575         Likewise.
576         * regclass.c (scan_one_insn, regclass): Likewise.
577         * regmove.c (mark_flags_life_zones, regmove_optimize,
578         record_stack_memrefs): Likewise.
579         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
580         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
581         * resource.c (find_basic_block): Likewise.
582         * sched-ebb.c (schedule_ebbs): Likewise.
583         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
584         find_single_block_region, find_rgns, schedule_insns)
585         * sibcall.c (optimize_sibling_and_tail_recursive_call)
586         * ssa-ccp.c (optimize_unexecutable_edges,
587         ssa_ccp_df_delete_unreachable_insns): Likewise.
588         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
589         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
590         rename_block, convert_to_ssa, compute_conservative_reg_partition,
591         compute_coalesced_reg_partition, rename_equivalent_regs,
592         convert_from_ssa): Likewise.
593         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
594         process_for_unwind_directive): Likewise.
595
596         * df.c (FOR_ALL_BBS): Removed.
597         * gcse.c (struct null_pointer_info): Type of current_block field
598         changed.
599         (struct reg_avail_info): Type of last_bb field changed.
600         * config/ia64/ia64.c (block_num): Removed.
601         (need_copy_state): Type changed.
602         (last_block): New.
603
604 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
605
606         * cppinit.c (mark_named_operators): Split out from init_builtins.
607         (cpp_finish_options): Call it from here instead.
608
609 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
610
611         * builtin-attrs.def: Update copyright years.
612         (ATTR_NONNULL): New attribute identifier.
613         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
614         attribute tree lists.
615         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
616         format operand.
617         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
618         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
619         attribute lists.  Chain the appropriate nonnull attribute.
620         * c-format.c (check_format_arg): Remove null format string
621         warning.
622         * testsuite/gcc.dg/format/null-1.c: New test.
623
624 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
625
626         * Makefile.in (ADAC): Define.
627         (SYSLIBS): Define.
628         (.SUFFIXES): Move before language makefile fragments.
629         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
630
631 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
632
633         * varasm.c (make_decl_rtl): Don't allow weak variables to be
634         placed in common.
635
636 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
637
638         * cfg.c (dump_flow_info): Print results of
639         maybe_hot/probably_never_executed predicates.
640         * toplev.c (open_dump_file): Print function frequency.
641
642 2002-05-23  David S. Miller  <davem@redhat.com>
643
644         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
645         regsets.
646
647 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
648
649         * c-common.c (warn_nonnull): Declare.
650         (c_common_attribute_table): Add "nonnull" attribute.
651         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
652         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
653         check_function_arguments_recurse): New functions.
654         * c-common.h (warn_nonnull): Declare extern.
655         (check_function_arguments, check_function_arguments_recurse): New
656         prototypes.
657         * c-decl.c (c_decode_option): Add -Wnonnull option.
658         * c-format.c (set_Wformat): Set warn_nonnull if enabling
659         format checking.
660         (format_check_context): New structure.
661         (check_format_info_recurse): Remove recursion and rename to...
662         (check_format_arg): ...this.  Update comment.
663         (check_format_info): Use check_function_arguments_recurse.
664         * c-typeck.c (build_function_call): Call check_function_arguments
665         instead of check_function_format.
666         * doc/extend.texi: Document "nonnull" attribute.
667         * doc/invoke.texi: Docuemnt -Wnonnull option.
668         * testsuite/gcc.dg/nonnull-1.c: New test.
669         * testsuite/gcc.dg/nonnull-2.c: New test.
670
671 2002-05-23  David S. Miller  <davem@redhat.com>
672
673         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
674         * cfgcleanup.c (cleanup_cfg): If it is set do not
675         attempt to delete trivially dead insns.
676         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
677         * toplev.c (rest_of_compilation): Document non-trivial aspect
678         the RTL before optimize_save_area_alloca is run.
679
680 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
681
682         * c-lex.c (indent_level): Remove.
683         (cb_file_change, c_lex): Remove indent level handling.
684         * c-lex.h (indent_level): Remove.
685         * input.h (struct file_stack): Remove indent_level.
686         * toplev.c (push_srcloc): Remove indent_level handling.
687
688 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
689
690         PR target/6753
691         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
692         of x in constraints for clarity.
693         (sse_mov?fcc split): abort if op2 == op3.
694         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
695         sse_movsfcc_const0_4): Add earlyclobber.
696         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
697         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
698         Use Y instead of x in constraints.
699
700 2002-05-23  Richard Henderson  <rth@redhat.com>
701
702         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
703         (C++98 Thread-Local Edits): New subsection.
704
705         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
706         (ix86_arch): Set type to enum processor_type.
707
708         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
709         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
710
711 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
712
713         * configure.in: Fix as version test for binutils 2.12.1 releases
714         (without dates).
715         * configure: Rebuilt.
716
717 2002-05-23  Richard Henderson  <rth@redhat.com>
718
719         * config/i386/i386.c (get_pic_label_name): New.
720         (load_pic_register): Remove.
721         (output_set_got): New.
722         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
723         * config/i386/i386.md (UNSPEC_SET_GOT): New.
724         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
725         (prologue_set_got, prologue_get_pc): Remove.
726         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
727         (builtin_setjmp_receiver): Use gen_set_got.
728         * config/i386/i386-protos.h: Update.
729
730 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
731
732         * gcse.c (hash_expr): Do not use alias set for hashing.
733
734 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
735
736         * dbxout.c (dbxout_class_name_qualifiers): New function.
737         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
738
739 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
740
741         * cpperror.c (_cpp_begin_message): No special casing
742         of CPP_FATAL_LIMIT.
743         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
744         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
745         * cpplib.c (do_include_common): Use DL_ERROR.
746         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
747         (DL_ICE): Renumber.
748         * fix-header.c (read_scan_file): Update.
749
750 2002-05-22  Richard Henderson  <rth@redhat.com>
751
752         * config/i386/i386.c (ix86_expand_call): New function, extracted
753         from md call patterns.  Add pic_offset_table_rtx to
754         CALL_INSN_FUNCTION_USAGE when needed.
755         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
756         (call_value_pop, call_value, untyped_call): Likewise.
757         (call_exp, call_value_exp): Remove.
758         * config/i386/i386-protos.h: Update.
759
760 2002-05-22  Richard Henderson  <rth@redhat.com>
761
762         * varasm.c (default_section_type_flags): Check for VAR_DECL
763         before using DECL_THREAD_LOCAL.
764
765 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
766
767         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
768         (STARTFILE_SPEC): Delete PE crt0.o.
769         * config/rs6000/aix51.h: Same.
770         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
771         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
772         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
773         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
774         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
775
776 2002-05-22  Richard Henderson  <rth@redhat.com>
777
778         * varasm.c (default_section_type_flags): Handle tls data and
779         default sections.
780         (default_unique_section): Handle tls sections.
781
782 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
783
784         * configure.in (CROSS): Define NATIVE_CROSS.
785         * configure: Regenerate.
786         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
787         (startfile_prefix_spec): New var.
788         (static_specs): Add startfile_prefix_spec.
789         (do_spec_2): Split out from..
790         (do_spec): ..here.
791         (main): Process startfile_prefix_spec.
792         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
793         dynamic linker.
794         (STARTFILE_PREFIX_SPEC): Define.
795         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
796         absolute paths.
797
798 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
799
800         * cpperror.c: Fix formatting.
801         * cppexp.c: Likewise.
802         * cppfiles.c: Likewise.
803         * cpphash.c: Likewise.
804         * cpphash.h: Likewise.
805         * cppinit.c: Likewise.
806         * cpplex.c: Likewise.
807         * cpplib.c: Likewise.
808         * cppmacro.c: Likewise.
809         * cppmain.c: Likewise.
810         * cppspec.c: Likewise.
811
812 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
813
814         * combine.c (force_to_mode): Use gen_int_mode.
815         Don't clear CONST_INT bits outside of mode.
816
817 2002-05-22  Richard Henderson  <rth@redhat.com>
818
819         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
820         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
821
822 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
823
824         PR c/6643
825         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
826         if DECL_SIZE_UNIT is INTEGER_CST.
827
828 2002-05-22  Richard Henderson  <rth@redhat.com>
829
830         * flow.c (life_analysis): Delete broken reg_label check.
831
832 2002-05-22  Richard Henderson  <rth@redhat.com>
833
834         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
835         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
836
837 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
838
839         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
840         (embed-bb.c): New rule.
841         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
842         * config/sh/embed_bb.c: Delete.
843
844 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
845
846         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
847
848 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
849
850         * config/h8300/h8300.md (*andorqi3): New.
851
852 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
853
854         PR preprocessor/6517
855         * Makefile.in: Update.
856         * c-common.c (c_common_post_options): Add preprocessor
857         errors to the error count.
858         * c-lang.c (c_post_options): Kill.
859         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
860         * hooks.h: Add header guards.
861         * langhooks-def.h: Include hooks.h.
862         (LANG_HOOKS_POST_OPTIONS): Update.
863         * langhooks.h (struct lang_hooks): Update post_options.
864         * toplev.c (parse_options_and_default_flags): Update.
865 objc:
866         * objc-lang.c (objc_post_options): Kill.
867         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
868
869 2002-05-21  Bruce Korb  <bkorb@gnu.org>
870
871         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
872         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
873         * fixinc/fixincl.x: regen.
874
875 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
876
877         * cfgbuild.c: Fix formatting.
878         * cfg.c: Likewise.
879         * cfgcleanup.c: Likewise.
880         * cfglayout.c: Likewise.
881         * cfgloop.c: Likewise.
882         * cfgrtl.c: Likewise.
883
884 2002-05-21  Richard Henderson  <rth@redhat.com>
885
886         * c-common.h (enum rid): Add RID_THREAD.
887         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
888         (grokdeclarator): Grok __thread.
889         * c-parse.in (reswords): Add __thread.
890         (rid_to_yy): Add RID_THREAD.
891
892         * tree.h (DECL_THREAD_LOCAL): New.
893         (struct tree_decl): Add thread_local_flag.
894         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
895         * tree.c (staticp): TLS variables are not static.
896
897         * target-def.h (TARGET_HAVE_TLS): New.
898         * target.h (have_tls): New.
899         * output.h (SECTION_TLS): New.
900         * varasm.c (assemble_variable): TLS variables can't be common for now.
901         (default_section_type_flags): Handle .tdata and .tbss.
902         (default_elf_asm_named_section): Handle SECTION_TLS.
903         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
904
905         * flags.h (flag_tls_default): Declare.
906         * toplev.c (flag_tls_default): Define.
907         (display_help): Display help for it.
908         (decode_f_option): Set it.
909
910         * doc/extend.texi (Thread-Local): New node describing language-level
911         thread-local storage.
912         * doc/invoke.texi (-ftls-model): Document.
913
914         * fixinc/inclhack.def (thread_keyword): New.
915         * fixinc/fixincl.x: Rebuild.
916
917 2002-05-21  Jeffrey A Law  <law@redhat.com>
918
919         * optabs.c (expand_binop): For double-word integer multiplies,
920         do not compute intermediate results into something that is
921         not a register (such as a SUBREG or MEM).
922
923         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
924         (ix86_sched_reorder): Make sure to initialize scheduling
925         data even when there's only one insn in the ready queue.
926
927 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
928
929         * genautomata.c (reserv_sets_hash_value): Fix a typo.
930
931 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
932
933         * genautomata.c (reserv_sets_hash_value): Define hash_value as
934         set_el_t.  Transform the hash value into unsigned.
935         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
936         (transform_3): Add code to process `(A,B)+(D,E)'.
937
938 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
939
940         * reload1.c (do_output_reload): Run delete_output_reload
941         only if optimizing.
942
943 2002-05-21  Roger Sayle  <roger@eyesopen.com>
944
945         PR middle-end/6600
946         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
947         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
948         (can_store_by_pieces): ... and here to limit the largest mode used.
949         Add a comment to document this function.
950
951 2002-05-21  Richard Henderson  <rth@redhat.com>
952
953         * flow.c (life_analysis): Fix test for deleted label.
954
955 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
956
957         * doc/tm.texi: Fix typo.
958
959 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
960
961         * c-common.c (c_common_init): Set options->unsigned_char from
962         flag_signed_char.
963         (cb_register_builtins): Define __STRICT_ANSI__ and
964         __CHAR_UNSIGNED__ here...
965         * cppinit.c (init_builtins): Not here.
966         (cpp_create_reader): unsigned_char option defaults to 0, not
967         !DEFAULT_SIGNED_CHAR.
968         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
969         and -funsigned-char.
970
971         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
972         * cpphash.c (_cpp_init_hashtable): Don't set it.
973         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
974         directly.  Clarify comment.
975
976 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
977
978         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
979         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
980         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
981         BASIC_BLOCK (n_basic_blocks - 1).
982         * cfganal.c (can_fallthru, flow_call_edges_add,
983         flow_preorder_transversal_compute): Too.
984         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
985         find_sub_basic_blocks): Too.
986         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
987         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
988         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
989         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
990         * combine.c (this_basic_block): Type changed to basic_block.
991         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
992         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
993         get_last_value, distribute_notes, distribute_links): Too.
994         * final.c (compute_alignments): Too.
995         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
996         * function.c (thread_prologue_and_epilogue_insns): Too.
997         * gcse.c (compute_code_hoist_vbeinout): Too.
998         * global.c (build_insn_chain): Too.
999         * ifcvt.c (find_if_block, find_cond_trap): Too.
1000         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
1001         * regmove.c (regmove_optimize): Too.
1002         * resource.c (find_basic_block): Too.
1003         * sched-ebb.c (schedule_ebbs): Too.
1004         * ssa-dce.c (find_control_dependence, find_pdom): Too.
1005
1006 2002-05-21  Andreas Jaeger  <aj@suse.de>
1007
1008         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
1009
1010 2002-05-21  Richard Henderson  <rth@redhat.com>
1011
1012         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
1013         unspec names, not numbers.
1014
1015 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1016
1017         * doc/sourcebuild.texi: Mention snapshot-README and
1018         snapshot-index.html as needing updating for new front ends.
1019
1020 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1021
1022         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
1023         disabling checking, and avoid multiple evaluation of RTX.
1024
1025 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
1026
1027         * bitmap.c (bitmap_find_bit): Return early if we have the correct
1028         element cached.
1029
1030 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1031
1032         * profile.c (gen_edge_profiler):  Set alias set before the memory is
1033         used.
1034
1035 2002-05-20  David S. Miller  <davem@redhat.com>
1036
1037         * cselib.c (max_value_regs): New.
1038         (cselib_lookup, cselib_invalidate_regno): Initialize it when
1039         adding new entries to the REG_VALUES table and we are dealing with
1040         a hard register.
1041         (clear_table): Initialize it.
1042         (cselib_invalidate_regno): Use it to determine which hard
1043         registers to scan when mode is not VOIDmode.
1044
1045 2002-05-20  Duraid Madina   <duraid@fl.net.au>
1046
1047         * tradcpp.c (fixup_newlines): Use old-style function header.
1048
1049 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
1050
1051         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
1052
1053 2002-05-20  H.J. Lu  (hjl@gnu.org)
1054
1055         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
1056
1057         * config/mips/mips.h (DFMODE_NAN): Defined.
1058         (SFMODE_NAN): Likewise.
1059
1060 2002-05-20  Dale Johannesen  <dalej@apple.com>
1061
1062         * combine.c (cant_combine_insn_p):  Back out my
1063         previous patch.
1064
1065 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
1066
1067         * params.c: Fix formatting.
1068         * params.h: Likewise.
1069         * predict.c: Likewise.
1070         * prefix.c: Likewise.
1071         * print-rtl.c: Likewise.
1072         * print-tree.c: Likewise.
1073         * profile.c: Likewise.
1074
1075 2002-05-20  H.J. Lu  (hjl@gnu.org)
1076
1077         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
1078
1079 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
1080
1081         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
1082         switches straight on to the assembler, do not abbreviate them.
1083         * config/arm/elf.h (ASM_SPEC): As above.
1084         * config/arm/semi.h (ASM_SPEC): As above.
1085         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
1086         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
1087         -mcpu=xscale on to the assembler by default.
1088         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
1089
1090 2002-05-20  Richard Henderson  <rth@redhat.com>
1091
1092         * cse.c (canon_hash): Reorder do_not_record test.  Always
1093         allow pic_offset_table_rtx.
1094
1095 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
1096
1097         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
1098         (expand_binop): Ditto (3 times).
1099
1100 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
1101
1102         * Makefile.in (distclean): Remove QMTest stuff.
1103         (QMTEST_PATH): New variable.
1104         (QMTESTFLAGS): Likewise.
1105         (QMTESTRUNFLAGS): Likewise.
1106         (QMTEST): Likewise.
1107         (QMTEST_GPP_TESTS): Likewise.
1108         (QMTEST_DIR): Likewise.
1109         (QMTEST_DIR/context): New target.
1110         (qmtest-g++): Likeise.
1111         (qmtest-gui): Likewise.
1112         (QMTEST_DIR/gpp-expected.qmr): Likewise.
1113
1114 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
1115
1116         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
1117         an altivec register if TARGET_ALTIVEC.
1118
1119         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
1120         to ALTIVEC_VECTOR_MODE.
1121         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
1122         (rs6000_va_arg): Vectors may go in registers if they are not
1123         altivec vectors.
1124
1125 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
1126
1127         * protoize.c: Fix formatting.
1128
1129 2002-05-19  Richard Henderson  <rth@redhat.com>
1130
1131         * gensupport.c (init_include_reader): Merge into ...
1132         (process_include): ... here.  Simplify composite path creation.
1133         Plug memory leaks.  Fix file/line number tracking.  Do not
1134         process_define_cond_exec.  Return void.
1135         (process_rtx): Don't check process_include return value.
1136
1137 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1138
1139         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
1140         fields.
1141         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1142         traversing basic block chain.
1143         (create_basic_block_structure, create_basic_block): Declaration changed.
1144         (link_block, unlink_block): Declare.
1145         * cfg.c (entry_exit_blocks): Initialize new fields.
1146         (link_block, unlink_block): New.
1147         (expunge_block_nocompact): Unlink basic block.
1148         (dump_flow_info): Print prev_bb/next_bb fields.
1149         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
1150         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
1151         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
1152         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1153         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
1154         (verify_flow_info): Check that list agrees with numbering.
1155
1156 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1157
1158         * c-common.c (preprocessing_asm): New macro.
1159         * c-lex.h (builtin_define, builtin_assert): Use pfile.
1160 doc:
1161         * tm.texi: Update.
1162 config/alpha:
1163         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
1164         (CPP_SPEC): Simplify.
1165         (TARGET_CPU_CPP_BUILTINS): Update.
1166         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
1167         (CPP_SPEC): Simplify.
1168         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
1169         (TARGET_OS_CPP_BUILTINS): Update.
1170         * osf.h (CPP_XFLOAT_SPEC): Kill.
1171         (TARGET_OS_CPP_BUILTINS): Update.
1172         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
1173         * osf5.h (CPP_XFLOAT_SPEC): Kill.
1174         * vms.h (CPP_SUBTARGET_SPEC): Kill.
1175         (TARGET_OS_CPP_BUILTINS): Update.
1176
1177 2002-05-19  Richard Henderson  <rth@redhat.com>
1178
1179         * varasm.c (default_binds_local_p): Fix typo.
1180
1181 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1182
1183         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
1184         CONST_INT operand to the correct mode after adding 1 to it.
1185
1186 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
1187
1188         * config.gcc (powerpc-wrs-windiss*): New target.
1189
1190 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1191
1192         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
1193         (ashrdi3): Use it.
1194
1195 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
1196
1197         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
1198         alphasort.
1199         * config.in: Regenerated.
1200         * configure: Regenerated.
1201
1202 2002-05-19  Richard Henderson  <rth@redhat.com>
1203
1204         * target-def.h (TARGET_BINDS_LOCAL_P): New.
1205         * target.h (struct gcc_target): Move boolean fields to the end.
1206         Add binds_local_p.
1207         * varasm.c (default_binds_local_p): New.
1208         * output.h: Declare it.
1209
1210         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
1211         * config/cris/cris.c (cris_encode_section_info): Likewise.
1212         * config/i386/i386.c (i386_encode_section_info): Likewise.
1213         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1214         * config/sh/sh.c (sh_encode_section_info): Likewise.
1215
1216         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
1217         (TARGET_BINDS_LOCAL_P): New.
1218
1219 2002-05-19  Richard Henderson  <rth@redhat.com>
1220
1221         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
1222         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
1223         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
1224
1225         * toplev.c (display_help): Kill -a -ax help.
1226
1227         * config/1750a/1750a.h, config/alpha/alpha.h,
1228         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
1229         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
1230         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
1231         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
1232
1233         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
1234         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
1235
1236         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
1237         (ix86_output_function_block_profiler): Kill.
1238         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
1239         (m68hc11_function_block_profiler): Kill.
1240         * config/m68hc11/m68hc11-protos.h: Update.
1241         * config/m88k/m88k.c (output_block_profiler): Kill.
1242         (output_function_block_profiler): Kill.
1243         * config/m88k/m88k-protos.h: Update.
1244
1245 2002-05-19  Richard Henderson  <rth@redhat.com>
1246
1247         * system.h (STRIP_NAME_ENCODING): Poison it.
1248         * output.h (STRIP_NAME_ENCODING): Remove.
1249         (default_strip_name_encoding): Declare.
1250         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
1251         * target.h (strip_name_encoding): New.
1252         * varasm.c (default_strip_name_encoding): New.
1253
1254         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
1255         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
1256         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
1257         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
1258         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
1259         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
1260         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
1261         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
1262         config/v850/v850.h: Use the hook, not the macro.
1263
1264         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1265         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
1266         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
1267         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
1268         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
1269         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
1270         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
1271         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
1272         config/v850/v850.c, config/v850/v850.h:
1273         Move STRIP_NAME_ENCODING to out-of-line function and add
1274         TARGET_STRIP_NAME_ENCODING.
1275
1276         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
1277         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
1278         with TARGET_STRIP_NAME_ENCODING referencing existing function;
1279         make function static.
1280
1281         * xcoffout.c: Include target.h
1282         * Makefile.in (xcoffout.o): Update.
1283
1284         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
1285         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
1286         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
1287         reloc argument unused.
1288         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
1289
1290         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
1291         STRIP_NAME_ENCODING docs.
1292
1293 2002-05-19  Andreas Jaeger  <aj@suse.de>
1294
1295         * gengenrtl.c: Add prototype for excluded_rtx.
1296
1297         * real.h: Add prototype for exact_real_truncate.
1298
1299 2002-05-18  Richard Henderson  <rth@redhat.com>
1300
1301         * system.h (ENCODE_SECTION_INFO): Poison it.
1302         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
1303         * target.h (encode_section_info): New.
1304         * varasm.c (make_decl_rtl, output_constant_def): Use it.
1305         * hooks.c (hook_tree_int_void): New.
1306         * hooks.h: Declare it.
1307
1308         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1309         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
1310         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
1311         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
1312         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
1313         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
1314         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
1315         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
1316         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1317         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1318         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
1319         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
1320         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
1321         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
1322         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
1323         referencing existing function.  Make function static.
1324
1325         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
1326         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
1327         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
1328         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
1329         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
1330         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
1331         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
1332         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
1333         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
1334         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
1335         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
1336         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
1337         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
1338         Move ENCODE_SECTION_INFO to out-of-line function and add
1339         TARGET_ENCODE_SECTION_INFO.
1340
1341         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
1342         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1343
1344         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
1345         from SUBTARGET_*
1346         (switch_to_section): Replace in_rdata case with in_readonly_data.
1347
1348         * config/h8300/h8300.c (h8300_encode_label): Make static.
1349         * config/h8300/h8300-protos.h: Update.
1350
1351         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
1352         from rs6000_encode_section_info; make static.
1353         (rs6000_xcoff_encode_section_info): New.
1354
1355         * config/v850/v850.c (v850_encode_data_area): Make static.
1356         * config/v850/v850-protos.h: Update.
1357
1358         * config/vax/vax.c: Include flags.h.
1359         (vms_select_section): Fix typo.
1360
1361         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
1362         ENCODE_SECTION_INFO docs.
1363
1364 2002-05-18  Richard Henderson  <rth@redhat.com>
1365
1366         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
1367         REGISTER_TARGET_PRAGMAS.
1368         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
1369
1370         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
1371
1372 2002-05-18  Richard Henderson  <rth@redhat.com>
1373
1374         * system.h (SELECT_RTX_SECTION): Poison.
1375         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
1376         * target.h (select_rtx_section): New.
1377         * varasm.c (output_constant_pool): Use it.
1378         (default_select_rtx_section, default_elf_select_rtx_section): New.
1379         * output.h: Declare them.
1380
1381         * config/darwin.h (SELECT_RTX_SECTION): Move ...
1382         * config/darwin.c (machopic_select_rtx_section): ... here.
1383         * config/darwin-protos.h: Update.
1384
1385         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
1386         * config/nextstep.c (machopic_select_rtx_section): ... here.
1387         (nextstep_select_section): Rename variable to avoid macro clash.
1388         * config/nextstep-protos.h: Update.
1389
1390         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
1391         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
1392         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
1393         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
1394         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
1395         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
1396         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
1397         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
1398         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
1399         (SELECT_RTX_SECTION): Remove.
1400
1401         * config/darwin.h, config/elfos.h, config/nextstep.h,
1402         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
1403         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
1404         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
1405         config/sparc/lynx.h, config/xtensa/xtensa.c
1406         (TARGET_ASM_SELECT_RTX_SECTION): New.
1407
1408         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
1409         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
1410         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
1411         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
1412         (ia64_aix_select_rtx_section): New.
1413         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
1414         redefining.
1415         * config/mips/mips.c (mips_select_rtx_section): Make static.
1416         Support ELF SHF_MERGE features.
1417         * config/mips/mips-protos.h: Update.
1418         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
1419         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
1420         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
1421         make static, fall back to default_elf_select_rtx_section.
1422         * config/rs6000/rs6000-protos.h: Update.
1423         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
1424         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
1425         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
1426         * config/romp/romp.c (romp_select_rtx_section): New.
1427         * config/s390/s390.c (s390_select_rtx_section): New.
1428         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
1429         declarations before target macro definition.
1430         (xtensa_emit_call): Use static buffer.
1431         (xtensa_select_rtx_section): New.
1432         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
1433         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
1434         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
1435
1436         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
1437         SELECT_RTX_SECTION docs.
1438
1439 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1440
1441         * i386.md (movsi/movdi): Fix template.
1442         (sse2 patterns): Set attributes consistently.
1443
1444         * i386.md (pushqi2, ashrqi_*): Fix constraint.
1445
1446 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
1447
1448         * optabs.c (complex_part_zero_p): New.
1449         * (expand_cmplxdiv_straight): Use it.
1450         * (expand_cmplxdiv_wide): Ditto.
1451         * (expand_binop): Ditto.
1452
1453 2002-05-18  Richard Henderson  <rth@redhat.com>
1454
1455         * final.c (HAVE_READONLY_DATA_SECTION): New.
1456         (shorten_branches): Use it instead of ifdefs.
1457         * varasm.c (enum in_section): Add in_readonly_data.
1458         (text_section, data_section): Tidy.
1459         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
1460
1461         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
1462         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
1463         (READONLY_DATA_SECTION): Don't undef.
1464
1465         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
1466         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
1467         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
1468
1469         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
1470         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
1471         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
1472         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
1473
1474         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
1475         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
1476         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1477         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
1478         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
1479         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
1480         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
1481         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
1482         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
1483
1484         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
1485         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
1486         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
1487         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
1488         config/pa/pa64-hpux.h, config/sparc/litecoff.h
1489         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1490
1491         * config/elfos.h, config/netware.h, config/svr3.h,
1492         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1493         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1494         config/h8300/h8300.h, config/i386/i386-interix.h,
1495         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1496         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
1497
1498         * config/elfos.h, config/netware.h, config/svr3.h,
1499         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1500         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
1501         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1502         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
1503
1504         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
1505         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
1506         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
1507         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
1508         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
1509         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
1510         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
1511         config/rs6000/sysv4.h, config/v850/v850.h
1512         (EXTRA_SECTIONS): Remove in_const/in_rdata.
1513         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
1514
1515         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
1516         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
1517         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
1518         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
1519         * config/alpha/alpha.c (alpha_start_function): Likewise.
1520         (alpha_write_linkage): Likewise.
1521         * config/m32r/m32r.c (m32r_select_section): Likewise.
1522         * config/m88k/m88k.c (m88k_select_section): Likewise.
1523         * config/mips/mips.c (mips_select_rtx_section): Likewise.
1524         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
1525         (rs6000_elf_select_section): Likewise.
1526         * config/v850/v850.c (v850_select_section): Likewise.
1527
1528         * config/1750a/1750a.h, config/i860/sysv3.h
1529         (READONLY_DATA_SECTION_ASM_OP): New.
1530         READONLY_DATA_SECTION_ASM_OP.
1531         * config/i386/interix.c, config/i386/winnt.c
1532         (i386_pe_unique_section): Always use .rdata prefix.
1533         * config/pa/som.h (readonly_data): Always switch to read-only section.
1534         (READONLY_DATA_SECTION): Predicate on flag_pic.
1535         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
1536         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
1537         (READONLY_DATA_SECTION): Update.
1538
1539 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
1540
1541         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
1542         is used without -Wformat.
1543         * c-common.h (warn_format_zero_length): Declare extern.
1544         * c-decl.c (warn_options): Add "format-zero-length".
1545         * c-format.c (warn_format_zero_length): Declare.
1546         (set_Wformat): Set warn_format_zero_length for -Wformat.
1547         (check_format_info): Only warn about zero-length formats if
1548         warn_format_zero_length is true.  Include the format type
1549         name in the warning message.
1550         * doc/invoke.texi: Document -Wformat-zero-length.
1551         * testsuite/gcc.dg/format/zero-length-1.c: New test.
1552
1553 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
1554
1555         * timevar.c: Fix formatting.
1556         * tlink.c: Likewise.
1557         * toplev.c: Likewise.
1558         * tree-dump.c: Likewise.
1559         * tree-inline.c: Likewise.
1560
1561 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1562
1563         * cppinit.c (cpp_post_options): If preprocessed, turn off
1564         traditional.  If traditional, turn off column numbers.
1565         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
1566         * cpptrad.c (handle_newline): Update line_base.
1567         (skip_comment): Handle -Wcomment.
1568
1569 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
1570
1571         * cppinit.c (struct builtin): Remove unused fields.
1572         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
1573         (operator_array): New - was second half of builtin_array.
1574         (init_builtins): Simplify loop over builtin_array/operator_array.
1575
1576 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1577
1578         * defaults.h (UNIQUE_SECTION): Remove.
1579         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
1580
1581 2002-05-17  Richard Henderson  <rth@redhat.com>
1582
1583         * expr.c (init_expr_once): Don't use start/end_sequence.
1584         Use rtx_alloc instead of emit_insn.
1585         * toplev.c (lang_dependent_init): Run init_expr_once here ...
1586         (lang_independent_init): ... not here.
1587
1588 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
1589
1590         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
1591
1592 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1593
1594         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
1595         for fixed registers, possibly used for global register variables.
1596         (initial_elimination_offset, avr_output_function_prologue,
1597         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
1598
1599 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1600
1601         * Makefile.in: Update for cpptrad.c.
1602         * cpphash.h (struct cpp_buffer): New members for buffer
1603         overlays.
1604         (struct cpp_reader): New members for traditional output.
1605         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
1606         * cppinit.c (cpp_create_reader): Set trad_line.
1607         (cpp_destroy): Free trad_out_base if used.
1608         (cpp_read_main_file): Overlay an empty buffer if traditional.
1609         (cpp_finish_options): Don't do builtins.
1610         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
1611         (cpp_handle_option): Handle it.
1612         * cpplex.c (continue_after_nul): New.
1613         (_cpp_lex_direct): Use handle_nul.
1614         * cpplib.h (struct cpp_options): New traditional option.
1615         * cpptrad.c: New file.
1616
1617 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1618
1619         * c-common.c (c_common_init_options): Use C89 for Objective-C,
1620         and set the options flag.
1621         * cppinit.c (lang_flags): Remove objc.
1622         (lang_defaults): Remove OBJC and OBJCXX.
1623         (set_lang): Update.
1624         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
1625         (cpp_handle_option): Remove -+ and -lang-objc++.
1626         For ObjC, just set a flag.
1627         (print_help): Update.
1628         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
1629
1630 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1631
1632         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
1633         bootstrap with -mips3.
1634
1635 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
1636
1637         * final.c: Fix formatting.
1638         * fix-header.c: Likewise.
1639         * flow.c: Likewise.
1640         * fold-const.c: Likewise.
1641         * function.c: Likewise.
1642
1643 2002-05-17  David S. Miller  <davem@redhat.com>
1644
1645         PR c/6689, PR optimization/6615
1646         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
1647         and make it a pointer to rtx.  Update comments.
1648         (update_equiv_regs): When scanning for equivalences, record
1649         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
1650         it while making the equiv replacements.
1651
1652 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1653
1654         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
1655
1656 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1657
1658         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
1659         when encoding visibility into SYMBOL_REF_FLAG.
1660
1661 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
1662
1663         * expr.c (force_operand): Fix reversed move.
1664
1665 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
1666
1667         * doc/install.texi (Testing): Mention two common DejaGnu warnings
1668         that can be ignored.
1669
1670 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1671
1672         * doc/install.texi (Final install): Recommend to install into a
1673         "clean" target directory.
1674
1675 2002-05-17  Richard Henderson  <rth@redhat.com>
1676
1677         * config/ia64/ia64.md: Use braced strings instead of quoted strings
1678         for code blocks.  Tidy whitespace.
1679
1680 2002-05-17  Richard Henderson  <rth@redhat.com>
1681
1682         * hooks.c (hook_tree_bool_false): New.
1683         * hooks.h: Declare it.
1684         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1685         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1686         * target.h (select_section, unique_section): New.
1687         (in_small_data_p): New.
1688         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1689         (variable_section, output_constant_def_contents): Likewise.
1690         (default_select_section, default_unique_section): New.
1691         (categorize_decl_for_section, default_elf_select_section): New.
1692         * output.h: Declare them.
1693
1694         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1695         (TARGET_ASM_SELECT_SECTION): New.
1696         (SELECT_SECTION): Move ...
1697         * config/darwin.c (machopic_select_section): ... here.
1698         * config/darwin-protos.h: Update.
1699
1700         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1701         (SELECT_SECTION): Move ...
1702         * config/nextstep.c (nextstep_select_section): ... here.
1703         * config/nextstep-protos.h: Update.
1704
1705         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1706         (TARGET_ASM_SELECT_SECTION): New.
1707         * config/svr3.h (SELECT_SECTION): Remove.
1708
1709         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1710         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1711         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1712         (alpha_encode_section_info): Use it.
1713         * config/alpha/alpha-protos.h: Update.
1714         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1715         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1716         (TARGET_ASM_SELECT_SECTION): New.
1717         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1718
1719         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1720         (TARGET_ASM_UNIQUE_SECTION): New.
1721
1722         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1723         (avr_unique_section): Rename from unique_section; make static.
1724         * config/avr/avr-protos.h: Update.
1725         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1726
1727         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1728
1729         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1730         (TARGET_ASM_UNIQUE_SECTION): New.
1731         * config/i386/i386-interix.h: Likewise.
1732         * config/i386/win32.h: Likewise.
1733         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1734         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1735         * config/i386/sco5.h (SELECT_SECTION): Remove.
1736         (TARGET_ASM_SELECT_SECTION): New.
1737         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1738
1739         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1740         instead of SELECT_SECTION.
1741         * config/m68k/dpx2.h: Likewise.
1742         * config/rs6000/lynx.h: Likewise.
1743
1744         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1745         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1746         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1747         (ia64_in_small_data_p): New.
1748         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1749         (ia64_aix_select_section, ia64_aix_unique_section): New.
1750         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1751         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1752
1753         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1754         (TARGET_ASM_SELECT_SECTION): New.
1755         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1756         * config/m32r/m32r-protos.h: Update.
1757
1758         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1759         (SELECT_SECTION): Move ...
1760         * config/m88k/m88k.c (m88k_select_section): ... here.
1761
1762         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1763         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1764         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1765         (mcore_unique_section): Make static.
1766         * config/mcore/mcore-protos.h: Update.
1767
1768         * config/mips/elf.h (UNIQUE_SECTION): Remove.
1769         (TARGET_ASM_UNIQUE_SECTION): New.
1770         * config/mips/elf64.h: Likewise.
1771         * config/mips/iris6gld.h: Likewise.
1772         * config/mips/linux.h: Likewise.
1773         * config/mips/mips-protos.h: Update.
1774         * config/mips/mips.c (mips_select_section): Add align argument.
1775         * config/mips/mips.h (SELECT_SECTION): Remove.
1776         (TARGET_ASM_SELECT_SECTION): New.
1777
1778         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1779         * config/mmix/mmix.c (mmix_select_section): Remove.
1780         (mmix_unique_section): Remove.
1781         * config/mmix/mmix-protos.h: Update.
1782
1783         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
1784         (SELECT_SECTION): Move ...
1785         * config/pa/pa.c (pa_select_section): ... here.
1786         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
1787
1788         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
1789         from rs6000_select_section and make static.
1790         (rs6000_elf_unique_section): Similarly.
1791         (rs6000_xcoff_select_section): From xcoff.h.
1792         (rs6000_xcoff_unique_section): Likewise.
1793         * config/rs6000/rs6000-protos.h: Update.
1794         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1795         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1796         * config/rs6000/xcoff.h: Likewise.
1797
1798         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
1799         (SELECT_SECTION): Move ...
1800         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
1801
1802         * config/v850/v850.h (SELECT_SECTION): Move ...
1803         * config/v850/v850.c (v850_select_section): ... here.
1804         (TARGET_ASM_SELECT_SECTION): New.
1805
1806         * config/vax/vms.h (SELECT_SECTION): Move ...
1807         * config/vax/vax.c (vms_select_section): ... here.
1808         (TARGET_ASM_SELECT_SECTION): New.
1809
1810         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
1811         for the target hooks.
1812
1813 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
1814
1815         * config/arm/arm.c (emit_multi_reg_push): Do not set
1816         RTX_FRAME_RELATED_P on the SEQUENCE.
1817
1818 2002-05-16  Richard Henderson  <rth@redhat.com>
1819
1820         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
1821         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
1822
1823 2002-05-16  Richard Henderson  <rth@redhat.com>
1824
1825         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
1826
1827         * config/ia64/ia64.c (saveable_obstack): Do not declare.
1828
1829 2002-05-16  Richard Henderson  <rth@redhat.com>
1830
1831         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
1832         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
1833         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
1834         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
1835         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
1836         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
1837         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
1838         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
1839         Revert "Basic block renumbering removal", and two followup patches.
1840
1841 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1842
1843         * lcm.c (optimize_mode_switching): Revert previous change.
1844
1845 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1846
1847         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
1848         with only extant block numbers.
1849
1850 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1851
1852         * lcm.c (optimize_mode_switching): Fix typo.
1853
1854 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1855
1856         * flow.c (calculate_global_regs_live): Queue blocks in program order.
1857
1858 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1859
1860         * doc/install.texi (Configuration): Document PWDCMD.
1861
1862 2002-05-16  Dale Johannesen  <dalej@apple.com>
1863
1864         * combine.c (cant_combine_insn_p):  Reenable combinations
1865         involving hard regs unless CLASS_LIKELY_SPILLED_P.
1866
1867 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1868
1869         * c-common.c (cb_register_builtins): Handle more built-ins
1870         here rather than in gcc.c specs.
1871         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1872         (cpp_options): Pass -O flags even when only preprocessing.
1873         * toplev.c (set_fast_math_flags): New prototype.
1874         (fast_math_flags_set_p): New.
1875         (set_no_fast_math_flags): Remove.
1876         (decode_f_option): Update.
1877         * toplev.h (set_fast_math_flags): Update.
1878         (fast_math_flags_set_p): New.
1879         (set_no_fast_math_flags): Remove.
1880 config:
1881         * c4x/c4x.c (c4x_override_options): Update.
1882
1883 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1884
1885         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1886         Default-define here.
1887         (builtin_define_with_value): Can now wrap the expansion in
1888         quotation marks if such is wanted.
1889         (cb_register_builtins): Update calls to builtin_define_with_value.
1890         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1891         here.
1892         (c_common_init): Set options->stdc_0_in_system_headers.
1893         * c-lex.h: Update prototype of builtin_define_with_value.
1894         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1895         and REGISTER_PREFIX.
1896
1897         * cppinit.c (VERS, ULP, C, X): Kill.
1898         (builtin_array): Remove entries for __VERSION__,
1899         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1900         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1901         a constant.
1902         (init_builtins): Kill off a bunch of now-dead code.
1903         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1904         -fno-leading-underscore.
1905         (cpp_handle_option): Remove code to set user_label_prefix.
1906         (cpp_post_options): Likewise.
1907
1908         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1909         (stdc_0_in_system_headers): New.
1910         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1911         stdc_0_in_system_headers) too to decide the value of __STDC__.
1912
1913         * tradcpp.c (user_label_prefix): Kill.
1914         (main): Remove code handling -f(no-)leading-underscore.
1915         (initialize_builtins): Don't define __REGISTER_PREFIX__
1916         or __USER_LABEL_PREFIX__.
1917         (install_value): Wrap compound statement in dummy loop so the
1918         macro works properly in an if statement.
1919
1920
1921 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1922
1923         * loop.h (struct loop_info): Add member has_prefetch.
1924         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1925         (prescan_loop): Initialize has_prefetch.
1926         (struct prefetch_info): Change prefetch_in_loop and
1927         prefetch_before_loop from bit fields to ints.
1928         (emit_prefetch_instructions): Several small fixes.
1929         (check_dbra_loop): Don't reverse loop that uses prefetch.
1930
1931 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1932
1933         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1934         * configure.in: Likewise.
1935         * fixinc/check.tpl: Likewise.
1936         * fixinc/fixinc.dgux: Likewise.
1937         * fixinc/fixinc.svr4: Likewise.
1938         * fixinc/fixinc.winnt: Likewise.
1939         * fixinc/fixincl.sh: Likewise.
1940         * fixproto: Likewise.
1941         * configure: Regenerate.
1942
1943 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1944
1945         Basic block renumbering removal:
1946         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1947         added prev_bb and next_bb fields.
1948         (n_basic_blocks): Renamed to num_basic_blocks.
1949         (last_basic_block): New, index of last basic block.
1950         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1951         traversing basic block chain.
1952         (BLOCK_NUM): index -> sindex.
1953         (create_basic_block_structure, create_basic_block): Declaration changed.
1954         (debug_num2bb): Declare.
1955         (expunge_block_nocompact): Declaration removed.
1956         (link_block, unlink_block, compact_blocks): Declare.
1957         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
1958         * cfg.c (entry_exit_blocks): Initialize new fields.
1959         (clear_edges, alloc_block, expunge_block, cached_make_edge,
1960         redirect_edge_pred, dump_flow_info, dump_edge_info,
1961         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
1962         free_aux_for_edges): Modified.
1963         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
1964         (expunge_block_nocompact): Removed.
1965         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
1966         find_unreachable_blocks, create_edge_list, print_edge_list,
1967         verify_edge_list, flow_edge_list_print, remove_fake_successors,
1968         remove_fake_edges, flow_reverse_top_sort_order_compute,
1969         flow_depth_first_order_compute, flow_preorder_transversal_compute,
1970         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
1971         flow_dfs_compute_reverse_execute): Modified.
1972         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
1973         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
1974         Modified.
1975         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1976         merge_blocks_move_predecessor_nojumps,
1977         merge_blocks_move_successor_nojumps, merge_blocks,
1978         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
1979         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
1980         * cfglayout.c (skip_insns_after_block, label_for_bb,
1981         record_effective_endpoints, scope_to_insns_finalize,
1982         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
1983         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
1984         cfg_layout_duplicate_bb): Modified.
1985         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
1986         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1987         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
1988         flow_loops_find, flow_loop_outside_edge_p): Modified.
1989         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1990         flow_delete_block, compute_bb_for_insn, split_block,
1991         try_redirect_by_replacing_jump, redirect_edge_and_branch,
1992         force_nonfallthru_and_redirect, tidy_fallthru_edge,
1993         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
1994         commit_edge_insertions, commit_edge_insertions_watch_calls,
1995         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1996         purge_all_dead_edges): Modified.
1997         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
1998         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1999         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
2000         Modified.
2001         * conflict.c (conflict_graph_compute): Modified.
2002         * df.c (FOR_ALL_BBS): Removed.
2003         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2004         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
2005         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
2006         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
2007         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2008         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
2009         * final.c (compute_alignments, final_scan_insn): Modified.
2010         * flow.c (verify_local_live_at_start, update_life_info,
2011         update_life_info_in_dirty_blocks, free_basic_block_vars,
2012         delete_noop_moves, calculate_global_regs_live,
2013         initialize_uninitialized_subregs, allocate_bb_life_data,
2014         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
2015         mark_used_reg, count_or_remove_death_notes): Modified.
2016         * function.c (thread_prologue_and_epilogue_insns): Modified.
2017         * gcse.c (struct null_pointer_info): Change typo of current_block
2018         to basic_block.
2019         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
2020         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
2021         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
2022         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
2023         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
2024         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
2025         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
2026         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
2027         pre_delete, one_pre_gcse_pass, compute_transpout,
2028         invalidate_nonnull_info, delete_null_pointer_checks_1,
2029         free_code_hoist_mem, compute_code_hoist_vbeinout,
2030         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2031         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
2032         compute_store_table, build_store_vectors, insert_insn_start_bb,
2033         insert_store, replace_store_insn, free_store_memory, store_motion):
2034         Modified.
2035         * global.c (global_alloc, global_conflicts, mark_elimination,
2036         build_insn_chain): Modified.
2037         * graph.c (print_rtl_graph_with_bb): Modified.
2038         * haifa-sched.c (sched_init): Modified.
2039         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2040         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
2041         if_convert): Modified.
2042         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
2043         compute_insert_delete, pre_edge_lcm, compute_available,
2044         compute_farthest, compute_nearerout, compute_rev_insert_delete,
2045         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
2046         Modified.
2047         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
2048         * loop.c (loop_dump_aux): Modified.
2049         * predict.c (combine_predictions_for_insn, estimate_probability,
2050         last_basic_block_p, process_note_prediction, process_note_predictions,
2051         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
2052         expensive_function_p, estimate_bb_frequencies,
2053         compute_function_frequency): Modified.
2054         * print-rtl.c (print_rtx): Modified.
2055         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
2056         get_exec_counts, compute_branch_probabilities, compute_checksum,
2057         branch_prob, find_spanning_tree): Modified.
2058         * recog.c (split_all_insns, peephole2_optimize): Modified.
2059         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
2060         convert_regs_1, convert_regs_2, convert_regs): Modified.
2061         * regclass.c (scan_one_insn, regclass): Modified.
2062         * regmove.c (mark_flags_life_zones, regmove_optimize,
2063         combine_stack_adjustments): Modified.
2064         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
2065         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
2066         * reorg.c (dbr_schedule): Modified.
2067         * resource.c (find_basic_block, init_resource_info): Modified.
2068         * sbitmap.c (sbitmap_intersection_of_succs,
2069         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
2070         sbitmap_union_of_preds): Modified.
2071         * sched-deps.c (init_dependency_caches): Modified.
2072         * sched-ebb.c (schedule_ebbs): Modified.
2073         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
2074         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
2075         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
2076         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
2077         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
2078         ssa_const_prop): Modified.
2079         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
2080         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
2081         * ssa.c (remove_phi_alternative, find_evaluations,
2082         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
2083         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
2084         make_regs_equivalent_over_bad_edges,
2085         make_equivalent_phi_alternatives_equival,
2086         compute_conservative_reg_partition,
2087         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
2088         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
2089         Modified.
2090
2091 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
2092
2093         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
2094
2095 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
2096
2097         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
2098         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2099         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
2100         calling CONSTANT_POOL_ADDRESS_P.
2101         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
2102         to decide whether to define __arm__ or __thumb.
2103         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
2104         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2105
2106 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2107
2108         * config/arc/arc.h (CPP_PREDEFINES): Remove.
2109         (CPP_SPEC): Update.
2110         (TARGET_CPU_CPP_BUILTINS): New.
2111
2112 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2113
2114         * cpphash.h (cpp_macro): Move here, and make expansion a union.
2115         * cppmacro.c (cpp_macro): Remove.
2116         (enter_macro_context, replace_args, warn_of_redefinition,
2117         _cpp_create_definition, cpp_macro_definition): Update.
2118
2119 2002-05-16  Jason Merrill  <jason@redhat.com>
2120
2121         * config/mips/mips.c (mips_output_external): Don't do sdata
2122         optimization for a variable with DECL_COMDAT set.
2123
2124 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2125
2126         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
2127         Cleanups for accepting modifiers on pointers.
2128         Fix predicate typos.
2129         Allow long pointers as well as int pointers.
2130
2131 2002-05-15  Richard Henderson  <rth@redhat.com>
2132
2133         * varasm.c (merge_weak): Remove special case for extern and common.
2134
2135 2002-05-15  Matt Hiller  <hiller@redhat.com>
2136
2137         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
2138         XFAILing.
2139         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
2140         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
2141         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
2142         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
2143         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
2144         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
2145
2146 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2147
2148         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
2149
2150 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2151
2152         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
2153         ("altivec_mfvscr"): Read from VSCR.
2154
2155         Add vscr sets for the following insns: altivec_vctuxs,
2156         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
2157         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
2158         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
2159         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
2160         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
2161         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
2162         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
2163         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
2164         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
2165         altivec_vsum2sws, altivec_vsumsws.
2166
2167         * config/rs6000/rs6000.h: Add VSCR fixed register.
2168         (CALL_REALLY_USED_REGISTERS): Add vscr.
2169         (CALL_USED_REGISTERS): Same.
2170         (FIXED_REGISTERS): Same.
2171         (REG_ALLOC_ORDER): Same.
2172         (reg_class): Add VSCR_REGS.
2173         (REG_CLASS_NAMES): Same.
2174         (REG_CLASS_CONTENTS): Same.
2175         (VSCR_REGNO): New.
2176         (REGISTER_NAMES): Add vscr.
2177         (DEBUG_REGISTER_NAMES): Same.
2178         (ADDITIONAL_REGISTER_NAMES): Same.
2179         (FIRST_PSEUDO_REGISTER): Increment.
2180         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
2181
2182 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
2183
2184         * fold-const.c (fold): Fix a typo.
2185
2186 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
2187
2188         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
2189         comparison against the highest or lowest integer value before
2190         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
2191         transformation and that of an unsigned comparison against 0
2192         right after.
2193
2194 2002-05-15  Richard Henderson  <rth@redhat.com>
2195
2196         * varasm.c (merge_weak): Error for any weakening after definition.
2197         Adjust weakening after use warning to catch more cases.
2198         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
2199         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
2200
2201 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2202
2203         * invoke.texi (-malign-double): Re-add lost warning.
2204
2205         * i386-protos.h (x86_output_mi_thunk): Declare.
2206         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
2207         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
2208
2209         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
2210         when flag_asynchronous_unwind_tables is set.
2211
2212         * flags.h (flag_reorder_functions): Declare.
2213         * function.c (prepare_function_start): Initialize frequnecy.
2214         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
2215         * Makefile.in (predict.o): Add dependency on target.h and params.h
2216         * defaults.h (HOT_TEXT_SECTION_NAME,
2217         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
2218         * predict.c (choose_function_section): New function.
2219         (estimate_bb_frequencies): Use it.
2220         * toplev.c (flag_reorder_functions): New global variable.
2221         (lang_independent_options): New.
2222         (parse_options_and_default_flags): Set.
2223         * varasm.c (assemble_start_function): Bypass functdion alignment
2224         for never executed functions.
2225         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
2226         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
2227         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2228         Document.
2229
2230         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
2231
2232         * predict.c: Inlude profile.h
2233         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
2234         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
2235         Use the information about maximal counter in the program.
2236
2237         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
2238
2239         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
2240         probably_never_executed_bb_p): New functions.
2241         * cfgcleanup.c (outgoing_edges_match): Use them.
2242         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
2243         (maybe_hot_bb_p, probably_cold_bb_p,
2244         probably_never_executed_bb_p): New functions.
2245
2246         * function.h (function): Add new field function_frequency.
2247         * predict.c (compute_function_frequency): New function.
2248         (estimate_probability): Call it.
2249
2250 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
2251
2252         PR optimization/5172, optimization/5200
2253         * gcse.c (gcse_main): Disable store_motion.
2254
2255 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
2256
2257         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
2258         (c_common_nodes_and_builtins): Use it.
2259         (builtin_define_with_value): New function.
2260         (cb_register_builtins): Define __SIZE_TYPE__,
2261         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
2262         using builtin_define_with_value.  Use consistent notation when
2263         defining __GXX_WEAK__.
2264         (WCHAR_TYPE_SIZE): Don't redefine.
2265         (combine_strings): Don't use WCHAR_TYPE_SIZE.
2266
2267         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
2268         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
2269         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
2270         * tradcpp.c (initialize_builtins): Likewise.
2271         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
2272
2273         * c-lex.h (builtin_define_with_value): Prototype.
2274         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
2275         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
2276         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
2277
2278         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
2279         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
2280         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
2281         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
2282         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
2283         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
2284         config/sparc/sol2-bi.h, config/sparc/sparc.h:
2285         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
2286         to __SIZE_TYPE__ etc from all spec strings. When this makes
2287         extra specs empty, delete them.
2288
2289 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2290
2291         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
2292         for PA8000 or generating dwarf2 call frame information.
2293         (output_call): Remove DO_FRAME_NOTES check from return pointer
2294         optimization.
2295         (following_call): Return 0 when scheduling for PA8000 or generating
2296         dwarf2 call frame information.  Revise comment.
2297
2298 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2299
2300 config/alpha:
2301         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
2302         and __IEEE_FP_INEXACT as appropriate.
2303         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
2304         (CPP_SPEC): Remove ieee defines.
2305         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
2306
2307 2002-05-14  Richard Henderson  <rth@redhat.com>
2308
2309         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
2310         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
2311
2312 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2313
2314         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
2315         (CPP_SPEC): Update.
2316         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
2317         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
2318         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
2319         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
2320         (EXTRA_SPECS): Update.
2321         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
2322         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
2323         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
2324         define TARGET_OS_CPP_BUILTINS if necessary.
2325
2326 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2327
2328         * gcc.c (cpp_options): Must pass -m* and -f* options
2329         to the front end even when only preprocessing.
2330         (cc1_options): Remove redundant -lang-c.
2331         * tradcpp.c (main): Ignore -m options.
2332 objc:
2333         * lang-specs.h: Similarly.
2334
2335 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
2336
2337         * genautomata.c (transform_3): Add code for transformation
2338         `(A,B,...)+C -> A+C,B,...'.
2339
2340 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
2341
2342         * final.c (end_final): Do not output profile_arcs constructor, when
2343         no functions are instrumented.
2344
2345 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
2346
2347         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
2348
2349 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2350
2351         * doc/install.texi: Remove special markup originally required for
2352         HTML generation with texi2html.
2353
2354 2002-05-14  Andreas Schwab  <schwab@suse.de>
2355
2356         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
2357         SELECT_SECTION.
2358         (UNIQUE_SECTION): Define to get small data correctly.
2359
2360         * varasm.c (resolve_unique_section): Add third parameter
2361         flag_function_or_data_sections and use it instead of
2362         flag_function_sections.
2363         (assemble_start_function): Pass flag_function_sections.
2364         (asm_emit_uninitialised): Pass flag_data_sections.
2365         (assemble_variable): Likewise.
2366
2367 2002-05-14  Richard Henderson  <rth@redhat.com>
2368
2369         * config/i386/i386.md: Use define_constants for unspec numbers.
2370         * config/i386/i386.c: Likewise.
2371
2372 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2373
2374         * doc/contrib.texi: Update my entry.
2375
2376 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
2377
2378         * fixinc/inclhack.def (winidss_valist): Limit applicability.
2379         * fixinc/fixincl.x: Regenerated.
2380         * fixinc/tests/base/math.h: Update.
2381         * fixinc/tests/base/testing.h: Likewise.
2382
2383 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
2384
2385         * genattr.c (gen_attr): Don't emit a comma after the last
2386         enumerator.
2387
2388 2002-05-13  Richard Henderson  <rth@redhat.com>
2389
2390         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
2391         by non-local gotos.
2392         * recog.c (peephole2_optimize): Likewise.
2393
2394 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
2395
2396         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
2397         input to O_BINARY.
2398
2399 2002-05-13  Jeffrey A Law  (law@redhat.com)
2400
2401         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
2402         Update prototype and callers.
2403         (propagate_one_insn): Stack pointer adjustments kill MEMs on
2404         the mem_set_list which reference the stack pointer, as do
2405         calls to constant functions as they may clobber outgoing
2406         argument space.
2407
2408         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
2409
2410         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
2411         (ia32_multipass_dfa_lookahead): New function.
2412
2413 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2414
2415         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
2416         (translate_options): Remove 'V'.
2417         (process_command): Similarly.
2418 doc:
2419         * invoke.texi: Remove documentation of 'V'.
2420
2421 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2422
2423         * config/s390/linux.h: Revert 2002-04-22 changes.
2424
2425 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
2426
2427         * config/fr30/fr30.md: Only allow splits of immediate loads
2428         if the destination is a register.
2429
2430 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2431
2432         * Makefile.in (c-common.o, cppinit.o): Update.
2433         * c-common.c: Include except.h.
2434         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
2435         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
2436         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
2437         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
2438         CPP_PREDEFINES): Handle here.
2439 config:
2440         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
2441         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
2442         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
2443         TARGET_OS_CPP_BUILTINS.
2444         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
2445         (CPP_SPEC, EXTRA_SPECS): Update.
2446         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
2447         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
2448         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
2449         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
2450         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
2451 doc:
2452         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
2453         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
2454
2455 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2456
2457         * emit-rtl.c (global_rtl): Update comment.
2458         (const_double_htab, const_double_htab_hash,
2459         const_double_htab_hash, lookup_const_double): New.
2460         (const_int_htab_hash, const_int_htab_eq): Remove const
2461         qualifiers, which cause tons of warnings with RTL checking on.
2462         (gen_rtx_CONST_DOUBLE): Deleted.
2463         (const_double_from_real_value): New function - bears some
2464         resemblance to the former immed_real_const_1.
2465         (immed_double_const): Moved here from varasm.c and
2466         simplified.
2467         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
2468         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
2469         (gen_rtx): Use immed_double_const.
2470         (init_emit_once): Initialize the const_double_htab.  Use
2471         REAL_VALUE_FROM_INT where possible.  Can now use
2472         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
2473         * varasm.c (struct varasm_status): Remove x_const_double_chain.
2474         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
2475         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
2476         (init_varasm_status, mark_varasm_status): Don't touch
2477         x_const_double_chain.
2478
2479         * output.h: Delete prototype for clear_const_double_mem.
2480         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
2481         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
2482         const_double_from_real_value, not immed_real_const_1, and use
2483         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
2484         CONST_DOUBLE_ATOF.
2485         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
2486         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
2487         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
2488         (gen_rtx_REG): Second arg is unsigned.
2489
2490         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
2491         (excluded_rtx): New, return true for CONST_DOUBLE.
2492         (genmacro): Write nothing for excluded codes.
2493         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
2494         * expr.c (expand_expr): Likewise.
2495         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
2496         CONST_DOUBLE_CHAIN.
2497         * toplev.c (rest_of_compilation): Don't call
2498         clear_const_double_mem.
2499
2500         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
2501         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
2502         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
2503         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
2504         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
2505         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
2506         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
2507         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
2508
2509 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2510
2511         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
2512
2513 2002-05-12  Tom Tromey  <tromey@redhat.com>
2514
2515         * tree.h (copy_node): Don't mention TREE_PERMANENT.
2516
2517 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2518
2519         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
2520         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
2521         * gensupport.h: Prototype new routines.
2522         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
2523         use of printf.
2524         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
2525         (next_comma_elt): Use scan_comma_elt.
2526
2527         * config/i386/i386.md: Use new attribute notation to break up
2528         long lines in define_attr forms.
2529
2530 2002-05-12  Richard Henderson  <rth@redhat.com>
2531
2532         * expr.c (compress_float_constant): New.
2533         (emit_move_insn): Use it.
2534         (float_extend_from_mem): New.
2535         (init_expr_once): Initialize it.
2536         * real.c (exact_real_truncate): New.
2537
2538         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
2539         dropped into memory; penalize for size.
2540         (RTX_COSTS): FLOAT_EXTEND is free.
2541         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
2542         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
2543
2544 2002-05-12  Richard Henderson  <rth@redhat.com>
2545
2546         * profile.h (profile_info): Add missing extern to declaration.
2547         * profile.c (profile_info): Define it.
2548
2549 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2550
2551         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
2552         used for DImode and TImode.
2553
2554 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2555
2556         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
2557         fake a newline.
2558
2559 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
2560
2561         * config/rs6000/rs6000.c (rs6000_default_long_calls,
2562         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
2563         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
2564         (rs6000_override_options): Handle -m(no-)longcall.
2565         (init_cumulative_args, output_mi_thunk): Check for both
2566         longcall and shortcall attributes on the function.
2567         (rs6000_attribute_table): Add "shortcall".
2568         (rs6000_handle_longcall_attribute): Update comment.
2569         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
2570         altivec_expand_ternop_builtin): Add default clauses to switches
2571         to silence warnings.
2572
2573         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
2574         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
2575         (TARGET_OPTIONS): Add longcall and no-longcall.
2576
2577         * config/rs6000/rs6000.md (call_nonlocal_sysv,
2578         call_value_nonlocal_sysv): Split by alternatives.  One pair
2579         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
2580         the call cookie.  The other pair accepts only LR/CTR and has
2581         no restriction.
2582
2583         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
2584         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
2585         tmake_file.
2586         * config/rs6000/rs6000-c.c: New file.
2587         * config/rs6000/t-rs6000-c-rule: New file.
2588         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
2589         Prototype rs6000_pragma_longcall.
2590
2591         * doc/extend.texi: Document shortcall attribute.
2592         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
2593
2594 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2595
2596         * reorg.c (dbr_schedule): Remove unnecessary test.
2597
2598 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2599
2600         * i386.md (testsi to testqi spliters): New.
2601
2602         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
2603
2604         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
2605
2606         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
2607
2608         * basic-block.h: New flag EDGE_CAN_FALLTHRU
2609         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
2610         that can be made fallthru.
2611
2612         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
2613
2614         * cfglayout.c (cleanup_unconditional_jumps): New static function.
2615         (cfg_layout_initialize): Use it.
2616
2617 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2618
2619         * config/avr/avr.c (avr_mcu_types): Update supported devices.
2620         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2621         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2622
2623 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
2624
2625         * dbxout.c: Fix formatting.
2626         * dependence.c: Likewise.
2627         * df.c: Likewise.
2628         * diagnostic.c: Likewise.
2629         * doloop.c: Likewise.
2630         * dominance.c: Likewise.
2631         * doschk.c: Likewise.
2632         * dwarf2asm.c: Likewise.
2633         * dwarf2out.c: Likewise.
2634         * dwarfout.c: Likewise.
2635
2636 2002-05-10  Richard Henderson  <rth@redhat.com>
2637
2638         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
2639         Convert integers constants as needed.  Replace "nwords" field with
2640         "sizeof_bb".
2641         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
2642         * function.h: Fix typo in comment.
2643         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
2644
2645 2002-05-10  Roger Sayle  <roger@eyesopen.com>
2646
2647         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
2648         into the equivalent (signed char)c > 0.
2649
2650 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
2651
2652         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
2653         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
2654         (struct prefetch_info): Fix spelling of member bytes_accessed.
2655         (emit_prefetch_instructions): Make dump messages more regular;
2656         restructure code to add more dump messages; use new macros for
2657         heuristics. (There are no code generation changes in any of this).
2658
2659 2002-05-10  David S. Miller  <davem@redhat.com>
2660
2661         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
2662         (struct rtx_def): Update unchanging flag comment.
2663         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
2664         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
2665         to be handled to INSN too.
2666         (dbr_schedule): Likewise.
2667         * resource.c (next_insn_no_annul): Likewise.
2668
2669         * cse.c (rtx_cost): Remove multiplication by power of 2 special
2670         casing.
2671
2672 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2673
2674         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
2675         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
2676         (possibly) work around broken /bin/sh.
2677
2678 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2679
2680         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2681         . as N64/N32 libgcc_s.so subdirs.
2682
2683 2002-05-10  David S. Miller  <davem@redhat.com>
2684
2685         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2686
2687         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2688         more accurately.
2689         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2690         comment.
2691         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2692         * doc/rtl.texi: Document these macros more accurately.
2693         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2694         JUMP_INSNs and CALL_INSNs.
2695         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2696         or INSN_FROM_TARGET_P if the code is appropriate.
2697
2698 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2699
2700         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2701         before using SYMBOL_REF_FLAG (addr).
2702
2703         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2704         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2705         Make non-static.  Update all callers.
2706         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2707         New insns to clear/set/test a single bit in I/O address space.
2708
2709 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2710
2711         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2712
2713 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2714
2715         * Makefile.in: Update.
2716         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2717         builtin_define_std): New.
2718         (c_common_init): Register CPP builtins callback.
2719         * c-common.h (flag_iso, flag_undef): New.
2720         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2721         * c-lex.c: Don't include target.h.
2722         (cb_register_builtins): Move to c-common.c.
2723         (init_c_lex): Don't register hook here.
2724         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2725         (cpp_define, cpp_assert): Remove.
2726         * gcc.c (cc1_options): Pass -undef to front end.
2727         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2728         (TARGET_INITIALIZER): Update.
2729         * target.h (struct cpp_reader): Don't predeclare.
2730         (struct gcc_target): Remove cpp builtin hook.
2731         * tree.c (default_register_cpp_builtins): Remove.
2732 doc:
2733         * tm.texi: Update.
2734
2735 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2736
2737         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2738
2739 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2740
2741         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2742         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2743
2744 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2745
2746         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2747         * config/sparc/libgcc-sparc-glibc.ver: New file.
2748         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2749         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2750
2751 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2752
2753         PR target/6429
2754         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2755         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2756         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2757         base multilibs.
2758         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2759         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2760         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2761         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2762
2763 2002-05-09  Richard Henderson  <rth@redhat.com>
2764
2765         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2766         * config/ia64/ia64.c: Likewise.
2767
2768 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
2769
2770         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
2771         (save_restore_insns): Likewise.
2772         (mips_expand_prologue, mips_expand_epilogue): Update callers.
2773         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
2774
2775 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
2776
2777         * athlon.md, k6.md, pentium.md, ppro.md): New files.
2778         * i386.md: Move scheduling information into new files.
2779
2780         * i386.md (type attribute): Add "rotate" for rotate insns.
2781         (rotate insns): Set type to "rotate".
2782         (various attributes and function units): Treat rotate like shift.
2783         (pent_pair attribute): Only rotates by one bit position are
2784         pairable.
2785         (sbb insns): Explicitly set pent_pair attribute on a couple
2786         that were missing it.
2787
2788 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2789
2790         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
2791         make sure that buffer starts on odd word address.
2792         (sh_va_arg): Skip odd fp registers when reading a double precision
2793         value.
2794
2795 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2796
2797         * tree.h (preserve_data, object_permanent_p, type_precision):
2798         Remove.
2799
2800 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2801
2802         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
2803         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
2804 doc:
2805         * cpp.texi: Update for removal of obsolete features.
2806
2807 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
2808                           Jeffrey A Law  (law@redhat.com)
2809
2810         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
2811         the DFA interface for Pentium processors.
2812         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
2813         (attr_pent_pair, ix86_pent_find_pair): Remove.
2814         (ix86_sched_reorder_pentium): Remove.
2815         (ix86_sched_reorder): Remove reordering for Pentium.
2816         * i386.md (Pentium scheduling): Rewrite using DFA description.
2817
2818 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2819
2820         * cfganal.c (can_fallthru): Fix fast path.
2821         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
2822         with edges to the next block.
2823
2824 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2825                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2826
2827         * final.c (end_final): Use C trees to output data structures for profiling.
2828
2829         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2830         (profile.o): New dependency profile.h
2831         (final.o): New dependency profile.h
2832         * profile.h: New file. New global structure profile_info.
2833         * final.h (count_edges_instrumented_now): Declare.
2834         (current_function_cfg_checksum): Declare.
2835         (function_list): New structure.
2836         (functions_head, functions_tail): New static variables.
2837         (end_final): Emits more data, removed some -ax stuff.
2838         (final): Stores function names and chcksums.
2839         * gcov-io.h (__write_gcov_string): New function.
2840         (__read_gcov_string): New function.
2841         * gcov.c (read_profile): New function.
2842         (create_program_flow_graph): Uses read_profile instead of reading
2843         da_file.
2844         (read_files): Removed da_file checking, it's done by read_profile now.
2845         * libgcc2.c (bb_function_info): New structure.
2846         (bb): New field in structure, removed some -ax stuff.
2847         (__bb_exit_func): Changed structure of da_file.
2848         * profile.c (count_edges_instrumented_now): New global variable.
2849         (current_function_cfg_checksum): New global variable.
2850         (max_counter_in_program): New global variable.
2851         (get_exec_counts): New function.
2852         (compute_checksum): New function.
2853         (instrument_edges): Sets count_edges_instrumented_now.
2854         (compute_branch_probabilities): Uses get_exec_counts instead of
2855         reading da_file.
2856         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
2857         (init_branch_prob): Removed da_file checking, done in get_exec_counts
2858         now.
2859         (end_branch_prob): Removed da_file checking, done in get_exec_counts
2860         now.
2861         * gcov.texi: Updated information about gcov file format.
2862
2863 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2864
2865         * sbitmap.c: Fix formatting.
2866         * scan.c: Likewise.
2867         * scan-decls.c: Likewise.
2868         * sched-deps.c: Likewise.
2869         * sched-ebb.c: Likewise.
2870         * sched-rgn.c: Likewise.
2871         * sched-vis.c: Likewise.
2872         * sdbout.c: Likewise.
2873         * sibcall.c: Likewise.
2874         * simplify-rtx.c: Likewise.
2875         * ssa.c: Likewise.
2876         * ssa-ccp.c: Likewise.
2877         * ssa-dce.c: Likewise.
2878         * stmt.c: Likewise.
2879         * stor-layout.c: Likewise.
2880         * stringpool.c: Likewise.
2881
2882 2002-05-09  David S. Miller  <davem@redhat.com>
2883
2884         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2885
2886 2002-05-07  David S. Miller  <davem@redhat.com>
2887
2888         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2889         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2890         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2891         library implementation clobbers the output before the inputs
2892         are fully consumed, use stack temporary for the output.
2893
2894 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2895
2896         * config/netbsd.h (CPP_SPEC): Remove.
2897         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2898         * config/i386/netbsd.h (CPP_SPEC): Define.
2899         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2900         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2901         * config/sparc/netbsd.h (CPP_SPEC): Define.
2902         * config/vax/netbsd.h (CPP_SPEC): Define.
2903
2904 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2905
2906         * read-rtl.c: Fix formatting.
2907         * real.c: Likewise.
2908         * recog.c: Likewise.
2909         * regclass.c: Likewise.
2910         * regmove.c: Likewise.
2911         * reg-stack.c: Likewise.
2912         * reload1.c: Likewise.
2913         * reload.c: Likewise.
2914         * resource.c: Likewise.
2915         * rtlanal.c: Likewise.
2916         * rtl.c: Likewise.
2917         * rtl-error.c: Likewise.
2918
2919 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2920
2921         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2922         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2923
2924 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2925
2926         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2927         use __SSE2__ macro instead.
2928         * config/i386/xmmintrin.h: Likewise.
2929
2930 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2931
2932         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2933         and use it in all invocations of these macros.  Clean up comments.
2934         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2935         of the flag access macro whose check failed.
2936         * doc/rtl.texi (Flags): Document additional flag uses.
2937
2938 2002-05-08  Robert Spier <rspier@pobox.com>
2939             Neil Booth  <neil@daikokuya.demon.co.uk>
2940
2941         PR preprocessor/6521
2942         * cppfiles.c (handle_missing_header): Don't do anything
2943         different for <> includes.
2944 doc:
2945         * cppopts.texi: Update documentation for -MG.
2946
2947 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2948
2949         * cpplex.c (cpp_interpret_charconst): Truncate as well as
2950         sign-extend.
2951 doc:
2952         * cpp.texi: Clarify multichar charconst valuation.
2953
2954 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2955
2956         * doc/invoke.texi: Document -mwindiss option.
2957
2958 2002-05-08  Jason Merrill  <jason@redhat.com>
2959
2960         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2961
2962         * dwarf2out.c (gen_type_die): Abort on broken recursion.
2963
2964         PR c++/6381
2965         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2966         REAL_CST.
2967
2968 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
2969
2970         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
2971         little-endian multilibs to override arm/thumb multilibs.
2972         Do not build hardware floating point multilibs, nor apcs-26
2973         multilibs for the Thumb.
2974
2975 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2976
2977         PR c/6569.
2978         * varasm.c (mark_weak): New function.
2979         (merge_weak): Use it.  Do not call declare_weak.
2980         (declare_weak): Use merge_weak.
2981
2982 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2983
2984         * cse.c (dead_libcall_p): Update counts.
2985         (delete_trivially_dead_insns): Update call of dead_libcall_p.
2986
2987 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2988
2989         * cfglayout.c (function_tail_eff_head): Rename to ...
2990         (function_footer): ... this one.
2991         (unlink_insn_chain): New functions.
2992         (label_for_bb): Only call block_label and emit debug message.
2993         (record_effective_endpoints): Actually unlink the headers and footers.
2994         (fixup_reorder_cahin): Re-insert the unlinked sequences.
2995         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
2996         * cfglayout.h (struct reorder_block_def): New fields footer/header;
2997         remove eff_head/eff_end.
2998         * rtl.h (set_first_insn): Declare.
2999         * emit-rtl.c (set_first_insn): New function.
3000
3001         * cfglayout.c (fixup_reorder_chain): Dump duplicated
3002         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3003         cfg_layout_duplicate_bb): New global function.
3004         (duplicate_insn_chain): New static function.
3005         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3006         cfg_layout_duplicate_bb): Declare.
3007         (struct reorder_block_def): Add "original" field.
3008         * emit-rtl.c (emit_copy_of_insn_after): New function.
3009         * rtl.h (emit_copy_of_insn_after): Declare.
3010
3011         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
3012         (fixup_reorder_chain): properly handle edges to exit block.
3013
3014 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3015                                Jan Hubicka  <jh@suse.cz>
3016
3017         * basic-block.h (note_prediction_to_br_prob): declare.
3018         * c-semantics.c: Inlucde predit.h
3019         (expand_stmt): predict GOTO_STMT as not taken.
3020         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
3021         (cleanup_cfg): Do not free tail_recursion_list.
3022         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
3023         (flow_delete_block): Kill predictions past end of basic block.
3024         * output.h (delete_unreachable_blocks): Declare.
3025         * predict.c (predicted_by_p, process_note_predictions,
3026         process_note_prediction, last_block_p): New function.
3027         (estimate_probability): Bypass loop on PRED_CONTINUE;
3028         do not handle noreturn heuristics; kill PRED_RETURN; add
3029         PRED_EARLY_RETURN.
3030         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
3031         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
3032         * predict.h (IS_TAKEN): New constant.
3033         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
3034         * rtl.c (NOTE_INSN_PREDICTION): New.
3035         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
3036         New macro.
3037         (insn_note): add NOTE_INSN_PREDICTION.
3038         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
3039         CFG; free tail_recursion_label_list.
3040         * stmt.c: Include predict.h;
3041         (return_prediction): New.
3042         (expand_value_return): Use it.
3043         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
3044
3045 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
3046
3047         * config/mips/mips.md: Name the unspecs with define_constant.
3048         (*HILO_delay): Rename to 'hilo_delay' (no star).
3049         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
3050         (reload_outdi, reload_outsi): Likewise.
3051
3052 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
3053
3054         * toplev.c: Fix formatting.
3055
3056 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
3057
3058         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
3059         * configure.in (ac_rtlflag_checking): New.
3060         * doc/install.texi (--enable-checking): Document RTL flag checking.
3061
3062 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3063
3064         * c-common.c (c_common_init): Set options->unsigned_wchar.
3065         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
3066         group target dependencies.
3067         (init_builtins, cpp_handle_option): Update.
3068         * cpplex.c (cpp_interpret_charconst): Update.
3069         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
3070         signed_char to unsigned_char, group target dependencies.
3071         * defaults.h (WCHAR_UNSIGNED): Remove.
3072         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
3073 config:
3074         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
3075         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
3076         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
3077         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
3078         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
3079 doc:
3080         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
3081
3082 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3083
3084         * fixinc/inclhack.def (windiss_math1): New fix.
3085         (windiss_math2): Likewise.
3086         (windiss_valist): Likewise.
3087         * fixinc/fixincl.x: Regenerated.
3088
3089 2002-05-07  Andreas Jaeger  <aj@suse.de>
3090
3091         * genautomata.c (output_internal_min_issue_delay_func): Add
3092         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
3093         (output_internal_trans_func): Likewise.
3094
3095 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
3096
3097         * pa.c (hppa_profile_hook): Use force_reg to get the address
3098         of the profile hook into an appropriate pseudo register.
3099
3100 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3101
3102         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
3103         (LINK_START_SPEC): Handle it.
3104         (LINK_OS_SPEC): Likewise.
3105         (CPP_SPEC): Likewise.
3106         (STARTFILE_SPEC): Likewise.
3107         (LIB_SPEC): Likewise.
3108         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
3109         all platforms.
3110         (CRTSAVRES_DEFAULT_SPEC): New macro.
3111         (LIB_WINDISS_SPEC): New macro.
3112         (CPP_OS_WINDISS_SPEC): Likewise.
3113         (STARTFILE_WINDISS_SPEC): Likewise.
3114         (ENDFILE_WINDISS_SPEC): Likewise.
3115         (LINK_START_WINDISS_SPEC): Likewise.
3116         (LINK_OS_WINDISS_SPEC): Likewise.
3117         * config/rs6000/windiss.h: New file.
3118
3119 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
3120
3121         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
3122
3123 2002-05-06  David S. Miller  <davem@redhat.com>
3124
3125         * config/sparc/sparc.md (shift insns): Do not mask off
3126         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
3127         take care of it.
3128
3129 2002-05-06  Richard Henderson  <rth@redhat.com>
3130
3131         PR c++/6212
3132         * expr.c (highest_pow2_factor_for_type): New.
3133         (expand_assignment): Use it.
3134
3135 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
3136
3137         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
3138         unspec_volatile.
3139         ("altivec_mfvscr"): Same.
3140
3141 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3142
3143         * rtl.h (struct rtx_def): Update comments.
3144         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
3145         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
3146         RTL_FLAG_CHECK macros with list of expected RTL codes.
3147         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
3148         (rtl_check_failed_flag): New.
3149         * reload1.c (reload): Use REG macro before changing rtx to MEM.
3150         (reload_cse_noop_set_p): Check rtx code before using access macro.
3151         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
3152         before using access macro.
3153
3154 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3155
3156         * doc/rtl.texi (Flags): Update to reflect current usage.
3157
3158 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3159
3160         PR opt/3995
3161         * fold-const.c (sign_bit_p): New function.
3162         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
3163         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
3164         Reapply fold when converting (A & C) == C into (A & C) != 0.
3165         (fold_binary_op_with_conditional_arg): Fix typo in comment.
3166
3167 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3168
3169         * c-common.c (warn_multichar): New.
3170         (c_common_init): Set CPP's warn_multichar.
3171         * c-common.h (warn_multichar): New.
3172         * c-decl.c (warn_multichar): Remove.
3173         * c-lex.c (lex_charconst): Update.
3174         * c-tree.h (warn_multichar): Remove.
3175         * cppexp.c (eval_token): Sign-extend charconst value.
3176         * cppinit.c (cpp_create_reader): Set warn_multichar.
3177         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
3178         each character.  Update prototype.  Sign-extend the result.
3179         * cpplib.h: Fix conditions.
3180         (struct cpp_options): Add new warning flag.
3181         (cpp_interpret_charconst): Update prototype.
3182 doc:
3183         * cpp.texi: Update documentation.
3184
3185 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
3186
3187         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
3188         Fix typo in usage of allof instead of unit.
3189
3190 2002-05-06  Richard Henderson  <rth@redhat.com>
3191
3192         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
3193         and any jump or call for IN.
3194
3195 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
3196
3197         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
3198         -msse2.
3199         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
3200
3201 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3202
3203         * fold-const.c (lshift-double): Cast the high word to an unsigned
3204         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
3205         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
3206         avoid compiler warning.  (fold): Remove redundant code from
3207         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
3208
3209 2002-05-06  Jeff Law  <law@redhat.com>
3210
3211         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
3212         * pa.c (pa_adjust_cost): Remove all true dependency cost
3213         adjustments.  Also remove support for non-DFA scheduling.
3214         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
3215         to adjust true dependency costs.  Update various comments.
3216         (7100lc, 7200, 7300 scheduling): Simplify by combining the
3217         FP ALU & MPY units into a single unit.
3218
3219 2002-05-06  Catherine Moore  <clm@redhat.com>
3220
3221         * config/v850/v850.c (compute_register_save_size): Make sure
3222         to count all of the registers that will be saved.
3223
3224 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3225
3226         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
3227
3228 2002-05-06  David S. Miller  <davem@redhat.com>
3229
3230         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
3231         allow result to overlap input operands in memory.
3232
3233 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3234
3235 doc:
3236         * cpp.texi: Update multichar charconst docs.
3237
3238 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3239
3240         * cpplex.c (cpp_interpret_charconst): Sign-extend each
3241         character.  Don't ignore excess characters.  Treat
3242         multicharacter character constants as signed.
3243         (cpp_parse_escape): Clarify diagnostic.
3244
3245 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3246
3247         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
3248         use add instead of shift.
3249         (ashldi3_sp64): Likewise.
3250         (ashlsi3_const1, ashldi3_const1): Remove.
3251         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
3252         * config/sparc/sparc.c (const1_operand): New.
3253
3254 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3255
3256         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
3257
3258 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3259
3260         PR target/6561
3261         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
3262
3263 2002-05-05  Richard Henderson  <rth@redhat.com>
3264
3265         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
3266         memory latency adjustments.
3267         (alpha_variable_issue): Remove.
3268         (alpha_use_dfa_pipeline_interface): New.
3269         (alpha_multipass_dfa_lookahead): New.
3270         * config/alpha/alpha.md: Remove define_function_unit scheduling;
3271         include new dfa scheduling.
3272         (attr type): Add none.
3273         (blockage): Use it.
3274         * config/alpha/ev4.md: New.
3275         * config/alpha/ev5.md: New.
3276         * config/alpha/ev6.md: New.
3277
3278 2002-05-05  David S. Miller  <davem@redhat.com>
3279
3280         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
3281
3282 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
3283
3284         * cse.c: Fix formatting.
3285         * emit-rtl.c: Likewise.
3286
3287 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3288
3289         * genautomata.c (initiate_states): Add additional guard to
3290         initialize `units_array'.
3291
3292 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3293
3294         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
3295         process_unit_to_form_the_same_automaton_unit_lists,
3296         form_the_same_automaton_unit_lists
3297         check_unit_distributions_to_automata): New prototypes and
3298         functions.
3299         (check_automata): Rename it into `check_automata_insn_issues'.
3300         (unit_decl): New fields `the_same_automaton_unit' and
3301         `the_same_automaton_message_reported_p'.
3302         (unit_decl_t): New typedef.
3303         (the_same_automaton_lists): New gloval variable.
3304         (unit_regexp, unit_set_el, units_array, units_cmp,
3305         output_get_cpu_unit_code_func): Use the typedef.
3306         (evaluate_max_reserv_cycles): Increment
3307         `description->max_insn_reserv_cycles'.
3308         (initiate_states): Don't increment `max_cycles_num'.
3309         (transform_insn_regexps): Move code around transformation of
3310         regexps from `generate'.
3311         (generate): Remove call of `transform_insn_regexps'.
3312         (expand_automata): Call `transform_insn_regexps' and
3313         `check_unit_distributions_to_automata'.  Check errors before
3314         `generate'.
3315
3316         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
3317         automaton `ultrasparc3_1'.
3318
3319 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3320
3321         * c-common.c (c_common_init): Set up CPP arithmetic.
3322         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
3323         something reasonable for the host.
3324         (sanity_checks): Add checks.
3325         (cpp_read_main_file): Call sanity_checks() from here...
3326         (cpp_post_options): ... not here.
3327         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
3328         * cpplib.h (struct cpp_options): New member int_precision.
3329
3330 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3331
3332         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
3333
3334 2002-05-04  David S. Miller  <davem@redhat.com>
3335
3336         * config/sparc/linux.h, config/sparc/linux64.h
3337         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
3338
3339         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
3340         more RTX codes.
3341         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
3342
3343         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
3344         of SETs.
3345
3346 2002-05-05  Tim Josling  <tej@melbpc.org.au>
3347
3348         * treelang; New directory for new sample language treelang.
3349
3350 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3351
3352         * Makefile.in (c-lex.o): Update.
3353         * c-lex.c: Include target.h.
3354         (cb_register_builtins): New.
3355         (init_c_lex): Set builtins callback.
3356         * c-lex.h (cpp_define, cpp_assert): New prototypes.
3357         * cppinit.c (init_builtins): Use callback, including for
3358         GXX_WEAK.
3359         * cpplib.h (struct cpp_callbacks): New member.
3360         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
3361         (TARGET_INITIALIZER): Update.
3362         * target.h (struct gcc_target): New hook.
3363         * tree.c (default_register_cpp_builtins): New.
3364         * tree.h (default_register_cpp_builtins): New.
3365 doc:
3366         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
3367
3368 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3369
3370         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
3371         (cpp_post_options): Move sanity checks to...
3372         (sanity_checks): New.
3373         * cpplex.c (maybe_read_ucs): Fix prototype.
3374         (parse_string, cpp_parse_escape): Cast for %c format specifier.
3375         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
3376         if necessary.
3377
3378 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
3379
3380         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
3381         builtins.  Use V2DI patterns instead of TI for logical operations.
3382         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
3383         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
3384         (ix86_expand_builtins): Change the pattern used for movntdq.
3385         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
3386         sse2_nandv2di3): New patterns.
3387         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
3388         on operands.
3389         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
3390         (cvtdq2pd): Correct mode on operand 1.
3391         (sse2_umulsidi3): Describe without unspec.
3392         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
3393         machine modes.
3394         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
3395         (ashlv2di3): Likewise, from sse2_ashlv2di3.
3396         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
3397         ashlv4si3, ashlv2di3): Use SImode for shift count.
3398         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
3399         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
3400         New patterns.
3401         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
3402         New typedefs.
3403         (__m128i, __m128d): New macros.
3404         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
3405         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
3406         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
3407         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
3408         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
3409         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
3410         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
3411         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
3412         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
3413         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
3414         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
3415         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
3416         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
3417         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
3418         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
3419         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
3420         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
3421         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
3422         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
3423         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
3424         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
3425         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
3426         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,