OSDN Git Service

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