OSDN Git Service

* rtl.h (struct rtx_def): Update comments.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2
3         * rtl.h (struct rtx_def): Update comments.
4         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
5         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
6         RTL_FLAG_CHECK macros with list of expected RTL codes.
7         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
8         (rtl_check_failed_flag): New.
9         * reload1.c (reload): Use REG macro before changing rtx to MEM.
10         (reload_cse_noop_set_p): Check rtx code before using access macro.
11         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
12         before using access macro.
13
14 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
15
16         * doc/rtl.texi (Flags): Update to reflect current usage.
17
18 2002-05-06  Roger Sayle  <roger@eyesopen.com>
19
20         PR opt/3995
21         * fold-const.c (sign_bit_p): New function.
22         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
23         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
24         Reapply fold when converting (A & C) == C into (A & C) != 0.
25         (fold_binary_op_with_conditional_arg): Fix typo in comment.
26
27 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
28
29         * c-common.c (warn_multichar): New.
30         (c_common_init): Set CPP's warn_multichar.
31         * c-common.h (warn_multichar): New.
32         * c-decl.c (warn_multichar): Remove.
33         * c-lex.c (lex_charconst): Update.
34         * c-tree.h (warn_multichar): Remove.
35         * cppexp.c (eval_token): Sign-extend charconst value.
36         * cppinit.c (cpp_create_reader): Set warn_multichar.
37         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
38         each character.  Update prototype.  Sign-extend the result.
39         * cpplib.h: Fix conditions.
40         (struct cpp_options): Add new warning flag.
41         (cpp_interpret_charconst): Update prototype.
42 doc:
43         * cpp.texi: Update documentation.
44
45 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
46
47         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
48         Fix typo in usage of allof instead of unit.
49
50 2002-05-06  Richard Henderson  <rth@redhat.com>
51
52         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
53         and any jump or call for IN.
54
55 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
56
57         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if  
58         -msse2.
59         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
60         
61 2002-05-06  Roger Sayle  <roger@eyesopen.com>
62
63         * fold-const.c (lshift-double): Cast the high word to an unsigned
64         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
65         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
66         avoid compiler warning.  (fold): Remove redundant code from
67         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
68
69 2002-05-06  Jeff Law  <law@redhat.com>
70
71         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
72         * pa.c (pa_adjust_cost): Remove all true dependency cost
73         adjustments.  Also remove support for non-DFA scheduling.
74         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
75         to adjust true dependency costs.  Update various comments.
76         (7100lc, 7200, 7300 scheduling): Simplify by combining the
77         FP ALU & MPY units into a single unit.
78
79 2002-05-06  Catherine Moore  <clm@redhat.com>
80
81         * config/v850/v850.c (compute_register_save_size): Make sure
82         to count all of the registers that will be saved.
83
84 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
85
86         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
87
88 2002-05-06  David S. Miller  <davem@redhat.com>
89
90         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
91         allow result to overlap input operands in memory.
92
93 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
94
95 doc:
96         * cpp.texi: Update multichar charconst docs.
97
98 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
99
100         * cpplex.c (cpp_interpret_charconst): Sign-extend each
101         character.  Don't ignore excess characters.  Treat
102         multicharacter character constants as signed.
103         (cpp_parse_escape): Clarify diagnostic.
104
105 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
106
107         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
108         use add instead of shift.
109         (ashldi3_sp64): Likewise.
110         (ashlsi3_const1, ashldi3_const1): Remove.
111         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
112         * config/sparc/sparc.c (const1_operand): New.
113
114 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
115
116         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
117
118 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
119
120         PR target/6561
121         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
122
123 2002-05-05  Richard Henderson  <rth@redhat.com>
124
125         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
126         memory latency adjustments.
127         (alpha_variable_issue): Remove.
128         (alpha_use_dfa_pipeline_interface): New.
129         (alpha_multipass_dfa_lookahead): New.
130         * config/alpha/alpha.md: Remove define_function_unit scheduling;
131         include new dfa scheduling.
132         (attr type): Add none.
133         (blockage): Use it.
134         * config/alpha/ev4.md: New.
135         * config/alpha/ev5.md: New.
136         * config/alpha/ev6.md: New.
137
138 2002-05-05  David S. Miller  <davem@redhat.com>
139
140         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
141
142 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
143
144         * cse.c: Fix formatting.
145         * emit-rtl.c: Likewise.
146
147 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
148
149         * genautomata.c (initiate_states): Add additional guard to
150         initialize `units_array'.
151
152 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
153
154         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
155         process_unit_to_form_the_same_automaton_unit_lists,
156         form_the_same_automaton_unit_lists
157         check_unit_distributions_to_automata): New prototypes and
158         functions.
159         (check_automata): Rename it into `check_automata_insn_issues'.
160         (unit_decl): New fields `the_same_automaton_unit' and
161         `the_same_automaton_message_reported_p'.
162         (unit_decl_t): New typedef.
163         (the_same_automaton_lists): New gloval variable.
164         (unit_regexp, unit_set_el, units_array, units_cmp,
165         output_get_cpu_unit_code_func): Use the typedef.
166         (evaluate_max_reserv_cycles): Increment
167         `description->max_insn_reserv_cycles'.
168         (initiate_states): Don't increment `max_cycles_num'.
169         (transform_insn_regexps): Move code around transformation of
170         regexps from `generate'.
171         (generate): Remove call of `transform_insn_regexps'.
172         (expand_automata): Call `transform_insn_regexps' and
173         `check_unit_distributions_to_automata'.  Check errors before
174         `generate'.
175
176         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
177         automaton `ultrasparc3_1'.
178         
179 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
180
181         * c-common.c (c_common_init): Set up CPP arithmetic.
182         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
183         something reasonable for the host.
184         (sanity_checks): Add checks.
185         (cpp_read_main_file): Call sanity_checks() from here...
186         (cpp_post_options): ... not here.
187         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
188         * cpplib.h (struct cpp_options): New member int_precision.
189
190 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
191
192         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
193
194 2002-05-04  David S. Miller  <davem@redhat.com>
195
196         * config/sparc/linux.h, config/sparc/linux64.h
197         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
198
199         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
200         more RTX codes.
201         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
202
203         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
204         of SETs.
205
206 2002-05-05  Tim Josling  <tej@melbpc.org.au>
207
208         * treelang; New directory for new sample language treelang. 
209
210 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
211
212         * Makefile.in (c-lex.o): Update.
213         * c-lex.c: Include target.h.
214         (cb_register_builtins): New.
215         (init_c_lex): Set builtins callback.
216         * c-lex.h (cpp_define, cpp_assert): New prototypes.
217         * cppinit.c (init_builtins): Use callback, including for
218         GXX_WEAK.
219         * cpplib.h (struct cpp_callbacks): New member.
220         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
221         (TARGET_INITIALIZER): Update.
222         * target.h (struct gcc_target): New hook.
223         * tree.c (default_register_cpp_builtins): New.
224         * tree.h (default_register_cpp_builtins): New.
225 doc:
226         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
227
228 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
229
230         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
231         (cpp_post_options): Move sanity checks to...
232         (sanity_checks): New.
233         * cpplex.c (maybe_read_ucs): Fix prototype.
234         (parse_string, cpp_parse_escape): Cast for %c format specifier.
235         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
236         if necessary.
237
238 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
239
240         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
241         builtins.  Use V2DI patterns instead of TI for logical operations.
242         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
243         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
244         (ix86_expand_builtins): Change the pattern used for movntdq.
245         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
246         sse2_nandv2di3): New patterns.
247         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
248         on operands.
249         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
250         (cvtdq2pd): Correct mode on operand 1.
251         (sse2_umulsidi3): Describe without unspec.
252         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
253         machine modes.
254         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
255         (ashlv2di3): Likewise, from sse2_ashlv2di3.
256         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
257         ashlv4si3, ashlv2di3): Use SImode for shift count.
258         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
259         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
260         New patterns.
261         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
262         New typedefs.
263         (__m128i, __m128d): New macros.
264         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
265         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
266         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
267         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
268         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
269         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd, 
270         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
271         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
272         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd, 
273         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
274         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
275         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
276         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
277         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
278         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
279         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
280         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
281         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
282         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
283         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
284         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
285         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
286         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
287         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
288         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
289         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
290         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
291         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
292         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
293         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
294         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
295         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
296         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
297         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
298         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
299         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
300         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
301         functions.
302         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32, 
303         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
304
305 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
306
307         * dwarf2out.c: Fix formatting.
308         * varasm.c: Likewise.
309
310 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
311
312         PR c/6543
313         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
314         clobber and use result as temporary value.
315
316 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
317
318         * expr.c (force_operand): Use expand_simple_* to handle more
319         cases.
320
321 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
322
323         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
324         and sign-extension.
325         (lex_charconst): Update for change in prototype of
326         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
327         appropriately.
328         * cpphash.h (BITS_PER_CPPCHAR_T): New.
329         * cppinit.c (cpp_create_reader): Initialize them for no
330         change in semantics.
331         (cpp_post_options): Add sanity checks.
332         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
333         and truncation issues.  Calculate in type cppchar_t.
334         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
335         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
336         run-time dependent precision correctly.  Return whether the
337         result is signed or not.
338         * cpplib.c (dequote_string): Use cppchar_t; update.
339         * cpplib.h (cppchar_signed_t): New.
340         struct cpp_options): New precision members.
341         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
342         * cppexp.c (eval_token): Update.
343
344 2002-05-03  David S. Miller  <davem@redhat.com>
345
346         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
347         * config/sparc/sparc.c (sparc_rtx_costs): New function
348         implementing RTX_COSTS and CONST_COSTS.
349         * config/sparc/sparc.h (CONST_COSTS): Delete.
350         (RTX_COSTS_CASES): Define.
351         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
352         the work.
353
354         * config/sparc/sparc.md (DFA schedulers): Split out...
355         * config/sparc/cypress.md, config/sparc/hypersparc.md,
356         config/sparc/sparclet.md, config/sparc/supersparc.md,
357         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
358
359         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
360         checks on it, always defined for Sparc.
361
362         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
363         Tweak, and add more detailed comments.
364
365 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
366
367         * Re-apply patch accidentally reverted with
368         DFA scheduler merge: remove all rules and variables to slurp
369         source files out of libiberty and rebuild them with HOST_CC.
370         ($(HOST_PREFIX_1)varray.o): New rule.
371         (genattrtab rule): Word wrap.
372
373 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
374
375         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
376         (CPP_SUBTARGET_SPEC): Define.
377         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
378         cpp_subtarget specs.
379         (CPP_SPEC): Redefine to include %(cpp_subtarget).
380
381 2002-05-03  David S. Miller  <davem@redhat.com>
382
383         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
384         * target.h (struct gcc_target): Delete cycle_display member.
385
386         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
387         (rtx_needs_barrier): Delete reference to cycle_display unspec.
388         (ia64_sched_reorder2): Mention need for cycle display handling
389         once such notes exist.
390
391 2002-05-03  Richard Henderson  <rth@redhat.com>
392
393         * real.c (etoasc): Strip most trailing zeros for clarity.
394         * sched-vis.c: Include real.h.
395         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
396         * Makefile.in (sched-vis.o): Add real.h.
397
398 2002-05-03  David S. Miller  <davem@redhat.com>
399
400         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
401         no longer needed.
402
403 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
404
405         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
406         when we get an out of range literal.
407         (altivec_expand_ternop_builtin): Same.
408         (altivec_expand_unop_builtin): Same.
409         (altivec_expand_builtin): Same, for dss.
410         (altivec_expand_builtin): Use trees instead of rtl when
411         determining literal argument validity.
412
413 2002-05-03  David S. Miller  <davem@redhat.com>
414
415         Delete cycle display scheduling hook.
416         * config/ia64/ia64.c (ia64_cycle_display,
417         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
418         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
419         and use emit_insn_before instead of ia64_emit_insn_before.
420         * config/ia64/ia64.md (unspec usage): Delete cycle display.
421         (cycle_display): Delete insn pattern.
422         * config/sparc/sparc.md (unspec usage): Delete cycle display.
423         (cycle_display): Delete insn pattern.
424         * config/sparc/sparc.c (sparc_cycle_display,
425         TARGET_SCHED_CYCLE_DISPLAY): Delete.
426         * doc/md.texi (cycle_display): Don't mention.
427         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
428
429 2002-05-03  Richard Henderson  <rth@redhat.com>
430
431         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
432         * recog.h: Declare them.
433
434         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
435         * config/sparc/sparc.md: Use store_data_bypass_p instead.
436         * config/sparc/sparc-protos.h: Update.
437
438 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
439
440         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
441         -D__arch64__.  Add -D_LP64.
442         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
443         from sparc.h.
444         (CPP_ARCH64_SPEC): Likewise.
445         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
446         (NO_BUILTIN_SIZE_TYPE): Undef.
447
448 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
449
450         * genautomata.c (min_issue_delay_pass_states): Change return type
451         in the prototype.
452         (min_issue_delay_pass_states): Change the algorithm.
453         (min_issue_delay): Set up min_insn_issue_delay for the state.
454         (output_min_issue_delay_table): Interchange the nested loops and
455         and initiate min_insn_issue_delay for states.
456
457 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
458
459         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
460         jump is simplejump.
461
462 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
463
464         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
465         sequence.
466
467 2002-05-03  Richard Henderson  <rth@redhat.com>
468
469         PR opt/6534
470         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
471         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
472         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
473         code before JUMP, not EARLIEST.
474
475 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
476
477         * c-format.c (check_format_info_main): Don't check for presence of
478         parameter for * width until after operand number has been read,
479         and only check for it if format parameters are available.
480         Fixes PR c/6547.
481
482 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
483
484         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
485         (LINK_SPEC): Undef before defining.
486
487 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
488
489         PR preprocessor/6489
490         * tradcpp.c (fixup_newlines): New.
491         (main, finclude): Use it.
492
493 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
494
495         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
496         * config/mips/mips.c (mips_unique_section): Strip encoding from
497         decl name.
498
499 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
500
501         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
502         mode.
503
504 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
505
506         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
507         (Specific): Removed buildstats references.
508         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
509         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
510         Accomodate Solaris versions beyond 8.
511         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
512         (Specific, *-*-solaris2.8): Removed, obsolete.
513
514 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
515
516         PR target/6542
517         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
518         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
519         fill leaf_reg_remap with identity.
520         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
521
522 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
523
524         * config/h8300/crti.asm: Remove trailing spaces.
525         * config/h8300/h8300.c: Likewise.
526         * config/h8300/lib1funcs.asm: Likewise.
527
528 2002-05-02  Jason Merrill  <jason@redhat.com>
529
530         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
531         * c-decl.c (c_init_decl_processing): Use it.
532         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
533         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
534         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
535
536 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
537
538         * regrename.c: Fix formatting.
539         * tree.c: Likewise.
540
541 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
542
543         * i386.md (attribute memory): Handle compares properly.
544
545 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
546
547         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
548         to none.
549
550 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
551
552         * function.c: Fix formatting.
553
554 2002-05-02  Jan Hubicka  <jh@suse.cz>
555
556         * haifa-sched.c (schedule_insn): Print table of instructions and
557         reservations.
558         (sched_block): Do not print ready list at verbosity level 1.
559         * sched-vis.c (print_insn): Make global.
560         * sched-ebb.c (ebb_print_insn): Rename from...
561         (print_insn): ... this one.
562         * sched-int.h (print_insn): Declare
563
564 2002-05-02  Richard Henderson  <rth@redhat.com>
565
566         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
567         emitted by cycle_display.
568
569 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
570
571         * doc/install.texi (*-*-freebsd*): Update to latest status.
572
573 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
574
575         PR target/6540
576         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
577         * config/float-sparc.h: Assume 128-bit long double if
578         __LONG_DOUBLE_128__ is defined.
579
580 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
581
582         * genattrtab.c (write_function_unit_info): Add a dummy element
583         when num_units == 0.
584
585 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
586
587         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
588         TYPE_MODE (double_type_node) instead of DFmode.
589
590 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
591
592         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
593         jumps post reload.
594         * toplev.c (rest_of_compilation): Revert Richard's patch.
595
596 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
597
598         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
599
600 2002-05-02  Catherine Moore  <clm@redhat.com>
601
602         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
603
604 2002-05-02  Kazu Hirata  <kazu@hxi.com>
605
606         * combine.c: Fix comment typos.
607         * expr.c: Likewise.
608         * genautomata.c: Likewise.
609         * stmt.c: Likewise.
610         * tree.h: Likewise.
611
612 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
613
614         * doc/install.texi: State GNAT version requirements.
615
616 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
617
618         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
619         of the frame pointer or arg pointer register which strict register
620         checking is not enabled.
621
622 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
623
624         * gcc.dg/altivec-8.c: New.
625
626         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
627         PRE_INC and PRE_DEC for altivec modes.
628
629 2002-05-01  Bruce Korb  <bkorb@gnu.org>
630
631         * fixinc/check.tpl(set-writable): make sure the function exists first
632         * fixinc/inclhack.def(alpha_assert): fix test_text
633         * fixinc/tests/base/assert.h: add in missing result
634
635 2002-05-01  Jeff Law  <law@redhat.com>
636
637         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
638         'T' constraint.
639
640 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
641
642         * dbxout.c (dbxout_type): Emit size information for range types,
643         as well, but only when using GDB extensions.
644
645 2002-05-01  Richard Henderson  <rth@redhat.com>
646
647         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
648         target-independent gnu binutils date test.
649
650 2002-05-01  Richard Henderson  <rth@redhat.com>
651
652         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
653         info before expunging the block.
654
655 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
656
657         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
658         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
659         -M -or -MM is in effect.
660
661 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
662
663         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
664         A29k configurations.
665         * doc/install.texi: Update to match.
666
667 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
668
669         PR bootstrap/6514
670         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
671         for duplicates. Always loop over whole list.
672
673 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
674
675         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
676
677 2002-05-01      Joel Sherrill <joel@OARcorp.com>
678
679         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
680         support routines.
681
682 2002-05-01      Joel Sherrill <joel@OARcorp.com>
683
684         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
685
686 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
687
688         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
689         (nabs_nopower): Same.
690         (floatdisf2): New pattern.
691         (absdi2): Convert to define_insn_and_split.
692         (nabsdi2): Same.
693         (trunctfsf2): Same.
694         (floatditf2): Same.
695         (floatsitf2): Same.
696         (fix_trunctfdi2): Same.
697         (fix_trunctfsi2): Same.
698
699 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
700
701         * doc/install.texi: Update Texinfo version requirement
702         documentation.
703
704 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
705
706         PR target/6512, PR target/5628
707         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
708         when memory is not aligned.
709         (movdf_insn_v9only_vis): Likewise.
710         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
711         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
712         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
713
714 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
715
716         * gcc.dg/altivec-7.c: New.
717
718         * config/rs6000/altivec.h: Cleanup.
719
720 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
721
722         * doc/invoke.texi (Option Summary): Add -mvrsave=.
723         (RS/6000 and PowerPC Options): Document -mvrsave=.
724
725         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
726         (rs6000_altivec_vrsave_string): Same.
727         (rs6000_override_options): Call rs6000_parse_vrsave_option.
728         (rs6000_parse_vrsave_option): New.
729         (rs6000_stack_info): Only generate vrsave instructions when
730         TARGET_ALTIVEC_VRSAVE.
731
732         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
733         (rs6000_altivec_vrsave_string): Define extern.
734         (rs6000_altivec_vrsave): Same.
735         (TARGET_ALTIVEC_VRSAVE): New.
736
737 2002-04-30  Richard Henderson  <rth@redhat.com>
738
739         PR opt/6516
740         * toplev.c (rest_of_compilation): Don't run cross-jump before
741         bb-reorder.
742
743 2002-04-30  Tom Rix  <trix@redhat.com>
744
745         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
746         check which_alternative.
747
748 2002-04-30  Kazu Hirata  <kazu@hxi.com>
749
750         * cpplex.c: Fix comment formatting.
751         * function.c: Likewise.
752         * integrate.c: Likewise.
753         * regrename.c: Likewise.
754         * sibcall.c: Likewise.
755         * simplify-rtx.c: Likewise.
756         * tree-inline.c: Likewise.
757
758 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
759
760         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
761         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
762         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
763         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
764         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
765         * pa/x-ada: New file.  Define ADA_CFLAGS.
766
767 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
768
769         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
770         from MMIX_LAST_REGISTER_FILE_REGNUM.
771         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
772         (struct machine_function): New member highest_saved_stack_register
773         previously static variable in mmix.c.
774         (MACHINE_DEPENDENT_REORG): Define.
775         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
776         (MMIX_OUTPUT_REGNO): New.
777         (mmix_target_asm_function_prologue): Move calculation of last used
778         saved-stack-register into...
779         (mmix_machine_dependent_reorg): New function.  Update to also handle
780         !TARGET_ABI_GNU.
781         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
782         register names, simplify somewhat by new variable regno.
783         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
784         register.
785         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
786         emitting register names.
787         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
788         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
789         Remove fixed FIXME.
790         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
791         Declare.
792
793         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
794
795 2002-04-30  Richard Henderson  <rth@redhat.com>
796
797         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
798         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
799         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
800         emit_tfmode_cvt): New.
801         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
802         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
803         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
804         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
805         * config/sparc/sparc-protos.h: Update.
806
807 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
808
809         * install.texi (Final install): Add to the list of info to include
810         in a report of a successful bootstrap, and add link to 3.1 list.
811
812 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
813
814         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
815         (mode): Add vector modes
816         (i387): Kill attribute.
817         (unit): New attribute.
818         (length_immediate): Grok new types.
819         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
820         (modrm): Use "unit".
821         (memory): Handle MMX/SSE properly.
822         (scheduling descriptions): Kill uses of fop1.
823         (sse, mmx, fp patterns): Set type and mode properly.
824
825 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
826
827         * pa.c (override_options): Default to PA8000 scheduling.
828         * doc/invoke.texi (HP-PA options): Mention newly added 7300
829         scheduling parameter.
830
831         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
832         handling of double precision multiplies.
833
834         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
835         fpdiv and fpsqrt instructions.
836         (7200 & 7300 scheduling): Fix typo in handling of
837         store-load and store-store penalties.
838
839 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
840
841         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
842         mips.  Add two missing commas.
843
844 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
845
846         * doc/contrib.texi (Contributors): Update Paolo Carlini's
847         and Benjamin Kosnik's entries.
848
849 2002-04-29  David S. Miller  <davem@redhat.com>
850
851         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
852         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
853         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
854         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
855
856 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
857
858         * combine.c (find_split_point): Use gen_int_mode.
859
860 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
861
862         Merging code from dfa-branch:
863
864         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
865
866         * genautomata.c (output_reserv_sets): Fix typo.
867
868         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
869
870         * genautomata.c (output_reserv_sets): Remove
871         next_cycle_output_flag.
872
873         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
874
875         * sched-rgn.c (init_ready_list): Make the DFA code handle
876         USE/CLOBBER insns in the same way as the traditional
877         scheduler.
878         (new_ready): Similarly..
879
880         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
881
882         * haifa-sched.c (schedule_block): Change the DFA state only after
883         issuing insn.
884
885         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
886
887         * pa.c (hppa_use_dfa_pipeline_interface): New function.
888         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
889         (override_options): Add PA7300 scheduling support.
890         (pa_adjust_cost): Update various comments.  Properly
891         handle anti and output dependencies when using the
892         DFA scheduler.
893         (pa_issue_rate): Add PA7300 scheduling support.
894         (pa_can_combine_p): Call extract_insn before calling
895         constrain_operands (taken from mainline tree).
896         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
897         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
898         descriptions using DFA descriptions.  Add PA7300
899         scheduling support.
900
901         2002-03-30  David S. Miller  <davem@redhat.com>
902
903         Add UltraSPARC-III DFA scheduling support.
904         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
905         Update FP conditional move on register insn patterns to use it, as
906         appropriate.
907         (define_attr cpu): Add ultrasparc3.
908         (define_attr us3load_type): New, update integer load patterns to
909         set it, as appropriate.
910         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
911         (rest): Add UltraSPARC3 scheduling description.
912         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
913         (PROCESSOR_ULTRASPARC3): New.
914         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
915         ({ASM,CPP}_CPU_SPEC): Likewise.
916         (REGISTER_MOVE_COST): Likewise.
917         (RTX_COSTS): Likewise.
918         * config/sparc/sparc.c (sparc_override_options,
919         sparc_initialize_trampoline, sparc64_initialize_trampoline,
920         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
921         sparc_issue_rate): Likewise.
922         * config/sparc/sol2.h: Likewise.
923         * config/sparc/sol2-sld-64.h: Likewise.
924         * config/sparc/linux64.h: Likewise.
925
926         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
927
928         * doc/md.texi: Add comments about usage the latency time for the
929         different dependencies and about case when two or more conditions
930         in different define_insn_reservations returns TRUE for an insn.
931
932         * doc/md.texi: Add reference for automaton based pipeline
933         description.
934
935         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
936
937         * doc/passes.texi: Add missed information about genattrtab.
938
939         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
940
941         * genautomata.c (output_automata_list_transition_code): Check
942         automata_list on NULL.
943
944         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
945
946         * genautomata.c (output_insn_code_cases,
947         output_automata_list_min_issue_delay_code,
948         output_automata_list_transition_code,
949         output_automata_list_state_alts_code): Comment the functions.
950
951         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
952
953         * genautomata.c (automata_list_el_t): New typedef.
954         (get_free_automata_list_el,free_automata_list_el,
955         free_automata_list, automata_list_hash, automata_list_eq_p,
956         initiate_automata_lists, automata_list_start, automata_list_add,
957         automata_list_finish, finish_automata_lists,
958         output_insn_code_cases, output_automata_list_min_issue_delay_code,
959         output_automata_list_transition_code,
960         output_automata_list_state_alts_code, add_automaton_state,
961         form_important_insn_automata_lists): New functions and prototypes.
962         (insn_reserv_decl): Add members important_automata_list and
963         processed_p.
964         (ainsn): Add members important_p.
965         (automata_list_el): New structure.
966         (first_free_automata_list_el, current_automata_list,
967         automata_list_table): New global variables.
968         (create_ainsns): Initiate member important_p.
969         (output_internal_min_issue_delay_func): Generate the switch and
970         call output_insn_code_cases.
971         (output_internal_trans_func, output_internal_state_alts_func):
972         Ditto.
973         (generate): Call initiate_automata_lists.
974         (automaton_states): New global variable.
975         (expand_automata): Call form_important_insn_automata_lists.
976         (write_automata): Call finish_automata_lists.
977
978         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
979
980         * genautomata.c (add_excls, add_presence_absence): Check that
981         cpu units in the sets belong the same automaton.
982
983         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
984         about that cpu units in the sets belong the same automaton.
985
986         * doc/md.texi: Ditto.
987
988         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
989                     Nitin Gupta  <niting@noida.hcltech.com>
990
991         * config/sh/sh.c (sh_use_dfa_interface): New function.
992
993         (sh_issue_rate): New Function.
994         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
995         TARGET_SCHED_ISSUE_RATE: define.
996
997         * config/sh/sh.md: Add DFA based pipeline description for SH4.
998
999         (define_attr insn_class): New attribute used for DFA
1000          scheduling.
1001         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
1002         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
1003          cmpeqdi_t): Likewise.
1004
1005         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
1006          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
1007          ex_group.
1008         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
1009
1010         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
1011
1012         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
1013         break.
1014
1015         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
1016
1017         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
1018         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
1019         necessary.
1020         (output_dfa_start_func): Initiate new variable insn_codes_length,
1021         (write_automata): Output definition of the new variable.
1022
1023         2001-10-02  David S. Miller  <davem@redhat.com>
1024
1025         * haifa-sched.c (advance_one_cycle): New function.
1026         (schedule_block): Use it.
1027         (queue_to_ready): Use it, and also make sure to advance the DFA
1028         state on all stall cycles, not just those where insn_queue links
1029         are found.
1030
1031         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
1032
1033         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
1034         non-zero if the highest-priority instruction could be scheduled.
1035         (choose_ready): Remove last argument from max_issue call.
1036
1037         2001-09-28  David S. Miller  <davem@redhat.com>
1038
1039         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
1040         ultrasparc and 3 for other multi-issue sparcs.
1041
1042         2001-09-27  David S. Miller  <davem@redhat.com>
1043
1044         * config/sparc/sparc.md (cycle_display): New pattern.
1045         * config/sparc/sparc.c (sparc_cycle_display): New.
1046         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
1047
1048         2001-09-25  David S. Miller  <davem@redhat.com>
1049
1050         Convert all of Sparc scheduling to DFA
1051         * config/sparc/sparc.md: Kill all define_function_unit
1052         directives and replace with DFA equivalent.
1053         * config/sparc/sparc.c (ultrasparc_adjust_cost,
1054         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
1055         ultra_fpmode_conflict_exists, ultra_find_type,
1056         ultra_build_types_avail, ultra_flush_pipeline,
1057         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
1058         ultrasparc_variable_issue, ultrasparc_sched_init,
1059         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
1060         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
1061         ultra_cur_hist, ultra_cycles_elapsed): Kill.
1062         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
1063         ultrasparc_store_bypass_p): New.
1064         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
1065         Declare.
1066
1067         2001-09-24  David S. Miller  <davem@redhat.com>
1068
1069         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
1070         ready->vec[foo] not ready[foo].
1071
1072         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
1073
1074         * doc/md.texi: Correct examples for define_insn_reservations
1075         `mult' and `div'.
1076
1077         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
1078
1079         * genautomata.c (create_automata): Print message about creation of
1080         each automaton.
1081         (generate): Remove printing meease about creation of
1082         automata.
1083
1084         2001-09-05  David S. Miller  <davem@redhat.com>
1085
1086         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
1087         * config/sparc/linux64.h: Likewise.
1088
1089         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
1090
1091         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
1092         schedule_block, sched_init, sched_finish): Add missed calls of
1093         use_dfa_pipeline_interface.
1094
1095         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
1096         Ditto.
1097
1098         * sched-vis.c (get_visual_tbl_length): Ditto.
1099
1100         2001-08-27  Richard Henderson  <rth@redhat.com>
1101
1102         * genattr.c (main): Emit state_t even when not doing scheduling.
1103
1104         2001-08-27  Richard Henderson  <rth@redhat.com>
1105
1106         * genautomata.c (expand_automata): Always create a description.
1107
1108         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1109
1110         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
1111         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
1112         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
1113         RTL constructions.
1114
1115         * genattr.c (main): New variable num_insn_reservations.  Increase
1116         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
1117         pipeline hazard recognizer interface.
1118
1119         * genattrtab.h: New file.
1120
1121         * genattrtab.c: Include genattrtab.h.
1122         (attr_printf, check_attr_test, make_internal_attr,
1123         make_numeric_value): Move protypes into genattrtab.h.  Define them
1124         as external.
1125         (num_dfa_decls): New global variable.
1126         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
1127         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
1128         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
1129         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
1130
1131         * genautomata.c: New file.
1132
1133         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
1134
1135         * sched-int.h: (curr_state): Add the external definition for
1136         automaton pipeline interface.
1137         (haifa_insn_data): Add comments for members blockage and units.
1138
1139         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
1140         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
1141         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
1142         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
1143         TARGET_SCHED_DFA_POST_CYCLE_INSN,
1144         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
1145         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
1146         macros.
1147         (TARGET_SCHED): Use the new macros.
1148
1149         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
1150         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
1151         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
1152         dfa_bubble): New members in gcc_target.sched.
1153
1154         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
1155         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
1156         (insn_queue): Redefine it as pointer to array.
1157         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
1158         INSN_QUEUE_SIZE.
1159         (max_insn_queue_index_macro_value): New variable.
1160         (curr_state, dfa_state_size, ready_try): New varaibles for
1161         automaton interface.
1162         (ready_element, ready_remove, max_issue): New function prototypes
1163         for automaton interface.
1164         (choose_ready): New function prototype.
1165         (insn_unit, blockage_range): Add comments.
1166         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
1167         FUNCTION_UNITS_SIZE == 0.
1168         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
1169         actual_hazard, potential_hazard): Add comments.
1170         (insn_cost): Use cost -1 as undefined value.  Remove
1171         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
1172         pipeline interface.
1173         (ready_element, ready_remove): New functions for automaton
1174         interface.
1175         (schedule_insn): Add new code for automaton pipeline interface.
1176         (queue_to_ready): Add new code for automaton pipeline interface.
1177         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
1178         (debug_ready_list): Print newline when the queue is empty.
1179         (max_issue): New function for automaton pipeline interface.
1180         (choose_ready): New function.
1181         (schedule_block): Add new code for automaton pipeline interface.
1182         Print ready list before scheduling each insn.
1183         (sched_init): Add new code for automaton pipeline interface.
1184         Initiate insn cost by -1.
1185         (sched_finish): Free the current automaton state and finalize
1186         automaton pipeline interface.
1187
1188         * sched-rgn.c: Include target.h.
1189         (init_ready_list, new_ready, debug_dependencies): Add new code for
1190         automaton pipeline interface.
1191
1192         * sched-vis.c: Include target.h.
1193         (get_visual_tbl_length): Add code for automaton interface.
1194         (target_units, print_block_visualization):  Add comments.
1195
1196         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
1197         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
1198         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
1199         (getruntime.o, genautomata.o): New entries.
1200         (genattrtab.o): Add new dependency file genattrtab.h.
1201         (genattrtab): Add new dependencies.  Link it with `libm.a'.
1202         (getruntime.o, hashtab.o): New entries for canadian cross.
1203
1204         * doc/md.texi: Description of automaton based model.
1205
1206         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
1207         Add comments.
1208         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
1209         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
1210         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
1211         TARGET_SCHED_DFA_POST_CYCLE_INSN,
1212         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
1213         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
1214         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
1215         hook descriptions.
1216         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
1217         MAX_DFA_ISSUE_RATE): New macro descriptions.
1218
1219         * doc/contrib.texi: Add dfa based scheduler contribution.
1220
1221         * doc/gcc.texi: Add more information about genattrtab.
1222
1223 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1224
1225         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
1226         adjust_address_nv call.
1227
1228 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
1229
1230         * doc/install.texi (Testing): Provide additional information, and
1231         a stronger encouragement, for running the testsuites.
1232
1233 2002-04-29  DJ Delorie  <dj@redhat.com>
1234
1235         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
1236         given in upper case.
1237
1238 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1239
1240         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
1241         Solaris 2 <widec.h> if missing.
1242         * fixinc/fixincl.x: Regenerate.
1243         * fixinc/tests/base/widec.h: New file.
1244
1245 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
1246
1247         * toplev.c (f_options): Add "profile" switch so that
1248         -fno-profile can be used to disable -p.
1249
1250 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
1251
1252         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
1253         UV2DImode.
1254         * tree.c (build_common_tree_nodes_2): Likewise.
1255         * tree.h (enum tree_index): Likewise.
1256         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
1257
1258         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
1259         entries.
1260         (init_mmx_sse_builtins): Initialize SSE2 builtins.
1261         (ix86_expand_builtin): Add support for SSE2 builtins.
1262         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
1263         (VALID_SSE_REG_MODE): Use it.
1264         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
1265         (enum ix86_builtins): Add SSE2 builtins.
1266         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
1267         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
1268         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
1269         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
1270         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
1271         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
1272         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
1273         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
1274         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
1275         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
1276         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
1277         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
1278         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
1279         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
1280         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
1281         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
1282         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
1283         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
1284         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
1285         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
1286         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
1287         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
1288         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
1289         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
1290         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
1291         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
1292         lfence_insn): New patterns.
1293         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
1294         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
1295
1296 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
1297
1298         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
1299
1300 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1301
1302         * doc/contrib.texi (Contributors): Add Paolo Carlini and
1303         Janis Johnson.
1304         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
1305         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
1306         and CPU instead of cpu.
1307
1308 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
1309
1310         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
1311         variables.
1312         (lang_independent_options): Add -fif-conversion, -fif-conversion2
1313         (rest_of_compilation): Do if conversion only when asked for.
1314         (parse_options_and_default_flags): Set new variables to 1 for -O1
1315         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
1316
1317 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
1318
1319         * i386.c (dbx64_register_map): Fix typo.
1320
1321 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
1322
1323         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
1324         real_one_half, real_bb_freq_max): New static variables.
1325         (debug_profile_bbauxs): Kill.
1326         (process_note_predictions): Kill unused variable.
1327         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
1328         volatile double.
1329         (propagate_freq): Use REAL_ARITHMETICS.
1330         (estimate_bb_frequencies): Likevise; init new static variables.
1331         * Makefile.in (predict.o): Add dependency on real.h
1332
1333 2002-04-28  David S. Miller  <davem@redhat.com>
1334
1335         PR target/6500
1336         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
1337         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
1338         several {reads,writes} instead.
1339         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1340         Define.
1341
1342 2002-04-27  David S. Miller  <davem@redhat.com>
1343
1344         PR target/6494
1345         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
1346         of the stack bias.
1347
1348         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
1349         including signal.h and sys/ucontext.h, not needed.
1350
1351 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
1352
1353         * varasm.c (output_constant_def): Correct test for not calling
1354         ENCODE_SECTION_INFO for INTEGER_CST.
1355
1356 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1357
1358         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
1359         keep most cases as function eval_token.
1360         (eval_token): New function.
1361         (_cpp_parse_expr): Read token here for improved diagnostics.
1362         Don't use op_as_text.  Detect bad ':' here.
1363         (reduce): Don't detect bad ':' here.
1364         (op_as_text): Remove.
1365         * cpphash.h (_cpp_test_assertion): Change prototype.
1366         * cpplib.c (_cpp_test_assertion): Change prototype.
1367
1368 2002-04-28  Richard Henderson  <rth@redhat.com>
1369
1370         PR c/5154
1371         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
1372         (ggc_mark_rtx_children): New.
1373
1374 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR target/6496
1377         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
1378         after call peepholes for UltraSPARC.
1379         (call + jump 64-bit peepholes): Remove.
1380
1381 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1382
1383         PR c/6497
1384         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
1385         result as temporary value.
1386
1387 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1388
1389         PR c++/6396
1390         * toplev.c (rest_of_compilation): Only run regrename and copy
1391         propagation if optimizing.
1392
1393 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1394
1395         PR optimization/6475
1396         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
1397         register of REGNO_DECL (i).
1398         * Makefile.in (reload1.o): Add $(TREE_H).
1399
1400 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1401
1402         * cppexp.c (lex): Update to use state.skip_eval.
1403         (struct op): Remove prio and flags members.
1404         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
1405         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
1406         (LEFT_ASSOC): New macro.
1407         (optab): New table of operator priorities and flags.
1408         (SHIFT): Update.
1409         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
1410         malloc-ed parser stack.
1411         (reduce): New; reduce the operator stack.
1412         (_cpp_expand_op_stack): Expand the operator stack as necessary.
1413         * cpphash.h (struct op): Predeclare.
1414         (struct cpp_reader): New members op_stack, op_limit.
1415         (struct lexer_state): New member skip_eval.
1416         (_cpp_parse_expr): Update.
1417         (_cpp_expand_op_stack): New.
1418         * cpplib.c (do_if): Update.
1419         * cppinit.c (cpp_create_reader): Create op stack.
1420         (cpp_destroy): And destroy it.
1421         * cpplib.h (CPP_LAST_CPP_OP): Correct.
1422         (TTYPE_TABLE): Correct.
1423
1424 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1425
1426         PR c/6343
1427         * c-decl.c (duplicate_decls): Call merge_weak.
1428         * c-pragma.c (apply_pragma_weak): Warn about misuse.
1429         * output.h (merge_weak): Prototype merge_weak.
1430         * varasm.c (merge_weak): New function.
1431         (declare_weak): Make sure we don't give an error on VAR_DECLs.
1432         Mark RTL with SYMBOL_REF_WEAK.
1433
1434 2002-04-27  Kurt Garloff <garloff@suse.de>
1435
1436         * tree-inline.c (inlinable_function_p): Improve heuristics
1437         by using a smoother function to cut down allowable inlinable size.
1438         * param.def: Add parameters max-inline-insns-single,
1439         max-inline-slope, min-inline-insns that determine the exact
1440         shape of the above function.
1441         * param.h: Likewise.
1442
1443 2002-04-26  Richard Henderson  <rth@redhat.com>
1444
1445         * c-parse.in (malloced_yyss, malloced_yyvs): New.
1446         (yyoverflow): Re-add.  Set them.
1447         (free_parser_stacks): New.
1448         * c-common.h: Declare it.
1449         * c-lex.c (c_common_parse_file): Call it.
1450
1451 2002-04-26  Richard Henderson  <rth@redhat.com>
1452
1453         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
1454         for fallthru search.
1455
1456 2002-04-26  Eric Christopher  <echristo@redhat.com>
1457
1458         PR optimization/3700
1459         * config/mips/mips.c (mips_issue_rate): Define.  New function.
1460         (TARGET_SCHED_ISSUE_RATE): Use.
1461
1462 2002-04-25  David S. Miller  <davem@redhat.com>
1463
1464         PR target/6422
1465         * reorg.c (optimize_skip): Do not allow exception causing
1466         instructions to be considered for delay slots.
1467         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
1468         (relax_delay_slots): Do not try to consider exception causing
1469         instructions as redundant.
1470
1471 2002-04-26  Richard Henderson  <rth@redhat.com>
1472
1473         PR c/5225
1474         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
1475
1476 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
1477
1478         PR bootstrap/6445
1479         * config/i386/i386.md (untyped_call): Return the value in a float
1480         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
1481         TARGET_80387.
1482
1483 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
1484
1485         * tree.c (tree_int_cst_lt): Compare constants whose types differ
1486         in unsigned-ness correctly.
1487
1488 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1489
1490         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
1491         portable runtime model.
1492
1493 2002-04-26  Richard Henderson  <rth@redhat.com>
1494
1495         * c-parse.in (yyoverflow): Revert.
1496
1497 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
1498             Richard Henderson  <rth@redhat.com>
1499
1500         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
1501         result as temporary value.
1502
1503 2002-04-26  Richard Henderson  <rth@redhat.com>
1504
1505         PR c/3581
1506         * c-common.c (fix_string_type): Split out of ...
1507         (combine_strings): ... here.  Take a varray, not a tree list.
1508         (c_expand_builtin_printf): Use fix_string_type.
1509         * c-common.h: Update decls.
1510         * c-parse.in (string): Remove.  Update all uses to use STRING
1511         instead, and not call combine_strings.
1512         (yylexstring): New.
1513         (_yylex): Use it.
1514         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
1515         (build_asm_stmt): Likewise.
1516         * objc/objc-act.c (my_build_string): Use fix_string_type.
1517         (build_objc_string_object): Build varray for combine_strings.
1518
1519 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
1520
1521         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
1522         x86-64.
1523
1524 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1525
1526         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
1527         (HAVE_NO_R_OPERAND): Remove.
1528         (HAVE_VALUE): Remove.
1529         (op_to_prio): Update.
1530         (UNARY): Don't alter flags.
1531         (_cpp_parse_expr): want_value used to indicate whether
1532         a number or unary operator is expected next.  Distinguish
1533         unary and binary +/-.
1534         (op_as_text): Update for unary operators.
1535
1536 2002-04-25  Richard Henderson  <rth@redhat.com>
1537
1538         PR c/2161
1539         * c-parse.in (yyoverflow): New.
1540
1541 2002-04-25  Richard Henderson  <rth@redhat.com>
1542
1543         PR c/2098
1544         * c-common.c (shorten_compare): Simplfy conditions leading to
1545         the generation of a warning.
1546
1547 2002-04-25  Richard Henderson  <rth@redhat.com>
1548
1549         PR c/2035
1550         * expmed.c (extract_bit_field): Fall through to generic code rather
1551         than aborting on subreg special case.
1552
1553 2002-04-25  David S. Miller  <davem@redhat.com>
1554
1555         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
1556         for DECL being NULL.
1557
1558 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
1559
1560         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
1561
1562 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
1563
1564         * c-decl.c (grokdeclarator): Remove outdated ??? note
1565         on invalid declaration of flexible array members.
1566
1567 2002-04-25  Richard Henderson  <rth@redhat.com>
1568
1569         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
1570
1571 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
1572
1573         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
1574         needed by the compiler, even if they are used as global regs.
1575
1576 2002-04-25  Matt Hiller  <hiller@redhat.com>
1577
1578         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
1579         functions.
1580         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
1581         of the corresponding functions.
1582         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
1583         New prototypes.
1584
1585 2002-04-25  Matt Hiller  <hiller@redhat.com>
1586
1587         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
1588
1589         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
1590         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
1591         registers, adjust comment accordingly.
1592         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
1593         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
1594         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
1595         for coprocessor registers.
1596         (ADDITIONAL_REGISTER_NAMES): Include
1597         ALL_COP_ADDITIONAL_REGISTER_NAMES.
1598
1599         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
1600         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
1601         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
1602         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
1603         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
1604
1605         (mips_char_to_class): Adjust comment to include coprocessor
1606         constraint letters.
1607
1608         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
1609         New functions.
1610         (mips_reg_names, mips_regno_to_class): Include coprocessor
1611         information.
1612         (mips_sw_reg_names): Ditto, make non-static.
1613         (mips_move_1word): Handle moves to and from coprocessor registers.
1614         (mips_move_2words): Handle moves to and from coprocessor
1615         registers.
1616         (mips_class_max_nregs, mips_register_move_cost): Handle
1617         coprocessor register classes.
1618         (override_options): Initialize mips_char_to_class and
1619         mips_hard_regno_mode_ok properly for coprocessor registers.
1620
1621         * config/mips/mips.md (movdi_internal, movdi_internal2,
1622         movsi_internal1, movsi_internal2): Add constraint-sets for
1623         coprocessor registers.
1624         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
1625         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
1626         isn't mips.
1627         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
1628         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
1629         isn't mips.
1630         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
1631         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
1632         isn't mips.
1633         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
1634         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
1635         isn't mips.
1636
1637         * doc/tm.texi: Document feature.
1638
1639 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1640
1641         * integrate.c (function_attribute_inlinable_p): Simplify.
1642         Check the table pointer is not NULL.
1643
1644 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
1645
1646         * doc/c-tree.texi: Fix typo in introduction.
1647
1648 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1649
1650         * c-common.h (c_common_parse_file): Update.
1651         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1652         * c-lex.c (YYDEBUG): Get from c-lex.h.
1653         (c_common_parse_file): Update.
1654         * c-lex.h (YYDEBUG, yydebug): New.
1655         * c-parse.in (YYDEBUG): Get from c-lex.h.
1656         (c_set_yydebug): Remove.
1657         * c-tree.h (c_set_yydebug): Remove.
1658         * langhooks-def.h (lhd_do_nothing_i): New.
1659         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1660         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1661         * langhooks.c  (lhd_do_nothing_i): New.
1662         (lhd_set_yydebug): Remove.
1663         * langhooks.h (struct lang_hooks): Update.
1664         * toplev.c (set_yydebug): New.
1665         (compile_file): Update call to parse_file hook.
1666         (decode_d_option): Update.
1667 objc:
1668         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1669
1670 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1671
1672         * loop.c (load_mems): Don't change the interface of called functions.
1673
1674         * calls.c (expand_call): Take current_function_pretend_args_size
1675         into account when setting argblock for sibcalls.
1676
1677 2002-04-24  Matt Hiller  <hiller@redhat.com>
1678
1679         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1680         * c-lex.c: Ditto.
1681
1682         * cpplex.c (skip_line_comment): Process comment one multibyte
1683         character at a time rather than one char at a time, if
1684         appropriate.
1685         (parse_string): Process string one multibyte character at a time
1686         rather than one char at a time, if appropriate.
1687         * c-lex.c (lex_string): Lex and copy multibyte strings
1688         appropriately.
1689         * cpplib.h (cppchar_t): Change to unsigned.
1690
1691 2002-04-24  Richard Henderson  <rth@redhat.com>
1692
1693         PR c/3467
1694         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1695         for c99.
1696
1697 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1698
1699         * sh.c (sh_va_arg): If argument was passed by reference,
1700         dereference the pointer.
1701
1702         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1703
1704         * sh.md (divsi3_i4_media): Use match_operand for input values
1705         rather than hard registers.
1706         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1707         unnecessarily through hard registers.  Keep copies of pseudo
1708         registers outside of the libcall sequence.
1709
1710         * sh.md (casesi_shift_media): Add modes.
1711
1712         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1713         values in memory.
1714
1715 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1716
1717         * attribs.c (c_common_attribute_table): Move table and handlers
1718         to c-common.c.
1719         (format_attribute_table, lang_attribute_table,
1720         lang_attribute_common): Remove.
1721         (init_attributes): Replace NULL pointers with pointers to the
1722         empty table.
1723         (handle_packed_attribute, handle_nocommon_attribute,
1724         handle_common_attribute, handle_noreturn_attribute,
1725         handle_noinline_attribute, handle_always_inline_attribute,
1726         handle_used_attribute, handle_unused_attribute,
1727         handle_const_attribute, handle_transparent_union_attribute,
1728         handle_constructor_attribute, handle_destructor_attribute,
1729         handle_mode_attribute, handle_section_attribute,
1730         handle_aligned_attribute, handle_weak_attribute,
1731         handle_alias_attribute, handle_visibility_attribute,
1732         handle_no_instrument_function_attribute, handle_malloc_attribute,
1733         handle_no_limit_stack_attribute, handle_pure_attribute,
1734         handle_deprecated_attribute, handle_vector_size_attribute,
1735         vector_size_helper): Move to c-common.c.
1736         * c-common.c (c_common_attribute_table,
1737         handle_packed_attribute, handle_nocommon_attribute,
1738         handle_common_attribute, handle_noreturn_attribute,
1739         handle_noinline_attribute, handle_always_inline_attribute,
1740         handle_used_attribute, handle_unused_attribute,
1741         handle_const_attribute, handle_transparent_union_attribute,
1742         handle_constructor_attribute, handle_destructor_attribute,
1743         handle_mode_attribute, handle_section_attribute,
1744         handle_aligned_attribute, handle_weak_attribute,
1745         handle_alias_attribute, handle_visibility_attribute,
1746         handle_no_instrument_function_attribute, handle_malloc_attribute,
1747         handle_no_limit_stack_attribute, handle_pure_attribute,
1748         handle_deprecated_attribute, handle_vector_size_attribute,
1749         vector_size_helper): Move from attribs.c.
1750         * c-common.h (c_common_attribute_table,
1751         c_common_format_attribute_table): New.
1752         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1753         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1754         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1755         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1756         (LANG_HOOKS_INITIALIZER): Update.
1757         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1758         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1759         * target.h: Update comment.
1760         * tree.c (default_target_attribute_table): Remove.
1761         * tree.h (default_target_attribute_table, format_attribute_table,
1762         lang_attribute_table, lang_attribute_common): Remove.
1763 objc:
1764         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1765         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1766
1767 2002-04-24  Jason Merrill  <jason@redhat.com>
1768
1769         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1770         * dwarf2out.c (dwarf_attr_name): Support it.
1771         (gen_array_type_die): Emit it.
1772         (lookup_type_die): No special handling for VECTOR_TYPE.
1773         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1774
1775 2002-04-24  Richard Henderson  <rth@redhat.com>
1776
1777         * config/mips/mips.md (movdi_usd): Renumber.
1778
1779 2002-04-24  David S. Miller  <davem@redhat.com>
1780
1781         PR target/6420
1782         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1783         32-bit Sparc and current_function_returns_struct is true.
1784
1785 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1786
1787         * loop.c (canonicalize_condition): Use gen_int_mode.
1788
1789 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1790
1791         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1792         variants.
1793         (vec_vaddubm): New.
1794         (vec_vadduhm): New.
1795         (vec_vadduwm): New.
1796         (vec_vaddfp): New.
1797         (vec_vaddcuw): New.
1798         (vec_vaddubs): New.
1799         (vec_vaddsbs): New.
1800         (vec_vadduhs): New.
1801         (vec_vadduws): New.
1802         (vec_vaddsws): New.
1803         (vec_vand): New.
1804         (vec_vandc): New.
1805         (vec_vavgub): New.
1806         (vec_vavgsb): New.
1807         (vec_vavguh): New.
1808         (vec_vavgsh): New.
1809         (vec_vavguw): New.
1810         (vec_vavgsw): New.
1811         (vec_vrfip): New.
1812         (vec_vcmpbfp): New.
1813         (vec_vcmpequb): New.
1814         (vec_vcmpequh): New.
1815         (vec_vcmpequw): New.
1816         (vec_vcmpeqfp): New.
1817         (vec_vcmpgefp): New.
1818         (vec_vcmpgtub): New.
1819         (vec_vcmpgtsb): New.
1820         (vec_vcmpgtuh): New.
1821         (vec_vcmpgtsh): New.
1822         (vec_vcmpgtuw): New.
1823         (vec_vcmpgtsw): New.
1824         (vec_vcmpgtfp): New.
1825         (vec_vcmpgefp): New.
1826         (vec_vcfux): New.
1827         (vec_vcfsx): New.
1828         (vec_vctsxs): New.
1829         (vec_vctuxs): New.
1830         (vec_vexptefp): New.
1831         (vec_vrfim): New.
1832         (vec_lvx): New.
1833         (vec_lvebx): New.
1834         (vec_lvehx): New.
1835         (vec_lde): Add vector float variant.
1836         (vec_lvewx): New.
1837         (vec_lvxl): New.
1838         (vec_vlogefp): New.
1839         (vec_vmaddfp): New.
1840         (vec_vmhaddshs): New.
1841         (vec_vmaxub): New.
1842         (vec_vmaxsb): New.
1843         (vec_vmaxuh): New.
1844         (vec_vmaxsh): New.
1845         (vec_vmaxuw): New.
1846         (vec_vmaxsw): New.
1847         (vec_vmaxsw): New.
1848         (vec_vmaxfp): New.
1849         (vec_vmrghb): New.
1850         (vec_vmrghh): New.
1851         (vec_vmrghw): New.
1852         (vec_vmrglb): New.
1853         (vec_vmrglh): New.
1854         (vec_vmrglw): New.
1855         (vec_vminub): New.
1856         (vec_vminsb): New.
1857         (vec_vminuh): New.
1858         (vec_vminsh): New.
1859         (vec_vminuw): New.
1860         (vec_vminsw): New.
1861         (vec_vminfp): New.
1862         (vec_vmladduhm): New.
1863         (vec_vmhraddshs): New.
1864         (vec_msumubm): New.
1865         (vec_vmsummbm): New.
1866         (vec_vmsumuhm): New.
1867         (vec_vmsumshm): New.
1868         (vec_vmsumuhs): New.
1869         (vec_vmsumshs): New.
1870         (vec_vmuleub): New.
1871         (vec_vmulesb): New.
1872         (vec_vmuleuh): New.
1873         (vec_vmulesh): New.
1874         (vec_vmuloub): New.
1875         (vec_mulosb): New.
1876         (vec_vmulouh): New.
1877         (vec_vmulosh): New.
1878         (vec_vnmsubfp): New.
1879         (vec_vnor): New.
1880         (vec_vor): New.
1881         (vec_vpkuhum): New.
1882         (vec_vpkuwum): New.
1883         (vec_vpkpx): New.
1884         (vec_vpkuhus): New.
1885         (vec_vpkshss): New.
1886         (vec_vpkuwus): New.
1887         (vec_vpkswss): New.
1888         (vec_vpkshus): New.
1889         (vec_vpkswus): New.
1890         (vec_vperm): New.
1891         (vec_vrefp): New.
1892         (vec_vrlb): New.
1893         (vec_vrlh): New.
1894         (vec_vrlw): New.
1895         (vec_vrfin): New.
1896         (vec_vrsqrtefp): New.
1897         (vec_vsel): New.
1898         (vec_vslb): New.
1899         (vec_vslh): New.
1900         (vec_vslw): New.
1901         (vec_vsldoi): New.
1902         (vec_vsl): New.
1903         (vec_vslo): New.
1904         (vec_vspltb): New.
1905         (vec_vsplth): New.
1906         (vec_vspltw): New.
1907         (vec_vspltisb): New.
1908         (vec_vspltish): New.
1909         (vec_vspltisw): New.
1910         (vec_vsrb): New.
1911         (vec_vsrh): New.
1912         (vec_vsrw): New.
1913         (vec_vsrab): New.
1914         (vec_vsrah): New.
1915         (vec_vsraw): New.
1916         (vec_vsr): New.
1917         (vec_vsro): New.
1918         (vec_stvx): New.
1919         (vec_stvebx): New.
1920         (vec_stvehx): New.
1921         (vec_stvewx): New.
1922         (vec_stvxl): New.
1923         (vec_vsububm): New.
1924         (vec_vsubuhm): New.
1925         (vec_vsubuwm): New.
1926         (vec_vsubfp): New.
1927         (vec_vsubcuw): New.
1928         (vec_vsububs): New.
1929         (vec_vsubsbs): New.
1930         (vec_vsubuhs): New.
1931         (vec_vsubshs): New.
1932         (vec_vsubuws): New.
1933         (vec_vsubsws): New.
1934         (vec_vsum4ubs): New.
1935         (vec_vsum4sbs): New.
1936         (vec_vsum4shs): New.
1937         (vec_vsum2sws): New.
1938         (vec_vsumsws): New.
1939         (vec_vrfiz): New.
1940         (vec_vupkhsb): New.
1941         (vec_vupkhpx): New.
1942         (vec_vupkhsh): New.
1943         (vec_vupklsb): New.
1944         (vec_vupklpx): New.
1945         (vec_vupklsh): New.
1946         (vec_vxor): New.
1947
1948 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1949
1950         PR c/5430
1951         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1952         added literals from substracted literals.
1953         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1954         (fold) [associate]: Preserve MINUS_EXPR if needed.
1955
1956 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1957
1958         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1959         are obsoleted.
1960
1961 2002-04-23  Tom Tromey  <tromey@redhat.com>
1962
1963         * gcc.c: Added --resource.  For PR java/6314.
1964
1965 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1966
1967         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1968         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1969         these libraries.
1970
1971 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1972
1973         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1974
1975 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1976
1977         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1978         workaround.
1979         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1980         (ix86_expand_clrstr): Fix typo.
1981         * loop.c (gen_load_of_final_value): New.
1982         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1983         Use it.
1984
1985 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1986
1987         * builtins.c (builtin_memset_gen_str): New function.
1988         (expand_builtin_memset): Optimize the case of constant length, but
1989         unknown value.
1990
1991 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1992
1993         * config/rs6000/altivec.h (vec_step): Remove extraneous
1994         parentheses.
1995         (vec_ctu): Cast return.
1996
1997 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1998
1999         PR target/6413
2000         * function.h: (struct function): Add profile_label_no field.
2001         (current_function_profile_label_no): Define.
2002         * function.c: (profile_label_no): New static var.
2003         (expand_function_start): Increment it, and copy to
2004         current_function_profile_label_no.
2005         * output.h (profile_label_no): Delete.
2006         * final.c (profile_label_no): Delete.
2007         (profile_function): Use current_function_profile_label_no.
2008         (final_end_function): Don't increment profile_label_no here.
2009         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
2010         profile_label_no with current_function_profile_label_no.
2011         * config/pa/pa.c (current_function_number): Delete.
2012         (pa_output_function_prologue): Don't output profile label here.
2013         (hppa_profile_hook): Use label_no param rather than
2014         current_function_number.
2015         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
2016         * config/pa/pa.h: .. here.
2017         (FUNCTION_PROFILER): Output profile label here.
2018
2019 2002-04-22  Eric Christopher  <echristo@redhat.com>
2020
2021         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
2022         patch of 2002-04-09 due to binutils issues.
2023         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
2024
2025 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
2026
2027         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
2028         constraint to 'o' for m=r and r=m alternatives.
2029         ("*movv8hi_internal1"): Same.
2030         ("*movv16qi_internal1"): Same.
2031         ("*movv4sf_internal1"): Same.
2032
2033 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
2034
2035         * rtl.h (RTX_FLAG): New macro.
2036         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
2037         * final.c (alter_subreg): Use macro to access rtx flag.
2038         * integrate.c (copy_rtx_and_substitute): Use new access macro.
2039         * print-rtl.c (print_rtx): Use new access macro.
2040
2041         * cse.c (insert): Check rtx code before accessing flag.
2042
2043         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
2044         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
2045         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
2046         convert_const_symbol_ref, make_canonical, make_alternative_compare,
2047         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
2048         simplify_test_exp, optimize_attrs, simplify_by_exploding,
2049         find_and_mark_used_attributes, unmark_used_attributes,
2050         add_values_to_cover, simplify_with_current_value,
2051         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
2052         copy_rtx_unchanging, main): Use new access macros.
2053
2054 2002-04-22  Tom Rix  <trix@redhat.com>
2055
2056         * expmed.c (init_expmed): Generate shifted constant once.
2057
2058 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
2059
2060         * c-lex.c (lex_charconst): Call convert to get constant in
2061         proper type; don't just smash the type field.
2062         Fixes PR c/6300.
2063
2064         * config.gcc: Add list of obsolete configurations.  Disallow
2065         building these without --enable-obsolete.
2066         * doc/install.texi: Document --enable-obsolete and obsoletion
2067         policy.  Mention obsoletion of individual targets in
2068         appropriate places.
2069
2070 2002-04-22  Richard Henderson  <rth@redhat.com>
2071
2072         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
2073
2074 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
2075
2076         PR f/6138.
2077         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
2078         (walk_fixup_memory_subreg): Likewise.
2079         (fixup_var_refs_insn): Adjust accordingly.
2080         (fixup_var_refs_1): Likewise.
2081
2082 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
2083
2084         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
2085         LIBPATH_ARCH64_SPEC): Define.
2086         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
2087         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
2088         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
2089         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
2090
2091 2002-04-22      Joel Sherrill <joel@OARcorp.com>
2092
2093         * gthr-rtems.h: Correct prototypes to remove warnings.
2094
2095 2002-04-22  Richard Henderson  <rth@redhat.com>
2096
2097         PR c/6344
2098         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
2099
2100         * gcse.c (free_insn_expr_list_list): New.
2101         (clear_modify_mem_tables): Use it.  Fix bit set usage.
2102         (canon_list_insert): Use EXPR_LISTs for expressions.
2103         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
2104
2105 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2106
2107         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
2108         file change and include code to _cpp_pop_buffer.
2109         * cpphash.h (struct pending_option): Predeclare.
2110         (struct cpp_reader): New member next_include_file.
2111         (_cpp_pop_file_buffer): Update.
2112         (_cpp_push_next_buffer): Update, rename.
2113         * cppinit.c (cpp_destroy): Free include chain and pending here.
2114         (cpp_finish_options): Simplify.
2115         (_cpp_push_next_buffer): Rename and clean up.
2116         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
2117         Clarify.
2118         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
2119
2120 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
2121
2122         * config/rs6000/altivec.h (vec_xor): Add variant for both args
2123         being vector signed int.
2124         (vec_andc): Same.
2125         (vec_xor): Add variant for both args being vector signed char.
2126         Remove redundant variant.
2127         (vec_andc): Same.
2128
2129 2002-04-21  David S. Miller  <davem@redhat.com>
2130
2131         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
2132         compare mode in output RTL.
2133
2134 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
2135
2136         * config/rs6000/rs6000.c (rs6000_override_options): Correct
2137         style and formatting of previous patch.
2138
2139 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
2140
2141         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
2142         flag_pic for ABI_AIX.
2143
2144 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2145
2146         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
2147         * cppfiles.c (read_include_file): Similarly.
2148         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
2149         uxstrdup ustrchr, ufputs): Similarly.
2150         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
2151         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
2152         cpp_ideq, parse_identifier, parse_number): Similarly.
2153         * cpplib.c (struct directive, dequote_string, D, run_directive,
2154         cpp_push_buffer): Similarly.
2155         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
2156         _cpp_create_definition, check_trad_stringification,
2157         cpp_macro_definition): Similarly.
2158
2159 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2160
2161         * cppmacro.c (funlike_invocation_p): Don't step back
2162         over CPP_EOF.
2163
2164 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
2165
2166         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
2167         labelno.
2168
2169 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2170
2171         * doc/invoke.texi: Remove Chill references.
2172         * doc/gcc.texi: Update last modified date.
2173
2174 2002-04-20  Kazu Hirata  <kazu@hxi.com>
2175
2176         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
2177         push and pop.  Replace add.l with add.w.
2178
2179 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2180
2181         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
2182         multiply instructions for H8/300H case.
2183
2184 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2185
2186         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
2187         Bum three instructions from each routine.
2188
2189 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2190
2191         * Makefile.in: Update.
2192         * decl.c (push_c_function_context, pop_c_function_context,
2193         mark_c_function_context): Rename for consistency.
2194         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
2195         * c-tree.h (push_c_function_context, pop_c_function_context,
2196         mark_c_function_context): Rename for consistency.
2197         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2198         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
2199         * function.c (init_lang_status, save_lang_status,
2200         restore_lang_status, mark_lang_status, free_lang_status):
2201         Move to langhooks.h.
2202         (push_function_context_to, pop_function_context_from,
2203         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
2204         Update.
2205         * function.h (init_lang_status, save_lang_status,
2206         restore_lang_status, mark_lang_status, free_lang_status):
2207         Move to langhooks.h.
2208         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
2209         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
2210         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
2211         LANG_HOOKS_FUNCTION_INITIALIZER): New.
2212         (LANG_HOOKS_INITIALIZER): Update.
2213         (lhd_do_nothing_f): New.
2214         * langhooks.h (struct lang_hooks_for_functions): New.
2215         (struct lang_hooks): New hooks.
2216         * langhooks.c (lhd_do_nothing_f): New.
2217 objc:
2218         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2219         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
2220
2221 2002-04-19  David S. Miller  <davem@redhat.com>
2222
2223         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
2224         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
2225
2226 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
2227
2228         PR optimization/3756
2229         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
2230         x = ((int) y < 0) ? cst1 : cst2.
2231
2232 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
2233
2234         PR c/6358
2235         * function.c: Reapply patch for c/6358.
2236         (expand_function_end): Copy decl_rtl's mode, not
2237         current_function_return_rtx mode.
2238
2239 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
2240
2241         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
2242         targets.
2243
2244 2002-04-19  Tom Tromey  <tromey@redhat.com>
2245
2246         * doc/install.texi (Specific): Update status of Solaris 2.8.
2247         For PR libgcj/6158.
2248
2249 2002-04-19  Andreas Schwab  <schwab@suse.de>
2250
2251         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
2252         (PUT_REAL): Restore old definition.
2253
2254 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
2255             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2256
2257         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
2258         binutils 2.11.2 and higher generate smaller binaries than Sun's
2259         native tools.
2260
2261 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
2262
2263         PR c++/6352
2264         * toplev.c (rest_of_compilation): Do not defer functions for which
2265         TREE_SYMBOL_REFERENCED has already been set.
2266
2267 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
2268
2269         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
2270         alternative.
2271
2272 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2273
2274         * builtins.c: Include langhooks.h.
2275         (lang_type_promotes_to): Remove.
2276         (expand_builtin_va_arg): Use new hook.
2277         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
2278         (simple_type_promotes_to): Move to c-typeck.c.
2279         * c-common.h (simple_type_promotes_to): Remove.
2280         * c-decl.c (duplicate_decls, grokdeclarator): Update.
2281         * c-format.c: Include langhooks.h.
2282         (check_format_types): Update.
2283         * c-tree.h (c_type_promotes_to): New.
2284         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
2285         (type_lists_compatible_p): Update.
2286         * langhooks-def.h (lhd_type_promotes_to): New.
2287         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
2288         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
2289         * langhooks.c (lhd_type_promotes_to): New.
2290         * langhooks.h (struct lang_hooks_for_types): New hook.
2291         * tree.h (lang_type_promotes_to): Remove.
2292 objc:
2293         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
2294
2295 2002-04-18  Richard Henderson  <rth@redhat.com>
2296
2297         * function.c: Revert patch for c/6358.
2298
2299 2002-04-18  Richard Henderson  <rth@redhat.com>
2300
2301         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
2302         blocks.  Handle multiple references to the TRAP block.  Handle
2303         non-adjacent THEN and OTHER blocks.
2304
2305 2002-04-18  Richard Henderson  <rth@redhat.com>
2306
2307         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
2308         crash with no type for by-mode libcalls.
2309
2310         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
2311
2312 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
2313
2314         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
2315         __xtensa_nonlocal_goto): Use a syscall instructions to flush
2316         the register windows.
2317
2318 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
2319
2320         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
2321         appropriate.  Document need for extended precision even when
2322         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
2323         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
2324         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
2325         instead of relying on later syntax error when REAL_WIDTH > 5.
2326         * real.c: Define NE based only on whether or not we have a
2327         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
2328         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
2329         define GET_REAL and PUT_REAL as simple memcpy operations; no
2330         need to byteswap or round.
2331         Use #error instead of #ifdef-ing out the entire file, for
2332         prompt error detection.
2333
2334         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
2335
2336 2002-04-18  David S. Miller  <davem@redhat.com>
2337
2338         * config/sparc/sparc.h (BRANCH_COST): Define.
2339
2340         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
2341         does it.
2342
2343 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
2344
2345         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
2346         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
2347         propagate_block calls after relaxation loop using new variable
2348         stabilized_prop_flags.
2349
2350 2002-04-18  Richard Henderson  <rth@redhat.com>
2351
2352         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
2353         (ia64_va_arg): Expect variable sized types by reference.
2354         * config/ia64/ia64-protos.h: Update.
2355         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
2356         ia64_function_arg_pass_by_reference.
2357
2358 2002-04-18  Richard Henderson  <rth@redhat.com>
2359
2360         * ifcvt.c: Include except.h.
2361         (block_has_only_trap): Break out from find_cond_trap.
2362         (find_cond_trap): Use it.  Always delete the trap block.
2363         (merge_if_block): Allow then block null.  Be less simplistic about
2364         what insns can end a block.
2365         * Makefile.in (ifcvt.o): Depend on except.h.
2366
2367         * config/ia64/ia64.md (trap, conditional_trap): New.
2368
2369 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2370
2371         PR c/6358
2372         * function.c (assign_parms): Assign hard current_function_return_rtx
2373         register here...
2374         (expand_function_end): ...not here.
2375
2376 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2377
2378         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
2379         * c-tree.h (c_incomplete_type_error): New.
2380         * c-typeck.c (require_complete_type, build_component_ref): Update.
2381         (incomplete_type_error): Rename.
2382         * langhooks-def.h (lhd_incomplete_type_error): New.
2383         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
2384         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
2385         * langhooks.c (lhd_incomplete_type_error): New.
2386         * langhooks.h (struct lang_hooks_for_types): New hook.
2387         * tree.c (size_in_bytes): Use new hook.
2388         * tree.h (incomplete_type_error): Remove.
2389 objc:
2390         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
2391
2392 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
2393
2394         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
2395         TARGET_FLOAT_FORMAT blocks.
2396
2397 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2398
2399         * doc/install.texi (Downloading the source): Do not mention Chill
2400         any longer, but mention Ada.
2401         (Configuration): Do not mention Chill any longer.
2402
2403 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
2404
2405         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
2406
2407 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
2408
2409         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
2410         in last patch.
2411
2412 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2413
2414         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
2415         instead of unsigned_type.
2416
2417 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2418
2419         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
2420         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
2421         later.
2422
2423 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
2424
2425         * attribs.c (vector_type_node_list): New static variable.
2426         (handle_vector_size_attribute): Use it to avoid generating a
2427         new type node each time we are called.
2428
2429         * combine.c (subst): Avoid trying to make a vector mode subreg of
2430         an integer constant.
2431         (gen_lowpart_for_combine): Likewise.
2432
2433 2002-04-18  Roger Sayle  <roger@eyesopen.com>
2434             Jakub Jelinek  <jakub@redhat.com>
2435
2436         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
2437         for integer constant c (if x has unsigned type or sign bit is not
2438         set in c).  This folds the zero/sign extension into the bit-wise and
2439         operation.
2440
2441 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2442
2443         PR middle-end/6205
2444         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
2445         otherwise xorps.
2446
2447 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
2448
2449         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
2450
2451 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
2452
2453         * gcc.c (read_specs): Detect and fail if an attempt is made to
2454         rename a spec string to an already existing string.
2455
2456 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
2457
2458         * config/s390/s390.c (legitimize_pic_address): Do not generate
2459         illegal address constant without CONST.
2460
2461 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2462
2463         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
2464         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
2465
2466 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
2467
2468         PR optimization/6305
2469         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
2470         to make sure previous reloads are taken into account.  Generate
2471         better code if one operand is an in-range immediate constant.
2472
2473 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
2474
2475         * doc/install.texi (Building): libgcj requires GNU make.
2476
2477 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
2478
2479         PR bootstrap/6315
2480         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
2481         even if hard quad and register is not floating.
2482         (movtf reg<-mem split): Disallow splitting if hard quad and
2483         register is floating.
2484         (movtf mem<-reg split): Likewise.
2485         * config/sparc/sparc.c (fp_register_operand): New predicate.
2486         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
2487
2488 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
2489
2490         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
2491         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
2492         (unprotoize.o): Ditto.  Build from protoize.c.  Define
2493         UNPROTOIZE on command line.
2494         * protoize.c: Include cppdefault.h.  Delete include_defaults.
2495         (in_system_include_dir): Use cpp_include_defaults (defined in
2496         cppdefault.o).
2497         * unprotoize.c: Delete file.
2498
2499 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
2500
2501         * config/rs6000/altivec.h (vec_ld): Add array variants.
2502         (vec_lde): Same.
2503         (vec_ldl): Same.
2504
2505 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
2506             Aldy Hernandez <aldyh@redhat.com>
2507
2508         * config/rs6000/altivec.h: Define __ALTIVEC__.
2509         (bool): New.
2510         (__pixel): New.
2511         (pixel): New.
2512         (vec_cfux): New.
2513         (vec_vmaddfp): New.
2514         (vec_vsldoi): New.
2515         Add parentheses to all macro arguments.
2516
2517 2002-04-16  Richard Henderson  <rth@redhat.com>
2518
2519         PR c++/6320
2520         * except.c (remove_eh_handler): Insert inner regions at beginning
2521         of sibling chain.  Refactor expressions.
2522
2523 2002-04-16  Richard Henderson  <rth@redhat.com>
2524
2525         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
2526         * config/sparc/sol2-gas-bi.h: New file.
2527         * config.gcc (sparc*-solaris): Add it as needed.
2528         * configure.in (AS_SPARC64_FLAG): Remove check.
2529         * config.in, configure: Regenerate.
2530
2531         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
2532
2533 2002-04-16  Richard Henderson  <rth@redhat.com>
2534
2535         * config/mips/mips.c (override_options): Don't override N32 for
2536         a 64-bit ISA.
2537
2538         PR 6202
2539         * config/mips/mips.md (can_delay): Split out of existing define_delays.
2540         (HILO_delay): Set can_delay false.
2541
2542 2002-04-16  Dale Johannesen <dalej@apple.com>
2543
2544         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
2545         instruction addresses.
2546         (rs6000_output_function_epilogue): Likewise.
2547
2548 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
2549
2550         * c-parse.in (poplevel, compstmt_start,
2551         compstmt_primary_start): Add ending ';', in accordance
2552         with POSIX.
2553
2554 2002-04-16  Richard Henderson  <rth@redhat.com>
2555
2556         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
2557         Adjust tm_file order to get TARGET_DEFAULT set properly.
2558         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
2559         * doc/install.texi (sparc-solaris): Update.
2560
2561 2002-04-16  Dale Johannesen <dalej@apple.com>
2562
2563         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
2564         comparison operands do not match each other or if modes of
2565         conditions do not match result.
2566
2567 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
2568
2569         PR target/6305
2570         * config/s390/s390.md (mulsidi3): Set both subregs of the
2571         multiword register.
2572
2573 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
2574
2575         * config/rs6000/altivec.h (vec_addc): Type check.
2576
2577 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2578
2579         PR middle-end/6279
2580         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
2581
2582         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
2583
2584 2002-04-15  Richard Henderson  <rth@redhat.com>
2585
2586         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
2587         call_really_used_regs too.
2588
2589 2002-04-15  Richard Henderson  <rth@redhat.com>
2590
2591         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
2592
2593 2002-04-15  David S. Miller  <davem@redhat.com>
2594
2595         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
2596         as being CLOBBERed.
2597
2598 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2599
2600         PR c/6290
2601         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
2602         CONST_VECTOR is { 0, ... 0 }.
2603
2604 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
2605
2606         * doc/install.texi (Installing GCC: Configuration): Clarify
2607         the only supported ways to configure gcc.
2608
2609 2002-04-15  Roland McGrath  <roland@frob.com>
2610
2611         * config.gcc (alpha*-*-gnu*): New target configuration.
2612         * config/alpha/gnu.h: New file for it.
2613         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
2614
2615 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
2616
2617         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
2618         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
2619         * tree.h (expand_start_stmt_expr): Update prototype.
2620         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
2621         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
2622         on the STMT_EXPR created for the inline function.
2623
2624 2002-04-15  Richard Henderson  <rth@redhat.com>
2625
2626         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
2627         config/i386/linux-aout.h, config/i386/linux-oldld.h,
2628         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
2629         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
2630         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
2631         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
2632         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
2633         Define __gnu_linux__, not gnu_linux.
2634         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
2635
2636 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
2637
2638         Remove Chill front end.
2639         * gcc.c (default_compilers): Remove Chill entries.
2640         * ch: Remove directory.
2641         * doc/frontends.texi: Remove information about Chill.
2642         * doc/sourcebuild.texi: Likewise.
2643         * doc/standards.texi: Likewise.
2644
2645 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
2646
2647         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
2648         (LONGLONG_STANDALONE): Define.
2649
2650 2002-04-15  David S. Miller  <davem@redhat.com>
2651
2652         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2653         Call emit_library_call with LCT_NORMAL.
2654         (sparc_initialize_trampoline): Use LCT_foo instead of
2655         magic constant in emit_library_call invocations.
2656         (sparc64_initialize_trampoline): Likewise.
2657         (sparc_profile_hook): Likewise.
2658         * config/sparc/sparc.md: Likewise.
2659
2660         * config/sparc/sparc.c (sparc_extra_constraint_check):
2661         Fix type of argument 'c'.
2662         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2663         Likewise.
2664
2665 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2666
2667         * diagnostic.h (output_buffer_state): Redefine.
2668         (output_format_decoder): New macro.
2669         (output_prefixing_rule): Likewise.
2670         (output_line_cutoff): Likewise.
2671         (diagnostic_format_decoder): Adjust.
2672         (diagnostic_prefixing_rule): Likewise.
2673         (diagnostic_line_cutoff): Likewise.
2674         (diagnostic_state): Likewise.
2675         (diagnostic_kind_count): Likewise.
2676         (diagnostic_buffer): Now a macro.
2677
2678         * diagnostic.c (diagnostic_buffer): Remove definition.
2679         (output_is_line_wrapping): Adjust.
2680         (set_real_maximum_length): Likewise.
2681         (output_set_maximum_length): Likewise.
2682         (init_output_buffer): Likewise.
2683         (lhd_print_error_function): Likewise.
2684         (output_do_verbatim): Likewise.
2685
2686 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2687
2688         * cpperror.c (print_location): Don't print include chain
2689         if line == 0.
2690         (cpp_begin_message): Update to use DL_ macros.
2691         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2692         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2693         cpp_notice, cpp_notice_from_errno): Remove.
2694         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2695         level.
2696         (cpp_errno): New.
2697         * cppexp.c (CPP_ICE): Remove.
2698         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2699         lex, integer_overflow, _cpp_parse_expr): Update.
2700         * cppfiles.c (read_include_file, find_include_file,
2701         handle_missing_header, _cpp_read_file, remap_filename): Update.
2702         * cpphash.h (enum error_type): Remove.
2703         (_cpp_begin_message): Update.
2704         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2705         cpp_handle_option, cpp_post_options): Update.
2706         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2707         skip_whitespace, parse_identifier, parse_slow, parse_string,
2708         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2709         cpp_interpret_charconst): Update.
2710         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2711         lex_macro_node, do_undef, glue_header_name, parse_include,
2712         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2713         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2714         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2715         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2716         _cpp_pop_buffer, do_diagnostic): Update.
2717         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2718         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2719         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2720         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2721         cpp_notice, cpp_notice_from_errno): Remove.
2722         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2723         level.
2724         (cpp_errno): New.
2725         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2726         collect_args, enter_macro_context, save_parameter, parse_params,
2727         _cpp_create_definition, check_trad_stringification,
2728         cpp_macro_definition): Update.
2729         * cppmain.c (cpp_preprocess_file): Update.
2730         * fix-header.c (read_scan_file): Update.
2731
2732 2002-04-14  Andreas Schwab  <schwab@suse.de>
2733
2734         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2735
2736 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2737
2738         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2739
2740 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2741
2742         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2743         not gnu_hurd.
2744
2745 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2746
2747         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2748
2749 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2750
2751         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2752         sparc-elf and sparc-rtems targets.
2753
2754 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2755
2756         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2757         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2758         * arm/linux-elf.h: Likewise.
2759         * cris/aout.h: Likewise.
2760         * cris/linux.h: Likewise.
2761         * i370/linux.h: Likewise.
2762         * i386/gnu.h: Likewise.
2763         * i386/linux-aout.h: Likewise.
2764         * i386/linux-oldld.h: Likewise.
2765         * i386/linux.h: Likewise.
2766         * i386/linux64.h: Likewise.
2767         * ia64/linux.h: Likewise.
2768         * m68k/linux-aout.h: Likewise.
2769         * m68k/linux.h: Likewise.
2770         * mips/linux.h: Likewise.
2771         * pa/pa-linux.h: Likewise.
2772         * pj/linux.h: Likewise.
2773         * rs6000/sysv4.h: Likewise.
2774         * s390/linux.h: Likewise.
2775         * sh/linux.h: Likewise.
2776         * sparc/linux-aout.h: Likewise.
2777         * sparc/linux.h: Likewise.
2778         * sparc/linux64.h: Likewise.
2779         * xtensa/linux.h: Likewise.
2780
2781 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2782
2783         * stmt.c (check_unique_operand_names): Expect operand names to
2784         be strings rather than identifiers.  Use simple_cst_equal to
2785         compare them.
2786         (resolve_operand_name_1): Make same identifier to string change here.
2787         * c-parse.in (asm_operand): Convert a named operand into a string.
2788         * cp/parse.y (asm_operand): Likewise.
2789
2790 2002-04-13  Andreas Schwab  <schwab@suse.de>
2791
2792         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2793
2794 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2795
2796         Revert these changes:
2797
2798         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2799
2800         PR c++/5571
2801         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2802
2803 2002-04-12  Richard Henderson  <rth@redhat.com>
2804
2805         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2806         (sparc*-*-solaris): Clean up header files.
2807         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2808         and plan on generating 64-bit code.
2809         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2810         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2811         * config/sparc/sol2-sld-64.h: Rename ...
2812         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2813         for AS_SPARC64_FLAG not defined.
2814         * config/sparc/sol2-gld-bi.h: New.
2815         * config/sparc/sol2-sld.h: Remove.
2816         * config/sparc/sol26-sld.h: New.
2817         * config/sparc/sol2.h: Tidy comments.
2818         * doc/install.texi: Document sparc-solaris configury changes.
2819
2820 2002-04-12  Richard Henderson  <rth@redhat.com>
2821
2822         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2823
2824         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2825         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2826
2827 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2828
2829         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2830
2831 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2832
2833         * pa.c (pa_can_combine_p): Call extract_insn before calling
2834         constrain_operands.
2835
2836 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2837
2838         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2839         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2840         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2841         (CPP_PREDEFINES): Handle __declspec.
2842         * config/i386/t-interix (USER_H): Remove.
2843
2844 2002-04-12  DJ Delorie  <dj@redhat.com>
2845
2846         * integrate.c (compare_blocks): Make comparisons safe for when
2847         sizeof(int) < sizeof(char *).
2848         (find_block): Likewise.
2849
2850 2002-04-12  Jan Hubicka  <jh@suse.cz>
2851             David Edelsohn  <edelsohn@gnu.org>
2852
2853         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2854         registers.
2855         (symbol_ref_operand): New.
2856         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2857         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2858
2859 2002-04-12  Andreas Schwab  <schwab@suse.de>
2860
2861         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2862         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2863         overrides the definition in config/svr4.h.
2864
2865 2002-04-12      Eric Norum <eric.norum@usask.ca>
2866
2867         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2868         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2869         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2870         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2871         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2872         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2873         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2874         definitions to config/rtems.h and make the targets more similar.
2875
2876 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2877
2878         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2879         POINTERS_EXTEND_UNSIGNED.
2880         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2881         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2882
2883         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2884         not specified.
2885
2886 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2887
2888         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2889         depends on TARGET_SHMEDIA, not TARGET_SH5.
2890
2891 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2892
2893         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2894         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2895
2896 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2897
2898         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2899         no r0 clobber.
2900
2901 2002-04-12  Andreas Schwab  <schwab@suse.de>
2902
2903         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2904
2905 2002-04-12  Richard Henderson  <rth@redhat.com>
2906
2907         PR bootstrap/4191
2908         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2909
2910         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2911         modes spanning multiple hard regs.
2912
2913         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2914
2915 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2916
2917         * pa.c (pa_output_function_prologue): Don't accumulate the total
2918         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2919         the portable runtime.
2920         (output_deferred_plabels): Handle 64bit plabels.
2921         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2922         generating pic code using the GAS assembler for object formats that
2923         are not SOM (ie., ELF32 and ELF64).
2924         (output_millicode_call): Check attribute type if attribute length is 28.
2925         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2926         dbr_sequence_length once.
2927         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2928         dbr_sequence_length once.
2929         * pa.h (TARGET_SOM): Define if not defined.
2930         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2931         with GAS and not SOM.
2932         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2933         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2934
2935 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2936
2937         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2938         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2939         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2940         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2941         elfos.h and dbxelf.h values are fine now.
2942         * config/i386/freebsd.h, config/alpha/freebsd.h
2943         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2944
2945 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2946
2947         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2948         or set Acpu or Amachine.  Reformat.
2949         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2950         define.
2951         (LINK_SPEC): Do not need to undef.
2952         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2953         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2954         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2955         define.
2956         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2957         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2958         (LINK_SPEC): Do not need to undef.
2959         (DONT_USE_BUILTIN_SETJMP): Do not define.
2960         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2961         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2962         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2963         Remove trailing spaces.
2964         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2965         __ELF__, or set Acpu or Amachine.  Reformat.
2966         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2967         define.
2968
2969 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2970
2971         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2972         all other *-*-freebsd* targets.
2973
2974 2002-04-11  Richard Henderson  <rth@redhat.com>
2975
2976         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2977
2978 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2979
2980         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2981         Include {cpu}/{cpu}.h thru tm_file.
2982         (alpha*-*-linux*ecoff): Remove target.
2983         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2984         (LINK_SPEC): Remove, is not OS independent.
2985         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2986         (LINK_SPEC): Do not need to #undef any longer.
2987         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2988         any longer.
2989         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2990         __ELF__.
2991         (LINK_SPEC): Moved here from alpha/elf.h.
2992         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2993         SUB_CPP_PREDEFINES.
2994         * config/alpha/linux-ecoff.h: Remove.
2995         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2996         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2997         (CPP_SUBTARGET_SPEC): Do not define.
2998         (LINK_SPEC): Do not need to #undef any longer.
2999         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
3000         * config/alpha/vms.h: Likewise.
3001
3002 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
3003
3004         * doc/extend.texi: Remove old claim that typedefs cannot have
3005         an alignment attribute.
3006
3007 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR optimization/6177
3010         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
3011         bitpos is 0 and bitsize CONCAT size.
3012
3013 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
3014
3015         PR c/6223
3016         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
3017
3018 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
3019
3020         * config/alpha/freebsd.h: Minor reformatting.
3021         (CPP_SPEC): Define ELF and add cpp_subtarget.
3022         (ASM_SPEC): No longer needed.
3023
3024 2002-04-11  Richard Henderson  <rth@redhat.com>
3025
3026         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
3027         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
3028         (dimode mem/zero splitter): New.
3029
3030 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
3031
3032         * config/cris/cris.c (cris_override_options): Tweak error message
3033         for PIC not implemented.
3034
3035         * config/cris/cris.h: Tweak comments related to parameter-passing.
3036
3037         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
3038
3039 2002-04-10  Richard Henderson  <rth@redhat.com>
3040
3041         * except.c (add_ehl_entry): Allow duplicates after landing pad
3042         creation.
3043
3044 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
3045
3046         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
3047
3048 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
3049
3050         * c-decl.c (c_init_decl_processing): Move generation of
3051         decls for g77_integer_type_node and friends from here ...
3052         * c-common.c (c_common_nodes_and_builtins): ... to here.
3053
3054 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
3055
3056         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
3057         is only used as frame pointer when frame_pointer_needed is true.
3058
3059 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
3060
3061         PR target/817
3062         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
3063         for the fact that the pool entry uses two words.
3064         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
3065         1k bytes.
3066         (movdf_soft_insn): Similarly.
3067         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
3068         for the fact that the pool entry uses three words.
3069
3070 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
3071
3072         * config/mips/mips.c (mips_va_arg): When using the struct version
3073         of the EABI va_list, allow arguments in the register save area to
3074         take up less room than a stack argument.
3075
3076 2002-04-10  Richard Henderson  <rth@redhat.com>
3077
3078         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
3079         if EXPAND_INITIALIZER.
3080
3081 2002-04-09  Richard Henderson  <rth@redhat.com>
3082
3083         * config/alpha/alpha.md (movdi_er_maybe_g): New.
3084         * config/alpha/alpha.c (alpha_expand_mov): Use it.
3085
3086 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
3087
3088         PR optimization/6233
3089         * rtlanal.c (pure_call_p): New function.
3090         * rtl.h (pure_call_p): Declare.
3091         * loop.c (prescan_loop): Use it to set has_nonconst_call.
3092         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
3093
3094 2002-04-09  Eric Christopher  <echristo@redhat.com>
3095
3096         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
3097         information to .comm directive.
3098
3099 2002-04-09  Richard Henderson  <rth@redhat.com>
3100
3101         PR c/5078
3102         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
3103
3104 2002-04-09  Richard Henderson  <rth@redhat.com>
3105
3106         * basic-block.h (flow_delete_block_noexpunge): Declare.
3107         (expunge_block_nocompact): Declare.
3108         * cfg.c (expunge_block_nocompact): Split out from ...
3109         (expunge_block): ... here.
3110         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
3111         (flow_delete_block_noexpunge): Split out from ...
3112         (flow_delete_block): ... here.
3113         * cfgcleanup.c (delete_unreachable_blocks): Compact while
3114         removing dead blocks.
3115         * except.c (exception_handler_labels): Remove.
3116         (exception_handler_label_map): New.
3117         (struct eh_region): Add aka member.
3118         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
3119         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
3120         (for_each_eh_label, for_each_eh_label_1): New.
3121         (init_eh): Register exception_handler_label_map.
3122         (free_eh_status): Use free_region.
3123         (find_exception_handler_labels): Use the map, not the list.
3124         (remove_exception_handler_label): Likewise.
3125         (maybe_remove_eh_handler): Likewise.
3126         (remove_eh_handler): Use the region aka bitmap.
3127         * except.h (exception_handler_labels): Remove.
3128         (for_each_eh_label): Declare.
3129         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
3130         * loop.c (invalidate_loops_containing_label): New.
3131         (find_and_verify_loops): Use it.  Use for_each_eh_label.
3132         * sched-rgn.c (is_cfg_nonregular): Use
3133         current_function_has_exception_handlers.
3134
3135 2002-04-09  Richard Henderson  <rth@redhat.com>
3136
3137         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
3138         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
3139         Do not return changed status.
3140         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
3141         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
3142         New functions that do return changed status.
3143         * sbitmap.h: Update decls.
3144         * gcse.c, lcm.c: Use _cg functions as needed.
3145
3146 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3147
3148         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
3149         (sh64-*-elf*, sh-*-rtemself*): Likewise.
3150         * config/sh/embed_bb.c: New file.
3151         * config/sh/embed-elf.h: New file.
3152         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
3153         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
3154         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
3155         __PTRDIFF_TYPE__ .
3156         (SUBTARGET_CPP_PTR_SPEC): Don't define.
3157         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
3158         Add subtarget_asm_endian_spec.
3159         (ASM_SPEC): Use subtarget_asm_endian_spec.
3160         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
3161         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
3162         (WCHAR_UNSIGNED): Define.
3163         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
3164         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
3165         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
3166         Fix value.
3167         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
3168         (sh_adjust_cost): Likewise.
3169         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
3170         __PTRDIFF_TYPE__ .
3171         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
3172         (WCHAR_TYPE_SIZE): Likewise.
3173         (ASM_SPEC): Use subtarget_asm_endian_spec.
3174         (SH_ELF_WCHAR_TYPE): #undef/ #define.
3175         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
3176         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
3177         (MAX_WCHAR_TYPE_SIZE): Don't #define .
3178         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
3179         (USER_LABEL_PREFIX): Don't #undef /#define .
3180         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
3181         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
3182         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
3183         (ASM_SPEC): Likewise.
3184         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
3185         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
3186         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
3187         (LIB2FUNCS_EXTRA): Define.
3188         * t-sh64 (LIB2FUNCS_EXTRA): Define.
3189         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
3190         (LIB1ASMFUNCS_CACHE): Define.
3191         (LIB2FUNCS_EXTRA): Redefine empty.
3192
3193 2002-04-08  Richard Henderson  <rth@redhat.com>
3194
3195         * reorg.c (get_branch_condition): Use reversed_comparison_code.
3196
3197 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3198
3199         * config/m68hc11/larith.asm (__map_data_section): Fix condition
3200         and optimize for size.
3201         (__do_global_ctors): Fix pointer comparison.
3202         (__do_global_dtors): Likewise.
3203
3204 2002-04-09  David S. Miller  <davem@redhat.com>
3205
3206         * config/sparc/sparc.c (sparc_extra_constraint_check): New
3207         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
3208         allow reloading pseudos.
3209         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
3210         * config/sparc/sparc-protos.h: Declare it.
3211
3212         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
3213         unsigned comparison warning.
3214         (output_restore_regs): Mark leaf_function as unused.
3215
3216 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3217
3218         * expr.c (is_aligning_offset): New function.
3219         (expand_expr, case COMPONENT_EXPR): Call it.
3220
3221 2002-04-08  David S. Miller  <davem@redhat.com>
3222
3223         PR target/6082
3224         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
3225
3226         Make init_priority work on Sparc when using GNU ld.
3227         * config/sparc/linux.h, config/sparc/linux64.h,
3228         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
3229         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
3230         * config/sparc/sol2-gld.h: New file to do the same.
3231         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
3232         sparc/sol2-gld.h to tm_file.
3233
3234         PR optimization/4328
3235         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
3236         * doc/md.texi: Document it.
3237         * config/sparc/sparc.md (movdi_insn_sp64_novis,
3238         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
3239         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
3240         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
3241         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
3242
3243 2002-04-08  Andreas Jaeger  <aj@suse.de>
3244
3245         * stmt.c (expand_asm_operands): Revert last patch from Richard
3246         Henderson.
3247
3248 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3249
3250         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
3251         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
3252
3253 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3254
3255         * doc/contrib.texi (Contributors): Add David O'Brien.
3256
3257 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
3258
3259         * configure.in (auto-build.h): Use target_alias and build_alias
3260         when running configure.
3261         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
3262         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
3263         * configure: Regenerate.
3264
3265 2002-04-07  David S. Miller  <davem@redhat.com>
3266
3267         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
3268
3269 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3270
3271         PR 5933
3272         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
3273         generating 32-bit pic code.
3274
3275 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
3276
3277         * cppinit.c (cpp_create_reader): Initialize
3278         discard_comments_in_macro_exp.
3279         (COMMAND_LINE_OPTIONS): Add "-CC" option.
3280         (cpp_handle_option): Handle "-CC" option.
3281         * cpplex.c (save_comment): If saving a C++ comment in
3282         a directive, convert it to a C comment.
3283         (_cpp_lex_direct): Pass second comment start character to
3284         save_comment to indicate comment type.
3285         * cpplib.c (_cpp_handle_directive): If processing
3286         a "#define" directive and discard_comments_in_macro_exp
3287         is false,  re-enable saving of comments.
3288         (lex_macro_node): If discard_comments_in_macro_exp is false,
3289         discard any comments before the macro identifier.
3290         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
3291         member.
3292         * cppmacro.c (cpp_get_token): If expanding a macro while
3293         processing a directive, discard any comments we might encounter.
3294         (parse_params): If discard_comments_in_macro_exp is false,
3295         ignore comments in the macro parameter list.
3296         * gcc.c (cpp_unique_options): Add "-CC" option.
3297         (option_map): Map "--comments-in-macros" to "-CC".
3298         * doc/cppopts.texi: Document "-CC" option.
3299         * f/lang-specs.h: Add "-CC" option.
3300         * testsuite/gcc.dg/cpp/maccom1.c: New test.
3301         * testsuite/gcc.dg/cpp/maccom2.c: New test.
3302         * testsuite/gcc.dg/cpp/maccom3.c: New test.
3303         * testsuite/gcc.dg/cpp/maccom4.c: New test.
3304         * testsuite/gcc.dg/cpp/maccom5.c: New test.
3305         * testsuite/gcc.dg/cpp/maccom6.c: New test.
3306
3307 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3308
3309         PR middle-end/6180
3310         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
3311
3312 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
3313
3314         PR c++/5571
3315         * stor-layout.c (layout_decl): Reset the RTL for the decl.
3316
3317         PR opt/5120
3318         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
3319         RTX_UNCHANGING_P for the functions arguments when a tail call
3320         is made.
3321
3322 2002-04-06  Jason Merrill  <jason@redhat.com>
3323
3324         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
3325         (parse_options_and_default_flags): Set them appropriately.
3326         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
3327
3328 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
3329
3330         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
3331         here.
3332
3333         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
3334         semicolon.
3335
3336         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
3337         types come in by-reference.  Fix typo in comment.
3338
3339 2002-04-05  David S. Miller  <davem@redhat.com>
3340
3341         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
3342         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
3343         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
3344         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
3345
3346 2002-04-05  David S. Miller  <davem@redhat.com>
3347
3348         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
3349         are not going to emit return instructions, emit at least a nop
3350         for the sake of sane backtraces.
3351
3352 2002-04-05  Richard Henderson  <rth@redhat.com>
3353
3354         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
3355
3356 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
3357
3358         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
3359
3360 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
3361
3362         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
3363         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
3364         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
3365
3366 2002-04-05  Andreas Schwab  <schwab@suse.de>
3367
3368         * c-convert.c: Include c-common.h.
3369         * Makefile.in (c-convert.o): Updated.
3370
3371 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
3372
3373         * mklibgcc.in: Use separate libgcc.map for each multilib.
3374         * Makefile.in (distclean): Don't remove libgcc.map here.
3375
3376 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
3377
3378         * Makefile.in (s-mlib): Handle --disable-multilib by separate
3379         genmultilib invocation.
3380
3381 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
3382
3383         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
3384         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
3385         to num_gprs for symmetry.
3386         * config/mips/mips.c: Adjust accordingly.
3387
3388 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3389
3390         * c-common.c (truthvalue_conversion): Rename, update.
3391         * c-common.h (c_common_truthvalue_conversion): New.
3392         * c-convert.c (convert): Update.
3393         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3394         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
3395         * c-typeck.c (build_binary_op, build_unary_op,
3396         build_conditional_expr): Update.
3397         * fold-const.c (constant_boolean_node, fold): Use langhook.
3398         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
3399         * langhooks.h (struct lang_hooks): New hook.
3400         * stmt.c (expand_decl_cleanup): Use langhook.
3401         * tree.h (truthvalue_conversion): Remove.
3402 objc:
3403         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3404
3405 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
3406
3407         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
3408         Add rules to make null object file.
3409
3410 2002-04-04  Jim Blandy  <jimb@redhat.com>
3411
3412         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
3413         macro formal parameter names.
3414
3415 2002-04-04  David S. Miller  <davem@redhat.com>
3416
3417         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
3418
3419 2002-04-04  Richard Henderson  <rth@redhat.com>
3420
3421         PR middle-end/5099
3422         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
3423         Support copies into and out of memory.  Don't accept allows_reg
3424         and allows_mem as gospel.
3425
3426 2002-04-04  Richard Henderson  <rth@redhat.com>
3427
3428         PR opt/6165
3429         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
3430         (write_dependence_p): Likewise.
3431
3432 2002-04-04  Richard Henderson  <rth@redhat.com>
3433
3434         * predict.c (estimate_bb_frequencies): Do frequency calculation
3435         with a volatile temporary.
3436
3437 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
3438
3439         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
3440
3441 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3442
3443         PR c++/6119
3444         * final.c (final_start_function): Don't bump profile_label_no here...
3445         (final_end_function): ...but here.
3446
3447 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3448
3449         * config/sparc/sparc.md (pic): New attribute.
3450         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
3451         into stack slots.
3452         (split after do_builtin_setjmp_setup): New.
3453
3454 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3455
3456         PR fortran/6106
3457         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
3458         change.
3459
3460 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3461
3462         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
3463         UNITS_PER_WORD for zero sized aggregates.
3464
3465 2002-04-03  David S. Miller  <davem@redhat.com>
3466
3467         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
3468         one-character spec for this, just use %(link_gcc_c_sequence).
3469
3470 2002-04-03  David S. Miller  <davem@redhat.com>
3471
3472         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
3473         handling.
3474
3475 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3476
3477         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
3478         (DWARF_FRAME_RETURN_COLUMN): Move.
3479         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3480         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
3481         * pa.c (except.h, predict.h): Include.
3482         (FRP): Delete.
3483         (store_reg_modify, set_reg_plus_d): Revise prototypes.
3484         (output_ascii): Add cast.
3485         (store_reg_modify): Revise to add frame notes.
3486         (set_reg_plus_d): Likewise.
3487         (compute_frame_size): Include space for eh data registers in frame if
3488         the current function calls eh_return.
3489         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
3490         function calls eh_return.  Save eh data registers if the current
3491         function calls eh_return.  Fix code to add frame notes.  Emit
3492         blockage to prevent insns with frame notes being scheduled in the
3493         delay slot of calls.
3494         (hppa_expand_epilogue): Restore eh data registers and do final stack
3495         adjustment if the current function calls eh_return.  Don't add frame
3496         notes.
3497         (output_call): Revise for change in length of call insn.  Don't do
3498         return pointer adjustment for an unconditional jump in the delay slot
3499         of a call when using frame notes.
3500         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
3501         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
3502         (ARG_POINTER_CFA_OFFSET): Define.
3503         * pa.md (return_external_pic): New pattern.
3504         (prologue): Correct formatting.  Use return_external_pic if current
3505         function calls eh_return.
3506         (call_internal_symref, call_value_internal_symref,
3507         sibcall_internal_symref, sibcall_value_internal_symref): Change default
3508         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
3509         respectively.
3510         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
3511
3512         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
3513         list of targets to check using "nop" insn.
3514         * configure: Rebuilt.
3515
3516 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
3517
3518         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
3519
3520 2002-04-03  David S. Miller  <davem@redhat.com>
3521
3522         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
3523         library sequence passed to the linker.
3524         (LINK_COMMAND_SPEC): Use it.
3525         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
3526         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
3527         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
3528
3529 2002-04-03  Jason Merrill  <jason@redhat.com>
3530
3531         * except.c (struct eh_status): Remove protect_list.
3532         (begin_protect_partials, end_protect_partials): Remove.
3533         (add_partial_entry): Remove.
3534         * except.h: Remove prototypes.
3535
3536         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
3537         expand_decl_cleanup_eh.
3538
3539         PR c++/5636
3540         * tree.h (CLEANUP_EH_ONLY): New macro.
3541         * stmt.c (expand_decl_cleanup_eh): New fn.
3542         (expand_cleanups): Check CLEANUP_EH_ONLY.
3543         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
3544         Use expand_decl_cleanup_eh.
3545         (expand_stmt): Adjust.
3546         * c-common.h: Adjust prototype.
3547
3548 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
3549
3550         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
3551         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
3552         (cris_target_asm_function_epilogue): Ditto.
3553         (cris_initial_frame_pointer_offset): Ditto.
3554         (cris_simple_epilogue): Ditto.
3555         (cris_expand_builtin_va_arg): Variable-size types come in
3556         by-reference.
3557
3558 2002-04-03  David S. Miller  <davem@redhat.com>
3559
3560         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
3561         little-endian.
3562         (set_fast_math): Correct 'fsr' type.
3563
3564 2002-04-03  Richard Henderson  <rth@redhat.com>
3565
3566         PR opt/3569
3567         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
3568         * toplev.c (check_global_declarations): Use it.
3569         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
3570         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3571         (LANG_HOOKS_DECLS): Add it.
3572         * langhooks.c (lhd_warn_unused_global_decl): New.
3573         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3574         * c-objc-common.c (c_warn_unused_global_decl): New.
3575         * c-tree.h (c_warn_unused_global_decl): Declare.
3576         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3577
3578 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
3579
3580         * langhooks-def.h (lhd_set_decl_assembler_name,
3581         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3582         (LANG_HOOKS_INITIALIZER): Update.
3583         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
3584         * langhooks.h (struct lang_hooks): New hook.
3585         * tree.c (set_decl_assembler_name): Move to langhooks.c.
3586         (lang_set_decl_assembler_name): Remove.
3587         (init_obstacks): Don't set hook.
3588         (decl_assembler_name): New function.
3589         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
3590         (decl_assembler_name): New.
3591         (lang_set_decl_assembler_name): Remove.
3592
3593 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3594
3595         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
3596         works properly with .hidden symbols.
3597         * configure: Rebuilt.
3598         * config.in: Rebuilt.
3599         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
3600         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
3601         properly with .hidden symbols.
3602
3603 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3604
3605         PR middle-end/6102
3606         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
3607         USE argument.
3608
3609 2002-04-03  Richard Henderson  <rth@redhat.com>
3610
3611         PR opt/4120
3612         * sched-rgn.c (sets_likely_spilled): New.
3613         (sets_likely_spilled_1): New.
3614         (add_branch_dependences): Use it.
3615
3616 2002-04-02  Richard Henderson  <rth@redhat.com>
3617
3618         PR opt/4311
3619         * loop.h (LOOP_FIRST_PASS): New.
3620         * loop.c (strength_reduce): Mind it when deciding to unroll.
3621         * toplev.c (rest_of_compilation): Set it.
3622
3623 2002-04-02  David S. Miller  <davem@redhat.com>
3624
3625         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
3626         mems_ok_for_ldd_peep when the order of the loads being examined
3627         is reversed.
3628         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
3629         existing comment to increase comprehension of this situation.
3630
3631 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
3632
3633         * config/sh/sh.md: Don't use union real_extract.
3634
3635 2002-04-02  Richard Henderson  <rth@redhat.com>
3636
3637         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
3638
3639 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3640
3641         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
3642         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
3643         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
3644         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
3645         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
3646         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
3647         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
3648         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3649         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3650         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3651         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3652         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3653         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3654         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3655         Include as many configury headers via tm_file as possible.  This
3656         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3657         * config/openbsd-oldgas.h: New file.
3658         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3659         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3660         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3661         config/i386/i386-coff.h, config/i386/i386-interix.h,
3662         config/i386/iscdbx.h, config/i386/linux-aout.h,
3663         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3664         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3665         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3666         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3667         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3668         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3669         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3670         config/i386/vxi386.h: Do not directly include configury headers.
3671         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3672         Directly include configury headers that are no longer automatically
3673         included by the above headers.
3674         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3675         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3676         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3677         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3678         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3679         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3680         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3681         (TARGET_VERSION): Define.
3682         * config/i386/beos-elf.h, config/i386/freebsd.h,
3683         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3684         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3685         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3686         config/i386/sco5.h, config/i386/sysv4.h
3687         (TARGET_VERSION): Do not need to protect.
3688         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3689         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3690         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3691         config/i386/i386-interix.h, config/i386/linux-aout.h,
3692         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3693         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3694         (YES_UNDERSCORES): Do not define - not needed.
3695         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3696         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3697         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3698         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3699         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3700         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3701         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3702         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3703
3704 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3705             Richard Henderson  <rth@redhat.com>
3706
3707         PR c/5484
3708         * function.c (assign_temp): Accept either type or decl argument.
3709         Detect variables whose size is too large to fit into an integer.
3710         * stmt.c (expand_decl): Pass the decl, not the type.
3711
3712 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3713
3714         * protoize.c: Match include directory usage with cppdefault.c.
3715
3716 2002-04-03  Jeffrey A Law  (law@redhat.com)
3717             Hans-Peter Nilsson  <hp@bitrange.com>
3718
3719         * combine.c (simplify_comparison): Avoid narrowing a comparison
3720         with a paradoxical subreg when doing so would drop signficant bits.
3721
3722 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3723
3724         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3725         if POINTERS_EXTEND_UNSIGNED is defined.
3726
3727 2002-04-02  Richard Henderson  <rth@redhat.com>
3728
3729         PR opt/3967
3730         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3731         replace regs.
3732
3733 2002-04-02  Richard Henderson  <rth@redhat.com>
3734
3735         * doc/standards.texi: Document required freestanding libc entry points.
3736
3737 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3738
3739         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3740         associated splitter.  Remove MQ constraint.
3741         (ctrdi_internal4): Correct CCmode clobber.
3742
3743 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3744
3745         * milli64.S ($$dyncall): New function.
3746         * t-linux (LIB1ASMFUNCS): Revise module list.
3747         (LIB1ASMSRC): Use pa/milli64.S.
3748
3749 2002-04-02  Richard Henderson  <rth@redhat.com>
3750
3751         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3752         rename solaris_sys_varargs_h.
3753
3754 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3755
3756         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3757         the same mode as its component.
3758
3759 2002-04-02  Richard Henderson  <rth@redhat.com>
3760
3761         PR opt/190
3762         * final.c (this_is_asm_operands): Export.
3763         * output.h (this_is_asm_operands): Declare.
3764         * config/i386/i386.c (print_operand): Error odd asm operands.
3765
3766 2002-04-02  Richard Henderson  <rth@redhat.com>
3767
3768         PR opt/420
3769         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3770
3771 2002-04-01  Richard Henderson  <rth@redhat.com>
3772
3773         PR target/1538
3774         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3775         * fixinc/fixincl.x: Rebuild.
3776
3777 2002-04-01  Richard Henderson  <rth@redhat.com>
3778
3779         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3780         (atomic_alloc, atomic_free): New.
3781         (SIZE, MASK_FOR, PTR_IN): New.
3782         (emergency_reg_state, emergency_reg_state_free): New.
3783         (emergency_labeled_state, emergency_labeled_state_free): New.
3784         (reg_state_alloced, labeled_state_alloced): New.
3785         (alloc_reg_state, free_reg_state): New.
3786         (alloc_label_state, free_label_state, free_label_states): New.
3787         (push, pop, dup_state_stack, free_state_stack): Use them.
3788         (desc_label_state): Likewise.
3789         (uw_frame_state_for): Free label states and state stack.
3790         (uw_update_reg_address): Eliminate warnings.
3791
3792 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3793
3794         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3795         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3796
3797 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3798
3799         * c-decl.c (grokdeclarator): Update.
3800         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3801         * c-tree.h (c_mark_addressable): New.
3802         * c-typeck.c (default_function_array_conversion, build_unary_op,
3803         build_array_ref, convert_for_assignment): Update.
3804         (mark_addressable): Rename.
3805         * calls.c (try_to_integrate, expand_call): Use langhook.
3806         * expr.c (expand_expr): Use langhook.
3807         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3808         * langhooks.h (struct lang_hooks): New hook.
3809         * stmt.c (expand_asm_operands): Use langhook.
3810         * tree.h (mark_addressable): Remove.
3811 objc:
3812         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3813
3814 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3815
3816         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3817         in previous change.
3818
3819 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3820
3821         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3822         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3823
3824 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3825
3826         * c-common.c (unsigned_conversion_warning, convert_and_check,
3827         unsigned_type, signed_type, shorten_compare,
3828         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3829         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3830         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3831         New.
3832         * c-decl.c (grokdeclarator): Update.
3833         * c-format.c (check_format_types): Update.
3834         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3835         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3836         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3837         * convert.c (convert_to_integer): Use new hooks.
3838         * expmed.c (make_tree): Use new hooks.
3839         * expr.c (store_expr): Use new hooks.
3840         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3841         all_ones_mask_p, unextend, fold): Use new hooks.
3842         * langhooks.h (struct lang_hooks_for_types): New hooks.
3843         * tree.h (signed_or_unsigned_type, signed_type,
3844         unsigned_type): Remove.
3845 objc:
3846         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3847         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3848
3849 2002-03-31  Richard Henderson  <rth@redhat.com>
3850
3851         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3852         (desc_frgr_mem): Fix reference to f16-f31.
3853
3854 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3855
3856         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3857         RTVEC_ELT): Const-ify.
3858         * varray.h (VARRAY_CHECK): Const-ify.
3859         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3860         ggc_mark_rtvec, ggc_mark): Const-ify.
3861
3862 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3863
3864         * diagnostic.c: Include langhooks-def.h.
3865         * Makefile.in (diagnostic.o): Update.
3866
3867 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3868
3869         * c-common.c (c_unsafe_for_reeval): Rename.
3870         * c-common.h (c_unsafe_for_reeval): Rename.
3871         * c-decl.c (finish_incomplete_decl): Rename.
3872         (c_init_decl_processing): Don't set langhook.
3873         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3874         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3875         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3876         * c-tree.h (finish_incomplete_decl): Rename.
3877         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3878         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3879         (LANG_HOOKS_INITIALIZER): Update.
3880         * langhooks.c (lhd_unsafe_For_reeval): New.
3881         * langhooks.h (struct langhooks): New hooks.
3882         * toplev.c (incomplete_decl_finalize_hook): Remove.
3883         (wrapup_global_declarations): Update.
3884         * tree.c (lang_unsafe_for_reeval): Remove.
3885         (unsafe_for_reeval): Update.
3886         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3887         Remove.
3888 objc:
3889         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3890         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3891
3892 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3893
3894         * diagnostic.c (print_error_function): Remove.
3895         (default_print_error_function): Rename.
3896         (report_error_function): Update.
3897         * diagnostic.h (print_error_function): Remove.
3898         (default_print_error_function): Remove.
3899         * langhooks-def.h (struct diagnostic_context): Predeclare.
3900         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3901         (LANG_HOOKS_INITIALIZER): Update.
3902         * langhooks.h (struct diagnostic context): Predeclare.
3903         (struct lang_hooks): New hook.
3904
3905 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3906
3907         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3908         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3909         !flag_pic.
3910         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3911         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3912         of PIC_OFFSET_TABLE_REGNUM thruout.
3913         * config/rs6000/rs6000.md: Likewise.
3914         * config/rs6000/darwin.h: Likewise.
3915
3916 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3917
3918         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3919         unsigned HOST_WIDE_INT, not unsigned int.
3920
3921 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3922
3923         PR middle-end/6096, middle-end/6098, middle-end/6099
3924         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3925         CODE_LABELs.
3926         (fill_slots_from_thread): Likewise.
3927
3928 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3929
3930         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3931         floating fields in float regs.
3932         (function_arg_record_value_2): Likewise.
3933
3934 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3935
3936         * config/mmix/mmix.md (define_constants): Remove misleading
3937         FIXME.  Add MMIX_fp_rO_OFFSET.
3938         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3939         saved rO as part of the pattern.  Remove FIXME.
3940         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3941         here, at output-time.
3942
3943 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3944
3945         PR middle-end/6100
3946         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3947         REG_BR_PRED.
3948         (output_v9branch): Likewise.
3949
3950 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3951
3952         * gcc.c: Revert previous patch for now.
3953         * config/i386/djgpp.h: Likewise.
3954
3955 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3956
3957         * config/mmix/crti.asm (_init): Register _fini with atexit.
3958         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3959
3960 2002-03-31  Richard Henderson  <rth@redhat.com>
3961
3962         PR target/3997
3963         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3964         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3965
3966 2002-03-31  Richard Henderson  <rth@redhat.com>
3967
3968         * libgcc2.c (__bb_exit_func): Make static.
3969
3970         * config/alpha/alpha.md (trap): New.
3971
3972 2002-03-31  Richard Henderson  <rth@redhat.com>
3973
3974         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3975         promoted argument types; build trap.
3976         (expand_builtin_trap): New.
3977         (expand_builtin): Use it.
3978         * stmt.c (expand_nl_goto_receivers): Likewise.
3979         * expr.h (expand_builtin_trap): Declare.
3980         * libfuncs.h (LTI_abort, abort_libfunc): New.
3981         * optabs.c (init_optabs): Init abort_libfunc.
3982
3983 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3984
3985         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3986         (LINK_COMMAND_SPEC): ... from here.
3987         (init_gcc_specs): Duplicate it here too, omitting
3988         shared_name in the second copy.
3989         (init_spec): Test for duplicate
3990         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3991
3992 2002-03-30  David S. Miller  <davem@redhat.com>
3993
3994         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3995         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3996
3997 2002-03-30  Roger Sayle <roger@eyesopen.com>
3998             Richard Henderson  <rth@redhat.com>
3999
4000         * regmove.c (combine_stack_adjustments_for_block): Avoid
4001         emitting a stack adjustment of zero bytes.  Let delete_insn
4002         update bb->head.
4003
4004 2002-03-30  Richard Henderson  <rth@redhat.com>
4005
4006         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
4007         (sparc_emitting_epilogue): New.
4008         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
4009         * config/sparc/sparc-protos.h: Update.
4010         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
4011         (TARGET_SWITCHES): Update.
4012         * config/sparc/sparc.md (return): Remove.
4013         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
4014         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
4015         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
4016         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4017         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
4018         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
4019         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
4020         Remove MASK_EPILOGUE.
4021         * doc/invoke.texi: Update.
4022
4023 2002-03-30  Daniel Berlin  <dan@dberlin.org>
4024
4025         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
4026         CPP will start the file for us.
4027
4028 2002-03-30  Richard Henderson  <rth@redhat.com>
4029
4030         PR target/5446
4031         * config/ia64/ia64.c (group_barrier_needed_p): Special case
4032         prologue_allocate_stack.
4033         (ia64_single_set): Use insn codes for recognition of special
4034         cases, not rtl matching.
4035         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
4036
4037 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
4038
4039         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
4040
4041 2002-03-30  Richard Henderson  <rth@redhat.com>
4042
4043         PR target/6032
4044         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
4045         or -fomit-frame-pointer with profiling.
4046         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4047         (FUNCTION_PROFILER): Do nothing.
4048         (PROFILE_HOOK): New.
4049         * config/sparc/sparc.c (sparc_override_options): Don't check
4050         code models for profiling.
4051         (sparc_function_profiler): Remove.
4052         (sparc_profile_hook): New.
4053         * config/sparc/sparc-protos.h: Update.
4054
4055 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
4056
4057         PR optimization/6086
4058         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
4059         of SUBREG of volatile MEM or because the MEM was mode dependent,
4060         return CLOBBER instead of unmodified SUBREG.
4061
4062 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
4063
4064         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
4065         when not optimizing.
4066
4067         * toplev.c (rest_of_compilation): Cann mark_constant_function
4068         only when optimizing.
4069
4070         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
4071         are NULL.
4072
4073         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
4074         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
4075         (try_optimize_cfg): clear all AUX fields.
4076
4077         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
4078         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
4079         (ix86_address_cost): Be prepared for SUBREGed registers.
4080         (legitimate_address_p): Accept SUBREGed registers.
4081
4082 2002-03-29  Richard Henderson  <rth@redhat.com>
4083
4084         PR target/5672
4085         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
4086
4087 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4088
4089         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
4090         for aggregate and TFmode types.
4091
4092 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
4093
4094         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
4095
4096 2002-03-29  Richard Henderson  <rth@redhat.com>
4097
4098         PR target/5886
4099         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
4100         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
4101
4102 2002-03-29  Richard Henderson  <rth@redhat.com>
4103
4104         PR target/6041
4105         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
4106         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
4107         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
4108         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
4109         conditional.
4110         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
4111
4112 2002-03-29  Dale Johannesen <dalej@apple.com>
4113
4114         * loop.c (combine_movables): Do allow combination of pseudos.
4115
4116 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
4117
4118         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
4119         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
4120         No functional change except ...
4121         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
4122         * doc/install.texi (*-*-freebsd*): Document port configuration.
4123
4124 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4125
4126         * Makefile.in (convert.o, calls.o, expmed.o): Update.
4127         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
4128         Use new hooks.
4129         * builtin-types.def (BT_PTRMODE): Update.
4130         * c-common.c (type_for_size): Rename c_common_type_for_size.
4131         (type_for_mode): Similarly.
4132         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
4133         Use new hook.
4134         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
4135         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
4136         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
4137         Redefine.
4138         * c-typeck.c (common_type, comptypes, default_conversion):
4139         Use new hooks.
4140         * calls.c: Include langhooks.h.
4141         (emit_library_call_value_1): Use new hooks.  Avoid redundant
4142         calls.
4143         * convert.c: Include langhooks.h
4144         (convert_to_pointer, convert_to_integer): Use new hooks.
4145         * except.c (init_eh): Similarly.
4146         * expmed.c: Include langhooks.h.
4147         (expand_mult_add): Use new hooks.
4148         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
4149         try_casesi): Similarly.
4150         * fold-const.c (optimize_bit_field_compare, make_range,
4151         decode_field_reference, fold_truthop, fold): Similarly.
4152         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
4153         put_var_into_stack): Similarly.
4154         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
4155         LANG_HOOKS_TYPE_FOR_SIZE): New.
4156         (LANG_HOOKS_TYPES_INITIALIZER): Update.
4157         * langhooks.h (lang_hooks_for_types): New hooks.
4158         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
4159         * tree.c (get_unwidened, get_narrower): Similarly.
4160         * tree.h (type_for_mode, type_for_size): Remove.
4161         * varasm.c (force_const_mem): Use new hooks.
4162         * utils2.c (nonbinary_modular_operation): Update.
4163 objc:
4164         * objc-act.c (handle_impent): Update.
4165         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
4166         Redefine.
4167
4168 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
4169
4170         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
4171         * config/ia64/ia64.c (basereg_operand): New.
4172         * config/ia64/ia64-protos.h (basereg_operand): Declare.
4173         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
4174
4175 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
4176
4177         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
4178         unwind information when frame_pointer_needed.
4179         (mmix_assemble_integer): Tweak wording in comment.
4180
4181 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4182
4183         * Makefile.in (except.o): Update.
4184         * except.c: Include langhooks.h.
4185         (init_eh): Use langhook.
4186         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
4187         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
4188         (LANG_HOOKS_INITIALIZER): Update.
4189         * langhooks.h (lang_hooks_for_types): New.
4190         (struct lang_hooks): Add it.
4191         * tree.c (make_lang_type_fn, make_lang_type): Remove.
4192         * tree.h (make_lang_type_fn, make_lang_type): Remove.
4193 config:
4194         * alpha/alpha.c: Include langhooks.h.
4195         (alpha_build_va_list): Use langhook.
4196         * d30v/d30v.c: Include langhooks.h.
4197         (d30v_build_va_list): Use langhook.
4198         * i386/i386.c: Include langhooks.h.
4199         (ix86_build_va_list): Use langhook.
4200         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
4201         * s390/s390.c: Include langhooks.h.
4202         (s390_build_va_list): Use langhook.
4203         * stormy16/stormy16.c: Include langhooks.h.
4204         (stormy16_build_va_list): Use langhook.
4205
4206 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
4207
4208         PR c++/5964
4209         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
4210         attributes.
4211         (length): Compute variable length for branches/calls/jumps here.
4212         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
4213         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
4214         define branch_type attribute.
4215         (divsi3_sp32): Maximum length is 6 not 7.
4216         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
4217         call_address_untyped_struct_value_sp32,
4218         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
4219         * config/sparc/sparc.c (empty_delay_slot): New function.
4220         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
4221         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
4222
4223 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
4224
4225         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
4226         nonzero_bits if not needed.
4227         (nonzero_bits) [XOR]: Likewise.
4228         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
4229         reg_last_set_mode and mode are both MODE_INT, but not equal.
4230         (record_value_for_reg): Compute reg_last_set_nonzero_bits
4231         in nonzero_bits_mode for MODE_INT modes.
4232
4233 2002-03-28  Richard Henderson  <rth@redhat.com>
4234
4235         PR target/5715
4236         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
4237         to GAS.  Correct drift between alternatives.
4238
4239 2002-03-28  Richard Henderson  <rth@redhat.com>
4240
4241         PR target/6087
4242         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
4243
4244 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
4245
4246         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
4247         emulation to the linker.
4248
4249 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
4250
4251         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
4252         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
4253
4254 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
4255
4256         * combine.c (simplify_and_const_int): Make sure to apply mask
4257         when force_to_mode returns a constant integer.  PR3311.
4258
4259 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4260
4261         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
4262
4263 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4264
4265         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
4266         and Objective-C Dialect Options.
4267
4268 2002-03-28  Richard Henderson  <rth@redhat.com>
4269
4270         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
4271         comparison should be done vs !=0 not >0 return code.  Tidy cases.
4272
4273 2002-03-28  Richard Henderson  <rth@redhat.com>
4274
4275         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
4276         on to c_expand_body.
4277         * c-tree.h (finish_function): Update decl.
4278         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
4279
4280 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4281
4282         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
4283
4284 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
4285
4286         * rtlanal.c: Include flags.h
4287         (may_trap_p): Do not mark FP operations if trapping
4288         if !flag_trapping_math
4289         * Makefile.in (rtlanal.o): Add dependency on flag.h
4290         * ifcvt.c (noce_operand_ok): Avoid the lameness.
4291
4292 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
4293
4294         * mips.md: Use dconst1, not 1.0, as first argument of
4295         REAL_VALUE_LDEXP.  Don't use union real_extract.
4296
4297 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
4298
4299         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
4300         rather than $target.  Heed program_prefix and
4301         program_transform_name.  Search for gas in cross-compiler case too.
4302         "test -x" rather than "test -f".
4303         (gcc_cv_ld): Likewise.
4304         (gcc_cv_nm): Heed program_prefix and program_transform_name.
4305         (gcc_cv_objdump): Likewise.
4306         * configure: Regenerate.
4307
4308 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4309
4310         * Makefile.in (attribs.o): Update.
4311         * attribs.c: Include langhooks.h.
4312         (decl_attributes): Use langhook.
4313         * c-decl.c (insert_default_attributes): Rename.
4314         * c-tree.h (c_insert_default_attributes): New.
4315         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
4316         (LANG_HOOKS_INITIALIZER): Update.
4317         * langhooks.h (struct lang_hooks): New hook.
4318         * tree.h (insert_default_attributes): Remove.
4319 objc:
4320         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
4321
4322 2002-03-27  Andreas Schwab  <schwab@suse.de>
4323
4324         * config/i386/i386.c (classify_argument): Also check for
4325         QUAL_UNION_TYPE.
4326
4327 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4328
4329         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
4330         any more.
4331
4332 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4333
4334         * i960.md (ret): Set PC.
4335         (nonlocal_goto): Fix expander.
4336         * builtins.c (epxand_builin_longjmp): Check that we've emitted
4337         some jump or call.
4338
4339 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
4340
4341         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
4342         of libcall regions.
4343
4344 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4345
4346         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
4347         assigning to BLOCK_FOR_INSN directly.
4348
4349 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
4350
4351         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
4352
4353 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4354
4355         * c-common.c (c_expand_expr): Fix prototype.
4356         * c-common.h (c_expand_expr): Always declare, update.
4357         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4358         * c-objc-common.c (c_objc_common_init): No global hook.
4359         * expr.c (expand_expr): Use langhook.
4360         * expr.h (enum expand_modifier): Conditionally declare.
4361         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
4362         (LANG_HOOKS_INITIALIZER): Update.
4363         * langhooks.c (lhd_expand_expr): New.
4364         * langhooks.h (struct lang_hooks): New hook.
4365         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
4366         (lang_independent_init): Don't default hook.
4367 objc:
4368         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4369
4370 2002-03-27  Richard Henderson  <rth@redhat.com>
4371
4372         PR target/6054
4373         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
4374         TARGET_CONST_GP.  Simplify conditions.
4375
4376 2002-03-27  Richard Henderson  <rth@redhat.com>
4377
4378         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4379         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
4380         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
4381
4382 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
4383
4384         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
4385         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
4386         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
4387         Remove unnecessary masks.
4388         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
4389         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
4390         -mwindows, -mdll switches and their negations.
4391
4392 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4393
4394         * gcc-common.c (lang_mark_false_label_stack): Remove.
4395         * ggc.h (lang_mark_false_label_stack): Similarly.
4396
4397 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
4398
4399         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
4400
4401         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
4402         or __rtems_ is defined.
4403
4404 2002-03-26  Richard Henderson  <rth@redhat.com>
4405
4406         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
4407         if a non-trivial load was emitted.
4408         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
4409         in high+extra+low case.
4410
4411 2002-03-26  Richard Henderson  <rth@redhat.com>
4412
4413         * config.gcc (sparc*-solaris): Use float_format=sparc.
4414
4415 2002-03-26  Richard Henderson  <rth@redhat.com>
4416
4417         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
4418         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
4419         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
4420         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
4421         (WINT_TYPE_SIZE): Fix at 32.
4422
4423 2002-03-26  Richard Henderson  <rth@redhat.com>
4424
4425         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
4426         until after eh landing pad generation.
4427         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
4428         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
4429
4430 2002-03-26  Richard Henderson  <rth@redhat.com>
4431
4432         * expr.h (ADD_PARM_SIZE): One more convert for INC.
4433
4434 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
4435
4436         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
4437         and warning switches.
4438         (cc1_options):  Likewise.
4439
4440 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
4441
4442         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
4443         Restore more of the signal context.  Set no_reg_stack_frame.
4444         * config/ia64/unwind-ia64.c (unw_state_record):
4445         Add no_reg_stack_frame, comments.
4446         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
4447         (uw_update_context): Adjust bsp when unwinding from leaf,
4448         but not signal frame.
4449
4450 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
4451
4452         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
4453
4454 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
4455
4456         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
4457
4458 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
4459
4460         PR target/5621
4461         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
4462         "Add a pool_range attribute", which was lost during the ARM/Thumb
4463         merge.
4464
4465 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
4466
4467         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
4468         a register into the MAC16 accumulator.
4469
4470 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
4471
4472         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
4473         (Warning Options): Document -Wswitch-enum.
4474         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
4475         -Wswitch.
4476         (warn_switch_enum): Define variables.
4477         * flags.h (warn_switch_enum): Declare variables.
4478         * stmt.c (expand_end_case_type): When warn_switch_enum /
4479         -Wswitch-enum, perform switch checks.
4480         Fix PR c/5044.
4481
4482 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
4483
4484         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
4485         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
4486         (reload_muladdsi_compare0_scratch): Delete.
4487
4488 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
4489
4490         * doc/install.texi (*-*-freebsd*): Update.
4491
4492 2002-03-26  Richard Henderson  <rth@redhat.com>
4493
4494         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
4495         (SUB_PARM_SIZE): Cast DEC to ssizetype.
4496
4497         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
4498         types from the normal argument frame.
4499
4500         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
4501         variable sized objects by reference.
4502         (sparc_va_arg): Receive them by reference too.
4503
4504 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
4505
4506         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
4507         code to not restoring global registers.
4508
4509 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4510
4511         * Makefile.in (ggc-common.o): Update.
4512         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
4513         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4514         * c-tree.h (c_mark_tree): New.
4515         * ggc-common.c: Include langhooks.h.
4516         (gcc_mark_trees): Use new langhook.
4517         * ggc-callbacks.c: Delete file.
4518         * ggc.h (lang_mark_tree): Remove.
4519         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
4520         (LANG_HOOKS_INITIALIZER): Update.
4521         * langhooks.h (struct lang_hooks): New hook.
4522 objc:
4523         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4524
4525 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
4526
4527         * doc/cpp.texi: Exclude entire Top node from printed manual.
4528         Move option index after directive index.  Insert page breaks
4529         before GFDL and concept index.  Index environment variables
4530         with command line options.
4531         * doc/cppenv.texi: Use @vtable for environment variable list.
4532         Add paragraph explaining semantics of empty elements in path
4533         variables.  Exclude a cross-reference to Fishkill from the
4534         manpage.  Remove an unnecessary cross-reference of the entry
4535         right above the referer.  Don't use @anchor in text that goes
4536         into manpage.
4537         * doc/cppopts.texi: Cross-reference the environment variables
4538         section, not the specific environment variable, for consistency.
4539
4540 2002-03-25  Richard Henderson  <rth@redhat.com>
4541
4542         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
4543         anywhere in the block.  Don't refer to insns that have been
4544         removed from the chain.  Iterate backward through the new insns.
4545         Don't refer to edges that have been removed.
4546
4547 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
4548
4549         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
4550         test for overflow of constant.
4551
4552 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
4553
4554         PR target/2623
4555         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
4556         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
4557         these patterns on arm_archv4.
4558
4559 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
4560
4561         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
4562         int".
4563
4564 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
4565
4566         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
4567         float_handled, float_handler, float_signal, set_float_handler,
4568         and do_float_handler.  Set handler for SIGFPE to crash_signal.
4569         * toplev.h: Don't prototype do_float_handler.
4570
4571         * c-lex.c: Fold parse_float into lex_number.  Make warning
4572         about portability of hex float constants more informative, and
4573         don't issue it on top of a syntax error.
4574         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
4575         their callers.
4576         * real.h: Define REAL_VALUE_ABS here...
4577         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
4578         simplify_unary_real, simplify_binary_real, and
4579         simplify_binary_is2orm1 into their callers.
4580         * tree.c: Fold build_real_from_int_cst_1 into caller.
4581
4582         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
4583
4584         * tsystem.h: Include float.h here...
4585         * libgcc2.c: ... not here.
4586
4587 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
4588
4589         Fixes for: PR bootstrap/3591, target/5676
4590         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
4591         defined.  Do not disable exceptions or rtti.
4592         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
4593         mcore.h.  Disable exceptions and rtti, since they are not
4594         supported by EPOC.
4595
4596 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4597
4598         * c-decl.c (maybe_build_cleanup): Remove.
4599         * expr.c (expand_expr): Use langhook.
4600         * langhooks-def.h (lhd_return_null_tree,
4601         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
4602         (LANGHOOKS_INITIALIZER): Update.
4603         * langhooks.c (lhd_return_null_tree): New.
4604         * langhooks.h (struct lang_hooks): New hook.
4605         * tree-inline.c (initialize_inlined_parameters): Use langhook.
4606         * tree.h (maybe_build_cleanup): Remove.
4607
4608 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4609
4610         * regrename.c (build_def_use): Move recog_memoized
4611         before extract_insn.
4612
4613 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4614
4615         PR target/6043
4616         * expr.c (emit_group_store): Handle storing into CONCAT.
4617
4618 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4619
4620         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
4621         corresponding MATCH_DUP.
4622
4623 2002-03-24  Richard Henderson  <rth@redhat.com>
4624
4625         * unroll.c (unroll_loop): Zero label_map.
4626
4627         * gcse.c: Include except.h.
4628         * Makefile.in (gcse.o): Update.
4629
4630 2002-03-24  Richard Henderson  <rth@redhat.com>
4631
4632         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
4633         Do resolve_unique_section before shared data clause.
4634
4635 2002-03-24  Richard Henderson  <rth@redhat.com>
4636
4637         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
4638
4639 2002-03-24  Richard Henderson  <rth@redhat.com>
4640
4641         * recog.c (peephole2_optimize): Split blocks when EH insns are
4642         generated in the middle of a block.  Do global life update if
4643         zapped EH edges.
4644
4645 2002-03-24  Richard Henderson  <rth@redhat.com>
4646
4647         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
4648
4649 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4650
4651         preprocessor/3951
4652         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4653         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4654         (init_dependency_output): Don't make no_output decision here.
4655
4656 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4657
4658         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4659         warn_switch.  Update description.
4660         (expand_end_case_type): Call check_for_full_enumeration_handling
4661         when warn_switch.
4662
4663 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4664
4665         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4666         (m68hc11_split_move): Call it to see if the source and destination
4667         operands use the same direction auto inc/dec mode, otherwise make the
4668         source an offsetable memory operand and generate an add.
4669
4670 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4671
4672         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4673         register for operand 2.
4674         ("*subsi3_zero_extendqi"): Likewise.
4675         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4676         bits so that it is compatible with a pop.
4677         ("*andhi3_gen"): Likewise.
4678         ("xorhi3"): Likewise.
4679
4680 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4681
4682         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4683         -pedantic here...
4684         (cpp_post_options): ... not here.
4685
4686 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4687             Aldy Hernandez  <aldyh@redhat.com>
4688
4689         Removal of separate preprocessor cpp0.
4690
4691         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4692         cpp0, install-common): Update.
4693         * c-common.c (flag_preprocess_only): New.
4694         (c_common_init): Preprocess for -E.
4695         * c-common.h (flag_preprocess_only): New.
4696         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4697         * c-objc-common.c (c_init_decl_processing): Exit quickly
4698         for NULL return from c_common_init.
4699         * cpplib.h (cpp_preprocess_file): New.
4700         * cppmain.c (main, general_init, pfile, progname): Remove.
4701         (do_preprocessing): Rename cpp_preprocess_file, don't call
4702         cpp_finish.  Don't close stdout here.
4703         (setup_callbacks): Update prototype.
4704         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4705         Update.
4706         * tradcpp.c (main): Ignore -quiet.
4707 objc:
4708         * lang-specs.h (default_compilers): Preprocess with cc1obj.
4709
4710 2002-03-24  Richard Henderson  <rth@redhat.com>
4711
4712         PR optimization/5742
4713         * machmode.def: Add inner mode field to complex modes.
4714         * config/mips/mips.c (mips_function_value): Always define.  Add
4715         new argument to handle libcalls.
4716         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
4717         (FUNCTION_VALUE): Likewise.
4718         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
4719         * config/mips/mips-protos.h: Update.
4720
4721 2002-03-23  Richard Henderson  <rth@redhat.com>
4722
4723         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
4724         * config/sparc/sparc-protos.h: Update.
4725         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
4726
4727 2002-03-23  Richard Henderson  <rth@redhat.com>
4728
4729         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
4730         _start or _init begins the text segment.
4731
4732 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
4733
4734         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
4735         not HOST_WIDEST_INT.
4736         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
4737
4738 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
4739
4740         PR java/5489
4741         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
4742         operand argument to output_return_instruction.
4743         * arm.c (arm_print_operand, case 'd'): If the operand is
4744         const_true_rtx then just return.
4745         (arm_print_operand, case 'D'): If the operand is const_true_rtx
4746         then abort.
4747
4748 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
4749
4750         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
4751         (Warning Options): Document -Wswitch-default.
4752         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
4753         -Wswitch.
4754         (warn_switch_default): Define variable.
4755         (warn_switch): Update comment.
4756         * flags.h (warn_switch_default): Declare variable.
4757         (warn_switch): Update comment.
4758         * stmt.c (expand_end_case): Check for and, when
4759         warn_switch_no_default, warn of a missing default case.
4760
4761 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
4762
4763         * real.h (N): Special case 128 bit doubles.
4764
4765         * combine.c (simplify_comparison): When widening modes, ignore
4766         sign extension on CONST_INTs.
4767
4768 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4769
4770         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
4771         passed to adjust_address.  Fix comment formatting.
4772
4773
4774 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4775
4776         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4777         Always make REAL_VALUE_TYPE a struct containing an array of
4778         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
4779         big it is.  Don't declare or use union real_extract.
4780
4781         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
4782         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
4783         (print_operand), config/arm/arm.c (output_move_double),
4784         config/arm/arm.md (consttable_4, consttable_8),
4785         config/romp/romp.c (output_fpops), config/s390/s390.h
4786         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
4787         (xtensa_output_literal): Don't use union real_extract.
4788
4789         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
4790         (sfmode_constant_to_ulong), config/ns32k/merlin.h
4791         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
4792         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
4793         (PRINT_OPERAND): Don't use local version of union
4794         real_extract.
4795
4796         * config/convex/convex.c (check_float_value), config/vax/vax.c
4797         (vax_float_literal), config/m88k/m88k.md (divdf3),
4798         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
4799         config/pdp11/pdp11.c (output_move_quad): Don't do host
4800         arithmetic on target floating point quantities.
4801
4802         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
4803         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
4804
4805         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
4806         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
4807
4808         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
4809         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
4810         INFINITY.
4811         * print-rtl.c (print_rtx): Disable code which needs
4812         floating-point emulator.
4813         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
4814         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
4815         depending on HOST_FLOAT_FORMAT to be defined properly.
4816
4817         * config/1750a/1750a.c (get_double, float_label): Delete.
4818         (print_operand): Delete huge commented-out chunk.  Use
4819         REAL_VALUE_TO_DECIMAL.
4820         * config/1750a/1750a-protos.h: Delete prototypes of deleted
4821         functions.
4822         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
4823         IEEE_FLOAT_FORMAT.
4824         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
4825         Use REAL_VALUE_TO_DECIMAL as ELF version does.
4826         * config/m88k/m88k.c (real_power_of_2_operand,
4827         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
4828         real_extract out of the union; run the input through
4829         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
4830         from that into the union.
4831         * config/pdp11/pdp11.c (output_move_double): Rearrange
4832         parentheses to make automatic indenter happy.
4833
4834         * doc/tm.texi (Cross-compilation): Rename node to "Floating
4835         Point" and rewrite to describe current situation.  Also adjust
4836         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
4837         match code.
4838         * doc/rtl.texi: Adjust cross reference.
4839
4840 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4841
4842         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
4843         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
4844         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
4845         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
4846         prevent use of sp as a reload register.
4847         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
4848         non_acc_reg_operand.
4849         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
4850         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
4851         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
4852         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
4853
4854 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4855
4856         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
4857         * cpplex.c (unterminated): Delete.
4858         (parse_string): No string literal may extend over multiple
4859         lines.  Suppress the error when preprocessing assembly.
4860         * cppmain.c (scan_translation_unit): Strings are single-line.
4861
4862         * doc/cpp.texi: Update to match.
4863
4864 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4865
4866         PR optimization/5854
4867         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
4868         Shut up warnings.
4869         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
4870         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
4871         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
4872         const0 if scratch register was not allocated.
4873         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
4874         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
4875         with GEN_INT (...).
4876         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
4877         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
4878         with GEN_INT (...) everywhere.  Remove constraints in define_split
4879         patterns.
4880         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
4881         require scratch register for setting 0 into regs/non-pushable memory.
4882
4883 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4884
4885         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
4886         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
4887
4888 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
4889
4890         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
4891         * cppinit.c (cpp_create_reader):  On by default.
4892         (cpp_handle_option):  Handle -W[no-]endif-labels.
4893         (cpp_post_options):  Also enable if -pedantic.
4894         * cpplib.c (do_else):  Use it.
4895         (do_endif):  Likewise.
4896         * doc/cppopts.texi:  Document new option.
4897         * doc/invoke.texi:  Document new option.
4898
4899 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
4900
4901         * config/i386/i386.c, config/i386/i386.md: Change all occurences
4902         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
4903
4904 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4905
4906         * flow.c (calculate_global_regs_live): Clear aux fields of
4907         ENTRY and EXIT.
4908
4909 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4910
4911         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
4912         REG or MEM subregs, pass rtx * instead of rtx to it.
4913         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
4914         rtx * instead of rtx to alter_subreg.
4915         * config/m32r/m32r.c (gen_split_move_double): Likewise.
4916         * config/pj/pj.c (pj_output_rval): Likewise.
4917
4918 2002-03-22  Richard Henderson  <rth@redhat.com>
4919
4920         PR target/3177
4921         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
4922         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
4923         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
4924         (ia64_expand_prologue): Look at int_regs, not words, for number
4925         of incomming int regs.
4926
4927 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
4928
4929         * expr.c (expand_expr): A RESULT_DECL is part of a call.
4930
4931 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
4932
4933         * toplev.c (flag_loop_optimize, flag_crossjumping):
4934         New static variables.
4935         (rest_of_compilation): Conditionalize crossjumping and
4936         loop optimizer.
4937         (parse_options_and_default_flags): Default loop_optimize and
4938         crossjumping.
4939         (lang_independent_options): Add -fcrossjumping and -floop-optimize
4940         * invoke.texi (crossjumping, loop-optimize): Document.
4941
4942 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4943
4944         * real.c (eiisneg): Move outside #ifdef NANS.
4945
4946 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4947
4948         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
4949         frequencies match; avoid match on different loop depths.
4950         (try_crossjump_to_bb): Kill tests that no longer brings time
4951         savings.
4952         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
4953         updating code.
4954         (split_edge): Likewise.
4955
4956         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
4957         variable.
4958
4959         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
4960         * cfgrtl.c: Include insn-config.h
4961         (split_block) Dirtify block in presence of conditional execution
4962
4963 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4964
4965         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
4966         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
4967         (function_arg): Constify CUMULATIVE_ARGS.
4968         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
4969         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
4970         (UNITS_PER_DOUBLE): New macro.
4971         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
4972         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
4973         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
4974         fp_regs and stack_words.
4975         (EABI_FLOAT_VARARGS_P): New macro.
4976         * config/mips/mips.c (struct mips_arg_info): New.
4977         (mips_arg_info): New function.
4978         (function_arg_advance): Use it.  Add adjustment instructions here
4979         rather than in function_arg.
4980         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
4981         for VOIDmode at the beginning of the function.
4982         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
4983         (function_arg_pass_by_reference): Likewise.
4984         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
4985         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
4986         (mips_va_start): Likewise.  Use the new stack_words field of
4987         CUMULATIVE_ARGS to set up overflow area.  Reformat.
4988         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
4989         doubles and other types, aligning the overflow pointer for non-doubles
4990         too.  Remove some code duplication.  Replace hard-coded constants.
4991
4992 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4993
4994         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
4995         (CLASS_UNITS): Undefine.
4996         (CLASS_MAX_NREGS): Use FP_INC.
4997         * config/mips/mips.c (compute_frame_size): Likewise.
4998         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
4999
5000 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5001
5002         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
5003         prototype, and handle lexing numbers and identifiers.
5004         (parse_identifier): Update to new form of parse_slow.
5005         (parse_number): Fast path only, use parse_slow otherwise.
5006         (_cpp_lex_direct): Update calls to parse_number.
5007
5008 2002-03-21  DJ Delorie  <dj@redhat.com>
5009
5010         * bb-reorder.c (make_reorder_chain_1): Protect against
5011         when redundant edges are omitted.
5012         * predict.c (dump_prediction): Likewise.
5013
5014 2002-03-21  Richard Henderson  <rth@redhat.com>
5015
5016         PR target/5996
5017         * fixinc/inclhack.def (solaris_stdio_tag): New.
5018         * fixinc/fixincl.x: Regenerate.
5019
5020 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
5021
5022         PR c/5597
5023         * c-typeck.c (process_init_element): Flag non-static
5024         initialization of a flexible array member as illegal.
5025
5026 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
5027
5028         * config/rs6000/t-linux64: New.
5029         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
5030         t-ppccomm.  Use t-rs6000 and t-linux64.
5031         (powerpc64-*-gnu* <tmake_file>): Likewise.
5032         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
5033         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
5034         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
5035
5036 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
5037
5038         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
5039         flag_really_no_inline instead of optimize == 0.
5040
5041         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
5042
5043         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
5044
5045         * flags.h (flag_really_no_inline): New.
5046
5047         * c-common.c (c_common_post_options): Initialize
5048         flag_really_no_inline.
5049
5050         * toplev.c (flag_really_no_inline): New.
5051
5052 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
5053
5054         * config/avr/avr.md (length): Fix length computation for
5055         conditional branches.
5056
5057 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5058
5059         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
5060         sdbout.o, profile.o): Update.
5061         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
5062         langhook.
5063         * c-common.h (gettags): Move here from tree.h.
5064         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
5065         insert_block, getdecls, kept_level_p, global_bindings_p): New.
5066         * dbxout.c (dbxout_init): Use getdecls langhook.
5067         * expr.c (expand_expr): Use insert_block langhook.
5068         * fold-const.c: Include langhooks.h.
5069         (fold_range_test, fold_binary_op_with_conditional_arg,
5070         fold): Use global_bindings_p langhook.
5071         * integrate.c (expand_inline_function): Use insert_block langhook.
5072         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
5073         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
5074         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
5075         LANG_HOOKS_GETDECLS): New.
5076         (LANG_HOOKS_INITIALIZER): Update.
5077         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
5078         langhook.
5079         * langhooks.h (struct lang_hooks_for_decls): New.
5080         (struct lang_hooks): Update.
5081         * profile.c: Include langhooks.h.
5082         (output_func_start_profiler): Use new langhooks.
5083         * sdbout.c: Include langhooks.h.
5084         (sdbout_init, sdbout_finish): Use getdecls langhook.
5085         * stmt.c: Include langhooks.h.
5086         (expand_fixup, fixup_gotos): Use new langhooks.
5087         * stor-layout.c: Include langhooks.h.
5088         (variable_size): Use global_bindings_p langhook.
5089         * toplev.c (compile_file): Use getdecls langhook.
5090         * tree-inline.c (remap_block): Use insert_block langhook.
5091         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
5092         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
5093
5094 2002-03-21  Richard Henderson  <rth@redhat.com>
5095
5096         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
5097         constants in .data when -fpic.
5098
5099 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5100
5101         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
5102         where appropriate.
5103
5104 2002-03-21  Tom Tromey  <tromey@redhat.com>
5105
5106         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
5107
5108 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5109
5110         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
5111
5112         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
5113
5114 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
5115             Richard Henderson  <rth@redhat.com>
5116
5117         PR c/5354
5118         * c-common.c (c_expand_expr): Preserve result of a statement
5119         expression if needed.
5120
5121 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
5122
5123         PR bootstrap/4195
5124         * genrecog.c (maybe_both_true_mode): Remove.
5125         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
5126         * machmode.def (Pmode): Likewise.
5127
5128 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
5129
5130         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
5131         (nonlocal_mentioned_p_1): New function.
5132         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
5133         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
5134         (mark_constant_function): Recognize pure functions.
5135         * rtl.h (global_reg_mentioned_p): New prototype.
5136         * rtlanal.c (global_reg_mentioned_p,
5137         global_reg_mentioned_p_1): New function.
5138
5139 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5140
5141         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
5142         UNIX assert.h.
5143         * fixinc/fixincl.x: Regenerate.
5144
5145 2002-03-20  Jason Merrill  <jason@redhat.com>
5146
5147         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
5148
5149 2002-03-20  Michael Meissner  <meissner@redhat.com>
5150
5151         * doc/invoke.texi (Optimize Options): Document that -O2 sets
5152         -fstrict-aliasing.
5153
5154 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
5155
5156         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
5157         ".literal_position" directive before the constant pool.
5158
5159 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5160
5161         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
5162         Add Craig Rodrigues.
5163         Add Brad Lucier to testers.
5164
5165 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
5166
5167         PR target/4792
5168         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
5169         to if_then_else.
5170         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
5171         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
5172         instead of insn_extract.
5173
5174 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
5175
5176         PR bootstrap/4192
5177         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
5178
5179         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
5180         stmt if some case has been output.
5181
5182 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
5183
5184         PR c/5972
5185         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
5186         movsfcc_1, movdfcc_1): Add %O2.
5187         * config/i386/i386.c (print_operand): Handle %ON.
5188         Print . before float condition codes in Sun as cmov syntax.
5189         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
5190         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
5191         no longer true.
5192
5193 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
5194
5195         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
5196         return instruction if PC was popped.
5197
5198 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
5199
5200         * config/xtensa/xtensa.md: Remove unused type attributes.
5201         (adddi_carry, subddi_carry): Change type attribute to "multi".
5202
5203 2002-03-19  Dale Johannesen  <dalej@apple.com>
5204
5205         PR optimization/5999, middle-end/5731
5206         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
5207         multiplications by reciprocals.
5208
5209 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5210
5211         * Makefile.in: Update.
5212         * c-common.c: Include langhooks.h.
5213         (inline_forbidden_p): Use new hook.
5214         * diagnostic.c: Include langhooks.h.
5215         (format_with_decl, announce_function,
5216         default_print_error_function): Use new hook.
5217         * dwarf2out.c (dwarf2_name): Use new hook.
5218         * function.c: Include langhooks.h.
5219         (init_function_start): Use new hook.
5220         * langhooks-def.h (lhd_decl_printable_name): New.
5221         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
5222         (LANGHOOKS_INITIALIZER): Update.
5223         * langhooks.c (lhd_decl_printable_name): New.
5224         * langhooks.h (struct lang_hooks): New hook.
5225         * toplev.c (decl_name, decl_printable_name): Remove.
5226         (open_dump_file): Use new hook.
5227         (process_options): Remove old hook.
5228         * tree.h (decl_printable_name): Remove.
5229 objc:
5230         * objc-act.c (objc_init): Remove old hook.
5231         (objc_printable_name): Export.
5232         * objc-act.h (objc_printable_name): New.
5233         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
5234
5235 2002-03-19  Jim Blandy  <jimb@redhat.com>
5236
5237         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
5238         the start_source_file debug hook, not the current line number.
5239
5240 2002-03-19  Richard Henderson  <rth@redhat.com>
5241
5242         * flow.c (EH_USES): Provide default.
5243         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
5244         * doc/tm.texi (EH_USES): New.
5245
5246         * config/ia64/ia64.c (ia64_eh_uses): New.
5247         * config/ia64/ia64-protos.h: Update.
5248         * config/ia64/ia64.h (EH_USES): New.
5249
5250 2002-03-19  Richard Henderson  <rth@redhat.com>
5251
5252         * varasm.c (output_constant_def): Fix stupid typo.
5253
5254 2002-03-19  Richard Henderson  <rth@redhat.com>
5255
5256         PR 5879
5257         * except.c (current_function_has_exception_handlers): New.
5258         * except.h: Declare it.
5259         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
5260         Combine tests that disable all sibcalls for the function.
5261
5262 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
5263
5264         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
5265         for INTEGER_CST.
5266
5267 2002-03-19  Richard Henderson  <rth@redhat.com>
5268
5269         PR 5977, 5991
5270         * config/ia64/ia64.c: Revert 2002-03-01 patch.
5271         * config/ia64/ia64.h (INIT_EXPANDERS): New.
5272
5273 2002-03-19  Jim Blandy  <jimb@redhat.com>
5274
5275         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
5276         name, even if the replacement list contains no tokens, as required
5277         by Dwarf.
5278
5279 2002-03-19  Jason Merrill  <jason@redhat.com>
5280
5281         * varasm.c (globalize_decl): Get the name from the RTL, not
5282         DECL_ASSEMBLER_NAME.
5283
5284         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
5285
5286 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
5287
5288         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
5289         subdi_carry): Define.
5290
5291 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
5292
5293         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
5294         about -fpic/-fPIC if extra_warnings set.
5295
5296 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
5297
5298         * expr.c (expand_expr): Sign-extend CONST_INT generated from
5299         TREE_STRING_POINTER.
5300         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
5301
5302 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5303
5304         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
5305         in favor of SP if FRAME_POINTER_REQUIRED is false.
5306
5307 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
5308
5309         * emit-rtl.c (gen_int_mode): New function.
5310         * rtl.h: Prototype for it.
5311         * combine.c (make_extraction, simplify_comparison), expmed.c
5312         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
5313         (convert_modes, store_field), optabs.c (expand_fix),
5314         simplify-rtx.c (neg_const_int, simplify_unary_real),
5315
5316         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
5317         Use it instead of GEN_INT (trunc_int_for_mode (...)).
5318
5319 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
5320
5321         PR c/5656
5322         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
5323         convert_parm_for_inlining.
5324         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
5325         Define.
5326         * langhooks-def.h: Likewise.
5327         * objc/objc-lang.c: Likewise.
5328         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
5329         function.
5330         * tree-inline.c (initialize_inlined_parameters):
5331         Call convert_parm_for_inlining lang hook if needed.
5332         * c-typeck.c (c_convert_parm_for_inlining): New function.
5333         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
5334
5335 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
5336
5337         * calls.c (precompute_arguments): Do not assume that temporaries
5338         can be destroyed after expanding the argument.
5339         (expand_call): Likewise.
5340
5341 2002-03-15  Eric Christopher  <echristo@redhat.com>
5342
5343         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
5344         Fix register preference on last change.
5345         * config/mips/mips.c (mips_return_in_memory): New function.
5346         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
5347         * config/mips/mips-protos.h: Declare.
5348         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
5349         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
5350
5351 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
5352
5353         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
5354         a register too.
5355         (anddi3, iorsi3): Likewise.
5356
5357         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
5358         use %gprel for symbols that are going to be placed in linkonce
5359         sections.
5360
5361         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
5362         RETURN_ADDRESS_POINTER_REGNUM to $ra.
5363         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
5364         not needed.  Disregard leaf_function_p().
5365         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
5366         mips16 frame pointer.
5367         * config/mips/mips.md (store ra): Only to small SP offsets.
5368         2001-08-22  Graham Stott  <grahams@redhat.com>
5369         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
5370         return a REG rtx for the return address register.
5371
5372 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
5373
5374         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
5375         constant-pool addresses as "mode-dependent".
5376         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
5377
5378 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
5379
5380         PR target/5740
5381         * expr.c (emit_group_load): Use extract_bit_field if
5382         needed for CONCAT arguments.
5383
5384 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
5385
5386         PR target/4863
5387         * arm.md (tablejump): Make this a define_expand.  For PIC add the
5388         offset to the base of the table.
5389         (thumb_tablejump): Matcher for Thumb tablejump insn.
5390         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
5391         as the difference of two labels.
5392         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
5393         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
5394         tables in the code.
5395         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
5396         * arm.c (get_jump_table_size): If the table is not in the text
5397         section, return zero.
5398
5399 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
5400
5401         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
5402         of gen_rtx_SUBREG.
5403         (arm_reload_out_hi): Use gen_lowpart instead of
5404         gen_rtx_SUBREG to access QImode components.
5405         * config/arm/arm.md: Disable zero_extend split for QImode
5406         subregs in BIG_ENDIAN mode.
5407         (storehi_bigend): Match use of least significant byte.
5408         (storeinthi): Remove extraneous SUBREG.
5409         Add missing construction of operands[2].
5410         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
5411         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
5412         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
5413
5414 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
5415
5416         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
5417         any_operand.
5418
5419 2002-03-17  Richard Henderson  <rth@redhat.com>
5420
5421         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
5422         explicitly.
5423
5424 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
5425
5426         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
5427         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
5428
5429 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5430
5431         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
5432
5433         * predict.c (estimate_bb_frequencies): Delete unused variables.
5434
5435 2002-03-17  Richard Henderson  <rth@redhat.com>
5436
5437         * config/ia64/ia64.c (ia64_attribute_table): Move before
5438         targetm definition.  Make static.
5439
5440 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5441
5442         * c-common.h (yyparse, c_common_parse_file): New.
5443         * c-lang.c: Include c-common.h.
5444         (LANG_HOOKS_PARSE_FILE): Redefine.
5445         * c-lex.c: Include c-common.h.
5446         (yyparse): Rename c_common_parse_file.  Call yyparse.
5447         * c-parse.in (yyparse): Remove macro.
5448         * c-tree.h (yyparse_1): Remove.
5449         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
5450         (LANG_HOOKS_INITIALIZER): Update.
5451         * langhooks.h (struct lang_hoooks): New hook parse_file.
5452         * toplev.c (compile_file): Use parse_file hook.
5453         * tree.h (yyparse): Remove.
5454         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5455
5456 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
5457
5458         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
5459         float_truncate, not fix.
5460         ("*truncdfsf2_real"): Ditto.
5461         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
5462
5463         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
5464
5465 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
5466
5467         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
5468         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
5469         where appropriate.  Make the second reference to
5470         leaf_function_p a function call, as intended.  Reindented.
5471
5472         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
5473         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
5474
5475         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
5476         add register to non-constant into sp.
5477
5478         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
5479         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
5480         (mips16_gp_pseudo_rtx): Lose.
5481         (INIT_EXPANDERS): Deleted.
5482         * config/mips/mips.c (mips_init_machine_status): New.
5483         (mips_free_machine_status): New.
5484         (mips_mark_machine_status): New.
5485         (override_options): Set them.
5486         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
5487         (struct machine_function): ... new.  Replaced all references.
5488         (mips_add_gc_roots): Don't mark them.
5489         (embedded_pic_fnaddr_reg): New, extracted from...
5490         (embedded_pic_offset): ... here.
5491         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
5492         (movsi): Likewise.
5493
5494 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5495
5496         * cppinit.c: Revert -MD removal.
5497
5498 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5499
5500         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
5501         soft registers by default for 68HC12.
5502         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
5503         when compiling with -fomit-frame-pointer.
5504         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
5505         (expand_epilogue): Likewise.
5506         (m68hc11_gen_rotate): Use exg when rotating by 8.
5507
5508 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5509
5510         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
5511         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
5512         (splits): Remove unused add splits.
5513         ("*addhi3_68hc12"): Tune constraints.
5514         ("addhi_sp"): Try to use X instead of Y in all cases and if the
5515         constant fits in 8-bits and D is dead use abx/aby instructions.
5516         ("*addhi3"): Remove extern declaration of ix_reg.
5517         ("*subsi3"): Optimize and provide new split.
5518         ("subhi3"): Cleanup.
5519         ("*subhi3_sp"): Avoid saving X if we know it is dead.
5520         (arith splits): For 68hc12 save the address register on the stack
5521         and do the arithmetic operation with a pop.
5522
5523 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5524
5525         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
5526         allocating QImode in address registers.
5527         ("*movqi_m68hc11"): Likewise.
5528
5529 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
5530
5531         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
5532
5533 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5534
5535         * cppinit.c (print_help): Display -MD and -MMD.
5536         Don't display usage string.  Update assertion syntax and
5537         typo.
5538         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
5539         (cpp_handle_option): Update.
5540
5541 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
5542
5543         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
5544         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
5545         and define it so that regardless of target CPU size,
5546         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
5547         of "int" rather than "long."
5548
5549 2002-03-15  Richard Henderson  <rth@redhat.com>
5550
5551         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
5552         size as a tree.
5553
5554 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5555
5556         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
5557         ("tstqi" split): Avoid using memory for tstqi on address register.
5558         (splits): Remove constraints.
5559         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
5560         ("cmpdf", "cmpsf"): Remove since not used.
5561         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
5562         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
5563
5564 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5565
5566         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
5567         ("neghi2"): Tighten constraints.
5568         ("one_cmplsi2"): Optimize and simplify split.
5569         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
5570
5571 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5572
5573         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
5574         and split of AND operation to clear the upper bits.
5575         ("*logicalsi3_zextqi"): Likewise.
5576         ("*logicallhi3_zexthi_ashift8"): Likewise.
5577         ("*logicalsi3_silshr16"): Likewise.
5578         ("logicalsi3_silshl16"): Likewise.
5579         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
5580
5581 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5582
5583         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
5584         (m68hc11_indirect_p): New function.
5585         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
5586         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
5587         TARGET_M6812.
5588         (asm_print_register): Likewise.
5589         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
5590         (m68hc11_indirect_p): Declare.
5591         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
5592         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
5593         (TARGET_SWITCHES): New option -mrelax.
5594         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
5595         destination.
5596         ("iorsi3", "xorsi3"): Likewise.
5597         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
5598         ("*andhi3_mem"): New to handle destination in memory with bclr
5599         and a scratch register.
5600         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
5601         ("*andhi3_const"): New when operand2 is constant.
5602         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
5603         ("*andhi3_gen"): Cleanup of the old "andhi3".
5604         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
5605         ("xorqi3"): Update constraints.
5606
5607 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5608
5609         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
5610         for reg_equiv_memory_loc when the operand is a register that does
5611         not get a hard register (stack location).
5612         (tst_operand): After reload, accept all memory operand.
5613         (symbolic_memory_operand): Fix detection of symbolic references.
5614         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
5615         accept symbols and any constant.
5616
5617 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5618
5619         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
5620         note on the insn that sets the soft frame register.
5621         (must_parenthesize): ix and iy are also reserved names.
5622         (print_operand_address): One more place where parenthesis are required
5623         to avoid confusion with register names.
5624         (m68hc11_gen_movhi): Allow push of stack pointer.
5625         (m68hc11_check_z_replacement): Fix handling of parallel with a
5626         clobber.
5627         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
5628         the replacement register is.
5629         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
5630         and D8_REGS classes.
5631         (MODES_TIEABLE_P): All modes are tieable except QImode.
5632
5633 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5634
5635         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
5636         (___subdi3): Likewise.
5637         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
5638         (__map_data_section): Optimize 68hc11 case.
5639
5640 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5641
5642         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
5643         than a shift to avoid adding a register with itself.
5644         (m68hc11_memory_move_cost): Take into account NO_REGS.
5645         (m68hc11_register_move_cost): Update and use memory move cost
5646         for soft registers.
5647         (m68hc11_address_cost): Make cost of valid offset not 0 so that
5648         it gives more opportunities to cse to optimize.
5649         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
5650         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
5651
5652 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
5653
5654         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
5655         * c-common.def (CLEANUP_STMT): New tree node.
5656         * c-common.h (CLEANUP_DECL): New macro.
5657         (CLEANUP_EXPR): Likewise.
5658         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
5659         * expr.c (expand_expr): Tidy.
5660         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
5661         * tree-inline.c (initialize_inlined_parameters): Clean up
5662         new local variables.
5663
5664 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5665
5666         PR bootstrap/4128
5667         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
5668         before movrXX only, use reg_overlap_mentioned_p.
5669         Only special case NE if just one insn can be generated.
5670
5671 2002-03-15  Jason Merrill  <jason@redhat.com>
5672
5673         * varasm.c (assemble_variable): Call resolve_unique_section before
5674         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
5675         of error_mark_node.
5676
5677 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5678
5679         PR target/5170
5680         * arm.md (split pattern for thumb shiftable immediates): Add comment
5681         explaining non-obvious test.
5682
5683 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5684
5685         PR target/5712
5686         * arm.md (movaddr, movaddr_insn): Delete.
5687
5688 2002-03-15  Jason Merrill  <jason@redhat.com>
5689
5690         * toplev.c (wrapup_global_declarations): Clarify variable handling.
5691         -fkeep-static-consts doesn't apply to comdats.
5692
5693 2002-03-14  Richard Henderson  <rth@redhat.com>
5694
5695         * c-decl.c: Include c-pragma.h.
5696         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5697         (finish_function): Tidy.
5698         * c-pragma.c: Include c-common.h.
5699         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
5700         (handle_pragma_weak): Use them.
5701         (init_pragma): Register pending_weaks.
5702         * c-pragma.h (maybe_apply_pragma_weak): Declare.
5703         * print-tree.c (print_node): Print DECL_WEAK.
5704         * varasm.c (mark_weak_decls): Remove.
5705         (remove_from_pending_weak_list): Remove.
5706         (add_weak): Remove.
5707         (asm_emit_uninitialised): Call globalize_decl for weak commons.
5708         (weak_decls): Make a tree_list.
5709         (declare_weak): Cons weak_decls directly.
5710         (globalize_decl): Remove weak_decls elements directly.
5711         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
5712         symbols.  Don't pretend to handle aliases.
5713         (init_varasm_once): Update weak_decls registry.
5714         * Makefile.in: Update dependencies.
5715
5716 2002-03-14  Richard Henderson  <rth@redhat.com>
5717
5718         PR target/5312
5719         * config/ia64/ia64.c: Include tm_p.h last.
5720         (gen_nop_type): Remove duplicate definition.
5721         (cycle_end_fill_slots): Set sched_data for second L slot.
5722         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
5723         (nop_cycles_until): Fix typos.
5724
5725 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5726
5727         PR optimization/5891
5728         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
5729
5730 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
5731
5732         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
5733           descriptors correctly.
5734
5735 2002-03-14  Michael Meissner  <meissner@redhat.com>
5736
5737         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
5738         100, allowing MAX_UNROLLED_INSNS to be overridden.
5739
5740         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
5741         --param.
5742
5743         * unroll.c (params.h): Include.
5744         (MAX_UNROLLED_INSNS): Delete, now in params.h.
5745
5746         * doc/invoke.texi (--param max-unroll-insns): Document.
5747
5748         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
5749
5750 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5751
5752         * arm.md: Fix warnings about constraints in peepholes and splits.
5753
5754 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
5755
5756         * cpphash.h (struct lexer_state): Remove line_extension member.
5757         * cpplib.c (dequote_string, do_linemarker): New functions.
5758         (linemarker_dir): New data object.
5759         (DIRECTIVE_TABLE): No longer need to interpret #line in
5760         preprocessed source.  Delete obsolete comment about return
5761         values of handlers.
5762         (end_directive, directive_diagnostics, _cpp_handle_directive):
5763         Don't muck with line_extension.
5764         (directive_diagnostics): No need to issue warnings for
5765         linemarkers here.
5766         (_cpp_handle_directive): Issue warnings for linemarkers here,
5767         when appropriate.  Dispatch linemarkers to do_linemarker, not
5768         do_line.
5769         (do_line): Code to handle linemarkers split out to do_linemarker.
5770         Convert escape sequences in filename argument, both places.
5771
5772         * cppmacro.c (quote_string): Rename cpp_quote_string and
5773         export.  All callers changed.
5774         * cpplib.h (cpp_quote_string): Prototype.
5775         * cppmain.c (print_line): Call cpp_quote_string on to_file
5776         before printing it.
5777
5778         * doc/cpp.texi: Document that escapes are now interpreted in
5779         #line and in linemarkers, and that non-printing characters are
5780         converted to octal escapes when linemarkers are generated.
5781
5782 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5783
5784         * emit-rtl.c (try_split): Use delete_insns.
5785         * recog.c (split_all_insns): Fix terminating condition.
5786
5787 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5788             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5789
5790         PR target/5828
5791         * arm.c (arm_output_epilogue): Fix floating-point register save
5792         adjustment when using a frame pointer.
5793
5794 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
5795
5796         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
5797         * config/mips/mips.c (compute_frame_size): Retrofit them here.
5798         (save_restore_insns, mips_expand_epilogue): And here.
5799         (build_mips16_call_stub): And here.
5800         (mips_function_value): Use the new macros to decide whether a single
5801         or complex float can be returned in floating-point registers.  Return
5802         a parallel rtx in the complex case.
5803
5804 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5805
5806         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
5807         call after liveness analysis.
5808
5809         * recog.c (split_insn): Use delete_insn_and_edges.
5810
5811         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
5812         instructions to have branch prediction notes.
5813         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
5814
5815 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
5816
5817         * configure.in: Don't pass -Wno-long-long to a ADA compiler
5818         that doesn't support it.
5819         * configure: Regenerate.
5820
5821 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5822
5823         PR target/5626
5824         * config/sparc/sparc.md (normal_branch, inverted_branch,
5825         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5826         inverted_fp_branch): Adjust calls to output_cbranch.
5827         Set length attribute.
5828         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
5829         output_v9branch.  Set length attribute.
5830         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
5831         predicates.
5832         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
5833         (output_cbranch): Likewise.  Handle far branches.
5834         (output_v9branch): Handle far branches.
5835         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
5836         Adjust prototypes.
5837         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
5838         noov_compare64_op predicates.
5839
5840 2002-03-13  Jason Merrill  <jason@redhat.com>
5841
5842         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
5843         into the function and constify it.
5844         * gthr-dce.h, gthr-solaris.h: Likewise.
5845
5846 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
5847
5848         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
5849         * config/rs6000/rs6000.c (rs6000_va_arg): Use
5850         std_expand_builtin_va_arg if not ABI_V4.
5851
5852 2002-03-13  Jason Merrill  <jason@redhat.com>
5853
5854         * varasm.c (globalize_decl): New fn.
5855         (assemble_start_function): Use it.
5856         (asm_emit_uninitialized): Use it.
5857         (assemble_alias): Use it.
5858         (assemble_variable): Use it.
5859
5860 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
5861
5862         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
5863         2002-03-12 internal visibility change.
5864         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
5865         visibility into SYMBOL_REF_FLAG.
5866
5867 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
5868
5869         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
5870         VOIDmode operand.  Add compile-time optimization for constant results.
5871
5872 2002-03-12  Jason Merrill  <jason@redhat.com>
5873
5874         * c-typeck.c (convert_for_assignment): Don't allow conversions
5875         between pointers and references.  Only allow lvalues to convert to
5876         reference.
5877
5878 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
5879
5880         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
5881         before prologue, to avoid scheduling problems.
5882
5883 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5884
5885         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
5886         (ELIMINABLE_REGS): Add sfp->sp.
5887         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
5888
5889 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5890
5891         PR optimization/5892
5892         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
5893
5894 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5895
5896         * loop.c (basic_induction_var): Don't call convert_modes if mode
5897         classes are different.
5898
5899 2002-03-12  Richard Henderson  <rth@redhat.com>
5900
5901         PR optimization/5901
5902         * function.c (reposition_prologue_and_epilogue_notes): Position
5903         the markers after/before the last/first insn not deleted.
5904
5905 2002-03-12  Richard Henderson  <rth@redhat.com>
5906
5907         PR optimization/5878
5908         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
5909         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
5910         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5911
5912         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
5913         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
5914         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
5915
5916         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
5917         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
5918         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
5919         also.  Don't set it if not flag_pic.
5920         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
5921         to be INVALID_REGNUM when not used.
5922
5923 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
5924
5925         * expmed.c (store_bit_field): Reset alias set for memory.
5926         (extract_bit_field): Same.
5927
5928 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5929
5930         * c-common.c (c_tree_code_type, c_tree_code_length,
5931         c_tree_code_name, add_c_tree_codes): Delete.
5932         * c-common.h (add_c_tree_codes): Delete.
5933         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
5934         Define.
5935         * c-objc-common.c (c_objc_common_init): Don't call
5936         add_c_tree_codes, instead set lang_unsafe_for_reeval.
5937         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5938         objc_tree_code_name, add_objc_tree_codes): Delete.
5939         (objc_init): Don't call add_objc_tree_codes.
5940         * objc/objc-lang.c (tree_code_type, tree_code_length,
5941         tree_code_name): Define.
5942         * toplev.c (lang_independent_init): Don't set
5943         tree_code_length[IDENTIFIER_NODE].
5944         * tree.c (tree_code_type, tree_code_length, tree_code_name):
5945         Delete definitions, moved to language front-ends.
5946         * tree.def (IDENTIFIER_NODE): Hardwire the length.
5947         * tree.h (tree_code_type, tree_code_length, tree_code_name):
5948         Const-ify.
5949         (tree_code_length): Change type to unsigned char.
5950
5951 2002-03-12  Richard Henderson  <rth@redhat.com>
5952
5953         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
5954         internal visibility change.
5955
5956 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5957
5958         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
5959         validize_mem() instead of change_address to avoid clobbering
5960         memory attributes.
5961
5962 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5963
5964         * c-lex.h (position_after_whitespace): Remove.
5965
5966 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
5967
5968         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
5969         (lex_string): Use unsigned char pointers.
5970
5971 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5972
5973         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
5974         is not a valid memory_operand.
5975
5976 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5977
5978         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
5979         * config/xtensa/lib1funcs.asm: Fix copyright to include
5980         special case for libgcc files.
5981         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
5982         (__divsi3): Likewise.
5983         (__umodsi3): Likewise.
5984         (__modsi3): Likewise.
5985         * config/xtensa/lib2funcs.S: Fix copyright to include
5986         special case for libgcc files.
5987
5988 2002-03-12  Tom Rix  <trix@redhat.com>
5989
5990         * collect2.c (resolve_lib_name): Move outside of
5991         OBJECT_FORMAT_COFF ifdef.
5992         (ignore_library): Same.
5993
5994 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5995
5996         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
5997
5998 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5999
6000         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
6001         to function_section before writing out the constant pool.
6002
6003 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
6004
6005         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
6006         zero_constant.
6007         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
6008
6009 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
6010
6011         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
6012         (adddi3): Likewise.
6013         (movdf): Likewise.
6014         (movdi): Likewise.
6015         (cmpsi splitter): Likewise.
6016         (modsi3): Fail if <= 0.
6017         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
6018         redundant test when HOST_BITS_PER_WIDE_INT != 32.
6019         (reg_or_sub_cint64_operand): Likewise.
6020         (num_insns_constant_wide): Optimize sign extension.
6021         (rs6000_legitimize_address): Likewise.
6022
6023 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
6024
6025         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6026         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6027
6028 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
6029
6030         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
6031         address calculation.
6032
6033 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
6034
6035         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
6036         scratch register to DImode / TImode.
6037         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
6038         register used does not overlap the target.
6039
6040 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6041
6042         * Makefile.in (debug.o): Depend on debug.h.
6043         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
6044         * debug.c (do_nothing_debug_hooks): Likewise.
6045         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
6046         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
6047         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
6048         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
6049         * dwarfout.c (dwarf_debug_hooks): Likewise.
6050         * integrate.c (output_inline_function): Likewise.
6051         * objc/objc-act.c (synth_module_prologue): Likewise.
6052         * sdbout.c (sdb_debug_hooks): Likewise.
6053         * toplev.c (debug_hooks): Likewise.
6054         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6055
6056 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6057
6058         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
6059         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
6060         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
6061         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
6062         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
6063         * defaults.h (POINTER_SIZE): Define.
6064         * doc/tm.texi (POINTER_SIZE): Document default.
6065
6066 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6067
6068         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
6069
6070 2002-03-11  Richard Henderson  <rth@redhat.com>
6071
6072         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
6073         if rebuild_label_notes_after_reload.
6074
6075 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
6076
6077         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
6078         emit pic register load if "internal" visibility.
6079         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
6080         (cris_expand_builtin_va_arg): Do all computations on trees.
6081
6082 2002-03-11  Richard Henderson  <rth@redhat.com>
6083
6084         * rtlanal.c: Include recog.h.
6085         (keep_with_call_p): Fix thinko.
6086         * Makefile.in (rtlanal.o): Update dependencies.
6087
6088 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
6089
6090         * genflags.c (gen_insn): Use IS_VSPACE.
6091         * genoutput.c (output_insn_data): Likewise.
6092         (process_template): Likewise.
6093
6094 2002-03-11  Richard Henderson  <rth@redhat.com>
6095
6096         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
6097
6098 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6099
6100         * Makefile.in: Update.
6101         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
6102         Update documentation.
6103         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
6104         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
6105
6106 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
6107
6108         * Makefile.in: Give texi2pod its input file as a command line
6109         argument, not on stdin.
6110
6111 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
6112             Daniel Berlin  <dan@dberlin.org>
6113
6114         C++ alias analysis improvement.
6115         * alias.c (record_component_aliases): Record aliases for base
6116         classes too.
6117
6118 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6119
6120         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
6121
6122 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
6123
6124         * toplev.c (vms_fopen): Remove, not needed.
6125
6126         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
6127
6128         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
6129
6130         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
6131         for FP, already done later.
6132
6133         * toplev.c (debug_args): Add entry for VMS_DEBUG.
6134         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
6135
6136 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
6137
6138         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
6139         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
6140         LARGEST_EXPONENT_IS_NORMAL for the given mode.
6141         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
6142         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
6143         (ediv, emul, eldexp, esqrt): Likewise.
6144         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
6145         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
6146         (saturate): New function.
6147         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
6148         (make_nan): Use a saturation value instead of a NaN if
6149         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
6150         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
6151         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
6152         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
6153         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
6154         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
6155         !ROUND_TOWARDS_ZERO.
6156         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
6157         (ROUND_TOWARDS_ZERO): Document.
6158
6159 2002-03-11  Andreas Jaeger  <aj@suse.de>
6160
6161         * cfg.c (dump_flow_info): Remove unused variable.
6162
6163 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
6164
6165         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
6166         computations on trees.
6167
6168 2002-03-10  Richard Henderson  <rth@redhat.com>
6169
6170         PR 5693:
6171         * reload.c (copy_replacements_1): New.
6172         (copy_replacements): Use it to recurse through the rtx.
6173
6174 2002-03-10  Richard Henderson  <rth@redhat.com>
6175
6176         * loop.c (strength_reduce): Compute number of iterations as
6177         unsigned HOST_WIDE_INT.
6178
6179 2002-03-10  Richard Henderson  <rth@redhat.com>
6180
6181         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
6182         to move away from the end of the block.
6183
6184 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6185
6186         PR preprocessor/5899
6187         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
6188
6189 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6190
6191         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
6192
6193         * attribs.c (decl_attributes): Fix signed/unsigned warning.
6194
6195 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
6196
6197         * config/mmix/mmix.c: Improve comments.
6198         (mmix_target_asm_function_prologue): Drop variable
6199         empty_stack_frame.  Don't allocate unused slot above fp.
6200         (mmix_target_asm_function_epilogue): Mirror prologue changes.
6201         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
6202         brace in first column.
6203         (enum reg_class): Ditto.
6204         (FIRST_PARM_OFFSET): Now 0.
6205         (USER_LABEL_PREFIX): Remove #if 0:d definition.
6206
6207 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6208
6209         * combine.c (make_extraction): Fix error in last change.
6210
6211 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6212
6213         * c4x.c (c4x_fp_reglist): Const-ify.
6214         * cris.c (cris_print_operand): Likewise.
6215         * i386.c (ix86_va_arg): Likewise.
6216         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
6217         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
6218         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
6219         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
6220         * mcore.h (regno_reg_class): Likewise.
6221         * mips.c (gen_int_relational): Likewise.
6222         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
6223         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
6224         * pdp11.c (move_costs): Likewise.
6225         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
6226         * s390.c (s390_branch_condition_mnemonic, regclass_map):
6227         Likewise.
6228         * s390.h (regclass_map): Likewise.
6229         * sh.c (shift_amounts): Likewise.
6230         * sh.md (rotlsi3): Likewise.
6231
6232 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
6233
6234         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
6235         (ne0+5): Use new clobber to generate proper shift pattern.
6236         Patch by Michael Matz <matz@kde.org>.
6237
6238 2002-03-09  Andreas Schwab  <schwab@suse.de>
6239
6240         * gcc.c (validate_all_switches): Also handle `%W{...}'.
6241
6242 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
6243
6244         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
6245
6246 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR middle-end/5877
6249         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
6250         even for non-representable constants.
6251
6252 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6253
6254         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
6255         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
6256         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
6257         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
6258         (pop_function_context): Compute MAY_SHARE parameter for
6259         fixup_var_refs.
6260         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
6261         (gen_mem_addressof): Call fixup_var_refs with new parm.
6262
6263         * combine.c (make_extraction): Don't make extension of CONST_INT.
6264
6265 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
6266
6267         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
6268         in o32 and o64 ABIs.
6269         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
6270         but getting fixed-size structs passed in registers regardless of
6271         padding in o32 and o64 ABIs.
6272
6273         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
6274         offset before loading address of argument passed by transparent
6275         reference.
6276
6277 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6278
6279         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
6280
6281 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
6282
6283         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
6284         marker such that registers after it are saved.
6285
6286 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6287
6288         * sparc.c (arith_4096_operand): Fix error in last change.
6289
6290 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
6291
6292         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
6293         defaults for MEABI.
6294
6295 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
6296
6297         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
6298         vectors.
6299
6300 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
6301
6302         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
6303
6304 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
6305
6306         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
6307         removed; fix return value.
6308         * combine.c (combine_instructions): Dirtify blocks where we failed to
6309         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
6310         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
6311
6312 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6313
6314         * gcse.c (insert_insn_end_bb): Fix typo in last change.
6315
6316 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
6317
6318         * recog.c (peephole2_optimize): Re-distribute EH edges.
6319
6320 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6321
6322         * expr.c (expand_expr): Use unsave lang hook.
6323         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
6324         (LANG_HOOKS_INITIALIZER): Update.
6325         * langhooks.h (struct lang_hooks): New hook unsave.
6326         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
6327         (unsave_expr_1): Remove unused lang_unsave_expr_now.
6328         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
6329         (unsave_expr_now): Remove.
6330         * tree.h (unsave_expr_now, lang_unsave,
6331         lang_unsave_expr_now): Remove.
6332         (lhd_unsave): New.
6333
6334 2002-03-08  Andreas Jaeger  <aj@suse.de>
6335
6336         * flow.c (propagate_block_delete_insn): Remove unused variable.
6337
6338 2002-03-08  Kazu Hirata  <kazu@hxi.com>
6339
6340         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
6341         insn length for memory load/store.
6342
6343 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6344
6345         * doc/install.texi (--with-libiconv-prefix): Document.
6346
6347 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
6348
6349         * doc/sourcebuild.texi: Fix typo.
6350
6351 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
6352
6353         PR c/3711
6354         * builtins.c (std_expand_builtin_va_arg): Do all computations on
6355         trees.
6356
6357 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6358
6359         * rtl.c (copy_most_rtx): Move from here ...
6360         * emit-rtl.c (copy_most_rtx): ... to here.
6361
6362 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
6363
6364         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
6365         SUBTARGET_CPP_SIZE_SPEC.
6366         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
6367
6368         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
6369
6370 2002-03-07  Matt Hiller  <hiller@redhat.com>
6371
6372         * gensupport.c (first_dir_md_include): Renamed from include;
6373         change all references.
6374         (last_dir_md_include): Renamed from last_include; change all
6375         references.
6376         (init_md_reader): Unconditionally initialize base_dir whether or
6377         not filename is a relative path.
6378
6379 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
6380
6381         * config/fp-bit.c (_unord_f2): Compile it in even if
6382         US_SOFTWARE_GOFAST is enabled.
6383
6384         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
6385         NULL_RTX.  Set all HFmode operations as NULL_RTX.
6386         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
6387         NULL_RTX, try reversing the comparison and the operands.
6388
6389 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6390
6391         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
6392         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
6393         and MATCH_OP_DUP.
6394
6395 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
6396
6397         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
6398
6399 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6400
6401         * basic-block.h (fixup_abnormal_edges): Declare.
6402         * reload1.c (fixup_abnormal_edges): New function.
6403         * reg-stack.c (convert_regs): Use it.
6404
6405         * gcse.c (insert_insn_end_bb): Handle trapping insns.
6406
6407         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
6408
6409 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
6410
6411         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
6412         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
6413         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
6414         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
6415         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
6416         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
6417         unless x and y could be infinite.
6418         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
6419         Check that the common type of both arguments is a real, even for
6420         targets without unordered comparisons.  Allow an integer argument
6421         to be compared against a real.
6422         (expand_tree_builtin): Use expand_unordered_cmp.
6423         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
6424         * cse.c (fold_rtx): Likewise.  Fix indentation.
6425         * fold-const.c (fold_real_zero_addition_p): New.
6426         (fold): Use it, and the new HONOR_... macros.
6427         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
6428         * jump.c (reversed_comparison_code_parts): After searching for
6429         the true comparison mode, use HONOR_NANS to decide whether it
6430         can be safely reversed.
6431         (reverse_condition_maybe_unordered): Remove IEEE check.
6432         * simplify-rtx.c (simplify_binary_operation): Use the new macros
6433         to decide which simplifications are valid.  Allow the following
6434         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
6435         and (a - -b) to (a + b).
6436         (simplify_relational_operation): Use HONOR_NANS.
6437         * doc/tm.texi: Document the MODE_HAS_... macros.
6438
6439 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
6440
6441         * combine.c (simplify_comparison): If simplifying a logical shift
6442         right and compare with constant, force the comparison to unsigned.
6443
6444 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
6445
6446         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
6447
6448         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
6449         -mabi=no-altivec
6450         (alt_reg_names): Remove % for vrsave.
6451
6452 2002-03-06  Richard Henderson  <rth@redhat.com>
6453
6454         PR optimization/5844
6455         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
6456         if used indicates we've already emitted one copy of an operand.
6457         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
6458         (gen_split): Supply a non-null used.
6459
6460 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6461
6462         * reload1.c (reload): Unshare all rtl after reload is done.
6463
6464         * simplify-rtx.c (simplify_plus_minus): Do not abort,
6465         but simply fail if the expression is too complex to simplify.
6466         (simplify_gen_binary): Handle simplify_plus_minus failures.
6467
6468 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
6469
6470         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
6471         consistently call delete_trivially_dead_insns after CSE and GCSE;
6472         fix DFI_life dumping; do jump threading after liveness; do crossjumping
6473         after liveness2; update comment in last crossjumping.
6474         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
6475
6476 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
6477
6478         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
6479         after completing fast dead code elimination.
6480
6481         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
6482         COMPARE operator.
6483
6484 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
6485
6486         * version.c:  Fix misplaced leading blanks on first line.
6487
6488 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
6489
6490         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
6491
6492 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
6493
6494         * cfgcleanup.c (mentions_nonequal_regs): New function.
6495         (thread_jump): Use it.
6496         * toplev.c (rest_of_compilation): Run jump threading after
6497         liveness.
6498
6499 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
6500
6501         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
6502         patch.
6503
6504 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6505
6506         * predict.c (estimate_bb_frequencies): Do not reload the
6507         frequencies from notes.
6508
6509 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
6510
6511         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
6512         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
6513
6514         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
6515         delete_noop_moves): Return indeger.
6516         * flow.c (ndead): New variable.
6517         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
6518         BB argument; update callers.
6519         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
6520         (life_analysis): Do not call purge_all_dead_edges.
6521         (update_life_info): Return number of deleted insns; print statistics.
6522         (update_life_info_in_dirty_blocks): likewise.
6523         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
6524         return number of insns deleted.
6525
6526         * cse.c: Include timevar.h
6527         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
6528         iterate until stabilizes; print statistics; return number of killed
6529         insns.
6530         * Makefile.in: (cse.o): Add timevar.h dependency
6531         * rtl.h (delete_trivially_dead_insns): New.
6532         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
6533         * toplev.c (rest_of_compilation): Update callers.
6534
6535         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
6536         (try_optimize_cfg): Do not update liveness.
6537         (cleanup-cfg): Loop until try_optimize_cfg and dead code
6538         removal stabilizes; use delete_trivially_dead_insns.
6539
6540         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
6541
6542 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
6543
6544         * cppmain.c (setup_callbacks): Disable #pragma and #ident
6545         callbacks when processing assembly language.
6546
6547 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6548
6549         * pa.h (ASM_FILE_END): Define.
6550         * som.h (ASM_FILE_END): Delete.
6551
6552         * pa.c (function_arg): Don't pass floats in general registers in
6553         indirect calls if TARGET_ELF32.
6554
6555 2002-03-05  Richard Henderson  <rth@redhat.com>
6556
6557         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
6558
6559 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
6560
6561         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
6562
6563 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6564
6565         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
6566         -r command line.  Don't hide any symbols if not building
6567         shared libgcc.
6568
6569 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
6570
6571         * cfg.c (dump_flow_info): Warn about profile mismatches.
6572         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
6573         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
6574
6575 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6576
6577         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
6578         wide volatile memory by parts.
6579
6580 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6581
6582         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
6583         is NULL.
6584
6585 2002-03-05  Richard Henderson  <rth@redhat.com>
6586
6587         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
6588
6589 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6590
6591         * toplev.c (documented_lang_options): Document more
6592         language-specific options.
6593         * doc/invoke.texi (Warning Options): Correct documentation for
6594         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
6595         * c-decl.c (c_decode_option): Use a table to handle warning options.
6596
6597 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
6598
6599         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
6600         parameter to mmix_encode_section_info.
6601         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
6602         relocatably.  Always produce ELF, not mmo if linking relocatably.
6603         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
6604         first is non-zero, don't add symbol prefix.
6605         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
6606         prototype accordingly.
6607
6608 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
6609
6610         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
6611
6612 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
6613
6614         * configure.in: Increase required makeinfo version to 4.1.
6615         * configure: Regenerate.
6616
6617 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6618
6619         * .cvsignore: Remove *.info* and genrtl*; these files are generated
6620         elsewhere now.
6621
6622 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
6623
6624         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
6625         * doc/invoke.texi: Fix @math uses.
6626
6627 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6628
6629         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
6630         removal
6631
6632 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
6633
6634         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
6635         (powerpc-*-eabisimaltivec*): Same.
6636
6637         * config/rs6000/t-ppcendian: New.
6638
6639 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6640
6641         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
6642         nonimmediate_src_operand and nonimmediate_lsrc_operand to
6643         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
6644
6645 2002-03-03  Richard Henderson  <rth@redhat.com>
6646
6647         * toplev.c (rest_of_decl_compilation): Revert last two changes.
6648
6649 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
6650
6651         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
6652         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
6653         tree.c, config/m68k/m68k.c:
6654         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
6655         REAL_ARITHMETIC blocks unconditional.  Delete some further
6656         #ifdef blocks predicated on REAL_ARITHMETIC.
6657         * flags.h, toplev.c: Delete remaining references to
6658         flag_pretend_float.
6659
6660         * doc/invoke.texi: Remove documentation of -fpretend-float.
6661         * doc/tm.texi: Describe the various REAL_* macros as provided by
6662         real.h, not by the target configuration files.
6663
6664         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
6665         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
6666         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6667         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
6668         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
6669         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
6670         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
6671         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
6672         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6673         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
6674         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6675         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6676         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
6677         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
6678         config/xtensa/xtensa.h:
6679         Do not define, undefine, or mention in comments any of
6680         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
6681         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
6682         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
6683         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
6684         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
6685         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
6686         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
6687         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
6688         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
6689
6690 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6691
6692         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
6693         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
6694         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
6695         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
6696         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
6697         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
6698         Delete.
6699         * defaults.h (BITS_PER_WORD): Define.
6700         * doc/tm.texi (BITS_PER_WORD): Document default value.
6701
6702         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
6703         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
6704         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
6705
6706 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6707
6708         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
6709         lieu of explicit sizeof/sizeof.
6710         * i386.c (override_options, ix86_init_mmx_sse_builtins,
6711         ix86_expand_builtin): Likewise.
6712         * mips.c (mips_add_gc_roots): Likewise.
6713         * mmix.c (mmix_output_condition): Likewise.
6714         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
6715         altivec_init_builtins): Likewise.
6716         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
6717         * cppexp.c (Nsuff, parse_number): Likewise.
6718         * cppinit.c (builtin_array_end): Likewise.
6719         * gcc.c (n_default_compilers, process_command): Likewise.
6720         * genpreds.c (output_predicate_decls): Likewise.
6721         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
6722         * lcm.c (N_ENTITIES): Likewise.
6723         * stor-layout.c (set_sizetype): Likewise.
6724
6725 2002-03-03  Richard Henderson  <rth@redhat.com>
6726
6727         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
6728         for types or labels.
6729
6730 2002-03-03  Richard Henderson  <rth@redhat.com>
6731
6732         * c-decl.c (start_decl): Initialized variables are not common.
6733
6734 2002-03-02  Per Bothner  <per@bothner.com>
6735
6736         * gcc.c (option_map):  Suport new --bootclasspath option.
6737         --CLASSPATH is now just an alias for --classpath.
6738
6739 2002-03-02  Richard Henderson  <rth@redhat.com>
6740
6741         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
6742         load if "internal" visibility.
6743         * doc/extend.texi: Document visibility meanings.
6744
6745 2002-03-02  Richard Henderson  <rth@redhat.com>
6746
6747         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
6748         to functions as well.
6749
6750 2002-03-02  Richard Henderson  <rth@redhat.com>
6751
6752         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
6753         (handle_visibility_attribute): Don't call assemble_visibility.
6754         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
6755         without asmspec.  Invoke assemble_alias when needed.
6756         * varasm.c (maybe_assemble_visibility): New.
6757         (assemble_start_function, assemble_variable, assemble_alias): Use it.
6758
6759 2002-03-02  Richard Henderson  <rth@redhat.com>
6760
6761         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
6762         invoke ENCODE_SECTION_INFO with first call flag.
6763
6764         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6765         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6766         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
6767         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
6768         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
6769         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6770         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
6771         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
6772         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
6773         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
6774         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6775         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
6776         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
6777         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
6778         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6779         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
6780         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
6781         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6782         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
6783         config/sh/sh.h, config/sparc/sparc.h,
6784         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6785         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
6786         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
6787         FIRST argument.  As needed, examine it and do nothing.
6788
6789         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
6790         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
6791         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
6792
6793         * config/arm/t-pe (pe.o): Add dependencies.
6794
6795 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6796
6797         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
6798         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
6799         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
6800         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
6801         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
6802         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
6803         * defaults.h (BITS_PER_UNIT): Define.
6804         * doc/tm.texi (BITS_PER_UNIT): Document default value.
6805
6806 2002-03-02  Kazu Hirata  <kazu@hxi.com>
6807
6808         * config/h8300/h8300-protos.h: Add a prototype for
6809         compute_a_shift_length.
6810         * config/h8300/h8300.c (h8300_asm_insn_count): New.
6811         (compute_a_shift_length): Likewise.
6812         (h8300_adjust_insn_length): Do not adjust insn length of shift
6813         insns.
6814         * config/h8300/h8300.md (anonymous shift patterns): Use
6815         compute_a_shift_length.
6816
6817 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6818
6819         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
6820         trunc_int_for_mode.
6821
6822         * emit-rtl.c (offset_address): Call update_temp_slot_address.
6823
6824 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6825
6826         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
6827         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
6828         * flags.h (flag_zero_initialized_in_bss): Declare.
6829         * toplev.c (flag_zero_initialized_in_bss): New flag.
6830         (lang_independent_options): Add flag_zero_initialized_in_bss.
6831         * tree.c (initializer_zerop): New function.
6832         * tree.h (initializer_zerop): Declare.
6833         * varasm.c (assemble_variable): If we can emit bss, put zero
6834         initializers in the bss section.
6835
6836 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
6837
6838         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
6839         like more than one symbol per .weak directive.
6840
6841 2002-03-01  Richard Henderson  <rth@redhat.com>
6842
6843         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
6844         adjust argument_pointer by pretend_args_size.
6845         (ia64_va_start): Adjust va_start address by -pretend_args_size.
6846
6847 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6848
6849         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
6850
6851 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
6852
6853         * toplev.c (rest_of_compilation): Delete dead jumptables before
6854         loop.
6855         * flow.c (delete_dead_jumptables): Make global.
6856         * rtl.h (delete_dead_jumptables): Declare.
6857
6858 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
6859
6860         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
6861         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
6862         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
6863
6864 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6865
6866         * config/h8300/h8300-protos.h: Fix formatting.
6867         * config/h8300/h8300.c: Likewise.
6868         * config/h8300/h8300.h: Likewise.
6869
6870 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6871
6872         * config/h8300/h8300.c (print_operand): Support 16-bit
6873         constant addresses.
6874         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
6875
6876 2002-02-28  Richard Henderson  <rth@redhat.com>
6877
6878         * expmed.c (store_bit_field): Prevent generation of CONCATs;
6879         pun complex values as integers; use gen_lowpart instead of
6880         gen_rtx_SUBREG.
6881         (extract_bit_field): Likewise.
6882
6883 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
6884             David Edelsohn  <edelsohn@gnu.org>
6885
6886         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
6887         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
6888         (SUPPORTS_WEAK): Likewise.
6889         * output.h (add_weak): Add tree param.
6890         * varasm.c (add_weak): Likewise.  Save decl.
6891         (struct weak_syms): Add decl field.
6892         (mark_weak_decls): New function.
6893         (init_varasm_once): ggc_add_root mark_weak_decls.
6894         (assemble_start_function): Use ASM_WEAKEN_DECL.
6895         (assemble_variable): Likewise.
6896         (assemble_alias): Likewise.
6897         (declare_weak): Pass decl to add_weak.
6898         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
6899         (remove_from_pending_weak_list): Declare and define for
6900         ASM_WEAKEN_DECL.
6901         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
6902         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
6903         * defaults.h (SUPPORTS_WEAK): Likewise.
6904         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6905         .weak for code sym.  Do emit .size for descriptor sym.
6906         (ASM_DECLARE_FUNCTION_SIZE): Define.
6907         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
6908         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
6909         .lglobl unless TARGET_XCOFF.  Formatting fixes.
6910         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6911         .weak for code sym.
6912         (HANDLE_PRAGMA_WEAK): Remove.
6913         (ASM_WEAKEN_LABEL): Remove.
6914         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
6915
6916 2002-03-01  Jason Merrill  <jason@redhat.com>
6917
6918         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
6919         (TARGET_EXPR_CLEANUP): New macro.
6920
6921 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
6922
6923         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
6924         to take ptr_extend into account as third type of extension.
6925         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
6926         fields used by SUBREG_PROMOTED_UNSIGNED_P.
6927         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
6928         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
6929         * calls.c (precompute_arguments): Use new macro.
6930         (expand_call): Ditto.
6931         * combine.c (nonzero_bits): Ditto.
6932         (record_promoted_value): Ditto.
6933         * expr.c (store_expr): Ditto.
6934         (expand_expr): Ditto.
6935         * function.c (assign_parms): Ditto.
6936
6937 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
6938
6939         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
6940         override -shared and -shared-libgcc.
6941
6942 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
6943
6944         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
6945         of "ultrasparc".
6946         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
6947         to be broken.
6948
6949 2002-02-28  Richard Henderson  <rth@redhat.com>
6950
6951         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
6952         4 cycle latency from MM producers.
6953         (ia64_internal_sched_reorder): Likewise with pipeline flush.
6954
6955 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
6956
6957         * mklibgcc.in: Don't use GNU make extension.
6958
6959 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6960
6961         * c-parse.in (STATIC): New terminal.
6962         (scspec): New non-terminal.  Update productions accordingly.
6963         (program): Remove bogus ifc / end ifc.
6964         (array_declarator): Simplify production using STATIC.
6965
6966 2002-02-28  Jim Meyering  <meyering@lucent.com>
6967
6968         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
6969         \a still means TARGET_BELL.
6970
6971 2002-02-28  Richard Henderson  <rth@redhat.com>
6972
6973         * haifa-sched.c (sched_emit_insn): New.
6974         (schedule_block): Use last_scheduled_insn to track last insn.
6975         * sched-int.h (sched_emit_insn): Prototype.
6976         * config/ia64/ia64.c (last_issued): Remove.
6977         (ia64_variable_issue): Don't set it.
6978         (nop_cycles_until): Use sched_emit_insn.
6979
6980 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
6981
6982         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
6983         extended constants.
6984
6985 2002-02-28  Kazu Hirata  <kazu@hxi.com>
6986
6987         * config/h8300/h8300.c: Fix formatting.
6988         * config/h8300/h8300.h: Likewise.
6989
6990 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6991
6992         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
6993         which may overwrite the high byte of the frame pointer.
6994
6995 2002-02-28  Bo Thorsen  <bo@suse.de>
6996
6997         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
6998         (STARTFILE_SPEC): Add 64 bit files.
6999         (ENDFILE_SPEC): Likewise.
7000
7001 2002-02-28  Jason Merrill  <jason@redhat.com>
7002
7003         * c-decl.c (finish_function): Only warn about missing return
7004         statement with -Wreturn-type.
7005
7006 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7007
7008         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
7009
7010         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
7011         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
7012
7013 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7014
7015         * basic-block.h (BB_REACHABLE): Renumber.
7016         (BB_DIRTY, BB_NEW): New flags.
7017         (clear_bb_flags): Declare.
7018         (update_life_info_in_dirty_blocks): Declare.
7019         * cfg.c (clear_bb_flags): New function.
7020         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
7021         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
7022         reorder_insns, emit_insn_after): Mark block as dirty.
7023         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
7024         (update_life_info_in_dirty_blocks): New function.
7025         * recog.c (apply_change_group): Dirtify block.
7026
7027         * cse.c (cse_insn): Reorder emitting of jump insn to keep
7028         cfg consistent.
7029         * gcse.c (delete_null_pointer_checks): Likewise.
7030
7031         * toplev.c (dump_file_index): Move cse2 after bp,
7032         add DFI_null
7033         (dump_file_info): Similary.
7034         (rest_of_compilation): Avoid most of CFG rebuilds;
7035         do first if converision after null pointer checks, do cse2
7036         after branch prediction; avoid full liveness rebuild after
7037         initializing subregs.
7038         * invoke.texi (-d options): Document -du, renumber.
7039
7040         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
7041         (notice_new_block): Do not set BB_UPDATE_LIFE.
7042         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
7043          merge_blocks_move_successor_nojumps, merge_blocks,
7044          try_crossjump_to_edge): Likewise.
7045         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
7046         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
7047         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
7048         (merge_of_block): Do not use life_data_ok.
7049         (find_if_case_1): Do not use SET_UPDATE_LIFE.
7050         (if_convert): Use BB_DIRTY mechanizm to update life.
7051         * lcm.c (optimize_mode_switching): Update
7052         update_life_info_in_dirty_blocks
7053
7054 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7055
7056         * Makefile.in (integrate.o): Update.
7057         * c-decl.c (copy_lang_decl): Rename.
7058         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
7059         * integrate.c: Include langhooks.h.
7060         (copy_decl_for_inlining): Update to use langhook.
7061         * langhooks-def.h (lhd_do_nothing_t,
7062         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
7063         (LANG_HOOKS_INITIALIZER): Update.
7064         * langhooks.c (lhd_do_nothing_t): New.
7065         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
7066         * tree.h (copy_lang_decl): Remove.
7067 objc:
7068         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
7069
7070 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
7071
7072         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
7073         POST_DEC, and POST_MODIFY.
7074
7075 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
7076
7077         * c-typeck.c (digest_init): Remove unused parameter; all
7078         callers changed.
7079
7080 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
7081
7082         * expmed.c (expand_shift): Correctly test for low part of a
7083         subreg.
7084
7085 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
7086
7087         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
7088         insn UIDs with insn addresses.
7089
7090 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
7091
7092         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
7093         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
7094         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
7095         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
7096         gcc.c, toplev.c: Delete code implementing -traditional mode.
7097
7098         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
7099         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
7100         Document removal of -traditional mode for compilation, and
7101         remove documentation only relevant to that mode.
7102
7103         * config/nextstep.h, config/ptx4.h, config/svr4.h,
7104         config/convex/convex.h, config/d30v/d30v.h,
7105         config/i386/dgux.h, config/i386/osf1elf.h,
7106         config/i386/osfelf.h, config/i386/osfrose.h,
7107         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
7108         config/m68k/hp310.h, config/m88k/dgux.h,
7109         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
7110         config/m88k/m88k.h, config/m88k/openbsd.h,
7111         config/mips/abi64.h, config/mips/osfrose.h,
7112         config/mips/svr4-5.h, config/mips/svr4-t.h,
7113         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
7114         config/stormy16/stormy16.h: Remove all references to
7115         -traditional from target specs.  Delete all mention of the
7116         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
7117         delete a couple of commented-out definitions of
7118         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
7119         to -traditional.
7120
7121         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
7122         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
7123
7124 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
7125
7126         * mklibgcc.in: Don't use \n in a line subject to
7127         interpretation by echo.
7128
7129 2002-02-27  Graham Stott  <grahams@redhat.com>
7130
7131         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
7132         Constify NAME.
7133
7134         * loop.c (prescan_loop): Handle PARALLEL.
7135
7136         * unroll.c (loop_iterations): Return 0 if the add_val for
7137         a BIV is REG.
7138
7139         * final.c (output_operand_lossage): Constify PFX_STR.
7140
7141         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
7142
7143 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
7144
7145         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
7146         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
7147
7148 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
7149
7150         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
7151
7152 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7153
7154         * cpplex.c (_cpp_lex_token): Handle directives in macro
7155         arguments.
7156         * cpplib.c (_cpp_handle_directive): Save and restore state
7157         if parsing macro args when entering a directive.
7158         * cppmacro.c (collect_args): No need to handle directives
7159         in macro arguments.
7160         (enter_macro_context, replace_args): Use the original macro
7161         definition in case it was redefined whilst collecting arguments.
7162 doc:
7163         * cpp.texi: Update.
7164
7165 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
7166
7167         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
7168         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
7169         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
7170         method on AIX.
7171         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
7172         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
7173         (load_toc_v4_PIC_2): Same.
7174
7175 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
7176
7177         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
7178
7179 2002-02-26  Richard Henderson  <rth@redhat.com>
7180
7181         * config/alpha/alpha.md (ashldi_se): Re-enable.
7182
7183 2002-02-26  Richard Henderson  <rth@redhat.com>
7184
7185         * config/alpha/alpha.c (alpha_encode_section_info): Examine
7186         MODULE_LOCAL_P; improve commentary.
7187
7188 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
7189
7190         * doc/cpp.texi: Clarify documentation of relationship between
7191         #line and #include.
7192
7193 2002-02-26  Kazu Hirata  <kazu@hxi.com>
7194
7195         * config/h8300/h8300-protos.h: Update the prototype for
7196         compute_logical_op_length.  Add the prototype for
7197         compute_logical_op_cc.
7198         * config/h8300/h8300.c (compute_logical_op_length): Figure out
7199         code from operands.
7200         (compute_logical_op_cc): New.
7201         * config/h8300/h8300.md: Combine all the logical op patterns
7202         in HImode and SImode.  Use compute_logical_op_cc.
7203
7204 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
7205
7206         * config/i386/i386.c (print_operand): Don't append ATT-style
7207         length suffixs to x87 opcodes when in Intel mode.
7208
7209 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
7210
7211         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
7212         (init_emit_once): Update calls.
7213         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
7214         (init_syntax_once): Prototype.
7215
7216 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7217
7218         * pa-linux.h (LIB_SPEC): Update definition.
7219         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
7220
7221 2002-02-26  Richard Henderson  <rth@redhat.com>
7222
7223         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
7224         if we emitted a stop bit.
7225
7226 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
7227
7228         * configure.in (libgcc_visibility): Substitute.
7229         * configure: Rebuilt.
7230         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
7231         defined symbols .hidden.
7232
7233 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
7234
7235         * attribs.c (c_common_attribute_table): Add visibility.
7236         (handle_visibility_attribute): New function.
7237         * varasm.c (assemble_visibility): New function.
7238         * output.h (assemble_visibility): Add prototype.
7239         * tree.h (MODULE_LOCAL_P): Define.
7240         * crtstuff.c (__dso_handle): Use visibility attribute.
7241         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
7242         for MODULE_LOCAL_P symbols too.
7243         * config/ia64/ia64.c (ia64_encode_section_info): Handle
7244         MODULE_LOCAL_P symbols the same way as local symbols.
7245         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
7246         into .sdata/.sbss by the user.
7247         * doc/extend.texi (Function Attributes): Document visibility
7248         attribute.
7249
7250 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
7251
7252         PR debug/5770
7253         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
7254         STRING_CST initializer spanning the whole variable without
7255         embedded zeros.
7256         If expand_expr returned MEM, don't use it.
7257
7258 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
7259
7260         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
7261         generate a die for the lexical block.
7262
7263 2002-02-26  Kazu Hirata  <kazu@hxi.com>
7264
7265         * config/h8300/h8300-protos.h: Add a prototype for
7266         compute_logical_op_length.
7267         * config/h8300/h8300.c (compute_logical_op_length): New.
7268         * config/h8300/h8300.md (anonymous logical patterns): Use
7269         compute_logical_op_length for length.
7270
7271 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
7272
7273         * dwarf2out.c (modified_type_die): Do not call type_main_variant
7274         for vectors.
7275         (gen_type_die): Same.
7276
7277         * attribs.c (handle_vector_size_attribute): Set debug information.
7278
7279 2002-02-26  Daniel Egger  <degger@fhm.edu>
7280
7281         * config/rs6000/rs6000.md: Swap define_insn attributes to
7282         fix incorrect generation of merge high instructions instead
7283         of merge low.
7284
7285 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
7286
7287         * c-typeck.c (really_start_incremental_init): Use
7288         bitsize_zero_node for vectors.
7289
7290 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
7291
7292         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
7293         ("*set_vrsave_internal"): Same.
7294
7295 2002-02-25  Richard Henderson  <rth@redhat.com>
7296
7297         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
7298         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
7299
7300 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR target/5755
7303         * config/i386/i386.c (ix86_return_pops_args): Only pop
7304         fake structure return argument if it was passed on the stack.
7305
7306 2002-02-25  Jason Merrill  <jason@redhat.com>
7307
7308         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
7309         RESULT_DECL.
7310
7311 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
7312
7313         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
7314         link with shared_name only.
7315         * doc/invoke.texi (Link Options): Document new behavior.
7316
7317 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
7318
7319         * c-typeck.c (push_init_level): Handle vectors.
7320
7321 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
7322
7323         * config/sparc/sparc.c (const64_high_operand): Zero-extend
7324         operands of SPARC_SETHI_P.
7325         (input_operand): Likewise.
7326         (sparc_emit_set_const32): Likewise.
7327         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
7328         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
7329         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
7330         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
7331         (movdi_insn_sp64_vis): Likewise.
7332         (movdi split, movdf split): Use SETHI32.
7333         * doc/md.texi: Document SPARC constraints L, M and N.
7334
7335 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
7336
7337         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
7338         ("*set_vrsave_internal"): use mfspr for Darwin.
7339
7340         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
7341         gen_get_vrsave_internal.
7342
7343 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7344
7345         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
7346
7347 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7348
7349         * cpplex.c (cpp_interpret_charconst): Get signedness or
7350         otherwise of wide character constants correct.
7351         * cppexp.c (lex): Get signedness of wide charconsts correct.
7352
7353 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7354
7355         * optabs.c (widen_operand): Only call convert_modes for
7356         promoted SUBREG if signedness matches.
7357         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
7358
7359 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7360
7361         * cpplib.c (glue_header_name): Use local buffer to build up
7362         header name.
7363
7364 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7365
7366         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
7367
7368 2002-02-23  Kazu Hirata  <kazu@hxi.com>
7369
7370         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
7371         H8/300[HS] separately.
7372         * config/h8300/h8300.md: Remove the early clobber constraint
7373         from bit field patterns.
7374
7375 2002-02-23  Kazu Hirata  <kazu@hxi.com>
7376
7377         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
7378         register_operand.
7379         (mulhisi3): Likewise.
7380         (umulqisi3): Likewise.
7381         (umulhisi3): Likewise.
7382
7383 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7384
7385         * cppinit.c (output_deps): Correct test for stdout output.
7386         (init_dependency_output): Cure warning.
7387
7388 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7389
7390         * expr.c (store_expr): When converting expression to promoted
7391         equivalent type, allow using SUBREG_REG of TARGET as the target
7392         of the expansion of EXP.
7393         * loop.c (basic_induction_var, case SUBREG): Always look inside.
7394         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
7395         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
7396         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
7397         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
7398
7399 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
7400
7401         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
7402         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
7403         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
7404
7405 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
7406
7407         PR optimization/5747
7408         * loop.c (scan_loop): Update reg info if move_movables created new
7409         pseudos.
7410
7411 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
7412
7413         * gcc.c (init_gcc_spec): Revert last change.
7414
7415 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
7416
7417         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
7418         gpc_reg_operand constraint.
7419
7420 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
7421
7422         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
7423         Simplify comparison of `low'.
7424         (add_operand): Fix formatting.
7425         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
7426         (mask_operand): Disallow mask to wrap in 64-bit mode.
7427         (rs6000_stack_info): Remove redundant test setting push_p.
7428         (output_toc): Fix formatting.
7429         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
7430         cc_reg_not_cr0_operand constraint.
7431         (booldi3, boolcdi3 splitters): Same.
7432
7433 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
7434
7435         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
7436
7437 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
7438
7439         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
7440         gcc invoked with -shared-libgcc.
7441
7442 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
7443
7444         PR c++/5748
7445         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
7446         decl if any of elements was TREE_USED.
7447
7448 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
7449
7450         * config/sparc/sol2.h: Don't include sys/mman.h.
7451         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
7452         (arith_4096_operand): Don't throw high bits away.
7453         (const64_operand): Take sign extension of CONST_INTs into account.
7454         (const64_high_operand, sparc_emit_set_const32): Likewise.
7455         (GEN_HIGHINT64): Likewise.
7456         (sparc_emit_set_const64_quick1): Likewise.
7457         (const64_is_2insns): Likewise.
7458         (print_operand): Use trunc_int_for_mode for sign extension.
7459         * config/sparc/sparc.h (SMALL_INT32): Likewise.
7460         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
7461         chars.  Assume CONST_INT is already properly sign-extended.
7462         (movdi split): Sign-extend each SImode part.
7463         (andsi3 split): Don't mask high bits off, so that result
7464         remains properly sign-extend.
7465         (iorsi3 split): Likewise.
7466         (xorsi3 split): Likewise.
7467
7468 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
7469
7470         * fold-const.c (fold): Fix typo in comments.
7471
7472 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
7473
7474         * Makefile.in (langhooks.o): Update dependencies.
7475
7476 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
7477
7478         * langhooks.c: Include flags.h.
7479
7480 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
7481
7482         * testsuite/gcc.dg/attr-alwaysinline.c: New.
7483
7484         * c-common.c (c_common_post_options): Set inline trees by
7485         default.
7486
7487         * doc/extend.texi (Function Attributes): Document always_inline
7488         attribute.
7489         Update documentation about inlining when not optimizing.
7490
7491         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
7492
7493         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
7494         unless DECL_ALWAYS_INLINE.
7495
7496         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
7497         unless DECL_ALWAYS_INLINE.
7498         (c_disregard_inline_limits): Disregard if always_inline set.
7499
7500         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
7501         Disregard if always_inline set.
7502         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
7503         unless DECL_ALWAYS_INLINE.
7504
7505         * attribs.c (handle_always_inline_attribute): New.
7506         (c_common_attribute_table): Add always_inline.
7507
7508         * config/rs6000/altivec.h: Add prototypes for builtins
7509         requiring the always_inline attribute.
7510
7511 2002-02-21  Eric Christopher  <echristo@redhat.com>
7512
7513         * expmed.c (store_bit_field): Try to simplify the subreg
7514         before generating a new one when when the mode size of
7515         value is less than maxmode.
7516
7517 2002-02-21  Richard Henderson  <rth@redhat.com>
7518
7519         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
7520         than gen_rtx_PLUS to form the sum.
7521         * explow.c (force_reg): Rearrange to not allocate new pseudo
7522         when force_operand returns a register.
7523         * expr.c (expand_assignment): Allow offset_rtx expansion to
7524         return a sum.  Do not force addresses into registers.
7525         (expand_expr): Likewise.
7526         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
7527         to canonicalize arithmetic that didn't simpify.
7528         (simplify_plus_minus): New argument force; update
7529         all callers.  Don't split CONST unless we can do something with it,
7530         and wouldn't lose the constness of the operands.
7531
7532         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
7533         that we generated earlier.
7534
7535 2002-02-21  Tom Tromey  <tromey@redhat.com>
7536
7537         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7538         (output_line_info): Use constant `1', with a long explanatory
7539         comment.
7540         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
7541
7542 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
7543
7544         * jump.c (redirect_jump): If old label has no UID, don't try to
7545         delete it.
7546
7547 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
7548
7549         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
7550         If input is constant, do shifts at compile time.
7551
7552 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7553
7554         * doc/extend.texi: Fix some more overfull hboxes.
7555
7556 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7557
7558         PR optimization/4994
7559         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
7560         register moves.
7561
7562 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7563
7564         PR c++/4574
7565         * expr.h (expand_and): Add mode argument.
7566         * expmed.c (expand_and): Add mode argument.
7567         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
7568         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
7569         * except.c (expand_builtin_extract_return_addr): Likewise.
7570         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7571         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7572         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
7573         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
7574         * config/c4x/c4x.md: Use GEN_INT (x) instead of
7575         gen_rtx (CONST_INT, VOIDmode, x).
7576
7577 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7578
7579         PR c/4697:
7580         * stmt.c (warn_if_unused_value): Move side effects test once more.
7581
7582 2002-02-20  Torbjorn Granlund  <tege@swox.com>
7583
7584         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
7585         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
7586
7587 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
7588
7589         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
7590         SUBREG or ZERO_EXTEND.
7591
7592 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
7593
7594         * sh.h (current_function_anonymous_args): Remove.
7595         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
7596         of current_function_varargs and current_function_stdarg is set.
7597         * sh.c (sh_expand_prologue): Check current_function_varargs /
7598         current_function_stdarg / TARGET_SH5 instead of
7599         current_function_anonymous_args.
7600
7601         * sh64.h (TARGET_VERSION): Define.
7602
7603 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
7604
7605         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
7606         VRSAVE_REGNO on TARGET_ALTIVEC.
7607
7608 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
7609
7610         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
7611         bits of SImode const_int.
7612         (includes_rshift_p): Likewise.
7613         (print_operand): Call mask_operand and mask64_operand with correct
7614         mode.
7615         (rs6000_output_function_epilogue): Pad traceback table to word.
7616         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
7617         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
7618         mask64_operand with correct mode.
7619         (FUNCTION_ARG_REGNO_P): Correct parentheses.
7620
7621 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7622
7623         PR debug/4461
7624         * varasm.c (get_pool_constant_mark): New.
7625         * rtl.h (get_pool_constant_mark): Add prototype.
7626         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
7627         be represented if it has not been output.
7628
7629 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7630
7631         * combine.c (do_SUBST): Sanity check substitutions of
7632         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
7633         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
7634         CONST_INT into its operand.
7635         (known_cond): Likewise, for ZERO_EXTEND.
7636         * simplify-rtx.c (simplify_unary_operation): Fix condition to
7637         allow for simplification of wide modes.  Reject CONST_INTs in
7638         ZERO_EXTEND when their actual mode is not given.
7639
7640 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7641
7642         * c-decl.c (pushdecl): If no global declaration is found for an
7643         extern declaration in block scope, try a limbo one.
7644
7645 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7646
7647         PR c++/4401
7648         * c-common.c (pointer_int_sum): Moved from...
7649         * c-typeck.c (pointer_int_sum): ...here.
7650         * c-common.h (pointer_int_sum): Add prototype.
7651
7652 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7653
7654         PR c++/5713
7655         * c-decl.c (duplicate_decls): Return 0 if issued error about
7656         redeclaration.
7657
7658 2002-02-20  Roger Sayle  <roger@eyesopen.com>
7659             Jakub Jelinek  <jakub@redhat.com>
7660
7661         PR c/4389
7662         * tree.c (host_integerp): Ensure that the constant integer is
7663         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
7664         when pos is zero or non-zero respectively.  Clarify comment.
7665         * c-format.c (check_format_info_recurse): Fix host_integerp
7666         usage; the pos argument should be zero when assigning to a
7667         signed HOST_WIDE_INT.
7668
7669 2002-02-20  Richard Henderson  <rth@redhat.com>
7670
7671         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
7672         of the operand, rather than assuming TImode.
7673         (ix86_expand_binop_builtin): Cope with commutative patterns
7674         using nonimmediate_operand for both operands.
7675         (ix86_expand_timode_binop_builtin): Likewise.
7676         (ix86_expand_store_builtin): Validate operand 1.
7677         (ix86_expand_unop1_builtin): Likewise.
7678
7679 2002-02-20  Philip Blundell  <philb@gnu.org>
7680
7681         PR 5705
7682         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
7683
7684 2002-02-20  Richard Henderson  <rth@redhat.com>
7685
7686         PR c/5615
7687         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
7688
7689 2002-02-20  Tom Tromey  <tromey@redhat.com>
7690
7691         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7692         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7693         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7694         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7695         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
7696         unconditionally.
7697
7698 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
7699
7700         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
7701           for (const_int 0) in X not just INTVAL.
7702
7703 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7704
7705         * doc/extend.texi: Avoid or reduce overfull hboxes.
7706
7707 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
7708
7709         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
7710         operations if the field does not start at a mode boundary.
7711
7712 2001-02-20      Joel Sherrill <joel@OARcorp.com>
7713
7714         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
7715         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
7716         Also done for -Acpu and -Amachine.
7717
7718 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7719
7720         * cppinit.c (init_dependency_output): Take deps output file
7721         from -o if none given with -MF.  Suppress normal output.
7722         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
7723         * doc/cpp.texi, doc/invoke.texi: Update.
7724
7725 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7726
7727         * toplev.c (output_quoted_string): Write unprintable
7728         characters with octal escapes.
7729
7730 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7731
7732         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
7733         really_call_used[VRSAVE_REGNO] if not Altivec.
7734
7735 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
7736
7737         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
7738         MODE_MASK.
7739         (constant_pool_expr_1): Fix formatting.
7740         (rs6000_legitimize_reload_address): Likewise.
7741
7742 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7743
7744         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
7745         now that we have one.
7746
7747 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7748
7749         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
7750         end of first block of bitfields (which was only seven bits);
7751         rename dummy to unused_1; remove comment which is no longer true.
7752
7753 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7754
7755         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
7756
7757 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7758
7759         PR 5399
7760         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
7761         if generating PIC.
7762
7763         PR 5054
7764         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
7765         arm_is_longcall_p rather than inspecting call-type cookie
7766         directly.
7767         (call_value_insn) [TARGET_THUMB]: Likewise.
7768
7769 2002-02-19  Graham Stott  <grahams@redhat.com>
7770
7771         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
7772
7773 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7774
7775         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
7776         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
7777         (FP_SAVE_INLINE): Delete.
7778
7779         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
7780         * config/rs6000/eabi.asm: Remove ABI save restore routines.
7781         * config/rs6000/t-ppccomm: Build crtsavres.o.
7782         * config/rs6000/crtsavres.asm: New file.
7783
7784 2002-02-19  Philip Blundell  <philb@gnu.org>
7785
7786         * config/arm/arm.c (use_return_insn): Don't reject interrupt
7787         functions.
7788         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
7789         (output_return_instruction): Allow interrupt functions to return with
7790         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
7791         (arm_expand_prologue): Subtract 4 before stacking LR in an
7792         interrupt function.
7793
7794 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7795
7796         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
7797         decl, not just FUNCTION_DECL.
7798         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
7799         (arm_assemble_integer): Likewise.
7800         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
7801         marked local.
7802
7803 2002-02-19  matthew green  <mrg@eterna.com.au>
7804
7805         * config.gcc (sparc-*-netbsdelf*): Enable target.
7806         (sparc64-*-netbsd*): New target.
7807         * config/sparc/netbsd-elf.h: New file.
7808         * config/sparc/t-netbsd64: New file.
7809
7810 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7811
7812         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
7813
7814 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
7815
7816         * doc/invoke.texi: explicitly list the style guidelines that
7817         -Weffc++ checks for.
7818
7819 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
7820
7821         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
7822
7823 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7824
7825         PR other/5718
7826         * gcc.c (cpp_unique_options): Treat -o as indicating object file
7827         only if not -E.  If -E, pass -o through to the preprocessor.
7828
7829 2002-02-19  Kazu Hirata  <kazu@hxi.com>
7830
7831         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
7832         register number with an appropriate macro.
7833
7834 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7835
7836         * doc/rtl.texi (Constants): Close @code tag.
7837
7838 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
7839
7840         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
7841         ("mmx_uavgv4hi3"): Same.
7842         ("pmulhrwv4hi3"): Same.
7843
7844         * tree-inline.c (walk_tree): Handle vectors.
7845
7846         * c-common.c (constant_expression_warning): Handle vectors.
7847         (overflow_warning): Same.
7848
7849         * sched-deps.c (sched_analyze_2): Handle vectors.
7850
7851         * rtlanal.c (rtx_unstable_p): Handle vectors.
7852         (rtx_varies_p): Same.
7853         (count_occurrences): Same.
7854         (regs_set_between_p): Same.
7855         (modified_between_p): Same.
7856         (modified_in_p): Same.
7857         (volatile_insn_p): Same.
7858         (volatile_refs_p): Same.
7859         (side_effects_p): Same.
7860         (may_trap_p): Same.
7861         (inequality_comparisons_p): Same.
7862         (replace_regs): Same.
7863         (computed_jump_p_1): Same.
7864
7865         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
7866         argument.
7867         (inner_mode_array): New.
7868         (copy_rtx): Handle vectors.
7869         (copy_most_rtx): Same.
7870         (rtx_equal_p): Same.
7871         (get_mode_alignment): Adjust for vectors.
7872
7873         * resource.c (mark_referenced_resources): Handle vectors.
7874         (mark_set_resources): Same.
7875
7876         * reload1.c (eliminate_regs): Handle vectors.
7877         (elimination_effects): Same.
7878         (scan_paradoxical_subregs): Same.
7879
7880         * reload.c (subst_reg_equivs): Handle vectors.
7881
7882         * regrename.c (scan_rtx): Handle vectors.
7883
7884         * regclass.c (reg_scan_mark_refs): Handle vectors.
7885
7886         * recog.c (find_single_use_1): Handle vectors.
7887
7888         * local-alloc.c (equiv_init_varies_p): Handle vectors.
7889         (contains_replace_regs): Same.
7890         (memref_referenced_p): Same.
7891
7892         * integrate.c (copy_rtx_and_substitute): Handle vectors.
7893         (subst_constants): Same.
7894
7895         * genattrtab.c (attr_copy_rtx): Handle vectors.
7896         (encode_units_mask): Same.
7897         (clear_struct_flag): Same.
7898         (count_sub_rtxs): Same.
7899
7900         * gcse.c (want_to_gcse_p): Handle vectors.
7901         (oprs_unchanged_p): Same.
7902         (hash_expr_1): Same.
7903         (oprs_not_set_p): Same.
7904         (expr_killed_p): Same.
7905         (compute_transp): Same.
7906         (store_ops_ok): Same.
7907
7908         * function.c (purge_addressof_1): Do not allow paradoxical subregs
7909         of vectors.
7910         (fixup_var_refs_1): Same.
7911         (instantiate_virtual_regs_1): Same.
7912
7913         * fold-const.c (operand_equal_p): Handle vectors.
7914         (fold): Same.
7915         (rtl_expr_nonnegative_p): Same.
7916
7917         * flow.c (mark_used_regs): Handle vectors.
7918
7919         * df.c (df_uses_record): Handle vectors.
7920
7921         * cselib.c (cselib_subst_to_values): Handle vectors.
7922         (cselib_mem_conflict_p): Same.
7923         (hash_rtx): Same.
7924
7925         * cse.c (canon_reg): Handle vectors.
7926         (fold_rt): Same.
7927         (cse_process_notes): Same.
7928         (count_reg_usage): Same.
7929         (canon_hash): Same.
7930
7931         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
7932
7933         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
7934
7935         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
7936         (gen_rtx): Handle CONST_VECTOR.
7937         (gen_const_vector_0): New.
7938         (copy_rtx_if_shared): CONST_VECTORs can be shared.
7939         (reset_used_flags): Same.
7940         (copy_insn_1): Same.
7941         (initializer_constant_valid_p): Handle VECTOR_CST.
7942
7943         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
7944
7945         * doc/rtl.texi (Constants): Document const_vector.
7946         (CONST0_RTX): Update for vectors.
7947         (RTL sharing): Same.
7948
7949         * print-tree.c (print_node): Add case for VECTOR_CST.
7950
7951         * tree.h (TREE_VECTOR_CST_ELTS): New.
7952         (struct tree_vector): New.
7953         (union tree_node): Add vector node.
7954         (build_vector): Add prototype.
7955
7956         * tree.def (VECTOR_CST): New.
7957
7958         * tree.c (build_vector): New.
7959
7960         * expmed.c (make_tree): Handle CONST_VECTOR.
7961
7962         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
7963         (CONST_VECTOR_ELT): New.
7964         (CONST_VECTOR_NUNITS): New.
7965
7966         * machmode.h (GET_MODE_INNER): New.
7967         (DEF_MACHMODE): Accept 8th arg.
7968
7969         * machmode.def: Add 8th argument for vector inner mode.
7970         Add inner vector modes for vectors.
7971
7972         * rtl.def (VEC_CONST): Remove.
7973         (CONST_VECTOR): New.
7974
7975         * expr.c (clear_storage): Allow vectors.
7976         (is_zeros_p): Handle VECTOR_CST.
7977
7978         * varasm.c (output_constant_pool): Handle vectors.
7979         (rtx_const): Add veclo and vechi fields.
7980         (kind): Add RTX_VECTOR.
7981         (decode_rtx_const): Add case for vector.
7982
7983         * config/rs6000/rs6000-protos.h: Add zero_constant.
7984
7985         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
7986         constants.  Force easy vector constants into memory.
7987         (easy_vector_constant): New.
7988         (emit_easy_vector_constant): New.
7989         (rs6000_legitimize_reload_address): Do not generate bad reloads on
7990         darwin.
7991
7992         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
7993         instruction does.
7994         ("altivec_lvxl"): Same.
7995         (altivec_lvebx): Same.
7996         (altivec_lvehx): Same.
7997         (altivec_lvewx): Same.
7998         ("*movv4si_const0"): New.
7999         ("*movv4sf_const0"): New.
8000         ("*movv8hi_const0"): New.
8001         ("*movv16qi_const0"): New.
8002
8003 2002-02-18  Kazu Hirata  <kazu@hxi.com>
8004
8005         * config/h8300/h8300.c (notice_update_cc): Use
8006         cc_status.value2.
8007
8008 2002-02-18  Kazu Hirata  <kazu@hxi.com>
8009
8010         * config/h8300/h8300.md (divmod patterns): Change the
8011         constraints for operands[1] to register_operand.
8012
8013 2002-02-18  Kazu Hirata  <kazu@hxi.com>
8014
8015         * config/h8300/h8300-protos.h: Remove the prototype for
8016         p_operand.
8017         * config/h8300/h8300.c (p_operand): Remove.
8018         * config/h8300/h8300.md: Replace p_operand with
8019         const_int_operand.
8020
8021 2002-02-18 Philip Blundell <pb@nexus.co.uk>
8022
8023         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
8024         comment.
8025         (output_return_instruction): Allow use of LDR to unstack
8026         return addresss even for interrupt handlers or when
8027         interworking.  If compiling for ARMv5, use interworking-safe
8028         return instructions by default.  Remove duplicated code and
8029         lengthy "strcat" sequences.
8030
8031 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8032
8033         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
8034         (LINK_EH_SPEC): Define.
8035         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
8036
8037 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8038
8039         * config/s390/s390.c (s390_emit_prologue): Do not set the
8040         frame_related flag for call-clobbered registers.
8041
8042 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
8043
8044         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
8045         (construct_container): Fix handling of SSE operands.
8046         (ix86_expand_builtin): Fix handling of 64bit pointers.
8047         (mmx_maskmovq_rex): New pattern.
8048
8049 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
8050
8051         * regrename.c (kill_set_value): Handle subregs properly.
8052
8053 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
8054
8055         * objc/objc-act.c (handle_impent): Remove leading '*'
8056         from objc_class_name.
8057
8058 2002-02-17  Richard Henderson  <rth@redhat.com>
8059
8060         * config/alpha/alpha.c (some_small_symbolic_operand,
8061         some_small_symbolic_operand_1, split_small_symbolic_operand,
8062         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
8063         Handle small SYMBOL_REFs anywhere, not just inside memories.
8064         * config/alpha/alpha-protos.h: Update.
8065         * config/alpha/alpha.h (PREDICATE_CODES): Update.
8066         * config/alpha/alpha.md (small symbolic operand splitter): Update.
8067
8068 2002-02-17  Roland McGrath  <roland@frob.com>
8069
8070         * config.gcc (powerpc-*-gnu-gnualtivec*,
8071         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
8072         * config/rs6000/gnu.h: New file.
8073         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
8074         Grok "gnu" in rs6000_abi_name.
8075         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
8076         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
8077         Grok -mcall-gnu analogous to -mcall-linux et al.
8078         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8079         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
8080         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
8081
8082 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
8083
8084         PR c/3444:
8085         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
8086         shortening.
8087
8088 2002-02-17  Philipp Thomas  <pthomas@suse.de>
8089
8090         * config/cris/cris.h: Undefine STARTFILE_SPEC and
8091         ENDFILE_SPEC before (re)defining them.
8092
8093 2002-02-17  Kazu Hirata  <kazu@hxi.com>
8094
8095         * config/h8300/h8300.c: Fix formatting.
8096         * config/h8300/h8300.h: Likewise.
8097
8098 2002-02-17  Philipp Thomas  <pthomas@suse.de>
8099
8100         * doc/tm.texi: Explain why empty strings should not be
8101         marked for translation.
8102
8103 2002-02-17  Philipp Thomas  <pthomas@suse.de>
8104
8105         * final.c (output_operand_lossage): Changed to accept
8106         printf style arguments. Change calls where necessary.
8107         * output.h (output_operand_lossage): Change declaration
8108         accordingly. Update copyright.
8109         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
8110         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
8111         Update copyright date where necessary.
8112
8113         * config/i386/i386.c (print_operand): Likewise. Remove use of
8114         sprintf.
8115
8116         * config/cris/cris.c (cris_operand_lossage): Likewise.
8117         Rename parameter so that exgettext recognizes it as
8118         translatable message.
8119         (LOSE_AND_RETURN): Rename parameter to msgid.
8120
8121 2002-02-17  Kazu Hirata  <kazu@hxi.com>
8122
8123         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
8124         hard coded register number with an appropriate macro.
8125         (HARD_REGNO_MODE_OK): Likewise.
8126         (ARG_POINTER_REGNUM): Likewise.
8127         (STATIC_CHAIN_REGNUM): Likewise.
8128         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
8129         * config/h8300/h8300.md (define_constants): Define more
8130         register numbers.
8131
8132 2002-02-17  Philipp Thomas  <pthomas@suse.de>
8133
8134         * config/i386/i386.h: Don't mark empty strings for translation.
8135
8136 2002-02-16  H.J. Lu <hjl@gnu.org>
8137
8138         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
8139
8140 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
8141
8142         * cppinit.c (merge_include_chains): Check for brack being
8143         NULL before attempting to merge it with qtail.
8144
8145 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
8146
8147         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
8148         DBX_DEBUG.
8149
8150 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8151
8152         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
8153
8154 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8155
8156         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
8157         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
8158         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
8159
8160 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8161
8162         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
8163         now only if !TARGET_FIX.
8164         (*movsi_nt_vms_fix): New pattern.
8165
8166 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
8167
8168         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
8169         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
8170         (alpha_sa_mask, alpha_sa_size): Reflect above change.
8171         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
8172         (alpha_start_function, alpha_expand_epilogue): Likewise.
8173         (unicosmk_gen_dsib): Likewise.
8174
8175 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8176
8177         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
8178
8179 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
8180
8181         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
8182         check_and_change_labels, s390_final_chunkify): Delete.
8183         (s390_split_branches, s390_chunkify_pool): New functions.
8184         (s390_function_prologue): Call them.
8185
8186         * config/s390/s390.h (S390_REL_MAX): Delete.
8187         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
8188
8189         * config/s390/s390.md (cjump, icjump, jump): Fix length
8190         attribute calculation.
8191
8192
8193 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
8194
8195         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
8196         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
8197
8198 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8199
8200         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
8201         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
8202         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
8203
8204 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
8205
8206         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
8207
8208 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
8209
8210         * reload.c (find_dummy_reload): Check that an output register
8211         is valid for its mode.
8212
8213 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
8214
8215         * combine.c (known_cond): After replacing the REG of a SUBREG, try
8216         to simplify it.
8217
8218         * function.c (assign_parms): Demote promoted argument passed by
8219         transparent reference.
8220
8221 2001-02-14      Joel Sherrill <joel@OARcorp.com>
8222
8223         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
8224         -Acpu() and -Amachine() to eliminate warnings.
8225
8226 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
8227
8228         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
8229
8230 2002-02-14  Kazu Hirata  <kazu@hxi.com>
8231
8232         * config/h8300/h8300-protos.h: Update the prototype for
8233         const_costs.
8234         * config/h8300/h8300.c (const_costs): Treat SET as a little
8235         more expensive operation.
8236         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
8237         reference to const_costs.
8238
8239 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
8240
8241         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
8242
8243 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
8244
8245         PR c/5503:
8246         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
8247         use arguments from newtype.
8248
8249 2002-02-13  Eric Christopher  <echristo@redhat.com>
8250
8251         * config/mips/mips.c (override_options): Add check for march/mipsX
8252         on the same command line. Fix error message in cpu processing.
8253         Remove architecture and ISA checks.
8254
8255 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
8256
8257         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
8258
8259         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
8260
8261 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
8262
8263         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
8264         alternatives.
8265         ("*movv8hi_internal1"): Same.
8266         ("*movv16qi_internal1"): Same.
8267         ("*movv4sf_internal1"): Same.
8268
8269         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
8270         not push_reload for altivec modes.
8271
8272 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
8273
8274         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
8275         all RTEMS targets including removal of #includes from config/*/rtems*.h
8276         file and adding them to tm_file setting. Added xm_defines=POSIX to
8277         many targets.
8278         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
8279         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
8280         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
8281         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
8282         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
8283         config/m68k/rtemself.h: Ditto.
8284         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
8285         config/mips/rtems64.h: Ditto.
8286         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
8287         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
8288         Ditto.
8289         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
8290         config/sparc/rtemself.h: Ditto.
8291         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
8292         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
8293         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
8294         more like arm-elf.
8295         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
8296         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
8297         target made more similar to i386-elf.
8298         * config/i386/t-rtems-i386: Added soft float support and multilibs.
8299         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
8300         be similar to config/m68k/t-m68kelf.
8301         * gthr-rtems.h: Encapsulate with extern "C" for C++.
8302
8303 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
8304
8305         * regmove.c (kill_value): Handle subregs.
8306
8307 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
8308
8309         * i386.md (mul patterns): Allow memory operand to be first;
8310         add expanders where needed; fix constraints.
8311         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
8312         Allow memory operand to be the first.
8313
8314         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
8315         operands.
8316
8317 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
8318
8319         PR c/5681:
8320         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
8321         GET_MODE (x).
8322
8323 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
8324
8325         PR optimization/5547:
8326         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
8327         all valid IA-32 address modes involving non-scaled %ebx and
8328         GOT/GOTOFF as displacement.
8329
8330 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
8331
8332         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
8333         after emitting ltorg insns.
8334
8335         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
8336         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
8337         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
8338         *abssf2): Fix "op_type" attribute.
8339
8340 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
8341
8342         * mkconfig.sh: Avoid using a subshell redirect.
8343         ($output.T): Change to $(output)T.
8344         (ENABLE_NLS): Remove unneeded undef.
8345
8346         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
8347         * config/alpha/x-vms (libsubdir): Define.
8348
8349         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
8350         register frame procedures. Optimize retrieving context.
8351
8352         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
8353         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
8354         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
8355
8356 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8357
8358         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
8359         Make same change as for find_base_value.
8360
8361 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8362
8363         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
8364         of QImode and SImode.
8365
8366 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8367
8368         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
8369         length computation of movsi.
8370         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
8371
8372 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8373
8374         * config/h8300/h8300.md (subqi3): Tighten the predicate for
8375         operands[2] to register_operand.
8376
8377 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8378
8379         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
8380
8381 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
8382
8383         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
8384         for altivec_lvx* and altivec_stvx*.
8385         ("*movv4si_internal"): Add constraint for loading from GPRs.
8386         ("*movv8hi_internal1"): Same.
8387         ("*movv16qi_internal1"): Same.
8388         ("*movv4sf_internal1"): Same.
8389
8390         * config/rs6000/rs6000.c (altivec_register_operand): New.
8391
8392         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
8393         altivec_register_operand.
8394
8395 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
8396
8397         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
8398         handle SYMBOL_REF.
8399
8400 2002-02-13  Stan Shebs  <shebs@apple.com>
8401
8402         * c-typeck.c (digest_init): Handle vectors.
8403         (really_start_incremental_init): Same.
8404         (pop_init_level): Same.
8405         (process_init_element): Same.
8406
8407         * varasm.c (output_constant): Same.
8408
8409         * expr.c (clear_storage): Same.
8410         (store_constructor): Same.
8411
8412 2002-02-12  Eric Christopher  <echristo@redhat.com>
8413
8414         * explow.c (hard_function_value): Add comment explaining
8415         signed/unsigned comparison.
8416
8417 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
8418
8419         * jump.c (never_reached_warning): Add finish argument.
8420         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
8421         real insn after end.
8422         * rtl.h (never_reached_warning): Adjust prototype.
8423         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
8424         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
8425         never_reached_warning.
8426
8427 2002-02-12  Graham Stott  <grahams@redhat.com>
8428
8429         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
8430
8431 2002-02-12  Kazu Hirata  <kazu@hxi.com>
8432
8433         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
8434         logical shifts on H8/300.
8435         (shift_alg_si): Improve several shifts on H8/300.
8436         (get_shift_alg): Likewise.
8437
8438 2002-02-12  Graham Stott  <grahams@redhat.com>
8439
8440         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
8441
8442 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8443
8444         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
8445         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
8446
8447 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
8448
8449         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
8450         non-CONST_INT through default_assemble_integer.
8451         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
8452         <case 8>: Abort for CONST_DOUBLE.
8453
8454 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8455
8456         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
8457         is specified.
8458         * config/pa/pa-linux.h (LIB_SPEC): Delete.
8459         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
8460
8461 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
8462
8463         * config/stormy16/stormy16.md (zero_extendqihi2): New.
8464
8465 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
8466
8467         * regrename.c (regrename_optimize): Don't accept a
8468         part-clobbered register if the replaced register is not part
8469         clobbered.
8470
8471         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
8472         take padding into account when computing the argument value.
8473
8474         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
8475
8476         * combine.c (try_combine): Apply substitutions in
8477         CALL_INSN_FUNCTION_USAGE too.
8478
8479 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
8480
8481         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
8482         __builtin_altivec_abs*.
8483         (bdesc_abs): New.
8484
8485         * config/rs6000/rs6000.h (rs6000_builtins): Add
8486         ALTIVEC_BUILTIN_ABS*.
8487
8488         * config/rs6000/altivec.h: Use const char for builtins expecting
8489         literals.
8490         (vec_abs): New versions for C and C++.
8491         (vec_abss): Same.
8492
8493 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8494
8495         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
8496         using Pmode.
8497
8498 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8499
8500         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
8501         constant definition from h8300.md.
8502         (FRAME_POINTER_REGNUM): Likewise.
8503         * config/h8300/h8300.md (define_constants): Add FP_REG.
8504
8505 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8506
8507         * config/h8300/h8300.c (print_operand): Remove redundant code.
8508
8509 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8510
8511         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
8512         * config/h8300/h8300.c (byte_reg): Make it static.
8513
8514 2002-02-10  Richard Henderson  <rth@redhat.com>
8515
8516         PR c/5623
8517         * c-typeck.c (incomplete_type_error): Handle flexible array members.
8518
8519 2002-02-10  Richard Henderson  <rth@redhat.com>
8520
8521         PR c++/5624
8522         * tree.c (append_random_chars): Don't abort if main_input_filename
8523         does not exist.
8524
8525 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
8526
8527         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
8528
8529 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8530
8531         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
8532         (pushhi1): Likewise.
8533
8534 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8535
8536         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
8537         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
8538
8539 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
8540
8541         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
8542         remove MASK_VIS.
8543         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
8544
8545 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8546
8547         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
8548         a half of an SImode register on H8/300.
8549
8550 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
8551
8552         * i386.md (movdi_2): Add missing '!'.
8553
8554 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8555
8556         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
8557         definitions.
8558
8559 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8560
8561         * config/h8300/h8300.md (length): Correct the distance valid
8562         for the short branch.
8563
8564 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8565
8566         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
8567
8568 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8569
8570         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
8571         registers in SImode.
8572         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
8573         part-clobbered.
8574
8575         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
8576         patch.
8577
8578         Contribute sh64-elf.
8579         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8580         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
8581         (sh_cannot_modify_jumps_p): New function.
8582         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
8583         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
8584         (sh_ms_bitfield_layout_p): New function.
8585         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
8586                     Zack Weinberg  <zack@codesourcery.com>
8587         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
8588         expand_simple_binop instead of expand_binop.
8589         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
8590         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
8591         use of .quad and .uaquad.
8592         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
8593         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
8594         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8595         * config/sh/sh.md (movdi_const, movdi_const_32bit,
8596         movdi_const_16bit): Make sure all CONSTs have modes.
8597         (sym2PIC): Ditto, but by adjusting all callers.
8598         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
8599         if the prologue calls the SHmedia argument decoder or register
8600         saver.
8601         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8602         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
8603         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
8604         (sh_expand_epilogue): Don't emit USE of return target register.
8605         (prepare_move_operands): Legitimize DImode PIC addresses.
8606         (sh_media_register_for_return): Skip tr0, used to initialize the
8607         PIC register.
8608         (sh_expand_prologue): Remove explicit USE of return register.
8609         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
8610         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
8611         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
8612         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
8613         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
8614         EXTRA_CONSTRAINT_T.
8615         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
8616         (MOVI_SHORI_BASE_OPERAND_P): New.
8617         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
8618         (EXTRA_CONSTRAINT_T): Define in terms of them.
8619         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
8620         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
8621         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
8622         alternatives supporting TARGET_REGS.
8623         (UNSPEC_GOTPLT): New constant.
8624         (movdi split): Move incrementing of LABEL_NUSES...
8625         (movdi_const, movdi_const_32bit): Here.  Use
8626         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
8627         (movdi_const_16bit): New.
8628         (call, call_value) [flag_pic]: Use GOTPLT.
8629         (call_pop, call_value_pop): New expands.
8630         (call_pop_compact, call_pop_rettramp): New insns.
8631         (call_value_pop_compact, call_value_pop_rettramp): New insns.
8632         (sibcall) [flag_pic]: Use GOT.
8633         (builtint_setjmp_receiver): Remove bogus, unused expand.
8634         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
8635         (*pt, *ptb, ptrel): New insns.
8636         (sym2GOT): Handle DImode GOT.
8637         (sym2GOTPLT, symGOTPLT2reg): New expands.
8638         (sym2PIC): New expand.
8639         (shcompact_return_tramp): Use GOTPLT to return trampoline.
8640         (shcompact_return_tramp_i): Use return register explicitly.
8641         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
8642         disable flag_reorder_blocks.
8643         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8644         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
8645         clobbers, for clarity.
8646         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
8647         restoring of r0 in macl as MAYBE_DEAD.
8648         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
8649         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
8650         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
8651         alter_subreg all over.
8652         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
8653         reload, instead of emitting instructions that would require
8654         reloading.
8655         (casesi_load_media): Add missing modes.
8656         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
8657         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
8658         as used if the argument decoder is called.
8659         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8660         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
8661         Pmode, then extend it to DImode if necessary.
8662         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8663         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
8664         constants in FPU-enabled SHmedia, let them be loaded from memory.
8665         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8666         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
8667         Adjust whitespace in assembly output templates.
8668         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8669         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
8670         mode of if_then_else.
8671         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
8672         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
8673         sh.h.
8674         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
8675                     Joern Rennecke <amylaar@redhat.com>
8676         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
8677         (SUBTARGET_CPP_PTR_SPEC): New.
8678         (SUBTARGET_CPP_SPEC): Remove.
8679         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8680         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8681         Fix typo in previous checkin.
8682         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
8683         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
8684         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
8685                     Alexandre Oliva  <aoliva@redhat.com>
8686         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
8687         what single FP register can hold for SHmedia target.
8688         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8689                     Alexandre Oliva  <aoliva@redhat.com>
8690         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8691         Do not split into SUBREG.
8692         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
8693         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
8694         and added new functions as specified in SH5 ABI r9.
8695         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
8696         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
8697         8-byte boundary.
8698         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
8699         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
8700         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
8701         and consttable_window_ends.
8702         2001-06-03  Graham Stott  <grahams@redhat,com>
8703         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
8704         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
8705         * config/sh/sh.c (print_operand): Handle floating-point pair,
8706         vector and matrix registers.
8707         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
8708         vector modes into account.
8709         * config/sh/sh.md (movv2sf): Split move between registers into
8710         movdf.
8711         (movv4sf, movv16sf): Introduce insns that get split only after
8712         reload.
8713         * config/sh/shmedia.h: Fix Copyright dates.
8714         * config/sh/ushmedia.h: Likewise.  Move loop counter
8715         declarations into conditionals that uses them.
8716         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
8717         loop boundary.
8718         * config/sh/sshmedia.h: Fix Copyright dates.
8719         (sh_media_PUTCFG): Fix constraints.
8720         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
8721         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
8722         ptrmemfunc_vbit_in_delta for SH5.
8723         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
8724         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
8725         * invoke.texi: Likewise.
8726         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
8727         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
8728         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
8729         GCC_pop_shmedia_regs_nofpu): New global symbols.
8730         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
8731         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
8732         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
8733         compact function with nonlocal labels.
8734         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
8735         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
8736         (initial_elimination_offset): Account for their stack space.
8737         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
8738         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
8739         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
8740         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
8741         least one of the operands to be a register.
8742         (movv2sf): Likewise.  Renamed to movv2sf_i.
8743         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
8744         prepare_move_operands() before emitting SHmedia insns.
8745         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
8746         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
8747         Don't save nor initialize r12.  Don't mis-align the stack.
8748         Pad the code with a nop.
8749         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
8750         stack.
8751         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
8752         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
8753         [__SHMEDIA__]: Implement.
8754         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
8755         * config/sh/sh.md: Set latency of `pt' closer to reality.
8756         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
8757         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
8758         Set move, load and store type attributes.
8759         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
8760         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
8761         profiling.
8762         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
8763         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
8764         * config/sh/sh.c (sh_media_register_for_return): New function.
8765         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
8766         branch-target register.
8767         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
8768         * config/sh/sh.md (return_media_i): Use any call-clobbered
8769         branch-target register.
8770         (return_media): If r18 wasn't copied in the prologue, copy it
8771         here.
8772         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
8773         Clear class FP0_REGS.
8774         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
8775         from elf.h.
8776         2001-03-08  DJ Delorie  <dj@redhat.com>
8777         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
8778         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8779         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
8780         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8781         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
8782         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
8783         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
8784         return value correctly for call_cookie.
8785         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8786         * config/sh/crt1.asm (start): Modified so as to call
8787         ___setup_argv_and_call_main.
8788         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
8789         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
8790         SHmedia mode.
8791         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
8792         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
8793         (STRIP_NAME_ENCODING): Use it.
8794         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
8795         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8796         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
8797         prepare_scc_operands().
8798         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
8799         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
8800         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
8801         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
8802         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8803         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
8804         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
8805         used in shcompact_incoming_args.
8806         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
8807         change.
8808         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
8809         mode.
8810         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
8811         Adjust accordingly.
8812         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8813         Simplify.  Adjust.  Add sanity check.
8814         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
8815         FPU_SINGLE_BIT.
8816         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
8817         TARGET_SHCOMPACT.
8818         (udivsi3, divsi3): Use them.
8819         (force_mode_for_call): New insn.
8820         (call, call_value, sibcall_value): Emit it before SHcompact
8821         calls.
8822         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8823         * config/sh/sh.md (call, call_value, sibcall): Make sure the
8824         call cookie is non-NULL before taking its value.
8825         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
8826         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
8827         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8828         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
8829         block.
8830         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
8831         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
8832         temporary for stack adjusts.  Use MACL and MACH to pass
8833         arguments to shcompact_incoming_args.
8834         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
8835         clobber r1.
8836         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
8837         (nested_trampoline): Load static chain address into r1.
8838         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
8839         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
8840         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
8841         fp_arith_reg_operand().
8842         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
8843         * config/sh/sh.md (casesi): Sign-extend the first two operands,
8844         and use signed compares for them.
8845         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
8846         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
8847         ones properly aligned.
8848         (find_barrier): Account for extra alignment needed for 8-byte wide
8849         constants.
8850         (machine_dependent_reorg): Require a label for the second 4-byte
8851         constant after an 8-byte one.
8852         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
8853         change.
8854         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8855         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
8856         last_float when switching float modes.
8857         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
8858         auto-increment for general-purpose registers.
8859         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
8860         result.
8861         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
8862         for stack adjust.
8863         * config/sh/sh.c (sh_builtin_saveregs): Support using all
8864         registers for varargs.
8865         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
8866         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
8867         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
8868         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
8869         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
8870         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
8871         call_cookie accordingly.
8872         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
8873         (SHCOMPACT_BYREF): Likewise.
8874         (SHCOMPACT_FORCE_ON_STACK): New macro.
8875         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
8876         (sh_builtin_saveregs): Likewise.
8877         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8878         shcompact_incoming_args): Use new shift values.  Support
8879         sequences of consecutive and non-consecutive pushes/pops.
8880         * config/sh/sh.md (return): Don't explicitly use PR_REG.
8881         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
8882         * config/sh/sh.h (TEXT_SECTION): Define.
8883         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
8884         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8885         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
8886         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
8887         return values on FPU-enabled SHmedia.
8888         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
8889         FPU-enabled SHmedia.
8890         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
8891         value is returned in a non-FP reg and is not returned by
8892         reference.
8893         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
8894         jump_ind.
8895         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
8896         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
8897         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
8898         quad-aligned to be passed by callee-copy reference.
8899         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
8900         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
8901         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
8902         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
8903         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
8904         copying low-numbered FP regs to r7 and r8.
8905         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
8906         FP regs to general-purpose regs only if the copy was passed on the
8907         stack.
8908         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
8909         copying FP reg to r9.
8910         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
8911         copy FP regs to general-purpose regs only in outgoing calls.
8912         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
8913         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
8914         HOST_WIDE_INT.
8915         * config/sh/sh.h (struct sh_args): Document all fields.
8916         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
8917         passed partially on the stack should not consider making
8918         sibcalls.
8919         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
8920         stack_regs only for incoming calls.  When passing FP args,
8921         make sure there are FP regs available before modifying
8922         call_cookie.
8923         (SHCOMPACT_BYREF): Pass double args in general-purpose
8924         registers by reference.
8925         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
8926         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
8927         attempt to generate sibcalls if the caller got any arguments
8928         by reference.
8929         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
8930         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
8931         to 8-byte boundaries.
8932         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
8933         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
8934         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
8935         stored in the stack.
8936         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
8937         for the offsets to have the ISA bit set.
8938         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
8939         invocation.  Use beq instead of bgt to mark end of sequence of
8940         loads.
8941         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
8942         bgt to mark end of sequence of stores.
8943         * config/sh/sh.c (arith_operand): Don't check whether
8944         CONST_OK_FOR_J for now.
8945         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
8946         instead of long for conversion.
8947         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
8948         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
8949         before passing it to fprintf.
8950         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
8951         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
8952         Call set_fpscr before reading/writing SR.
8953         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
8954         Call set_fpscr.
8955         * config/sh/lib1funcs.asm: Add `.align 2' directives before
8956         SHmedia code.
8957         (FMOVD_WORKS): Define on SH5 with FPU.
8958         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
8959         setting.
8960         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
8961         _fpscr_values.
8962         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
8963         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
8964         address.
8965         (ia_main_table): Ditto.
8966         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
8967         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8968         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
8969         the definitions from sh.h.
8970         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
8971         TARGET_SH5.
8972         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
8973         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
8974         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8975         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
8976         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
8977         Increment LABEL_NUSES.
8978
8979         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
8980         TARGET_SH5.
8981         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
8982         defined.
8983         * config/sh/elf.h (SIZE_TYPE): Likewise.
8984         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8985         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8986         shcompact_incoming_args): Load switch table addresses using
8987         datalabel.
8988         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8989         (NO_BUILTIN_SIZE_TYPE): Define.
8990         (SIZE_TYPE): Don't define.
8991         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8992         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
8993         definition of __SH5__=32 for -m5-compact-nofpu.
8994         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
8995         ADDR_DIFF_VEC.
8996         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
8997         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
8998         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
8999         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
9000         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
9001         (INSN_LENGTH_ALIGNMENT): Likewise.
9002         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
9003         * config/sh/sh.md (call, call_value, sibcall): Simplify
9004         copying of non-branch-target register.
9005         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
9006         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
9007         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
9008         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
9009         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
9010         floating-point values as structs.
9011         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
9012         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
9013         general-purpose register.
9014         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
9015         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
9016         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
9017         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
9018         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
9019         (ENCODE_SECTION_INFO): Enclose variables and constants in
9020         DATALABEL unspecs.
9021         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
9022         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
9023         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
9024         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
9025         only for LABEL_REFs.  For SYMBOL_REFs, prepend
9026         SH_DATALABEL_ENCODING to the symbol name.
9027         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
9028         convert_mode().
9029         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
9030         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
9031         UNSPEC_DATALABEL.
9032         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
9033         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
9034         (DATALABEL_REF_P): Don't require CONST.
9035         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
9036         REL label.
9037         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
9038         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
9039         right.
9040         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
9041         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
9042         Use shallow_copy_rtx and PUT_MODE to change the mode of
9043         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
9044         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
9045         on SHmedia using GENERAL_REGs.
9046         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
9047         bltu_media_i): Fix reversion of conditions.
9048         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
9049         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
9050         * config/sh/sh.c (output_far_jump): Save r13 in macl.
9051         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
9052         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
9053         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
9054         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
9055         (GCC_nested_trampoline): Likewise.
9056         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
9057         * config/sh/sh.c (gen_datalabel_ref): Define.
9058         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
9059         (INITIALIZE_TRAMPOLINE): Likewise.
9060         (TRAMPOLINE_ADJUST_ADDRESS): Define.
9061         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
9062         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
9063         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
9064         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
9065         (ic_invalidate): Adjust for SH5.
9066         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
9067         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
9068         _nested_trampoline.
9069         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
9070         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
9071         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
9072         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
9073         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
9074         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
9075         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
9076         * config/sh/sh.c (target_reg_operand): Match only target-branch
9077         registers and pseudos that aren't virtual registers.
9078         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
9079         Copy operands that don't match target_reg_operand to pseudos.
9080         (call_media, call_value_media, sibcall_media): Use
9081         target_reg_operand instead of target_operand.
9082         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
9083         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
9084         * config/sh/sh.c (target_reg_operand): Match hardware registers
9085         other than branch-target registers.
9086         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
9087         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
9088         (fpscr_values) [SH5 == 32]: Define.
9089         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
9090         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
9091         Handle function addresses coming in SUBREGs.
9092         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
9093         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
9094         shcompact_return_trampoline): Use datalabel where appropriate.
9095         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
9096         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
9097         general-purpose register to copy one branch-target register to
9098         another.
9099         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
9100         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
9101         SYMBOL_REFs with VOIDmode.
9102         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
9103         bltu_media_i): New insns.
9104         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
9105         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
9106         (INIT_CUMULATIVE_ARGS): Likewise.
9107         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
9108         * machmode.def (V16SFmode): New mode.
9109         * c-common.c (type_for_mode): Support V2SF and V16SF.
9110         * tree.c (build_common_tree_nodes_2): Likewise.
9111         * tree.h (tree_index): Likewise.
9112         * calls.c (emit_call_1): Take args_so_far.  Adjust all
9113         callers.  Introduce CALL_POPS_ARGS.
9114         * tm.texi (CALL_POPS_ARGS): Document.
9115         * config/sh/crt1.asm: Implement in SHmedia mode.
9116         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
9117         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
9118         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
9119         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
9120         Implement divsi and udivsi in SHmedia mode.  Introduce
9121         SHcompact trampolines.
9122         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
9123         only in SHmedia64.
9124         (regno_reg_class): Rewrite.
9125         (fp_reg_names): Remove.
9126         (sh_register_names, sh_additional_register_names): New.
9127         (print_operand): Added `u'.  Support SUBREGs in addresses.
9128         Add parentheses around shifted CONSTs.
9129         (output_file_start): Output .mode and .abi directives.
9130         (shiftcosts, addsubcosts, multcosts): Adjust.
9131         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
9132         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
9133         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
9134         bytes, not registers.  Take into account the need for the
9135         SHcompact incoming args trampoline.  Adjust all callers.
9136         (sh_expand_prologue): Take stack_regs into account.  Call
9137         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
9138         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
9139         stack aligned as per SH5 ABI.
9140         (sh_builtin_saveregs): Support SH5 ABI.
9141         (sh_build_va_list, sh_va_start): Likewise.
9142         (initial_elimination_offset): Take alignment into account.
9143         Compute location of PR according to the SH5 stack frame.
9144         (arith_reg_operand): Reject branch-target registers.
9145         (shmedia_6bit_operand): New.
9146         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
9147         (target_reg_operand): Match DImode only.  Accept SUBREGs.
9148         (target_operand): New.
9149         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
9150         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
9151         SIBCALL_REGS for SHmedia.
9152         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
9153         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
9154         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
9155         (TARGET_SWITCHES): New SH5 flags.
9156         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
9157         VALID_REGISTER_P to disable unsupported registers.
9158         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
9159         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
9160         (FUNCTION_ARG_PADDING): Define.
9161         (FASTEST_ALIGNMENT): Adjust.
9162         (SH_REGISTER_NAMES_INITIALIZER): New.
9163         (sh_register_names): Declare.
9164         (DEBUG_REGISTER_NAMES): Define.
9165         (REGISTER_NAMES): Define based on sh_register_names.
9166         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
9167         (sh_additional_register_names): Declare.
9168         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
9169         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
9170         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
9171         (REGISTER_NATURAL_MODE): Define.
9172         (FIRST_PSEUDO_REGISTER): Adjust.
9173         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
9174         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
9175         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
9176         (VECTOR_MODE_SUPPORTED_P): Define.
9177         (REG_CLASS_CONTENTS): Adjust.
9178         (SMALL_REGISTER_CLASSES): Adjust.
9179         (REG_ALLOC_ORDER): Adjust.
9180         (INDEX_REG_CLASS): Adjust.
9181         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
9182         (CONST_OK_FOR_LETTER_P): Adjust.
9183         (PREFERRED_RELOAD_CLASS): Adjust.
9184         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
9185         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
9186         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
9187         (FIRST_FP_PARM_REG): Adjust.
9188         (CALL_POPS_ARGS): Define.
9189         (FUNCTION_ARG_REGNO_P): Adjust.
9190         (struct sh_args): New fields.
9191         (GET_SH_ARG_CLASS): Adjust.
9192         (INIT_CUMULATIVE_ARGS): Adjust.
9193         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
9194         (FUNCTION_ARG_ADVANCE): Adjust.
9195         (FUNCTION_ARG): Adjust.
9196         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
9197         (FUNCTION_ARG_CALLEE_COPIES): Define.
9198         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
9199         (STRICT_ARGUMENT_NAMING): Define.
9200         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
9201         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
9202         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
9203         (SETUP_INCOMING_VARARGS): Adjust.
9204         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
9205         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
9206         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
9207         (SUBREG_OK_FOR_INDEX_P): Adjust.
9208         (EXTRA_CONSTRAINT_S): Update.
9209         (EXTRA_CONSTRAINT_T): New.
9210         (EXTRA_CONSTRAINT): Adjust.
9211         (GO_IF_LEGITIMATE_INDEX): Adjust.
9212         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
9213         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
9214         (MOVE_MAX): Adjust.
9215         (MAX_MOVE_MAX): Define.
9216         (Pmode): Adjust.
9217         (CONST_COSTS): Adjust.
9218         (REGISTER_MOVE_COST): Adjust.
9219         (BRANCH_COST): Adjust.
9220         (TEXT_SECTION_ASM_OP): Adjust.
9221         (DBX_REGISTER_NUMBER): Adjust.
9222         (ASM_OUTPUT_DOUBLE_INT): New.
9223         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
9224         (PREDICATE_CODES): Adjust.
9225         (PROMOTE_MODE): Adjust.
9226         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
9227         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
9228         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
9229         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
9230         (DR0_REG, DR2_REG, DR4_REG): Renumber.
9231         (TR0_REG, TR1_REG, TR2_REG): New.
9232         (XD0_REG): Renumber.
9233         (UNSPEC_COMPACT_ARGS): New.
9234         (type): Added pt and ptabs.
9235         (length): Default to 4 on SHmedia.  Default pt length to 12
9236         and     20 on SHmedia32 and SHmedia64, respectively.
9237         (pt): New function unit.
9238         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
9239         Add whitespace between operands of SHmedia instructions.
9240         (movdicc): Fix.
9241         (adddi3_media, addsi3_media): Adjust constraints.
9242         (subsi3) [SHmedia]: Force operand 1 into a register.
9243         (udivsi3_i1_media, udivsi3_i4_media): New.
9244         (udivsi3): Support SHmedia.
9245         (divsi3_i1_media, divsi3_i4_media): New.
9246         (divsi3): Support SHmedia.
9247         (anddi3, iordi3, xordi3): Adjust constraints.
9248         (zero_extendhidi2, zero_extendqidi2): New.
9249         (extendsidi2, extendhidi2, extendqidi2): New.
9250         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
9251         (pop_e, pop_fpul, pop_4): Likewise.
9252         (movsi_media): Support FP and BT registers.
9253         (movsi_media_nofpu): New.  Adjust splits to DImode.
9254         (lduw, ldub): Renamed to zero_extend* above.
9255         (movqi_media): Fix typo.
9256         (movdi_media): Support FP and BT registers.
9257         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
9258         (movdi_const_32bit): New.
9259         (shori_media): Require immediate operand.  Use `u' for output.
9260         (movdf_media, movsf_media): Simplified.
9261         (movdf_media_nofpu, movsf_media_nofpu): New.
9262         (movdf, movsf): Adjust
9263         (movv2sf, movv2sf, movv16sf): New.
9264         (beq_media, beq_media_i): Adjust constraints.  Don't use
9265         scratch BT register.
9266         (bne_media, bne_media_i): Likewise.
9267         (bgt_media, bgt_media_i): Likewise.
9268         (bge_media, bge_media_i): Likewise.
9269         (bgtu_media, bgtu_media_i): Likewise.
9270         (bgeu_media, bgeu_media_i): Likewise.
9271         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
9272         bunordered): Emit jump insn.  Force operands to registers when
9273         needed.
9274         (jump_media, jump): Simplify.
9275         (call_compact, call_compact_rettramp): New.
9276         (call_value_compact, call_value_compact_rettramp): New.
9277         (call_media, call_value_media): Simplify.
9278         (sibcall_compact, sibcall_media): New.
9279         (call, call_value): Adjust for SHmedia and SHcompact.
9280         (sibcall, sibcall_value, untyped_call): Likewise.
9281         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
9282         (indirect_jump): Adjust for SHmedia.
9283         (casesi_jump_media): New.
9284         (nop): Re-enable for SHmedia.
9285         (call_site): Restrict to SH1.
9286         (casesi): Adjust for SHmedia.
9287         (casesi_shift_media, casesi_load_media): New.
9288         (return): Explicitly use PR register.  Call return trampoline
9289         on SHcompact.
9290         (return_i): Explicitly use PR register.
9291         (shcompact_return_tramp, shcompact_return_tramp_i): New.
9292         (return_media): Adjust.
9293         (shcompact_incoming_args): New.
9294         (epilogue): Adjust.
9295         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
9296         (movstrsi): Disable on SH5.
9297         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
9298         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
9299         (subsf3, subsf3_media): Likewise.
9300         (mulsf3, mulsf3_media, mac_media): Likewise.
9301         (divsf3, divsf3_media): Likewise.
9302         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
9303         (floatsisf2, fux_truncsfsi2): Likewise.
9304         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
9305         constraints.
9306         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
9307         (cmpunsf_media, cmpsf): Likewise.
9308         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
9309         (abssf2, abssf2_media): Likewise.
9310         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
9311         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
9312         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
9313         (floatsidf2, fix_truncdfsi2): Likewise.
9314         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
9315         constraints.
9316         (cmpeqdf_media, cmpgtdf_media): Likewise.
9317         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
9318         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
9319         (absdf2, absdf2_media): Likewise.
9320         (extendsfdf2, extendsfdf2_media): Likewise.
9321         (truncsfdf2, truncsfdf2_media): Likewise.
9322         * config/sh/sh64.h: New file.
9323         * config/sh/t-sh64: New file.
9324         * config/sh/shmedia.h: New file.
9325         * config/sh/ushmedia.h: New file.
9326         * config/sh/sshmedia.h: New file.
9327         * configure.in: Added sh64-*-elf.
9328         * configure: Rebuilt.
9329         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
9330         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
9331         (reg_class_from_letter): Use `b' for TARGET_REGS.
9332         (print_operand): Support `%M', `%m', `AND' and
9333         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
9334         (andcosts): Adjust for SHmedia.
9335         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
9336         Likewise.
9337         (target_reg_operand): New function.
9338         * config/sh/sh-protos.h (target_reg_operand): Declare.
9339         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
9340         FP registers on SH5.
9341         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
9342         on SH4.
9343         (TARGET_REGISTER_P): New macro.
9344         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
9345         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
9346         (EXTRA_CONSTRAINT_S): New macro.
9347         (EXTRA_CONSTRAINT): Adjust.
9348         (FLOAT_TYPE_SIZE): Define to 32.
9349         (Pmode): DImode on SHmedia.
9350         (CONST_COSTS): Adjust for SHmedia literals.
9351         (PREDICATE_CODES): Added target_reg_operand.
9352         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
9353         * config/sh/sh.md: Remove all attrs from SHmedia insns.
9354         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
9355         (cmpdi): Accept SHmedia.
9356         (movdicc_false, movdicc_true): New insns.
9357         (movdicc): New expand.
9358         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
9359         no_new_pseudos.
9360         (addsi3_media): Match `S' constraint.
9361         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
9362         (negdi2): Expand for SHmedia.
9363         (one_cmpldi2): New expand.
9364         (zero_extendsidi2): Change from expand to insn.
9365         (extendsidi2): Add constraints.
9366         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
9367         LD/ST address.  Fix SI immediate loading split.
9368         (movhi_media, movqi_media, lduw, ldub): New insns.
9369         (movhi, movqi): Accept SHmedia.
9370         (shori_media, movdi_media): Relax input constraints.  Split
9371         symbolic constants.
9372         (movdf_media, movsf_media): New insn.  New split to movdi.
9373         (movdf, movsf): Match on SHmedia.
9374         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
9375         bgeu_media): New insns and splits.  New insns with `_i' suffix.
9376         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
9377         (bunordered): New expand.
9378         (jump_compact): Renamed from `jump'.
9379         (jump_media): New insn.
9380         (jump): New expand.
9381         (call_media, call_value_media): New insns.
9382         (call, call_value): Adjust.
9383         (indirect_jump_compact): Renamed from `indirect_jump'.
9384         (indirect_jump_media): New insn.
9385         (indirect_jump): New expand.
9386         (untyped_call, return): Accept SHmedia.
9387         (return_media): New insn.
9388         (prologue, epilogue, blockage): Accept SHmedia.
9389         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
9390         (sunordered): New expand.
9391         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
9392         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
9393         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
9394         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
9395         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
9396         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
9397         abssf2_media): New insns.
9398         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
9399         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
9400         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
9401         floatdidf2, floatsidf2_media, fix_truncdfdi2,
9402         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
9403         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
9404         absdf2_media): New insns.
9405         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
9406         (extendsfdf2_media, truncdfsf2_media): New insns.
9407         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
9408         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
9409         * config/sh/sh.h (CONST_OK_FOR_J): Document.
9410         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
9411         * config/sh/sh.md (adddi3): New expand.
9412         (adddi3_media, adddi3z_media): New insns.
9413         (adddi3_compact): Renamed from adddi3.
9414         (addsi3_media): Use add.l r63 to add constant zero.
9415         (subdi3): New expand.
9416         (subdi3_media): New insn.
9417         (subdi3_compact): Renamed from subdi3.
9418         (mulsidi3): New expand.
9419         (mulsidi3_media): New insn.
9420         (mulsidi3_compact): Renamed from mulsidi3.
9421         (umulsidi3): New expand.
9422         (umulsidi3_media): New insn.
9423         (umulsidi3_compact): Renamed from umulsidi3.
9424         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
9425         (ashlsi3, ashrsi3, lshrsi3): Use them.
9426         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
9427         (ashldi3, ashrdi3, lshrdi3): Use them.
9428         (zero_extendsidi2): New expand.
9429         (extendsidi2): New insn.
9430         (movsi_media): New insn.  Split to movdi to load constants.
9431         (movsi): Enable for shmedia.
9432         (movdi_media): New insn.  Use shori_media to load wide constants.
9433         (short_media): New insn.
9434         (movdi): Enable for shmedia.
9435         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
9436         * config/sh/sh.h (CPP_SPEC): Added `m5'.
9437         (SUBTARGET_CPP_SPEC): Added `!m5'.
9438         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
9439         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
9440         to all other SH variants.
9441         (TARGET_DEFAULT): Set to SH1_BIT.
9442         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
9443         (BITS_PER_WORD): Raise to 64 on shmedia.
9444         (MAX_BITS_PER_WORD): Change to 64.
9445         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
9446         (INT_TYPE_SIZE): Keep as 32.
9447         (UNITS_PER_WORD): Raise to 8 on shmedia.
9448         (MIN_UNITS_PER_WORD): Keep as 4.
9449         (POINTER_SIZE): Raise to 64 on shmedia.
9450         (CONST_OK_FOR_J): New macro.
9451         (CONST_OK_FOR_LETTER_P): Use it.
9452         (processor_type): Add PROCESSOR_SH5.
9453         * config/sh/sh.md: Conditionalize all expands, insns and
9454         splits to TARGET_SH1.
9455         (cpu): Added sh5.
9456         (addsi3_compact): Renamed from...
9457         (addsi3): Now an expand.
9458         (addsi3_media, subsi3_media): New insns.
9459         (subsi3): Don't negate constants with SHmedia.
9460
9461         * hooks.c: New file.
9462         * hooks.h: New file.
9463         * Makefile.in (HOOKS_H): New.
9464         (TARGET_DEF_H): Added $(HOOKS_H).
9465         (OBJS): Added hooks.o.
9466         (cfgcleanup.o, bb-reorder.o): Added target.h.
9467         (hooks.o): Added dependencies.
9468         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
9469         (TARGET_INITIALIZER): this.
9470         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
9471         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
9472         * bb-reorder.c: Include target.h.
9473         (reorder_basic_blocks): Skip if cannot modify jumps.
9474         * cfgcleanup.c: Include target.h.
9475         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
9476
9477 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
9478
9479         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9480         Protect jump delay slot instructions with .set noreorder and
9481         .set nomacro.
9482
9483 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
9484
9485         * config/mips/mips.md (casesi_internal_di): Calculate
9486         the index into the target offset table correctly.
9487
9488 2002-02-08  Richard Henderson  <rth@redhat.com>
9489
9490         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
9491         * final.c (output_addr_const): Accept and discard SUBREG.
9492         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
9493         mark them unknown instead.
9494         (simplify_subtraction): Handle RTX_UNKNOWN.
9495         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
9496
9497 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
9498
9499         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
9500
9501 2002-02-08  Richard Henderson  <rth@redhat.com>
9502
9503         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
9504
9505 2002-02-08  Andreas Jaeger  <aj@suse.de>
9506
9507         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
9508         * config/i386/t-linux64: New file.
9509
9510 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
9511
9512         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
9513         * c-parse.in (compstmt): Clear last_expr_type.
9514
9515 2002-02-07  Richard Henderson  <rth@redhat.com>
9516
9517         * loop.c (strength_reduce): Sink final_value when not
9518         eliminating a biv.
9519
9520 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
9521
9522         * config/sparc/freebsd.h: Fix mismatched spec {.
9523
9524 2002-02-07  Richard Henderson  <rth@redhat.com>
9525
9526         * cfgrtl.c: Include recog.h and insn-config.h.
9527         (keep_with_call_p): Fix general_operand invocation.
9528         * Makefile.in (cfgrtl.o): Update dependencies.
9529
9530 2002-02-07  Kazu Hirata  <kazu@hxi.com>
9531
9532         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
9533         comment.  Accept HImode only if TARGET_H8300.
9534
9535 2002-02-07  Eric Christopher  <echristo@redhat.com>
9536
9537         * config/mips/crtn.asm: Cleanup #ifdefs.
9538
9539 2002-02-07  Eric Christopher  <echristo@redhat.com>
9540
9541         * config/mips/crti.asm: Add changes for mips16. mips16 uses
9542         register 7 as RA instead of $31.
9543         * config/mips/crtn.asm: Ditto.
9544         * config/mips/mips.c (mips_move_2words): Add case for
9545         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
9546         (compute_frame_size): Fix typo.
9547         (save_restore_insns): Ditto.  Make documentation about using
9548         register $7 as return register more precise.
9549         (mips_expand_epilogue): Fix comment. Add code to work around not
9550         being able to add to the stack pointer directly.
9551         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
9552         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
9553         epilogue.
9554
9555 2002-02-07  Tom Rix  <trix@redhat.com>
9556
9557         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
9558         immediates in ldu and stdu DS opcode field.
9559         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
9560         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
9561         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
9562
9563 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
9564
9565         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
9566         offset for stack bias.
9567
9568 2002-02-07  H.J. Lu <hjl@gnu.org>
9569
9570         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
9571
9572 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
9573
9574         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
9575
9576 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
9577
9578         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
9579         * i386.c (x86_order_regs_for_local_alloc): New global function.
9580         * i386.h (REG_ALLOC_ORDER): CLeanup.
9581         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
9582
9583 2002-02-07  Richard Henderson  <rth@redhat.com>
9584
9585         PR optimization/2463
9586         * alias.c (find_base_value): Recall base values for fixed hard regs.
9587         * loop.c (loop_regs_update): Don't use single_set on non-insns.
9588
9589 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
9590
9591         * config/mips/mips.md (define_delay) [mips16]: Adjust required
9592         length.
9593
9594 2002-02-06  Richard Henderson  <rth@redhat.com>
9595
9596         PR c/5609
9597         * stmt.c (resolve_operand_name_1): Take more care with mixed
9598         named and unnamed operands.
9599
9600 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
9601             Jan Hubicka  <jh@suse.cz>
9602
9603         * loop.c (remove_constant_addition): Avoid clobbering a shared
9604         CONST expression.
9605
9606 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9607
9608         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
9609         * config/s390/t-linux64: New file.
9610         * config/s390/libgcc-glibc.ver: New file.
9611
9612 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9613
9614         * config/s390/linux64.h: Delete file.
9615         * config/s390/s390x.h: New file.
9616         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
9617         as target header file.
9618         * config/s390/linux.h (TARGET_VERSION): Define depending on
9619         DEFAULT_TARGET_64BIT.
9620         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
9621         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
9622         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
9623         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
9624         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
9625         (EXTRA_SPEC): New define.
9626         * config/s390/s390.h (TARGET_VERSION): Define depending on
9627         DEFAULT_TARGET_64BIT.
9628         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
9629
9630 2002-02-06  Jason Merrill  <jason@redhat.com>
9631
9632         * c-decl.c (finish_function): Warn about a non-void function with
9633         no return statement and no abnormal exit.
9634         (current_function_returns_abnormally): New variable.
9635         (start_function): Clear it.
9636         (struct c_language_function): Add returns_abnormally.
9637         (push_c_function_context): Save it.
9638         (pop_c_function_context): Restore it.
9639         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
9640         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
9641         an explicit return type.
9642         * c-tree.h: Declare current_function_returns_abnormally.
9643         (C_FUNCTION_IMPLICIT_INT): New macro.
9644         * c-typeck.c (build_function_call): Set it.
9645         (c_expand_return): Set current_function_returns_value even if the
9646         value is erroneous.
9647
9648 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9649
9650         PR c/5420:
9651         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
9652         unsafe for reevaluation.
9653
9654 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9655
9656         PR c/5482:
9657         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
9658         EXPR_STMT, but COMPOUND_STMT, recurse into it.
9659
9660 2002-02-06  Richard Henderson  <rth@redhat.com>
9661
9662         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
9663         be a general_operand.  Dest for function value must be a pseudo.
9664
9665 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
9666
9667         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
9668         as SYMBOL_REFs from the constant pool.
9669
9670 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
9671
9672         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
9673         passed by invisible reference.
9674
9675 2002-02-05  Richard Henderson  <rth@redhat.com>
9676
9677         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
9678
9679 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
9680
9681         Implement using "base addresses" in insn operands as default.
9682         * config/mmix/mmix.c (mmix_conditional_register_usage): if
9683         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
9684         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
9685         used to read the rtx value.
9686         (mmix_target_asm_function_epilogue): Fix spacing.
9687         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
9688         (mmix_legitimate_address): Ditto.
9689         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
9690         should be loaded with a GETA insn.  Don't allocate needless extra
9691         char for nul termination and fix misleading comment.
9692         (mmix_print_operand_address): Handle constants if
9693         TARGET_BASE_ADDRESSES.
9694         (mmix_output_register_setting): Use base addressing if
9695         TARGET_BASE_ADDRESSES and the number of insns is 3.
9696         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
9697         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
9698         to use R as constraint, add LDA to match s.
9699         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
9700         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
9701         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
9702         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
9703         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
9704         order with other fixed registers.
9705         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
9706         other parameter/call-clobbered registers.
9707         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
9708         -mbase-addresses, -mno-base-addresses.
9709         (MMIX Options): Ditto.
9710
9711 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9712
9713         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
9714
9715 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
9716
9717         * config/rs6000/altivec.h: Change elem to _S_elem.
9718
9719 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9720
9721         * config/netbsd.h (WCHAR_TYPE): Define.
9722         (WCHAR_TYPE_SIZE): Ditto.
9723         (WINT_TYPE): Ditto.
9724         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
9725         (WCHAR_UNSIGNED): Ditto.
9726         (WCHAR_TYPE_SIZE): Ditto.
9727         (WINT_TYPE): Ditto.
9728         * config/arm/netbsd.h: Likewise.
9729         * config/i386/netbsd-elf.h: Likewise.
9730         * config/i386/netbsd.h: Likewise.
9731         * config/m68k/netbsd-elf.h: Likewise.
9732         * config/m68k/netbsd.h: Likewise.
9733         * config/ns32k/netbsd.h: Likewise.
9734         * config/sparc/netbsd.h: Likewise.
9735         * config/vax/netbsd.: Likewise.
9736
9737 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9738
9739         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
9740         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
9741         (TARGET_INITIALIZER): this.
9742         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
9743         (BITFIELD_NBYTES_LIMITED): Markup fix.
9744         * tree.h (default_ms_bitfield_layout_p): Declare.
9745         (record_layout_info): Added prev_field.
9746         * tree.c (default_ms_bitfield_layout_p): New fn.
9747         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
9748         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
9749         * stor-layout.c: Include target.h.
9750         (start_record_layout): Initialize prev_field.
9751         (place_field): Handle MS bit-field layout, and disregard
9752         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
9753         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
9754         * Makefile.in (stor-layout.o): Adjust dependencies.
9755
9756 2002-02-05  Jason Merrill  <jason@redhat.com>
9757
9758         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
9759
9760 2002-02-05  Andreas Jaeger  <aj@suse.de>
9761
9762         * crtstuff.c: Fix comments.
9763
9764 2002-02-05  Richard Henderson  <rth@redhat.com>
9765
9766         PR fortran/3393
9767         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
9768         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
9769
9770         PR fortran/3392
9771         * config/mips/mips.c (function_arg): Handle TImode.
9772         (function_arg_advance): Likewise.
9773
9774 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9775
9776         * config/rs6000/altivec.h (vec_step_help): Rename to
9777         __vec_step_help.
9778
9779 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9780
9781         * config/rs6000/altivec.h: Fix typos.
9782
9783 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9784
9785         * config/arm/netbsd.h: Correct a comment.
9786
9787 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9788
9789         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
9790         building void typed builtins.
9791
9792         * config/rs6000/altivec.h (vec_ld*): Fix typos.
9793         (vec_step): Implement for C++.
9794
9795 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9796
9797         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
9798
9799 2002-02-04  Richard Henderson  <rth@redhat.com>
9800
9801         * combine.c (nonzero_bits): Re-introduce special case for
9802         sp/fp/ap wrt REGNO_POINTER_ALIGN.
9803
9804 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9805
9806         * doc/extend.texi: Warn about unsupported usage of altivec
9807         builtins.
9808
9809         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
9810         (altivec_predicate_*): New.
9811
9812         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
9813         Add C++ version of vec_*() functions.
9814
9815         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
9816         (bdesc_2arg): Remove altivec predicates.
9817         (altivec_expand_builtin): Handle predicates.
9818         (altivec_init_builtins): Handle predicates.
9819         (altivec_expand_predicate_builtin): New.
9820
9821 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9822
9823         * pa.c (DO_FRAME_NOTES): Move forward.
9824         (store_reg): Revise handling of frame notes.
9825         (load_reg): Likewise.
9826         (set_reg_plus_d): Likewise.
9827         (hppa_expand_prologue): Likewise.
9828         (hppa_expand_epilogue): Likewise.
9829
9830 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9831
9832         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
9833
9834 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9835
9836         PR c/4475, c++/3780:
9837         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
9838         * c-common.h (SWITCH_TYPE): Define.
9839         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
9840         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
9841         Rename spareness variable to sparseness.
9842         (expand_end_case_type): Renamed from expand_end_case, use orig_type
9843         if non-NULL instead of TREE_TYPE (orig_index).
9844         * tree.h (expand_end_case_type): Renamed from expand_end_case.
9845         (expand_end_case): Define using expand_end_case_type.
9846         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
9847         to expand_end_case_type.
9848         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
9849
9850 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9851
9852         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
9853         (BIGGEST_ALIGNMENT): Change to 128.
9854
9855 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9856
9857         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
9858
9859 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9860
9861         * pa.md (call_internal_reg_64bit): Remove unused variable.
9862
9863 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
9864
9865         * config/arm/arm.h (machine_function): Add uses_anonymous_args
9866         field.
9867         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
9868         * config/arm/arm.c (current_function_anonymous_args): Delete,
9869         replace uses with cfun->machine->uses_anonymous_args.
9870         (arm_reorg): Do not reset uses_anonymous_args.
9871
9872         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
9873         any geenral register.
9874
9875 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
9876
9877         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
9878         the entry block.
9879
9880 2002-02-04  Richard Henderson  <rth@redhat.com>
9881
9882         * combine.c (force_to_mode): Remove STACK_BIAS code.
9883         (nonzero_bits): Likewise.  Replace sp/fp special case with
9884         REGNO_POINTER_ALIGN.
9885
9886         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
9887         (HARD_FRAME_POINTER_REGNUM): New.
9888         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
9889         (FIXED_REGS, CALL_USED_REGS): Update.
9890         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
9891         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
9892         (HARD_REGNO_NREGS): Update for SFP.
9893         (STACK_POINTER_OFFSET): Include bias here ...
9894         (FIRST_PARM_OFFSET): ... not here.
9895         (STACK_BIAS): Remove.
9896         (INIT_EXPANDERS): New.
9897         (STARTING_FRAME_OFFSET): Do not include bias.
9898         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
9899         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
9900         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
9901         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
9902         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
9903         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
9904         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
9905         (MUST_SAVE_REGISTER): Likewise.
9906         (sparc_flat_function_prologue): Likewise.
9907         (sparc_flat_function_epilogue): Likewise.
9908         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
9909         (sparc_init_modes): SFP is GENERAL_REGS.
9910         (sparc_builtin_saveregs): SFP does not have bias applied.
9911
9912 2002-02-04  Richard Henderson  <rth@redhat.com>
9913
9914         * config/alpha/alpha.c (current_function_is_thunk): Don't check
9915         current_function_is_thunk.
9916         (alpha_sa_mask): Distinguish between current_function_is_thunk
9917         called from ASM_OUTPUT_MI_THUNK and not.
9918         (alpha_does_function_need_gp): Thunks always need gp.
9919         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9920         (alpha_output_mi_thunk_osf): New.
9921         * config/alpha/alpha-protos.h: Update.
9922         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
9923
9924 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
9925
9926         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
9927         function types, not when they're taken away.
9928
9929 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
9930
9931         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
9932         CODE_LABEL and jump table when replacing a table jump with a
9933         simple jump.
9934
9935 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9936
9937         * config/s390/s390-protos.h (legitimize_la_operand,
9938         s390_secondary_input_reload_class, s390_plus_operand,
9939         s390_expand_plus_operand): Add prototypes.
9940
9941         config/s390/s390.c (s390_secondary_input_reload_class,
9942         s390_plus_operand, s390_expand_plus_operand): New functions.
9943
9944         (struct s390_address): New member 'pointer'.
9945         (s390_decompose_address): Compute it.
9946         (legitimate_la_operand_p): Use it.
9947         (legitimize_la_operand): New function.
9948         (movti, movdi, movdf splitters): Call it.
9949
9950         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9951         (PREDICATE_CODES): Add s390_plus_operand.
9952
9953         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
9954         (la_ccclobber): Allow GENERAL_REGS as output operand.
9955
9956         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
9957         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
9958         (*la_64, *la_31, reload_indi, reload_insi): ... these.
9959
9960 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9961
9962         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
9963         register names for regular asm () construct.
9964
9965 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9966
9967         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
9968         registers.
9969
9970 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9971
9972         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
9973         pat for recog.
9974
9975 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
9976
9977         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
9978         constant pool to be identical by string address and index.
9979
9980 2002-02-04  Anthony Green  <green@redhat.com>
9981
9982         * output.h (SECTION_OVERRIDE): Define.
9983         * varasm.c (named_section): Obey SECTION_OVERRIDE.
9984
9985 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9986
9987         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
9988         by existing arm*-*-netbsd* (a.out) target.
9989         (ns32k-*-netbsdelf*): Likewise.
9990         (sparc-*-netbsdelf*): Likewise.
9991         (vax-*-netbsdelf*): Likewise.
9992
9993 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
9994
9995         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
9996         headers and libobjc headers.
9997
9998 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
9999
10000         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
10001         (_mingw.h): Remove duplicate include.
10002
10003 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
10004
10005         * config.gcc: Set cpu_type to m68k for 68010, as well.
10006         (m68010-*-netbsdelf*): New...
10007         (m68k*-*-netbsdelf*): ...targets.
10008         * config/m68k/netbsd-elf.h: New file.
10009
10010 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10011
10012         * config/h8300/h8300.c (hand_list): Move inside function_arg.
10013
10014 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10015
10016         * config/h8300/h8300.c (h8_push_ops): Move inside
10017         h8300_init_once.
10018         (h8_pop_ops): Likewise.
10019         (h8_move_ops): Likewise.
10020
10021 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10022
10023         * config/h8300/h8300.c (os_task): Make it static.
10024         (monitor): Likewise.
10025         (pragma_saveall): Likewise.
10026
10027 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
10028
10029         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
10030         constant is a valid sign-extension for Pmode.
10031
10032 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10033
10034         * config/h8300/h8300.c: Fix formatting.
10035
10036 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10037
10038         * config/h8300/h8300.md: Fix formatting.
10039
10040 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10041
10042         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
10043         predicates of operands[1].  Split the patterns for each
10044         processor variant.
10045
10046 2002-02-02  Kazu Hirata  <kazu@hxi.com>
10047
10048         * config/h8300/h8300.md (xor patterns): Tighten the predicates
10049         of operands[1] to register_operand.
10050
10051 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
10052
10053         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
10054         * cpphash.c (_cpp_init_hashtable): Similarly.
10055         * cppinit.c (cpp_create_reader): Default the signed_char flag.
10056         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
10057         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
10058         (cpp_handle_option): Handle the new options.
10059         * cpplex.c (cpp_interpret_charconst): Use new flag.
10060         * cpplib.h (struct cpp_options): New member signed_char.
10061         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
10062         (cpp_options): Handle -fsigned-char and -funsigned-char.
10063         (static_specs): Remove signed_char_spec.
10064         (do_spec1): Don't handle %c.
10065         * system.h: Poison SIGNED_CHAR_SPEC.
10066         * tradcif.y (yylex): Use flag_signed_char.
10067         * tradcpp.h (flag_signed_char): New.
10068         * tradcpp.c (flag_signed_char): New.
10069         (main): Handle new command-line options.
10070         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
10071 config:
10072         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
10073         * avr/avr.h: Remove old comments.
10074         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
10075         (CC1_SPEC): Pass -fsigned-char if -mic*.
10076         (SIGNED_CHAR_SPEC): Remove.
10077 doc:
10078         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
10079
10080 2002-02-01  Eric Christopher  <echristo@redhat.com>
10081
10082         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
10083         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
10084         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
10085         (ASM_OUTPUT_REG_POP): Ditto.
10086
10087 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
10088
10089         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
10090         patch.
10091
10092 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
10093
10094         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
10095
10096 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
10097
10098         PR c/5304:
10099         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
10100         unconditionally.
10101
10102 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
10103
10104         * cfganal.c: Include tm_p.h.
10105         (keep_with_call_p): Fix the test that determines if a register holds
10106         the return value of a call.
10107
10108 2002-02-01  DJ Delorie  <dj@redhat.com>
10109
10110         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
10111         we are given conflicting registers, switch to the other one we
10112         had allocated for us.
10113         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
10114         as TImode so we know when the "other" register is available.
10115
10116 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
10117
10118         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
10119         sparc/sparc_bi.h.
10120
10121 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
10122
10123         * cfganal.c (keep_with_call_p): New function.
10124         (flow_call_edges_add): Prevent splitting a block between a call and
10125         a single-set instruction that should be kept in the same block.
10126
10127 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10128
10129         * doc/install.texi (avr): Update outdated URL.
10130
10131 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
10132
10133         * config/stormy16/stormy16.md (pushqi): New.
10134         (popqi): New.
10135         (pushhi): New.
10136         (pophi): New.
10137         (movhi): Remove stack operands.
10138         (movqi): Likewise.
10139         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
10140         nonimmediate_nonstack_operand.
10141         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
10142         New.
10143         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
10144         New.
10145
10146 2002-01-31  Jason Merrill  <jason@redhat.com>
10147
10148         * Makefile.in (c-parse.c): Handle .output file.
10149         * objc/Make-lang.in (objc-parse.c): Likewise.
10150
10151 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
10152
10153         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
10154         the -me[lb] option is given.  Don't output the default flag
10155         twice.
10156
10157 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
10158
10159         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
10160         the primary source file; this has not been done yet.
10161         * c-decl.c (c_expand_body): Reset input_filename from
10162         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
10163
10164 2002-01-31  Kazu Hirata  <kazu@hxi.com>
10165
10166         * rtlanal.c (subreg_regno_offset): Do not use
10167         SUBREG_REGNO_OFFSET.
10168         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
10169         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
10170
10171 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
10172
10173         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
10174         version rather than GNATS version in --version output.
10175
10176 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
10177
10178         * ifcvt.c (noce_process_if_block): Make a copy of the destination
10179         when copying back from a temporary.
10180
10181 2002-01-30  Richard Henderson  <rth@redhat.com>
10182
10183         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
10184         and new_dest are the same.
10185
10186 2002-01-30  Richard Henderson  <rth@redhat.com>
10187
10188         PR opt/5076
10189         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
10190         * rtl.c (note_insn_name): Update.
10191         * emit-rtl.c (remove_unnecessary_notes): Kill it.
10192         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
10193         to perform loop rotation.
10194         (expand_exit_loop_top_cond): New.
10195         * tree.h (expand_exit_loop_top_cond): Declare it.
10196         * c-semantics.c (genrtl_while_stmt): Use it.
10197         (genrtl_for_stmt): Likewise.
10198
10199 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
10200
10201         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
10202         arguments to 64-bit boundaries on 64-bit ABIs.
10203
10204 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
10205
10206         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
10207
10208 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
10209
10210         * c-decl.c (grokdeclarator): Handle type being a typedef for an
10211         invalid type.
10212
10213 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
10214
10215         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
10216         * config/sparc/sparc_bi.h: Remove file.
10217         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
10218
10219 2002-01-30  Richard Henderson  <rth@redhat.com>
10220
10221         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
10222
10223 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
10224
10225         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
10226
10227 2002-01-30  Jason Merrill  <jason@redhat.com>
10228
10229         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
10230         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
10231         (reg_save): Use DW_CFA_offset_extended_sf instead.
10232
10233         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
10234
10235 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
10236
10237         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
10238         in cselib_lookup.
10239
10240 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
10241
10242         * rs6000.md ("*call_value_local32"): Remove constraints.
10243         ("*call_value_local64"): Same.
10244         ("*call_value_indirect_nonlocal_aix32"): Same.
10245         ("*call_value_nonlocal_aix32"): Same.
10246         ("*call_value_indirect_nonlocal_aix64"): Same.
10247         ("*call_value_nonlocal_aix64"): Same.
10248         ("*call_value_nonlocal_sysv"): Same.
10249
10250 2002-01-29  Richard Henderson  <rth@redhat.com>
10251
10252         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
10253
10254 2002-01-29  Richard Henderson  <rth@redhat.com>
10255
10256         * expr.c (force_operand): Ignore flag_pic for detecting pic
10257         address loads.
10258         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
10259         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
10260         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
10261         instead of open-coded loop.
10262         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
10263         be fixed when in use.
10264
10265 2002-01-29  Richard Henderson  <rth@redhat.com>
10266
10267         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
10268         * sched-rgn.c (propagate_deps): Update them.
10269         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
10270         clobbers list when either gets too long.
10271
10272 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
10273
10274         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
10275         and INDEX_REGS the same as GENERAL_REGS.
10276         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
10277
10278 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10279
10280         * tree.c (build_nonstandard_integer_type): Correct prototype.
10281
10282 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
10283
10284         * config/s390/s390.md (movstrsico, movstrdix_64,
10285         movstrsix_31): Remove, replace by ...
10286         (movstrdi_short, movstrsi_short, movstrdi_long,
10287         movstrsi_long): ... these.  New.
10288         (movstrdi, movstrsi): Adapt.
10289
10290         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
10291         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
10292         Remove unnecessary CC clobber.
10293         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
10294         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
10295
10296         (divmoddi4): Don't partially initialize TImode register.
10297
10298 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
10299
10300         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
10301
10302 2002-01-29  Richard Henderson  <rth@redhat.com>
10303
10304         * flow.c (print_rtl_and_abort): Remove.
10305         (print_rtl_and_abort_fcn): Remove.
10306         (verify_local_live_at_start): Use dump_bb instead.
10307         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
10308         (verify_wide_reg_1): Return 2 on mode test failure.
10309
10310 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10311
10312         PR c/3325, c/3326, c/2511, c/3347
10313         * c-decl.c (enum_decl_context): Remove BITFIELD.
10314         (grokdeclarator): Take bitfield width as an input.
10315         Ensure bitfields are given the correct type.  Perform
10316         bitfield width validation with build_bitfield_integer_type
10317         rather than waiting for finish_struct.
10318         (grok_typename, grok_typename_in_parm_context, start_decl,
10319         push_parmdecl, grokfield, start_function): Update calls to
10320         grokdeclarator.
10321         (build_bitfield_integer_type): New function.
10322         (finish_struct): Move bitfield validation to grokdeclarator
10323         and build_bitfield_integer_type.
10324         * tree.c (build_nonstandard_integer_type): New function.
10325         * tree.h (build_nonstandard_integer_type): New prototype.
10326 objc:
10327         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
10328
10329 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
10330
10331         PR other/1502:
10332         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
10333         don't ignore unrecognized -W* options.
10334         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
10335         * cpplib.h (cpp_handle_option): Adjust prototype.
10336         * c-decl.c (c_decode_options): Pass 0 as last argument to
10337         cpp_handle_option.
10338
10339         PR c/2896:
10340         * gcc.c (cpp_unique_options): Split from cpp_options.
10341         (cpp_options): Source cpp_unique_options.
10342         (default_compilers): Use cpp_unique_options instead of cpp_options
10343         when used together with cc1_options.
10344         (static_specs): Add cpp_unique_options.
10345         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
10346         when used together with cc1_options.
10347
10348 2002-01-29  Kazu Hirata  <kazu@hxi.com>
10349
10350         * config/h8300/h8300-protos.h: Update the prototype of
10351         output_a_shift.
10352         * config/h8300/h8300.c (output_a_shift): Remove an unused
10353         argument 'insn'.  Remove redundant code.
10354         * config/h8300/h8300.md: Adust to the new prototype of
10355         output_a_shift.
10356
10357 2002-01-29  Kazu Hirata  <kazu@hxi.com>
10358
10359         * config/h8300/h8300-protos.h: Update the prototypes of
10360         emit_a_rotate and expand_a_rotate.
10361         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
10362         first argument to 'enum rtx_code'.
10363         (expand_a_rotate): Likewise.
10364
10365 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10366
10367         * config/h8300/h8300-protos.h: Update the prototype of
10368         output_simode_bld.
10369         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
10370         'log2'.
10371         * config/h8300/h8300.md: Adjust to the new prototype.
10372
10373 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10374
10375         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
10376         redundant code.
10377
10378 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10379
10380         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
10381         is a fixed register before returning pic_offset_table_rtx.
10382         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
10383         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
10384
10385 2002-01-28  Jason Merrill  <jason@redhat.com>
10386
10387         * dwarf2.h: Sync with src version.
10388
10389 2002-01-28  Paul Koning  <pkoning@equallogic.com>
10390
10391         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
10392         BT_FN_VOID_PTR_VAR.
10393         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
10394         * doc/extend.texi (__builtin_prefetch): Update documentation:
10395         first argument is now const void ptr.
10396
10397 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10398
10399         * config/h8300/h8300-protos.h: Remove an unused prototype.
10400
10401 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
10402
10403         * toplev.c (lang_independent_init): Round up identifier size.
10404
10405 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
10406
10407         * config.gcc: Revert previous change.
10408
10409 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
10410
10411         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
10412
10413 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
10414
10415         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
10416         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
10417         other non-elf netbsd config frags.
10418         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
10419         collect2 will does that.
10420         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
10421         shared-lib frobbing will work.
10422
10423 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10424
10425         * config/h8300/h8300.h: Fix formatting.
10426         * config/h8300/h8300.md: Likewise.
10427
10428 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
10429
10430         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
10431         the old, removed AAA_standards fix.
10432         * fixinc/fixincl.x: Rebuilt.
10433
10434 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
10435
10436         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
10437         atexit call in crtbegin, hooked in after call to frame_dummy;
10438         register EH before registering __fini__start.
10439
10440 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
10441
10442         * config/rs6000/altivec.h: Remove spurious semicolons.
10443
10444 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10445
10446         * config/h8300/h8300.md: Replace dead bit extraction patterns
10447         with ones that work.
10448
10449 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10450
10451         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
10452         if not STRICT_ALIGNMENT.
10453         * rtl.h (MEM_ALIGN): Likewise.
10454
10455 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10456
10457         * doc/invoke.texi (-fdump-translation-unit): Revert this
10458         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10459
10460 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10461
10462         * config/h8300/h8300.md (define_constants): New.
10463         (anonymous patterns) Use defined constants appropriately.
10464
10465 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10466
10467         * config/h8300/h8300.c (function_arg): Remove redundant code.
10468
10469 2002-01-26  Richard Henderson  <rth@redhat.com>
10470
10471         * sched-deps.c (reg_pending_uses_head): New.
10472         (reg_pending_barrier): Rename from reg_pending_sets_all.
10473         (find_insn_list): Don't mark inline.
10474         (find_insn_mem_list): Remove.
10475         (add_dependence_list, add_dependence_list_and_free): New.
10476         (flush_pending_lists): Replace only_write param with separate
10477         for_read and for_write parameters.  Update all callers.  Use
10478         add_dependence_list_and_free.
10479         (sched_analyze_1): Do not add reg dependencies here; just set
10480         the pending bits.  Use add_dependence_list.
10481         (sched_analyze_2): Likewise.
10482         (sched_analyze_insn): Replace schedule_barrier_found with
10483         reg_pending_barrier.  Add all dependencies for pending reg
10484         uses, sets, and clobbers.
10485         (sched_analyze): Don't add reg dependencies for calls, just
10486         set pending bits.  Use regs_invalidated_by_call.  Treat
10487         sched_before_next_call as a normal list, not a fake insn.
10488         (init_deps): No funny init for sched_before_next_call.
10489         (free_deps): Free pending mems lists.  Don't zero reg_last.
10490         (init_deps_global): Init reg_pending_uses.
10491         (finish_deps_global): Free it.
10492         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
10493         (find_insn_mem_list): Remove.
10494         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
10495         (propagate_deps): Use them.  Zero temp mem lists.
10496
10497 2002-01-26  Richard Henderson  <rth@redhat.com>
10498
10499         * Makefile.in (CRTSTUFF_CFLAGS): New.
10500         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
10501         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
10502         crtstuff.c instead of alpha assembly version.
10503         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
10504         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
10505         not FORCE_{INIT,FINI}_SECTION_ALIGN.
10506         (__do_global_dtors_aux): Mark used.
10507         (frame_dummy, __do_global_ctors_aux): Mark used.
10508         (fini_dummy, init_dummy): Remove.
10509
10510         * config/alpha/crtbegin.asm: Remove file.
10511         * config/alpha/crtend.asm: Remove file.
10512         * config/alpha/t-crtbe: Remove file.
10513         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
10514         (LINK_EH_SPEC): New.
10515
10516         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
10517         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
10518         calling constructors.
10519         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
10520
10521         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
10522         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
10523         CRT_END_INIT_DUMMY hack.
10524         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
10525         FORCE_{INIT,FINI}_SECTION_ALIGN.
10526
10527         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
10528         FORCE_{INIT,FINI}_SECTION_ALIGN.
10529
10530         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
10531         invocation sequence.
10532         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
10533
10534         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
10535         (FORCE_CODE_SECTION_ALIGN): New.
10536
10537 2002-01-26  Richard Henderson  <rth@redhat.com>
10538
10539         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
10540
10541 2002-01-26  Richard Henderson  <rth@redhat.com>
10542
10543         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
10544         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
10545
10546 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10547
10548         * config/h8300/h8300.md: Remove bit extraction patterns that
10549         cannot be triggered.
10550         Restrict each bit extraction pattern to a variant on which the
10551         pattern is tested.
10552
10553 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
10554
10555         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
10556
10557 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10558
10559         * config/h8300/h8300.md: Remove bit test patterns that cannot
10560         be triggered.
10561         Restrict each bit test pattern to a variant on which the
10562         pattern is tested.
10563
10564 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10565
10566         * builtins.c (expand_builtin_strncat): Remove redundant check for
10567         INTEGER_CST.
10568
10569 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10570
10571         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
10572         default setting.
10573         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
10574         existing setting.
10575
10576 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10577
10578         * dbxout.c (dbxout_init): Use assemble_name rather than just
10579         stripping off the first character.
10580         (dbxout_source_file): Likewise.
10581
10582 2002-01-25  DJ Delorie  <dj@redhat.com>
10583
10584         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
10585         using rtx_equal_p, not by comparing pointers.
10586
10587 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
10588
10589         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
10590         for PIC_OFFSET_TABLE_REGNUM.
10591         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
10592
10593 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10594
10595         * config.gcc (x86_64-*-freebsd*): New target.
10596         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
10597         value.
10598         (i[34567]86-*-freebsd*): Don't include svr4.h.
10599         * config/i386/freebsd64.h: New file.
10600
10601 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
10602
10603         * config/alpha/x-vms (version): Make static.
10604
10605         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
10606         in previous checkin.
10607
10608         * Makefile.in (install-headers-cp): New target.
10609         * config.gcc (alpha-dec-*vms*): Install headers with
10610         install-headers-cp
10611
10612 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10613
10614         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
10615         avoid it's copies.
10616
10617 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10618
10619         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
10620         of compare_tree_int.
10621         (expand_builtin_strncat): Likewise.
10622         * c-decl.c (finish_struct): Use tree_low_cst.
10623         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
10624         * tree.c (compare_tree_int): Likewise.
10625
10626 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10627
10628         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
10629         adjustments even if they are implemented by more than two insns.
10630
10631 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10632
10633         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
10634         * df.h (struct ref): Kill B.
10635         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
10636
10637         * basic-block.h (PROP_EQUAL_NOTES): New flag.
10638         * flow.c (propagate_one_insn): Use it.
10639         (mark_used_regs): Handle NIL.
10640
10641 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10642
10643         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
10644         to help folding.
10645
10646 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
10647
10648         * rs6000.md (prefetch): Make address V4SI mode so that the address
10649         is restricted to legitimate form for instruction.
10650
10651 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
10652
10653         * doc/install.texi (xtensa-*-elf): New target.
10654         (xtensa-*-linux*): New target.
10655         * doc/contrib.texi: Add myself.
10656
10657 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
10658
10659         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
10660         purpose register to hold an SImode (or smaller) value.
10661
10662 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
10663
10664         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
10665         registry only.
10666         * crtstuff.c: Likewise.
10667
10668 2002-01-25  Kazu Hirata  <kazu@hxi.com>
10669
10670         * config/h8300/h8300.md (negation patterns): Tighten
10671         predicates to register_operand.
10672
10673 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
10674
10675         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
10676         mode, not Pmode.
10677
10678         * builtins.c (expand_builtin_prefetch): Same.
10679
10680 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10681
10682         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
10683         modes.
10684
10685 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10686
10687         * config/h8300/h8300.c (print_operand): Remove support for
10688         operand character 'A'.
10689         * config/h8300/h8300.md (three anonymous patterns): Replace
10690         operand character 'A' with either 'T' or 'S'.
10691
10692 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10693
10694         * config/h8300/h8300.c (print_operand): Remove support for
10695         operand character 'U'.
10696
10697 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
10698
10699         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
10700
10701 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
10702
10703         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
10704         values to be assigned to the stack pointer.
10705
10706 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10707
10708         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
10709         to const_double needs to be done right for big-endian systems.
10710
10711 2002-01-24  Jason Merrill  <jason@redhat.com>
10712
10713         PR c++/2432
10714         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
10715         to can_throw_internal.
10716
10717 2002-01-23  Richard Henderson  <rth@redhat.com>
10718
10719         * fold-const.c (fold): Change UINT_MAX test to check vs precision
10720         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
10721
10722 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10723
10724         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
10725         (symGOT2reg): Use them, then set as GOT value as unchanging.
10726         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
10727         as a temporary, if possible.
10728         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
10729         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
10730
10731 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10732
10733         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
10734         accept to accept 0x80 as operands[2].
10735
10736 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10737
10738         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
10739
10740 2002-01-23  Richard Henderson  <rth@redhat.com>
10741
10742         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
10743
10744 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
10745
10746         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
10747         (parmlist_or_identifiers_1): Verify that only a parmlist follows
10748         an attribute.
10749
10750 2002-01-23  Richard Henderson  <rth@redhat.com>
10751
10752         * expr.c (move_by_pieces_1): Extend size before negation.
10753
10754         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
10755         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
10756         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
10757         * config/m68k/t-m68kelf: Likewise.
10758
10759 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
10760
10761         * config/xtensa/elf.h: New file.
10762         * config/xtensa/lib1funcs.asm: New file.
10763         * config/xtensa/lib2funcs.S: New file.
10764         * config/xtensa/linux.h: New file.
10765         * config/xtensa/t-xtensa: New file.
10766         * config/xtensa/xtensa-config.h: New file.
10767         * config/xtensa/xtensa-protos.h: New file.
10768         * config/xtensa/xtensa.c: New file.
10769         * config/xtensa/xtensa.h: New file.
10770         * config/xtensa/xtensa.md: New file.
10771         * config.gcc (xtensa-*-elf*): New target.
10772         (xtensa-*-linux*): New target.
10773         * cse.c (canon_hash): Compare rtx pointers instead of register
10774         numbers.  This is required for the Xtensa port.
10775         * integrate.c (copy_insn_list): Handle case where the static
10776         chain is in memory and the memory address has to be copied to
10777         a register.
10778         * doc/invoke.texi (Option Summary): Add Xtensa options.
10779         (Xtensa Options): New node.
10780         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
10781
10782 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10783
10784         * diagnostic.c (internal_error): Do ICE suppression only
10785         when ENABLE_CHECKING is not defined.
10786
10787         * c-typeck.c (require_complete_type): Return error_mark_node
10788         if type is error_mark_node.
10789
10790 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
10791
10792         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
10793         -Os and issue a warning.
10794
10795 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10796
10797         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
10798         current (lack of) need for host configuration by hand.
10799
10800         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
10801         references.  Documentation of some target macros moved from
10802         hostconfig.texi to tm.texi.
10803
10804 2002-01-23  Will Cohen  <wcohen@redhat.com>
10805
10806         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
10807         defined.
10808
10809 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10810
10811         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
10812         operand[3].
10813
10814 2002-01-23  Jason Merrill  <jason@redhat.com>
10815
10816         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
10817
10818         * function.c (assign_parms): Don't put args of inline functions
10819         into registers when not optimizing.
10820
10821 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
10822
10823         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
10824         (prologue_use): New pattern.
10825         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
10826         preference to gen_rtx_USE.
10827         (thumb_expand_prologue): Use gen_prologue_use in preference to
10828         gen_rtx_USE.
10829         (thumb_expand_epilogue): Use gen_prologue_use in preference to
10830         gen_rtx_USE.
10831
10832 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
10833
10834         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
10835
10836 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10837
10838         PR c/3504
10839         * doc/extend.texi: Correct documentation of __alignof__.
10840
10841 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
10842
10843         * params.h: Rename arguments of DEFPARAM so that it will be
10844         recognized as a translation keyword.
10845
10846 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10847
10848         * extend.texi: Document altivec functions.
10849         Fix N-bit adjectives in X86 builtin documentation.
10850
10851 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10852
10853         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
10854         auto_inc_dec values.
10855
10856 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
10857
10858         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
10859         after backslash.
10860         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
10861
10862 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10863
10864         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
10865
10866 2002-01-22  Richard Henderson  <rth@redhat.com>
10867
10868         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
10869         copy_insn not copy_rtx.
10870
10871 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
10872
10873         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
10874         "nonzero" as that might add "1" bits.  Ensure "constop" is
10875         properly sign extened.
10876         (force_to_mode): Tweak for sign extended constop.
10877
10878 2002-01-22  Richard Henderson  <rth@redhat.com>
10879
10880         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
10881         for_each_rtx instead of assuming we're already looking at the MEM.
10882         (split_small_symbolic_mem_operand): Likewise.
10883         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10884         * config/alpha/alpha.md (small symbolic memory splitters): Update.
10885
10886 2002-01-22  Richard Henderson  <rth@redhat.com>
10887
10888         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
10889         sequence number for the literal.
10890         (divmoddi_internal_er): Likewise.
10891
10892 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10893
10894         PR java/4972
10895         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
10896         in LIBICONV variable.
10897         * configure: Regenerated.
10898
10899 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
10900
10901         * dependence.c (build_def_use): Remove array_idx.
10902
10903         * dwarfout.c (last_filename): Remove.
10904         (output_compile_unit_die): Remove last_filename.
10905
10906 2002-01-22  Roger Sayle  <roger@eyesopen.com>
10907             Richard Henderson  <rth@redhat.com>
10908
10909         PR opt/3640
10910         * fold-const.c (fold): Optimize unsigned comparisons against
10911         UINT_MAX (and similar unsigned constants).
10912
10913 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
10914
10915         * Makefile.in (loop.o): Depend on OPTABS_H.
10916         * loop.c (emit_prefetch_instructions): Check the prefetch operand
10917         against the predicate.
10918
10919         PR target/5379
10920         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
10921         for the address operand.
10922
10923 2002-01-22  Richard Henderson  <rth@redhat.com>
10924
10925         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
10926
10927 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10928
10929         PR other/5450
10930         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
10931         preprocessor flags.
10932
10933 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
10934
10935         * config.gcc (x86_64-*-netbsd*): New target.
10936         * config/i386/netbsd64.h: New file.
10937
10938 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10939
10940         * regrename.c (kill_value): Fix typo.
10941
10942 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10943
10944         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
10945
10946         * config/rs6000/rs6000.h: Same.
10947
10948         * function.c (instantiate_virtual_regs): Remove
10949         STARTING_FRAME_PHASE.
10950         (assign_stack_local_1): Same.
10951         Calculate frame phase.
10952
10953 2002-01-22  Nick Clifton  <nickc@redhat.com>
10954
10955         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
10956         variable declaration to outer scope in order to simplify
10957         future extensions.
10958         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
10959         arm_hard_regno_mode_ok.
10960         * config/arm/arm-protos.h: Add a prototype for
10961         arm_hard_regno_mode_ok.
10962         * config/arm/arm.c (soft_df_operand): Remove now redundant
10963         check for DImode values using IP_REGNUM.
10964         (nonimmediate_soft_df_operand): Remove now redundant check for
10965         DImode values using IP_REGNUM.
10966         (arm_hard_regno_mode_ok): New function. New check: make sure
10967         that DImode values are not stored in IP_REGNUM.
10968
10969         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
10970         note with a USE.
10971         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
10972
10973 2002-01-22  Jason Merrill  <jason@redhat.com>
10974
10975         * c-semantics.c (genrtl_compound_stmt): Only check nesting
10976         consistency if this COMPOUND_STMT is scoped.
10977
10978 2002-01-22  Kazu Hirata  <kazu@hxi.com>
10979
10980         * predict.c: Fix formatting.
10981         * print-tree.c: Likewise.
10982         * protoize.c: Likewise.
10983         * real.h: Likewise.
10984         * rtl.h: Likewise.
10985         * sbitmap.h: Likewise.
10986         * scan.c: Likewise.
10987         * sched-deps.c: Likewise.
10988         * sched-vis.c: Likewise.
10989         * sdbout.c: Likewise.
10990         * sibcall.c: Likewise.
10991         * ssa.c: Likewise.
10992         * ssa-ccp.c: Likewise.
10993         * ssa-dce.c: Likewise.
10994         * stmt.c: Likewise.
10995         * stor-layout.c: Likewise.
10996         * system.h: Likewise.
10997
10998 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10999
11000         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
11001         if fits in bounds of base type.
11002
11003         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
11004         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
11005         (add_bound_info, default): If can't find a context, make a
11006         SAVE_EXPR.
11007         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
11008
11009 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
11010
11011         * c-typeck.c (parser_build_binary_op): If result from
11012         build_binary_op is ERROR_MARK just return error_mark_node without
11013         further processing.
11014
11015 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
11016
11017         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
11018         Split a.out-specific bits into...
11019         * config/netbsd-aout.h: ...this.
11020         * config/netbsd-elf.h: New file.
11021         * config/alpha/netbsd-elf.h: Remove.
11022         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
11023         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
11024         (STARTFILE_SPEC): Remove redundant definition.
11025         (ENDFILE_SPEC): Likewise.
11026         (LINK_SPEC): Likewise.
11027         (CPP_SPEC): Likewise.
11028         (ASM_SPEC): Likewise.
11029         (LIB_SPEC): Likewise.
11030         (SWITCH_TAKES_ARG): Likewise.
11031         (TARGET_MEM_FUNCTIONS): Likewise.
11032         (CPP_PREDEFINES): Redefine.
11033         (ASM_FINAL_SPEC): Remove redefinition.
11034         (ASM_COMMENT_START): Redefine.
11035         (FUNCTION_PROFILER): Define.
11036         (TARGET_VERSION): Redefine.
11037         Comment and formatting cleanup.
11038         * config/i386/netbsd.h: Include <netbsd-aout.h>.
11039         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
11040         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
11041         big- or little-endian.
11042         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
11043         * config.gcc (*-*-netbsd*): Add definitions common to all
11044         NetBSD configs.
11045         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
11046         gnu_ld definitions.  Add netbsd-elf.h to and remove
11047         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
11048         tmake_file, and don't lose previous tmake_file contents.
11049         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
11050         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
11051         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
11052         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
11053         (mipsel-*-netbsd*): Rename this to...
11054         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
11055         mips/little.h to tm_file for mips*el-*.
11056         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
11057         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
11058         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
11059
11060 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11061
11062         * pa-protos.h (reg_before_reload_operand): New function prototype.
11063         * pa.c (reg_before_reload_operand): New function implementation.
11064         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
11065         contraints to "*m".
11066
11067 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11068
11069         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
11070
11071 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11072
11073         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
11074         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
11075         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
11076         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
11077         (ENDFILE_SPEC): Undefine.
11078         (STARTFILE_SPEC): Redefine for PA.
11079
11080 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11081
11082         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
11083
11084 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
11085
11086         * config.gcc: Add entries to supported PowerPC --with-cpu
11087         types.
11088
11089 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
11090
11091         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
11092         true for 64-bit mode only SSE registers in 32-bit mode.
11093
11094 2002-01-21  Kazu Hirata  <kazu@hxi.com>
11095
11096         * unwind-dw2.c: Fix formatting.
11097         * unwind-dw2-fde.c: Likewise.
11098         * unwind-dw2-fde.h: Likewise.
11099         * unwind-pe.h: Likewise.
11100         * varasm.c: Likewise.
11101         * varray.h: Likewise.
11102
11103 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
11104
11105         Remove workaround for register stack overwrite bug in mmix.
11106         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
11107         support for TARGET_REG_STACK_FILL_BUG.
11108         * config/mmix/mmix.h: Remove member has_call_without_parameters.
11109         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
11110         Delete.
11111         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
11112         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
11113         -mno-reg-stack-fill-bug-workaround.
11114         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
11115         machine member has_call_without_parameters.
11116         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
11117         -mreg-stack-fill-bug-workaround and
11118         -mno-reg-stack-fill-bug-workaround.
11119         (MMIX Options): Ditto.
11120
11121 2002-01-21  Kazu Hirata  <kazu@hxi.com>
11122
11123         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
11124         as appropriate.
11125         Remove redundant code.
11126
11127 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
11128
11129         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
11130         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
11131         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
11132         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
11133         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
11134         out target macro definitions and non-target-specific comments
11135         mostly taken from old versions of the manual.
11136
11137 2002-01-20  Kazu Hirata  <kazu@hxi.com>
11138
11139         * config/h8300/h8300.h: Fix comment formatting.
11140         * config/ia64/aix.h: Likewise.
11141         * config/ia64/ia64-protos.h: Likewise.
11142         * config/ia64/ia64.c: Likewise.
11143         * config/ia64/ia64.h: Likewise.
11144         * config/ia64/ia64intrin.h: Likewise.
11145         * config/ia64/linux.h: Likewise.
11146         * config/ia64/unwind-aix.c: Likewise.
11147         * config/ia64/unwind-ia64.c: Likewise.
11148
11149 2002-01-20  Kazu Hirata  <kazu@hxi.com>
11150
11151         * config/h8300/h8300.c: Revise comments about shift code.
11152
11153 2002-01-20  Kazu Hirata  <kazu@hxi.com>
11154
11155         * config/h8300/h8300.c (function_arg): Update a comment.
11156
11157 2002-01-20  Kazu Hirata  <kazu@hxi.com>
11158
11159         * config/h8300/h8300.md: Update the comments at the beginning
11160         of the file.
11161
11162 2002-01-20  Kazu Hirata  <kazu@hxi.com>
11163
11164         * config/i370/i370.c: Fix comment formatting.
11165         * config/i370/i370.h: Likewise.
11166         * config/i370/i370.md: Likewise.
11167         * config/i370/linux.h: Likewise.
11168
11169 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11170
11171         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
11172
11173         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
11174         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
11175         in incomplete case.
11176
11177 2002-01-20  Graham Stott  <grahams@redhat.com>
11178
11179         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
11180
11181 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11182
11183         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
11184
11185 2002-01-19  Tom Rix  <trix@redhat.com>
11186
11187         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
11188
11189 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
11190
11191         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
11192
11193         * function.c (assign_stack_local_1): Adjust x_frame_offset with
11194         STARTING_FRAME_PHASE.
11195         (STARTING_FRAME_PHASE): New.
11196         (instantiate_virtual_regs): Check saneness of
11197         STARTING_FRAME_PHASE.
11198
11199         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
11200
11201 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
11202
11203         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
11204
11205 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11206
11207         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
11208         be used for bootstrapping GCC 3.0.
11209
11210 2002-01-18  Kazu Hirata  <kazu@hxi.com>
11211
11212         * config/h8300/h8300.md: Fix an insn length.
11213
11214 2002-01-18  Kazu Hirata  <kazu@hxi.com>
11215
11216         * bitmap.h: Fix comment formatting.
11217         * combine.c: Likewise.
11218         * cppfiles.c: Likewise.
11219         * c-pragma.h: Likewise.
11220         * c-typeck.c: Likewise.
11221         * df.c: Likewise.
11222         * dwarf2out.c: Likewise.
11223         * function.c: Likewise.
11224         * gcc.c: Likewise.
11225         * genattrtab.c: Likewise.
11226         * gthr-win32.h: Likewise.
11227         * haifa-sched.c: Likewise.
11228         * predict.c: Likewise.
11229         * rtlanal.c: Likewise.
11230         * rtl.h: Likewise.
11231         * unwind-dw2-fde.h: Likewise.
11232         * unwind-pe.h: Likewise.
11233         * vmsdbgout.c: Likewise.
11234
11235 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11236
11237         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
11238         if type_required and passed decl.
11239
11240 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
11241
11242         * config.gcc (cpu_type): Include altivec.h in powerpc
11243         extra_headers.
11244         Same for darwin.
11245
11246         * config/rs6000/altivec.h: New.
11247
11248 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
11249
11250         * doc/install.texi (*-ibm-aix*): Update assembler and exception
11251         handling information.
11252         * doc/trouble.texi (Interoperation): Add libstdc++ information
11253         for AIX.
11254         (Misunderstandings): Add template instantiation and static template
11255         member information for AIX.
11256
11257 2002-01-17  Jason Merrill  <jason@redhat.com>
11258
11259         * dbxout.c (dbxout_type): Support const and volatile.
11260
11261         * except.c (add_partial_entry): Remove backwards compatibility code.
11262         (end_protect_partials): Likewise.
11263
11264 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
11265
11266         * config/ia64/ia64.md (prologue_use): New.
11267         * config/ia64/ia64.c (ia64_expand_prologue): Use
11268         gen_prologue_use instead of gen_rtx_USE.
11269         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
11270         as CODE_FOR_pred_rel_mutex.
11271         (ia64_sched_reorder2): Likewise.
11272
11273 2002-01-16  Eric Christopher  <echristo@redhat.com>
11274
11275         * config/mips/r3900.h: Reformat.
11276         (SUBTARGET_CPP_SIZE_SPEC): Remove.
11277         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
11278         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
11279         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
11280         * config/mips/t-elf: Remove mips3 multilib.
11281
11282 2002-01-16  H.J. Lu <hjl@gnu.org>
11283
11284         * config/mips/linux.h: Include "mips/abi64.h".
11285
11286 2002-01-16  H.J. Lu <hjl@gnu.org>
11287
11288         * config/mips/t-linux: New.
11289
11290         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
11291
11292         * config/mips/linux.h: Don't include "gofast.h".
11293         (INIT_SUBTARGET_OPTABS): Removed.
11294
11295 2002-01-16  Kazu Hirata  <kazu@hxi.com>
11296
11297         * config/h8300/h8300-protos.h: Replace emit_a_shift with
11298         output_a_shift.
11299         * config/h8300/h8300.c: Likewise.
11300         * config/h8300/h8300.md: Likewise.
11301
11302 2002-01-16  Kazu Hirata  <kazu@hxi.com>
11303
11304         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
11305         spaces after an opcode name.
11306         (pushqi1_h8300hs): Likewise.
11307         (pushhi1_h8300hs): Likewise.
11308
11309 2002-01-16  Kazu Hirata  <kazu@hxi.com>
11310
11311         * doc/extend.texi: Replace "option" with "attribute"
11312         appropriately.
11313
11314 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
11315
11316         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
11317         (and:DI () (const_int -8)).
11318         (split_small_symbolic_mem_operand): Split
11319         (mem (and:DI () (const_int -8)).
11320
11321 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
11322
11323         PR target/5309:
11324         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
11325         same way as TYPE_IMUL.
11326         (ultrasparc_sched_reorder): Likewise.
11327         * config/sparc/sparc.md (type): Add comment to update
11328         ultrasparc_sched_reorder when making changes.
11329
11330 2002-01-16  Kazu Hirata  <kazu@hxi.com>
11331
11332         * doc/invoke.texi: Change the dump file name of block
11333         reordering pass from 28.bbro to 29.bbro.
11334         Mention -dk option.
11335
11336 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
11337
11338         * i386.md (minsf splitter): Fix pasto.
11339
11340 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
11341
11342         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
11343         to frame pointer initialisation instruction.
11344         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
11345         initialisation instruction.
11346         (soft_df_operand): Do not accept the IP register.
11347         (nonimmediate_soft_df_operand): Do not accept the IP register.
11348
11349 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
11350
11351         PR target/5357:
11352         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
11353         MASK_V8 being both set.
11354
11355 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
11356
11357         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
11358         insn for GOT register; add REG_MAYBE_DEAD notes instead.
11359         config/s390/s390.md (call, call_value): Add GOT register to
11360         CALL_INSN_FUNCTION_USAGE where needed.
11361         (call_exp, call_value_exp): New.
11362
11363 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
11364
11365         * config/arm/arm.c: General formatting tidy up.
11366
11367 2002-01-16  Graham Stott  <grahams@redhat.com>
11368
11369         * calls.c (try_to_integrate): Use "(size_t)" intermediate
11370         cast and when casting an integer literal to "rtx" pointer.
11371         (expand_call): Likewise.
11372         * flow.c (try_pre_increment): Likewise.
11373         (find_use_as_address): Likewise.
11374         * integrate.c (expand_iline_function): Likewise.
11375         * regmove.c (try_auto_increment): Likewise.
11376
11377 2002-01-16  Graham Stott  <grahams@redhat.com>
11378
11379         * sched-rgn.c (passed): Use sbitmap_free.
11380         (header): Likewise.
11381         (inner): Likewise.
11382         (in_queue): Likewise.
11383         (in_stack): Likewise.
11384
11385 2002-01-15  Eric Christopher  <echristo@redhat.com>
11386
11387         * flow.c (propagate_one_insn): Change to use fatal_insn.
11388
11389 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11390
11391         * expmed.c (extract_fixed_bit_field): Remove unused code.
11392         * system.h: Poison SLOW_ZERO_EXTEND.
11393         * doc/tm.texi: Remove.
11394         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
11395         * config/arm/arm.h: Likewise.
11396         * config/avr/avr.h: Likewise.
11397         * config/clipper/clipper.h: Likewise.
11398         * config/convex/convex.h: Likewise.
11399         * config/d30v/d30v.h: Likewise.
11400         * config/dsp16xx/dsp16xx.h: Likewise.
11401         * config/elxsi/elxsi.h: Likewise.
11402         * config/fr30/fr30.h: Likewise.
11403         * config/h8300/h8300.h: Likewise.
11404         * config/i370/i370.h: Likewise.
11405         * config/i386/i386.h: Likewise.
11406         * config/m68k/m68k.h: Likewise.
11407         * config/mips/mips.h: Likewise.
11408         * config/ns32k/ns32k.h: Likewise.
11409         * config/pdp11/pdp11.h: Likewise.
11410         * config/pj/pj.h: Likewise.
11411         * config/s390/s390.h: Likewise.
11412         * config/sh/sh.h: Likewise.
11413         * config/stormy16/stormy16.h: Likewise.
11414         * config/v850/v850.h: Likewise.
11415         * config/vax/vax.h: Likewise.
11416         * config/we32k/we32k.h: Likewise.
11417
11418 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
11419
11420         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
11421         (altivec_lvsl): Change constraint to b.
11422         (altivec_lvsr): Same.
11423         (altivec_lvebx): Same.
11424         (altivec_lvehx): Same.
11425         (altivec_lvewx): Same.
11426         (altivec_lvxl): Same.
11427         (altivec_lvx): Same.
11428         (altivec_stvx): Add parallel.
11429         (altivec_stvxl): Same.
11430         (altivec_stvehx): Same.
11431         (altivec_stvebx): Same.
11432         (altivec_stvebx): Same.
11433
11434 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
11435
11436         * config.gcc: Change altivec.h to altivec-defs.h.
11437
11438         * config/rs6000/altivec.h: Delete.
11439
11440         * config/rs6000/altivec-defs.h: Add.
11441
11442 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11443
11444         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
11445         and UMOD modes.
11446
11447         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
11448         less than or equal to eight bytes.
11449
11450         * vax.md (andsi3): Remove constraints and change SET destination
11451         operand type to nonimmediate_operand.
11452         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
11453         when it is a CONST_INT.
11454
11455 2002-01-15  Jason Merrill  <jason@redhat.com>
11456
11457         * c-common.def (FILE_STMT): New code.
11458         * c-common.c (statement_code_p): It's a statement.
11459         * c-common.h (stmt_tree_s): Add x_last_filename.
11460         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
11461         (last_expr_filename): New macro.
11462         * c-semantics.c (begin_stmt_tree): Initialize it.
11463         (add_stmt): If the filename changed, also insert a
11464         FILE_STMT.
11465         (expand_stmt): Handle seeing one.
11466
11467 2002-01-15  Eric Christopher  <echristo@redhat.com>
11468
11469         * flow.c (propagate_one_insn): Add error message and print out
11470         insn for debugging.
11471
11472 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
11473
11474         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
11475         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
11476         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
11477         TRAMPOLINE_ALIGNMENT.
11478         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
11479         to be in bits.
11480         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
11481         PCC_BITFIELD_TYPE_MATTERS.
11482         * config/interix.h (STDC_VALUE): Remove.  Use
11483         STDC_0_IN_SYSTEM_HEADERS.
11484         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
11485         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
11486         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
11487
11488 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11489
11490         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
11491         not work on this platform currently.
11492
11493 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
11494
11495         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
11496         readonly_warning in _().
11497
11498 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
11499
11500         * gcc.c (delete_if_ordinary): Backout previous change.
11501
11502 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11503
11504         * config/h8300/h8300.c (print_operand): Remove support for
11505         unused operand characters.
11506
11507         * read-rtl.c: Fix formatting.
11508         * real.c: Likewise.
11509         * recog.c: Likewise.
11510         * regclass.c: Likewise.
11511         * regmove.c: Likewise.
11512         * reg-stack.c: Likewise.
11513         * reload1.c: Likewise.
11514         * rtlanal.c: Likewise.
11515
11516 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11517
11518         * config/i386/i386.c: Fix formatting.
11519
11520 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
11521
11522         * c-typeck.c (process_init_element): Don't save_expr
11523         COMPOUND_LITERAL_EXPR if just its initializer will be used.
11524
11525 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
11526
11527         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
11528         emit optional traceback table if optimize_size or TARGET_ELF.
11529         * config/rs6000/rs6000.md (prefetch): New.
11530
11531 2002-01-15  Andreas Jaeger  <aj@suse.de>
11532
11533         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
11534
11535 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11536
11537         * mips-tfile.c: Fix formatting.
11538
11539 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11540
11541         * unroll.c (final_reg_note_copy): Fix previous commit.
11542
11543 2002-01-14  Kazu Hirata  <kazu@hxi.com>
11544
11545         * config/h8300/h8300-protos.h: Remove the prototype for
11546         eq_operator.
11547         * config/h8300/h8300.c (eq_operator): Remove.
11548
11549 2002-01-14  Richard Henderson  <rth@redhat.com>
11550
11551         * config/i386/i386.md (prefetch): Tidy.
11552         (prefetch_3dnow): Fix locality operand.
11553
11554 2002-01-14  Richard Henderson  <rth@redhat.com>
11555
11556         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
11557         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
11558
11559 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
11560
11561         * reload1.c (reload_combine): Pass reg_sum replacement through
11562         copy_rtx in loop performing multiple changes.
11563
11564 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
11565
11566         * except.c (remove_unreachable_regions): New.
11567         (free_eh_status): Clear exception_handler_labels.
11568         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
11569         (find_exception_handler_labels): Don't add the same label more than
11570         once.
11571         (remove_exception_handler_label): Don't die if
11572         find_exception_handler_labels hasn't been called for the current
11573         function yet.
11574
11575 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
11576
11577         * toplev.c (rest_of_compilation): Rebuild jump labels after
11578         gcse.
11579
11580 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
11581
11582         * doc/extend.texi: Move documentation of X86 built-in functions
11583         here.
11584         * doc/invoke.texi: From here.
11585         * doc/sourcebuild.texi: Document location of documentation for
11586         machine built-in functions.
11587
11588 2002-01-13  Christopher Faylor  <cgf@redhat.com>
11589
11590         * cppfiles.c (TEST_THRESHOLD): New macro.
11591         (SHOULD_MMAP): Ditto.
11592         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
11593         be used.
11594
11595 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11596
11597         * unroll.c (final_reg_note_copy): Properly handle
11598         REG_LABEL
11599         (unroll_loops): Fix LOOP_CONDITION heuristics.
11600
11601 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
11602
11603         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
11604         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
11605
11606 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
11607
11608         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
11609         threaded loop.
11610
11611 2002-01-14  Tom Rix  <trix@redhat.com>
11612
11613         * config/rs6000/rs6000.md: Fix typo with sradi.
11614
11615 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
11616
11617         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
11618         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
11619         (clrstrdi, clrstrsi): Adapt callers.
11620
11621         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
11622
11623         (movti splitter): Never use register 0 as base register.
11624
11625 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11626
11627         * combine.c (simplify_shift_const): Always generate new rtx
11628         for shift expression instead of reusing given expression.
11629
11630 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11631
11632         * config/alpha/alpha.c (alpha_expand_mov): Don't call
11633         alpha_legitimize_address unless mode is Pmode.
11634
11635 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
11636
11637         * doc/md.texi (Modifiers): Document the '*' constraint for the
11638         user.
11639
11640         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
11641         * doc/extend.texi (Function Attributes): 'interrupt' is valid
11642         for xstormy16 too.
11643
11644 2002-01-13  Richard Henderson  <rth@redhat.com>
11645
11646         * reload.c (find_reloads): Use a hard reg destination as reload reg
11647         for an input reload of the source.
11648
11649 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11650
11651         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
11652         more generic.
11653
11654 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
11655
11656         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11657         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11658
11659         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
11660
11661 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11662
11663         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
11664
11665 2002-01-12  Tom Rix  <trix@redhat.com>
11666
11667         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
11668         TARGET_POWERPC64.
11669
11670 2002-01-12  Richard Henderson  <rth@redhat.com>
11671
11672         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
11673
11674         * doc/invoke.texi: Update Alpha options.
11675
11676         * doc/invoke.texi: Update i386 built-in function lists.
11677
11678 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11679
11680         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
11681         referencing outside.
11682
11683 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11684
11685         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
11686         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
11687         offsets, and change line folding.
11688         * optabs.c (expand_binop): Remove warnings.
11689         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
11690
11691 2002-01-12  Graham Stott <grahams@redhat.com>
11692
11693         * attribs.c (handle_deprecated_attribute): constify WHAT.
11694         * diagnostic.c (warn_deprecated_use): Add braces, fixes
11695         dangling else warning and constify WHAT.
11696         * except.h (struct function, struct inline_remap): Move
11697         struct tag forward defs before all prototypes.
11698         (duplicate_eh_regions): Whitespace.
11699
11700 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
11701
11702         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11703         MODE_BASE_REG_CLASS.
11704         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
11705
11706 2002-01-12  Richard Henderson  <rth@redhat.com>
11707
11708         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
11709         (ix86_expand_vector_move): New.
11710         (bdesc_2arg): Remove andps, andnps, orps, xorps.
11711         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
11712         Remove old prefetch builtins.  Special case the logicals removed above.
11713         (ix86_expand_builtin): Likewise.
11714         (safe_vector_operand): Use V4SFmode, not TImode.
11715         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
11716         (ix86_expand_timode_binop_builtin): New.
11717         * config/i386/i386-protos.h: Update.
11718         * config/i386/i386.h (enum ix86_builtins): Update.
11719         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
11720         Use ix86_expand_vector_move in vector move expanders.
11721         (movti_internal, movti_rex64): Add xorps alternative.
11722         (sse_clrv4sf): Rename and adjust from sse_clrti.
11723         (prefetch): Don't work so hard.
11724         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
11725         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
11726         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
11727
11728 2002-01-11  Richard Henderson  <rth@redhat.com>
11729
11730         * config/i386/mmintrin.h: New file.
11731         * config/i386/xmmintrin.h: New file.
11732         * config.gcc (i?86-*-*): Add extra_headers.
11733         * simplify-rtx.c (simplify_unary_operation): Handle saturating
11734         truncation codes.
11735         (simplify_binary_operation): Handle saturating arithmetic codes.
11736         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
11737         not the lowpart subreg.
11738         (ix86_expand_builtin): Return a TImode dummy register instead of 0
11739         on error.
11740         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
11741
11742 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11743
11744         * conflict.c (conflict_graph_compute): Free regsets when finished.
11745         * ssa.c (compute_coalesced_reg_partition): Likewise.
11746
11747 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11748
11749         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
11750         every where we allocate a register.
11751
11752 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11753
11754         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
11755         * lcm.c (compute_earliest, compute_farthest): Likewise.
11756
11757 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11758
11759         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
11760
11761 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11762
11763         * doc/rtl.texi (Insns): Fix 2 typos.
11764
11765 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
11766
11767         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
11768         options.  Use @table @gcctabopt for MMIX options.  Add index
11769         entries for MMIX options.  Start new paragraph with first
11770         heading of the machine-dependent options.
11771
11772 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11773
11774         PR other/5299
11775         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
11776         * combine.c (force_to_mode): Same.
11777         * reload1.c (clear_reload_reg_in_use): Same.
11778
11779 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
11780
11781         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
11782         and 'subtargets'.
11783
11784 2002-01-11  Andreas Jaeger  <aj@suse.de>,
11785             Brad Lucier <lucier@math.purdue.edu>
11786
11787         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
11788         mcpu.
11789
11790 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
11791
11792         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
11793         Protect with IN_LIBGCC.
11794         (LINK_EH_SPEC): Add required trailing space.
11795
11796 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11797
11798         * c-tree.h: Move function declarations so that they are listed
11799         under the filename which contains them.
11800         (check_identifier, finish_decl_top_level,
11801         lookup_name_current_level_global, shadow_record_fields): Remove.
11802
11803 2002-01-11  Andreas Jaeger  <aj@suse.de>
11804
11805         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
11806         march.
11807
11808 2002-01-10  Richard Henderson  <rth@redhat.com>
11809
11810         * config/alpha/alpha.c (print_operand): Add 'J'.
11811         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
11812         new operand with the sequence number for the lituse.  When splitting
11813         the insns, use gen_movdi_er_high_g and generate a sequence number.
11814         (gen_movdi_er_high_g): Print the sequence number if non-zero.
11815
11816 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
11817
11818         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
11819         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
11820         stvxl.
11821         (altivec_expand_builtin): Same.
11822         (altivec_expand_stv_builtin): New.
11823
11824         * config/rs6000/rs6000.h (rs6000_builtins): Same.
11825
11826         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
11827         ("altivec_lvehx"): New.
11828         ("altivec_lvewx"): New.
11829         ("altivec_lvxl"): New.
11830         ("altivec_lvx"): New.
11831         ("altivec_stvx"): New.
11832         ("altivec_stvebx"): New.
11833         ("altivec_stvehx"): New.
11834         ("altivec_stvewx"): New.
11835         ("altivec_stvxl"): New.
11836
11837 2002-01-10  Richard Henderson  <rth@redhat.com>
11838
11839         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
11840         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
11841         care not to delete instructions twice.
11842
11843 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11844
11845         * toplev.c: Don't declare environ (it's not used anywhere).
11846         * configure.in: Don't check for declaration of environ.
11847         * config/i386/xm-mingw32.h: Don't #define environ.
11848         * config.in, configure: Regenerate.
11849
11850 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11851
11852         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
11853         * configure: Regenerate.
11854
11855         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
11856         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
11857         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
11858         alpha/xm-vms.h.
11859         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
11860         LIMITS_H_TEST here, not in m68k/x-next.
11861         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
11862         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
11863
11864         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
11865         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
11866         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
11867
11868         * config/i386/x-djgpp: Renamed i386/t-djgpp.
11869         * config/m88k/x-dolph: Renamed m88k/t-dolph.
11870         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
11871         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
11872         replacement of quadlib.asm with quadlib.c.
11873
11874         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
11875         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
11876         config/rs6000/xm-beos.h: Delete file.
11877
11878         * config.gcc: Update to match above changes.
11879
11880 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11881
11882         * config/h8300/h8300.h: Fix comment typos.
11883         * config/h8300/h8300.md: Likewise.
11884         * config/h8300/lib1funcs.asm: Likewise.
11885
11886 2002-01-10  Dale Johannesen  <dalej@apple.com>
11887
11888         PR optimization/5269
11889         * unroll.c (precondition_loop_p): Make *increment be the correct
11890         sign when n_iterations known, to avoid confusing caller.
11891
11892 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11893
11894         * doc/extend.texi (deprecated): Fix a typo.
11895
11896 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
11897
11898         * basic-block.h (update_br_prob_note): Declare.
11899         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
11900         (try_forward_edges): Care negative frequencies and update note.
11901         (outgoing_edges_match): Tweek conditional merging heuristics.
11902         (try_crossjump_to_edge): use update_br_prob_note.
11903         * cfglayout.c (fixup_reorder_chain): Likewise.
11904         * cfrtl.c (update_br_prob_note): New.
11905         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
11906
11907         * i386.c (ix86_decompose_address): Return -1 if address contains
11908         shift.
11909         (legitimate_address_p): Require ix86_decompose_address to return 1.
11910
11911         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
11912         (cprop_insn): Likewise.
11913
11914 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11915
11916         * toplev.c: Fix formatting.
11917         * tree.c: Likewise.
11918         * tree-dump.c: Likewise.
11919         * unroll.c: Likewise.
11920         * unwind-dw2.c: Likewise.
11921         * unwind-dw2-fde.c: Likewise.
11922         * unwind-dw2-fde-glibc.c: Likewise.
11923         * unwind-sjlj.c: Likewise.
11924
11925 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11926
11927         * doc/invoke.texi: Document PDP-11 options.
11928
11929 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11930
11931         * config/h8300/h8300.h: Fix formatting.
11932
11933 2002-01-10  Ira Ruben   <ira@apple.com>
11934
11935         Add __attribute__ ((deprecated)).
11936         * extend.texi: Document __attribute__ ((deprecated)).
11937         * invoke.texi: Document -Wno-deprecated-declarations.
11938         * testsuite/g++.dg/other/deprecated.C: New C++ test.
11939         * testsuite/gcc.dg/deprecated.c: New C test.
11940         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
11941         (c_common_attribute_table): Add "deprecated" entry.
11942         (handle_deprecated_attribute): New function.
11943         * c-decl.c (deprecated_states): New enum.
11944         deprecated_state: State of "deprecated" handling.
11945         (start_decl): Set deprecated_state based on attributes.
11946         (grokdeclarator): Test for deprecated uses, propagate attribute.
11947         * c-typeck.c (build_component_ref): Test for deprecated fields.
11948         (build_external_ref): Test for deprecated primaries.
11949         * diagnostic.c (warn_deprecated_use) New function to issue
11950         warnings about __attribute__ ((depricated)) references.
11951         * flags.h (warn_deprecated_decl): Extern declared for
11952         -W[no-]deprecated-declarations option.
11953         * print-tree.c (print_node): Show deprecated flag status.
11954         * toplev.c (warn_deprecated_decl): Defined.
11955         (W_options): Added "deprecated-declaration".
11956         * toplev.h (warn_deprecated_use): Extern declared.
11957         * tree.h (struct tree_common): Define deprecated_flag.
11958         (TREE_DEPRECATED): New macro to access flag.
11959         * cp/call.c (build_call): Test for deprecated calls.
11960         * cp/class.c (add_implicitly_declared_members): Set global
11961         flag to tell grokdeclarator to not issue deprecated warnings.
11962         * cp/cp-tree.h: Add extern for adding_implicit_members.
11963         * cp/decl.c (deprecated_states): New enum.
11964         (start_decl): Set deprecated_state based on attributes.
11965         (grokdeclarator): Test for deprecated uses, propagate attribute.
11966         * cp/lex.c (do_identifier): Test for deprecated primaries.
11967         * cp/typeck.c (build_component_ref): Test for deprecated fields.
11968
11969 2002-01-10  Ira Ruben   <ira@apple.com>
11970
11971         Fix to assign attributes to inline member functions.
11972         * cp/decl.c (start_method): Handle attrlist.
11973
11974 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11975
11976         * combine.c (expand_field_assignment): Use subreg_lsb().
11977
11978 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
11979
11980         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
11981         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
11982         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
11983         Recurse for any operand of AND as long as constant is non-zero.
11984
11985 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11986
11987         * config/h8300/h8300.md: Remove constraints from expanders.
11988
11989 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11990
11991         * varasm.c: Fix formatting.
11992         * varray.c: Likewise.
11993         * vmsdbgout.c: Likewise.
11994         * xcoffout.c: Likewise.
11995
11996 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11997
11998         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
11999         update edge probabilities to match.
12000
12001 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
12002
12003         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
12004         dependencies.
12005         * doc/languages.texi, doc/sourcebuild.texi: New files.
12006         * doc/configfiles.texi: Make a subsubsection.  Update.
12007         * doc/configterms.texi: Add @node.  Remove warning that this isn't
12008         instructions for building GCC.
12009         * doc/makefile.texi: Make a subsection.
12010         * doc/gccint.texi: Update.
12011
12012 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
12013
12014         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
12015
12016 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
12017
12018         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
12019
12020 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
12021
12022         * optabs.c (expand_fix): Look for wider integer modes first.
12023
12024         * i386.md (mov?f): Avoid the fake const double trick for medium
12025         memory model.
12026         (min?f*/max?f*): Prohibit memory operands for i387 variant.
12027         (fop_df_4): Disable for SSE compilation.
12028
12029 2002-01-10  Graham Stott  <grahams@redhat.com>
12030
12031         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
12032         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
12033
12034 2002-01-10  Richard Henderson  <rth@redhat.com>
12035
12036         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
12037
12038 2002-01-10  Richard Henderson  <rth@redhat.com>
12039
12040         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
12041         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
12042
12043 2002-01-10  Kazu Hirata  <kazu@hxi.com>
12044
12045         * combine.c (can_combine_p): Fix a comment typo.
12046
12047 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
12048
12049         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
12050         empty list correctly.  Change loop index $t to $f for
12051         consistency with rest of Makefile.
12052
12053 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
12054
12055         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
12056         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
12057
12058         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
12059         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
12060         (altivec_init_builtins): Same.
12061         (altivec_expand_unop_builtin): Return NULL_RTX on error.
12062         (altivec_expand_binop_builtin): Same.
12063         (altivec_expand_ternop_builtin): Same.
12064         (bdesc_dst): New.
12065
12066         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
12067         ("altivec_vctuxs"): Fix typo.
12068         ("altivec_vnmsubfp"): Same.
12069         ("altivec_dssall"): New.
12070         ("altivec_mfvscr"): New.
12071         ("altivec_dss"): New.
12072         ("altivec_lvsl"): New.
12073         ("altivec_lvsr"): New.
12074         ("altivec_dstt"): New.
12075         ("altivec_dstst"): New.
12076         ("altivec_dststt"): New.
12077         ("altivec_dst"): New.
12078
12079         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
12080         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
12081
12082 2002-01-09  Richard Henderson  <rth@redhat.com>
12083
12084         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
12085
12086 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
12087
12088         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
12089         function.
12090         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
12091         prototype.
12092         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
12093
12094 2002-01-09  Kazu Hirata  <kazu@hxi.com>
12095
12096         * read-rtl.c: Fix formatting.
12097         * real.c: Likewise.
12098         * regclass.c: Likewise.
12099         * regrename.c: Likewise.
12100         * reg-stack.c: Likewise.
12101         * reload1.c: Likewise.
12102         * reload.c: Likewise.
12103         * rtl.c: Likewise.
12104
12105 2002-01-09  Kazu Hirata  <kazu@hxi.com>
12106
12107         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
12108         to extract items in the expr_list chain.
12109
12110 2002-01-09  Richard Henderson  <rth@redhat.com>
12111
12112         * config/vax/vax.c (vax_rtx_cost): Never abort.
12113
12114         * config/vax/vax.h (REAL_ARITHMETIC): Define.
12115
12116 2002-01-09  Jan Hubicka  <jh@suse.cz>
12117
12118         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
12119
12120 2002-01-09  Richard Henderson  <rth@redhat.com>
12121
12122         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
12123         Unify code from various alternatives.
12124
12125 2002-01-09  Richard Henderson  <rth@redhat.com>
12126
12127         * regrename.c (copy_value): Ignore the copy if the source register
12128         is present in the value chain with a narrower mode.
12129
12130 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
12131
12132         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
12133         for the c4x target. Also improve layout.
12134
12135 2002-01-09  Richard Henderson  <rth@redhat.com>
12136
12137         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
12138         * config/m32r/m32r.md (and ior xor splitters): Swap operands
12139         to match insn patterns.
12140
12141 2002-01-09  Richard Henderson  <rth@redhat.com>
12142
12143         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
12144         (copyprop_hardreg_forward_1): Likewise.
12145
12146 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12147
12148         * pa.md (decrement_and_branch_until_zero): Change predicate for
12149         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
12150
12151 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
12152
12153         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
12154         gets undefined. For Darwin.
12155
12156 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12157
12158         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
12159
12160 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12161
12162         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
12163
12164 2002-01-08  Richard Henderson  <rth@redhat.com>
12165
12166         * regrename.c (copy_value): Ignore overlapping copies.
12167
12168 2002-01-08  Richard Henderson  <rth@redhat.com>
12169
12170         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
12171         as needed to avoid shared structure.
12172
12173 2002-01-08  Kazu Hirata  <kazu@hxi.com>
12174
12175         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
12176         H8/300H and H8/S.
12177
12178 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12179
12180         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
12181         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
12182         documentation of obsolete macros.
12183         * system.h: Poison these macros.
12184         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
12185         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
12186         config/c4x/c4x.h, config/clipper/clipper.h,
12187         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
12188         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
12189         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
12190         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
12191         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12192         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
12193         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12194         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
12195         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
12196         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12197         config/sparc/sparc.h, config/stormy16/stormy16.h,
12198         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
12199         definitions and commented out definitions of obsolete macros.
12200         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
12201         of MAX_INT_TYPE_SIZE.
12202
12203 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
12204
12205         * config/s390/s390.c (s390_preferred_reload_class): Never
12206         return ADDR_REGS if it isn't a subset of the given class.
12207         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
12208         FP_REGS, but all superclasses as well.
12209
12210         * config/s390/s390.c (s390_function_profiler): Fix thinko.
12211
12212         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
12213         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
12214         must not be a const_int.
12215
12216 2002-01-08  Richard Henderson  <rth@redhat.com>
12217
12218         * Makefile.in (toplev.o): Depend on options.h.
12219         (gcc.o): Depend on specs.h.
12220
12221 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
12222
12223         * expr.c (store_expr): Convert VOIDmode constants back to target's
12224         mode.
12225
12226 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12227
12228         * doc/invoke.texi: Markup gcc as @command.  Refer to
12229         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
12230         of http://gcc.gnu.org/thanks.html.
12231
12232 2002-01-08  Dale Johannesen  <dalej@apple.com>
12233
12234         * config/rs6000/rs6000.md: Add missing int register
12235         target case to movdf_low.
12236
12237 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
12238
12239         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
12240         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
12241         (cppinit.o): Depend on except.h.
12242         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
12243         s-specs): New rules.
12244
12245         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
12246         Don't create specs.h/options.h/gencheck.h here.  Remove
12247         unnecessary variable settings from last argument of AC_OUTPUT.
12248         * config.in, configure: Regenerate.
12249         * intl.c: Hardcode package name as "gcc".
12250
12251         * cppinit.c: Include except.h.
12252         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
12253         appropriate.
12254         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
12255         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
12256         (!)USING_SJLJ_EXCEPTIONS.
12257         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
12258
12259 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12260
12261         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
12262         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
12263         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
12264         documentation of obsolete macros.
12265         * system.h: Poison these macros.
12266         * config/d30v/d30v.h, config/ns32k/encore.h,
12267         config/stormy16/stormy16.h: Remove definitions and commented out
12268         definitions of obsolete macros.
12269
12270 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
12271
12272         * objc/objc-act.c (handle_class_ref): Mark the declaration of
12273         %sobjc_class_ref_%s as used - to prevent unwanted compiler
12274         warnings.
12275
12276 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
12277
12278         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
12279         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
12280         to insn adjusting stack/frame pointer.
12281         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
12282         accept operands that cause the insn to be non-splittable.
12283
12284 2002-01-08  Graham Stott  <grahams@redhat.com>
12285
12286         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
12287         (C_TYPE_FIELDS_VOLATILE): Likewise.
12288         (C_TYPE_BEING_DEFINED): Likewise.
12289         (C_IS_RESERVED_WORD): Likewise.
12290         (C_TYPE_VARIABLE_SIZE): Likewise.
12291         (C_DECL_VARIABLE_SIZE): Likewise.
12292         (C_MISSING_PROTOTYPE_WARNED): Likewise.
12293         (C_SET_EXP_ORIGINAL_CODE): Likewise.
12294         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
12295         parenthesis.
12296         (C_DECL_ANTICIPATED): Likewise.
12297         (c_build_type_variant): Add parenthesis.
12298
12299 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12300
12301         * gcc.c (option_map): Remove --version.
12302         (process_command): Handle -fversion following the GNU Coding
12303         Standards.  Partially addresses PR other/704.
12304
12305 2002-01-08  Graham Stott  <grahams@redhat.com>
12306
12307         * combine.c (combine_instructions): Fix typo.
12308
12309 2002-01-08  Graham Stott  <grahams@redhat.com>
12310
12311         * debug.h: Use "tree" and "rtx" throughout.
12312
12313         * debug.c: Likewise.
12314
12315 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
12316
12317         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
12318         constant pool, use the pool's version of the symbol instead.
12319
12320 2002-01-07  Richard Henderson  <rth@redhat.com>
12321
12322         * regrename.c (find_oldest_value_reg): Ignore the value chain if
12323         the original register was copied in a mode with a fewer number of
12324         hard registers than the desired mode.
12325         (copyprop_hardreg_forward_1): Likewise.
12326         (debug_value_data): Fix loop test.
12327         * toplev.c (parse_options_and_default_flags): Reenable
12328         -fcprop-registers at -O1.
12329
12330 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12331
12332         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
12333         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
12334
12335         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
12336         predicates.
12337
12338         * config/rs6000/rs6000.md: Add altivec predicate patterns.
12339
12340 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12341
12342         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
12343         (pa_output_function_prologue): Output local label at the beginning of
12344         the prologue when profiling.
12345         (hppa_profile_hook): Use the local label rather than the function label.
12346         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
12347
12348 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12349
12350         * config/rs6000/rs6000.c (print_operand): Remove extra space.
12351         (altivec_expand_unop_builtin): Fix thinko.
12352         (altivec_expand_binop_builtin): Same.
12353         (altivec_expand_ternop_builtin): Same.
12354         (altivec_expand_builtin): Same.
12355
12356 2002-01-07  Richard Henderson  <rth@redhat.com>
12357
12358         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
12359
12360 2002-01-07  Jason Merrill  <jason@redhat.com>
12361
12362         * unwind-dw2.c (execute_cfa_program): Use < again.
12363
12364 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
12365
12366         * predict.c (combine_predictions_for_insn): Avoid division by zero.
12367
12368 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
12369
12370         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
12371         Don't allow -1 - x -> ~x simplifications in the first pass.
12372
12373 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12374
12375         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
12376         arguments.
12377         (altivec_expand_binop_builtin): Same.
12378         (altivec_expand_unop_builtin): Same.
12379         (print_operand): Fix typo.
12380         (bdesc_1arg): Add vupk* variants.
12381
12382         * rs6000.h (rs6000_builtins): Add vupk* enums.
12383
12384         * rs6000.md: Add altivec_vupk* variants.
12385
12386 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
12387
12388         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
12389         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
12390         and last update dates.
12391
12392 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
12393
12394         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
12395
12396 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12397
12398         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
12399         * config/avr/avr.h (CPP_SPEC): Likewise.
12400         (LINK_SPEC): Likewise.
12401         (CRT_BINUTILS_SPECS): Likewise.
12402         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12403         * doc/invoke.texi (AVR Options): Document them.
12404
12405 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
12406
12407         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
12408         LABEL_NUSES.
12409
12410 2002-01-07  Graham Stott  <grahams@redhat.com>
12411
12412         * config/i386/i386.h: Update copyright date.
12413         (HALF_PIC_PTR): Add parenthesis.
12414         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
12415         (CONSTANT_ALIGNMENT): Add parenthesis.
12416         (DATA_ALIGNMENT): Likewise.
12417         (LOCAL_ALIGNMENT): Likewise.
12418         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
12419         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
12420         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
12421         (HARD_REGNO_NREGS): Add paranethesis.
12422         (VALID_SSE_REG_MODE): Whitespace.
12423         (VALID_MMX_REG_MODE): Whitespace.
12424         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
12425         (ix86_hard_regno_mode_ok): Add parenthesis.
12426         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
12427         (RETURN_IN_MEMORY): Whitespace.
12428         (N_REG_CLASSES): Add parenthesis.
12429         (INTEGER_CLASS_P): Add parenthesis and wrap.
12430         (FLOAT_CLASS_P): Likewise.
12431         (SSE_CLASS_P): Likewise.
12432         (MMX_CLASS_P): Likewise.
12433         (MAYBE_INTEGER_CLASS_P): Likewise.
12434         (MAYBE_FLOAT_CLASS_P): Likewise.
12435         (MAYBE_SSE_CLASS_P): Likewise.
12436         (MAYBE_MMX_CLASS_P): Likewise.
12437         (Q_CLASS_P): Likewise.
12438         (GENERAL_REGNO_P): Uppercase macro parameter.
12439         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
12440         (FP_REGNO_P): Likewise.
12441         (ANY_FP_REGNO_P): Uppercase macro parameter.
12442         (SSE_REGNO_P): Likewise.
12443         (SSE_REGNO): Likewise.
12444         (SSE_REG_P): Likewise.
12445         (SSE_FLOAT_MODE_P): Likewise.
12446         (MMX_REGNO_P): Likewise.
12447         (MMX_REG_P):Likewise.
12448         (STACK_REG_P): Likewise.
12449         (NON_STACK_REG_P): Likewise.
12450         (STACK_TOP_P): Likewise.
12451         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
12452         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
12453         (SECONDARY_MEMORY_NEEDED): Likewise.
12454         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
12455         (MD_ASM_CLOBBERS): Whitespace and wrap.
12456         (MUST_PASS_IN_STACK): Whitespace and wrap.
12457         (RETURN_POPS_ARGS): Add parenthesis.
12458         (INIT_CUMULATIVE_ARGS): Likewise.
12459         (FUNCTION_ARG): Likewise.
12460         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
12461         (SETUP_INCOMING_VARARGS): Likewise.
12462         (BUILD_VA_LIST_TYPE):  Add parenthesis.
12463         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
12464         parenthsis.
12465         (EXPAND_BUILTIN_VA_ARG): Likewise.
12466         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
12467         (INITIALIZE_TRAMPOLINE): Add parenthesis.
12468         (INITIAL_ELIMINATION_OFFSET): Likewise.
12469         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
12470         (REGNO_OK_FOR_BASE_P): Likewise.
12471         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
12472         (REGNO_OK_FOR_DIREG_P): Likewise.
12473         (REG_OK_FOR_INDEX_P): Whitespace.
12474         (REG_OK_FOR_BASE_P): Whitespace.
12475         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
12476         parenthesis.
12477         (FIND_BASE_TERM): Fix typo.
12478         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
12479         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
12480         (SYMBOLIC_CONST; Whitespace.
12481         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
12482         (ENCODE_SECTION_INFO): Whitespace.
12483         (FINALIZE_PIC): Remove do { ... } while (0).
12484         (PROMOTE_MODE): Wrap in do { ... } while (0).
12485         (CONST_COSTS): Whitespace.
12486         (RTX_COSTS): Add paramethesis, whitespace and wrap.
12487         (REGISTER_MOVE_COST): Add parenthesis.
12488         (MEMORY_MOVE_COST): Likewise.
12489         (EXTRA_CC_MODES): Whitespace.
12490         (SELECT_CC_MODE): Add parenthesis and whitespace.
12491         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
12492         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
12493         (ASM_OUTPUT_LABEL): Add paramethesis.
12494         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
12495         (ASM_OUTPUT_REG_POP): Likewise.
12496         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
12497         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12498
12499         * config/i386/i386.c: Update copyright.
12500         (CHECK_STACK_LIMIT): Add parenthesis.
12501         (AT_BP): Uppercase macro parameter.
12502         (x86_64_int_parameter_registers): Constify.
12503         (x86_64_int_return_registers): Likewise.
12504         (ix86_compare_op0): Use rtx.
12505         (construct_container): Constify INTREG parameter.
12506         (function_arg): Use rtx.
12507
12508         * diagnostic.h: Update copyright date.
12509         (output_buffer_state): Add parenthesis.
12510         (output_buffer_format_args): Likewise.
12511
12512         * combine.c (combine_instructions): Replace XEXP (links, 0)
12513         with link.
12514
12515 2002-01-06  H.J. Lu <hjl@gnu.org>
12516
12517         * cfgcleanup.c (thread_jump): Fix 2 typos.
12518
12519 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
12520
12521         * config.gcc: Add support for --enable-altivec.
12522
12523 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12524
12525         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
12526
12527 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
12528
12529         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
12530         __objc_class_name_*.
12531
12532 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12533
12534         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
12535
12536 2002-01-06  Richard Henderson  <rth@redhat.com>
12537
12538         * reorg.c (emit_delay_sequence): Remove death notes, not merely
12539         nop them out.  Increment label reference count for REG_LABEL.
12540         (fill_slots_from_thread): Frob label reference count around
12541         delete_related_insns.
12542
12543 2002-01-05  Richard Henderson  <rth@redhat.com>
12544
12545         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
12546         jump threading.
12547
12548 2002-01-05  Richard Henderson  <rth@redhat.com>
12549
12550         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
12551         * integrate.c (output_inline_function): Likewise.
12552         * toplev.c (rest_of_compilation): Do it here instead.  Move call
12553         to remove_unnecessary_notes after emitting abstract instance.
12554         Force an emitted nested function to have its parent emited as well.
12555         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
12556         for null.
12557         (rtl_for_decl_location): Do not look at reload data structures
12558         before reload has run.
12559
12560 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12561
12562         * cse.c: Fix formatting.
12563         * dwarf2asm.c: Likewise.
12564         * dwarf2out.c: Likewise.
12565         * explow.c: Likewise.
12566         * expmed.c: Likewise.
12567         * function.c: Likewise.
12568         * gcov.c: Likewise.
12569         * gencheck.c: Likewise.
12570         * genrecog.c: Likewise.
12571         * ggc-common.c: Likewise.
12572         * ggc-page.c: Likewise.
12573         * global.c: Likewise.
12574
12575 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12576
12577         * combine.c: Fix formatting.
12578
12579 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
12580
12581         PR middle-end/1557
12582         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
12583
12584 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
12585
12586         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
12587         as 1 for __powerpc64__ as well.
12588
12589         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
12590
12591         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
12592         return it.
12593
12594 2002-01-05  Daniel Berlin  <dan@dberlin.org>
12595
12596         * lcm.c: Revert change, due to performance regression it causes on
12597         SPEC because it's slightly more conservative (sigh, I hate
12598         edge-based LCM).
12599
12600 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
12601
12602         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
12603
12604 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
12605
12606         * doc/cppinternals.texi: Update.
12607
12608 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
12609
12610         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
12611         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
12612         negatives.
12613         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
12614         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
12615         kludge for pre-october-14th mmix versions to handle new-found bug
12616         with PUSHJ/PUSHGO and the register stack.
12617         * config/mmix/mmix.h (struct machine_function): Rename member
12618         has_call_value_without_parameters to has_call_without_parameters.
12619         All referers changed.
12620         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
12621         TARGET_MASK_BRANCH_PREDICT): New macros.
12622         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
12623         -mno-reg-stack-fill-bug-workaround.
12624         * config/mmix/mmix.md ("call"): Set struct machine member
12625         has_call_without_parameters.
12626
12627 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
12628
12629         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
12630
12631 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12632
12633         * cfgcleanup.c: Include tm_p.h
12634         (mark_effect): Fix handling of hard register; fix handling of SET
12635
12636 2002-01-04  Kazu Hirata  <kazu@hxi.com>
12637
12638         * config/h8300/h8300.md (anonymous patterns): Check that
12639         operands are registers before using REGNO on them.
12640
12641 2002-01-03  Roland McGrath  <roland@frob.com>
12642
12643         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
12644
12645 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
12646
12647         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
12648         * c-common.h (genrtl_expr_stmt_value): Likewise.
12649         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
12650         (expand_expr_stmt_value): Add maybe_last argument.
12651         Don't warn about statement with no effect if it is the last statement
12652         in expression statement.
12653         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
12654         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
12655         expand_expr_stmt_value.
12656         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
12657         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
12658         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
12659         as maybe_last to expand_expr_stmt_value.
12660
12661 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
12662
12663         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
12664         be passed in, do not build it.
12665         (c_begin_if_stmt): New function.
12666         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12667         * c-common.h (c_expand_start_cond): Update prototype.
12668         (c_begin_if_stmt): Prototype new function.
12669         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12670         * c-parse.in (if_prefix): Use c_begin_if_stmt,
12671         c_begin_while_stmt and c_finish_while_stmt_cond.
12672
12673 2002-01-04  William Cohen  <wcohen@redhat.com>
12674
12675         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
12676         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12677         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12678         * config/pa/som.h (ASM_FILE_START): Likewise.
12679
12680 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
12681
12682         * lcm.c: Include df.h.
12683         Add available_transfer_function prototype.
12684         (compute_available): Rework to use iterative dataflow framework.
12685         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
12686         with bb_info in df.h
12687         (available_transfer_function): New function.
12688
12689         * Makefile.in (lcm.o): add df.h to dependencies.
12690
12691 2002-01-04  Richard Henderson  <rth@redhat.com>
12692
12693         * config/alpha/alpha.c (some_operand): Accept HIGH.
12694         (input_operand): Likewise; accept simple references to globals.
12695         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
12696         (alpha_const_double_ok_for_letter_p): Likewise.
12697         (alpha_extra_constraint): Likewise.
12698         (alpha_preferred_reload_class): Likewise.  Do not force
12699         symbolic constants to memory.
12700         (alpha_legitimate_address_p): Accept simple references
12701         to small_symbolic_operand.
12702         (alpha_legitimize_address): New arg scratch.  Be prepared to be
12703         called when no_new_pseudos.  Emit simple symbolic references.
12704         Split integers into low, high, and rest.
12705         (alpha_expand_mov): Use alpha_legitimize_address.
12706         (some_small_symbolic_mem_operand): New.
12707         (split_small_symbolic_mem_operand): New.
12708         * config/alpha/alpha-protos.h: Update.
12709         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
12710         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
12711         (EXTRA_CONSTRAINT): Likewise.
12712         (PREFERRED_RELOAD_CLASS): Likewise.
12713         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
12714         (PREDICATE_CODES): Update.
12715         * config/alpha/alpha.md: New post-reload splitters to convert
12716         simplfied symbolic operands to the form that references $29.
12717         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
12718         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
12719
12720 2002-01-03  Richard Henderson  <rth@redhat.com>
12721
12722         * local-alloc.c (function_invariant_p): Update commentary.
12723
12724 2002-01-04  H.J. Lu <hjl@gnu.org>
12725
12726         * toplev.c (rest_of_compilation): Fix a typo when calling
12727         cleanup_cfg.
12728
12729 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12730
12731         * c-common.c: Fix formatting.
12732         * diagnostic.c: Likewise.
12733         * doloop.c: Likewise.
12734         * dwarf2out.c: Likewise.
12735
12736 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12737
12738         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
12739         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
12740
12741 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12742
12743         * cpperror.c: Update comments and copyright.
12744         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
12745         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
12746
12747 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12748
12749         * collect2.c (main): Use strcmp when testing for "-shared".
12750
12751 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12752
12753         * cppmacro.c: Don't include intl.h.  Update comments.
12754         (new_number_token): Allocate enough buffer for 64-bit unsigned
12755         integers; update prototype.
12756         * cppmain.c: Update comments.
12757
12758 2002-01-03  William Cohen  <wcohen@redhat.com>
12759
12760         * function.h (struct function): Add profile.
12761         (current_function_profile): New.
12762         doc/extend.texi: Update documentation.
12763         * final.c (final_start_function): Use current_function_profile
12764         instead of profile_flag.
12765         (profile_after_prologue): Likewise.
12766         * function.c (expand_function_start): Likewise.
12767         (expand_function_start): Likewise.
12768         * config/alpha/alpha.c (direct_call_operand):
12769         (alpha_does_function_need_gp): Likewise.
12770         (alpha_expand_prologue): Likewise.
12771         * config/arm/arm.c (arm_expand_prologue): Likewise.
12772         thumb_expand_prologue: Likewise.
12773         * config/d30v/d30v.c (d30v_stack_info): Likewise.
12774         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
12775         (fr30_expand_prologue): Likewise.
12776         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
12777         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
12778         * config/i386/i386.h (FINALIZE_PIC): Likewise.
12779         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12780         * config/i960/i960.c (i960_output_function_prologue): Likewise.
12781         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12782         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
12783         (m32r_expand_prologue): Likewise.
12784         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
12785         (m88k_expand_prologue): Likewise.
12786         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
12787         * config/mips/mips.c (compute_frame_size): Likewise.
12788         (mips_expand_prologue): Likewise.
12789         (mips_can_use_return_insn): Likewise.
12790         * config/pa/elf.h (ASM_FILE_START): Likewise.
12791         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12792         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12793         * config/pa/som.h (ASM_FILE_START): Likewise.
12794         * config/romp/romp.c (romp_using_r14): Likewise.
12795         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
12796         (rs6000_stack_info): Likewise.
12797         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12798         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12799         * config/v850/v850.c (compute_register_save_size): Likewise.
12800
12801 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
12802
12803         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
12804         gen_lowpart_common fails, use gen_lowpart_SUBREG.
12805
12806 2002-01-03  Turly O'Connor  <turly@apple.com>
12807
12808         * darwin.c (machopic_output_possible_stub_label): Don't generate
12809         stub routines for pseudo-stubs which we've just defined.
12810
12811 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12812
12813         * builtins.c: Fix formatting.
12814         * c-typeck.c: Likewise.
12815         * combine.c: Likewise.
12816         * expr.c: Likewise.
12817         * loop.c: Likewise.
12818
12819 2002-01-03  Andreas Schwab  <schwab@suse.de>
12820
12821         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
12822         and return true if _cpp_push_next_buffer pushed a new include
12823         file.
12824         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
12825         _cpp_pop_file_buffer did not push a new file.
12826         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
12827
12828 2002-01-02  Eric Christopher  <echristo@redhat.com>
12829
12830         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
12831         FIND_REG_INC_NOTE call. Update copyright.
12832         * loop.c (canonicalize_condition): Ditto.
12833         * reorg.c (delete_scheduled_jump): Ditto.
12834
12835 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12836
12837         * gcse.c: Fix formatting.
12838
12839 2002-01-03  Graham Stott  <grahams@redhat.com>
12840
12841         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
12842         forward defs for struct tags rtx_def, union_tree, rtvec_def
12843         also output corresponding typedefs for rtx, tree, and rtvec.
12844
12845         * system.h: Move forward defs for struct tags rtx_def, union_tree,
12846         rtvec_def along with corresponding typedefs for rtx, tree, and
12847         rtvec to config.h, hconfig.h, tconfig.h.
12848
12849 2002-01-03  Graham Stott  <grahams@redhat.com>
12850
12851         * tree.h: Update copyright date.
12852         (IS_EXPR_CODE_CLASS): Add parenthesis.
12853         (TREE_SET_CODE): Add whitespace.
12854         (TREE_CHECK): Add parenthesis.
12855         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
12856         (CST_OR_CONSTRUCTOR_CHECK):
12857         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
12858         (TREE_SYMBOL_REFERENCED): Whitespace.
12859         (INT_CST_LT): Likewise.
12860         (INT_CST_LT_UNSIGNED): Likewise.
12861         (tree_real_cst): Unwrap comment.
12862         (tree_string): Likewise.
12863         (tree_complex): Likewise.
12864         (IDENTIFIER_POINTER): correct cast.
12865         (SAVE_EXPR_CONTEXT): Whitespace.
12866         (EXPR_WFL_FILENAME_NODE): Likewise.
12867         (EXPR_WFL_FILENAME): Remove parenthesis.
12868         (DECL_ORIGIN): Add parenthesis.
12869         (DECL_FROM_INLINE): Use NULL_TREE.
12870         (build_int_2): Whitespace.
12871         (build_type_variant): Add parenthesis.
12872
12873         * gcc/jcf-parse.c: Update copyright date.
12874         (yyparse): Constify resource_filename.
12875
12876 2002-01-03  Graham Stott  <grahams@redhat.com>
12877
12878         * rtl.h: Update copyright date.
12879         (RTL_CHECK1): Wrap long line.
12880         (RTL_CHECK2): Likewise.
12881         (RTL_CHECKC1): Wrap long line and whitespace.
12882         (RTL_CHECKC2): Likewise.
12883         (XWINT): Whitespace.
12884         (XINT): Likewise.
12885         (XSTR): Likewise.
12886         (XEXP): Likewise.
12887         (XVEC): Likewise.
12888         (XMODE): Likewise.
12889         (XBITMAP): Likewise.
12890         (XTREE): Likewise.
12891         (XBBDEF): Likewise.
12892         (XTMPL): Likewise.
12893         (X0WINT): Likewise.
12894         (X0INT):Likewise.
12895         (X0UINT): Likewise.
12896         (X0STR): Likewise.
12897         (X0EXP): Likewise.
12898         (X0VEC): Likewise.
12899         (X0MODE): Likewise.
12900         (X0BITMAP): Likewise.
12901         (X0TREE): Likewise.
12902         (X0BBDEF): Likewise.
12903         (X0ADVFLAGS): Likewise.
12904         (X0CSELIB): Likewise.
12905         (X0MEMATTR): Likewise.
12906         (XCWINT): Likewise.
12907         (XCINT): Likewise.
12908         (XCUINT): Likewise.
12909         (XCSTR): Likewise.
12910         (XCEXP): Likewise.
12911         (XCVEC): Likewise.
12912         (XCMODE): Likewise.
12913         (XCBITMAP): Likewise.
12914         (XCTREE): Likewise.
12915         (XCBBDEF): Likewise.
12916         (XCADVFLAGS): Likewise.
12917         (XCCSELIB): Likewise.
12918         (XC2EXP): Likewise.
12919         (INSN_UID): Likewise.
12920         (PREV_INSN): Likewise.
12921         (PATTERN): Likewise.
12922         (INSN_CODE): Likewise.
12923         (PUT_REG_NOTE_KIND): Likewise.
12924         (CODE_LABEL_NUMBER): Likewise.
12925         (NOTE_SOURCE_FILE): Likewise.
12926         (NOTE_BLOCK): Likewise.
12927         (NOTE_EH_HANDLER): Likewise.
12928         (NOTE_RANGE_INFO): Likewise.
12929         (NOTE_LIVE_INFO): Likewise.
12930         (NOTE_BASIC_BLOCK): Likewise.
12931         (NOTE_EXPECTED_VALUE): Likewise.
12932         (NOTE_LINE_NUMBER): Likewise.
12933         (LABEL_NAME): Likewise.
12934         (LABEL_NUSES): Likewise.
12935         (LABEL_ALTERNATE_NAME): Likewise.
12936         (ADDRESSOF_DECL): Likewise.
12937         (JUMP_LABEL): Likewise.
12938         (LABEL_NEXTREF): Likewise.
12939         (REGNO): Likewise.
12940         (ORIGINAL_REGNO: Likewise.
12941         (HARD_REGISTER_NUM_P): Add parenthesis.
12942         (SUBREG_REG): Whitespace.
12943         (SUBREG_BYTE): Likewise.
12944         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
12945         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
12946         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
12947         (ASM_OPERANDS_INPUT_VEC): Likewise.
12948         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
12949         (ASM_OPERANDS_INPUT): Likewise.
12950         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
12951         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
12952         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
12953         (ASM_OPERANDS_INPUT_MODE): Likewise.
12954         (ASM_OPERANDS_SOURCE_FILE): Likewise.
12955         (ASM_OPERANDS_SOURCE_LINE): Likewise.
12956         (MEM_SET_IN_STRUCT_P): Minor reformat.
12957         (TRAP_CONDITION): Whitespace.
12958         (TRAP_CODE): Likewise.
12959         (COND_EXEC_TEST): Likewise.
12960         (COND_EXEC_CODE): Likewise.
12961         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
12962         (PHI_NODE_P): Add parenthesis.
12963         (plus_constant): Whitespace and add parenthesis.
12964
12965 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12966
12967         * config/avr/avr.c: Fix comment typos.
12968         * config/c4x/c4x.md: Likewise.
12969         * config/dsp16xx/dsp16xx.h: Likewise.
12970         * config/dsp16xx/dsp16xx.md: Likewise.
12971         * config/i386/i386.md: Likewise.
12972         * config/ia64/ia64.c: Likewise.
12973         * config/m32r/m32r.h: Likewise.
12974         * config/m68hc11/m68hc11.md: Likewise.
12975         * config/mmix/mmix.c: Likewise.
12976         * config/mn10200/mn10200.c: Likewise.
12977         * config/romp/romp.c: Likewise.
12978         * config/sh/sh.c: Likewise.
12979         * config/stormy16/stormy16.c: Likewise.
12980         * config/stormy16/stormy16.h: Likewise.
12981         * config/stormy16/stormy16.md: Likewise.
12982
12983 2002-01-03  Graham Stott  <grahams@redhat.com>
12984
12985         * loop.h: Update copyright date.
12986         (LOOP_MOVABLES): Fix typo.
12987         (LOOP_REGS): Likewise.
12988         (LOOP_IVS): Likewise.
12989
12990 2002-01-03  Graham Stott  <grahams@redhat.com>
12991
12992         * cppinit.c: Update copyright date.
12993         Don't include output.h
12994         * Makefile.in: Update copyright date.
12995         Update dependency.
12996
12997 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12998
12999         PR c/5226
13000         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
13001         (-pthread) Add to RS/6000 options.
13002
13003 2002-01-02  Kazu Hirata  <kazu@hxi.com>
13004
13005         * except.c: Fix comment typos.
13006         * loop.c: Likewise.
13007         * varasm.c: Likewise.
13008         * doc/tm.texi: Fix a typo.
13009
13010 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
13011
13012         * c-typeck.c (output_init_element): Allow initializing static storage
13013         duration objects with compound literals.
13014
13015 2002-01-02  Richard Henderson  <rth@redhat.com>
13016
13017         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
13018         after abusing it.
13019
13020 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13021
13022         * gcc.c (default_compilers): Const-ify.
13023         * mips-tdump.c (stab_names): Likewise.
13024         * mips-tfile.c (map_coff_types, map_coff_storage,
13025         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
13026         pseudo_ops_t, pseudo_ops): Likewise.
13027         * protoize.c (default_include): Likewise
13028
13029         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
13030         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
13031         Add array size in declaration.
13032         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
13033         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
13034         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
13035         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
13036         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
13037         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
13038         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
13039         emtens, make_nan): Const-ify.
13040         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
13041         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
13042
13043 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
13044
13045         * config.gcc (ia64-*-*): Set extra_headers.
13046         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
13047         * config/alpha/t-osf: Remove.
13048         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
13049
13050 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
13051
13052         * config/rs6000/t-aix43: Revert previous change.
13053
13054 2002-01-02  Jason Merrill  <jason@redhat.com>
13055
13056         * c-decl.c (c_expand_body): Call outlining_inline_function when
13057         emitting an inline function out of line.
13058
13059 2002-01-02  Richard Henderson  <rth@redhat.com>
13060
13061         * dwarf2out.c (limbo_die_node): Add created_for member.
13062         (new_die): New argument created_for.  Update all callers.
13063         (mark_limbo_die_list): New.
13064         (dwarf2out_init): Register limbo_die_list as a root.
13065         (dwarf2out_finish): Force insert limbo dies into their function
13066         context.
13067
13068 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
13069
13070         PR c++/5089
13071         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
13072
13073 2002-01-02  Kazu Hirata  <kazu@hxi.com>
13074
13075         * config/h8300/fixunssfsi.c: Update copyright.
13076         Fix comment typos.
13077         Fix formatting.
13078         * config/h8300/h8300.c: Update copyright.
13079         Eliminate warnings.
13080
13081 2002-01-02  Kazu Hirata  <kazu@hxi.com>
13082
13083         * config/romp/romp.c: Fix comment formatting.
13084         * config/romp/romp.h: Likewise.
13085         * config/romp/romp.md: Likewise.
13086         * config/s390/s390.c: Likewise.
13087         * config/stormy16/stormy16.c: Likewise.
13088         * config/stormy16/stormy16.h: Likewise.
13089
13090 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
13091
13092         * c-common.h (genrtl_expr_stmt_value): Declare.
13093         * c-semantics.c (genrtl_goto_stmt): Redirect to...
13094         (genrtl_goto_stmt_value): ... this new function.  Pass new
13095         argument down to expand_expr_stmt_value, taking
13096         TREE_ADDRESSABLE into account.
13097         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
13098         STMT_EXPR as addressable, i.e., one whose result we want.
13099         * expr.c (expand_expr): Don't save expression statement value
13100         of labeled_blocks or loop_exprs.
13101         * stmt.c (expand_expr_stmt): Redirect to...
13102         (expand_expr_stmt_value): ... this new function.  Use new
13103         argument to tell whether to save expression value.
13104         (expand_end_stmt_expr): Reset last_expr_type and
13105         last_expr_value if we don't have either.
13106         * tree-inline.c (declare_return_variable): Mark its use
13107         statement as addressable.
13108         * tree.h: Document new use of TREE_ADDRESSABLE.
13109         (expand_expr_stmt_value): Declare.
13110
13111 2002-01-01  Tom Rix  <trix@redhat.com>
13112
13113         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
13114         rs6000_emit_allocate_stack.
13115
13116 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
13117
13118         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
13119         ${srcdir}/ginclude/ to every entry in extra_headers.
13120         * configure: Regenerate.
13121         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
13122         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
13123         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
13124         * ginclude/proto.h: Rename to config/convex/proto.h.
13125
13126 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13127
13128         * attribs.c (handle_vector_size_attribute): Use host_integerp
13129         and tree_int_cst; remove warnings.
13130         * caller-save.c (insert_restore): Add cast to get rid of warning.
13131         (insert_save): Likewise.
13132         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
13133         * regmove.c (find_matches): Add temporary var to kill a warning.
13134
13135 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
13136
13137         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
13138         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
13139         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
13140         (vms-dwarf2eh.o): Add Makefile rule.
13141         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
13142         * config/alpha/vms-dwarf2eh.asm: New file.
13143
13144         * gcc.c (delete_if_ordinary): Delete all versions.
13145
13146 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
13147
13148         * config/mmix/mmix.md: Update FIXME to not mention
13149         define_constants.
13150         (MMIX_rJ_REGNUM): New define_constants constant.
13151         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
13152         "*movdicc_real"): Adjust contraints formatting.
13153         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
13154         for branch prediction.
13155         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
13156         output template.
13157         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
13158         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
13159         number.  Delete related FIXMEs.
13160         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
13161         from number to MMIX_rJ_REGNUM.
13162         (TARGET_MASK_BRANCH_PREDICT): New.
13163         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
13164         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
13165         value.  Add -mbranch-predict and -mno-branch-predict.
13166         (TARGET_VERSION): Drop date.
13167         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
13168         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
13169         for finding out global symbols.
13170         (mmix_asm_output_labelref): Revert condition for global symbol.
13171         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
13172         (mmix_print_operand_punct_valid_p): A '+' is valid.
13173
13174 See ChangeLog.6 for earlier changes.