1 2004-04-22 Per Bothner <per@bothner.com>
3 * line-map.h (struct line_maps): New field highest_line.
4 (linemap_position_for_column): Make non-inline function.
5 (LINEMAP_POSITION_FOR_COLUMN): New macro.
6 * line-map.c (linemap_init): Clear highest_line field.
7 (linemap_add): Set highest_line field.
8 (linemap_line_start): Minor optimization - use highest_line field.
9 Reduce maximum column hint to 10000. Update highest_line field.
10 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
11 * cpphash.h (struct cpp_reader): Remove line field - instead use
12 line_table->highest_line.
13 (saved_line): Remove unused field.
14 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
15 Use line_table's highest_line field instead of cpp_reader's line.
16 * cpplib.c (start_directive): Likewise use highest_line field.
17 (do_line, do_linemarker): Likewise just use newest map.
18 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
19 * cpperror.c (cpp_error): Likewise use highest_line field.
20 * cppfiles.c (open_file_failed: Likewise.
21 (cpp_make_system_header): Likewise use newest map and highest_line.
22 * cppinit.c (cpp_create_reader): Don't initialize removed field.
23 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
24 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
25 _cpp_lex_direct): Likewise use highest_line.
26 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
27 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
29 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
30 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
31 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
33 2004-04-23 Alan Modra <amodra@bigpond.net.au>
36 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
37 * config/linux.h (USE_LD_AS_NEEDED): Define.
38 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
39 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
40 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
41 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
42 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
43 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
44 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
46 2004-04-22 Per Bothner <per@bothner.com>
48 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
49 Fixes PR preprocessor/15067.
51 2004-04-23 Andreas Schwab <schwab@suse.de>
53 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
54 avoid aliasing warning.
56 2004-04-22 Jan Hubicka <jh@suse.cz>
57 Mostafa Hagog <mustafa@il.ibm.com>
59 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
60 * cfgloopanal.c (expected_loop_iterations): Change the return value
62 2004-04-22 Jakub Jelinek <jakub@redhat.com>
64 * cselib.h (struct elt_loc_list): Remove canon_loc field.
65 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
66 (cselib_invalidate_mem): Remove all canon_loc and canon_x
69 2004-04-22 Josef Zlomek <zlomekj@suse.cz>
72 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
74 * var-tracking.c (variable_part_different_p): Variable parts
75 differ when the most recent locations differ.
77 2004-04-22 Richard Sandiford <rsandifo@redhat.com>
79 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
80 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
81 (embedded_pic_offset): Delete.
82 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
84 (TARGET_EMBEDDED_PIC): Delete.
85 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
86 (ASM_SPEC): Remove -membedded-pic.
87 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
88 (ASM_OUTPUT_CASE_LABEL): Likewise.
89 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
90 * config/mips/windiss.h (ASM_SPEC): Likewise.
91 * config/mips/mips.c (struct machine_function): Remove
92 embedded_pic_fnaddr_rtx.
93 (TARGET_ENCODE_SECTION_INFO): Remove override.
94 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
95 (override_options): Remove -membedded-pic handling.
96 (print_operand): Remove handling of '%S'.
97 (mips_select_section: Remove -membedded-pic handling.
98 (mips_encode_section_info): Delete.
99 (mips_output_conditional_branch): Remove mention of -membedded-pic.
100 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
101 -membedded-pic handling.
102 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
104 2004-04-22 Alan Modra <amodra@bigpond.net.au>
106 * var-tracking.c (frame_base_decl): Remove useless GTY.
108 2004-04-21 Aldy Hernandez <aldyh@redhat.com>
110 * config/rs6000/rs6000.c (rs6000_override_options): Error when
111 user wants altivec and e500 instructions.
113 2004-04-21 H.J. Lu <hongjiu.lu@intel.com>
116 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
117 in .init_array section to ...
118 * config/ia64/crtbegin.asm: Here.
120 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
121 and hidden if HAVE_INITFINI_ARRAY is defined.
123 2004-04-21 James E Wilson <wilson@specifixinc.com>
125 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
126 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
127 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
128 (fp_register_operand, lo_operand): New.
129 (mips_rtx_costs): Add TUNE_SB1 support.
130 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
131 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
132 (mips_multipass_dfa_lookahead): New.
133 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
135 (TARGET_SWITCHES): Add -mfp-exceptions support.
136 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
137 (BRANCH_COST): Fix whitespace.
138 * config/mips/mips.md: Include sb1.md.
139 * config/mips/sb1.md: New file.
140 * doc/invoke.texi: Document -mfp-exceptions.
142 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
144 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
145 (fixincl.o-warn): Delete.
147 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
149 * config/rs6000/rs6000 (print_operand) ['z']:
150 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
152 2004-04-21 Daniel Jacobowitz <drow@mvista.com>
154 * config.gcc: Support --with-arch=iwmmxt for ARM.
156 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
158 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
159 in two more places; remove unneeded force_reg
161 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
163 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
165 (print_operand): For TARGET_MACHO check to see if we need a stub
166 and output one if we need it.
169 * dwarf2out.c (rtl_for_decl_location): Check for NULL
172 2004-04-20 James E Wilson <wilson@specifixinc.com>
174 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
175 (vall_value_gp): Likewise.
177 2004-04-20 DJ Delorie <dj@redhat.com>
179 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
180 variables stored in word registers, then in memory.
182 2004-04-20 Eric Christopher <echristo@redhat.com>
184 * cp/parser.c (cp_parser_declaration): Move translate
185 up before tokens are lexed.
187 2004-04-20 Uros Bizjak <uros@kss-loka.si>
189 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
190 (asin_optab, acos_optab): Define corresponding macros.
191 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
192 * genopinit.c (optabs): Implement asin_optab and acos_optab
193 using asin?f2 and acos?f2 patterns.
194 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
195 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
196 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
197 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
199 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
200 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
201 acos, acosf and acosl built-ins as inline x87 intrinsics.
203 2004-04-20 Paul Brook <paul@codesourcery.com>
205 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
207 2004-04-20 Paul Brook <paul@codesourcery.com>
209 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
211 2004-04-20 Paolo Bonzini <bonzini@gnu.org>
213 Revert part of 2004-04-17 change that moved -frename-registers
214 to -O1. -frename-registers is buggy.
216 * toplev.c (flag_rename_registers): Initialize to 0.
217 * doc/invoke.texi (Optimize options): Move -frename-registers
218 to "Not triggered by any -O level" section. Adjust commentary
221 2004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
223 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
225 2004-04-20 Richard Sandiford <rsandifo@redhat.com>
227 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
228 for mflo and mfhi instructions.
229 (mips_output_move): Remove mflo and mfhi handling.
230 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
231 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
232 Likewise various define_peephole2s.
233 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
235 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
236 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
237 (mfhilo_di, mfhilo_si): New patterns.
239 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
241 * function.c (assign_parms): Force
242 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
244 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
246 * var-tracking.c (variable_part_different_p): Variable parts differ
247 when the most recent locations differ.
249 2004-04-19 James E Wilson <wilson@specifixinc.com>
251 * rtl.h (reg_set_last): Delete declaration.
252 * rtlanal.c (reg_set_last): Delete.
254 2004-04-19 Roger Sayle <roger@eyesopen.com>
256 * fold-const.c (fold_convert): Make function extern/public.
257 * tree.h (fold_convert): Prototype here.
258 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
259 expand_builtin_strrchr, expand_builtin_strpbrk,
260 expand_builtin_mempcpy, expand_builtin_bcopy,
261 expand_builtin_bzero, expand_builtin_memcmp,
262 expand_builtin_strcmp, expand_builtin_strncmp,
263 stabilize_va_list, expand_builtin_sprintf,
264 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
265 fold_builtin_exponent, fold_builtin_mempcpy,
266 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
267 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
268 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
270 2004-04-19 Aldy Hernandez <aldyh@redhat.com>
272 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
273 (move_from_CR_gt_bit): New.
274 (cceq_ior_compare): Name previously unnamed pattern. Disable for
276 (cceq_rev_compare): Name previously unnamed pattern. Allow for
279 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
285 (e500_cceq_ior_compare): New.
286 (e500_flip_gt_bit): New.
288 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
289 (print_operand): Add 'c' and 'D'.
290 (rs6000_generate_compare): Rewrite to generate correct rtl.
291 (rs6000_emit_sCOND): Handle E500.
292 (output_cbranch): Adjust for changes in rs6000_generate_compare.
293 (output_e500_flip_gt_bit): New.
295 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
298 2004-04-19 Eric Christopher <echristo@redhat.com>
300 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
302 2004-04-19 David Edelsohn <edelsohn@gnu.org>
304 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
307 2004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
309 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
312 2004-04-19 Daniel Jacobowitz <drow@mvista.com>
314 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
315 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
317 2004-04-19 Andrew PInski <pinskia@physics.uc.edu>
319 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
320 (fold_builtin): Update caller to match.
323 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
326 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
328 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
330 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
332 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
333 (expand_mult_highpart_optab): Likewise.
334 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
336 2004-04-19 Paul Brook <paul@codesourcery.com>
338 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
339 floatunssisf2, floatunssidf2): New patterns.
341 2004-04-18 Mark Mitchell <mark@codesourcery.com>
344 * doc/invoke.texi (-fprofile-generate): Document requirement to
345 use -fprofile-generate when linking.
347 * doc/extend.texi (Strong Using): Warn users against using this
350 2004-04-18 Richard Sandiford <rsandifo@redhat.com>
352 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
353 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
354 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
355 * config/mips/mips.c (struct mips16_constant): Renamed from struct
356 constant. Propogate change throughout file.
357 (struct machine_function): Remove insns_len.
358 (mips_string_length, mips16_strings, string_constants): Delete.
359 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
360 when generating mips16 code. Remove special mips16 treatment of
362 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
363 to have the form LABEL+CONSTANT.
364 (mips_symbolic_address_p): Fix comment.
365 (m16_usym8_4, m16_usym5_4): Delete.
366 (mips_output_function_epilogue): Remove mips16 string handling.
367 (mips_output_mi_thunk): Call mips16_lay_out_constants.
368 (mips_select_section, mips_encode_section_info): Remove mips16
370 (struct mips16_constant_pool): New.
371 (add_constant): Take a mips16_constant_pool structure. Keep pool
372 sorted into order of ascending mode size. Keep track of the highest
373 possible start address, taking padding and the masking of the base PC
375 (dump_constants_1): New function, split out from dump_constants.
376 Handle vector constants. Use gen_consttable_{int,float} rather than
377 separate functions for each mode.
378 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
379 rather than separate functions for each alignment.
380 (mips_find_symbol): Delete.
381 (mips16_insn_length): New function, split out from
382 mips16_lay_out_constants.
383 (mips16_rewrite_pool_refs): New function.
384 (mips16_lay_out_constants): Rework. Remove string handling.
385 Always create an inline constant pool.
386 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
387 (UNSPEC_ALIGN): New constants.
388 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
389 (UNSPEC_ALIGN_[248]): Delete.
390 (consttable_int, consttable_float, align): New patterns.
391 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
393 2004-04-17 Aldy Hernandez <aldyh@redhat.com>
395 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
398 2004-04-17 Alan Modra <amodra@bigpond.net.au>
401 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
402 with STARTING_FRAME_OFFSET.
404 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
406 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
407 * config/mips/mips.c (macc_msac_operand): New function.
408 * config/mips/mips.md (*msac): Move after *macc.
409 (*msac2): New. Generalize macc-related peepholes so that they apply
412 2004-04-17 Paolo Bonzini <bonzini@gnu.org>
414 * opts.c (decode_options): Do not enable flag_rename_registers
416 * toplev.c (flag_rename_registers): Initialize
417 flag_rename_registers and flag_web to
418 AUTODETECT_FLAG_VAR_TRACKING.
419 (default_debug_hooks): New global.
420 (process_options): Initialize default_debug_hooks. Warn if
421 -fvar-tracking specified but not supported by the current
422 debug format. Do not run var tracking at -O0 or if not
423 supported by the current debug format, even if
424 -fvar-tracking was given. If -fno-rename-registers
425 is not specified, always run register renaming if var
426 tracking is supported by the default debugging information
427 format for the target, and we are at -O1 or higher; similarly
428 for -fweb, but only at -O2 or higher.
429 * doc/invoke.texi (Optimize Options): Document this.
431 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
433 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
434 * configure: Regenerate.
436 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
438 * gcc.c (used_arg): Check whether an option has been removed.
440 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
442 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
443 debugging on Solaris 7 and up.
445 2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
447 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
449 Remove -save-temps workaround, handled automatically.
450 Require GNU binutils 2.15 for debugging.
451 Remove SGI make warnings since GNU make is now required.
452 (Specific, mips-sgi-irix6): Some markup fixes.
453 Describe MIPSpro C problems and workarounds.
454 Mention working O32 ABI support.
455 Recommend GNU as 2.15 for O32 with debugging.
456 Remove description of fixed structure pass/return bug.
458 2004-04-16 DJ Delorie <dj@redhat.com>
460 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
462 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
464 2004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
466 * pa.md: Remove unnecessary declarations for asm_out_file.
468 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
469 SAR register. Fix comment.
470 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
473 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
475 2004-04-16 Nick Clifton <nickc@redhat.com>
477 * config/arm/arm.c (arm_override_options): Revert previous patch.
478 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
481 2004-04-16 Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
483 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
485 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
486 TARGET_DEFAULT): Changed. Ditto.
487 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
488 TARGET_ENDIAN_DEFAULT): Added. Ditto.
489 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
490 (TARGET_ENDIAN_DEFAULT): Added.
492 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
494 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
495 ATTR_CONST_NOTHROW_LIST.
497 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
500 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
503 2004-04-15 Pat Haugen <pthaugen@us.ibm.com>
505 * ra-debug.c (ra_print_rtx): Add break's to case legs.
507 2004-04-14 James E Wilson <wilson@specifixinc.com>
509 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
511 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
513 * libada-mk.in: New file.
514 * configure.ac: Create libada-mk from libada-mk.in.
515 * configure: Regenerate.
517 2004-04-14 Uros Bizjak <uros@kss-loka.si>
519 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
520 (logb_optab, ilogb_optab): Define corresponding macros.
521 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
522 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
523 using logb?f2 and ilogb?i2 patterns.
524 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
525 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
526 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
527 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
529 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
530 and UNSPEC_XTRACT_EXP.
532 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
533 patterns to implement fxtract x87 instruction.
534 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
535 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
537 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
540 2004-04-14 Eric Christopher <echristo@redhat.com>
542 * config/mips/t-elf: Enable multilibs by default.
544 2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
546 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
547 previous fix to check HAVE_return at runtime too.
549 2004-04-14 Nick Clifton <nickc@redhat.com>
551 * config/arm/arm.c (arm_override_options): If the user has not
552 specified an ABI, then default to AAPCS for the iWMMXt processor.
553 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
554 * config/arm/t-xscale-coff: Likewise.
556 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
558 * builtins.c (fold_builtin_isdigit): New.
559 (fold_builtin): Handle BUILT_IN_ISDIGIT.
560 * defaults.h: Add TARGET_DIGIT0 and sort.
561 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
563 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
565 * builtins.c (fold_builtin_cabs, fold_builtin): Use
566 `mathfn_built_in' to determine the new builtin.
567 * fold-const.c (fold): Likewise.
569 2004-04-14 Richard Sandiford <rsandifo@redhat.com>
571 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
572 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
573 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
574 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
575 (ASM_SPEC): Update accordingly.
576 * config/mips/mips.c: Update after above renaming.
577 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
578 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
580 2004-04-13 James E Wilson <wilson@specifixinc.com>
582 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
583 increment errorcount and return false instead of true.
585 2004-04-13 Uros Bizjak <uros@kss-loka.si>:
587 * optabs.c (expand_twoval_unop): Reorder function arguments.
588 * builtins.c (expand_builtin_mathfn_3): Update calls to
591 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
592 and UNSPEC_TAN_TAN. Add missing comment.
594 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
595 patterns to implement fptan x87 instruction.
596 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
597 and tanl built-ins as inline x87 intrinsics. Define corresponding
598 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
599 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
602 2004-03-13 Richard Henderson <rth@redhat.com>
604 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
607 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
608 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
609 * doc/invoke.texi: Update to match.
611 * varasm.c (unlikely_text_section): Use assemble_align instead of
612 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
613 correct alignment argument.
615 2004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
617 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
618 after setting reg_last_reload_reg for optional output reloads.
620 2004-04-12 Fariborz Jahanian <fjahanian@apple.com>
622 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
623 Definition of these two macros are corrected by adding
624 matchine right paren.
626 2004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
628 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
630 2004-04-12 Roger Sayle <roger@eyesopen.com>
632 * config/i386/i386.c (output_387_reg_move): New function.
633 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
634 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
635 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
636 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
637 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
639 2004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
641 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
643 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
644 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
645 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
646 Use skip_simple_arithmetic to find SAVE_EXPR.
647 (force_type_save_exprs, force_type_save_exprs_1): New functions.
648 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
649 Properly chain multiple pointers.
650 (copy_tree_r): Copy a TYPE_DECL.
651 * tree.c (variably_modified_type_p): Add some missing tests and
652 make some other minor changes.
653 * tree.h (force_type_save_exprs): New declaration.
655 2004-04-12 Roger Sayle <roger@eyesopen.com>
657 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
658 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
659 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
660 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
661 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
662 x%-1 into 0 (or x&0 if x has side-effects).
664 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
666 * config/rs6000/rs6000.md: Document why a pattern is not
669 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
670 of floats on the E500.
671 (branch_positive_comparison_operator): Do not allow NE even on the
674 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
676 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
677 in_text_unlikely_section to in_unlikely_text_section.
679 2004-04-11 Roger Sayle <roger@eyesopen.com>
681 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
682 calling convention to allow a NULL_TREE to be returned. Factor
683 sanity checks from callers, return NULL_TREE when appropriate.
684 (fold): Handle COMPOUND_EXPR operands of binary expressions
685 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
686 whether a op (b,c) can be rewritten as (b, a op c). Simplify
687 calls to fold_binary_op_with_conditional_arg.
689 2004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
691 * config/mips/iris5.h (current_section_flags): Add
692 in_unlikely_executed_text and default case.
694 2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
696 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
697 failure on solaris. Place ifdef HAVE_return around gen_ret call.
698 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
699 HAVE_return and place it around the place where it is needed.
701 2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
703 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
704 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
705 and NORMAL_TEXT_SECTION_NAME.
706 (unlikely_text_section): Check targetm.have_named_sections
707 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
708 instead of SECTION_FORMAT_STRING.
709 * config/mips/iris5.h (current_section_name): Add
710 in_unlikely_executed_text case and move the abort into the switch.
711 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
712 (NORMAL_TEXT_SECTION_NAME): Remove.
713 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
714 (SECTION_FORMAT_STRING): Remove.
715 * defaults.h (SECTION_FORMAT_STRING): Remove.
716 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
717 (SECTION_FORMAT_STRING): Remove.
719 2004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
721 * c-typeck.c (common_type): Prefer long long to long when same
724 2004-04-09 Zack Weinberg <zack@codesourcery.com>
727 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
729 * config/ia64/ia64.c (ia64_hpux_file_end): Check
730 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
732 2004-04-09 Roger Sayle <roger@eyesopen.com>
734 * simplify-rtx.c (mode_signbit_p): New function to check whether
735 an RTX is an immediate constant that represents the most significant
736 bit of a given machine mode.
737 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
739 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
740 when C2 is the sign bit.
741 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
742 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
745 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
747 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
750 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
752 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
753 of TREE_READONLY for types.
755 2004-04-09 Caroline Tice <ctice@apple.com>
757 * basic-block.h (struct edge_def): Add new field, crossing_edge.
758 (struct basic_block_def): Add new field, partition.
759 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
761 (partition_hot_cold_basic_blocks): Add extern function
763 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
765 (N_ROUNDS): Increase the maximum number of rounds by 1.
766 (branch_threshold): Add array value for new round.
767 (exec_threshold): Add array value for new round.
768 (push_to_next_round_p): New function.
769 (add_unlikely_executed_notes): New function.
770 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
771 (mark_bb_for_unlikely_executed_section): New function.
772 (add_labels_and_missing_jumps): New function.
773 (add_reg_crossing_jump_notes): New function.
774 (fix_up_fall_thru_edges): New function.
775 (find_jump_block): New function.
776 (fix_crossing_conditional_branches): New function.
777 (fix_crossing_unconditional_branches): New function.
778 (fix_edges_for_rarely_executed_code): New function.
779 (partition_hot_cold_basic_blocks): New function.
780 (find_traces): Add an extra round for partitioning hot/cold
782 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
783 and only cold blocks, into the last (extra) round of collecting traces.
784 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
786 (bb_to_key): Add code to correctly identify cold blocks when
788 (connect_traces): Modify to connect all the non-cold traces first, then
789 go back and connect up all the cold traces.
790 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
791 * cfg.c (entry_exit_blocks): Add initialization for partition field in
792 entry and exit blocks.
793 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
794 if we are doing hot/cold partitioning.
795 * cfgcleanup.c (cfglayout.h): Add new include statement.
796 (try_simplify_condjump): Modify to not attempt on blocks with jumps
797 that cross section boundaries.
798 (try_forward_edges): Likewise.
799 (merge_blocks_move_predecessor_nojumps): Likewise.
800 (merge_blocks_move_successor_nojumps): Likewise.
801 (merge_blocks_move): Likewise.
802 (try_crossjump_to_edge): Modify to not attempt after we have done
803 the block partitioning.
804 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
805 cross section boundaries.
806 (try_optimize_cfg): Likewise.
807 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
808 jumps that cross section boundaries.
809 * cfglayout.c (flags.h): Add new include statement.
810 (update_unlikely_executed_notes): New function.
811 (fixup_reorder_chain): Add code so when a new jumping basic block is
812 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
813 updated appropriately.
814 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
815 introduced by this optimization.
816 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
817 extern function declaration.
818 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
819 list of notes that can be deleted.
820 (create_basic_block_structure): Add initialization for partition field.
821 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
823 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
824 cross section boundaries.
825 (commit_one_edge_insertion): Add code so newly created basic block
826 ends up in correct (hot or cold) section. Modify to disallow
827 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
828 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
829 crosses section boundaries.
830 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
831 cross section boundaries.
832 (force_nonfallthru_and_redirect): Modify to make sure new basic block
833 ends up in correct section, with correct notes attached.
834 * common.opt (freorder-blocks-and-partition): Add new flag for this
836 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
837 the end of functions are written into the correct (hot or cold)
839 (dbx_source_file): Add code so writing debug file information
840 doesn't incorrectly change sections.
841 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
842 in partitioning hot/cold basic blocks into separate sections.
843 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
844 section partitioning.
845 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
846 conditional branches can span all of memory.
847 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
848 unconditional branches can span all of memory.
849 * final.c (scan_ahead_for_unlikely_executed_note): New function.
850 (final_scan_insn): Add code to check for NOTE instruction indicating
851 whether basic block belongs in hot or cold section, and to make sure
852 the current basic block is being written to the appropriate section.
853 Also added code to ensure that jump table basic blocks end up in the
855 * flags.h (flag_reorder_blocks_and_partition): New flag.
856 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
857 one of the branches has a jump that crosses between sections.
858 (find_if_case_2): Likewise.
859 (ifcvt): Modify to not attempt to mark loop exit edges after
860 hot/cold partitioning has occurred.
861 * opts.c (decode_options): Code to handle new flag,
862 flag_reorder_blocks_and_partition; also to turn it off if
863 flag_exceptions is on.
864 (common_handle_option): Code to handle new flag,
865 flag_reorder_blocks_and_partition.
866 * output.h (unlikely_text_section): New extern function declaration.
867 (in_unlikely_text_section): New extern function declaration.
868 * passes.c (rest_of_handle_stack_regs): Add
869 flag_reorder_blocks_and_partition as an 'or' condition for calling
870 reorder_basic_blocks.
871 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
872 as an 'or' condition for calling reorder_basic_blocks.
873 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
874 * print-rtl.c (print_rtx): Add code for handling new note,
875 NOTE_INSN_UNLIKELY_EXECUTED_CODE
876 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
877 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
878 cross between section boundaries.
879 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
880 indicating the basic block containing it belongs in the cold section.
881 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
882 between hot and cold sections.
883 * toplev.c (flag_reorder_blocks_and_partition): Add code to
884 initialize this flag, and to tie it to the command-line option
885 freorder-blocks-and-partition.
886 * varasm.c (cfglayout.h): Add new include statement.
887 (unlikely_section_label_printed): New global variable, used for
888 determining when to output section name labels for cold sections.
889 (in_section): Add in_unlikely_executed_text to enum data structure.
890 (text_section): Modify code to use SECTION_FORMAT_STRING and
891 NORMAL_TEXT_SECTION_NAME macros.
892 (unlikely_text_section): New function.
893 (in_unlikely_text_section): New function.
894 (function_section): Add code to make sure beginning of function is
895 written into correct section (hot or cold).
896 (assemble_start_function): Add code to make sure stuff is written to
898 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
899 to an if statement that was checking 'in_text_section'.
900 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
901 condition to an if statement that was checking 'in_text_section'.
902 (default_section_type_flags_1): Add check: if in cold section
903 flags = SECTION_CODE.
904 * config/darwin.c (darwin_asm_named_section): Modify to use
905 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
906 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
907 specifically for the i386.
908 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
909 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
910 text string to something more informative.
911 (NORMAL_TEXT_SECTION_NAME): Add new definition.
912 (SECTION_FORMAT_STRING): Add new definition.
913 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
914 '!in_unlikely_text_section' as an 'and' condition to an if statement
915 that was already checking '!in_text_section'.
916 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
917 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
918 sure these are properly defined for linux on ppc.
919 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
921 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
923 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
924 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
927 2004-04-08 Roger Sayle <roger@eyesopen.com>
929 * function.c (gen_mem_addressof): When changing the RTX from a REG
930 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
932 2004-04-08 Roger Sayle <roger@eyesopen.com>
935 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
936 truncxfdf2_noop): Provide dummy "fmov" implementations.
938 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
940 * gcc.c (default_compilers): Add missing initializers.
942 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
943 Return 1 if file was successfully mapped.
945 2004-04-08 Geoffrey Keating <geoffk@apple.com>
950 * doc/invoke.texi (Precompiled Headers): Suggest -o
951 to put an output file in a particular place. Be more detailed
952 about which options affect PCH validity and which options
954 * c-pch.c (pch_matching): New.
956 (struct c_pch_validity): New field 'match'.
957 (pch_init): Handle pch_matching.
958 (c_common_valid_pch): Check pch_matching.
960 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
962 2004-04-08 Mark Mitchell <mark@codesourcery.com>
964 * doc/invoke.texi (Precompiled Headers): Warn about known
967 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
970 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
971 to 1 if ASM_OUTPUT_DEF is defined.
972 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
973 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
974 Set to non-zero iff not a one_only decl.
976 2004-04-08 Paul Brook <paul@codesourcery.com>
978 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
980 2004-04-08 Paul Brook <paul@codesourcery.com>
982 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
983 PROMOTE_FOR_CALL_ONLY.
984 * config/arm/arm-protos.h (arm_function_value): Declare.
985 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
986 (TARGET_PROMOTE_PROTOTYPES): Return false.
987 (arm_function_value): New function.
988 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
989 (FUNCTION_VALUE): Call arm_function_value.
990 * config/cris/cris.h (PROMOTE_MODE): Rename ...
991 (PROMOTE_FUNCTION_MODE): ... to this.
992 (PROMOTE_FOR_CALL_ONLY): Remove.
993 * config/mmix/mmix.h: Likewise.
994 * config/s390/s390.h: Likewise.
995 * config/sparc/sparc.h: Likewise.
996 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
997 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
998 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
999 (PROMOTE_FOR_CALL_ONLY): Remove.
1001 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1004 * ada/5rosinte.adb: Remove fake mprotect() body.
1005 * ada/5rosinte.ads: Add SA_SIGINFO.
1006 * ada/5rtpopsp.adb: Rewrite to use new interface.
1007 * ada/init.c: Reorder so the simple single OS conditional __rtems__
1008 is tested before more complex ones which mix UNIX and embedded
1009 systems in the conditional.
1011 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1014 * ada/osint.adb (Find_Program_Name): Rework to properly handle
1015 filenames which end in .exe or have versioning suffixes like VMS.
1017 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
1020 * config/darwin.c (darwin_encode_section_info): When the decl has
1021 a DECL_INITIAL, it is only defined also when it is not a common.
1023 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1025 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1026 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1028 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
1030 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1031 global register variables.
1033 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
1035 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1036 rpc_xdr_lvalue_cast_b): New fixes.
1037 * fixinc/fixincl.x: Regenerate.
1038 * fixinc/tests/base/rpc/xdr.h: Add new tests.
1040 2004-04-07 David Edelsohn <edelsohn@gnu.org>
1042 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1043 to power4 and power5 entries.
1045 2004-04-06 Geoffrey Keating <geoffk@apple.com>
1047 * c-common.h (pending_lang_change): Mark for PCH.
1049 2004-04-07 Caroline Tice <ctice@apple.com>
1051 * gcc.c (main): Move 'break' in main loops (on an error)
1052 to wait until error processing has occurred.
1054 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
1056 * config.gcc: Stop changing enable_threads midstream.
1057 Replace uses of enable_threads_flag with enable_threads.
1058 * configure.ac: Replace uses of enable_threads_flag with
1059 enable_threads. Improve autoconf quotation in one place.
1060 * configure: Regenerate.
1062 2004-04-06 Uros Bizjak <uros@kss-loka.si>
1064 * builtins.c: Implement support for sincos function.
1065 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1067 (expand_builtin_mathfn_3): New function.
1068 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1069 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1070 flag_unsafe_math_optimization is set.
1072 * optabs.h (enum optab_index): Add new OTI_sincos.
1073 (sincos_optab): Define corresponding macro.
1075 * optabs.c (init_optabs): Initialize sincos_optab.
1076 (expand_twoval_unop): New function.
1078 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1081 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1082 and UNSPEC_SINCOS_SIN.
1084 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1085 sincosxf3): New patterns to implement sincos, sincosf and sincosl
1086 built-ins as inline x87 intrinsics. Define splits for
1087 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1088 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1090 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1091 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1093 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1096 2004-04-06 Devang Patel <dpatel@apple.com>
1099 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1101 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1103 * doc/install.texi: Update HP-UX 11 installation procedure.
1105 2004-04-06 Paul Brook <paul@codesourcery.com>
1107 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1109 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
1111 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1112 when the TLS address is generated by a function call.
1113 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1114 (tls_local_dynamic): Likewise.
1116 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
1118 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1121 2004-04-05 Caroline Tice <ctice@apple.com>
1123 * gcc.c (combine_flag): New global variable, for new driver option.
1124 (struct compiler): Add two new fields, to be used when
1125 combining multiple input files in a single pass (IMA).
1126 (default_compilers): Add values for the new fields to all
1127 compiler entries. Modify the "@c" compiler entry for doing IMA
1128 properly with "-save-temps" and the "combine" flag.
1129 (option_map): Add new driver option, "--combine", to tell driver
1130 to pass multiple input files to compiler at one time.
1131 (have_o_argbuf_index): New global variable.
1132 (store_arg): Modify to assign value to have_o_argbuf_index.
1133 (struct infile): Add three new fields, to help with IMA.
1134 (display_help): Add help for new "combine" option.
1135 (process_command): Remove local variable have_o; add code to check
1136 for new "combine" option; remove assignment to combine_inputs.
1137 (do_spec_1): Modify to deal with IMA better.
1138 (main): Make variable 'lang_n_infiles' local to entire function
1139 rather than to a single block. Use flag combine_flag to
1140 determine whether to do IMA or not; Modify loop initializing
1141 infiles to deal properly with linker files.
1142 Add code for doing preprocessing in presence of
1143 IMA with "-save-temps" flag. Modify "main" loop to handle
1144 multiple input files, in multiple languages, with or without
1145 preprocessing, gracefully.
1146 * toplev.c (set_src_pwd): Modify to not complain if attempting to
1147 re-set it to same directory it's previously been set to (avoid
1148 irritating, meaningless warning messages when doing IMA with
1150 * doc/invoke.texi: Add "-combine" to list of Overall Options;
1151 remove documentation about IMA that is no longer accurate; Add
1152 documentation explaining what "-combine" does.
1153 * ada/lang-specs.h: Add initialization values for new fields in
1155 * cp/lang-specs.h: Likewise.
1156 * f/lang-specs.h: Likewise.
1157 * java/lang-specs.h: Likewise.
1158 * objc/lang-specs.h: Likewise.
1159 * treelang/lang-specs.h: Likewise.
1161 2004-04-05 David Edelsohn
1163 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1166 2004-04-05 Jakub Jelinek <jakub@redhat.com>
1167 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1169 PR optimization/13424 (hppa), bootstrap/14462, c/14828
1170 * pa.md: Use replace_equiv_address to retain the attributes of the
1171 memory operands used in the split and peephole2 patterns for optimizing
1172 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1174 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1176 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1177 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1178 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1179 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1181 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1183 * print-tree.c (print_node): Properly handle side-effects, readonly,
1185 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1186 and TREE_CONSTANT if not a type.
1187 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1188 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1189 (NON_TYPE_CHECK): New macro.
1190 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1192 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
1194 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1195 to DWARF2_DEBUG unconditionally.
1196 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1198 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
1199 Nathanael Nerode <neroden@gcc.gnu.org>
1202 * config.host: Set the shell variable host_can_use_collect2.
1203 Set it to yes by default, and to no for alpha*-dec-*vms*,
1204 i[34567]86-*-mingw32*, and powerpc-*-beos*.
1205 * configure.ac: Set and substitute the shell variable collect2.
1206 Give an error if use_collect2 is yes and host_can_use_collect2 is
1208 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
1209 uses. Initialize to @collect2@.
1210 (STAGESTUFF): Remove $(USE_COLLECT2).
1211 * config/alpha/x-vms (USE_COLLECT2): Don't set.
1212 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1213 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1214 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1215 * configure: Regenerate.
1217 2004-04-04 Roger Sayle <roger@eyesopen.com>
1219 * simplify-rtx.c (simplify_binary_operation): Constant fold
1220 DIV, MOD, UDIV and UMOD using div_and_round_double.
1222 2004-04-04 Mark Mitchell <mark@codesourcery.com>
1225 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1228 2004-04-04 Mark Mitchell <mark@codesourcery.com>
1230 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1233 2004-04-04 Roger Sayle <roger@eyesopen.com>
1235 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1236 updating the REG_EQUAL note on an insn's libcall_insn.
1238 2004-04-04 Roger Sayle <roger@eyesopen.com>
1240 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1242 2004-04-03 Roger Sayle <roger@eyesopen.com>
1244 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1245 with reorder_operands_p.
1247 2004-04-03 Jan Hubicka <jh@suse.cz>
1249 * md.texi (vec_set, vec_extract, vec_init): Document.
1251 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
1253 * opts.c (decode_options): Do function inlining with very small
1254 max-inline-insns-* parameters when optimizing for size.
1256 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
1258 * config/i386/i386.h (TARGET_NOCONA): New macro.
1259 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1260 (processor_type): Add PROCESSOR_NOCONA.
1262 * config/i386/i386.md (cpu): Add nocona to the attribute values.
1264 * config/i386/i386.c (nocona_cost): New variable.
1265 (m_NOCONA): New macro.
1266 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1267 x86_branch_hints, x86_use_sahf, x86_single_stringop,
1268 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1269 x86_integer_DFmode_moves, x86_partial_reg_dependency,
1270 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1271 x86_decompose_lea, x86_arch_always_fancy_math_387,
1272 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1273 x86_ext_80387_constants, x86_four_jump_limit):
1274 (override_options): Add nocona_cost to processor_target_table.
1275 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1276 (incdec_operand): Prevent inc/dec generation for Nocona too.
1277 (ix86_issue_rate): Add PROCESSOR_NOCONA.
1279 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
1281 * rtlanal.c (find_reg_note): Manually
1284 2004-04-01 Mark Mitchell <mark@codesourcery.com>
1286 * genemit.c (gen_split): Change prototype of generated code.
1287 * genrecog.c (write_action): Adjust prototype for and calls to
1289 * gensupport.c (struct queue_elem): Add split field.
1290 (queue_pattern): Return a value. Clear the split field.
1291 (process_rtx): Maintain an association between an insn and the
1292 split generated from it for a define_insn_and_split.
1293 (process_one_cond_exec): Generate a new split for a
1294 define_insn_and_split.
1295 * config/arm/arm-protos.h (arm_split_constant): Add insn
1297 (emit_constant_insn): New function.
1298 (arm_gen_constant): Use it.
1299 * config/arm/arm.md: Adjust calls to arm_split_constant.
1301 2004-04-02 Jan Hubicka <jh@suse.cz>
1303 * cgraph.c: Add overall comment.
1304 (cgraph_inline_hash): New global variable.
1305 (cgraph_create_node): Break out from ...
1306 (cgraph_node): ... here.
1307 (cgraph_edge): New function.
1308 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1309 (cgraph_remove_edge): Accept edge, intead of source and destination.
1310 (cgraph_redirect_edge_callee): New.
1311 (cgraph_remove_node): Update all new datastructures.
1312 (cgraph_record_call, cgraph_remove_call): Kill.
1313 (dump_cgraph_node): Break out from ... ; dump new datastructures.
1314 (dump_cgraph): ... here.
1315 (cgraph_function_possibly_inlined_p): Use new hashtable.
1316 (cgraph_clone_edge, cgraph_clone_node): New.
1317 * cgraph.h: Include hashtab.h
1318 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1319 fields, add inlined_to pointer.
1320 (cgraph_node): Add pointer to next_clone.
1321 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1322 (cgraph_remove_call, cgraph_record_call): Kill.
1323 (cgraph_inline_hash): Declare.
1324 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1325 cgraph_redirect_edge_callee): Declare.
1326 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1327 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1328 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1329 * cgraphunit.c: Add overall comment.
1330 (cgraph_optimize_function): Kill.
1331 (cgraph_assemble_pending_functions): Do not assemble inline clones.
1332 (cgraph_finalize_function): Update call of cgraph_remove_node
1333 (record_call_1): Record call sites.
1334 (cgraph_create_edges): Accept node instead of decl argument.
1335 (error_found): New static variable.
1336 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1337 (cgraph_analyze_function): Update for new datastructures.
1338 (cgraph_finalize_compilation_unit): Plug memory leak.
1339 (cgraph_optimize_function): Kill.
1340 (cgraph_expand_function): Do not use cgraph_optimize_function.
1341 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1342 cgraph_inlined_callees): Kill.
1343 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1345 (estimate_growth): Simplify.
1346 (cgraph_clone_inlined_nodes): New function.
1347 (cgraph_mark_inline_edge): Re-implement.
1348 (cgraph_mark_inline): Likewise.
1349 (cgraph_check_inline_limits): Simplify.
1350 (cgraph_recursive_inlining_p): New.
1351 (update_callee_keys): Break out from ...
1352 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1353 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1355 (cgraph_expand_all_functions): Remove inline clones from the ordered
1357 (cgraph_preserve_function_body_p): New predicate.
1358 (cgraph_optimize): Verify cgraph.
1359 * function.h (struct function): Add fields saved_tree/saved_args.
1360 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1361 * toplev.c (rest_of_compilation): Do not free cfun.
1362 * tree-inline.c: Include function.h
1363 (struct inline_data): Add saving_p field; replace decl/current_decl by
1365 (insert_decl_map): New function.
1366 (copy_body_r): Handle saving; update cgraph datastructure.
1367 (copy_body): Handle recursive inlining.
1368 (initialize_inlined_parameters): Likewise.
1369 (expand_call_inline): Propagate node attributes; update cgraph.
1370 (optimize_inline_calls): Verify that datastructure still match.
1371 (save_body): New function.
1372 * tree-inline.h (save_body): New.
1373 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1374 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1375 * langhooks.c (lang_hooks): Add update_decl_after_saving.
1377 2004-04-01 Serge Belyshev <1319@bot.ru>
1380 * config/i386/i386.md: fix source operand constraints in
1381 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1383 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
1385 * fold-const.c (folda): Preserve types of comparisons.
1387 2004-04-01 Richard Henderson <rth@redhat.com>
1389 * toplev.c (backend_init): Move init_optimization_passes call ...
1390 (lang_dependent_init): ... here.
1392 2004-04-01 Alan Modra <amodra@bigpond.net.au>
1393 Jakub Jelinek <jakub@redhat.com>
1395 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1396 -lgcc --as-needed -lgcc_s --no-as-needed by default.
1397 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1398 * configure: Rebuilt.
1399 * config.in: Rebuilt.
1400 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1401 (stage2-start, stage3-start, stage4-start): Likewise.
1402 (stageprofile-start, stagefeedback-start): Likewise.
1404 2004-04-01 Jakub Jelinek <jakub@redhat.com>
1406 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1407 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1408 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1409 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1410 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1411 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1412 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1413 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1414 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1415 * config/sparc/t-linux: Removed.
1417 2004-04-01 Jakub Jelinek <jakub@redhat.com>
1420 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1421 "bitfld++ == const" to "++bitfld == const + incr" transformations.
1423 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1425 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1426 * stor-layout.c (layout_decl): Likewise.
1427 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1428 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1429 * print-tree.c (print_node): Handle various used of unsigned_flag.
1430 * tree.def (BIT_FIELD_REF): Update comment.
1431 * tree.h (TREE_UNSIGNED): Deleted.
1432 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1434 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1436 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1437 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1438 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1439 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1440 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1441 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1442 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1443 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1444 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1445 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1446 REAL_TYPE, not INTEGER_TYPE.
1447 (layout_type, case VECTOR_TYPE): Simplify code.
1448 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1449 * tree.h: Update comments.
1450 (STRIP_NOPS): Use TYPE_UNSIGNED.
1451 (TYPE_UNSIGNED): New macro.
1452 (TYPE_TRAP_SIGNED): Remove now redundant check.
1453 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1455 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1457 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1459 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
1461 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1462 Add darwin-fpsave.asm, darwin-vecsave.asm,
1463 and darwin-world.asm.
1464 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1465 as the asm files contain altivec instructions.
1466 * config/rs6000/darwin-fpsave.asm: New file.
1467 * config/rs6000/darwin-vecsave.asm: New file.
1468 * config/rs6000/darwin-world.asm: New file.
1470 2004-03-31 Zack Weinberg <zack@codesourcery.com>
1472 * gengtype-yacc.y (option, stringseq): Add missing
1473 terminating semicolon.
1475 2004-03-30 David Edelsohn <edelsohn@gnu.org>
1477 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1478 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1479 tls_dtprel_ha_32, tls_dtprel_ha_64,
1480 tls_dtprel_lo_32, tls_dtprel_lo_64,
1481 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1482 tls_tprel_ha_32, tls_tprel_ha_64,
1483 tls_tprel_lo_32, tls_tprel_lo_64,
1484 tls_got_tprel_32, tls_got_tprel_64,
1485 tls_tls_32, tls_tls_64): Replace register_operand with
1488 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
1490 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1491 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1492 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1493 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1494 *ctrdi_internal6): Replace register_operand with
1495 nonimmediate_operand.
1497 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
1499 * fold-const.c (fold): Reassociate multiply expression
1500 with an adjacent non-multiply expression to use
1501 architecture's multiply-add instruction.
1503 2004-03-30 Zack Weinberg <zack@codesourcery.com>
1505 * gengtype.c (create_option): New function.
1506 * gengtype.h: Prototype it.
1507 * gengtype-yacc.y (stringseq): New rule.
1508 (option): Use create_option. Add new bare ID production. Use
1509 stringseq, not STRING directly.
1511 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1512 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1513 * varray.h, config/alpha/alpha.c:
1514 Use new shorter form of GTY markers.
1516 * doc/gty.texi: Rewrite.
1518 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
1520 * config/darwin.c (machopic_function_base_name):
1521 Remove current_name and getting the name of the
1524 2004-03-30 Nick Clifton <nickc@redhat.com>
1526 * config/arm/arm.md (thumb_jump): Reduce the backward branch
1527 range, and increase the forward branch range, to allow for
1528 the fact that the PC will be off by 4.
1530 2004-03-30 Alan Modra <amodra@bigpond.net.au>
1532 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1534 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
1536 * config/rs6000/rs6000.c (output_vec_const_move):
1537 Find all cases of EASY_VECTOR_15_ADD_SELF.
1538 (easy_vector_constant_add_self): Accept
1539 all vector constant loadable by vsplt* and vadd*.
1540 (easy_vector_same): Use easy_vector_splat_const.
1541 (easy_vector_const): Use easy_vector_splat_const.
1542 (easy_vector_splat_const): New function.
1543 (gen_easy_vector_constant_add_self): New function.
1545 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1548 * config/rs6000/altivec.md (movv4si splitter): Change to
1549 emit move insn with halfed vector constant.
1550 (*movv8hi splitter): Likewise.
1551 (*movv16qi splitter): Likewise.
1553 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
1556 * config/rs6000/rs6000.c (rs6000_legitimate_address):
1557 Allow any offset to argument pointer in no-strict case.
1559 2004-03-30 Jan Hubicka <jh@suse.cz>
1561 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1562 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1563 dump file in non-unit-at-a-time mode.
1565 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
1567 * config/cris/cris.h: Correct #ifdef to test for
1568 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1569 HAVE_AS_MUL_BUG_ABORT_OPTION.
1571 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1573 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1574 the address inside the old RTL.
1576 2004-03-28 Zack Weinberg <zack@codesourcery.com>
1578 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1579 (struct c_binding, struct c_scope): Add chain_next
1580 attributes to GTY markers.
1581 (struct lang_identifier, struct lang_tree_node): Define
1583 * c-tree.h: ... not here. No longer need to declare struct
1584 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1585 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1586 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1589 * c-decl.c (get_parm_info): If error_mark_node is encountered
1590 in the bindings chain, unbind and discard it; don't abort.
1592 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
1593 Dorit Naishlos <dorit@il.ibm.com>
1595 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1596 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1598 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
1600 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1602 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1603 (m68hc11_attribute_table): New attribute "page0" to mark a global
1604 variable as being allocated from within page0 section.
1605 (m68hc11_encode_label): New function.
1606 (m68hc11_strip_name_encoding): New function.
1607 (m68hc11_page0_symbol_p): New function.
1608 (m68hc11_indirect_p): Accept global variables marked in page0.
1609 (m68hc11_encode_section_info): Lookup "page0" attribute.
1611 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1612 represents access to page0 variables.
1614 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1615 ("*logicalsi3_silshl16_zext"): Likewise.
1616 ("*ashldi3_const32"): Likewise.
1617 (peephole2 ashift): Likewise.
1619 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
1621 * c-tree.h (C_DECL_REGISTER): New.
1622 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1623 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1624 (build_array_ref, c_mark_addressable): Set and use it.
1625 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1626 Allow structures with volatile fields to be declared register.
1627 Don't check TREE_ADDRESSABLE before warning about taking address
1629 * c-decl.c (finish_decl): Don't allow structures with volatile
1630 fields to be placed in named register.
1631 * doc/trouble.texi: Remove reference to structures with volatile
1632 fields in registers.
1634 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
1636 * function.c (thread_prologue_and_epilogue): Move
1637 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1638 before the epilogue.
1640 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
1642 * expr.c (store_constructor): Use gen_int_mode to correctly
1643 sign-extend CONST_INT value.
1645 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1647 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1648 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
1649 * doc/extend.texi: Likewise.
1651 2004-03-26 Diego Novillo <dnovillo@redhat.com>
1653 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1654 with TYPE_ORIG_SIZE_TYPE.
1656 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
1659 * c-typeck.c (build_binary_op): Do not allow comparisons of
1662 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
1664 * config.gcc: Remove sparc-tti-*.
1665 * config/sparc/pbd.h: Delete.
1667 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1668 * config/sparc/aout.h: Likewise.
1670 * config/sparc/sparc.h: Remove if 0'd code.
1671 * config/sparc/sparc.md (call): Remove if 0'd code.
1672 (call_value): Likewise.
1673 (nonlocal_goto): Likewise.
1674 (unimp_insn): Delete.
1676 2004-03-25 Roger Sayle <roger@eyesopen.com>
1678 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1679 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1681 2004-03-25 Richard Henderson <rth@redhat.com>
1684 * c-typeck.c (pop_init_level): Emit pending init elements earlier
1687 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1689 * builtins.c (fold_builtin): Fix error in last change.
1691 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
1693 * config/mips/mips.h: Formatting fix.
1695 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1697 * builtins.def: Add ctype builtins.
1698 * doc/extend.texi: Likewise.
1700 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1702 * builtins.c (fold_builtin): Add new builtin optimizations for
1704 * fold-const.c (fold): Likewise.
1706 2004-03-25 David Edelsohn <edelsohn@gnu.org>
1708 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1709 (rs6000_sched_groups): New variable.
1710 (processor_target_table): Add power5.
1711 (rs6000_override_options): Set rs6000_sched_insert_nops,
1712 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1713 from rs6000_sched_groups.
1714 (output_cbranch): Use rs6000_always_hint.
1715 (rs6000_variable_issue): Use rs6000_sched_groups.
1716 (rs6000_adjust_cost): Add CPU_POWER5.
1717 (is_microcoded_insn): Use rs6000_sched_groups.
1718 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1719 Return 2 for POWER5 cracked instructions.
1720 (is_cracked_insn): Use rs6000_sched_groups.
1721 (is_branch_slot_insn): Use rs6000_sched_groups.
1722 (rs6000_issue_rate): Add CPU_POWER5.
1723 (rs6000_sched_finish): Use rs6000_sched_groups.
1724 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1725 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1726 (DEFAULT_SCHED_COSTLY_DEP): Delete.
1727 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1728 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1729 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1730 * config/rs6000/power5.md: New file.
1731 * doc/invoke.texi: Add power5 option.
1733 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1735 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1736 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1737 * doc/invoke.texi: Fix a typo.
1739 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1741 PR optimization/9707.
1742 * stmt.c (emit_case_nodes): Emit equality comparisons instead
1743 of recursing if both children are single-valued cases with no
1746 2004-03-25 Paul Brook <paul@codesourcery.com>
1748 * config/arm/arm.c (vfp_print_multi): Remove.
1749 (arm_output_fldmx): New function.
1750 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1751 (arm_expand_prologue): Update to match.
1752 (arm_get_vfp_saved_size): New Function.
1753 (arm_get_frame_offsets): Use it.
1754 (arm_output_epilogue): Use new functions.
1756 2004-03-24 Richard Henderson <rth@redhat.com>
1758 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1759 (reg_known_value, reg_known_value_size): Likewise; make static.
1760 (reg_known_equiv_p): Make static.
1761 (clear_reg_alias_info): Update for new indexing.
1762 (get_reg_known_value, set_reg_known_value): New.
1763 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1764 (canon_rtx): Use them.
1765 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
1766 Don't play queer offsetting games with reg_known_value and
1768 (end_alias_analysis): Free reg_known_value with gc.
1769 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1770 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1771 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1774 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
1776 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1777 config/i386/mmintrin.h: Update copyright.
1779 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1781 * configure.ac: Add --enable-werror-always (for top level bootstrap
1783 * configure: Regenerate.
1785 2004-03-24 Ziemowit Laski <zlaski@apple.com>
1787 * objc/objc-act.c (objc_comptypes): Treat comparisons
1788 between 'Class' and '<class> *' as explicitly invalid.
1790 2004-03-24 David Edelsohn <edelsohn@gnu.org>
1792 * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1793 (-fprofile-values): Add enabled with profile-{generate,use}.
1795 (-ftracer): Add enabled with profile-use.
1796 (-funit-at-a-time): Add enabled at -O2,-O3.
1797 (-funroll-loops): Add enabled with profile-use.
1798 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
1799 (max-gcse-passes): Mention default.
1800 (max-cse-path-length): Mention default.
1802 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1804 * Makefile.in (STRICT2_WARN): Reorder.
1805 * configure.ac: Check for -Wold-style-definition, and use it
1806 in strict1_warn if it's available.
1807 * configure: Regnerate.
1809 2004-03-24 Paul Brook <paul@nowt.org>
1811 * config.gcc <arm>: Add --with-abi=
1812 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1813 thumb_far_jump_used): Remove prototypes.
1814 (arm_needs_doubleword_align): Add prototype.
1815 (thumb_compute_initial_elimination_offset): Ditto.
1816 * config/arm/arm.c (arm_get_frame_offsets): New function.
1817 (use_return_insn, output_return_instruction, arm_output_epilogue,
1818 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1819 arm_expand_prologue, thumb_expand_epilogue): Use it.
1820 (arm_abi, target_abi_name, all_arm_abis): New variables.
1821 (arm_override_options): Set them. Set structure padding for AAPCS.
1822 (arm_return_in_memory): Update ABI check.
1823 (arm_init_cumulative_args): Initialize can_split.
1824 (arm_needs_doubleword_align): New function.
1825 (arm_function_arg): Don't split args after pushing to stack. Handle
1826 doubleword/even reg alignment.
1827 (arm_va_arg): Handle all doubleword aligned args.
1828 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1830 (arm_compute_save_reg0_reg12_mask): Fix comment.
1831 (thumb_get_frame_size, thumb_get_frame_size): Remove.
1832 (thumb_jump_far_used_p): Remove superfluous argument. Return save
1833 value for alignment.
1834 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1836 (thumb_compute_initial_elimination_offset): New function.
1837 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
1838 unneccessary rounding.
1839 * config/arm/arm.h (target_abi_name): Declare.
1840 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1841 arm_abi_type, ARM_DEFAULT_ABI): Define.
1842 (ARM_FLAG_ATPCS): Remove.
1843 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1844 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1845 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1846 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1847 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1848 Contitionalize on ABI, not CPU.
1849 (struct arm_stack_offsets): Define.
1850 (struct machine_function): Add stack_offsets. Remove frame_size.
1851 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1853 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1854 doubleword alignment.
1855 (THUMB_INITIAL_ELIMINATION_OFFSET,
1856 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1857 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1858 * config/arm/arm.md (align_8): Enable for all targets.
1859 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1860 (ARM_DEFAULT_ABI): Define.
1861 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1862 -mstructure-size-boundary.
1864 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1866 * configure.ac: Check for -Wno-variadic-macros; don't use
1867 -pedantic (in stage 1 or a simple 'make all') unless it's available,
1868 and if it's available, use it. Also, clean up check for
1870 * configure: Regenerate.
1872 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
1874 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1875 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1876 (MULTILIB_DEFAULTS): Use it.
1877 (MIPS_CPU_STRING_DEFAULT): Remove.
1878 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1879 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
1880 EABI64 -mlong32 the default ABI. Enforce the default architecture.
1881 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1882 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1883 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1884 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
1887 2004-03-24 DJ Delorie <dj@redhat.com>
1888 Richard Sandiford <rsandifo@redhat.com>
1890 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1891 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1892 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1893 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1894 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1895 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1896 if TARGET_FIX_VR4122.
1897 * config/mips/mips.md (define_attr length): Account for nops inserted
1898 after macc and dmult when using -mfix-vr4122-bugs.
1899 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1900 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1901 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
1902 * config/mips/vr4122-div.S: New file.
1903 * doc/invoke.texi: Document -mfix-vr4122-bugs.
1905 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
1907 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1908 (TARGET_MIPS4130): New macro.
1909 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1910 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1911 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1912 with PROCESSOR_R4130.
1913 * config/mips/mips.md (define_attr cpu): Add r4130.
1914 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1916 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
1917 Richard Sandiford <rsandifo@redhat.com>
1919 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1921 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
1923 PR preprocessor/14438
1924 * cpplib.c (do_pragma): Remove line_change call after pragma
1927 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
1929 * doc/extend.texi (ARM Built-in Functions): Replace with correct
1932 2004-03-23 Roger Sayle <roger@eyesopen.com>
1934 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1935 if flag_unsafe_math_optimizations.
1936 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1937 and TARGET_80387 expand using truncdfsf2_noop pattern.
1938 (truncxfsf2): Likewise using truncxfsf2_noop.
1939 (truncxfdf2): Likewise using truncxfdf2_noop.
1940 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1942 2004-03-23 Ziemowit Laski <zlaski@apple.com>
1944 * hooks.c (hook_constcharptr_tree_null): New hook.
1945 * hooks.h (hook_constcharptr_tree_null): New prototype.
1946 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1947 * target.h (mangle_fundamental_type): New target hook.
1948 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1949 target hook at rs6000_mangle_fundamental_type.
1950 (rs6000_mangle_fundamental_type): New function.
1951 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1953 2004-03-23 Zack Weinberg <zack@codesourcery.com>
1955 PR 12267, 12391, 12560, 13129, 14114, 14133
1956 * c-tree.h: Forward declare struct c_binding. Declare
1957 c_override_bindings_to_false. Update prototypes.
1958 (struct lang_identifier): Update comments. Change fields to be
1960 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1961 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1962 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1963 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1964 * c-common.h: Update prototypes.
1965 * c-decl.c (struct c_scope): Update commentary. Remove names,
1966 names_last, parms, parms_last, tags, and shadowed fields. Add
1967 bindings and depth fields.
1968 (scope_freelist): Move to more appropriate location.
1969 (c_print_identifier): Update for changes to struct lang_identifier.
1970 (objc_mark_locals_volatile): Update for new bindings structures.
1971 (global_bindings_p): Honor c_override_global_bindings_to_false.
1972 (pushlevel): Rename to push_scope; take no arguments; use the
1973 scope_freelist; initialize scope->depth and check for overflow.
1974 (poplevel): Rename to pop_scope; totally rewritten for new bindings
1976 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1977 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
1978 Improve some commentary. Adjust handling of forward parm decls.
1979 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1980 Preserve C_DECL_IN_EXTERNAL_SCOPE.
1981 (warn_if_shadowing): Correct indentation. Improve diagnostics.
1982 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
1983 decls. Rewrite for new bindings structures. Improve commentary.
1984 Eliminate the copy_node call.
1985 (implicit_decl_warning): Use the "diag" idiom (as seen in
1986 locate_old_decl) to reduce code duplication; call locate_old_decl
1987 if appropriate. Relocate to remove need for forward declaration.
1988 (implicitly_declare): Adjust for new bindings structures. Kludge
1989 around Objective-C not-really-builtin functions.
1990 (undeclared_variable): Improve diagnostics. If current_function_decl
1991 is nonnull but current_function_scope is null, use current_scope.
1993 (lookup_tag): Adjust for new bindings structures. Kludge around
1994 Objective-C's tag declarations that wind up in the external scope.
1995 (lookup_name): Adjust for new bindings structures. Kludge around
1996 c-common.c's pseudo-typedefs that wind up in the external scope.
1997 (lookup_name_current_level): Rename lookup_name_in_scope; take a
1998 second argument indicating the scope to examine; rewrite for
1999 new bindings structures.
2000 (c_init_decl_processing): Adjust for renamed functions. Do not
2001 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2002 First scope pushed is the external scope, not the global scope.
2003 (builtin_function): Use bind, not pushdecl. Adjust other bits
2004 for new data structures. Keep track of builtins that should be
2005 made visible automatically.
2006 (start_decl): Adjust diagnostics. Remove unnecessary call to
2008 (grokparms): Return 0 if arg_types is error_mark_node.
2009 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2010 reversed sense. Rewrite for new bindings structures. Do not
2011 leave any decls in the scope, to prevent pop_scope from doing
2012 contradictory things with them.
2013 (finish_struct, finish_enum): Remove redundant diagnostics.
2014 (build_enumerator): Don't cascade diagnostics for error_mark_node.
2015 Mark location where -pedantic changes the meaning of the program.
2016 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2017 parameter decls into the function's scope structure using bind.
2018 Warn here about function definitions in the wrong style.
2020 (store_parm_decls): Correct the determination of whether a
2021 function was defined with a prototype.
2022 (c_write_global_declarations): Operate on all file decls and on
2023 the external scope. Split body of the loop to...
2024 (c_write_global_declarations_1): ... this new function, to avoid
2026 (truly_local_externals, first_builtin_decl, last_builtin_decl)
2027 (make_scope, pop_scope, in_parm_level_p, set_block)
2028 (any_external_decl, record_external_decl, bind_label, getdecls)
2029 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2030 (c_reset_state): Delete.
2031 (visible_builtins, c_override_global_bindings_to_false)
2032 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2033 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2034 (external_scope, binding_freelist, bind, free_binding_and_advance)
2035 (push_file_scope, pop_file_scope): New.
2036 (pushtag, pushdecl_top_level, lookup_label, declare_label)
2037 (define_label, c_make_fname_decl, finish_decl)
2038 (mark_forward_parm_decls, build_compound_literal)
2039 (grokdeclarator, start_function, check_for_loop_decls)
2040 (identifier_global_value, record_builtin_type): Minor adjustments
2041 for new bindings structures. Improve diagnostics and commentary.
2042 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2043 pushlevel/poplevel respectively.
2044 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2045 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2046 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
2047 correct loop over multiple translation units; call fatal_error if
2048 requested to compile more than one file at once. (This disables
2049 IMA temporarily - an up-front error being preferable to a crash.)
2050 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2051 (all actions): Adjust calls to pushlevel/poplevel.
2052 (parsing_iso_function_signature): Delete.
2053 (extdef_1): Fold into extdef.
2054 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
2055 warn here about function definitions in the wrong style.
2056 (after_tyle_declarator, parm_declarator_starttypename)
2057 (parm_declarator_nostarttypename, notype_declarator): Remove
2058 commented-out productions.
2059 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2060 an empty TREE_LIST node. Adjust calls to get_parm_info.
2061 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2062 to suppress -Wold-style-definition after this error.
2063 (c_parse_file): Don't clear the binding stack or call
2064 finish_fname_decls here. Correct comment.
2065 * c-typeck.c (same_translation_unit_p): Export.
2066 (common_type): Use c_override_global_bindings_to_false, not
2067 pushlevel/poplevel/declare_parm_level.
2068 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2069 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2070 and LANG_HOOKS_GETDECLS with do-nothing stubs.
2071 * objc/objc-lang.c: Likewise.
2072 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2074 (OBJC_VOID_AT_END): Delete; replace all uses
2075 with void_list_node.
2076 (generate_forward_declaration_to_string_table): Delete.
2077 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2079 * coverage.c (create_coverage): Don't pushdecl anything.
2080 * langhooks.c (lhd_clear_binding_stack): Call
2081 lang_hooks.decls.poplevel, not poplevel.
2082 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2083 circular list rather than going into an infinite loop.
2085 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
2087 * optabs.c (expand_binop): When synthesizing double word rotates
2088 from single word shifts, use a new register target if the provided
2089 target is not a REG already.
2091 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2093 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2094 * c-common.c (handle_mode_attribute): Add extra arg to
2095 build_pointer_type_for_mode and build_reference_type_for_mode.
2096 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2098 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2099 Chain pointers via TYPE_NEXT_PTR_TO.
2100 (build_reference_type_for_mode): Similarly.
2101 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2102 and build_reference_type_for_mode.
2103 (tree_check4_failed): New function.
2104 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2105 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2106 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2109 2004-03-23 Roger Sayle <roger@eyesopen.com>
2111 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2112 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
2113 when both A and B are nonnegative.
2114 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2117 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2119 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2120 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2122 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2124 PR optimization/14669
2125 * fold-const.c (fold): Only unwiden integer comparisons for equality
2126 and inequality operators, or when the signedness doesn't change.
2128 2004-03-23 Jakub Jelinek <jakub@redhat.com>
2130 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2131 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2132 * config/sparc/t-linux: New file.
2134 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
2136 * gcse.c (can_assign_to_reg_p): New function, split out from...
2137 (want_to_gcse_p): ...here.
2138 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2141 2004-03-22 Diego Novillo <dnovillo@redhat.com>
2143 * c-typeck.c (same_translation_unit_p): Fix pasto.
2145 2004-03-22 David Edelsohn <edelsohn@gnu.org>
2147 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2148 (PARAM_MAX_SCHED_REGION_INSNS): New.
2149 * sched-rgn.c: Include params.h
2150 (MAX_RGN_BLOCKS): Delete.
2151 (MAX_RGN_INSNS): Delete.
2152 (too_large): Return bool. Convert to PARAM_VALUE.
2153 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2154 * doc/invoke.texi (param): Document max-sched-region-blocks and
2155 max-sched-region-insns.
2157 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2159 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2162 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2164 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2167 2004-03-22 Jakub Jelinek <jakub@redhat.com>
2170 * c-decl.c (finish_struct): Change type of incorrect flexible array
2171 field into error_mark_node.
2173 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
2176 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2177 who are not local for Darwin PIC.
2179 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
2181 * regrename.c (regrename_optimize): Set regs_ever_live for all
2182 registers introduced as replacement.
2184 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2187 * expr.c (mark_queue): New function.
2188 (emit_insns_enqueued_after_mark): New function replacing
2189 emit_queue. Clear the body of emitted queued insns.
2190 (emit_queue): Call emit_insns_enqueued_after_mark.
2191 (store_expr): Mark the increment queue on entry. Emit
2192 only the incrementations queued when expanding the source.
2194 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
2196 * configure.ac: Allow --disable-coverage-flags (for the future benefit
2197 of top level bootstrap, and consistency). Reindent.
2198 * configure: Regenerate.
2200 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
2202 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2203 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2206 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
2209 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2212 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2214 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2215 to nonimmediate_operand.
2216 ("*doloop_di"): Likewise.
2218 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
2220 * real.h (struct real_value): Use the same type for all
2221 bitfields. Rename exp to uexp.
2222 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2223 Adjust all uses of exp...
2224 * builtins.c: ... here, ...
2225 * emit-rtl.c: ... here, and ...
2226 * real.c: ... and here.
2228 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
2230 * pretty-print.c (pp_base_maybe_space): New function.
2231 * pretty-print.h (pp_base_maybe_space): Declare.
2232 (pp_maybe_space): New macro.
2234 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2236 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2238 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2240 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2241 of using register multiplication cost.
2242 (expand_mult): Adapt choose_mult_variant call.
2243 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2244 of MODE; pass appropriate cost bound. Adjust result when
2245 performing signed multiplication by a negative constant.
2246 Don't use intermediate modes larger than word_mode.
2248 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2250 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2251 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2252 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2253 * explow.c (expr_size): Likewise.
2254 * expr.h (placeholder_list, find_placeholder): Deleted.
2255 * expr.c (store_constructor): Likewise.
2256 (get_inner_reference): Likewise. Also don't call find_placeholder.
2257 (placeholder_list, find_placeholder): Deleted.
2258 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2259 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2260 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2261 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2262 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2264 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2265 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2266 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2267 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2268 Clean up by using first_rtl_op.
2269 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2270 (substitute_placeholder_in_expr): New function.
2271 * tree.def (WITH_RECORD_EXPR): Deleted.
2272 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2273 (substitute_placeholder_in_expr): New.
2275 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
2277 * dojump.c (prefer_and_bit_test): Fix which part of
2278 the and_test is replaced.
2280 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
2282 * frontends.texi: Add missing line.
2284 2004-03-21 Zack Weinberg <zack@codesourcery.com>
2285 Chris Devers <cdevers@pobox.com>
2286 Joseph S. Myers <jsm@polyomino.org.uk>
2288 * doc/frontends.texi: Rewrite.
2289 * doc/gcc.texi: Update last modification date.
2291 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
2293 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2294 message before redirecting the edge.
2296 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2298 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2300 * explow.c (force_not_mem): Set REG_POINTER flag according to
2302 * rtl.h (MEM_POINTER): New macro.
2303 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2306 2004-03-20 Roger Sayle <roger@eyesopen.com>
2309 * cse.c (fold_rtx): Avoid substituting constants into unary
2310 conversion operations.
2312 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2314 * fold-const.c (fold): Replace "expr" with "t".
2316 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
2319 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2320 DECL_ORIGINAL_TYPE if there isn't one.
2322 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2324 * fold-const.c (fold): Replace "final_type" with "type".
2325 Remove variable "final_type".
2327 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2329 * fold-const.c (fold): Constify "type".
2330 Replace "TREE_TYPE (t)" with "type".
2332 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2334 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2335 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2336 via (*targetm.foo) () with targetm.foo ().
2338 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
2341 * doc/install.texi: Add info directory category and entry.
2343 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2345 * fold-const.c (fold): Replace "t" with "tem" where it is used
2346 as a temporary variable. Remove "orig_t" and all of its uses.
2348 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2350 * fold-const.c (fold): Remove variable "invert".
2351 Move the handling of relational expressions that can be folded
2353 (fold_relational_const): ... here.
2354 (tree_expr_nonzero_p): New.
2356 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
2359 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2362 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
2364 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2365 (GTFILES): Add $(srcdir)/dojump.h.
2366 (gt-dojump.h): New dependency.
2367 * dojump.c (and_reg, and_test, shift_test): New static variables.
2368 (prefer_and_bit_test): New function.
2369 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2371 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2373 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2374 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2375 reorg.c, tree.h: Fix comment typos.
2377 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2379 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2380 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2381 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2382 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2383 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2384 vmsdbgout.c: Replace calls via (*targetm.foo) () with
2387 2004-03-19 Ziemowit Laski <zlaski@apple.com>
2389 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2390 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2391 always_inline attribute.
2392 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2393 Treat expansion as completed even if literal argument is
2394 invalid (so that other expansions are not tried in vain).
2396 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2398 * loop-doloop.c (add_test): Replace GEN_INT (0) with
2401 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2403 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2405 (fold_abs_const): ... here.
2407 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2409 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2411 2004-03-19 Denis Chertykov <denisc@overta.ru>
2414 * config/avr/avr.md ("call_insn"): Handle explicit integer
2416 (call_value_insn): Likewise.
2418 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2420 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2422 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2424 * fold-const.c (negate_expr): Move the handling of constants
2426 (fold_negate_const): ... here.
2428 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2430 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2431 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2432 * tree.c (debug_no_type_hash): Deleted.
2433 (type_hash_canon): Abort if passed a variant.
2434 Check lang_hooks.types.hash_types.
2435 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2436 (build_array_type): Remove unnecessary allocation of pointer type.
2437 (build_complex_type): Properly qualify resulting type.
2439 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
2441 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2443 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
2445 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2446 (expand_mult): ...here.
2447 (extract_high_half): New, split out from expand_mult_highpart.
2448 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
2449 (expand_highpart): Evaluate the cost of a shift/add sequence,
2450 then see if any of the specialized optabs are cheaper.
2452 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
2454 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2456 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2458 * convert.c (convert_to_real): Add more math builtins.
2460 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2462 * convert.c (convert_to_real): Reformat using switch stmt.
2464 2004-03-18 Mark Mitchell <mark@codesourcery.com>
2466 * c-common.c (pointer_int_sum): Do not complain about using
2467 pointers to pointers-to-members.
2469 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
2471 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2472 have moved to the target hooks structure".
2474 2004-03-18 James E Wilson <wilson@specifixinc.com>
2476 * config/mips/mips.md (type): Split move into arith and fmove. Split
2477 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
2478 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2480 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2482 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2483 rm7_fp_quick): Likewise.
2484 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2485 rm9k_fquick): Likewise.
2486 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2488 (ir_sr70_icmp): Delete.
2490 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2492 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2493 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2494 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2495 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2496 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2497 Protect with proper check.
2498 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2499 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2500 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2501 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2502 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2503 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2505 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2507 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
2509 * gcse.c (eliminate_partially_redundant_loads): Reject change if
2510 dest is set between beginning and current insn.
2512 2004-03-18 Mark Mitchell <mark@codesourcery.com>
2514 * c-decl.c (grokdeclarator): Do not complain about redeclaring
2515 visible "static" identifiers "extern" in a local scope.
2516 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2517 post-increments/decrements.
2519 2004-03-18 Bob Wilson <bob.wilson@acm.org>
2521 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2522 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2523 (xtensa_va_start): Remove assignment to current_function_arg_words.
2525 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
2527 * alias.c (record_set): Detect the case where a register is assigned
2528 a new value that has the same base term as the old one.
2530 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2532 * doloop.c: Removed.
2533 * loop-doloop.c: New file.
2534 * Makefile.in (doloop.o): Remove.
2535 (loop-doloop.o): New.
2536 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2537 * cfgloopanal.c (get_loop_level): New function.
2538 * loop-iv.c (iv_number_of_iterations): Handle case when loop
2539 is leaved immediatelly.
2540 * loop.c (strength_reduce): Do not call doloop optimization.
2541 * loop.h (LOOP_BCT): Removed.
2542 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2543 (rest_of_handle_loop2): Call doloop_optimize_loops.
2544 (rest_of_compilation): Test for optimizations moved to
2545 rest_of_handle_loop2.
2547 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
2549 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2551 (rs6000_emit_prologue): Ditto.
2552 (rs6000_emit_epilogue): Ditto.
2553 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2554 macro for mixed mode.
2556 2004-03-18 Jan Hubicka <jh@suse.cz>
2558 * predict.c (propagate_freq): Compute correctly frequency of
2561 2004-03-17 Eric Christopher <echristo@redhat.com>
2563 * builtins.c (apply_args_size): Use reg_raw_mode.
2564 (apply_result_size): Ditto.
2566 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2569 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2571 2004-03-17 Jakub Jelinek <jakub@redhat.com>
2573 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2574 32-bit builds when defaulting to 32-bit.
2576 2004-03-17 Jan Hubicka <jh@suse.cz>
2578 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2581 2004-03-17 James E Wilson <wilson@specifixinc.com>
2583 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2584 (hazard_nop): Change type to nop.
2585 (type): Split arith into arith, shift, slt, clz. Delete darith.
2586 Fix all uses. Change arith to multi if more than one insn emitted.
2587 * config/mips/5400.md (ir_vr54_arith): Likewise.
2588 * config/mips/5500.md (ir_vr55_arith): Likewise.
2589 * config/mips/7000.md (rm7_int_other): Likewise.
2590 * config/mips/9000.md (rm9k_int): Likewise.
2591 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2593 2004-03-17 Joel Brobecker <brobecker@gnat.com>
2595 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2596 to hold the subtype tree instead of recomputing it several times.
2598 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
2600 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2602 * config/mn10300/mn10300.md (cc): Remove "invert".
2604 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2606 * builtins.c (integer_valued_real_p): Add builtin rint.
2607 (fold_builtin): Likewise.
2608 * convert.c (convert_to_real): Likewise.
2610 * convert.c (convert_to_real): Fix typos in `long double'
2613 2004-03-16 Mark Mitchell <mark@codesourcery.com>
2616 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2617 generated COMPOUND_EXPRs.
2619 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2621 * config/h8300/t-rtems (h8300-*-rtems*): New.
2623 2004-03-16 Eric Christopher <echristo@redhat.com>
2625 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2627 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
2629 * config/i386/i386-protos.h: Add a prototype for
2630 ix86_reverse_condition.
2631 * config/i386/i386.c (ix86_reverse_condition): New.
2632 * config/i386/i386.h (REVERSE_CONDITION): Use
2633 ix86_reverse_condition.
2634 * config/i386/i386.md: Use ix86_reverse_condition instead of
2637 2004-03-16 J. Brobecker <brobecker@gnat.com>
2639 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2641 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
2644 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2646 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
2648 * c-common.c (c_common_type_for_mode): Build vector types on
2650 (handle_mode_attribute): Deprecate using the mode attribute
2651 to create vector types. Fix indentation.
2652 (vector_type_node_list): Remove.
2653 (handle_vector_size_attribute): Create vector types on demand.
2654 Strip a NON_LVALUE_EXPR from the attribute if there is one.
2655 * c-typeck.c (comptypes): Make vector types compatible if they
2656 have the same underlying mode.
2657 (convert_for_assignment): Use comptypes to convert between
2659 * tree.c (build_common_tree_nodes_2): Do not create vector types.
2660 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2662 * tree.h: Remove vector types.
2663 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2664 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2665 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2666 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2667 * doc/extend.texi (Vector Types): Document how to use the
2668 vector_size attribute to create vectors, rather than mode.
2670 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2671 * config/i386/emmintrin.h: Likewise.
2672 * config/i386/mmintrin.h: Likewise.
2673 * config/i386/xmmintrin.h: Likewise.
2674 * config/sh/ushmedia.h: Likewise.
2676 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
2678 * config/freebsd-spec.h, config/arc/arc-protos.h,
2679 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2680 config/arm/linux-gas.h, config/arm/semi.h,
2681 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2682 config/ia64/freebsd.h, config/mips/7000.md,
2683 config/mips/9000.md, config/ns32k/ns32k-protos.h,
2684 config/sparc/pbd.h: Update copyright.
2686 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2689 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
2691 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
2693 * combine.c (combine_simplify_rtx): Remove the "last"
2694 parameter and its documentation. Adjust recursive calls.
2695 (simplify_logical): Always perform the only simplification
2696 controlled by "last", if the simplified expression is
2698 (try_combine): Do not pass the "last" parameter to
2699 combine_simplify_rtx.
2701 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
2704 * config/mips/mips.md (UNSPEC_GP): New constant.
2705 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2706 an UNSPEC instead of (reg $gp).
2707 (mips16_gp_pseudo_reg): Change accordingly.
2708 (print_operand): Print $gp directly when handling CONST_GP_P.
2710 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
2712 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2713 * longlong.h: Make code 68060 clean when compiling for m68060.
2715 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
2717 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2718 * doc/md.texi: Clarify description of "i" constraint.
2720 2004-03-15 James E Wilson <wilson@specifixinc.com>
2722 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2723 Split store into store, fpstore, fpidxstore. Fix all uses.
2724 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2726 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2727 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2728 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2729 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2730 ir_sr70_fstore): Likewise.
2732 2004-03-15 Richard Henderson <rth@redhat.com>
2735 * except.c (collect_one_action_chain): Record action for cleanup
2736 outer of exception spec.
2738 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
2740 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2741 Fix the check for abort and only do the mmap if we can.
2743 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
2745 * config/sparc/sparc.h: Rework comments about the code model
2746 in 64-bit environment and the mode 'Pmode'.
2747 * doc/invoke.texi (SPARC options): Rework description of the
2748 different code models supported in 64-bit environment.
2750 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2752 * defaults.h (REVERSIBLE_CC_MODE): Define.
2753 * jump.c (reversed_comparison_code_parts): Don't check if
2754 REVERSIBLE_CC_MODE is defined.
2756 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2758 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2759 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2760 hosthooks.h, params.h, ra-colorize.c, web.c,
2761 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2762 config/avr/avr-protos.h, config/avr/avr.md,
2763 config/fr30/fr30-protos.h, config/fr30/fr30.md,
2764 config/h8300/fixunssfsi.c, config/i386/darwin.h,
2765 config/i386/freebsd.h, config/i386/freebsd64.h,
2766 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2767 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2768 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2769 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2770 config/pa/pa64-regs.h, config/rs6000/aix41.h,
2771 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2772 config/sparc/aout.h, config/sparc/freebsd.h,
2773 config/sparc/litecoff.h, config/vax/vax-protos.h,
2774 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2777 2004-03-15 Paul Brook <paul@codesourcery.com>
2779 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2781 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
2783 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2784 (pp_c_cv_qualifier): Document.
2785 (pp_c_space_for_pointer_operator): Likewise.
2786 (pp_c_integer_constant): Likewise.
2787 (pp_c_identifier): Likewise.
2788 (pp_c_init_declarator): Don't print function body.
2790 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
2792 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2793 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2794 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2795 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
2796 wording and grammar.
2798 2004-03-14 Roger Sayle <roger@eyesopen.com>
2800 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2801 with lang_hooks.foo ().
2802 * builtins.c (expand_builtin_va_arg): Likewise.
2803 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2804 c_common_type_for_mode, c_common_nodes_and_builtins,
2805 handle_mode_attribute, handle_vector_size_attribute): Likewise.
2806 * c-convert.c (convert): Likewise.
2807 * c-format.c (check_format_types): Likewise.
2808 * c-objc-common.c (c_tree_printer): Likewise.
2809 * c-typeck.c (build_unary_op, build_conditional_expr,
2810 build_binary_op): Likewise.
2811 * calls.c (try_to_integrate, expand_call,
2812 emit_library_call_value_1): Likewise.
2813 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2815 * cgraphunit.c (record_call_1, cgraph_analyze_function,
2816 cgraph_expand_function): Likewise.
2817 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2818 * coverage.c (build_fn_info_type, build_ctr_info_type,
2819 build_gcov_info, create_coverage): Likewise.
2820 * dbxout.c (dbxout_init): Likewise.
2821 * diagnostic.c (diagnostic_report_current_function): Likewise.
2822 * dojump.c (do_jump): Likewise.
2823 * dwarf2out.c (dwarf2_name): Likewise.
2824 * except.c (init_eh): Likewise.
2825 * explow.c (expr_size, int_expr_size): Likewise.
2826 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2828 * expr.c (store_expr, store_constructor, safe_from_p,
2829 expand_expr_real, do_store_flag, try_casesi): Likewise.
2830 * function.c (push_function_context_to, pop_function_context_from,
2831 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2832 put_var_into_stack, allocate_struct_function, current_function_name):
2834 * integrate.c (copy_decl_for_inlining, expand_inline_function):
2836 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2837 lhd_print_error_function): Likewise.
2838 * opts.c (handle_option, decode_options): Likewise.
2839 * passes.c (open_dump_file): Likewise.
2840 * print-tree.c (print_node): Likewise.
2841 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2842 expand_decl_cleanup, emit_case_nodes): Likewise.
2843 * stor-layout.c (variable_size): Likewise.
2844 * toplev.c (announce_function, wrapup_global_declarations,
2845 check_global_declarations, compile_file, default_tree_printer,
2846 process_options, lang_dependent_init, finalize): Likewise.
2847 * tree-dump.c (dequeue_and_dump): Likewise.
2848 * tree-inline.c (remap_decl, remap_block, copy_body_r,
2849 initialize_inlined_parameters, declare_return_variable,
2850 inlinable_function_p, expand_call_inline, optimize_inline_calls,
2851 walk_tree, copy_tree_r): Likewise.
2852 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2853 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2854 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2855 variably_modified_type_p, dump_tree_statistics): Likewise.
2856 * varasm.c (assemble_variable, compare_constant, copy_constant,
2857 force_const_mem, compute_reloc_for_constant, output_constant,
2858 output_addressed_constants, initializer_constant_valid_p): Likewise.
2860 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
2862 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2864 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
2866 * doc/install.texi: Reflect autoconf and automake version for
2867 libffi. Update autoconf version to 2.59.
2869 2004-03-13 Roger Sayle <roger@eyesopen.com>
2871 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2872 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2873 make_range, build_range_check, fold_range_test, unextend,
2874 constant_boolean_node, fold_binary_op_with_conditional_arg,
2875 fold_truthop, fold_mathfn_compare, fold_inf_compare,
2876 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2877 with lang_hooks.foo ().
2879 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
2881 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2883 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
2885 * doc/install.texi: Note status of -fnew-ra.
2887 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2890 * expr.c (store_expr): Call emit_queue before generating the move
2891 from the temporary to the original target. Protect the temporary
2894 2004-03-13 Jakub Jelinek <jakub@redhat.com>
2897 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2898 other than UNSPEC_GOTOFF.
2900 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
2902 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
2903 to arm_legitimate_index_p. Update all callers with SET as default
2905 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
2906 range if OUTER is a sign-extend operation on QImode. Correctly
2907 reject shift operations on sign-extended QImode addresses.
2908 (bad_signed_byte_operand): Delete.
2909 (arm_extendqisi_mem_op): New function.
2910 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
2911 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
2913 (CONSTRAINT_LEN): New.
2914 (EXTRA_CONSTRAINT): Delete. Replace with...
2915 (EXTRA_CONSTRAINT_STR): ... this.
2916 (PREDICATE_CODES): Remove bad_signed_byte_operand.
2917 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
2918 is now always default.
2919 (define_splits for bad sign-extend loads): Delete.
2920 (arm_extendqisi, arm_extendqisi_v5): Likewise.
2921 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2922 Rework 'U' constraint to 'Uv'.
2923 * arm-protos.h: Remove bad_signed_byte_operand. Add
2924 arm_extendqisi_mem_op.
2925 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2928 2004-03-13 Alan Modra <amodra@bigpond.net.au>
2930 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2931 with targetm version.
2934 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2935 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2936 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2937 Update all users of RS6000_ARG_SIZE.
2938 (function_arg_advance): Count fregno using mode size.
2939 (function_arg): Handle long double split over regs and memory.
2940 (function_arg_partial_nregs): Likewise.
2941 (rs6000_va_arg): Repackage complex args.
2943 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
2946 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2947 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2948 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2950 2004-03-12 Jakub Jelinek <jakub@redhat.com>
2952 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2954 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2955 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2957 2003-03-12 Andrew Pinski <apinski@apple.com>
2959 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2960 Use ret instead of result. Use addr instead of base.
2962 2004-03-12 David Edelsohn <edelsohn@gnu.org>
2964 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2965 fixes required by libstdc++ and update installation instructions
2968 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
2970 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2971 leading '@' on fastcall symbols before stripping suffix.
2973 2004-03-12 Roger Sayle <roger@eyesopen.com>
2975 * combine.c (unmentioned_reg_p): New function to check whether an
2976 expression is a "specialization" of another, i.e. that there are
2977 no registers or memory references mentioned in the first that don't
2978 appear in the second.
2979 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2980 (combine_instructions): Also try combining instructions using the
2981 REG_EQUAL note from a preceding log-linked instruction.
2983 2004-03-12 Roger Sayle <roger@eyesopen.com>
2985 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2987 2004-03-12 Matt Austern <austern@apple.com>
2989 * target.h (struct gcc_target): New target hook, unwind_label.
2990 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2991 * output.h (default_emit_unwind_label): New function.
2992 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2993 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2994 (TARGET_SUPPORTS_HIDDEN): New target macro.
2995 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2996 that corresponds to this FDE.
2997 (FRAME_BEGIN_LABEL): Allow target to override default label.
2998 (output_call_frame_info): If FDEs are linknonce, then use extra
2999 indirection for FDE encoding, output a label for each FDE, and
3000 output an empty label for each function without an FDE.
3001 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3002 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3003 decls with DECL_ONE_ONLY set, if that macro is defined.
3004 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3005 for a SUPPORTS_ONE_ONLY target.
3006 * config/darwin-protos.h (darwin_unique_section): Declare.
3007 (darwin_asm_named_section): Likewise.
3008 (darwin_section_type_flags): Likewise.
3009 (darwin_non_lazy_pcrel): Likewise.
3010 (darwin_emit_unwind_label): Likewise.
3011 (darwin_make_decl_one_only): Likewise.
3012 * config/darwin.c (machopic_finish): Get rid of tweak that
3013 eliminate stubs for symbols that are defined.
3014 (darwin_encode_section_info): Don't treat weak functions as defined.
3015 (darwin_make_decl_one_only): Define.
3016 (darwin_asm_named_section): Likewise.
3017 (darwin_section_type_flags): Likewise.
3018 (darwin_unique_section): Likewise.
3019 (darwin_emit_unwind_label): Likewise.
3020 (darwin_non_lazy_pcrel): Likewise.
3021 (darwin_asm_output_dwarf_delta): Difference between two labels is
3022 local only if both labels are local.
3023 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3024 (ASM_MAKE_LABEL_LINKONCE): Likewise.
3025 (TARGET_SUPPORTS_HIDDEN): Likewise.
3026 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3027 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3028 (FRAME_BEGIN_LABEL): Likewise.
3029 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3030 (ASM_DECLARE_FUNCTION_NAME): Likewise.
3031 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3032 (TARGET_ASM_UNIQUE_SECTION): Define.
3033 (EH_FRAME_SECTION_NAME): Define.
3034 (EH_FRAME_SECTION_ATTR): Likewise.
3035 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3036 (TARGET_ASM_NAMED_SECTION): Likewise.
3037 (TARGET_SECTION_TYPE_FLAGS): Likewise.
3038 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3039 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3040 TARGET_ASM_EMIT_UNWIND_LABEL.
3042 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3044 * builtins.c (expand_builtin_mathfn): Add pow10* to the
3045 existing exp10* case.
3046 (expand_builtin): Likewise.
3048 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3050 * doc/tm.texi (registers) <Values in Registers>: Add
3051 entry for REGMODE_NATURAL_SIZE.
3053 2004-03-12 Richard Henderson <rth@redhat.com>
3056 * target.h (struct gcc_target): Move calls substructure before
3057 booleans. Add split_complex_arg.
3058 * function.c (assign_parms, split_complex_args): Use it.
3059 * calls.c (expand_call): Likewise.
3060 (split_complex_values): Likewise. Check for splittable types
3061 before allocating memory.
3062 (split_complex_types): Likewise.
3063 * system.h (SPLIT_COMPLEX_ARGS): Poison.
3064 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3065 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3066 * config/alpha/alpha.c (alpha_split_complex_arg): New.
3067 (TARGET_SPLIT_COMPLEX_ARG): New.
3068 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3069 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3070 (rs6000_override_options): Zap it for non-AIX.
3071 (rs6000_function_value): Use targetm.calls.split_complex_arg.
3072 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3073 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3074 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3075 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3076 SPLIT_COMPLEX_ARGS entry.
3078 2004-03-11 Richard Henderson <rth@redhat.com>
3080 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3081 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3082 (alpha_emit_xfloating_arith): Update to match.
3083 (alpha_emit_xfloating_compare): Likewise.
3084 (alpha_emit_xfloating_cvt): Likewise.
3085 (alpha_emit_xfloating_libcall): Take already built symbol,
3087 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3090 2004-03-11 Richard Henderson <rth@redhat.com>
3093 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3095 * simplify-rtx.c (simplify_relational_operation): Fix typo.
3097 2004-03-11 Richard Henderson <rth@redhat.com>
3100 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3102 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3105 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3106 defined, pass small BLKmode values in registers in the low-order part.
3108 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3110 * combine.c (if_then_else_cond): Check for NULL return value of
3111 simplify_gen_subreg.
3113 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3116 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3117 TARGET_SINGLE_FLOAT.
3119 2004-03-11 Steve Ellcey <sje@cup.hp.com>
3121 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3122 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3123 * config/ia64/ia64.c (ia64_init_libfuncs): New.
3124 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3126 2004-03-11 Roger Sayle <roger@eyesopen.com>
3128 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3129 -((int)X>>C) where C is an integer constant one bit less than the
3130 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
3131 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3133 * simplify-rtx.c (simplify_unary_operation): Also implement the
3134 above transformations at the RTL level.
3136 2004-03-11 Alan Modra <amodra@bigpond.net.au>
3138 * real.c (encode_ibm_extended): Do round low word.
3140 2004-03-11 Ben Elliston <bje@wasabisystems.com>
3142 * config/arm/arm.md (is_xscale): Comment this attribute and move
3143 it a bit further up in the file, closer to related attributes.
3145 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3147 * config/host-solaris.c (sol_gt_pch_use_address): Add
3148 missing terminating marker to comment.
3150 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3152 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3153 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3154 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3155 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
3156 move_operand as source predicate in all cases.
3157 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
3158 Test reg_or_0_operand. Use move_operand as source predicate.
3159 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
3160 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3161 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
3162 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3163 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
3164 Use move_operand as source predicate. Remove 'K' constraint.
3165 (*movqi_internal): Likewise movqi_internal.
3166 (*movsf_hardfloat): Renamed from movsf_internal1. Test
3167 reg_or_0_operand. Use move_operand as source predicate.
3168 (*movsf_softfloat): Likewise movsf_internal2.
3169 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3170 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3171 (*movdf_softfloat): Likewise movdf_internal2.
3172 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3173 for DImode if !TARGET_64BIT.
3174 (mips_legitimize_move): Simplify accordingly.
3176 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
3179 * var-tracking.c (struct variable_def): Added field refcount.
3180 (variable_htab_free): Decrease the refcount and delete variable
3181 only if there are no more references.
3182 (unshare_variable): New function.
3183 (vars_copy_1): Increase refcount instead of copying the variable.
3184 (variable_union): Share the variables where possible, unshare
3185 the variables if needed.
3186 (variable_different_p): Return false if var1 and var2 are
3188 (variable_was_changed): Init the refcount of new variable.
3189 (set_frame_base_location): Unshare variable if needed.
3190 (set_variable_part): Init the refcount of new variable.
3191 Unshare the variables if needed.
3192 (delete_variable_part): Unshare the variables if needed.
3193 (emit_notes_for_differences_1): Init the refcount of new variable.
3194 (vt_add_function_parameters): Do not add function parameters to
3195 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3196 (vt_initialize): Do not add frame_base_decl to IN set of
3197 ENTRY_BLOCK_PTR because it is unused anyway.
3199 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
3201 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3202 (vars_copy): Likewise.
3203 (variable_union): Likewise.
3204 (set_variable_part): Likewise.
3205 (delete_variable_part): Likewise.
3207 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
3209 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3210 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3211 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3212 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3213 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3214 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3215 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3216 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3217 config/stormy16/stormy16.c: Fix comment typos and formatting.
3219 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
3221 * configure: Regenerate, since I forgot to while committing Paolo's
3224 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
3227 Move language detection to the top level.
3228 * configure.ac: Remove code to detect languages,
3229 it now lives exclusively in the top level.
3230 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3231 top level, renamed to ACX_PROG_GNAT.
3233 2004-03-10 Richard Henderson <rth@redhat.com>
3235 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3237 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3238 and host_xmake_file fragments.
3239 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3240 (gt_pch_restore): Similarly for gt_pch_use_address.
3241 (default_gt_pch_get_address): New.
3242 (mmap_gt_pch_get_address): Split out of gt_pch_save.
3243 (default_gt_pch_use_address): Split out of gt_pch_restore.
3244 (mmap_gt_pch_use_address): Likewise.
3245 * hooks.c (hook_voidp_size_t_null): Remove.
3246 (hook_bool_voidp_size_t_false): Remove.
3247 * hooks.h: Likewise.
3248 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3249 default_ or mmap_ definitions.
3250 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3251 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3252 and gt_pch_use_address.
3253 * config/host-linux.c, config/host-solaris.c: New files.
3254 * config/x-linux, config/x-solaris: New files.
3255 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3256 Update for changed definition.
3257 (darwin_rs6000_gt_pch_use_address): Likewise.
3258 * doc/hostconfig.texi: Update docs.
3260 2004-03-10 Richard Henderson <rth@redhat.com>
3263 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3264 except for pedantic c90 mode.
3266 2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
3268 * configure.ac: Bump AC_PREREQ to 2.59.
3269 * configure: Regenerate.
3271 2004-03-10 Uros Bizjak <uros@kss-loka.si>
3273 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3274 (exp10_optab, exp2_optab): Define corresponding macros.
3275 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3276 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3277 using exp10?f2 and exp2?f2 patterns.
3278 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3279 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3280 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3281 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3283 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3284 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3285 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3287 2004-03-10 Anthony Green <green@redhat.com>
3289 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3291 2004-03-10 David Edelsohn <edelsohn@gnu.org>
3293 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3294 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
3296 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3297 TARGET_OS_AIX_CPP_BUILTINS.
3298 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3299 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3300 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3301 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3304 2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3306 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3308 2004-03-10 David Edelsohn <edelsohn@gnu.org>
3310 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3311 __LONGDOUBLE128 on AIX.
3313 2004-03-10 Andrew Haley <aph@redhat.com>
3315 PR optimization/14381
3316 * function.c (expand_function_end): Emit a blockage insn before
3317 the epilogue when -fnon-call-exceptions is used.
3319 * except.c (expand_start_all_catch): Make comment more accurate.
3321 2004-03-08 Joel Sherrill <joel@oarcorp.com>
3324 * config/rs6000/t-rtems: Add missing file on branch.
3326 2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
3328 * dbxout.c (dbxout_symbol_location): Do not output references
3329 to optimized-out constant pool symbols.
3331 2004-03-10 Andreas Schwab <schwab@suse.de>
3333 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3336 2004-03-09 James E Wilson <wilson@specifixinc.com>
3338 * alias.c (alias_sets_might_conflict_p): New.
3339 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3340 * common.opt (Wstrict-aliasing=): New.
3341 * flags.h (warn_strict_aliasing): Change type to int.
3342 * opts.c (warn_strict_aliasing): Change type to int.
3343 (common_handle_option): Handle OPT_Wstrict_aliasing_.
3344 * tree.h (alias_sets_might_conflict_p): Declare it.
3345 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3347 2004-03-10 Roman Zippel <zippel@linux-m68k.org>
3350 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3351 (CALL_USED_REGISTERS): Likewise.
3352 (REG_CLASS_CONTENTS): Likewise.
3353 (REG_ALLOC_ORDER): New.
3354 (REGNO_REG_CLASS): Use regno_reg_class.
3355 * config/m68k/m68k.c: Add regno_reg_class array.
3357 2004-03-09 Steve Ellcey <sje@cup.hp.com>
3359 * config/ia64/ia64.md (divsi3): Fix algorithm.
3361 (setf_exp_xf): Remove '*' from name.
3362 * testsuite/gcc.dg/20040309-1.c: New test.
3364 2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
3366 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3367 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3368 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3369 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3370 (sparc_aout_select_rtx_section): Don't check
3371 SUNOS4_SHARED_LIBRARIES.
3372 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3374 2004-03-10 Hans-Peter Nilsson <hp@axis.com>
3377 * doc/md.texi (Pattern Ordering, Dependent Patterns)
3378 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3381 2004-03-09 Zack Weinberg <zack@codesourcery.com>
3383 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3384 (LIBGCC_SPEC): Update to match.
3386 2004-03-09 Zack Weinberg <zack@codesourcery.com>
3388 * c-decl.c (last_function_parms, last_function_parm_tags)
3389 (last_function_parm_others, current_function_parms)
3390 (current_function_parm_tags, current_function_parm_others):
3392 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3394 (grokdeclarator): For function definitions, save the arg-info
3395 block from the declarator in DECL_ARGUMENTS.
3396 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
3397 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
3398 contains only PARM_DECLs. Improve diagnostics.
3399 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
3400 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
3401 (store_parm_decls_newstyle): Take the function to operate on,
3402 and an arg-info block, as arguments; don't get anything from
3403 current_function_* globals.
3404 (store_parm_decls_oldstyle): Likewise.
3405 (store_parm_decls): Pass fndecl and its arg-info block down to
3406 store_parm_decls_newstyle/oldstyle. Send functions with empty
3407 argument lists through store_parm_decls_newstyle to reduce
3409 (pushdecl): Comment on the problems with the call to copy_node.
3410 Clear DECL_ARGUMENTS of the old node after copying it, if it
3411 is an arg-info block instead of a chain of decls.
3412 (start_function): Do not manipulate current_function_parm* or
3413 last_function_parm*.
3415 2004-03-09 Roger Sayle <roger@eyesopen.com>
3416 Andrew Pinski <pinskia@physics.uc.edu>
3418 * ifcvt.c (noce_try_sign_mask): New function to transform
3419 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3420 (noce_process_if_block): Call noce_try_sign_mask.
3422 2004-03-09 Andrew Pinski <apinski@apple.com>
3424 * c-typeck.c (tagged_types_tu_compatible_p):
3427 2004-03-09 Roger Sayle <roger@eyesopen.com>
3429 * simplify-rtx.c (simplify_const_relational_operation): New function
3430 renamed from simplify_relational_operation.
3431 (simplify_relational_operation): Change prototype to accept an
3432 additional mode argument. Call simplify_const_relational_operation.
3433 (simplify_gen_relational): Update simplify_relational_operation call.
3434 (simplify_ternary_operation): Update simplify_relational_operation
3435 subroutine call to use simplify_const_relational_operation instead.
3437 * rtl.h (simplify_const_relational_operation): Prototype here.
3438 (simplify_relational_operation): Add addtional mode argument.
3440 * combine.c (combine_simplify_rtx): Update calls to
3441 simplify_relational_operation.
3442 (simplify_set): Likewise.
3443 (gen_binary): Likewise.
3444 * cse.c (fold_rtx): Likewise.
3445 * dojump.c (compare_from_rtx): Likewise.
3446 (do_compare_rtx_and_jump): Likewise.
3447 * integrate.c (subst_constants): Likewise.
3448 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3450 2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
3452 * config/m32r/m32r.md: Remove all define_peephole's.
3454 2004-03-09 Alan Modra <amodra@bigpond.net.au>
3456 * config/rs6000/rs6000.md: Remove trailing whitespace.
3458 2004-03-08 Eric Christopher <echristo@redhat.com>
3460 * Makefile.in (site.exp): Add libiconv variable definition.
3462 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
3464 * configure: Regenerate for config/accross.m4 correction.
3466 2004-03-08 Joel Sherrill <joel@oarcorp.com>
3469 * config/rs6000/t-rtems: Add missing file on branch.
3471 2004-03-08 Roger Sayle <roger@eyesopen.com>
3474 * c-typeck.c (c_mark_addressable): A register variable should
3475 be considered global if its not automatic, i.e. TREE_PUBLIC,
3476 TREE_STATIC or DECL_EXTERNAL.
3477 * function.c (put_var_into_stack): Call abort when placing a
3478 hard register into the stack, if x_parm_reg_stack_loc is NULL.
3480 2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
3482 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3483 ("*extendqisi2_short_displ"): Likewise.
3485 2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
3487 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3488 (comp_operator): Likewise.
3489 * config/pdp11/pdp11-protos.h: Remove corresponding
3492 2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
3494 * expr.c (highest_pow2_factor_for_type): Rename into
3495 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
3496 TYPE_ALIGN when the target is a COMPONENT_REF.
3497 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3499 2004-03-08 Alan Modra <amodra@bigpond.net.au>
3501 * config/rs6000/rs6000.c: Formatting fix.
3502 (legitimate_offset_address_p): Correct offset range check.
3504 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3505 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
3508 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
3510 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3512 ("ashrdi3_no_power"): Disable for little endian.
3515 2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3517 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3520 2004-03-08 Hans-Peter Nilsson <hp@axis.com>
3523 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3524 case, checking for -no-mul-bug-abort option.
3525 * configure, config.in: Regenerate.
3526 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3527 and -mno-mul-bug-workaround.
3528 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3529 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3530 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3531 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
3532 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3533 sure mulu.d is not last on cache-line.
3534 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3535 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3536 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3537 (TARGET_SWITCHES): New options -mmul-bug-workaround and
3538 -mno-mul-bug-workaround.
3539 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3540 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3541 * config/cris/cris.c (cris_operand_extend_operator): Clarify
3542 relation to MULT in head comment.
3543 (cris_op_str): Abort for MULT.
3544 (cris_print_operand) <case '!'>: New case.
3546 2004-03-08 Alan Modra <amodra@bigpond.net.au>
3549 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3550 dw_val_class_vec. Replace use throughout file.
3551 (dw_float_const): Delete.
3552 (dw_vec_const): New.
3553 (dw_val_struct_union): Rename val_float to val_vec. Replace use
3555 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
3556 (same_dw_val_p): Adjust vec comparison. Use memcmp.
3557 (size_of_die): Adjust dw_val_class_vec sizing.
3558 (output_die): Output dw_val_class_vec.
3559 (insert_int, extract_int, insert_float): New functions.
3560 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3561 Handle CONST_VECTOR.
3562 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3564 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
3566 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3567 AltiVec abi cannot co-exist.
3569 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3571 2004-03-07 Jan Hubicka <jh@suse.cz>
3573 * except.c (emit_to_new_bb_before): Break fallthru edges.
3575 2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
3577 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3578 ("*lshrsi3"): Also accept an immediate for 68HC12.
3579 ("*ashrsi3_const"): Likewise.
3580 ("*ashrsi3"): Likewise.
3581 ("*ashlsi3_const"): Likewise.
3582 ("*ashlsi3"): Likewise.
3583 ("cmphi_1_hc12"): Compare two hard register by pushing them and
3584 comparing with a pop; don't use a split for that.
3585 ("cmphi split"): Disable compare split for 68HC12.
3587 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3588 the status operands if they have side effects.
3590 2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
3592 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3594 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3595 config/h8300/h8300.h, config/ia64/ia64.h,
3596 config/mcore/mcore.h, config/mmix/mmix.h,
3597 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3598 config/stormy16/stormy16.h, config/v850/v850.h,
3599 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3600 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3603 2004-03-07 Roger Sayle <roger@eyesopen.com>
3605 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3606 <XOR_EXPR>: Fold x ^ x as zero.
3607 <AND_EXPR>: Fold x & x as x.
3609 2004-03-07 Roger Sayle <roger@eyesopen.com>
3611 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3612 "foo++ == const" into "++foo == const+incr".
3614 2004-03-07 Richard Sandiford <rsandifo@redhat.com>
3616 * config/mips/mips.c (mips_in_small_data_p): Return false if
3619 2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
3621 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3623 (expand_prologue): Don't make an interrupt or a trap handler a far
3625 (m68hc11_initial_elimination_offset): Likewise.
3627 2004-03-06 Richard Henderson <rth@redhat.com>
3629 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3631 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
3633 * config/ns32k/ns32k-protos.h: Add a prototype for
3634 ns32k_notice_update_cc.
3635 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3636 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3637 ns32k_notice_update_cc.
3639 2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
3641 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3642 "*load_multiple_si"): Allow only if reload_completed.
3643 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3646 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
3648 * config/vax/vax-protos.h: Add a prototype for
3649 vax_notice_update_cc.
3650 * config/vax/vax.c (vax_notice_update_cc): New.
3651 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3652 vax_notice_update_cc.
3654 2004-03-06 David Edelsohn <edelsohn@gnu.org>
3656 * collect2.c (main): Only export initfunc and finifunc if
3657 LD_INIT_SWITCH not defined.
3658 (scan_prog_file): Only export constructors and destructors if
3659 LD_INIT_SWITCH not defined. Only export symbols not found in
3662 2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3664 * pa.md (icacheflush): Reorder operands to make match_scratch operand
3666 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3667 from calls to gen_icacheflush.
3669 2004-03-06 Richard Henderson <rth@redhat.com>
3671 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3672 (TARGET_LONG_DOUBLE_128): New.
3673 (TARGET_SWITCHES): Add long-double-{128,64}.
3674 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3675 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3676 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3677 (WIDEST_HARDWARE_FP_SIZE): New.
3678 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3679 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3680 if TARGET_VAX_FLOAT.
3681 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3682 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3684 2004-03-06 Richard Henderson <rth@redhat.com>
3686 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3687 botched rtx class conversion.
3689 2004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3691 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3692 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3694 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3696 * fold-const.c (fold_mathfn_compare, fold): Likewise.
3698 2004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
3701 * config/i386/i386.md (movv2di_internal): Conditionalize on
3702 TARGET_SSE, not TARGET_SSE2.
3704 2004-03-05 Chris Demetriou <cgd@broadcom.com>
3706 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3709 2004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3711 * builtins.c: Consistently use logN not log* in comments.
3713 2004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
3715 * rtl.h (mem_expr_equal_p): Function prototype added.
3716 * cfgcleanup.c (merge_memattrs): New function.
3717 (flow_find_cross_jump): Call merge_memattrs for matching insns.
3718 * emit-rtl.c (mem_expr_equal_p): New function.
3720 2004-03-05 Ziemowit Laski <zlaski@apple.com>
3722 * objc/objc-act.c (synth_module_prologue): Const-qualify
3723 objc_selector type if using the GNU runtime; fix generated
3724 signatures for objc_msg_lookup and objc_msg_lookup_super
3725 to match what GNU ObjC headers provide; reformat and clean up.
3726 (synth_self_and_ucmd_args): Use previously constructed (and
3727 hence possibly const-qualified) objc_selector type.
3729 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
3731 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3733 2004-03-05 Jason Merrill <jason@redhat.com>
3735 * tree.h (TYPE_HASH): Use TYPE_UID.
3736 (TREE_HASH): New macro with old definition of TYPE_HASH.
3737 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3738 (build_array_type, build_function_type): Likewise.
3739 (build_method_type_directly): Likewise.
3740 (build_offset_type, build_complex_type): Likewise.
3741 (type_hash_list, attribute_hash_list): Likewise. Now static.
3742 * except.c: s/TYPE_HASH/TREE_HASH/.
3744 2004-03-05 Bob Wilson <bob.wilson@acm.org>
3746 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3747 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
3748 __va_ndx by 2 words when referencing an argument on the stack.
3749 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
3750 words when an arg on the stack is first seen.
3752 2004-03-05 Paul Brook <paul@codesourcery.com>
3754 * arm.h (ARM_FLAG_VFP): Remove.
3755 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3756 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3758 2004-03-05 Paul Brook <paul@codesourcery.com>
3760 * function.c (assign_parms): Include pretend alignment offset.
3762 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3764 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3765 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3767 2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
3769 * configure.ac: When passing --enable-languages to subdir
3770 configure when host != build, make sure we don't pass an empty
3772 * configure: Regenerate.
3774 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
3777 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3780 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3782 * simplify-rtx.c (simplify_relational_operation): If
3783 flag_wrapv is set, do not move terms between the two
3784 side of a relational operator.
3786 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3788 * rtlanal.c: Include target.h and output.h
3789 (rtx_cost, address_cost, default_address_cost): Move from...
3790 * cse.c (rtx_cost, address_cost, default_address_cost):
3792 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3793 * Makefile.in: Adjust dependencies.
3795 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3797 * cse.c (cse_end_of_basic_block): Make static.
3798 * local-alloc.c (function_invariant_p): Move to
3800 * loop.c (libcall_other_reg, record_excess_regs):
3802 * reload1.c (function_invariant_p): Moved here
3803 from local-alloc.c, made static.
3804 * rtl.h (cse_end_of_basic_block, function_invariant_p,
3805 libcall_other_reg, record_excess_regs): Remove
3808 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
3810 * config/m32r/m32r.c (signed_comparison_operator): Add a
3811 missing parenthesis.
3813 2004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
3815 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3816 going to call mmap again. Read the file into the right place.
3817 Give a fatal error if we have to relocate.
3819 2004-03-04 Bob Wilson <bob.wilson@acm.org>
3821 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3822 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3824 2004-03-05 Hans-Peter Nilsson <hp@axis.com>
3827 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3828 round the same. When rounding, clear bits that would cause a
3829 second rounding in pack_d.
3830 (_fpmul_parts): Ditto. Remove #if 0:d code.
3832 2004-03-04 Ziemowit Laski <zlaski@apple.com>
3834 PR c++/14425, c++/14426
3835 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3836 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3837 Change C++ definitions to accept a 'const int' argument;
3838 the prototypes already do.
3839 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3840 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3841 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3842 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3843 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3844 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3845 end in ..._int; change them to accept an int instead of a char
3846 as the last parameter.
3848 2004-03-04 Phil Edwards <phil@codesourcery.com>
3850 * genmultilib: Change '=' to '-' when translating option names
3853 2004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3855 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3856 stack slot for temp used for result of BLKmode but in integral mode.
3858 2004-03-04 Jan Hubicka <jh@suse.cz>
3860 * reload.c (find_reloads): Reorganize if seqeunce to switch.
3862 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
3863 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
3865 2004-03-04 Steve Ellcey <sje@cup.hp.com>
3867 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3868 * testsuite/gcc.dg/20040303-1.c: New test.
3870 2004-03-04 Steven Bosscher <stevenb@suse.de>
3872 * ppro.md: Rewrite as a DFA pipeline description.
3873 * i386.md: Remove all uses of the ppro_uops attribute.
3874 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3875 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3876 ix86_sched_reorder, ix86_variable_issue,
3877 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3878 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3879 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3880 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3881 * athlon.md (athlon_ssecmp_load): Fix comment
3883 2004-03-04 Stuart Hastings <stuart@apple.com>
3885 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3887 2004-03-04 Stuart Hastings <stuart@apple.com>
3889 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3890 686, tell Darwin assembler to allow prefetch insns, non-empty def
3891 of SUBTARGET_OPTION_TRANSLATE_TABLE.
3893 2004-03-04 DJ Delorie <dj@redhat.com>
3895 PR optimization/14282
3896 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3897 between a call and the assignment of its return value.
3899 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
3901 * config/h8300/h8300.c: Put a comment for every function.
3903 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
3905 * config/h8300/h8300.md: Add comments about peephole2's.
3907 2004-03-04 Steven Bosscher <stevenb@suse.de>
3909 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3911 2004-03-04 Jan Hubicka <jh@suse.cz>
3913 * cfgcleanup.c (thread_jump): Update call of cselib_init.
3914 * cselib.c (cselib_record_memory): New static variable.
3915 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3916 Give up on memories when asked for.
3917 (cselib_init): Accept new argument.
3918 * cselib.h (cselib_init): Update prototype.
3919 * gcse.c (local_cprop_pass): Update call of cselib_init.
3920 * loop.c (load_mems): Update call of cselib_init.
3921 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3922 * sched-deps.c (sched_analyze): Update call of cselib_init.
3924 2004-03-04 David Edelsohn <edelsohn@gnu.org>
3927 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3930 2004-03-04 Josef Zlomek <zlomekj@suse.cz>
3933 * var-tracking.c (track_expr_p): Do not track variables which
3934 should be ignored for debugging purposes.
3936 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3938 * real.c (encode_ibm_extended): Don't bother rounding low double.
3939 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3940 when fmt->pnan < fmt->p.
3942 2004-03-04 Eric Christopher <echristo@redhat.com>
3944 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3945 only range of valid arg registers and fixed_regs.
3947 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3950 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3951 (abstf2, abstf2_internal): New define_expand.
3953 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3955 PR optimization/14235
3956 * expr.c (convert_move): Copy the source to a new pseudo
3957 when converting from a sub-word source to a larger-than-word
3958 register which conflicts with the source.
3960 2004-03-03 Zack Weinberg <zack@codesourcery.com>
3963 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3964 parameters with the same name, unless one is a forward decl.
3965 Do not issue a redundant-redeclaration warning for forward
3966 decls of parameters.
3968 2004-03-04 David Edelsohn <edelsohn@gnu.org>
3970 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3973 2004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
3975 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3977 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3979 * target-def.h (TARGET_OPTF): Delete.
3980 * c-opts.c (TARGET_OPTF): Define.
3982 2004-03-04 Jan Hubicka <jh@suse.cz>
3984 * cselib.c (cselib_finish): Fix another miss-application of my previous
3987 2004-03-03 Mike Stump <mrs@apple.com>
3989 Add framework support for darwin.
3991 * c-incpath.c: Include target.h and machmode.h.
3992 (add_path): Use a consistent style for cpp_dir. Initialize
3994 (add_cpp_dir_path): New.
3995 (register_include_chains): Add use of extra_includes callback.
3996 (hook_void_int): Add.
3997 (target_c_incpath): Add.
3998 * c-incpath.h (add_cpp_dir_path): New.
3999 (target_c_incpath_s): Add.
4000 (target_c_incpath): Add.