OSDN Git Service

e7ada52c92dcde1a0d6eec247edd11477f1e6d54
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-09-16  Ian Lance Taylor  <ian@wasabisystems.com>
2
3         * cfgcleanup.c (label_is_jump_target_p): Correct use of table
4         returned by tablejump_p.
5
6 2003-09-16  Joel Brobecker  <brobecker@gnat.com>
7
8         * dwarf2asm.c (dw2_asm_output_nstring): Add comment.
9
10 2003-09-16  Roger Sayle  <roger@eyesopen.com>
11
12         PR bootstrap/12269
13         * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
14         argument to be VOIDmode, taking the mode of the comparison from
15         the operands.  Only call simplify_relational_operation if we
16         know the mode of the comparison.  Honor FLOAT_STORE_FLAG_VALUE
17         if comparison has a floating point result.  Ensure that the
18         result is always of the specified mode.
19         (simplify_replace_rtx): Simplify call to simplify_gen_relational.
20         (simplify_unary_operation): Ensure the correct mode and cmp_mode
21         are always passed to simplify_gen_relational.  Simplify NOT of
22         comparison operator in any mode, not just BImode.
23         (simplify_ternary_operation): Correct tests on the return value
24         of simplify_relational_operation to use const_true_rtx, not
25         const1_rtx.  Abort if it ever returns a non-constant result.
26
27         * cfgloopanal.c (count_strange_loop_iterations): Use the function
28         simplify_relational_operation, not simplify_gen_relational, if
29         we're only interested in constant comparisons and will ignore
30         non-constant results.
31
32 2003-09-16  Roger Sayle  <roger@eyesopen.com>
33
34         * fold-const.c (tree_swap_operands_p): New function to determine
35         the prefered ordering of operands.
36         (fold): Numerous clean-ups.  Use tree_swap_operands_p when swapping
37         operands to commutative, comparison or ternary operators.  Replace
38         uses of TREE_SET_CODE with recursive call to fold.  Remove duplicate
39         transformation of A ? B : C into !A ? C : B.
40
41 2003-09-16  Jakub Jelinek  <jakub@redhat.com>
42
43         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
44         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
45         * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
46         * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
47         * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
48         * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
49         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
50         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
51
52 2003-09-16  Jason Merrill  <jason@redhat.com>
53             Jakub Jelinek  <jakub@redhat.com>
54
55         * c-common.c (handle_warn_unused_result_attribute): New function.
56         (c_common_attribute_table): Add warn_unused_result.
57         (c_expand_expr): Issue warning when result of inlined function
58         with warn_unused_result attribute is ignored.
59         * calls.c (expand_call): Issue warning when result of function
60         with warn_unused_result attribute is ignored.
61         * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
62         * expr.c (expr_wfl_stack): Define.
63         (expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
64         pass const0_rtx as target.  Chain locations into expr_wfl_stack.
65         * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
66         bit if inlined function has warn_unused_result attribute.
67         * input.h (expr_wfl_stack): Declare.
68         * doc/extend.texi: Document warn_unused_result attribute.
69
70 2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
71
72         * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
73
74 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
75
76         * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
77         ATTRIBUTE_UNUSED.
78         (call_insn_operand): For PIC, don't allow a direct call to a
79         function in a different section than the current one.
80
81 2003-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
82         
83         * doc/invoke.texi (Warning Options): Add missing hyphen before
84         "Wimport".  Change "-Wno-endif-labels" to "-Wendif-labels".
85         Move "-Wold-style-definition" to the C-only section.
86         Fix the ordering of the warning options.
87
88 2003-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
89             Jeff Law  <law@redhat.com>
90
91         * gcse.c (remove_reachable_equiv_notes): New.
92         replace_store_insn): Call it.  Update antic list.
93         (store_killed_in_insn): Take REG_EQUAL notes into account.
94         (build_store_vectors, delete_store): Add parameter to
95         replace_store_insn call.
96
97 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
98
99         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use
100         SYMBOL_REF_LOCAL_P.
101
102 2003-09-15  Kazu Hirata  <kazu@cs.umass.edu>
103
104         * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
105         (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
106         * config/ia64/ia64.c (ia64_hpux_function_arg_padding):
107         Likewise.
108         * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
109         Likewise.
110         * config/rs6000/rs6000.c (function_arg_padding): Likewise.
111         * config/sparc/sparc.c (function_arg_padding): Likewise.
112
113 2003-09-15  Vladimir Makarov  <vmakarov@redhat.com>
114
115         * haifa-sched.c (schedule_block): Use ready_remove_first instead
116         of choose_ready for non-dfa insn scheduling.
117
118 2003-09-15  Andreas Jaeger  <aj@suse.de>
119             Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
120
121         * doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
122         * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
123         * c-parse.in: Warn about old-style parameter definition.
124         * c-common.c: Define warn_old_style_defintion.
125         * c-common.h: Declare it.
126         * c.opt: Add Wold-style-defintion.
127
128 2003-09-15  Andreas Jaeger  <aj@suse.de>
129
130         * config/rs6000/altivec.h: Convert () prototypes to ISO C90.
131         * config/rs6000/rs6000.c: Likewise.
132
133 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
134
135         PR optimization/10914
136         * expr.h (get_condition, canonicalize_condition): Declaration changed.
137         * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
138         and canonicalize_condition calls.
139         * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
140         delete_null_pointer_checks): Ditto.
141         * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
142         * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
143         * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
144         (canonicalize_condition, get_condition): Allow to return comparisons
145         of cc mode registers.
146         * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
147         cc mode registers comparison in condition.
148
149 2003-09-12  Mark Mitchell  <mark@codesourcery.com>
150
151         * coverage.c (create_coverage): Do not call pushlevel/poplevel.
152         * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
153         function.
154         * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.
155         
156 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
157
158         * combine.c (simplify_comparison): Convert
159         (ne (and (lshiftrt (xor X CST) Y) 1) 0) into
160         (eq (and (lshiftrt X Y) 1) 0).
161
162 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
163
164         * alias.c: Follow spelling conventions.
165         * cpphash.h: Likewise.
166         * fold-const.c: Likewise.
167
168 2003-09-14  Alexandre Oliva  <aoliva@redhat.com>
169
170         * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
171         * c-lex.c (cb_line_change): Skip line changing whenever
172         c-ppoutput.c would.
173
174 2003-09-14  Steven Bosscher  <steven@gcc.gnu.org>
175
176         * ra.c: Convert to ISO C90 prototypes.
177         * ra-build.c: Likewise.
178         * ra-colorize.c: Likewise.
179         * ra-debug.c: Likewise.
180         * ra-rewrite.c: Likewise.
181
182 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
183
184         * Makefile.in (%.dvi): Remove excess $(docdir).
185
186 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
187
188         * function.c (STACK_BYTES): Move definition to head of file.
189         (assign_parms): Don't pass current_function_pretend_args_size
190         directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
191         round current_function_pretend_args_size up to STACK_BYTES.  Skip any
192         excess before laying out the argument.
193
194 2003-09-14  Andreas Jaeger  <aj@suse.de>
195
196         * objc/objc-act.c: Convert to ISO C90 prototypes.
197         * objc/objc-act.h: Likewise.
198
199 2003-09-14  Olaf Hering  <olh@suse.de>
200
201         * config/rs6000/rs6000.c: Fix typo: Remove extra ')'.
202
203 2003-09-13  Andrew Pinski <pinskia@physics.uc.edu>
204
205         PR target/12021
206         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
207         as they already are done in config/m68k/m68k.h.
208         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise
209
210         * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
211         (machopic_output_stub): Only generate pic base symbols when using pic
212         and generate them in the form L00000000$spb.
213
214 2003-09-13  Richard Henderson  <rth@redhat.com>
215
216         * cgraphunit.c (cgraph_assemble_pending_functions): Export.
217         (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check.
218         * cgraph.h: Update.
219
220 2003-09-12  Dale Johannesen  <dalej@apple.com>
221
222         * config/rs6000/rs6000.c: Fix typos in previous.
223
224 2003-09-12  Ziemowit Laski  <zlaski@apple.com>
225
226         * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc
227         when allocating pp->buffer.
228
229 2003-09-12  Geoffrey Keating  <geoffk@apple.com>
230
231         * config/darwin.c (machopic_select_rtx_section): Use
232         const_data_section for things that might require relocation.
233
234 2003-09-12  H.J. Lu  <hongjiu.lu@intel.com>
235
236         PR bootstrap/12264
237         * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree.
238
239 2003-09-12  Bob Wilson  <bob.wilson@acm.org>
240         
241         * config/xtensa/elf.h (ASM_SPEC): Remove no-density option.  Reformat.
242         * config/xtensa/linux.h (ASM_SPEC): Likewise.
243         * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian,
244         -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16,
245         -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext,
246         -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div,
247         -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and
248         -m[no-]hard-float-rsqrt options.  Delete corresponding MASK_* macros
249         and redefine corresponding TARGET_* macros with constants from the
250         xtensa-config.h header.
251         * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention
252         for the options listed above.
253         
254 2003-09-12  Dale Johannesen  <dalej@apple.com>
255
256         * config/rs6000/rs6000-protos.h:  Use C90 prototypes.
257         * config/rs6000/rs6000-c.c:  Ditto. 
258         * config/rs6000/rs6000.c:  Ditto.
259         * config/rs6000/ sysv4.h:  Ditto.
260
261 2003-09-12  Chris Lattner <sabre@nondot.org>
262
263         * loop.c: Move comments describing BIV's and GIV's to top of file
264
265 2003-09-12  Roger Sayle  <roger@eyesopen.com>
266
267         PR optimization/8967
268         * alias.c (write_dependence_p): Modify to take an additional constp
269         argument that controls whether the UNCHANGING_RTX_P flags are used.
270         (anti_dependence, output_dependence): Adjust write_dependence_p
271         callers to pass this additional argument, to return the same result.
272         (unchanging_anti_dependence): New variant of anti_dependence that
273         ignores the UNCHANGING_RTX_P property on memory references.
274         * rtl.h (unchaning_anti_dependence): Prototype here.
275         * flow.c (init_propagate_block): Place fake constant mem writes on
276         the mem_set_list so that dead writes to const variables are deleted.
277         (insn_dead_p): Change anti_dependence to unchanging_anti_dependence.
278         (mark_used_regs): Likewise.
279
280 2003-09-12  Richard Sandiford  <rsandifo@redhat.com>
281
282         * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
283         (mcore_secondary_reload_class): Declare.
284         (mcore_output_inline_const_forced): Remove.
285         * config/mcore/mcore.md (movsi): Remove the code that forced
286         non-inlineable constants into a register if the target was r15
287         or the stack pointer.  Remove constant restrictions from the main
288         define_insn.  Remove r <- I, r <- M and r <- N alternatives in favor
289         of an r <- P alternative.  Remove fallback define_insn for reload.
290         (movhi, movqi): Use gen_lowpart rather than gen_SUBREG.  Remove reload
291         define_insn.  Use mcore_output_move in the remaining define_insn.
292         Adjust condition and constraints in the way as for movsi.
293         (movdi): Always split unacceptable constants into two.  Use
294         simplify_gen_subreg instead of operand_subword{,_force}.
295         * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
296         (mcore_output_move): Support HImode and QImode moves as well.
297         (mcore_m15_operand_p): New function.
298         (mcore_reload_class): Use it to detect cases where LRW_REGS are better.
299         (mcore_secondary_reload_class): New function.
300         * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
301         terms of mcore_secondary_reload_class.
302
303 2003-09-11  Mike Stump  <mrs@apple.com>
304
305         * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE.
306
307 2003-09-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
308
309         * builtins.c (fold_builtin_logarithm): if N can't be truncated to
310         MODE exactly, then only convert logN(N) -> 1.0 if
311         flag_unsafe_math_optimizations is set.
312
313         * builtins.c (builtin_dconsts_init, dconstpi, dconste,
314         init_builtin_dconsts): Delete.
315         * emit-rtl.c (dconstpi, dconste): Define.
316         (init_emit_once): Initialize dconstpi & dconste.
317         * real.h (dconstpi, dconste): Declare.
318
319 2003-09-11  Alexandre Oliva  <aoliva@redhat.com>
320
321         PR fortran/11522
322         * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
323         for ultimate origin even if block is abstract.
324
325 2003-09-11  Roger Sayle  <roger@eyesopen.com>
326
327         * combine.c (combine_simplify_rtx): Move several NOT and NEG
328         optimizations from here...
329         * simplify-rtx.c (simplify_unary_operation): to here.  Recursively
330         simplify expressions using simplify_gen_*ary instead of gen_rtx_*.
331
332 2003-09-11  Richard Henderson  <rth@redhat.com>
333
334         * cgraphunit.c (cgraph_finalize_function): Add nested arg.
335         Tweek tests for function already generated.
336         (cgraph_expand_function): Don't double announce in !unit-at-a-time.
337         * cgraph.h (cgraph_finalize_function): Update for extra arg.
338         * c-decl.c (finish_function): Likewise.
339
340 2003-09-10  Joe Buck  <jbuck@welsh-buck.org>
341
342         * c-decl.c (poplevel): Eliminate use of |= in function_body assignment.
343
344 2003-09-10  Jerry Quinn  <jlquinn@optonline.net>
345
346         * real.c: Update URL to VAX floating point docs.
347         (decode_vax_d): Extract 8 exponent bits instead of 7.
348
349 2003-09-10  Ian Lance Taylor  <ian@wasabisystems.com>
350
351         * combine.c (force_to_mode): Set fuller_mask based only on mask,
352         not op_mode.
353
354 2003-09-11  Jan Hubicka  <jh@suse.cz>
355
356         * c-objc-common.c (c_cannot_inline_tree_fn): Warn
357         on why function is not inlinable; do not check
358         the body.
359         (inline_forbidden_p): Move to...
360         * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
361         deal with alloca, longjmp.
362         (inline_forbidden_p): New static function.
363         (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
364         find_builtin_longjmp_call): Kill.
365
366 2003-09-10  Richard Henderson  <rth@redhat.com>
367
368         * cgraph.h (struct cgraph_node): Rename lowered to analyzed.
369         * cgraphunit.c: Update to match.
370         (record_call_1): Rearrange.  Call lang hook for language nodes.
371         (cgraph_analyze_function): Don't call lower_function.
372         * langhooks.h (struct lang_hooks_for_callgraph): Replace 
373         lower_function with analyze_expr.
374         * langhooks-def.h: Update to match.
375         * langhooks.c (lhd_callgraph_analyze_expr): New.
376
377 2003-09-10  Martin Husemann  <martin@duskware.de>
378
379         PR target/11965
380         * config/sparc/sparc.c (sparc_v8plus_shift): Protect against
381         constants greater than 63.
382         * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect
383         against constants greater than 31.
384         (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against
385         constants greater than 63.
386
387 2003-09-09  Richard Henderson  <rth@redhat.com>
388
389         * cgraphunit.c (cgraph_finalize_function): Remove unused argument.
390         * cgraph.h (cgraph_finalize_function): Update.
391         * c-decl.c (finish_function): Update.
392
393 2003-09-09  Devang Patel  <dpatel@apple.com>
394
395         * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker.
396         * doc/invoke.texi: Document new Darwin linker option -nofixprebinding.
397         
398 2003-09-09  Eric Christopher  <echristo@redhat.com>
399
400         * configure.in: Change usage of 'head' to 'sed 1q'.
401         * configure: Regenerate.
402
403 2003-09-09  Richard Henderson  <rth@redhat.com>
404
405         * except.c: Include cgraph.h.
406         (output_function_exception_table): Invoke
407         cgraph_varpool_mark_needed_node.
408         * Makefile.in (except.o): Update.
409
410 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
411
412         * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS
413         and use it throughout.
414
415 2003-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
416
417         * builtins.c (real_dconstp, fold_builtin_logarithm,
418         fold_builtin_exponent): New, split out from fold_builtin.  Also
419         generalize to add log2, log10, exp2 and exp10/pow10 equivalents.
420         * emit-rtl.c (dconst3, dconst10, dconstthird): New.
421         (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu
422         of hardcoded array size.
423         * fold-const.c (fold): Add cases for exp2, exp10 and pow10.
424         (tree_expr_nonnegative_p): Likewise.
425         * real.h (dconst3, dconst10, dconstthird): New.
426
427 2003-09-09  Jan Hubicka  <jh@suse.cz>
428
429         * cgraphunit.c (cgraph_finalize_function): Fix handling of extern
430         inline functions.
431         (cgraph_finalize_compilation_unit): Fix crash when dealing with lost
432         DECL_SAVED_TREE.
433
434 2003-09-09  Roger Sayle  <roger@eyesopen.com>
435
436         * builtins.c (fold_builtin_cabs): Protect the complex argument
437         against multiple evaluation when optimizing cabs* into sqrt*.
438
439 2003-09-09  Jan Hubicka  <jh@suse.cz>
440
441         * varasm.c (notice_global_symbol):  Properly deal with weak symbols.
442
443 2003-09-08  Kelley Cook <kelleycook@wideopenwest.com>
444
445         * Makefile.in: Revert yesterday's change.
446
447 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
448             Peter Barada <peter@baradas.org>
449
450         * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
451         * config/m68k/hp320.h (REGISTER_NAMES): Likewise.
452         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
453         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
454         * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
455         * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
456         * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
457         (m68k_compute_frame_layout): New function.
458         (m68k_initial_elimination_offset): New function.
459         (m68k_output_function_prologue): ColdFire-specific movem handling.
460         (m68k_output_function_epilogue): Likewise.
461         * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
462         (ARG_POINTER_REGNUM): Add new definition.
463         (INITIAL_FRAME_POINTER_OFFSET): Remove macro.
464         (ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
465         (CAN_ELIMINATE): Likewise.
466         (INITIAL_ELIMINATION_OFFSET): Likewise.
467
468 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
469
470         * config/m68k/m68k.c (m68k_output_function_prologue): Simplify
471         by removing redundant variable cfa_store_offset.
472
473 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
474
475         * langhooks-def.h (lhd_register_builtin_type): New function.
476         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
477         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
478         * langhooks.h (lang_hooks_for_types): Add register_builtin_type.
479         * langhooks.c (lhd_register_builtin_type): New function.
480         * c-common.h (c_register_builtin_type): Declare.
481         * c-common.c (c_register_builtin_type): New function.
482         * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
483         c_register_builtin_type.
484         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
485         __float80, and __float128 macros.
486         * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
487         __float80, and __float128 types.
488
489 2003-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
490
491         * builtin-types.def
492         (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
493         BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
494         BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
495         * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
496         BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
497         BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
498         BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
499         BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
500         BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
501         BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
502         BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
503         BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
504         BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
505         BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
506         BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
507         BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
508         BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
509         New.
510         * doc/extend.texi: Document new builtins.
511
512 2003-09-09  Jan Hubicka  <jh@suse.cz>
513
514         * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
515         finalization.
516         * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
517         functions, check for COMDAT.
518         (cgraph_assemble_pending_functions): Break out from...
519         (cgraph_finalize_function): ... here; allow redefinig of extern inline
520         functions.
521         (record_call_1): Record function references only in non-unit-at-a-time
522         mode.
523         (cgraph_analyze_function): Reset current_function_decl.
524         (cgraph_finalize_compilation_unit):  Assemble pending functions.
525
526 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
527
528         * mklibgcc.in (libcc.a): Depend on stmp-dirs.
529         (libgov.a): Likewise.
530         (libgcc_eh.a): Likewise.
531
532 2003-09-08  Roger Sayle  <roger@eyesopen.com>
533
534         * fold-const.c (operand_equal_p): Clarify documentation.
535
536 2003-09-08  Richard Henderson  <rth@redhat.com>
537
538         * c-decl.c (c_expand_body_1): Push and pop function context here.
539         * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
540         nested argument instead of computing nesting ourselves.
541
542 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
543
544         * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before
545         regstack if optimizing but not scheduling after reload.
546
547 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
548
549         * config/sparc/sparc.c (struct machine_function): New type.
550         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
551         (sparc_override_options): Initialize init_machine_status.
552         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
553         tie_symbolic_operand, tle_symbolic_operand): New functions.
554         (symbolic_operand): Disallow tls_symbolic_operand.
555         (symbolic_memory_operand): Likewise.
556         (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
557         constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
558         New functions.
559         (sparc_tls_symbol): New variable.
560         (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
561         legitimize_address): New functions.
562         (print_operand): Handle %&.
563         (sparc_init_machine_status, get_some_local_dynamic_name,
564         get_some_local_dynamic_name_1): New functions.
565         (sparc_output_dwarf_dtprel): New function.
566         * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
567         constant_address_p.
568         (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
569         (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
570         (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
571         (LEGITIMIZE_ADDRESS): Moved into legitimize_address.
572         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
573         (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
574         (ASM_OUTPUT_DWARF_DTPREL): Define.
575         (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
576         tie_symbolic_operand, tle_symbolic_operand.
577         * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
578         UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
579         (tls_call_delay): New attribute.
580         (in_call_delay): Use it.
581         (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
582         (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
583         tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
584         tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
585         tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
586         tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
587         (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
588         tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
589         tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
590         tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
591         tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
592         tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
593         tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
594         tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
595         insns.
596         * config/sparc/sparc-protos.h (legitimate_constant_p,
597         constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
598         legitimize_tls_address, legitimize_address, tls_symbolic_operand,
599         tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
600         * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
601         * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
602         * configure.in (sparc*-*-*): Add TLS check.
603         * configure: Rebuilt.
604
605 2003-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
606
607         PR target/11689
608         * config/i386/i386.c (memory_address_length): Fix computation when
609         the base is esp or ebp.
610
611 2003-09-07  Mark Mitchell  <mark@codesourcery.com>
612
613         PR c++/11852
614         * varasm.c (initializer_constant_valid_p): Correct logic for
615         CONSTRUCTORs.
616
617 2003-09-07  Roger Sayle  <roger@eyesopen.com>
618
619         * expr.c (expand_operands): New function to expand an operand pair.
620         (expand_expr): Call expand_operands whenever we need to expand both
621         operands of a binary operator.
622         (do_store_flag): Likewise for operands of comparison operations.
623
624 2003-09-07  Roger Sayle  <roger@eyesopen.com>
625
626         * combine.c (combine_simplify_rtx): Don't convert -(A*B) into
627         (-A)*B if we care about sign-dependent rounding.
628
629 2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>
630
631         * c-pretty-print.h (pp_c_left_brace): Declare.
632         (pp_c_right_brace): Likewise.
633         * c-pretty-print.c (pp_c_left_brace): Now a function
634         (pp_c_right_brace): Likewise.
635
636 2003-09-07  Jan Hubicka  <jh@suse.cz>
637
638         * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
639
640 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
641
642         * diagnostic.c (warn_deprecated_use): Move to toplev.c
643
644 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
645
646         * langhooks.c (lhd_print_error_function): Move from diagnostic.c.
647         * Makefile.in (langhooks.o): Depend on diagnostic.h
648
649 2003-09-06  James E Wilson  <wilson@tuliptree.org>
650
651         * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and
652         simplify.
653
654 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
655
656         * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS
657         and use it throughout.
658
659 2003-09-07  Jan Hubicka  <jh@suse.cz>
660
661         * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
662
663         * toplev.c  (rest_of_decl_compilation):  Do not finalize external
664         virables.
665
666         * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized
667         functions.
668         (cgraph_varpool_finalize_decl): Notice global symbol when needed.
669
670 2003-09-06  Jan Hubicka  <jh@suse.cz>
671
672         PR target/12070
673         * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
674
675         PR opt/12082
676         * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
677
678 2003-09-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
679
680         * diagnostic.c (announce_function): Move to toplev.c.
681
682 2003-09-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
683
684         * gcse.c (expr_equiv_p): Don't consider anything to be equal to
685         volatile mem.
686
687 2003-09-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
688
689         * ggc-common.c (init_ggc_heuristics): Don't use the heuristics
690         when gc checking is enabled.
691
692 2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>
693
694         PR c/9862
695         * c-decl.c (c_expand_body_1): Move return warning from here...
696         (finish_function): ...to here.
697
698 2003-09-05  Geoffrey Keating  <geoffk@apple.com>
699
700         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return
701         a subset of the input class.
702
703 2003-09-05  Kazu Hirata  <kazu@cs.umass.edu>
704
705         * config/i860/i860.c: Follow spelling conventions.
706         * config/i860/i860.h: Likewise.
707         * config/sh/sh.h: Likewise.
708
709 2003-09-05  Nitin Yewale  <NitinY@KPITCummins.com>
710
711         * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok
712         * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New.
713         * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New.
714
715 2003-09-05  Roger Sayle  <roger@eyesopen.com>
716             Richard Henderson  <rth@redhat.com>
717
718         PR optimization/1823
719         * expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
720         multiplication to implement division by constant integer.
721
722 2003-09-05  Jan Hubicka  <jh@suse.cz>
723
724         * opts.c (decode_options): Enable unit-at-a-time at -O2.
725         * params.def (max-inline-insns-single): Set to 500
726         (max-inline-insns-auto): Set to 150
727         * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.
728
729 2003-09-04  Richard Henderson  <rth@redhat.com>
730
731         * cgraph.c (cgraph_mark_reachable_node): Split out from ...
732         (cgraph_mark_needed_node): Remove needed argument.
733         * cgraph.h: Update to match.
734         * cgraphunit.c (decide_is_function_needed): Split out from ...
735         (cgraph_finalize_function): Reorg.  Avoid deferred_inline_function
736         if we generated the function.
737         (record_call_1): Update for cgraph_mark_reachable_node.
738         * varasm.c (mark_referenced): Likewise.
739         * objc/objc-act.c (mark_referenced_methods): Likewise.
740
741 2003-09-04  DJ Delorie  <dj@redhat.com>
742
743         * targhooks.c: Add comment explaining the migration process.
744
745 2003-09-04  Eric Christopher  <echristo@redhat.com>
746
747         * config/frv/t-frv: Fix path for frv-abi.h.
748         * config/frv/frv-asm.h: Fix string concatenation.
749
750 2003-09-04  DJ Delorie  <dj@redhat.com>
751
752         * builtins.c (apply_args_size): Guard against a NULL cfun.
753         (expand_builtin_apply_args_1): Likewise.
754         (expand_builtin_apply): Likewise.
755         Fixes PR bootstrap/12172.
756
757 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
758
759         * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
760         assembler supports Sun syntax for cmov.
761         * configure: Regenerate.
762         * config.in: Likewise.
763         * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
764         HAVE_AS_IX86_CMOV_SUN_SYNTAX.
765         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
766         Fixes PR target/12101.
767
768 2003-09-04  Matt Austern  <austern@apple.com>
769
770         * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name
771         with verbosity 0, instead of DECL_NAME, for human-readable string.
772
773 2003-09-04  Eric Christopher  <echristo@redhat.com>
774
775         * targhooks.c (default_return_in_memory): Allow
776         unconverted ports.
777
778 2003-09-04  Eric Christopher  <echristo@redhat.com>
779
780         * targhooks.c (default_return_in_memory): Fix typo
781         in last checkin.
782
783 2003-09-04  Eric Christopher  <echristo@redhat.com>
784
785         * targhooks.c (default_return_in_memory): Fix default
786         definition.
787
788 2003-09-04  Bernardo Innocenti  <bernie@develer.com>
789
790         * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore
791         deleted function.
792         * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to
793         enable coff-only code in m68k.c.
794
795 2003-09-04  Nick Clifton  <nickc@redhat.com>
796
797         * config.gcc: Add v850e1 target.  Allow --with-cpu to accept
798         v850e1.
799         * config/v850/v850.h: Accept v850e1 as a default CPU.
800         Accept -mv850e1 as a command line option.
801         * doc/invoke.texi: Document new -mv850e1 command line switch.
802         * config/v850/t-v850: Treat -mv850e1 as a multilib alias for
803         -mv850e.
804
805 2003-09-04  Nick Clifton  <nickc@redhat.com>
806
807         * config.gcc (v850e-*-*): Use t-v850e makefile fragment.
808         * config/v850/t-v850: Only produce one extra multilib - for
809         the v850e.
810         * config/v850/t-v850e: New file: Only produce one extra
811         multilib - for the v850.
812
813 2003-09-04  Jakub Jelinek  <jakub@redhat.com>
814
815         * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
816         * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
817         * unwind.h (_Unwind_GetBSP): New prototype.
818         * libgcc-std.ver: Add empty GCC_3.3.2 version.
819         * mkmap-symver.awk: For symbol versions with no exported symbols,
820         don't put anything into version script, just change all symbol
821         versions which inherit from it to inherit from its ancestor.
822
823 2003-09-04  Eric Christopher  <echristo@redhat.com>
824
825         * config/mips/mips.c (mips_expand_prologue): Convert to
826         calls.struct_value_rtx hook.
827         (reg_or_const_float_1_operand): New.
828         * config/mips/mips.h: Update Comments.
829         (mips_arg): Add reg_or_const_float_1_operand.
830         * config/mips/mips.md (divdf3); Convert to expander.
831         (divsf3): Ditto.
832         (*divdf3): New pattern.
833         (*divsf3): Ditto.
834
835 2003-09-04  Jan Hubicka  <jh@suse.cz>
836
837         * toplev.c (wrapup_global_declarations): Fix final pass in
838         unit-at-atime mode.
839
840 2003-09-04  Mark Mitchell  <mark@codesourcery.com>
841
842         * doc/extend.texi: Document removal of cast-as-lvalue extension in
843         C++.
844
845 2003-09-04  Nicolas Roche  <roche@act-europe.fr>
846
847         * gcc.c (process_command): Fix typo.
848
849 2003-09-03  David O'Brien  <obrien@FreeBSD.org>
850
851         optimization/11980
852         * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
853         (PTRDIFF_TYPE): Likewise.
854         (WCHAR_TYPE_SIZE): Likewise.
855
856 2003-09-03  DJ Delorie  <dj@redhat.com>
857
858         * targhooks.c: New file.
859         * targhooks.h: New file.
860         * Makefile.in: Add targhooks.o support.
861         (function.o): Depend on$(TARGET_H).
862         (stmt.o): Likewise.
863         (combine.o): Depend on $(TREE_H) and $(TARGET_H).
864         * builtins.c (apply_args_size, expand_builtin_apply_args_1,
865         expand_builtin_apply): Convert to calls.struct_value_rtx hook.
866         (expand_builtin_saveregs): Convert to
867         calls.expand_builtin_saveregs hook.
868         * c-decl.c (start_decl): Handle new calls.promote_prototypes hook
869         here, instead of ...
870         (get_parm_info) ... here.
871         (store_parm_decls_oldstyle): Convert to calls.promote_prototypes
872         hook.
873         (finish_function): Handle calls.promote_prototypes hook here too.
874         * c-typeck.c (convert_arguments): Convert to
875         calls.promote_prototypes hook.
876         (c_convert_parm_for_inlining): Likewise.
877         * calls.c (initialize_argument_information): Convert to
878         calls.promote_function_args hook.
879         (expand_call): Convert to calls.struct_value_rtx,
880         calls.strict_argument_naming,
881         calls.pretend_outgoing_varargs_named, and
882         calls.promote_function_return hooks.  Pass fndecl to
883         aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
884         hooks, so they can use that.
885         (emit_library_call_value_1): Likewise.
886         * combine.c (setup_incoming_promotions): Convert to
887         calls.promote_function_args hook.
888         * emit-rtl.c: Convert to calls.struct_value_rtx hook.
889         * expr.c (expand_assignment): Pass call to aggregate_value_p.
890         (expand_expr): Likewise.
891         * expr.h: Remove support for SETUP_INCOMING_VARARGS,
892         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
893         RETURN_IN_MEMORY macro defaults.
894         * final.c (profile_function): Convert to calls.struct_value_rtx
895         hook.
896         * function.c (aggregate_value_p): Accept function type tree as
897         second parameter; try to deduce fntype from it.  Convert to
898         calls.return_in_memory hook.
899         (assign_parms): Convert to calls.setup_incoming_varargs,
900         calls.strict_argument_naming, calls.promote_function_args,
901         calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
902         aggregate_value_p.
903         (expand_function_start): Likewise.  Convert to
904         calls.struct_value_rtx hook.
905         (expand_function_end): Convert to calls.promote_function_return hook.
906         (allocate_struct_function): Pass fndecl to aggregate_value_p.
907         * hard-reg-set.h: Update comments to new hook names.
908         * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
909         * reg-stack.c (stack_result): Likewise.
910         * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
911         * stmt.c (expand_value_return): Convert to
912         calls.promote_function_return hook.
913         * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
914         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
915         TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
916         TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
917         TARGET_STRICT_ARGUMENT_NAMING,
918         TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
919         * target.h: Likewise.
920         * tree.h (aggregate_value_p): Also takes a tree to deduce function
921         attributes from (for target hooks).
922         * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
923         PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
924         STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
925         EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
926         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
927         to hooks.
928
929         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
930         to aggregate_value_p.
931         * config/arm/arm.c (arm_init_cumulative_args,
932         arm_output_mi_thunk): Likewise.
933         * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
934         Likewise.
935         * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
936         mips_can_use_return_insn): Likewise.
937         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
938         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
939         * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
940         aggregate_value_p.
941         * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
942         function to aggregate_value_p.
943         * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
944         aggregate_value_p.
945
946         * config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
947         (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
948         sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
949         (sh_handle_renesas_attribute, sh_promote_prototypes,
950         sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
951         sh_setup_incoming_varargs, sh_strict_argument_naming,
952         sh_pretend_outgoing_varargs_named): New decls.
953         (targetm): Add new hooks.
954         (calc_live_regs): Save MACL and MACH if the function has the
955         renesas attribute.
956         (sh_expand_prologue): Support renesas attribute.
957         (sh_builtin_saveregs): Make static.
958         (sh_build_va_list): Support renesas attribute.
959         (sh_va_start): Likewise.
960         (sh_va_arg): Likewise.
961         (sh_promote_prototypes): New.
962         (sh_function_arg): New, moved from sh.h.  Support renesas
963         attribute.
964         (sh_function_arg_advance): Likewise.
965         (sh_return_in_memory): Likewise.
966         (sh_strict_argument_naming): Likewise.
967         (sh_pretend_outgoing_varargs_named): Likewise.
968         (sh_struct_value_rtx): New.
969         (sh_attribute): Add renesas attribute.
970         (sh_handle_renesas_attribute): New.
971         (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
972         (sh_ms_bitfield_layout_p): Support renesas attribute also.
973         (sh_output_mi_thunk): Pass function to aggregate_value_p.  *
974         config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
975         -mhitachi.
976         (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
977         target hooks.
978         (sh_args): Add renesas_abi flag.
979         (INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
980         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
981         (PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
982         stack for the renesas abi.
983         (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
984         SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
985         PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
986         call cookie to indicate renesas calls.
987
988 2003-09-03  Mostafa Hagog  <mustafa@il.ibm.com>
989
990         * gcse.c (replace_one_set): New function.
991         (pre_insert_copy_insn): Change the order of copying
992         to make copy propagation discover additional PRE opportunities.
993
994 2003-09-03  Roger Sayle  <roger@eyesopen.com>
995
996         PR optimization/11700.
997         * simplify-rtx.c (simplify_subreg): Check that the subreg offset
998         of a hard register is representable before trying to simplify it
999         using subreg_hard_regno.
1000
1001 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1002
1003         * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld.
1004         * configure: Regenerate.
1005
1006 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1007
1008         * intl.h (N_): Remove parentheses.
1009
1010 2003-09-03  Bernardo Innocenti  <bernie@develer.com>
1011
1012         * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF.
1013         * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional
1014         definition and code blocks compiled when not defined.
1015         * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise.
1016         * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise.
1017         * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise.
1018         * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise.
1019
1020 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
1021
1022         * cgraphunit.c (visited_nodes): New static variable.
1023         (record_call_1): Use walk_tree with visited_nodes.
1024         (cgraph_create_edges): Use walk_tree with visited_nodes.
1025         Setup/teardown visited_nodes hashtable.
1026
1027 2003-09-03  Roger Sayle  <roger@eyesopen.com>
1028
1029         * toplev.c (flag_rounding_math): New global variable.
1030         (f_options): Add to the list of language independent options.
1031         * flags.h (flag_rounding_math): Prototype here.
1032         (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
1033         * common.opt (frounding-math): New common command line option.
1034         * opts.c (common_handle_option): Handle OPT_frounding_math.
1035         (set_fast_math_flags): -ffast-math clears flag_rounding_math.
1036
1037         * doc/invoke.texi: Document this new command line option.
1038
1039 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1040
1041         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment.
1042
1043 2003-09-03  Jan Hubicka  <jh@suse.cz>
1044
1045         * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
1046         * c-decl.c (finish_function):  Kill arguments, always use cgraph path.
1047         * c-objc-common.c: Kill include of gt-c-objc-common.h
1048         (expand_deferred_fns, deffer_fn): Kill function.
1049         (deferred_fns): Kill variable.
1050         (finish_cdtor): Update finish_function call.
1051         (c_objc_common_finish_file): Always call cgraph code.
1052         * c-parse.c: Regenerate.
1053         * c-parse.y: Regenerate.
1054         * c-tree.h (finish_function): Update prototype.
1055         * objc-acct.c (build_module_descriptor, finish_method_def):
1056         Update call of finish_function.
1057         * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add
1058         forward prototype.
1059         (cgraph_finalize_function): In non-unit-at-a-time mode analyze the
1060         function and assemble it if needed.
1061         (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time
1062         mode.
1063         (cgraph_optimize): Likewise.
1064         (cgraph_expand_function): In non-unit-at-a-time mode keep function body
1065         even when it has no inline callees.
1066         * c-parse.in: Update calls to finish_function.
1067
1068 2003-09-03  Nick Clifton  <nickc@redhat.com>
1069
1070         * config/arm/arm.h: Handle TARGET_CPU_iwmmxt.
1071         Use #error to generate the message if TARGET_DEFAULT is not
1072         recognised.
1073
1074 2003-09-03  Richard Sandiford  <rsandifo@redhat.com>
1075
1076         * config/mips/mips.h (MASK_UNUSED1): Remove.
1077         (MASK_XGOT, TARGET_XGOT): Define.
1078         (TARGET_SWITCHES): Add an entry for -mxgot.
1079         (ASM_SPEC): Map -mxgot to -xgot.
1080         * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide
1081         whether we're using a big-GOT sequences.
1082         (mips_legitimize_const_move, mips_expand_call): Likewise.
1083         (override_options): Revert 2003-01-09 change.
1084         * doc/invoke.texi: Document -mxgot.
1085
1086 2003-09-02  Jason Merrill  <jason@redhat.com>
1087
1088         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here.
1089         * config/sparc/sol2.h: Not here.
1090
1091 2003-09-02  Roger Sayle  <roger@eyesopen.com>
1092
1093         * expr.c (expand_expr): The code following both_summands performs
1094         the same task as simplify_gen_binary.  Replace all gotos to
1095         both_summands with a call to simplify_gen_binary and delete the
1096         now unused label.
1097
1098 2003-09-02  Jason Merrill  <jason@redhat.com>
1099
1100         PR c++/7327
1101         * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define.
1102
1103 2003-09-02  Jeff Sturm  <jsturm@one-point.com>
1104
1105         * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates.
1106         (cgraph_optimize_function): Set current_function_decl to the
1107         fndecl we're integrating from.
1108
1109 2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1110
1111         * builtins.def: Break out _Complex math functions into their
1112         own category.
1113
1114 2003-09-02  Andreas Jaeger  <aj@suse.de>
1115
1116         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly.
1117
1118 2003-09-02  Josef Zlomek  <zlomekj@suse.cz>
1119
1120         * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of
1121         finding the note again.
1122
1123 2003-09-02  Nathanael Nerode  <neroden@gcc.gnu.org>
1124
1125         * config.gcc: Remove host-specific rewrites of target_alias.
1126
1127 2003-09-01  Mark Mitchell  <mark@codesourcery.com>
1128
1129         * Makefile.in (genprogs): Fix typo.
1130
1131         * Makefile.in (gencheck.o): Remove build commands.
1132         (dummy-conditions.o): Likewise.
1133         (read-rtl.o): Likewise.
1134         (gensupport.o): Likewise.
1135         (genconfig$(build_exeext)): Remove rule.
1136         (genconfig.o): Remove build commands.
1137         (genflags$(build_exeext)): Remove rule.
1138         (genflags.o): Remove build commands.
1139         (gencodes$(build_exeext)): Remove rule.
1140         (gencodes.o): Remove build commands.
1141         (genconstants.o): Remove build commands.
1142         (genemit$(build_exeext)): Remove rule.
1143         (genemit.o): Remove build commands.
1144         (genrecog$(build_exeext)): Remove rule.
1145         (genrecog.o): Remove build commands.
1146         (genextract$(build_exeext)): Remove rule.
1147         (genextract.o): Remove build commands.
1148         (genpeep$(build_exeext)): Remove rule.
1149         (genpeep.o): Remove build commands.
1150         (genattr$(build_exeext)): Remove rule.
1151         (genattr.o): Remove build commands.
1152         (genprognames): New variable.
1153         (genprogs): Likewise.
1154         (genobjs): Likewise.
1155         (genprogs): New rule.
1156         (genobjs): Likewise.
1157         (genattrtab.o): Remove build commands.
1158         (genautomata.o): Likewise.
1159         (genoutput$(build_exeext)): Remove rule.
1160         (genoutput.o): Remove build commands.
1161         (gengenrtl.o): Likewise.
1162         (genpreds.o): Likewise.
1163         (gengtype.o): Likewise.
1164         (genconditions.o): Likewise.
1165         (gen-protos.o): Likewise.
1166         (scan.o): Likewise.
1167         (fix-header.o): Likewise.
1168         (scan-decls.o): Likewise.
1169         (check-g++): Combine with other check targets.
1170         (check-gcc): Likewise.
1171         (check-g77): Likewise.
1172         (check-objc): Likewise.
1173
1174 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
1175
1176         * config.gcc: Remove host-specific stuff which is unused here
1177         since the introduction of config.host.
1178
1179         * doc/fragments.texi: Mention config.host.
1180         * doc/sourcebuild.texi: Mention config.host.  Give brief descriptions
1181         of config.build, config.host, and config.gcc.
1182
1183 2003-09-01  Zack Weinberg  <zack@codesourcery.com>
1184
1185         * c-decl.c (pushdecl): Don't put variables on
1186         C_TYPE_INCOMPLETE_VARS of a type unless that type is itself
1187         incomplete.
1188
1189 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
1190
1191         * config.host: New file.
1192         * config.gcc: Remove some host-specific stuff and some
1193         logic needed only for repeated invocation.
1194         * configure.in: Use config.host.
1195         * configure: Regenerate.
1196
1197 2003-09-01  Josef Zlomek  <zlomekj@suse.cz>
1198
1199         * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
1200         * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR.
1201         * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR.
1202         (fold): Kill BIT_ANDTC_EXPR and label bit_and.
1203         * tree.def (BIT_ANDTC_EXPR): Kill.
1204
1205 2003-08-31  Nathanael Nerode  <neroden@gcc.gnu.org>
1206
1207         * configure.in: Remove uses of "for x in .. ${foo}" idiom.
1208         * configure: Regenerate.
1209
1210         * config.gcc:  Remove references to install_headers_dir, now unused
1211         since introduction of config.build.
1212         * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines.
1213
1214         * doc/fragments.texi, doc/sourcebuild.texi: Mention new file
1215         config.build.
1216
1217         * config.build: New file.
1218         * config.gcc: Remove some build-specific stuff.
1219         * configure.in: Use config.build.
1220         * configure: Regnerate.
1221
1222 2003-08-31  Steven Bosscher  <steven@gcc.gnu.org>
1223             Roger Sayle  <roger@eyesopen.com>
1224
1225         PR middle-end/11823
1226         * stmt.c (expand_end_case_type): Only use jump tables for dense
1227         switch statements when optimizing for size.
1228
1229 2003-08-31  Olivier Hainque  <hainque@act-europe.fr>
1230
1231         * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
1232         the != 0 case, which ensures pending stack adjustments are flushed.
1233
1234 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
1235
1236         * configure.frag: Delete file.
1237         * configure.in: Rename the substitution variables
1238         dep_host_xmake_file and dep_tmake_file to xmake_file and
1239         tmake_file respectively.  Do not expand $srcdir in the
1240         value of these; leave that for Make.  Introduce a new
1241         substitution varaible, all_lang_makefrags, which lists
1242         subdirectory Make-lang.in files; exclude these from
1243         all_lang_makefiles, which is now only for subdirectory
1244         outputs.  Do not invoke configure.frag.  Do not set nor
1245         AC_SUBST_FILE target_overrides, host_overrides, or
1246         language_fragments. Create build subdirectories in
1247         config.status extra commands.
1248         * configure: Regenerate.
1249         * Makefile.in: Update substitutions to match changes to
1250         configure.  Use include directives instead of @-insertions
1251         to read in host, target, and language fragments.
1252         (Makefile rule): Do not invoke configure.frag.  Do not copy
1253         config.status to config.run before executing it.  Set
1254         CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets
1255         regenerated.
1256         (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS.
1257
1258 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
1259
1260         * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
1261         * c-typeck.c (same_translation_unit_p): New function.
1262         (comptypes): Use it instead of flags parameter to identify
1263         structure types from different translation units.
1264         * c-decl.c (duplicate_decls): Always call comptypes with
1265         COMPTYPE_STRICT flags argument.
1266         (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
1267         to file_scope_decl.
1268
1269 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
1270
1271         * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
1272         * c-decl.c (struct c_scope): Remove "incomplete" field.
1273         (pushdecl): Attach variables with incomplete types to
1274         the TYPE_MAIN_VARIANT of the incomplete type in question.
1275         (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
1276         to complete, not at current_scope->incomplete.  All such
1277         variables do need completion.
1278
1279 2003-08-30  Richard Earnshaw  <rearnsha@arm.com>
1280         Nicolas Pitre <nico@cam.org>
1281
1282         * arm/lib1funcs.asm (RETCOND): Delete.
1283         (RETLDM): New assembler macro.  Use it for returning with ldm/ldr.
1284         (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions.
1285         (__ARM_ARCH__): Move here from ieee754-?f.S.
1286         (RET, RETc): Clean up definitions.
1287         (DIV_FUNC_END): Renamed from FUNC_END.  All uses changed.
1288         (FUNC_END): New macro that marks the end of any function.
1289         (ARM_FUNC_START): New macro that allows an assembler routine to be
1290         implemented in ARM code even if a Thumb-only build.
1291         Unconditionally include ieee754-?f.S.
1292         * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm.
1293         Mark ends of functions.
1294         Split into separate conditionally-compiled units.
1295         Use RETLDM to return from routines.
1296         * arm/ieee754-sf.S: Similarly.
1297         * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp.
1298         Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi
1299         _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2
1300         _fixsfsi and _fixunssfsi.
1301
1302         * arm/ieee754-df.S (__muldf3): Fix bug when result of a
1303         multiplication underflows to zero.
1304         (__adddf3): Fix bug when using VFP ordering on little-endian
1305         processors.
1306         (__fixdfsi): Use rrx to extract the carry into a register instead of
1307         MRS instruction.  Optimize later use of result.
1308         * arm/ieee754-sf.S (__fixsfsi): Likewise.
1309         (__fixunssfsi): Use a better sequence for handling negative-or-zero.
1310
1311 2003-08-29  Richard Henderson  <rth@redhat.com>
1312
1313         * tree-optimize.c: New file.
1314         * Makefile.in (OBJS-archive): Add tree-optimize.o.
1315         (tree-optimize.o): New.
1316         * c-decl.c (store_parm_decls): Use allocate_struct_function.
1317         (finish_function): Don't free_after_parsing or free_after_compilation.
1318         (set_save_expr_context): Move to tree-optimize.c.
1319         (c_expand_body_1): Use tree_rest_of_compilation.
1320         * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
1321         * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
1322         * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
1323         iterate until closure.
1324         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
1325         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
1326         (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
1327         * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
1328         * toplev.h (tree_rest_of_compilation): Declare it.
1329
1330 2003-08-29  Richard Henderson  <rth@redhat.com>
1331
1332         * function.h (struct function): Add rtl_inline_init, saved_for_inline.
1333         * integrate.c (save_for_inline): Set saved_for_inline.
1334         * c-semantics.c (genrtl_scope_stmt): Check it.
1335         * toplev.c (wrapup_global_declarations): Check it.
1336         (rest_of_handle_inlining): Set and check rtl_inline_init.
1337         (rest_of_compilation): Remove out of date comment.
1338
1339 2003-08-29  Richard Henderson  <rth@redhat.com>
1340
1341         * function.c (allocate_struct_function): New, split out of ...
1342         (prepare_function_start, init_function_start): ... here.
1343         * expr.c (init_expr): Use ggc_alloc_cleared.
1344         * stmt.c (init_stmt_for_function): Likewise.
1345         * tree.h (allocate_struct_function): Declare.
1346
1347 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
1348
1349         * config.gcc: Don't use negated character class in shell case
1350         clause.
1351
1352 2003-08-29  Richard Henderson  <rth@redhat.com>
1353
1354         * function.h (struct function): Move function_frequency and
1355         max_jumptable_ents before start of bit field members.
1356
1357 2003-08-29  Richard Henderson  <rth@redhat.com>
1358
1359         * builtins.c (expand_builtin_constant_p): Check cse_not_expected here,
1360         (fold_builtin_constant_p) ... not here.
1361
1362 2003-08-29  Richard Henderson  <rth@redhat.com>
1363
1364         * c-tree.h (C_DECL_FILE_SCOPE): Move ...
1365         * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
1366         * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.
1367
1368 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1369
1370         * builtins.def: Fix typos.
1371         (ATTR_MATHFN_FPROUNDING_STORE): New macro.
1372         (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF,
1373         BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF,
1374         BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF,
1375         BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE.
1376
1377         * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL):
1378         Use ATTR_MATHFN_FPROUNDING_ERRNO.
1379
1380 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
1381
1382         * config.gcc (i386-*-vsta): Fix obvious bogosity.
1383
1384         * fixinc/inclhack.def:  Remove special cases for unsupported
1385         PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3).
1386         * fixinc/fixincl.x: Regenerate.
1387
1388 2003-08-29  Mark Mitchell  <mark@codesourcery.com>
1389
1390         * Makefile.in (cpp.info): Just state dependencies.
1391         (gcc.info): Likewise.
1392         (gccint.info): Likewise.
1393         (gccinstall.info): Likewise.
1394         (cppinternals.info): Likewise.
1395         (cpp.dvi): Likewise.
1396         (gcc.dvi): Likewise.
1397         (gccint.dvi): Likewise.
1398         (gccinstall.dvi): Likewise.
1399         (cppinternals.dvi): Likewise.
1400         (gcov.1): Likewise.
1401         (cpp.1): Likewise.
1402         (gcc.1): Likewise.
1403         (gfdl.7): Likewise.
1404         (gpl.7): Likewise.
1405         (fsf-funding.7): Likewise.
1406         ($(objdir)/%.info): New pattern rule.
1407         (%.dvi): Likewise.
1408
1409 2003-08-29  Kelley Cook  <kelleycook@wideopenwest.com>
1410
1411         * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make.
1412         (restage2): Likewise.
1413         (restage3): Likewise.
1414         (restage4): Likewise.
1415         (restageprofile): Likewise.
1416         (restagefeedback): Likewise.
1417         (bubblestrap): Likewise.
1418
1419 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
1420
1421         * config.gcc: Narrow unsupported target match to avoid clobbering
1422         i?86-sequent-sysv4*.
1423
1424 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1425
1426         * builtins.c (mathfn_built_in): Handle new math builtins.
1427
1428 2003-08-28  Per Bothner  <per@bothner.com>
1429
1430         Fix (hopefully temporary) for breakage caused by my 08-21 patch.
1431         * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
1432         (_cpp_lex_buffer):  Likewise.
1433         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
1434
1435 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
1436
1437         * config/s390/s390.md ("*mulsi3_sign"): New insn.
1438         ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ...
1439         ("mulsidi3"): ... this new insn.
1440         ("umulsidi3"): New insn.
1441         ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using
1442         mixed-mode matching constraints.
1443         ("udivmodsi4", "udivmoddisi3"): New insns.
1444         ("udivsi3", "umodsi3"): Use only in ESA/390 mode.
1445
1446 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1447
1448         * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR,
1449         BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR,
1450         BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
1451         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
1452         BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR,
1453         BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
1454         BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
1455         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
1456         BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
1457         BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
1458         BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New.
1459         * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL,
1460         BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO,
1461         BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS,
1462         BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New.
1463         * tree.c: Assign new type_nodes.
1464         * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE,
1465         TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE.
1466         (float_ptr_type_node, double_ptr_type_node,
1467         long_double_ptr_type_node, integer_ptr_type_node): New type_nodes.
1468
1469         * doc/extend.texi: Document new builtins.
1470
1471 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1472
1473         * builtin-types.def (BT_FN_FLOAT_INT_FLOAT,
1474         BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New.
1475
1476         * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF,
1477         BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA,
1478         BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F,
1479         BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L,
1480         BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA,
1481         BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND,
1482         BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA,
1483         BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F,
1484         BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L,
1485         BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New.
1486
1487         * doc/extend.texi: Document new builtins.
1488
1489 2003-08-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1490
1491         * fixinc/mkfixinc.sh: Remove special case code for unsupported
1492         variants of i?86, powerpcle, and thumb.
1493         * fixinc/mkfixinc.sh: Remove special case code for unsupported
1494         arm and hppa variants.
1495
1496 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1497
1498         * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE,
1499         BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE,
1500         BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT,
1501         BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE,
1502         BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
1503         BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT,
1504         BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG,
1505         BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
1506         BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
1507         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New.
1508
1509         * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH,
1510         BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN,
1511         BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL,
1512         BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL,
1513         BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN,
1514         BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH,
1515         BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF,
1516         BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L,
1517         BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1,
1518         BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF,
1519         BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL,
1520         BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN,
1521         BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF,
1522         BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL,
1523         BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT,
1524         BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND,
1525         BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10,
1526         BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF,
1527         BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L,
1528         BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT,
1529         BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND,
1530         BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER,
1531         BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD,
1532         BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10,
1533         BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER,
1534         BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT,
1535         BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF,
1536         BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF,
1537         BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF,
1538         BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL,
1539         BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New.
1540
1541         * doc/extend.texi: Document new builtins.
1542
1543 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
1544
1545         * config/s390/s390.c (legitmate_constant_p): Use LARL on
1546         zSeries machines even in 31-bit addressing mode.
1547         (legitimate_reload_constant_p): Likewise.
1548         (legitimize_pic_address): Likewise.
1549         (legitimize_tls_address): Likewise.
1550         (s390_split_branches): Likewise.
1551         (s390_dump_pool): Likewise.
1552         (s390_mainpool_finish): Likewise.
1553         (s390_chunkify_start): Likewise.
1554         (s390_select_rtx_section): Likewise.
1555         * config/s390/s390.md ("doloop_si"): Likewise.
1556         ("pool_start_31", "pool_end_31"): Likewise.
1557         ("pool_start_64", "pool_end_64"): Likewise.
1558         ("main_base_31_small", "main_base_31_large"): Likewise.
1559         ("main_base_64"): Likewise.
1560         ("reload_base_31", "reload_base_64"): Likewise.
1561         ("*movsi_larl"): New insn.
1562         ("cjump", "icjump"): Use long branches on zSeries machines.
1563         ("jump"): Likewise.
1564         ("call"): Use BRASL on zSeries machines.
1565         ("call_value", "call_value_tls"): Likewise.
1566         ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove
1567         and replace by ...
1568         ("*bras", "*brasl", "*basr") ... these new insns.
1569         ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r",
1570         "bas_31_r"): Remove and replace by ...
1571         ("*bras_r", "*brasl_r", "*basr_r") ... these new insns.
1572         ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls",
1573         "bas_64_tls", "bas_31_tls"): Remove and replace by ...
1574         ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns.
1575         ("*return_si", "*return_di"): Remove and replace by ...
1576         ("*return"): ... this new insn.
1577         ("rotlsi3"): Allow on zSeries machines.
1578
1579         * config/s390/s390.c (legitimize_reload_constant_p): Use
1580         LL/LH type instructions in z/Architecture mode.
1581         * config/s390/s390.md ("*movsi_lli"): Likewise.
1582         ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise.
1583         ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise.
1584         ("*extendqisi2"): Use LB in z/Architecture mode.
1585         ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in
1586         z/Architecture mode.
1587         ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"):
1588         Likewise.
1589
1590         * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit
1591         and 31-bit mode.
1592         ("ptr_extend"): Allow only in 64-bit mode.
1593
1594 2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
1595
1596         * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX)
1597         (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary
1598         definitions.
1599         (main): Only use standard_startfile_prefix if native.
1600         * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update.
1601
1602 2003-08-27  Per Bothner  <pbothner@apple.com>
1603
1604         * cpperror.c (print_location):  Don't check for !pfile->buffer.  That
1605         test fails following my 08-21 change, and it seems unnecessary anyway.
1606         (cpp_error):  Likewise.
1607
1608 2003-08-27  Jason Merrill  <jason@redhat.com>
1609
1610         * real.c (do_multiply): Initialize with memset.
1611
1612 2003-08-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1613
1614         * gcov.c (typedef struct arc_info): New field cs_count.
1615         (accumulate_line_counts): Find cycles correctly.
1616
1617 2003-08-27  Ulrich Weigand  <uweigand@de.ibm.com>
1618
1619         * config/s390/s390.c (struct machine_function): Remove member
1620         literal_pool_label.
1621         (s390_optimize_prolog): Replace TEMP_REG argument with
1622         TEMP_USED and BASE_USED.  Do not check get_pool_size ().
1623         (general_s_operand): Accept all immediates before reload if
1624         ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
1625         references.
1626         (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
1627         (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
1628         (s390_alloc_pool): New function.
1629         (s390_new_pool): Call it.
1630         (s390_dump_pool): Add REMOTE_LABEL argument.
1631         (s390_chunkify_start): Add BASE_REG argument.  Do not check
1632         get_pool_size ().
1633         (s390_chunkify_finish): Add BASE_REG argument.  Adapt
1634         s390_dump_pool call.
1635         (s390_pool_count, s390_nr_constants): Remove.
1636         (s390_output_constant_pool): Remove.
1637         (s390_mainpool_start): New function.
1638         (s390_mainpool_finish): New function.
1639         (s390_mainpool_cancel): New function.
1640         (s390_reorg): Implement main literal pool handling.
1641         (s390_emit_prologue): Emit main_pool placeholder instead of
1642         literal_pool_31 / literal_pool_64 insns.
1643         * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
1644         (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
1645         * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant.
1646         ("main_base_31_small", "main_base_31_large"): New insns.
1647         ("main_base_64",  "main_pool"): New insns.
1648         ("literal_pool_31", "literal_pool_64"): Remove.
1649
1650 2003-08-27  Nathanael Nerode  <neroden@gcc.gnu.org>
1651
1652         * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from
1653         fixinc.ptx.
1654         * fixinc/inclhack.def (undefine_null):  Don't generate \r characters.
1655         Prettify a little.
1656         * fixinc/fixincl.x: Regenerate.
1657
1658 2003-08-27  Richard Earnshaw  <rearnsha@arm.com>
1659
1660         * lib1funcs.asm (L_ieee754_sp): New.  Include ieee754-sf.S.
1661         (L_ieee754_dp): New.  Include ieee754-df.S.
1662         * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb,
1663         and compilation in apcs-26 mode.
1664         * arm/ieee754-df.S: Likewise.
1665         * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules
1666         (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets.
1667
1668 2003-08-27  Nicolas Pitre  <nico@cam.org>
1669
1670         * arm/ieee754-sf.S: New.
1671         * arm/ieee754-df.S: New.
1672
1673 2003-08-27  Jakub Jelinek  <jakub@redhat.com>
1674
1675         * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust
1676         and restore it if returning NULL.
1677
1678 2003-08-27  Richard Sandiford  <rsandifo@redhat.com>
1679
1680         * calls.c (initialize_argument_information): If an argument has no
1681         stack space associated with it, and BLOCK_REG_PADDING is defined,
1682         use it to decide at which end the argument should be padded.
1683         * function.c (assign_parms): Allocate BLKmode stack slots.
1684         * config/mips/mips-protos.h (mips_pad_arg_upward): Declare.
1685         (mips_pad_reg_upward): Declare.
1686         * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING.
1687         (CUMULATIVE_ARGS): Remove num_adjusts and adjusts.
1688         (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward.
1689         (BLOCK_REG_PADDING): Use mips_pad_reg_upward.
1690         * config/mips/mips.c (struct mips_arg_info): Remove struct_p.
1691         (mips_expand_call): Remove code for generating structure shifts.
1692         (mips_arg_info): Don't set struct_p.  Don't set fpr_p for non-float
1693         types unless using the EABI.
1694         (function_arg_advance): Don't generate shift instructions.
1695         (function_arg): Don't return them.  Don't short-circuit the
1696         check for double structure chunks for DFmode arguments.
1697         (mips_pad_arg_upward, mips_pad_reg_upward): New functions.
1698         (mips_expand_prologue): Remove code to emit structure shifts.
1699         * config/mips/irix6-libc-compat.c: Remove workarounds for buggy
1700         structure passing (inet_ntoa, inet_lnaof, inet_netof).  Update
1701         comments to say that only structure returns are a problem.
1702
1703 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1704
1705         * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h:
1706         Fix to match produced versions.
1707         * fixinc/inclhack.def (longlong_t): New disabled test, ported
1708         from fixinc.svr4.
1709         * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported
1710         from fixinc.ptx.
1711         * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
1712         ported from fixinc.ptx.
1713
1714 2003-08-26  Per Bothner  <pbothner@apple.com>
1715
1716         * cpplib.h (struct cpp_token):  Change type of field line to fileline.
1717         (cpp_error_with_line):  Use fileline for appropriate parameter.
1718         * cpphash.h (struct cpp_macro):  Change type of field line to fileline.
1719         (struct cpp_reader):  Likewise for fields line and directive_line.
1720         (_cpp_begin_message):  Use fileline for appropriate parameter.
1721         * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line,
1722         cpp_error):  Use fileline for appropriate parameters and variables.
1723         (print_location):  New local lin, since it is not a fileline.
1724
1725 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1726
1727         PR middle-end/12002
1728         * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros.
1729         (FLOAT_TYPE_P): Define in terms of these two new macros.
1730         * fold-const.c (fold <PLUS_EXPR>): Don't convert x+x into x*2.0
1731         for complex floating point types.
1732
1733 2003-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
1734
1735         * config/s390/s390.c (emit_prologue): Don't check literal pool size.
1736         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call
1737         s390_output_pool_entry.
1738
1739 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1740
1741         * fixinc/inclhack.def (svr4_preproc_lint_on,
1742         svr4_preproc_lint_off, svr4_preproc_machine): New disabled
1743         fixes, ported from fixinc.svr4.
1744
1745 2003-08-26  Mark Mitchell  <mark@codesourcery.com>
1746
1747         * doc/install.texi (Prerequisites): Mention GNU make requirement.
1748
1749         * Makefile.in (AR_FOR_TARGET): Export it.
1750         (AR_CREATE_FOR_TARGET): Likewise.
1751         (AR_FLAGS_FOR_TARGET): Likewise.
1752         (AR_EXTRACT_FOR_TARGET): Likewise.
1753         (AWK): Likewise.
1754         (BUILD_PREFIX): Likewise.
1755         (BUILD_PREFIX_1): Likewise.
1756         (DESTDIR): Likewise.
1757         (GCC_FOR_TARGET): Likewise.
1758         (INCLUDES): Likewise.
1759         (INSTALL_DATA): Likewise.
1760         (LIB1ASMSRC): Likewise.
1761         (LIBGCC2_CFLAGS): Likewise.
1762         (MACHMODE_H): Likewise.
1763         (NM_FOR_TARGET): Likewise.
1764         (RANLIB_FOR_TARGET): Likewise.
1765         (libsubdir): Likewise.
1766         (slibdir): Likewise.
1767         (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're
1768         exporting.
1769         (libgcc.a): Don't pass them here.
1770         (stmp-multilib): Or here.
1771         (install-libgcc): Or here.
1772         (install-multilib): Or here.
1773         (POSTSTAGE1_FLAGS_TO_PASS): Or here.
1774         (stage1_build): Or here.
1775
1776 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
1777
1778         * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi",
1779         "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns.
1780
1781 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
1782
1783         * config/s390/s390.md ("*fmadddf", "*fmsubdf",
1784         "*fmaddsf", "*fmsubsf"): New insns.
1785
1786 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1787
1788         * fold-const.c (fold <MULT_EXPR>): Optimize (C1/X)*C2 into
1789         (C1*C2)/X when unsafe math optimizations are allowed.
1790         (fold <RDIV_EXPR>): Optimize C1/(X*C2) into (C1/C2)/X with unsafe
1791         math optimizations.  Minor code clean-ups.  Recursively call
1792         fold when constructing sub-expressions.
1793
1794 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1795
1796         * builtins.c (fold_builtin_bitop): New function to perform constant
1797         folding of ffs, clz, ctz, popcount and parity builtin functions
1798         and their long and long long variants (such as ffsl and ffsll).
1799         (fold_builtin): fold_builtin_bitop when appropriate.
1800         * simplify-rtx.c (simplify_unary_operation): Honor both
1801         CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when
1802         evaluating clz and ctz at compile-time, for operands wider
1803         than HOST_WIDE_INT.
1804
1805 2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>
1806
1807         * builtins.c (build_function_call_expr): Don't set
1808         TREE_SIDE_EFFECTS here.
1809         * expr.c (emit_block_move_via_libcall): Likewise.
1810         (clear_storage_via_libcall): Likewise.
1811         * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure
1812         CALL_EXPRs.
1813
1814         * gcse.c (is_too_expensive): New function.
1815         (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it.
1816
1817 2003-08-25  Zack Weinberg  <zack@codesourcery.com>
1818
1819         * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove
1820         commented-out logic to use DCE threads (if present), add
1821         support for POSIX threads.
1822         * config/ia64/hpux.h: Define CPP_SPEC to set appropriate
1823         #defines for -pthread.  Add -lpthread to LIB_SPEC when
1824         -pthread.  In both cases take -mt as a synonym for -pthread
1825         for acc compatibility.
1826         Define GTHREAD_USE_WEAK to 0.
1827         * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC.
1828         Remove old logic for DCE threads from LIB_SPEC.
1829         * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0.
1830
1831 2003-08-25  Roger Sayle  <roger@eyesopen.com>
1832
1833         * builtins.c (expand_builtin_mathfn):  Rearrange so that we only
1834         return 0 for invalid argument types.  Instead drop through to a
1835         call of expand_call at the bottom of function.  If op is SQRT,
1836         try attaching a SQRT rtx as the REQ_EQUAL note of the libcall.
1837
1838 2003-08-25  Richard Henderson  <rth@redhat.com>
1839
1840         * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate
1841         result when op0 is SImode.
1842
1843 2003-08-25  Nathanael Nerode  <neroden@twcny.rr.com>
1844
1845         * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported
1846         from fixinc.svr4.
1847         * fixinc/fixincl.x: Regenerate.
1848         * fixinc/tests/base/sys/signal.h: Regenerate.
1849
1850 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1851
1852         * combine.c (simplify_comparison): Re-enable widening of comparisons
1853         with non-paradoxical subregs of non-REG expressions.
1854
1855 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1856
1857         * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
1858
1859 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1860
1861         * combine.c (combine_simplify_rtx): Fix RTL sharing bug.
1862
1863 2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1864
1865         * pretty-print.h (pp_maybe_newline_and_indent): New macro.
1866         * c-pretty-print.h (c_pretty_printer): Now typedef to the
1867         structure.  Be consistent with pretty-print.h abd cxx-pretty-print.h
1868         (struct c_pretty_print_info): Document.  Add new fields.
1869         (pp_type_specifier_seq): Rename from pp_c_type_specifier.
1870         (pp_direct_abstract_declarator): New macro.
1871         (pp_ptr_operator): Likewise.
1872         (pp_simple_type_specifier): Likewise.
1873         (pp_expression): Likewise.
1874         (pp_parameter_list): Rename from pp_parameter_declaration.
1875         * c-pretty-print.c (pp_c_whitespace): Now a function.
1876         (pp_c_left_paren): Likewise.
1877         (pp_c_right_paren): Likewise.
1878         (pp_c_dot): Likewise.
1879         (pp_c_ampersand): Likewise.
1880         (pp_c_arrow): Likewise.
1881         (pp_c_semicolon): Likewise.
1882         (pp_c_type_cast): New function.
1883         (pp_c_space_for_pointer_operator): Likewise.
1884         (pp_c_call_argument_list): Likewise.
1885         (pp_c_cv_qualifier): Adjust prototype.
1886         (pp_c_type_qualifier_list): Likewise.
1887         (pp_c_pointer): Likewise.  Handle REFERENCE_TYPE here.
1888         (pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
1889         Adjust to follow standard grammar.
1890         (pp_c_specifier_qualifier_list): Adjusr prototype.  Handle
1891         REFERENCE_TYPE.  Tidy.
1892         (pp_c_parameter_type_list): Adjust prototype.  Tidy.
1893         (pp_c_parameter_declaration): Remove.
1894         (pp_c_abstract_declarator): Adjust prototype.
1895         (pp_c_direct_abstract_declarator): Likewise.
1896         (pp_c_type_id): Likewise.
1897         (pp_c_storage_class_specifier): Likewise.
1898         (pp_c_function_specifier): Likewise.
1899         (pp_c_declaration_specifiers): Likewise.
1900         (pp_c_direct_declarator): Likewise.
1901         (pp_c_declarator): Likewise.
1902         (pp_c_declarator): Likewise.
1903         (pp_c_declaration): Likewise.
1904         (pp_c_attributes): Likewise.  Tidy.
1905         (pp_c_function_definition): Adjust prototype.
1906         (pp_c_char): Likewise.
1907         (pp_c_string_literal): Likewise.
1908         (pp_c_integer_constant): Likewise.
1909         (pp_c_character_constant): Likewise.
1910         (pp_c_bool_constant): Likewise.
1911         (pp_c_enumeration_constant): Likewise.
1912         (pp_c_floating_constant): Likewise.
1913         (pp_c_constant): Likewise.
1914         (pp_c_identifier): Likewise.
1915         (pp_c_primary_expression): Likewise.  Remove TARGET_EXPR case.  Tidy.
1916         (pp_c_initializer): Adjust prototype.
1917         (pp_c_init_declarator): Likewise.
1918         (pp_c_initializer_list): Likewise.
1919         (pp_c_id_expression): Likewise.
1920         (pp_c_postfix_expression): Likewise.
1921         (pp_c_expression_list): Likewise.
1922         (pp_c_unary_expression): Likewise.
1923         (pp_c_cast_expression): Likewise.
1924         (pp_c_multiplicative_expression): Likewise.
1925         (pp_c_additive_expression): Likewise.
1926         (pp_c_shift_expression): Likewise.
1927         (pp_c_relational_expression): Likewise.
1928         (pp_c_equality_expression): Likewise.
1929         (pp_c_and_expression): Likewise.
1930         (pp_c_exclusive_or_expression): Likewise.
1931         (pp_c_inclusive_or_expression): Likewise.
1932         (pp_c_logical_and_expression): Likewise.
1933         (pp_c_logical_or_expression): Likewise.
1934         (pp_c_conditional_expression): Likewise.
1935         (pp_c_assignment_expression): Likewise.
1936         (pp_c_expression): Likewise.  Tidy.
1937         (pp_c_statement): Likewise.  Document.
1938         (pp_c_pretty_printer_init): Adjust prototype. Tidy.
1939
1940         * c-lang.c (c_initialize_diagnostics): Update.
1941         * c-common.h (strip_pointer_operator): Declare.
1942         * c-common.c (strip_pointer_operator): Define.
1943
1944 2003-08-25  Mark Mitchell  <mark@codesourcery.com>
1945
1946         PR c++/8795
1947         * tree.h (build_method_type_directly): Declare.
1948         * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
1949         (vector_size_helper): Likewise.
1950         * tree.c (build_method_type_directly): New function.
1951         (build_method_type): Use it.
1952
1953 2003-08-24  Richard Henderson  <rth@redhat.com>
1954
1955         * config/i386.i386.c (ix86_return_in_memory): Reformat.  Return true
1956         for 16-byte vector modes if sse not enabled; warn for abi change.
1957         (ix86_value_regno): Only return xmm0 for 16-byte vector types.
1958
1959 2003-08-24  Kazu Hirata  <kazu@cs.umass.edu>
1960
1961         * rtlanal.c (may_trap_p): Simplify an integer comparison.
1962
1963 2003-08-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1964
1965         * fixinc/inclhack.def (AAB_svr4_replace_byteorder):  Enhance
1966         comment.  Enable for DYNIX/ptx systems (when they switch to
1967         regular fixincludes).
1968         * fixinc/fixincl.x: Regenerate.
1969
1970 2003-08-23  Jason Eckhardt  <jle@rice.edu>
1971
1972         * config/i860/t-i860: New.
1973         * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file.
1974
1975 2003-08-23  Jakub Jelinek  <jakub@redhat.com>
1976
1977         * c-decl.c (pushdecl): Only put decls which finish_struct will do
1978         something about onto incomplete chain.
1979         (finish_struct): If not removing type from incomplete
1980         list, update prev.
1981
1982 2003-08-20  Jan Hubicka  <jh@suse.cz>
1983
1984         PR target/11369
1985         * i386.c (ix86_expand_carry_flag_compare): Validate operand.
1986
1987         PR target/11031
1988         * i386.c (const_0_to_3_operand, const_0_to_7_operand,
1989         const_0_to_15_operand, const_0_to_255_operand): New predicates.
1990         * i386.h (PREDICATE_CODES): Add these.
1991         * i386.c (pinsrw and pextrw patterns): Use them.
1992
1993         PR target/10984
1994         * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes.
1995
1996         PR target/8869
1997         * expr.c (convert_modes): Deal properly with integer to vector
1998         constant conversion.
1999
2000         PR target/8871
2001         * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives.
2002
2003 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
2004
2005         * config/s390/s390.h (LOAD_EXTEND_OP): Remove.
2006         * config/s390/s390.md ("movhi"): New expander; old insn renamed to ...
2007         ("*movhi"): ... this.
2008         ("movqi", "*movqi"): Likewise.
2009         ("movqi_64"): Remove.
2010         ("*zero_extendhisi2_31"): Change predicate to s_operand.
2011
2012 2003-08-23  Dale Johannesen  <dalej@apple.com>
2013         * calls.c (emit_library_call_value_1): Fix obvious errors in
2014         arguments to emit_group_store.
2015
2016 2003-08-23  Jason Eckhardt  <jle@rice.edu>
2017
2018         * calls.c (emit_library_call_value_1): Remove code related
2019         to LIBGCC_NEEDS_DOUBLE.
2020         * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE.
2021         * doc/tm.texi: Likewise.
2022         * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro.
2023
2024 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
2025
2026         * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
2027
2028 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
2029
2030         * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64
2031         as well.  Put memory references in the varargs alias set.
2032         (mips_expand_prologue): Remove varargs handling from here.
2033
2034 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
2035
2036         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2037         s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list,
2038         s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax
2039         for function pointer calls.
2040         * config/s390/s390.md ("*negdi2_31"): Likewise.
2041
2042 2003-08-23  Roger Sayle  <roger@eyesopen.com>
2043
2044         * combine.c (apply_distributive_law): Correct comment.
2045
2046 2003-08-23  Jason Eckhardt  <jle@rice.edu>
2047
2048         * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE.
2049
2050 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2051
2052         * config/i860/i860.c (i860_build_va_list): Create the va_decl
2053         declaration.  Document the va_list structure.
2054         (i860_va_start): Initialize the va_list structure.
2055         (i860_va_arg): Rewrite completely.
2056         * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define.
2057         * config/i860/varargs.asm: Do not allocate or initialize
2058         a va_list.  Return the address of the register save area.
2059
2060 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2061
2062         * config/iq2000/iq2000.c: Fix comment typos.
2063         * config/iq2000/iq2000.md: Likewise.
2064
2065 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2066
2067         * config/iq2000/iq2000.c: Follow spelling conventions.
2068         * config/iq2000/iq2000.h: Likewise.
2069         * config/mn10300/mn10300.c: Likewise.
2070
2071 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2072
2073         * config/i860/i860.c (output_move_double): Don't set latehalf
2074         to zero for CONST_INT (since it could be, e.g., -1).
2075
2076         * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro...
2077         (MODSI3_LIBCALL): ...with this one.
2078         (UREMSI3_LIBCALL): Replace this macro...
2079         (UMODSI3_LIBCALL): ...with this one.
2080
2081 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2082
2083         * config/i860/i860-protos.h (output_delay_insn): Remove prototype.
2084         (output_delayed_branch): Remove prototype.
2085         (single_insn_src_p): Remove prototype.
2086         * config/i860/i860.c (single_insn_src_p): Remove function.
2087         (output_delayed_branch): Remove function.
2088         (output_delay_insn): Remove function.
2089         (va_start): Remove unconditional test and dead code, re-format.
2090         Fix coding style and spelling problems in various comments.
2091         * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant...
2092         (blockage pattern): ...and use it here.
2093         (all define_peephole patterns related to delayed branches): Remove.
2094         Fix coding style and spelling problems in various comments.
2095
2096 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2097
2098         * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'.
2099         Remove all uses of the PARAMS macro.  Remove superflous prototypes.
2100         Convert all function definitions from traditional to ISO C90 syntax.
2101         * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC'
2102         with 'GCC'.  Remove all uses of the PARAMS macro.
2103         * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'.
2104         * config/i860/i860.md: Likewise.
2105         * config/i860/sysv4.h: Likewise.
2106         * config/i860/varargs.asm: Likewise.
2107
2108 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2109
2110         * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p'
2111         argument.
2112         (tdesc_section): Add prototype.
2113         Update copyright dates.
2114         * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h.
2115         (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file.
2116         (TARGET_ASM_FUNCTION_EPILOGUE): Likewise.
2117         (targetm): Likewise.
2118         (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC
2119         for '%d' where necessary.
2120         (i860_va_start): Remove 'stdarg_p' argument.  Make conditional checks
2121         on 'stdarg_p' unconditional.  Divide current_function_args_info.ints
2122         by UNITS_PER_WORD when referencing (likewise for .floats).
2123         (I860_SVR4_VARARGS): Rename...
2124         (I860_SVR4_VA_LIST): ...to this.
2125         Call build() with 't' rather than 'field'.
2126         (i860_rtx_costs): New function.
2127         (TARGET_RTX_COSTS): Define.
2128         (i860_internal_label): New function.
2129         (TARGET_ASM_INTERNAL_LABEL): Define.
2130         (i860_file_start): New function.
2131         Update copyright dates.
2132         * config/i860/i860.h (CPP_PREDEFINES): Remove.
2133         (TARGET_CPU_CPP_BUILTINS): Define.
2134         (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument.
2135         (CONST_COSTS): Remove (and move code to i860_rtx_costs).
2136         (ASM_FILE_START): Remove.
2137         (ASM_FILE_START_1): Remove.
2138         (ASM_GLOBALIZE_LABEL): Remove.
2139         (ASM_OUTPUT_INTERNAL_LABEL): Remove.
2140         (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL
2141         with targetm.asm_out.internal_label.
2142         Update copyright dates.
2143         * config/i860/sysv4.h (USER_LABEL_PREFIX): Define.
2144         (CPP_PREDEFINES): Remove.
2145         (TARGET_OS_CPP_BUILTINS): Define.
2146         (GLOBAL_ASM_OP): Define.
2147         (ASM_FILE_START): Remove.
2148         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
2149         (TARGET_ASM_FILE_START): Define.
2150         Update copyright dates.
2151
2152 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2153
2154         * gcc/config.gcc (i860-*-sysv4*): Add target.
2155         * config/i860/i860-protos.h: New.
2156         * config/i860/i860.c: New.
2157         * config/i860/i860.h: New.
2158         * config/i860/i860.md: New.
2159         * config/i860/sysv4.h: New.
2160         * config/i860/varargs.asm: New.
2161         * config/i860/x-sysv4: New.
2162
2163 2003-08-22  Jason Eckhardt  <jle@rice.edu>
2164
2165         * config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
2166         Remove all uses of PARAMS macro.
2167         Convert all function definitions to ISO C90 syntax.
2168         * config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
2169         * config/pa/fptr.c: Likewise.
2170         * config/pa/lib2funcs.asm: Likewise.
2171         * config/pa/long_double.h: Likewise.
2172         * config/pa/milli64.S: Likewise.
2173         * config/pa/pa-64.h: Likewise.
2174         * config/pa/pa-hpux.h: Likewise.
2175         * config/pa/pa-hpux10.h: Likewise.
2176         * config/pa/pa-hpux11.h: Likewise.
2177         * config/pa/pa-linux.h: Likewise.
2178         * config/pa/pa-modes.def: Likewise.
2179         * config/pa/pa-osf.h: Likewise.
2180         * config/pa/pa-pro-end.h: Likewise.
2181         * config/pa/pa.md: Likewise.
2182         * config/pa/pa32-linux.h: Likewise.
2183         * config/pa/pa64-linux.h: Likewise.
2184         * config/pa/pa64-hpux.h: Likewise.
2185         * config/pa/pa64-regs.h: Likewise.
2186         * config/pa/quadlib.c: Likewise.
2187         * config/pa/rtems.h: Likewise.
2188         * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
2189         all uses of the PARAMS macro.
2190         * config/pa/pa.h: Likewise.
2191         * config/pa/som.h: Likewise.
2192
2193         * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
2194         Remove all uses of PARAMS macro.
2195         Convert all function definitions to ISO C90 syntax.
2196         * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
2197         Remove all uses of PARAMS macro.
2198         * config/iq2000.h: Remove all uses of PARAMS macro.
2199         * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
2200
2201 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
2202
2203         * config/s390/s390-protos.h (s390_output_pool_entry): Declare.
2204         * config/s390/s390.c (gen_consttable): Remove.
2205         (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns.
2206         (s390_output_pool_entry): New function.
2207         * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI,
2208         UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI,
2209         UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ...
2210         (UNSPECV_POOL_ENTRY): ... this new constant.
2211         ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
2212         "consttable_ti", "consttable_sf", "consttable_df"): Remove ...
2213         ("*pool_entry"): ... and replace by this new insn.
2214         ("literal_pool_31"): Do not emit anchor label if pool empty.
2215
2216         * config/s390/s390.c (struct machine_function): Add save_return_addr_p.
2217         (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p.
2218         (s390_fixup_clobbered_return_reg): Remove.
2219         (s390_reorg): Don't call s390_fixup_clobbered_return_reg.
2220         (s390_return_addr_rtx): Always retrieve return address from save area
2221         slot.  Use save_return_addr_p to force slot to be filled.
2222         (s390_emit_prologue): Remove has_hard_reg_initial_val test.
2223
2224 2003-08-22  Chris Demetriou  <cgd@broadcom.com>
2225
2226         * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines.
2227         (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1.
2228         * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work
2229         around SB-1 errata if TARGET_FIX_SB1 is set.
2230         (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise.
2231         * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1.
2232
2233 2003-08-22  Roger Sayle  <roger@eyesopen.com>
2234
2235         * hashtable.c (ht_expand): Avoid calculating rehash for the common
2236         case that the first probe hits an empty hash table slot.
2237
2238 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
2239
2240         * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
2241
2242 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
2243
2244         * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
2245         (ptr_extend_plus_imm): ... this.
2246         * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
2247         optimization in C++.
2248         (ia64_output_mi_thunk): Support ILP32 mode.
2249
2250 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
2251
2252         * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused
2253         function.
2254         * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise.
2255
2256 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2257
2258         * config/i386/i386.c (const_int_1_operand): Simplify an
2259         integer comparison.
2260
2261 2003-08-22  Alan Modra  <amodra@bigpond.net.au>
2262
2263         * config/fp-bit.c: Specify config/ dir for include of fp-bit.h.
2264         * config/rs6000/ppc64-fp.c: Likewise.
2265
2266 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2267
2268         * cfgcleanup.c: Fix comment typos.
2269         * emit-rtl.c: Likewise.
2270         * optabs.c: Likewise.
2271         * ra-build.c: Likewise.
2272         * rtlanal.c: Likewise.
2273         * tree.h: Likewise.
2274
2275 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2276
2277         * c-decl.c: Fix comment formatting.
2278         * cfgrtl.c: Likewise.
2279         * combine.c: Likewise.
2280         * convert.c: Likewise.
2281         * dominance.c: Likewise.
2282         * dwarf2out.c: Likewise.
2283         * dwarfout.c: Likewise.
2284         * expmed.c: Likewise.
2285         * fold-const.c: Likewise.
2286         * gcov.c: Likewise.
2287         * genattrtab.c: Likewise.
2288         * ggc-common.c: Likewise.
2289         * mips-tfile.c: Likewise.
2290         * regmove.c: Likewise.
2291
2292 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
2293
2294         * builtin-attrs.def: Fix comment formatting.
2295         * c-pretty-print.c: Likewise.
2296         * diagnostic.h: Likewise.
2297         * langhooks.h: Likewise.
2298         * recog.c: Likewise.
2299         * simplify-rtx.c: Likewise.
2300         * tree.def: Likewise.
2301
2302 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
2303
2304         * config/m68k/m68k-protos.h: Convert to ISO C90.
2305         * config/m68k/m68k.c: Likewise.
2306
2307 2003-08-21  Bernardo Innocenti  <bernie@develer.com>
2308             Paul Dale  <pauli@snapgear.com>
2309             Peter Barada <peter@baradas.org>
2310
2311         * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for
2312         ColdFire cores.
2313
2314 2003-08-21  Zack Weinberg  <zack@codesourcery.com>
2315
2316         * Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
2317         * config.gcc (*-*-openbsd): Don't set tm_file.
2318         (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*,
2319         arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*,
2320         h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*,
2321         i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*,
2322         i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*,
2323         m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*,
2324         m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*,
2325         m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*,
2326         mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka,
2327         sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*,
2328         xscale-*-coff): Use explicit and complete lists of target headers
2329         to include.  Move definitions to tm_defines where appropriate.
2330         (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for
2331         not-yet-contributed configuration.
2332
2333         * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h
2334         * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h
2335         * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h
2336         * config/i386/nto.h, config/iq2000/iq2000.h,
2337         * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h
2338         * config/m68k/linux.h, config/m68k/m68k-aout.h
2339         * config/m68k/m68k-none.h, config/m68k/m68kv4.h
2340         * config/m68k/netbsd.h, config/m68k/openbsd.h
2341         * config/m68k/sgs.h, config/mcore/mcore-pe.h,
2342         * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h,
2343         * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h:
2344         Remove includes of other target config headers, and
2345         definitions of macros moved to tm_defines lists.  Add #undefs
2346         where now necessary to prevent redefinition warnings.
2347
2348         * config/h8300/coff.h: New file split out of...
2349         * config/h8300/elf.h: ...here.
2350         * config/m68k/hp320base.h: New file split out of...
2351         * config/m68k/hp320.h: ...here.
2352         * config/rs6000/lynxbase.h: New file split out of...
2353         * config/rs6000/lynx.h: ...here.
2354
2355         * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h
2356         * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file.
2357
2358         * config/sol2.h: Remove #if 0-ed #include of sys/mman.h.
2359         * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h.
2360         * config/mcore/mcore.h: Don't include hwint.h nor machmode.h.
2361         Remove unnecessary #ifndef.
2362         * config/s390/s390.h: Prefix #include of s390/fixdfdi.h
2363         [under IN_LIBGCC2] with config/.
2364
2365 2003-08-21  Per Bothner  <pbothner@apple.com>
2366
2367         * cppfiles.c (stack_file):  Correctly pass return_at_eof parameter
2368         to cpp_push_buffer.
2369         * cpplex.c (_cpp_get_fresh_line):  Don't buffer->prev - handled
2370         by return_at_eof check.  Always call _cpp_pop_buffer at end.
2371
2372 2003-08-21  Kazu Hirata  <kazu@cs.umass.edu>
2373
2374         PR target/11805
2375         * config/h8300/h8300.md (two anonymous patterns): Remove.
2376
2377 2003-08-21  Richard Sandiford  <rsandifo@redhat.com>
2378
2379         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause.
2380         * config/mips/mips.c (function_arg_pass_by_reference): Never return
2381         true for n32 & n64.
2382
2383 2003-08-21  Josef Zlomek  <zlomekj@suse.cz>
2384
2385         * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0
2386         and similarly in (A | C) == D where C & ~D != 0.
2387
2388 2003-08-20  Geoffrey Keating  <geoffk@apple.com>
2389
2390         PR 8180
2391         * configure.in: When testing with_libs and with_headers, treat
2392         'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
2393         * configure: Regenerate.
2394
2395 2003-08-20  Peter Barada <peter@baradas.org>
2396
2397         * longlong.h (umul_ppmm): Add ColdFire support.
2398
2399 2003-08-20  Peter Barada <peter@baradas.org>
2400             Bernardo Innocenti  <bernie@develer.com>
2401
2402         * config/m68k/m68k-none.h: Introduce new ColdFire archs.
2403         * config/m68k/m68k.h: Likewise.
2404         * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__.
2405         * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE.
2406         * config/m68k/linux.h: Likewise.
2407         * config/m68k/m68k.c: Likewise.
2408         * config/m68k/m68k.md: Likewise.
2409         * config/m68k/m68kelf.h: Likewise.
2410         * config/m68k/netbsd-elf.h: Likewise.
2411         * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs.
2412
2413 2003-08-20  Bernardo Innocenti  <bernie@develer.com>
2414
2415         * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition.
2416         * config/m68k/m68k.md: Likewise.
2417
2418 2003-08-20  Mark Mitchell  <mark@codesourcery.com>
2419
2420         PR java/11996
2421         Revert this change:
2422         2003-08-19  Mark Mitchell  <mark@codesourcery.com>
2423         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
2424         types with precisions other than those given by native machine
2425         modes.
2426
2427 2003-08-20  Gunther Nikl  <gni@gecko.de>
2428
2429         * config/m68k/m68k.md (anonymous define_insn): remove obsolete code
2430         selected by FSGLMUL_USE_S and FSGLDIV_USE_S
2431         * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check
2432         * config/m68k/m68k.md (anonymous define_insn): Likewise
2433         * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check
2434         * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete
2435         code selected by NO_ASM_FMOVECR
2436
2437 2003-08-20  Gunther Nikl  <gni@gecko.de>
2438
2439         * config/m68k/m68k.c (output_move_const_into_data_reg,
2440         output_move_himode): unify MOTOROLA/MIT handling of moveq
2441         * config/m68k/m68k.md (movsi_const0, anonymous define_insn):
2442         Likewise
2443
2444 2003-08-20  Gunther Nikl  <gni@gecko.de>
2445
2446         * config/m68k/m68k.c (m68k_output_function_prologue): use %U in
2447         label name
2448         * config/m68k/m68k.c (m68k_output_function_epilogue): replace
2449         HOST_WIDE_INT_PRINT_DEC with %wd
2450
2451 2003-08-20  Loren James Rittle  <ljrittle@acm.org>
2452
2453         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle
2454         redefine warning.
2455
2456 2003-08-20  Roger Sayle  <roger@eyesopen.com>
2457
2458         PR middle-end/11984
2459         * fold-const.c (fold <PLUS_EXPR>): Check for integer constant
2460         operands before calling tree_int_cst_lt when performing associative
2461         transformations.
2462
2463 2003-08-20  Jason Merrill  <jason@redhat.com>
2464
2465         * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'.
2466         (EXPR_CHECK): Don't check for 'r' or 's' if we're
2467         checking IS_EXPR_CODE_CLASS.
2468         * calls.c (calls_function_1): Likewise.
2469         * fold-const.c (fold): Likewise.
2470         * tree.c (iterative_hash_expr): Likewise.
2471         * tree-inline.c (walk_tree, copy_tree_r): Likewise.
2472
2473 2003-08-20  Gunther Nikl  <gni@gecko.de>
2474
2475         * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code
2476         depending on MOTOROLA_BSR
2477         * config/m68k/m68k.md (anonymous define_insn): Likewise
2478
2479 2003-08-20  Jason Merrill  <jason@redhat.com>
2480
2481         * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl.
2482         (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code,
2483         fold_trunc_transparent_mathfn, fold_builtin): Likewise.
2484         * dojump.c (do_jump): Likewise.
2485         * fold-const.c (operand_equal_p, fold): Likewise.
2486         (tree_expr_nonnegative_p): Likewise.
2487
2488         * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from
2489         TYPE_USER_ALIGN for FIELD_DECLs.
2490
2491         * attribs.c (decl_attributes): Rebuild the function pointer type after
2492         changing the target type.
2493         * tree.c (get_qualified_type): Also check that the attributes match.
2494
2495 2003-08-19  Matt Kraai  <kraai@alumni.cmu.edu>
2496
2497         * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ...
2498         * objc/config-lang.in (stagestuff): ... to here.
2499
2500 2003-08-19  Mark Mitchell  <mark@codesourcery.com>
2501
2502         PR c++/11946
2503         * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
2504         NOP_EXPR) when necessary.
2505         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
2506         types with precisions other than those given by native machine
2507         modes.
2508
2509 2003-08-19  Geoffrey Keating  <geoffk@apple.com>
2510
2511         * cpppch.c (cpp_valid_state): Re-add warning about PCH not used
2512         because some macro is defined.
2513
2514         * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only
2515         options.
2516         * config/i386/darwin.h (ASM_SPEC): New.
2517         (SUBTARGET_EXTRA_SPECS): New.
2518         * config/rs6000/darwin.h (ASM_SPEC): New.
2519         (SUBTARGET_EXTRA_SPECS): New.
2520         * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building
2521         a cross-compiler between two different processors on Darwin.
2522         * configure: Regenerate.
2523
2524 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2525
2526         * builtins.c: Fix comment typos.
2527         * c-common.c: Likewise.
2528         * c-decl.c: Likewise.
2529         * c-pretty-print.c: Likewise.
2530         * cfgbuild.c: Likewise.
2531         * cfglayout.c: Likewise.
2532         * cfgloopanal.c: Likewise.
2533         * cgraphunit.c: Likewise.
2534         * cppfiles.c: Likewise.
2535         * dwarfout.c: Likewise.
2536         * expr.c: Likewise.
2537         * fold-const.c: Likewise.
2538         * gcse.c: Likewise.
2539         * ggc-page.c: Likewise.
2540         * haifa-sched.c: Likewise.
2541         * pretty-print.c: Likewise.
2542         * tree.c: Likewise.
2543         * tree.h: Likewise.
2544         * value-prof.c: Likewise.
2545
2546 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2547
2548         * c-decl.c: Follow spelling conventions.
2549         * cppfiles.c: Likewise.
2550
2551 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2552
2553         * c-common.c: Fix comment formatting.
2554         * c-common.h: Likewise.
2555         * c-decl.c: Likewise.
2556         * cppinit.c: Likewise.
2557         * cpplib.h: Likewise.
2558         * emit-rtl.c: Likewise.
2559         * input.h: Likewise.
2560         * line-map.h: Likewise.
2561         * opts.c: Likewise.
2562         * opts.h: Likewise.
2563         * simplify-rtx.c: Likewise.
2564
2565 2003-08-19  Daniel Jacobowitz  <drow@mvista.com>
2566
2567         * unwind-c.c: Add libgcc-style exception.
2568         * unwind-dw2.c: Likewise.
2569         * unwind-pe.h: Likewise.
2570         * unwind-sjlj.c: Likewise.
2571         * unwind.inc: Likewise.
2572
2573 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2574
2575         PR c/5582 PR c++/10538
2576         * langhooks-def.h (lhd_decl_uninit): Declare.
2577         (LANG_HOOKS_DECL_UNINIT): New macro.
2578         (LANG_HOOKS_INITIALIZER): Adjust.
2579         * langhooks.h (struct lang_hooks): Add new field
2580         decl_uninit.
2581         * langhooks.c (lhd_decl_uninit): Define.
2582         * c-common.c (c_decl_uninit_1): New function.
2583         (c_decl_uninit): New function.
2584         (warn_init_self): Define.
2585         * c-common.h (c_decl_uninit): Declare.
2586         (warn_init_self): Declare.
2587         * c.opt: Introduce -Winit-self.
2588         * c-opts.c (c_common_handle_options): Set warn_init_self.
2589         * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
2590         * objc/objc-lang.c  (LANG_HOOKS_DECL_UNINIT): Define.
2591         * function.c (uninitialized_vars_warning): Call the language hook.
2592         * doc/invoke.texi: Document -Winit-self.
2593
2594 2003-08-19  Chris Demetriou  <cgd@broadcom.com>
2595
2596         * config/mips/mips.md: Adjust SI-mode "trap_if" instruction
2597         to use better predicates and constraints.  Define new
2598         instruction to handle "trap_if" with DI-mode arguments.
2599         (conditional_trap): FAIL if trap code is not 0.
2600
2601 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2602
2603         * config/i386/i386.c (legitimate_pic_address_disp_p): Change the
2604         strstr with $pb to a strcompare with "<pic base>"
2605         (ix86_output_addr_diff_elt): Output the real pic base.
2606
2607 2003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2608
2609         * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.
2610         (LANG_HOOKS_INITIALIZER): Correct.
2611         * c-lang.c: Likewise.
2612
2613 2003-08-19  Jan Hubicka  <jh@suse.cz>
2614
2615         * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol.
2616         (cgraph_varpool_mark_needed_node): Likewise.
2617         * cgraph.h (notice_global_symbol): Declare
2618         * varasm.c (notice_global_symbol): Break out from ...
2619         (assemble_start_function): ... here; update for variables.
2620         (assemble_variable): Use notice_global_symbol.
2621
2622 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
2623
2624         * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P,
2625         expect SFmode and DFmode arguments to be passed in FPRs,
2626         regardless of the underlying type.
2627
2628 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
2629
2630         PR target/11924
2631         * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro.
2632         (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it.
2633
2634 2003-08-18  Matt Kraai  <kraai@alumni.cmu.edu>
2635
2636         PR c/11207
2637         * c-typeck.c (set_init_index): Check for negative index.
2638
2639 2003-08-18  Bob Wilson  <bob.wilson@acm.org>
2640
2641         * config/xtensa/crti.asm (_init, _fini): Add alternate code for new
2642         call0 ABI.
2643         * config/xtensa/crtn.asm (_init, _fini): Likewise.
2644         * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3,
2645         __umodsi3, __modsi3): Likewise.
2646         * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and
2647         $(INCLUDES).
2648
2649 2003-08-18  Aldy Hernandez  <aldyh@redhat.com>
2650
2651         * config/rs6000/spe.md ("*nabssf2_gpr"): New.
2652
2653 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2654
2655         * config/mips/mips.md: Quote C code in braces.  Remove use of
2656         fake const0_rtx operands.  Remove double backslashes.  Use \;.
2657         Remove workarounds for bogus warnings.
2658
2659 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2660
2661         * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function.
2662         (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX
2663         rather than TARGET_MIPS4300.
2664         (mulsf3_internal, mulsf3_r4300): Likewise.
2665
2666 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2667
2668         * config/mips/mips.md: Renumber unspecs.  Clean up comments.
2669
2670 2003-08-17  Roger Sayle  <roger@eyesopen.com>
2671
2672         * simplify-rtx.c (associative_constant_p): New function to test
2673         whether an RTX expression is an immediate constant.
2674         (simplify_associative_operation): New function to perform some
2675         reassociation optimizations of associative binary expressions.
2676         (simplify_binary_operation): Use simplify_associative_operation
2677         to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX.
2678         Floating point expressions are only reassociated when unsafe
2679         math optimizations are permitted.
2680
2681 2003-08-17  Andreas Jaeger  <aj@suse.de>
2682
2683         * config/alpha/alpha.md: Remove usage of PARAMS.
2684
2685         * config/i386/cygwin.h: Convert K&R prototypes to ISO C90.
2686         * config/i386/i386-interix.h: Likewise.
2687         * config/i386/winnt.c: Likewise.
2688         * config/i386/cygming.h: Likewise.
2689         * config/i386/cygwin2.c: Likewise.
2690         * config/darwin.c: Likewise.
2691         * config/darwin-c.c: Likewise.
2692         * config/darwin-protos.h: Likewise.
2693         * config/darwin.h: Likewise.
2694         * config/s390/s390-protos.h: Likewise.
2695         * config/s390/s390.c: Likewise.
2696         * config/ia64/ia64.c: Likewse
2697         * config/ia64/ia64-protos.h: Likewise.
2698         * config/ia64/ia64-c.c: Likewise.
2699
2700 2003-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2701
2702         * config/sparc/sparc.c: Convert to ISO C.
2703
2704         * config/sparc/sparc-protos.h: Don't use the PARAMS macro.
2705         * config/sparc/sparc.c: Likewise.
2706
2707 2003-08-16  Nathan Sidwell  <nathan@codesourcery.com>
2708
2709         PR c++/11512
2710         * stmt.c (expand_expr_stmt_value): Don't warn about any void
2711         typed expression.
2712
2713 2003-08-16  Jan Hubicka  <jh@suse.cz>
2714
2715         * i386.c (ix86_fntype_regparm): Rename from ...
2716         (ix86_function_regparm): ... this one; add fastcall and local
2717         functions.
2718         (ix86_function_ok_for_sibcall): Update.
2719         (ix86_return_pops_args): Likewise.
2720         (init_cumulative_args): Likewise.
2721         (x86_can_output_mi_thunk): Likewise.
2722         (function_arg): Fix formating.
2723         (x86_this_parameter): Fix fastcall.
2724         (x86_output_mi_thunk): Likewise.
2725
2726         * cgraph.c (cgraph_mark_needed_node): Do not mark functions without
2727         body as reachable; mark nested functions as needed too.
2728         (dump_cgraph): Do not output global.calls.
2729         * cgraph.h (cgraph_global_info): Kill.
2730         * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions.
2731         (record_call_1): Speedup.
2732         (cgraph_analyze_function): Break out from ...; compute inlining
2733         parameters.
2734         (cgraph_finalize_compilation_unit): ... here.
2735         (cgraph_mark_inline): Kill computation of calls.
2736         (cgraph_decide_inlining): Do not compute most of initial values.
2737
2738 2003-08-14  Roger Sayle  <roger@eyesopen.com>
2739
2740         * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy
2741         to negate if either operand is easy to negate, if we don't care
2742         about sign-dependent rounding.
2743         (negate_expr): Make the logic to negate a REAL_CST explicit.
2744         Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand
2745         that's easy to negate, if we don't honor sign-dependent rounding.
2746         (fold <MULT_EXPR>): Optimize -A * B as A * -B if B is easy to
2747         negate, and the symmetric A * -B as -A * B if A is easy to negate.
2748         (fold <RDIV_EXPR>): Likewise, optimize -A/B and C/-D as A/-B and
2749         -C/D if B and C are cheap to negate.  Add an explicit rule to
2750         optimize X/-1.0 as -X when we don't care about signaling NaNs.
2751
2752 2003-08-14  Zack Weinberg  <zack@codesourcery.com>
2753
2754         * Makefile.in (tm_file): Rename tm_include_list.
2755         (tm_p_file): Rename tm_p_include_list.
2756         (build_xm_file): Rename build_xm_include_list.
2757         (host_xm_file): Rename host_xm_include_list.
2758         (xm_file): Rename xm_include_list.
2759         (xm_file_list): Add to be substituted.
2760         (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
2761         Update to match.
2762         (bt-load.o): Add missing dependency on $(TM_H).
2763         * configure.in: Prefix value of EXTRA_MODES_FILE with config/.
2764         For each of tm_file, tm_p_file, xm_file, host_xm_file, and
2765         build_xm_file, generate both *_file_list and *_include_list
2766         values from it.  (xm_file_list was formerly not being generated.)
2767         In *_include_list, prefix the names of all headers found in
2768         $(srcdir)/config with config/.  In each loop, consider only
2769         the special case files that can actually appear in that list.
2770         AC_SUBST all *_file_list and all *_include_list variables; do
2771         not AC_SUBST the plain *_file variables.
2772         * configure: Regenerate.
2773
2774 2003-08-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2775
2776         * cfg.c (dump_edge_info): Add name of loop_exit edge flag.
2777
2778 2003-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2779
2780         * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in
2781         direct calls.
2782         (attr_length_call): Include it here.  Improve length estimate for
2783         local calls.
2784         (output_call): Use targetm.binds_local_p.
2785
2786 2003-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2787
2788         * builtins.c (CASE_MATHFN): New helper macro.
2789         (mathfn_built_in): Simplify and sort.
2790
2791         * protoize.c (substr): Delete, callers changed to `strstr'.
2792
2793 2003-08-13  Zack Weinberg  <zack@codesourcery.com>
2794
2795         * config.gcc (iq2000*-*-elf*): Don't set xm_file.
2796         * config/iq2000/xm-iq2000.h: Delete file.
2797
2798 2003-08-13  Geoffrey Keating  <geoffk@apple.com>
2799
2800         * gengtype.c (walk_type): Process a subobject before processing
2801         the pointer that points to the subobject.
2802
2803 2003-08-13  Per Bothner  <pbothner@apple.com>
2804
2805         * regclass.c (init_reg_modes):  Make non-static.
2806         Rename to init_reg_modes_once per new naming convention.
2807         (init_regs):  Don't call init_reg_modes here.
2808         * emit-rtl.c (init_emit_once):  Call init_reg_modes_once here instead.
2809         * rtl.h (init_reg_modes_once):  New declaration.
2810         * toplev.c (backend_init):  Call init_regs after init_emit_once.
2811
2812 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2813
2814         * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
2815         special index for MD_FALLBACK_FRAME_STATE_FOR to itself.
2816
2817 2003-08-13  J"orn Rennecke <joern.rennecke@superh.com>
2818
2819         * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
2820         * sh.md (load_ra): Change insn predicate to TARGET_SH1.
2821
2822 2003-08-13  Dale Johannesen  <dalej@apple.com>
2823
2824         * config/rs6000/rs6000.md (ctrsi, ctrdi):  Reenable
2825         handling of decrement-and-branch farther than 32 bits.
2826
2827 2003-08-12  Kelley Cook  <kelleycook@wideopenwest.com>
2828
2829         * configure.in (make_compare_target): Move test to ...
2830         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here.
2831         * configure: Regenerate.
2832
2833 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
2834
2835         * config/mips/iris6.h: Convert to C90 prototypes.
2836         * config/mips/irix6-libc-compat.c: Likewise.
2837         * config/mips/mips-protos.h: Likewise.
2838         * config/mips/mips.c: Likewise.
2839
2840 2003-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2841
2842         fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel.  Enable
2843         for selected machines.  Comment heavily.
2844         fixinc/fixincl.x: Rebuild.
2845         fixinc/tests/base/fs/rfs/rf_cache.h: New file.
2846
2847 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
2848
2849         * config/mips/mips.h: Tweak various comments.
2850         * config/mips/mips.c: Likewise.
2851
2852 2003-08-11  James E Wilson  <wilson@tuliptree.org>
2853
2854         PR optimization/11319
2855         PR target/10021
2856         * alias.c (find_base_value, case REG): Return 0 not src if no base
2857         found.
2858
2859 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2860
2861         * gcse.c (gmalloc): Fix last change.
2862
2863 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2864
2865         * simplify-rtx.c (simplify_binary_operation): Replace calls to
2866         gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary,
2867         and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT,
2868         gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary.
2869
2870 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2871
2872         * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort.
2873         * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid
2874         typecode for an ABS_EXPR.
2875
2876         * doc/c-tree.texi: Document ABS_EXPR.
2877
2878 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2879
2880         * fold-const.c (fold): Optimize any associative floating point
2881         operator with -funsafe-math-optimizations, not just MULT_EXPR.
2882
2883 2003-08-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2884
2885         * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size
2886         information in SHmedia case too.
2887         (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate):
2888         Likewise.
2889         (__set_fpscr): Use an access via GOT for PIC case.
2890
2891 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
2892
2893         * configure.in (intermodule): Make switch test more portable.
2894         * configure: Regenerate.
2895
2896 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
2897
2898         * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap.
2899         (restrap): Likewise.
2900
2901 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2902
2903         * gcse.c (gmalloc): Argument is a size_t.  Add ATTRIBUTE_MALLOC.
2904         (grealloc): Size argument is a size_t.
2905         (gcalloc): New function.  Use throughout in lieu of
2906         gmalloc/memset.
2907
2908         * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of
2909         xmalloc/memset.
2910         * config/ia64/ia64.c (ia64_reorg): Likewise.
2911         * conflict.c (conflict_graph_new): Likewise.
2912         * fixinc/fixincl.c (run_compiles): Likewise.
2913         * genattrtab.c (optimize_attrs): Likewise.
2914         * genrecog.c (new_decision): Likewise.
2915         * haifa-sched.c (schedule_block): Likewise.
2916         * hashtable.c (ht_create): Likewise.
2917
2918 2003-08-11  Bob Wilson  <bob.wilson@acm.org>
2919
2920         * config/xtensa/lib2funcs.S: Fix whitespace.
2921         * config/xtensa/xtensa.md (all insns and expanders): Use brace block
2922         syntax where appropriate.  Remove unnecessary backslash escapes.
2923         Reformat comments and fix some code formatting.
2924         (extendqisi2): Rearrange conditional.
2925         (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue,
2926         *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead
2927         of fatal_insn.
2928
2929 2003-08-11  Richard Sandiford  <rsandifo@redhat.com>
2930
2931         * config/mips/mips.c: Various formatting fixes.
2932         (override_options): Resync -mtune handling with gas.
2933         (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface.
2934         * config/mips/mips.h: More formatting fixes.
2935         (mips_abi): Move declaration.
2936         * config/mips/mips.md (exception_receiver): Add mode to
2937         unspec_volatile.
2938
2939 2003-08-11  Aldy Hernandez  <aldyh@redhat.com>
2940
2941         * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and
2942         evsplatfi here.
2943         (bdesc_1arg): Remove evsplati and evsplatfi.
2944
2945 2003-08-11  J"orn Rennecke <joern.rennecke@superh.com>
2946
2947         * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix
2948         into account.
2949
2950 2003-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2951
2952         * builtins.c (expand_builtin_strcat): Optimize constant strings.
2953
2954 2003-08-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2955
2956         * pretty-print.c (pp_base_indent): Rename from pp_indent.
2957         * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype.
2958         (struct c_pretty_print_info): Add more fields.
2959         (pp_c_left_paren): Move to c-pretty-print.c.
2960         (pp_c_right_paren): Likewise.
2961         (pp_c_left_brace): Likewise.
2962         (pp_c_right_brace): Likewise.
2963         (pp_c_left_bracket): Likewise.
2964         (pp_c_right_bracket): Likewise.
2965         (pp_c_declarator): Declare.
2966         (pp_c_direct_declarator): Likewise.
2967         (pp_c_specifier_qualifier_list): Likewise.
2968         (pp_c_type_id): Likewise.
2969         * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework..
2970         (pp_c_type_qualifier_list): New.
2971         (pp_c_pointer): Likewise.
2972         (pp_c_parameter_type_list): Likewise.
2973         (pp_c_function_definition): Likewise.
2974         (pp_c_id_expression): Likewise.
2975         (pp_c_simple_type_specifier): Tidy.
2976         (pp_c_unary_expression): Likewise.
2977         (pp_c_expression): Likewise.
2978         (pp_c_pretty_printer_init): Likewise.
2979         (pp_c_specifier_qualifier_list): Rework..
2980         (pp_c_abstract_declarator): Likewise.
2981         (pp_c_postfix_expression): Likewise.
2982         (pp_c_primary_expression): Likewise.
2983         (pp_c_cast_expression): Likewise.
2984         (pp_c_direct_abstract_declarator): Likewise.
2985         (pp_c_storage_class_specifier): Likewise.
2986         (pp_c_function_specifier): Likewise.
2987         (pp_c_declaration_specifiers): Likewise.
2988         (pp_c_direct_declarator): Likewise.
2989         (pp_c_declarator): Likewise.
2990         (pp_c_declaration): Likewise.
2991         (pp_c_statement): Likewise.
2992         (pp_c_integer_constant): Rename from pp_c_integer_literal.
2993         (pp_c_character_constant): Rename from pp_c_character_literal.
2994         (pp_c_bool_constant): Rename from pp_c_bool_literal.
2995         (pp_c_enumeration_constant): Rename from pp_c_enumerator.
2996         (pp_c_floating_constant): Rename from pp_c_real_literal.
2997         (pp_c_constant): Rename from pp_c_literal.
2998         * c-lang.c: Include diagnostic.h and c-pretty-print.h
2999         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
3000         (c_initialize_diagnostics): New.
3001         * Makefile.in (c-lang.o): Update dependency.
3002
3003 2003-08-10  Nathan Sidwell  <nathan@codesourcery.com>
3004
3005         * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs.
3006
3007 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
3008
3009         * config/mips/mips.c (mips_no_mips16_string): Remove.
3010         (override_options): Don't handle -mips16 as part of -mipsN.
3011         * config/mips/mips.h (mips_no_mips16_string): Remove declaration.
3012         (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries.
3013         (TARGET_OPTIONS): Remove -mno-mips16.
3014
3015 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
3016
3017         * config/mips/mips-protos.h (coprocessor_operand): Remove declaration.
3018         (coprocessor2_operand): Likewise.
3019         * config/mips/mips.c (STAB_CODE_TYPE): Remove.
3020         (lookup_name): Remove declaration.
3021         (abort_with_insn): Remove.  Replace all uses with fatal_insn.
3022         (mips16, mips_abicalls): Remove.
3023         (mips_char_to_class): Remove initialiser: all entries are NO_REGS.
3024         (arith32_operand, large_int, true_reg_or_0_operand): Remove.
3025         (coprocessor_operand, coprocessor2_operand): Remove.
3026         (override_options): Don't set mips16 or mips_abicalls.
3027         (print_operand): Don't expect SIGN_EXTEND operands.
3028         (mips_secondary_reload_class): Likewise.
3029         (mips_output_conditional_branch): Remove disabled long-branch code.
3030         * config/mips/mips.h (call_used_regs): Remove declaration.
3031         (may_call_alloca): Likewise.
3032         (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove.
3033         (mips_abicalls, mips16): Remove declarations.
3034         (ASM_FINAL_SPEC, LIB_SPEC): Remove.
3035         (CC1_SPEC): Remove outdated comment.
3036         (MIPS_VERSION, MACHINE_TYPE): Remove.
3037         (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3038         (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions.
3039         (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise.
3040         (PUSH_ROUNDING): Likewise.
3041         (ASSEMBLER_SCRATCH_REGNUM): Remove.
3042         * config/mips/mips.md: Replace mips_cpu_attr with mips_tune
3043         and mips16 with TARGET_MIPS16.
3044
3045 2003-08-09  Per Bothner  <pbothner@apple.com>
3046
3047         * cppinit.c (cpp_read_main_file):  Split out source-independent
3048         initialization to separate function ...
3049         (cpp_post_options):  New function.
3050         * cppfiles.c (cpp_stack_file):  Rename public name to ...
3051         (_cpp_stack_file):  New internal function name.
3052         * cpplib.h:  Update accordingly.
3053         * cppinit.c:  (cpp_create_reader):  Initialize cpp_readers line here.
3054         (cpp_read_main_file):  Don't initialize line here.
3055         * c-opts.c (c_common_post_options):  Call cpp_post_options.
3056         (c_common_parse_file):  Call cpp_read_main_file, not cpp_stack_file.
3057         * fix-header.c (read_scan_file):  Call cpp_post_options.
3058
3059 2003-08-09  Per Bothner  <per@bothner.com>
3060
3061         * c-decl.c (SCOPE_LIST_APPEND):  Remove bogus line continuation.
3062
3063 2003-08-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3064
3065         * pa.c (pa_asm_output_mi_thunk): Fix typo.
3066
3067 2003-08-09  Neil Booth  <neil@daikokuya.co.uk>
3068
3069         PR preprocessor/11839
3070         * cppfiles.c (open_file): Handle ENOTDIR.
3071
3072 2003-08-09  Richard Sandiford  <rsandifo@redhat.com>
3073
3074         PR target/11699
3075         * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls.
3076
3077 2003-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3078
3079         * pa.md (extzv, extv, insv): Fix operand limit checks.  Fail if
3080         source/destination is not a register operand.
3081
3082 2003-08-08  Richard Henderson  <rth@redhat.com>
3083
3084         PR target/11535
3085         * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove
3086         RETURN_ADDRESS_POINTER_REGNUM.
3087         (ia64_expand_prologue): Don't frob it.
3088         (ia64_output_function_epilogue): Likewise.
3089         (ia64_return_addr_rtx): New.
3090         (ia64_split_return_addr_rtx): New.
3091         * config/ia64/ia64-protos.h: Update.
3092         * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement.
3093         (RETURN_ADDRESS_POINTER_REGNUM): Remove.
3094         (GENERAL_REGNO_P): Don't check it.
3095         (AR_*_REGNUM): Renumber.
3096         (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM.
3097         (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise.
3098         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise.
3099         (ELIMINABLE_REGS, REGISTER_NAMES): Likewise.
3100         (RETURN_ADDR_RTX): Use ia64_return_addr_rtx.
3101         * config/ia64/ia64.md (UNSPEC_RET_ADDR): New.
3102         (movdi_ret_addr): New.
3103
3104 2003-08-08  Geoffrey Keating  <geoffk@apple.com>
3105
3106         * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib.
3107
3108 2003-08-08  Roger Sayle  <roger@eyesopen.com>
3109
3110         * tree.h (get_identifier) Define a macro form of get_identifier
3111         that calls get_identifier_with_length when the string is constant.
3112         (get_identifier_with_length): Change type of second argument to
3113         size_t in prototype.
3114         * stringpool.c (get_identifier): Undefine the macro before giving
3115         the function definition.
3116         (get_identifier_with_length): Change  type of second argument to
3117         size_t in function definition.
3118         * hashtable.c (calc_hash): Change type of second argument to size_t.
3119         (ht_lookup): Change type of third argument to size_t.  Reorganize
3120         to speed-up the cases where the hash table slot is empty, or the
3121         first probe matches (i.e. there isn't a collision).
3122         * hashtable.h (ht_lookup): Adjust function prototype.
3123
3124 2003-08-08  Bernardo Innocenti  <bernie@develer.com>
3125
3126         PR target/9697
3127         PR target/11777
3128         * longlong.h (count_leading_zeros): Exclude on __mcpu32__.
3129
3130 2003-08-08  Neil Booth  <neil@daikokuya.co.uk>
3131
3132         * common.opt: Add debug switches.
3133         * flags.h (use_gnu_debug_info_extensions): Boolify.
3134         * opts.c (write_symbols, debug_info_level,
3135         use_gnu_debug_info_extensions): Move from toplev.c.
3136         (set_debug_level): New.
3137         (common_handle_options): Handle debug switches.
3138         (print_help): Display target options directly.
3139         * toplev.c (debug_hooks): Don't initialize.
3140         (write_symbols, debug_info_level,
3141         use_gnu_debug_info_extensions): Move to opts.c.
3142         (debug_args, display_help, decode_g_option): Remove.
3143         (process_options): Set no debug if level zero here,
3144         and no-debug-hooks.  Error here if impossible debug format selected.
3145         * toplev.h (display_help, decode_g_option): Remove.
3146
3147 2003-08-08  Richard Sandiford  <rsandifo@redhat.com>
3148
3149         * tree.c (get_file_function_name_long): Fix size of alloca() area.
3150
3151 2003-08-08  Kelley Cook  <kelleycook@wideopenwest.com>
3152
3153         * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target
3154         and gcc_cv_prog_cmp_skip.
3155         * configure: Regenerate.
3156
3157 2003-08-08  Stan Cox  <scox@redhat.com>
3158
3159         * config/iq2000: New port.
3160         * config.gcc (iq2000-*-elf): Added.
3161         * doc/install.texi (Specific):  Add iq2000 description.
3162
3163 2003-08-08  Andreas Schwab  <schwab@suse.de>
3164
3165         * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting
3166         and insert missing empty argument.
3167         * configure: Regenerate.
3168
3169 2003-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3170
3171         * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
3172         (attr_length_millicode_call): Likewise.
3173         (attr_length_call): Likewise.  Revise some maximum insn lengths.
3174         (attr_length_indirect_call): Likewise.
3175         (output_call): Fix thinko that added extra nop.
3176         * pa.h (IN_NAMED_SECTION_P): Define.
3177
3178         PR c++/11712
3179         * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define
3180         __STDC_EXT__ when using C++ dialect.
3181
3182 2003-08-07  J"orn Rennecke <joern.rennecke@superh.com>
3183
3184         * sh.c (calc_live_regs): If the return address pointer is live,
3185         force pr live.
3186         (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register
3187         for saves / restores.
3188         (sh_expand_epilogue): If sh_media_register_for_return returns a
3189         register number, flag the instructions that restores PR_MEDIA_REG
3190         as possibly dead.
3191         Remove dead update of offset.
3192         (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if
3193         we can use the result of get_hard_reg_initial_val.
3194         * sh.md (UNSPEC_RA): New constant.
3195         (movsi_i_lowpart+1): Changed into a define_insn_and_split, named:
3196         (load_ra).  Handle UNSPEC_RA.
3197         (sibcall_media): Use PR_MEDIA_REG.
3198
3199         * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
3200         * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr
3201         needs saving on SHmedia.
3202
3203 2003-08-07  Ulrich Weigand  <uweigand@de.ibm.com>
3204
3205         * config/s390/s390.md: Replace all occurrences of \\t with \t.
3206
3207 2003-08-07  Richard Sandiford  <rsandifo@redhat.com>
3208
3209         * local-alloc.c (combine_regs): Fix comment typo.
3210
3211 2003-08-06  Zack Weinberg  <zack@codesourcery.com>
3212
3213         * c-decl.c (builtin_decls): Replace with first_builtin_decl
3214         and last_builtin_decl.
3215         (c_init_decl_processing): Initialize both.
3216         (c_reset_state): Iterate from first_builtin_decl to
3217         last_builtin_decl inclusive to reintroduce builtins.
3218
3219 2003-08-06  David Mosberger  <davidm@hpl.hp.com>
3220
3221         * doc/extend.texi (Function Attributes): Document the IA-64 version
3222         of the "model" attribute.
3223
3224         * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro.
3225         (SYMBOL_REF_SMALL_ADDR_P): Ditto.
3226         (PREDICATE_CODES): Mention "small_addr_symbolic_operand".
3227
3228         * config/ia64/ia64.c (ia64_handle_model_attribute): New function.
3229         (ia64_encode_section_info): Likewise.
3230         (ia64_attribute_table): Add "model" attribute.
3231         (TARGET_ENCODE_SECTION_INFO): Define.
3232         (small_addr_symbolic_operand): New function.
3233         (got_symbolic_operand): Return 0 for a symbolref to an object
3234         in the small address area.
3235         (enum ia64_addr_area): New type.
3236         (small_ident1): New variable.
3237         (small_ident2): Likewise.
3238         (init_idents): New function.
3239         (ia64_get_addr_area): Likewise.
3240         (ia64_encode_addr_area): Likewise.
3241         (ia64_encode_section_info): Likewise.
3242         (ia64_expand_load_address): For symbolic references to objects in
3243         the small-address-area, load the address via gen_rtx_SET() (which,
3244         eventually, will expand into "addl").
3245
3246 2003-08-06  Per Bothner  <pbothner@apple.com>
3247
3248         * line-map.h (fileline):  New typedef.
3249         (struct line_map, linemap_add, linemap_lookup):  Use it.
3250         * input.h (struct location_s):  Comment notes that long-term we want
3251         to replace it by fileline.
3252
3253 2003-08-06  J"orn Rennecke <joern.rennecke@superh.com>
3254
3255         Fix SHcompact exception handling:
3256         * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered
3257         by the prologue, return a MEM with return_address_pointer_rtx
3258         as address.
3259         * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode.
3260         (RETURN_ADDR_OFFSET): Don't define.
3261         (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia
3262         registers that are visible in compact mode.  Show that SHmedia
3263         registers still exist in compact mode, even if there are not
3264         readily accessible.
3265         (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect
3266         if GLOBAL.  Use DW_EH_PE_textrel (nominally) for CODE,
3267         and DW_EH_PE_pcrel for pic data.
3268         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel,
3269         set SYMBOL_FLAG_FUNCTION in symbol, and actually use
3270         DW_EH_PE_pcrel / DW_EH_PE_absptr encoding.
3271         (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it.
3272         * sh.md (movsi_media-1): New splitter.
3273
3274 2003-08-06  Graeme Peterson <gp@qnx.com>
3275
3276         * config/i386/nto.h: New.
3277         * config/i386/t-nto: New.
3278         * config.gcc (i[34567]86-*-nto-qnx*): New.
3279
3280 2003-08-06  Phil Edwards  <pme@gcc.gnu.org>
3281
3282         * doc/install.texi (*-*-solaris2*):  Refine configure instructions.
3283
3284 2003-08-06  Alan Modra  <amodra@bigpond.net.au>
3285
3286         * calls.c (load_register_parameters): Arrange for call_fusage to
3287         report the whole register as used when shifting to the msb.
3288
3289 2003-08-05  Roger Sayle  <roger@eyesopen.com>
3290
3291         * builtins.c (expand_builtin): When not optimizing, call the library
3292         function for all builtins that have library functions (except alloca).
3293
3294 2003-08-05  Alexandre Oliva  <aoliva@redhat.com>
3295
3296         * c.opt: Introduce -fworking-directory.
3297         * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
3298         * c-common.h (flag_working_directory): Declare.
3299         * c-common.c (flag_working_directory): Define.
3300         * c-opts.c (c_common_handle_options): Set it.
3301         (sanitize_cpp_opts): Set...
3302         * cpplib.h (struct cpp_options): ... working_directory option.
3303         (struct cpp_callbacks): Add dir_change.
3304         * cppinit.c (read_original_filename): Call...
3305         (read_original_directory): New.  Look for # 1 "directory//"
3306         and process it.
3307         (cpp_read_main_file): Call dir_change callback if working_directory
3308         option is set.
3309         * gcc.c (cpp_unique_options): Pass -g*.
3310         * c-lex.c (cb_dir_change): New.
3311         (init_c_lex): Set dir_change callback.
3312         * toplev.c (src_pwd): New static variable.
3313         (set_src_pwd, get_src_pwd): New functions.
3314         * toplev.h (get_src_pwd, set_src_pwd): Declare.
3315         * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
3316         * dwarf2out.c (gen_compile_unit_die): Likewise.
3317         * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.
3318
3319 2003-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3320
3321         * pretty-print.h (pp_set_line_maximum_length): Make macro.
3322         (pp_set_prefix): Likewise.
3323         (pp_destroy_prefix): Likewise.
3324         (pp_remaining_character_count_for_line): Likewise.
3325         (pp_clear_output_area): Likewise.
3326         (pp_formatted_text): Likewise.
3327         (pp_last_position_in_text): Likewise.
3328         (pp_emit_prefix): Likewise.
3329         (pp_append_text): Likewise.
3330         (pp_flush): Likewise.
3331         (pp_format_text): Likewise.
3332         (pp_format_verbatim): Likewise.
3333         (pp_tree_identifier): Tidy.
3334         * pretty-print.c (pp_base_format_text): Rename from pp_format_text.
3335         (pp_base_format_verbatim): Rename from pp_format_verbatim.
3336         (pp_base_flush): Rename from pp_flush.
3337         (pp_base_set_line_maximum_length): Rename from
3338         pp_set_line_maximum_length.
3339         (pp_base_clear_output_area): Rename from pp_clear_output_area.
3340         (pp_base_set_prefix): Rename from pp_set_prefix.
3341         (pp_base_destroy_prefix): Rename from pp_destroy_prefix.
3342         (pp_base_emit_prefix): Rename from pp_emit_prefix.
3343         (pp_base_append_text): Rename from pp_append_text.
3344         (pp_base_formatted_text): Rename from pp_formatted_text.
3345         (pp_base_last_position_in_text): Rename from pp_last_position_in_text.
3346         (pp_base_remaining_character_count_for_line): Rename from
3347         pp_remaining_character_count_for_line.
3348         * diagnostic.h (diagnostic_format_decoder): Tidy.
3349         (diagnostic_flush_buffer): Likewise.
3350         * c-pretty-print.h: (pp_c_string_literal): Declare.
3351         (pp_c_real_literal): Likewise.
3352         (pp_c_integer_literal): Likewise.
3353         * c-pretty-print.c (pp_c_char): Use pp_string in lieu of
3354         pp_identifier.
3355         (pp_c_character_literal): Tidy.
3356         (pp_c_string_literal): Make public.
3357         (pp_c_bool_literal): Likewise.
3358         (pp_c_integer_literal): Likewise.
3359         (pp_c_real_literal): Likewise.
3360
3361         * Makefile.in (C_PRETTY_PRINT_H): New variable.
3362         (c-pretty-print.o): Update dependence.
3363
3364 2003-08-05  Chris Demetriou  <cgd@broadcom.com>
3365
3366         * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore
3367         ".set nomacro" state.
3368         (fix_truncsfsi2_macro): Likewise.
3369
3370 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
3371
3372         * tree.h (DID_INLINE_FUNC): Remove macro.
3373         (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h,
3374         add tree check for FUNCTION_DECL.
3375         (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h.
3376         (struct tree_decl): Rename inlined_function_flag to
3377         declared_inline_flag.
3378         * c-common.h (c_lang_decl): Remove.
3379         (DECL_ESTIMATED_INSNS): Remove.
3380         * c-tree.h (struct lang_decl): Don't include c_lang_decl.
3381         (DECL_DECLARED_INLINE_P): Remove.
3382         * c-decl.c (grokdeclarator): Update comment.  With -finline-functions,
3383         do not reset DECL_DECLARED_INLINE_P.  Don't use DID_INLINE_FUNC.
3384         (finish_function): Make uninlinable a bool.  Fixup call to
3385         tree_inlinable_function_p() and fix some code style issues.
3386         * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'.
3387         * cgraph.c (dump_cgraph): Likewise.
3388         * cgraphunit.c (cgraph_decide_inlining): Likewise
3389         (cgraph_finalize_compilation_unit): Likewise.
3390         Also update call to tree_inlinable_function_p().
3391         (cgraph_default_inline_p): Don't use DID_INLINE_FUNC.  Instead
3392         look at DECL_DECLARED_INLINE and reverse logic.
3393         * print-tree.c (print_node): Likewise.
3394         * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC.
3395         * tree-inline.h (tree_inlinable_function_p): Make a bool.  Update
3396         prototype.
3397         * tree-inline.c (inlinable_function_p): Split up in this function to
3398         check for basic inlining inhibiting conditions, and new
3399         limits_allow_inlining() function.  Warn if inlining is impossible
3400         because the inline candidate calls alloca or uses sjlj exceptions.
3401         (limits_allow_inlining): this new function to check if the inlining
3402         limits are satisfied.  Throttle from currfn_max_inline_insns, not from
3403         MAX_INLINE_INSNS_SINGLE.  The latter only makes sense if
3404         MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal.
3405         Update prototypes.
3406         (tree_inlinable_function_p): Make a bool.  Update call to
3407         inlinable_function_p
3408         (expand_call_inline): Use limits_allow_inlining() when not in
3409         unit-at-a-time mode to decide on inlining.  Don't use DID_INLINE_FUNC,
3410         instead see if the function was declared `inline'.
3411
3412 2003-08-05  Josef Zlomek  <zlomekj@suse.cz>
3413
3414         * gcse.c (try_replace_reg): Fix updating of note.
3415
3416 2003-08-04  Roger Sayle  <roger@eyesopen.com>
3417
3418         PR middle-end/11771
3419         * fold-const.c (negate_expr_p <MINUS_EXPR>): Change to match the
3420         logic in negate_expr, i.e. we don't invert (A-B) for floating
3421         point types unless flag_unsafe_math_optimizations.
3422
3423 2003-08-04  Roger Sayle  <roger@eyesopen.com>
3424
3425         * fold-const.c (fold <PLUS_EXPR>): Transform x+x into x*2.0.
3426         Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2)
3427         for floating point expressions with -ffast-math.
3428         (fold <MULT_EXPR>): Don't transform x*2.0 into x+x.
3429         * expmed.c (expand_mult): Wrap long line.  Expand x*2.0 as x+x.
3430
3431 2003-08-04  Roger Sayle  <roger@eyesopen.com>
3432
3433         * c-common.c (flag_noniso_default_format_attributes): Delete.
3434         (built_in_attribute): Don't define/undefine DEF_FN_ATTR.
3435         (c_attrs_initialized): Delete.
3436         (c_common_nodes_and_builtins): Don't test c_attrs_initialized,
3437         always call c_init_attributes.
3438         (c_init_attributes): Don't define/undefine DEF_FN_ATTR.  Don't
3439         set c_attrs_initialized when done.
3440         (c_common_insert_default_attributes): Delete.
3441         * c-common.h (flag_noniso_default_format_attributes): Delete.
3442         (c_coomon_insert_default_attributes): Delete prototype.
3443         * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set
3444         flag_noniso_default_format_attributes.
3445
3446         * c-decl.c (c_insert_default_attributes): Delete.
3447         * c-tree.h (c_insert_default_attributes): Delete prototype.
3448
3449         * attribs.c (decl_attributes): Don't call insert_default_attributes
3450         langhook.  Update function description comment.
3451         * langhooks.h (lang_hooks): Remove insert_default_attributes field.
3452         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete.
3453         * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
3454         * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro.
3455
3456         * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't
3457         define.
3458
3459 2003-08-04  Richard Sandiford  <rsandif@redhat.com>
3460
3461         * config/mips/mips.c (override_options): Disable -G on targets that
3462         have no .section support.
3463         (mips_select_section): Use default_select_section for such targets.
3464
3465 2003-08-04  Nathanael Nerode  <neroden@gcc.gnu.org>
3466
3467         * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable.
3468         * fixinc/inclhack.def (static_getrnge): Remove disabled hack.
3469         * fixinc/fixincl.x: Rebuild.
3470         * fixinc/tests/base/regexp.h: New test.
3471
3472 2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
3473
3474         * c-ppoutput.c (cb_line_change): Don't skip line changing while
3475         parsing macro arguments in the top-level context.
3476
3477 2003-08-04  Neil Booth  <neil@daikokuya.co.uk>
3478
3479         * config.in: Remove HAVE_LSTAT.
3480         * configure, configure.in: Don't test for lstat.
3481
3482 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3483
3484         * opts.c (decode_options): Do language-specific initialization for
3485         the global diagnostic context.
3486         * langhooks-def.h (lhd_initialize_diagnostics): Declare.
3487         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro.
3488         (LANG_HOOKS_INITIALIZER): Adjust.
3489         * langhooks.h (struct lang_hooks): Add new field
3490         initialize_diagnostics.
3491         * langhooks.c (lhd_initialize_diagnostics): Define.
3492
3493 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3494
3495         * pretty-print.h:   Adjust macro definitions.
3496         * pretty-print.c (pp_newline): Rename to pp_base_newline.
3497         (pp_character): Rename to pp_base_character.
3498         (pp_string): Rename to pp_base_string.
3499         * c-pretty-print.c (pp_buffer): Move to pretty-print.h
3500         (pp_newline):  Likewise.  Adjust.
3501         (pp_c_char): Adjust.
3502
3503 2003-08-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3504
3505         * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS,
3506         BUILT_IN_LLABS): Move to miscellaneous section.
3507
3508 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
3509
3510         PR preprocessor/11534
3511         * cppexp.c (parse_defined): Warn only if -pedantic.
3512
3513 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
3514
3515         * cppfiles.c (stack_file): Use file path.
3516
3517 2003-08-02  Roger Sayle  <roger@eyesopen.com>
3518
3519         * builtin-types.def (BT_SSIZE): New primitive type.
3520         (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
3521         BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
3522         BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
3523         BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types.
3524         * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT,
3525         BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON,
3526         BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins.
3527         * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last
3528         few functions that define default attributes using it.
3529         * c-common.c (c_common_insert_default_attributes): Do nothing.
3530
3531         * doc/extend.texi: Document these "new" builtins.
3532
3533 2003-08-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3534
3535         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
3536         (LIB_SPEC): Set -lpthread always when -pthread set.  Set -lieee
3537         when -mieee-fp set and -shared not set.
3538         (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5.
3539
3540 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
3541
3542         * cppfiles.c (struct _cpp_file): Rename once_only_next to
3543         next_file.  Remove import and pragma_once, add once_only.
3544         (find_file): Add new file structures to the all_files list.
3545         (should_stack_file): Mark #import-ed files once-only, and
3546         don't stack them if the file has already been stacked.
3547         (_cp_mark_file_once_only): Simplify.
3548         * cpphash.h (struct cpp_reader): Rename once_only_files
3549         to all_files.  Rename saw_pragma_once to seen_once_only.
3550         (_cpp_mark_file_once_only): Update prototype.
3551         * cpplib.c (do_pragma_once): Update.
3552
3553 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
3554
3555         * cppfiles.c (ENOTDIR): Remove.
3556         (open_file_in_dir): Rename find_file_in_dir.  Handle errors
3557         other than ENOENT here.
3558         (once_only_file_p): Rename should_stack_file.
3559         (find_file, open_file_failed, read_file_guts): Report errors
3560         with full path name.
3561         (read_file): Move pch handling to should_stack_file.
3562         (should_stack_file): Handle PCH and once-only issues, and
3563         reading the file.
3564         (stack_file): Don't do file reads.
3565
3566 2003-08-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3567
3568         * libgcov.c (gcov_exit): Cleanup and fix.
3569         * profile.c (compute_value_histograms): Don't try to read profiles
3570         that are not present.
3571
3572 2003-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3573
3574         * builtins.def: Categorize.
3575
3576         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
3577         Mind fp rounding.
3578         (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN.
3579
3580 2003-08-02  Andreas Tobler  <a.tobler@schweiz.ch>
3581
3582         * config.gcc: Enable posix threads by default on darwin.
3583
3584 2003-08-01  Jakub Jelinek  <jakub@redhat.com>
3585
3586         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes
3587         even if nehedges1 is 0.
3588
3589 2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3590
3591         * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h,
3592         fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c,
3593         fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes
3594         and defintions.
3595
3596         * fixinc/inclhack.def (broken_cabs): Make matching more generous.
3597         * fixinc/fixincl.x: Regenerate.
3598         * fixinc/tests/base/math.h: Regenerate to match test_text change.
3599
3600 2003-08-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3601
3602         * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *.
3603
3604 2003-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3605
3606         * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode,
3607         for accesses to exc_ptr.
3608
3609 2003-08-01  Geoffrey Keating  <geoffk@apple.com>
3610
3611         * doc/sourcebuild.texi (Front End Directory): Don't make references
3612         to libsubdir, it's not part of the interface to frontends.
3613         * doc/install.texi (Configuration): Help users read faster by saying
3614         that GCC's configure options are the standard autoconf ones.
3615         Mention --libdir.  Update the default rules for finding the
3616         assembler.  Don't use libsubdir since we haven't said what it means.
3617         (Specific): In the Solaris 7 notes, update the place to put the
3618         assembler.
3619         * doc/invoke.texi: Update lib/gcc-lib to lib/gcc.
3620         * doc/cpp.texi (Search Path): Actually, the search path
3621         depends on libdir, which can relocate with cpp.
3622         * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's
3623         now a private interface between the Makefile and the driver.
3624
3625 2003-08-01  Richard Henderson  <rth@redhat.com>
3626
3627         * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR.
3628
3629         * varasm.c (lookup_constant_def): New function.
3630         * rtl.h (lookup_constant_def): Declare it.
3631         * dwarf2out.c (loc_descriptor_from_tree): Use it.
3632         Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR.
3633
3634 2003-08-01  Zack Weinberg  <zack@codesourcery.com>
3635
3636         * c-decl.c (gettags, pushdecl_function_level): Delete.
3637         (last_function_parm_vars): Rename last_function_parm_others.
3638         (current_function_parm_vars): Rename current_function_parm_others.
3639         (struct c_scope): Rewrite comment explaining this data structure.
3640         Add names_last, blocks_last, parms_last fields.  Rename
3641         incomplete_list to incomplete.
3642         (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros.
3643         (poplevel): Ignore second argument.  No need to nreverse
3644         anything.  Restructure such that each list is processed
3645         exactly once.  Use 'const location_t *locus' syntactic sugar
3646         variable where useful.  Issue unused variable warnings
3647         ourselves, do not rely on function.c.
3648         (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND.
3649         (pushdecl_top_level): Likewise.  Don't call duplicate_decls.
3650         (implicitly_declare): decl cannot be error_mark_node.
3651         (undeclared_variable): Manipulate scope structure directly.
3652         (c_make_fname_decl): Likewise.
3653         (getdecls, c_init_decl_processing): Fix comment.
3654         (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT.  No need
3655         for 'last' variable.
3656         (grokparms): No need to nreverse parms list.
3657         (store_parm_decls_newstyle): Set up the parms_last and
3658         names_last fields of the new scope too.
3659         (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set
3660         on parms to begin with; check this under ENABLE_CHECKING.  Set
3661         up parms_last.
3662         (check_for_loop_decls): Refer directly to current_scope->tags.
3663         Use consistent quote style in diagnostics.
3664         (c_write_global_declarations): The names list is not backward.
3665
3666         * c-common.h: Don't prototype gettags.
3667         * c-parse.in: Call poplevel with second argument 0 always.
3668
3669 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3670
3671         * builtins.def: Resort builtins.
3672
3673 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3674
3675         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN,
3676         DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN):
3677         Prepend "__builtin_" onto NAME with string concatenation.  Remove
3678         explicit "__builtin_" from each macro call.
3679
3680         Reformat entire file.
3681
3682 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3683
3684         * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
3685         ATTR_MATHFN_FPROUNDING_ERRNO): New macros.  Use throughout.
3686
3687 2003-08-01  Andreas Krebbel  <krebbel1@de.ibm.com>
3688
3689         * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL,
3690         CCL1, or CCL2 modes with floating point operations.
3691
3692         * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc",
3693         "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc",
3694         "*subdf3_cconly"): New insns.
3695         ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise.
3696
3697 2003-08-01  Neil Booth  <neil@daikokuya.co.uk>
3698
3699         * Makefile.in: Refine dependencies.
3700         * c-opts.c (c_common_handle_option): Do nothing for -Wimport.
3701         * c.opt: Update help for -Wimport.
3702         * cppfiles.c: Include hashtab.h.  Update comments.
3703         (stack_file): Read the file before updating dependencies.
3704         (once_only_file_p): Be smarter about marking once-only files.
3705         (_cpp_mark_file_once_only): Correct the check for existence on
3706         the list.
3707         (open_file_failed): Use name not path, which is NULL.
3708         * cpphash.h: Don't include hashtab.h.
3709         (struct _cpp_file): Remove.
3710         (struct cpp_reader): Update.
3711         * cppinit.c (cpp_create_reader): Don't initialize warn_import.
3712         * cpplib.h (struct cpp_options): Remove warn_import.
3713         (cpp_simplify_path): Remove.
3714
3715 2003-08-01  Nathan Sidwell  <nathan@codesourcery.com>
3716
3717         PR c++/11295
3718         * doc/extend.texi (Statement Expressions): Document C++ semantics.
3719
3720 2003-07-31  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
3721
3722         * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le.
3723
3724 2003-07-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3725
3726         * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE'
3727         throughout.
3728         * builtins.def: Likewise.
3729
3730 2003-07-31  Jason Merrill  <jason@redhat.com>
3731
3732         * Makefile.in (bubblestrap): Don't require a previous full
3733         bootstrap.
3734
3735         * expr.c (mostly_zeros_p): No longer static.
3736         * tree.h: Declare it.
3737         * stmt.c (resolve_asm_operand_names): Don't copy the pattern
3738         unless we need to do substitutions.
3739
3740 2003-07-31  Roger Sayle  <roger@eyesopen.com>
3741
3742         * fold-const.c (fold <MULT_EXPR>): Optimize both x*pow(x,c) and
3743         pow(x,c)*x as pow(x,c+1) for constant values c.  Optimize x*x
3744         as pow(x,2.0) when the latter will be expanded back into x*x.
3745         (fold <RDIV_EXPR>): Optimize pow(x,c)/x as pow(x,c-1).
3746         * builtins.c (expand_builtin_pow): Ignore flag_errno_math as
3747         pow can never set errno when used with an integer exponent.
3748         Always use expand_powi when exponent is -1, 0, 1 or 2.
3749         (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0)
3750         as 1.0/(x*x).  This avoids unbounded recursion as we now prefer
3751         the pow forms of these expressions.
3752
3753 2003-07-31  Geoffrey Keating  <geoffk@apple.com>
3754
3755         * Makefile.in (libexecdir): New.
3756         (libsubdir): Use gcc instead of gcc-lib.
3757         (libexecsubdir): New.
3758         (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir.
3759         (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of
3760         gcc-lib.
3761         (installdirs): Make libexecsubdir.
3762         (install-common): Put executables in libexecsubdir.
3763         (itoolsdir): Use libexecsubdir.
3764         (itoolsdatadir): New.
3765         (install-mkheaders): Separate data files and executables.
3766         (install-collect2): Put executables in libexecsubdir.
3767         (uninstall): Remove libexecsubdir.
3768         * mkheaders.in: Update for new arrangement of files.
3769         (libexecdir): New.
3770         (libexecsubdir): New.
3771         (itoolsdir): Use libexecsubdir.
3772         (itoolsdatadir): New.
3773         * gcc.c (gcc_libexec_prefix): New.
3774         (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib.
3775         (standard_exec_prefix_1): Use libexec.
3776         (standard_exec_prefix_2): New.
3777         (standard_libexec_prefix): New.
3778         (process_command): Update for new arrangement of files.  Compute
3779         gcc_libexec_prefix.  Update for change from gcc-lib to gcc.
3780
3781 2003-07-31  Nathanael Nerode  <neroden@gcc.gnu.org>
3782
3783         * inclhack.def (stdio_va_list): Avoid bogus replacement which
3784         triggers on Interix.
3785         * fixincl.x: Regenerate.
3786
3787 2003-07-31  Jakub Jelinek  <jakub@redhat.com>
3788
3789         * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS
3790         SYMBOL_REFs not inside UNSPEC even in PLUS rtx.
3791
3792 2003-07-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3793
3794         * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
3795
3796 2003-07-31  Per Bothner  <pbothner@apple.com>
3797
3798         * opts.c (in_fnames, num_in_fnames):  Moved here from c-opts.
3799         (add_input_filename):  New function.
3800         (handle_options):  Call add_input_filename directly instead of
3801         with a lang hook.
3802         * opts.h (in_fnames, num_in_fnames):  Moved here.
3803         (add_input_filename):  Declare.
3804         * c-decl.c:  Need to #include opts.h.
3805         * Makefile.in (c-decl.o):  Also depends on opts.h.
3806         * c-opts.c (in_fnames, num_in_fnames):  Moved to opts.c.
3807         (c_common_handle_filename):  Replaced by add_input_filename.
3808         * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename):
3809         Remove.
3810         * langhooks.h (struct lang_hooks):  Remove handle_filename hook.
3811         * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
3812         (LANG_HOOKS_INITIALIZER):  Remove use of LANG_HOOKS_HANDLE_FILENAME.
3813         * c-lang.c (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
3814
3815 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3816
3817         * combine.c (try_combine): Set JUMP_LABEL for newly created
3818         unconditional jump.
3819
3820 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3821
3822         * fold-const.c (fold): Fold some comparisons of bit operations.
3823
3824 2003-07-31  Jan Hubicka  <jh@suse.cz>
3825
3826         * cgraph.c (create_edge): Fix typo.
3827         * i386.c (pic_symbolic_operand): Reorder tests.
3828
3829 2003-07-31  Nathan Sidwell  <nathan@codesourcery.com>
3830
3831         * doc/gcov.texi (Invoking Gcov): Describe output name mangling
3832         more fully.
3833         (Gcov Data Files): Update.
3834
3835 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3836
3837         * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by
3838         default.
3839
3840         * gthr-posix.c: New file.
3841         * gthr-posix.h: Define _REENTRANT if missing.
3842         Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK.
3843
3844         * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided
3845         by gthr-posix.o.
3846         * config/alpha/t-osf-pthread: New file.
3847
3848         * fixinc/inclhack.def (alpha_pthread): New fix.
3849         * fixinc/fixincl.x: Regenerate.
3850         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase.
3851
3852         * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads
3853         warning.
3854         Fixes PR bootstrap/9330.
3855
3856 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3857
3858         * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5*
3859         without GNU ld.
3860         Update comment.
3861         * configure: Regenerate.
3862
3863 2003-07-31  Vladimir Makarov  <vmakarov@redhat.com>
3864
3865         * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0
3866         setter.
3867
3868 2003-07-30  Roger Sayle  <roger@eyesopen.com>
3869
3870         * builtins.def: Alphabetize.
3871
3872 2003-07-30  Matt Kraai  <kraai@alumni.cmu.edu>
3873
3874         * doc/c-tree.texi: Normalize spellings of "lowercase" and
3875         "uppercase".
3876         * doc/cpp.texi: Likewise.
3877         * doc/md.texi: Likewise.
3878         * doc/rtl.texi: Likewise.
3879         * doc/tm.texi: Likewise.
3880
3881 2003-07-30  Matt Kraai  <kraai@alumni.cmu.edu>
3882
3883         * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3)
3884         (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves
3885         of cc1obj.
3886
3887 2003-07-30  Chris Demetriou  <cgd@broadcom.com>
3888
3889         * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these
3890         macros before defining them.
3891
3892 2003-07-31  Ulrich Weigand  <uweigand@de.ibm.com>
3893
3894         * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH,
3895         UNSPECV_BLOCKAGE): New constants.
3896         ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31",
3897         "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2"
3898         splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee",
3899         "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them.
3900
3901         (all insns and expanders): Write output control string as brace block
3902         where appropriate.  Remove \-escapes for doublequote characters.
3903
3904 2003-07-31  Jan Hubicka  <jh@suse.cz>
3905
3906         * gcse.c (insert_store): Fix typo in previous patch.
3907
3908 2003-07-30  Neil Booth  <neil@daikokuya.co.uk>
3909
3910         * cppfiles.c (stack_file, open_file_failed): Use path for deps.
3911
3912 2003-07-30  Andi Kleen  <ak@muc.de>
3913
3914         * loop.c (check_dbra_loop): Allow LTU in the loop condition.
3915
3916 2003-07-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3917
3918         * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes.
3919         * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER,
3920         GCOV_N_VALUE_COUNTERS): New.
3921         * profile.c (compute_value_histograms): New static function.
3922         (branch_prob): Read back the value histograms.
3923         * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note.
3924         * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note.
3925         * value-prof.c: Add comment on reading the profile.
3926         * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New.
3927         * doc/invoke.texi (-fprofile-values): Document behavior with
3928         -fbranch-probabilities.
3929
3930 2003-07-30  David Edelsohn  <edelsohn@gnu.org>
3931
3932         * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__.
3933
3934 2003-07-30  Ulrich Weigand  <uweigand@de.ibm.com>
3935
3936         * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset
3937         symbolically.
3938
3939 2003-07-30  Jan Hubicka  <jh@suse.cz>
3940
3941         * gcse.c (insert_store): Ignore fake edges.
3942
3943         * c-common.c (flag_vtable_gc): Kill.
3944         * c-common.g (flag_vtable_gc): Kill.
3945         * c-opts (c_common_handle_option): Kill.
3946         * c.opt (fvtable-gc): Kill.
3947         * final.c (final_scan_insn): Do not call assemble_vtable_entry.
3948         * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill.
3949         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill.
3950
3951         * invoke.texi (-ftable-gc): Kill documentation.
3952
3953         * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE
3954         just because function body is missing.
3955
3956         * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs.
3957
3958 2003-07-30  Ranjit Mathew  <rmathew@hotmail.com>
3959
3960         * unwind-sjlj.c: Fix typo in file description.
3961
3962 2003-07-30  Alan Modra  <amodra@bigpond.net.au>
3963
3964         * calls.c (load_register_parameters): When shifting reg sized values
3965         to the msb, move the value to a reg first.
3966
3967 2003-07-29  Geoffrey Keating  <geoffk@apple.com>
3968
3969         * cppfiles.c (stack_file): Leave filename as "" rather than "<stdin>".
3970         * line-map.h (linemap_add): Update comments.
3971         * line-map.c (linemap_add): Update comments, interpret zero-length
3972         filename as "<stdin>".
3973
3974 2003-07-29  Nathanael Nerode  <neroden@gcc.gnu.org>
3975
3976         * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.
3977
3978 2003-07-29  Zack Weinberg  <zack@codesourcery.com>
3979
3980         * c-decl.c (last_function_parm_vars, current_function_parm_vars):
3981         New static variables.
3982         (struct c_scope): Add parms and warned_forward_parm_decls
3983         fields; remove parm_order.
3984         (storedecls, storetags): Delete.
3985         (poplevel): Also clear bindings on the parms chain.
3986         (pushdecl): Handle forward declarations of parameters, and
3987         chain PARM_DECLs on the parms list, not the names list.
3988         (lookup_name_current_level): Check for PARM_DECLs on the parms
3989         list too.
3990         (push_parm_decl): Don't update parm_order.
3991         (clear_parm_order): Rename mark_forward_parm_decls.  Issue the
3992         warning, only once per parameter list, and set TREE_ASM_WRITTEN
3993         on the decls here.  Then move the forward decls to the names list.
3994         (grokparms): Set last_function_parm_vars.
3995         (get_parm_info): Don't use gettags or getdecls.  No need to
3996         extract non-parms from the parms list, or reorganize the parms
3997         list.  Feed nonparms back in the TREE_TYPE of the list node
3998         returned.  Issue only one error per parameter list for "void"
3999         appearing more than once in said parameter list.  Collapse
4000         parmlist_tags_warning into this function to avoid double scan
4001         of tags list.
4002         (start_function): Set current_function_parm_vars.
4003         (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope
4004         directly.  Get non-parms from current_function_parm_vars; no
4005         need to extract them from the parms chain.  Properly bind tags
4006         in the new scope.
4007         (store_parm_decls_oldstyle): No need to extract non-parameters
4008         from the parms chain, nor to store them back afterward.  Move
4009         declaration to top of function, restructure code reordering
4010         DECL_ARGUMENTS.
4011         (store_parm_decls): No need to save and restore warn_shadow.