1 2004-04-26 Zack Weinberg <zack@codesourcery.com>
3 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
4 * config/pa/pa-hpux10.h: Likewise.
5 * config/pa/pa-hpux11.h: Likewise.
7 2004-04-26 Geoffrey Keating <geoffk@apple.com>
9 * doc/invoke.texi (Overall Options): Document default for -o
12 2004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14 * builtins.c (expand_builtin_update_setjmp_buf): New function.
15 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
16 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
18 2004-04-26 Paul Brook <paul@codesourcery.com>
20 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
22 2004-04-26 Paul Brook <paul@codesourcery.com>
24 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
26 2004-04-25 Roger Sayle <roger@eyesopen.com>
28 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
29 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
32 2004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
35 * except.c (connect_post_landing_pads): Delete insns after the
36 barrier when generating a unwind_resume_libfunc call.
38 2004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
41 * tree.c (substitute_placeholder_in_expr, case 4): New case,
44 2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
46 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
47 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
48 inhibit_libc is defined.
50 2004-04-25 Richard Sandiford <rsandifo@redhat.com>
52 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
53 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
54 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
55 (TARGET_SCHED_VARIABLE_ISSUE): Define.
56 (mips_adjust_cost): Move later in file, next to other sched hooks.
57 (mips_macc_chains_last_hilo): New variable.
58 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
59 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
60 * config/mips/mips.md (may_clobber_hilo): New attribute.
62 2004-04-24 Roger Sayle <roger@eyesopen.com>
63 Bruce Korb <bkorb@gnu.org>
65 * fixinc/inclhack.def (aix_syswait_2): New fix.
66 * fixinc/fixincl.x: Regenerate.
67 * fixinc/tests/base/sys/wait.h: Update for new test.
69 2004-04-24 Alan Modra <amodra@bigpond.net.au>
72 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
73 to non_fixed_size, and leave out fixed_size from the sum.
74 (generate_set_vrsave): Correct clobbers.
75 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
76 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
77 (rs6000_libcall_value): Likewise.
78 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
79 (FUNCTION_ARG_REGNO_P): Likewise.
81 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
83 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
85 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
86 with NARROW_OP1 instead of OP1.
88 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
90 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
93 2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
95 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
96 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
97 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
98 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
99 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
100 * builtins.c (expand_builtin_fork_or_exec): New.
101 (expand_builtin): Call it.
102 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
103 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
104 * c-common.c (PID_TYPE): New macro.
105 (c_common_nodes_and_builtins): Initialize pid_type_node.
106 * calls.c (special_function_p): Do not handle fork and exec.
107 (expand_call): Do not handle ECF_FORK_OR_EXEC.
108 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
109 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
110 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
111 __gcov_execv, __gcov_execvp, __gcov_execve): New.
112 * tree.h (enum tree_index): Add TI_PID_TYPE.
113 (pid_type_node): New macro.
114 (ECF_FORK_OR_EXEC): Removed.
116 2004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
118 PR optimization/13985
119 * cfgloopmanip.c (fix_loop_placements): New prototype.
120 Call fix_bb_placements on the preheader of loops that have
122 (remove_path): Adjust call to fix_loop_placements.
124 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
126 * config/darwin7.h: New file.
127 * config.gcc (*-*-darwin*): Add darwin7.h if the
128 version is greater than 6.
129 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
130 (MATH_LIBRARY): Wrap in ifdefs.
132 2004-04-23 Daniel Jacobowitz <drow@mvista.com>
134 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
135 loading iWMMXt registers with a frame pointer. Use post-increment
136 without a frame pointer.
137 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
139 2004-04-23 Paolo Bonzini <bonzini@gnu.org>
141 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
142 mode" rather than "-funit-at-a-time" since -O2 enables it
143 without requiring -f* options. Refer to -fprofile-generate and
144 -fprofile-use correctly. Move -funit-at-a-time among options
145 enabled by -O. Add information about unit-at-a-time caveats.
147 2004-04-22 Per Bothner <per@bothner.com>
149 * line-map.h (struct line_maps): New field highest_line.
150 (linemap_position_for_column): Make non-inline function.
151 (LINEMAP_POSITION_FOR_COLUMN): New macro.
152 * line-map.c (linemap_init): Clear highest_line field.
153 (linemap_add): Set highest_line field.
154 (linemap_line_start): Minor optimization - use highest_line field.
155 Reduce maximum column hint to 10000. Update highest_line field.
156 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
157 * cpphash.h (struct cpp_reader): Remove line field - instead use
158 line_table->highest_line.
159 (saved_line): Remove unused field.
160 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
161 Use line_table's highest_line field instead of cpp_reader's line.
162 * cpplib.c (start_directive): Likewise use highest_line field.
163 (do_line, do_linemarker): Likewise just use newest map.
164 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
165 * cpperror.c (cpp_error): Likewise use highest_line field.
166 * cppfiles.c (open_file_failed: Likewise.
167 (cpp_make_system_header): Likewise use newest map and highest_line.
168 * cppinit.c (cpp_create_reader): Don't initialize removed field.
169 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
170 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
171 _cpp_lex_direct): Likewise use highest_line.
172 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
173 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
175 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
176 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
177 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
179 2004-04-23 Alan Modra <amodra@bigpond.net.au>
182 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
183 * config/linux.h (USE_LD_AS_NEEDED): Define.
184 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
185 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
186 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
187 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
188 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
189 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
190 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
192 2004-04-22 Per Bothner <per@bothner.com>
194 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
195 Fixes PR preprocessor/15067.
197 2004-04-23 Andreas Schwab <schwab@suse.de>
199 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
200 avoid aliasing warning.
202 2004-04-22 Jan Hubicka <jh@suse.cz>
203 Mostafa Hagog <mustafa@il.ibm.com>
205 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
206 * cfgloopanal.c (expected_loop_iterations): Change the return value
208 2004-04-22 Jakub Jelinek <jakub@redhat.com>
210 * cselib.h (struct elt_loc_list): Remove canon_loc field.
211 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
212 (cselib_invalidate_mem): Remove all canon_loc and canon_x
215 2004-04-22 Josef Zlomek <zlomekj@suse.cz>
218 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
220 * var-tracking.c (variable_part_different_p): Variable parts
221 differ when the most recent locations differ.
223 2004-04-22 Richard Sandiford <rsandifo@redhat.com>
225 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
226 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
227 (embedded_pic_offset): Delete.
228 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
230 (TARGET_EMBEDDED_PIC): Delete.
231 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
232 (ASM_SPEC): Remove -membedded-pic.
233 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
234 (ASM_OUTPUT_CASE_LABEL): Likewise.
235 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
236 * config/mips/windiss.h (ASM_SPEC): Likewise.
237 * config/mips/mips.c (struct machine_function): Remove
238 embedded_pic_fnaddr_rtx.
239 (TARGET_ENCODE_SECTION_INFO): Remove override.
240 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
241 (override_options): Remove -membedded-pic handling.
242 (print_operand): Remove handling of '%S'.
243 (mips_select_section: Remove -membedded-pic handling.
244 (mips_encode_section_info): Delete.
245 (mips_output_conditional_branch): Remove mention of -membedded-pic.
246 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
247 -membedded-pic handling.
248 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
250 2004-04-22 Alan Modra <amodra@bigpond.net.au>
252 * var-tracking.c (frame_base_decl): Remove useless GTY.
254 2004-04-21 Aldy Hernandez <aldyh@redhat.com>
256 * config/rs6000/rs6000.c (rs6000_override_options): Error when
257 user wants altivec and e500 instructions.
259 2004-04-21 H.J. Lu <hongjiu.lu@intel.com>
262 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
263 in .init_array section to ...
264 * config/ia64/crtbegin.asm: Here.
266 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
267 and hidden if HAVE_INITFINI_ARRAY is defined.
269 2004-04-21 James E Wilson <wilson@specifixinc.com>
271 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
272 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
273 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
274 (fp_register_operand, lo_operand): New.
275 (mips_rtx_costs): Add TUNE_SB1 support.
276 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
277 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
278 (mips_multipass_dfa_lookahead): New.
279 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
281 (TARGET_SWITCHES): Add -mfp-exceptions support.
282 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
283 (BRANCH_COST): Fix whitespace.
284 * config/mips/mips.md: Include sb1.md.
285 * config/mips/sb1.md: New file.
286 * doc/invoke.texi: Document -mfp-exceptions.
288 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
290 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
291 (fixincl.o-warn): Delete.
293 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
295 * config/rs6000/rs6000 (print_operand) ['z']:
296 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
298 2004-04-21 Daniel Jacobowitz <drow@mvista.com>
300 * config.gcc: Support --with-arch=iwmmxt for ARM.
302 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
304 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
305 in two more places; remove unneeded force_reg
307 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
309 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
311 (print_operand): For TARGET_MACHO check to see if we need a stub
312 and output one if we need it.
315 * dwarf2out.c (rtl_for_decl_location): Check for NULL
318 2004-04-20 James E Wilson <wilson@specifixinc.com>
320 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
321 (vall_value_gp): Likewise.
323 2004-04-20 DJ Delorie <dj@redhat.com>
325 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
326 variables stored in word registers, then in memory.
328 2004-04-20 Eric Christopher <echristo@redhat.com>
330 * cp/parser.c (cp_parser_declaration): Move translate
331 up before tokens are lexed.
333 2004-04-20 Uros Bizjak <uros@kss-loka.si>
335 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
336 (asin_optab, acos_optab): Define corresponding macros.
337 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
338 * genopinit.c (optabs): Implement asin_optab and acos_optab
339 using asin?f2 and acos?f2 patterns.
340 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
341 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
342 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
343 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
345 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
346 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
347 acos, acosf and acosl built-ins as inline x87 intrinsics.
349 2004-04-20 Paul Brook <paul@codesourcery.com>
351 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
353 2004-04-20 Paul Brook <paul@codesourcery.com>
355 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
357 2004-04-20 Paolo Bonzini <bonzini@gnu.org>
359 Revert part of 2004-04-17 change that moved -frename-registers
360 to -O1. -frename-registers is buggy.
362 * toplev.c (flag_rename_registers): Initialize to 0.
363 * doc/invoke.texi (Optimize options): Move -frename-registers
364 to "Not triggered by any -O level" section. Adjust commentary
367 2004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
369 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
371 2004-04-20 Richard Sandiford <rsandifo@redhat.com>
373 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
374 for mflo and mfhi instructions.
375 (mips_output_move): Remove mflo and mfhi handling.
376 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
377 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
378 Likewise various define_peephole2s.
379 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
381 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
382 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
383 (mfhilo_di, mfhilo_si): New patterns.
385 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
387 * function.c (assign_parms): Force
388 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
390 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
392 * var-tracking.c (variable_part_different_p): Variable parts differ
393 when the most recent locations differ.
395 2004-04-19 James E Wilson <wilson@specifixinc.com>
397 * rtl.h (reg_set_last): Delete declaration.
398 * rtlanal.c (reg_set_last): Delete.
400 2004-04-19 Roger Sayle <roger@eyesopen.com>
402 * fold-const.c (fold_convert): Make function extern/public.
403 * tree.h (fold_convert): Prototype here.
404 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
405 expand_builtin_strrchr, expand_builtin_strpbrk,
406 expand_builtin_mempcpy, expand_builtin_bcopy,
407 expand_builtin_bzero, expand_builtin_memcmp,
408 expand_builtin_strcmp, expand_builtin_strncmp,
409 stabilize_va_list, expand_builtin_sprintf,
410 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
411 fold_builtin_exponent, fold_builtin_mempcpy,
412 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
413 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
414 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
416 2004-04-19 Aldy Hernandez <aldyh@redhat.com>
418 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
419 (move_from_CR_gt_bit): New.
420 (cceq_ior_compare): Name previously unnamed pattern. Disable for
422 (cceq_rev_compare): Name previously unnamed pattern. Allow for
425 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
431 (e500_cceq_ior_compare): New.
432 (e500_flip_gt_bit): New.
434 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
435 (print_operand): Add 'c' and 'D'.
436 (rs6000_generate_compare): Rewrite to generate correct rtl.
437 (rs6000_emit_sCOND): Handle E500.
438 (output_cbranch): Adjust for changes in rs6000_generate_compare.
439 (output_e500_flip_gt_bit): New.
441 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
444 2004-04-19 Eric Christopher <echristo@redhat.com>
446 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
448 2004-04-19 David Edelsohn <edelsohn@gnu.org>
450 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
453 2004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
455 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
458 2004-04-19 Daniel Jacobowitz <drow@mvista.com>
460 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
461 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
463 2004-04-19 Andrew PInski <pinskia@physics.uc.edu>
465 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
466 (fold_builtin): Update caller to match.
469 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
472 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
474 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
476 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
478 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
479 (expand_mult_highpart_optab): Likewise.
480 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
482 2004-04-19 Paul Brook <paul@codesourcery.com>
484 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
485 floatunssisf2, floatunssidf2): New patterns.
487 2004-04-18 Mark Mitchell <mark@codesourcery.com>
490 * doc/invoke.texi (-fprofile-generate): Document requirement to
491 use -fprofile-generate when linking.
493 * doc/extend.texi (Strong Using): Warn users against using this
496 2004-04-18 Richard Sandiford <rsandifo@redhat.com>
498 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
499 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
500 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
501 * config/mips/mips.c (struct mips16_constant): Renamed from struct
502 constant. Propogate change throughout file.
503 (struct machine_function): Remove insns_len.
504 (mips_string_length, mips16_strings, string_constants): Delete.
505 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
506 when generating mips16 code. Remove special mips16 treatment of
508 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
509 to have the form LABEL+CONSTANT.
510 (mips_symbolic_address_p): Fix comment.
511 (m16_usym8_4, m16_usym5_4): Delete.
512 (mips_output_function_epilogue): Remove mips16 string handling.
513 (mips_output_mi_thunk): Call mips16_lay_out_constants.
514 (mips_select_section, mips_encode_section_info): Remove mips16
516 (struct mips16_constant_pool): New.
517 (add_constant): Take a mips16_constant_pool structure. Keep pool
518 sorted into order of ascending mode size. Keep track of the highest
519 possible start address, taking padding and the masking of the base PC
521 (dump_constants_1): New function, split out from dump_constants.
522 Handle vector constants. Use gen_consttable_{int,float} rather than
523 separate functions for each mode.
524 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
525 rather than separate functions for each alignment.
526 (mips_find_symbol): Delete.
527 (mips16_insn_length): New function, split out from
528 mips16_lay_out_constants.
529 (mips16_rewrite_pool_refs): New function.
530 (mips16_lay_out_constants): Rework. Remove string handling.
531 Always create an inline constant pool.
532 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
533 (UNSPEC_ALIGN): New constants.
534 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
535 (UNSPEC_ALIGN_[248]): Delete.
536 (consttable_int, consttable_float, align): New patterns.
537 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
539 2004-04-17 Aldy Hernandez <aldyh@redhat.com>
541 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
544 2004-04-17 Alan Modra <amodra@bigpond.net.au>
547 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
548 with STARTING_FRAME_OFFSET.
550 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
552 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
553 * config/mips/mips.c (macc_msac_operand): New function.
554 * config/mips/mips.md (*msac): Move after *macc.
555 (*msac2): New. Generalize macc-related peepholes so that they apply
558 2004-04-17 Paolo Bonzini <bonzini@gnu.org>
560 * opts.c (decode_options): Do not enable flag_rename_registers
562 * toplev.c (flag_rename_registers): Initialize
563 flag_rename_registers and flag_web to
564 AUTODETECT_FLAG_VAR_TRACKING.
565 (default_debug_hooks): New global.
566 (process_options): Initialize default_debug_hooks. Warn if
567 -fvar-tracking specified but not supported by the current
568 debug format. Do not run var tracking at -O0 or if not
569 supported by the current debug format, even if
570 -fvar-tracking was given. If -fno-rename-registers
571 is not specified, always run register renaming if var
572 tracking is supported by the default debugging information
573 format for the target, and we are at -O1 or higher; similarly
574 for -fweb, but only at -O2 or higher.
575 * doc/invoke.texi (Optimize Options): Document this.
577 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
579 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
580 * configure: Regenerate.
582 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
584 * gcc.c (used_arg): Check whether an option has been removed.
586 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
588 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
589 debugging on Solaris 7 and up.
591 2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
593 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
595 Remove -save-temps workaround, handled automatically.
596 Require GNU binutils 2.15 for debugging.
597 Remove SGI make warnings since GNU make is now required.
598 (Specific, mips-sgi-irix6): Some markup fixes.
599 Describe MIPSpro C problems and workarounds.
600 Mention working O32 ABI support.
601 Recommend GNU as 2.15 for O32 with debugging.
602 Remove description of fixed structure pass/return bug.
604 2004-04-16 DJ Delorie <dj@redhat.com>
606 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
608 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
610 2004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
612 * pa.md: Remove unnecessary declarations for asm_out_file.
614 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
615 SAR register. Fix comment.
616 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
619 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
621 2004-04-16 Nick Clifton <nickc@redhat.com>
623 * config/arm/arm.c (arm_override_options): Revert previous patch.
624 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
627 2004-04-16 Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
629 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
631 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
632 TARGET_DEFAULT): Changed. Ditto.
633 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
634 TARGET_ENDIAN_DEFAULT): Added. Ditto.
635 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
636 (TARGET_ENDIAN_DEFAULT): Added.
638 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
640 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
641 ATTR_CONST_NOTHROW_LIST.
643 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
646 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
649 2004-04-15 Pat Haugen <pthaugen@us.ibm.com>
651 * ra-debug.c (ra_print_rtx): Add break's to case legs.
653 2004-04-14 James E Wilson <wilson@specifixinc.com>
655 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
657 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
659 * libada-mk.in: New file.
660 * configure.ac: Create libada-mk from libada-mk.in.
661 * configure: Regenerate.
663 2004-04-14 Uros Bizjak <uros@kss-loka.si>
665 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
666 (logb_optab, ilogb_optab): Define corresponding macros.
667 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
668 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
669 using logb?f2 and ilogb?i2 patterns.
670 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
671 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
672 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
673 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
675 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
676 and UNSPEC_XTRACT_EXP.
678 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
679 patterns to implement fxtract x87 instruction.
680 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
681 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
683 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
686 2004-04-14 Eric Christopher <echristo@redhat.com>
688 * config/mips/t-elf: Enable multilibs by default.
690 2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
692 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
693 previous fix to check HAVE_return at runtime too.
695 2004-04-14 Nick Clifton <nickc@redhat.com>
697 * config/arm/arm.c (arm_override_options): If the user has not
698 specified an ABI, then default to AAPCS for the iWMMXt processor.
699 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
700 * config/arm/t-xscale-coff: Likewise.
702 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
704 * builtins.c (fold_builtin_isdigit): New.
705 (fold_builtin): Handle BUILT_IN_ISDIGIT.
706 * defaults.h: Add TARGET_DIGIT0 and sort.
707 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
709 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
711 * builtins.c (fold_builtin_cabs, fold_builtin): Use
712 `mathfn_built_in' to determine the new builtin.
713 * fold-const.c (fold): Likewise.
715 2004-04-14 Richard Sandiford <rsandifo@redhat.com>
717 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
718 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
719 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
720 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
721 (ASM_SPEC): Update accordingly.
722 * config/mips/mips.c: Update after above renaming.
723 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
724 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
726 2004-04-13 James E Wilson <wilson@specifixinc.com>
728 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
729 increment errorcount and return false instead of true.
731 2004-04-13 Uros Bizjak <uros@kss-loka.si>:
733 * optabs.c (expand_twoval_unop): Reorder function arguments.
734 * builtins.c (expand_builtin_mathfn_3): Update calls to
737 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
738 and UNSPEC_TAN_TAN. Add missing comment.
740 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
741 patterns to implement fptan x87 instruction.
742 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
743 and tanl built-ins as inline x87 intrinsics. Define corresponding
744 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
745 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
748 2004-03-13 Richard Henderson <rth@redhat.com>
750 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
753 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
754 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
755 * doc/invoke.texi: Update to match.
757 * varasm.c (unlikely_text_section): Use assemble_align instead of
758 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
759 correct alignment argument.
761 2004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
763 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
764 after setting reg_last_reload_reg for optional output reloads.
766 2004-04-12 Fariborz Jahanian <fjahanian@apple.com>
768 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
769 Definition of these two macros are corrected by adding
770 matchine right paren.
772 2004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
774 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
776 2004-04-12 Roger Sayle <roger@eyesopen.com>
778 * config/i386/i386.c (output_387_reg_move): New function.
779 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
780 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
781 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
782 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
783 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
785 2004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
787 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
789 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
790 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
791 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
792 Use skip_simple_arithmetic to find SAVE_EXPR.
793 (force_type_save_exprs, force_type_save_exprs_1): New functions.
794 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
795 Properly chain multiple pointers.
796 (copy_tree_r): Copy a TYPE_DECL.
797 * tree.c (variably_modified_type_p): Add some missing tests and
798 make some other minor changes.
799 * tree.h (force_type_save_exprs): New declaration.
801 2004-04-12 Roger Sayle <roger@eyesopen.com>
803 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
804 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
805 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
806 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
807 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
808 x%-1 into 0 (or x&0 if x has side-effects).
810 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
812 * config/rs6000/rs6000.md: Document why a pattern is not
815 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
816 of floats on the E500.
817 (branch_positive_comparison_operator): Do not allow NE even on the
820 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
822 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
823 in_text_unlikely_section to in_unlikely_text_section.
825 2004-04-11 Roger Sayle <roger@eyesopen.com>
827 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
828 calling convention to allow a NULL_TREE to be returned. Factor
829 sanity checks from callers, return NULL_TREE when appropriate.
830 (fold): Handle COMPOUND_EXPR operands of binary expressions
831 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
832 whether a op (b,c) can be rewritten as (b, a op c). Simplify
833 calls to fold_binary_op_with_conditional_arg.
835 2004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
837 * config/mips/iris5.h (current_section_flags): Add
838 in_unlikely_executed_text and default case.
840 2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
842 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
843 failure on solaris. Place ifdef HAVE_return around gen_ret call.
844 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
845 HAVE_return and place it around the place where it is needed.
847 2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
849 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
850 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
851 and NORMAL_TEXT_SECTION_NAME.
852 (unlikely_text_section): Check targetm.have_named_sections
853 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
854 instead of SECTION_FORMAT_STRING.
855 * config/mips/iris5.h (current_section_name): Add
856 in_unlikely_executed_text case and move the abort into the switch.
857 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
858 (NORMAL_TEXT_SECTION_NAME): Remove.
859 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
860 (SECTION_FORMAT_STRING): Remove.
861 * defaults.h (SECTION_FORMAT_STRING): Remove.
862 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
863 (SECTION_FORMAT_STRING): Remove.
865 2004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
867 * c-typeck.c (common_type): Prefer long long to long when same
870 2004-04-09 Zack Weinberg <zack@codesourcery.com>
873 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
875 * config/ia64/ia64.c (ia64_hpux_file_end): Check
876 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
878 2004-04-09 Roger Sayle <roger@eyesopen.com>
880 * simplify-rtx.c (mode_signbit_p): New function to check whether
881 an RTX is an immediate constant that represents the most significant
882 bit of a given machine mode.
883 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
885 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
886 when C2 is the sign bit.
887 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
888 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
891 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
893 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
896 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
898 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
899 of TREE_READONLY for types.
901 2004-04-09 Caroline Tice <ctice@apple.com>
903 * basic-block.h (struct edge_def): Add new field, crossing_edge.
904 (struct basic_block_def): Add new field, partition.
905 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
907 (partition_hot_cold_basic_blocks): Add extern function
909 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
911 (N_ROUNDS): Increase the maximum number of rounds by 1.
912 (branch_threshold): Add array value for new round.
913 (exec_threshold): Add array value for new round.
914 (push_to_next_round_p): New function.
915 (add_unlikely_executed_notes): New function.
916 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
917 (mark_bb_for_unlikely_executed_section): New function.
918 (add_labels_and_missing_jumps): New function.
919 (add_reg_crossing_jump_notes): New function.
920 (fix_up_fall_thru_edges): New function.
921 (find_jump_block): New function.
922 (fix_crossing_conditional_branches): New function.
923 (fix_crossing_unconditional_branches): New function.
924 (fix_edges_for_rarely_executed_code): New function.
925 (partition_hot_cold_basic_blocks): New function.
926 (find_traces): Add an extra round for partitioning hot/cold
928 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
929 and only cold blocks, into the last (extra) round of collecting traces.
930 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
932 (bb_to_key): Add code to correctly identify cold blocks when
934 (connect_traces): Modify to connect all the non-cold traces first, then
935 go back and connect up all the cold traces.
936 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
937 * cfg.c (entry_exit_blocks): Add initialization for partition field in
938 entry and exit blocks.
939 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
940 if we are doing hot/cold partitioning.
941 * cfgcleanup.c (cfglayout.h): Add new include statement.
942 (try_simplify_condjump): Modify to not attempt on blocks with jumps
943 that cross section boundaries.
944 (try_forward_edges): Likewise.
945 (merge_blocks_move_predecessor_nojumps): Likewise.
946 (merge_blocks_move_successor_nojumps): Likewise.
947 (merge_blocks_move): Likewise.
948 (try_crossjump_to_edge): Modify to not attempt after we have done
949 the block partitioning.
950 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
951 cross section boundaries.
952 (try_optimize_cfg): Likewise.
953 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
954 jumps that cross section boundaries.
955 * cfglayout.c (flags.h): Add new include statement.
956 (update_unlikely_executed_notes): New function.
957 (fixup_reorder_chain): Add code so when a new jumping basic block is
958 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
959 updated appropriately.
960 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
961 introduced by this optimization.
962 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
963 extern function declaration.
964 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
965 list of notes that can be deleted.
966 (create_basic_block_structure): Add initialization for partition field.
967 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
969 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
970 cross section boundaries.
971 (commit_one_edge_insertion): Add code so newly created basic block
972 ends up in correct (hot or cold) section. Modify to disallow
973 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
974 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
975 crosses section boundaries.
976 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
977 cross section boundaries.
978 (force_nonfallthru_and_redirect): Modify to make sure new basic block
979 ends up in correct section, with correct notes attached.
980 * common.opt (freorder-blocks-and-partition): Add new flag for this
982 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
983 the end of functions are written into the correct (hot or cold)
985 (dbx_source_file): Add code so writing debug file information
986 doesn't incorrectly change sections.
987 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
988 in partitioning hot/cold basic blocks into separate sections.
989 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
990 section partitioning.
991 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
992 conditional branches can span all of memory.
993 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
994 unconditional branches can span all of memory.
995 * final.c (scan_ahead_for_unlikely_executed_note): New function.
996 (final_scan_insn): Add code to check for NOTE instruction indicating
997 whether basic block belongs in hot or cold section, and to make sure
998 the current basic block is being written to the appropriate section.
999 Also added code to ensure that jump table basic blocks end up in the
1001 * flags.h (flag_reorder_blocks_and_partition): New flag.
1002 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
1003 one of the branches has a jump that crosses between sections.
1004 (find_if_case_2): Likewise.
1005 (ifcvt): Modify to not attempt to mark loop exit edges after
1006 hot/cold partitioning has occurred.
1007 * opts.c (decode_options): Code to handle new flag,
1008 flag_reorder_blocks_and_partition; also to turn it off if
1009 flag_exceptions is on.
1010 (common_handle_option): Code to handle new flag,
1011 flag_reorder_blocks_and_partition.
1012 * output.h (unlikely_text_section): New extern function declaration.
1013 (in_unlikely_text_section): New extern function declaration.
1014 * passes.c (rest_of_handle_stack_regs): Add
1015 flag_reorder_blocks_and_partition as an 'or' condition for calling
1016 reorder_basic_blocks.
1017 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
1018 as an 'or' condition for calling reorder_basic_blocks.
1019 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
1020 * print-rtl.c (print_rtx): Add code for handling new note,
1021 NOTE_INSN_UNLIKELY_EXECUTED_CODE
1022 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1023 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1024 cross between section boundaries.
1025 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
1026 indicating the basic block containing it belongs in the cold section.
1027 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1028 between hot and cold sections.
1029 * toplev.c (flag_reorder_blocks_and_partition): Add code to
1030 initialize this flag, and to tie it to the command-line option
1031 freorder-blocks-and-partition.
1032 * varasm.c (cfglayout.h): Add new include statement.
1033 (unlikely_section_label_printed): New global variable, used for
1034 determining when to output section name labels for cold sections.
1035 (in_section): Add in_unlikely_executed_text to enum data structure.
1036 (text_section): Modify code to use SECTION_FORMAT_STRING and
1037 NORMAL_TEXT_SECTION_NAME macros.
1038 (unlikely_text_section): New function.
1039 (in_unlikely_text_section): New function.
1040 (function_section): Add code to make sure beginning of function is
1041 written into correct section (hot or cold).
1042 (assemble_start_function): Add code to make sure stuff is written to
1043 the correct section.
1044 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
1045 to an if statement that was checking 'in_text_section'.
1046 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
1047 condition to an if statement that was checking 'in_text_section'.
1048 (default_section_type_flags_1): Add check: if in cold section
1049 flags = SECTION_CODE.
1050 * config/darwin.c (darwin_asm_named_section): Modify to use
1051 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1052 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1053 specifically for the i386.
1054 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
1055 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1056 text string to something more informative.
1057 (NORMAL_TEXT_SECTION_NAME): Add new definition.
1058 (SECTION_FORMAT_STRING): Add new definition.
1059 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
1060 '!in_unlikely_text_section' as an 'and' condition to an if statement
1061 that was already checking '!in_text_section'.
1062 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1063 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1064 sure these are properly defined for linux on ppc.
1065 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
1067 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
1069 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1070 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1073 2004-04-08 Roger Sayle <roger@eyesopen.com>
1075 * function.c (gen_mem_addressof): When changing the RTX from a REG
1076 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1078 2004-04-08 Roger Sayle <roger@eyesopen.com>
1081 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1082 truncxfdf2_noop): Provide dummy "fmov" implementations.
1084 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
1086 * gcc.c (default_compilers): Add missing initializers.
1088 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1089 Return 1 if file was successfully mapped.
1091 2004-04-08 Geoffrey Keating <geoffk@apple.com>
1096 * doc/invoke.texi (Precompiled Headers): Suggest -o
1097 to put an output file in a particular place. Be more detailed
1098 about which options affect PCH validity and which options
1100 * c-pch.c (pch_matching): New.
1102 (struct c_pch_validity): New field 'match'.
1103 (pch_init): Handle pch_matching.
1104 (c_common_valid_pch): Check pch_matching.
1106 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1108 2004-04-08 Mark Mitchell <mark@codesourcery.com>
1110 * doc/invoke.texi (Precompiled Headers): Warn about known
1113 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
1116 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1117 to 1 if ASM_OUTPUT_DEF is defined.
1118 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1119 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1120 Set to non-zero iff not a one_only decl.
1122 2004-04-08 Paul Brook <paul@codesourcery.com>
1124 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1126 2004-04-08 Paul Brook <paul@codesourcery.com>
1128 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1129 PROMOTE_FOR_CALL_ONLY.
1130 * config/arm/arm-protos.h (arm_function_value): Declare.
1131 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1132 (TARGET_PROMOTE_PROTOTYPES): Return false.
1133 (arm_function_value): New function.
1134 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1135 (FUNCTION_VALUE): Call arm_function_value.
1136 * config/cris/cris.h (PROMOTE_MODE): Rename ...
1137 (PROMOTE_FUNCTION_MODE): ... to this.
1138 (PROMOTE_FOR_CALL_ONLY): Remove.
1139 * config/mmix/mmix.h: Likewise.
1140 * config/s390/s390.h: Likewise.
1141 * config/sparc/sparc.h: Likewise.
1142 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1143 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1144 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1145 (PROMOTE_FOR_CALL_ONLY): Remove.
1147 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1150 * ada/5rosinte.adb: Remove fake mprotect() body.
1151 * ada/5rosinte.ads: Add SA_SIGINFO.
1152 * ada/5rtpopsp.adb: Rewrite to use new interface.
1153 * ada/init.c: Reorder so the simple single OS conditional __rtems__
1154 is tested before more complex ones which mix UNIX and embedded
1155 systems in the conditional.
1157 2004-04-08 Joel Sherrill <joel@oarcorp.com>
1160 * ada/osint.adb (Find_Program_Name): Rework to properly handle
1161 filenames which end in .exe or have versioning suffixes like VMS.
1163 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
1166 * config/darwin.c (darwin_encode_section_info): When the decl has
1167 a DECL_INITIAL, it is only defined also when it is not a common.
1169 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1171 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1172 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1174 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
1176 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1177 global register variables.
1179 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
1181 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1182 rpc_xdr_lvalue_cast_b): New fixes.
1183 * fixinc/fixincl.x: Regenerate.
1184 * fixinc/tests/base/rpc/xdr.h: Add new tests.
1186 2004-04-07 David Edelsohn <edelsohn@gnu.org>
1188 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1189 to power4 and power5 entries.
1191 2004-04-06 Geoffrey Keating <geoffk@apple.com>
1193 * c-common.h (pending_lang_change): Mark for PCH.
1195 2004-04-07 Caroline Tice <ctice@apple.com>
1197 * gcc.c (main): Move 'break' in main loops (on an error)
1198 to wait until error processing has occurred.
1200 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
1202 * config.gcc: Stop changing enable_threads midstream.
1203 Replace uses of enable_threads_flag with enable_threads.
1204 * configure.ac: Replace uses of enable_threads_flag with
1205 enable_threads. Improve autoconf quotation in one place.
1206 * configure: Regenerate.
1208 2004-04-06 Uros Bizjak <uros@kss-loka.si>
1210 * builtins.c: Implement support for sincos function.
1211 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1213 (expand_builtin_mathfn_3): New function.
1214 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1215 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1216 flag_unsafe_math_optimization is set.
1218 * optabs.h (enum optab_index): Add new OTI_sincos.
1219 (sincos_optab): Define corresponding macro.
1221 * optabs.c (init_optabs): Initialize sincos_optab.
1222 (expand_twoval_unop): New function.
1224 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1227 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1228 and UNSPEC_SINCOS_SIN.
1230 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1231 sincosxf3): New patterns to implement sincos, sincosf and sincosl
1232 built-ins as inline x87 intrinsics. Define splits for
1233 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1234 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1236 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1237 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1239 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1242 2004-04-06 Devang Patel <dpatel@apple.com>
1245 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1247 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1249 * doc/install.texi: Update HP-UX 11 installation procedure.
1251 2004-04-06 Paul Brook <paul@codesourcery.com>
1253 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1255 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
1257 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1258 when the TLS address is generated by a function call.
1259 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1260 (tls_local_dynamic): Likewise.
1262 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
1264 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1267 2004-04-05 Caroline Tice <ctice@apple.com>
1269 * gcc.c (combine_flag): New global variable, for new driver option.
1270 (struct compiler): Add two new fields, to be used when
1271 combining multiple input files in a single pass (IMA).
1272 (default_compilers): Add values for the new fields to all
1273 compiler entries. Modify the "@c" compiler entry for doing IMA
1274 properly with "-save-temps" and the "combine" flag.
1275 (option_map): Add new driver option, "--combine", to tell driver
1276 to pass multiple input files to compiler at one time.
1277 (have_o_argbuf_index): New global variable.
1278 (store_arg): Modify to assign value to have_o_argbuf_index.
1279 (struct infile): Add three new fields, to help with IMA.
1280 (display_help): Add help for new "combine" option.
1281 (process_command): Remove local variable have_o; add code to check
1282 for new "combine" option; remove assignment to combine_inputs.
1283 (do_spec_1): Modify to deal with IMA better.
1284 (main): Make variable 'lang_n_infiles' local to entire function
1285 rather than to a single block. Use flag combine_flag to
1286 determine whether to do IMA or not; Modify loop initializing
1287 infiles to deal properly with linker files.
1288 Add code for doing preprocessing in presence of
1289 IMA with "-save-temps" flag. Modify "main" loop to handle
1290 multiple input files, in multiple languages, with or without
1291 preprocessing, gracefully.
1292 * toplev.c (set_src_pwd): Modify to not complain if attempting to
1293 re-set it to same directory it's previously been set to (avoid
1294 irritating, meaningless warning messages when doing IMA with
1296 * doc/invoke.texi: Add "-combine" to list of Overall Options;
1297 remove documentation about IMA that is no longer accurate; Add
1298 documentation explaining what "-combine" does.
1299 * ada/lang-specs.h: Add initialization values for new fields in
1301 * cp/lang-specs.h: Likewise.
1302 * f/lang-specs.h: Likewise.
1303 * java/lang-specs.h: Likewise.
1304 * objc/lang-specs.h: Likewise.
1305 * treelang/lang-specs.h: Likewise.
1307 2004-04-05 David Edelsohn
1309 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1312 2004-04-05 Jakub Jelinek <jakub@redhat.com>
1313 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1315 PR optimization/13424 (hppa), bootstrap/14462, c/14828
1316 * pa.md: Use replace_equiv_address to retain the attributes of the
1317 memory operands used in the split and peephole2 patterns for optimizing
1318 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1320 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1322 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1323 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1324 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1325 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1327 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1329 * print-tree.c (print_node): Properly handle side-effects, readonly,
1331 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1332 and TREE_CONSTANT if not a type.
1333 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1334 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1335 (NON_TYPE_CHECK): New macro.
1336 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1338 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
1340 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1341 to DWARF2_DEBUG unconditionally.
1342 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1344 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
1345 Nathanael Nerode <neroden@gcc.gnu.org>
1348 * config.host: Set the shell variable host_can_use_collect2.
1349 Set it to yes by default, and to no for alpha*-dec-*vms*,
1350 i[34567]86-*-mingw32*, and powerpc-*-beos*.
1351 * configure.ac: Set and substitute the shell variable collect2.
1352 Give an error if use_collect2 is yes and host_can_use_collect2 is
1354 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
1355 uses. Initialize to @collect2@.
1356 (STAGESTUFF): Remove $(USE_COLLECT2).
1357 * config/alpha/x-vms (USE_COLLECT2): Don't set.
1358 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1359 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1360 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1361 * configure: Regenerate.
1363 2004-04-04 Roger Sayle <roger@eyesopen.com>
1365 * simplify-rtx.c (simplify_binary_operation): Constant fold
1366 DIV, MOD, UDIV and UMOD using div_and_round_double.
1368 2004-04-04 Mark Mitchell <mark@codesourcery.com>
1371 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1374 2004-04-04 Mark Mitchell <mark@codesourcery.com>
1376 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1379 2004-04-04 Roger Sayle <roger@eyesopen.com>
1381 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1382 updating the REG_EQUAL note on an insn's libcall_insn.
1384 2004-04-04 Roger Sayle <roger@eyesopen.com>
1386 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1388 2004-04-03 Roger Sayle <roger@eyesopen.com>
1390 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1391 with reorder_operands_p.
1393 2004-04-03 Jan Hubicka <jh@suse.cz>
1395 * md.texi (vec_set, vec_extract, vec_init): Document.
1397 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
1399 * opts.c (decode_options): Do function inlining with very small
1400 max-inline-insns-* parameters when optimizing for size.
1402 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
1404 * config/i386/i386.h (TARGET_NOCONA): New macro.
1405 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1406 (processor_type): Add PROCESSOR_NOCONA.
1408 * config/i386/i386.md (cpu): Add nocona to the attribute values.
1410 * config/i386/i386.c (nocona_cost): New variable.
1411 (m_NOCONA): New macro.
1412 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1413 x86_branch_hints, x86_use_sahf, x86_single_stringop,
1414 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1415 x86_integer_DFmode_moves, x86_partial_reg_dependency,
1416 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1417 x86_decompose_lea, x86_arch_always_fancy_math_387,
1418 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1419 x86_ext_80387_constants, x86_four_jump_limit):
1420 (override_options): Add nocona_cost to processor_target_table.
1421 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1422 (incdec_operand): Prevent inc/dec generation for Nocona too.
1423 (ix86_issue_rate): Add PROCESSOR_NOCONA.
1425 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
1427 * rtlanal.c (find_reg_note): Manually
1430 2004-04-01 Mark Mitchell <mark@codesourcery.com>
1432 * genemit.c (gen_split): Change prototype of generated code.
1433 * genrecog.c (write_action): Adjust prototype for and calls to
1435 * gensupport.c (struct queue_elem): Add split field.
1436 (queue_pattern): Return a value. Clear the split field.
1437 (process_rtx): Maintain an association between an insn and the
1438 split generated from it for a define_insn_and_split.
1439 (process_one_cond_exec): Generate a new split for a
1440 define_insn_and_split.
1441 * config/arm/arm-protos.h (arm_split_constant): Add insn
1443 (emit_constant_insn): New function.
1444 (arm_gen_constant): Use it.
1445 * config/arm/arm.md: Adjust calls to arm_split_constant.
1447 2004-04-02 Jan Hubicka <jh@suse.cz>
1449 * cgraph.c: Add overall comment.
1450 (cgraph_inline_hash): New global variable.
1451 (cgraph_create_node): Break out from ...
1452 (cgraph_node): ... here.
1453 (cgraph_edge): New function.
1454 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1455 (cgraph_remove_edge): Accept edge, intead of source and destination.
1456 (cgraph_redirect_edge_callee): New.
1457 (cgraph_remove_node): Update all new datastructures.
1458 (cgraph_record_call, cgraph_remove_call): Kill.
1459 (dump_cgraph_node): Break out from ... ; dump new datastructures.
1460 (dump_cgraph): ... here.
1461 (cgraph_function_possibly_inlined_p): Use new hashtable.
1462 (cgraph_clone_edge, cgraph_clone_node): New.
1463 * cgraph.h: Include hashtab.h
1464 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1465 fields, add inlined_to pointer.
1466 (cgraph_node): Add pointer to next_clone.
1467 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1468 (cgraph_remove_call, cgraph_record_call): Kill.
1469 (cgraph_inline_hash): Declare.
1470 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1471 cgraph_redirect_edge_callee): Declare.
1472 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1473 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1474 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1475 * cgraphunit.c: Add overall comment.
1476 (cgraph_optimize_function): Kill.
1477 (cgraph_assemble_pending_functions): Do not assemble inline clones.
1478 (cgraph_finalize_function): Update call of cgraph_remove_node
1479 (record_call_1): Record call sites.
1480 (cgraph_create_edges): Accept node instead of decl argument.
1481 (error_found): New static variable.
1482 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1483 (cgraph_analyze_function): Update for new datastructures.
1484 (cgraph_finalize_compilation_unit): Plug memory leak.
1485 (cgraph_optimize_function): Kill.
1486 (cgraph_expand_function): Do not use cgraph_optimize_function.
1487 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1488 cgraph_inlined_callees): Kill.
1489 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1491 (estimate_growth): Simplify.
1492 (cgraph_clone_inlined_nodes): New function.
1493 (cgraph_mark_inline_edge): Re-implement.
1494 (cgraph_mark_inline): Likewise.
1495 (cgraph_check_inline_limits): Simplify.
1496 (cgraph_recursive_inlining_p): New.
1497 (update_callee_keys): Break out from ...
1498 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1499 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1501 (cgraph_expand_all_functions): Remove inline clones from the ordered
1503 (cgraph_preserve_function_body_p): New predicate.
1504 (cgraph_optimize): Verify cgraph.
1505 * function.h (struct function): Add fields saved_tree/saved_args.
1506 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1507 * toplev.c (rest_of_compilation): Do not free cfun.
1508 * tree-inline.c: Include function.h
1509 (struct inline_data): Add saving_p field; replace decl/current_decl by
1511 (insert_decl_map): New function.
1512 (copy_body_r): Handle saving; update cgraph datastructure.
1513 (copy_body): Handle recursive inlining.
1514 (initialize_inlined_parameters): Likewise.
1515 (expand_call_inline): Propagate node attributes; update cgraph.
1516 (optimize_inline_calls): Verify that datastructure still match.
1517 (save_body): New function.
1518 * tree-inline.h (save_body): New.
1519 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1520 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1521 * langhooks.c (lang_hooks): Add update_decl_after_saving.
1523 2004-04-01 Serge Belyshev <1319@bot.ru>
1526 * config/i386/i386.md: fix source operand constraints in
1527 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1529 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
1531 * fold-const.c (folda): Preserve types of comparisons.
1533 2004-04-01 Richard Henderson <rth@redhat.com>
1535 * toplev.c (backend_init): Move init_optimization_passes call ...
1536 (lang_dependent_init): ... here.
1538 2004-04-01 Alan Modra <amodra@bigpond.net.au>
1539 Jakub Jelinek <jakub@redhat.com>
1541 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1542 -lgcc --as-needed -lgcc_s --no-as-needed by default.
1543 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1544 * configure: Rebuilt.
1545 * config.in: Rebuilt.
1546 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1547 (stage2-start, stage3-start, stage4-start): Likewise.
1548 (stageprofile-start, stagefeedback-start): Likewise.
1550 2004-04-01 Jakub Jelinek <jakub@redhat.com>
1552 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1553 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1554 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1555 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1556 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1557 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1558 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1559 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1560 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1561 * config/sparc/t-linux: Removed.
1563 2004-04-01 Jakub Jelinek <jakub@redhat.com>
1566 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1567 "bitfld++ == const" to "++bitfld == const + incr" transformations.
1569 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1571 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1572 * stor-layout.c (layout_decl): Likewise.
1573 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1574 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1575 * print-tree.c (print_node): Handle various used of unsigned_flag.
1576 * tree.def (BIT_FIELD_REF): Update comment.
1577 * tree.h (TREE_UNSIGNED): Deleted.
1578 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1580 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1582 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1583 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1584 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1585 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1586 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1587 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1588 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1589 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1590 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1591 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1592 REAL_TYPE, not INTEGER_TYPE.
1593 (layout_type, case VECTOR_TYPE): Simplify code.
1594 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1595 * tree.h: Update comments.
1596 (STRIP_NOPS): Use TYPE_UNSIGNED.
1597 (TYPE_UNSIGNED): New macro.
1598 (TYPE_TRAP_SIGNED): Remove now redundant check.
1599 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1601 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1603 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1605 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
1607 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1608 Add darwin-fpsave.asm, darwin-vecsave.asm,
1609 and darwin-world.asm.
1610 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1611 as the asm files contain altivec instructions.
1612 * config/rs6000/darwin-fpsave.asm: New file.
1613 * config/rs6000/darwin-vecsave.asm: New file.
1614 * config/rs6000/darwin-world.asm: New file.
1616 2004-03-31 Zack Weinberg <zack@codesourcery.com>
1618 * gengtype-yacc.y (option, stringseq): Add missing
1619 terminating semicolon.
1621 2004-03-30 David Edelsohn <edelsohn@gnu.org>
1623 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1624 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1625 tls_dtprel_ha_32, tls_dtprel_ha_64,
1626 tls_dtprel_lo_32, tls_dtprel_lo_64,
1627 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1628 tls_tprel_ha_32, tls_tprel_ha_64,
1629 tls_tprel_lo_32, tls_tprel_lo_64,
1630 tls_got_tprel_32, tls_got_tprel_64,
1631 tls_tls_32, tls_tls_64): Replace register_operand with
1634 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
1636 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1637 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1638 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1639 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1640 *ctrdi_internal6): Replace register_operand with
1641 nonimmediate_operand.
1643 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
1645 * fold-const.c (fold): Reassociate multiply expression
1646 with an adjacent non-multiply expression to use
1647 architecture's multiply-add instruction.
1649 2004-03-30 Zack Weinberg <zack@codesourcery.com>
1651 * gengtype.c (create_option): New function.
1652 * gengtype.h: Prototype it.
1653 * gengtype-yacc.y (stringseq): New rule.
1654 (option): Use create_option. Add new bare ID production. Use
1655 stringseq, not STRING directly.
1657 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1658 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1659 * varray.h, config/alpha/alpha.c:
1660 Use new shorter form of GTY markers.
1662 * doc/gty.texi: Rewrite.
1664 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
1666 * config/darwin.c (machopic_function_base_name):
1667 Remove current_name and getting the name of the
1670 2004-03-30 Nick Clifton <nickc@redhat.com>
1672 * config/arm/arm.md (thumb_jump): Reduce the backward branch
1673 range, and increase the forward branch range, to allow for
1674 the fact that the PC will be off by 4.
1676 2004-03-30 Alan Modra <amodra@bigpond.net.au>
1678 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1680 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
1682 * config/rs6000/rs6000.c (output_vec_const_move):
1683 Find all cases of EASY_VECTOR_15_ADD_SELF.
1684 (easy_vector_constant_add_self): Accept
1685 all vector constant loadable by vsplt* and vadd*.
1686 (easy_vector_same): Use easy_vector_splat_const.
1687 (easy_vector_const): Use easy_vector_splat_const.
1688 (easy_vector_splat_const): New function.
1689 (gen_easy_vector_constant_add_self): New function.
1691 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1694 * config/rs6000/altivec.md (movv4si splitter): Change to
1695 emit move insn with halfed vector constant.
1696 (*movv8hi splitter): Likewise.
1697 (*movv16qi splitter): Likewise.
1699 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
1702 * config/rs6000/rs6000.c (rs6000_legitimate_address):
1703 Allow any offset to argument pointer in no-strict case.
1705 2004-03-30 Jan Hubicka <jh@suse.cz>
1707 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1708 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1709 dump file in non-unit-at-a-time mode.
1711 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
1713 * config/cris/cris.h: Correct #ifdef to test for
1714 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1715 HAVE_AS_MUL_BUG_ABORT_OPTION.
1717 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1719 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1720 the address inside the old RTL.
1722 2004-03-28 Zack Weinberg <zack@codesourcery.com>
1724 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1725 (struct c_binding, struct c_scope): Add chain_next
1726 attributes to GTY markers.
1727 (struct lang_identifier, struct lang_tree_node): Define
1729 * c-tree.h: ... not here. No longer need to declare struct
1730 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1731 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1732 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1735 * c-decl.c (get_parm_info): If error_mark_node is encountered
1736 in the bindings chain, unbind and discard it; don't abort.
1738 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
1739 Dorit Naishlos <dorit@il.ibm.com>
1741 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1742 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1744 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
1746 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1748 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1749 (m68hc11_attribute_table): New attribute "page0" to mark a global
1750 variable as being allocated from within page0 section.
1751 (m68hc11_encode_label): New function.
1752 (m68hc11_strip_name_encoding): New function.
1753 (m68hc11_page0_symbol_p): New function.
1754 (m68hc11_indirect_p): Accept global variables marked in page0.
1755 (m68hc11_encode_section_info): Lookup "page0" attribute.
1757 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1758 represents access to page0 variables.
1760 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1761 ("*logicalsi3_silshl16_zext"): Likewise.
1762 ("*ashldi3_const32"): Likewise.
1763 (peephole2 ashift): Likewise.
1765 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
1767 * c-tree.h (C_DECL_REGISTER): New.
1768 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1769 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1770 (build_array_ref, c_mark_addressable): Set and use it.
1771 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1772 Allow structures with volatile fields to be declared register.
1773 Don't check TREE_ADDRESSABLE before warning about taking address
1775 * c-decl.c (finish_decl): Don't allow structures with volatile
1776 fields to be placed in named register.
1777 * doc/trouble.texi: Remove reference to structures with volatile
1778 fields in registers.
1780 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
1782 * function.c (thread_prologue_and_epilogue): Move
1783 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1784 before the epilogue.
1786 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
1788 * expr.c (store_constructor): Use gen_int_mode to correctly
1789 sign-extend CONST_INT value.
1791 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1793 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1794 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
1795 * doc/extend.texi: Likewise.
1797 2004-03-26 Diego Novillo <dnovillo@redhat.com>
1799 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1800 with TYPE_ORIG_SIZE_TYPE.
1802 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
1805 * c-typeck.c (build_binary_op): Do not allow comparisons of
1808 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
1810 * config.gcc: Remove sparc-tti-*.
1811 * config/sparc/pbd.h: Delete.
1813 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1814 * config/sparc/aout.h: Likewise.
1816 * config/sparc/sparc.h: Remove if 0'd code.
1817 * config/sparc/sparc.md (call): Remove if 0'd code.
1818 (call_value): Likewise.
1819 (nonlocal_goto): Likewise.
1820 (unimp_insn): Delete.
1822 2004-03-25 Roger Sayle <roger@eyesopen.com>
1824 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1825 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1827 2004-03-25 Richard Henderson <rth@redhat.com>
1830 * c-typeck.c (pop_init_level): Emit pending init elements earlier
1833 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1835 * builtins.c (fold_builtin): Fix error in last change.
1837 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
1839 * config/mips/mips.h: Formatting fix.
1841 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1843 * builtins.def: Add ctype builtins.
1844 * doc/extend.texi: Likewise.
1846 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1848 * builtins.c (fold_builtin): Add new builtin optimizations for
1850 * fold-const.c (fold): Likewise.
1852 2004-03-25 David Edelsohn <edelsohn@gnu.org>
1854 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1855 (rs6000_sched_groups): New variable.
1856 (processor_target_table): Add power5.
1857 (rs6000_override_options): Set rs6000_sched_insert_nops,
1858 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1859 from rs6000_sched_groups.
1860 (output_cbranch): Use rs6000_always_hint.
1861 (rs6000_variable_issue): Use rs6000_sched_groups.
1862 (rs6000_adjust_cost): Add CPU_POWER5.
1863 (is_microcoded_insn): Use rs6000_sched_groups.
1864 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1865 Return 2 for POWER5 cracked instructions.
1866 (is_cracked_insn): Use rs6000_sched_groups.
1867 (is_branch_slot_insn): Use rs6000_sched_groups.
1868 (rs6000_issue_rate): Add CPU_POWER5.
1869 (rs6000_sched_finish): Use rs6000_sched_groups.
1870 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1871 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1872 (DEFAULT_SCHED_COSTLY_DEP): Delete.
1873 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1874 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1875 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1876 * config/rs6000/power5.md: New file.
1877 * doc/invoke.texi: Add power5 option.
1879 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1881 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1882 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1883 * doc/invoke.texi: Fix a typo.
1885 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1887 PR optimization/9707.
1888 * stmt.c (emit_case_nodes): Emit equality comparisons instead
1889 of recursing if both children are single-valued cases with no
1892 2004-03-25 Paul Brook <paul@codesourcery.com>
1894 * config/arm/arm.c (vfp_print_multi): Remove.
1895 (arm_output_fldmx): New function.
1896 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1897 (arm_expand_prologue): Update to match.
1898 (arm_get_vfp_saved_size): New Function.
1899 (arm_get_frame_offsets): Use it.
1900 (arm_output_epilogue): Use new functions.
1902 2004-03-24 Richard Henderson <rth@redhat.com>
1904 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1905 (reg_known_value, reg_known_value_size): Likewise; make static.
1906 (reg_known_equiv_p): Make static.
1907 (clear_reg_alias_info): Update for new indexing.
1908 (get_reg_known_value, set_reg_known_value): New.
1909 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1910 (canon_rtx): Use them.
1911 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
1912 Don't play queer offsetting games with reg_known_value and
1914 (end_alias_analysis): Free reg_known_value with gc.
1915 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1916 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1917 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1920 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
1922 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1923 config/i386/mmintrin.h: Update copyright.
1925 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1927 * configure.ac: Add --enable-werror-always (for top level bootstrap
1929 * configure: Regenerate.
1931 2004-03-24 Ziemowit Laski <zlaski@apple.com>
1933 * objc/objc-act.c (objc_comptypes): Treat comparisons
1934 between 'Class' and '<class> *' as explicitly invalid.
1936 2004-03-24 David Edelsohn <edelsohn@gnu.org>
1938 * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1939 (-fprofile-values): Add enabled with profile-{generate,use}.
1941 (-ftracer): Add enabled with profile-use.
1942 (-funit-at-a-time): Add enabled at -O2,-O3.
1943 (-funroll-loops): Add enabled with profile-use.
1944 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
1945 (max-gcse-passes): Mention default.
1946 (max-cse-path-length): Mention default.
1948 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1950 * Makefile.in (STRICT2_WARN): Reorder.
1951 * configure.ac: Check for -Wold-style-definition, and use it
1952 in strict1_warn if it's available.
1953 * configure: Regnerate.
1955 2004-03-24 Paul Brook <paul@nowt.org>
1957 * config.gcc <arm>: Add --with-abi=
1958 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1959 thumb_far_jump_used): Remove prototypes.
1960 (arm_needs_doubleword_align): Add prototype.
1961 (thumb_compute_initial_elimination_offset): Ditto.
1962 * config/arm/arm.c (arm_get_frame_offsets): New function.
1963 (use_return_insn, output_return_instruction, arm_output_epilogue,
1964 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1965 arm_expand_prologue, thumb_expand_epilogue): Use it.
1966 (arm_abi, target_abi_name, all_arm_abis): New variables.
1967 (arm_override_options): Set them. Set structure padding for AAPCS.
1968 (arm_return_in_memory): Update ABI check.
1969 (arm_init_cumulative_args): Initialize can_split.
1970 (arm_needs_doubleword_align): New function.
1971 (arm_function_arg): Don't split args after pushing to stack. Handle
1972 doubleword/even reg alignment.
1973 (arm_va_arg): Handle all doubleword aligned args.
1974 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1976 (arm_compute_save_reg0_reg12_mask): Fix comment.
1977 (thumb_get_frame_size, thumb_get_frame_size): Remove.
1978 (thumb_jump_far_used_p): Remove superfluous argument. Return save
1979 value for alignment.
1980 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1982 (thumb_compute_initial_elimination_offset): New function.
1983 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
1984 unneccessary rounding.
1985 * config/arm/arm.h (target_abi_name): Declare.
1986 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1987 arm_abi_type, ARM_DEFAULT_ABI): Define.
1988 (ARM_FLAG_ATPCS): Remove.
1989 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1990 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1991 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1992 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1993 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1994 Contitionalize on ABI, not CPU.
1995 (struct arm_stack_offsets): Define.
1996 (struct machine_function): Add stack_offsets. Remove frame_size.
1997 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1999 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2000 doubleword alignment.
2001 (THUMB_INITIAL_ELIMINATION_OFFSET,
2002 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2003 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2004 * config/arm/arm.md (align_8): Enable for all targets.
2005 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2006 (ARM_DEFAULT_ABI): Define.
2007 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2008 -mstructure-size-boundary.
2010 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
2012 * configure.ac: Check for -Wno-variadic-macros; don't use
2013 -pedantic (in stage 1 or a simple 'make all') unless it's available,
2014 and if it's available, use it. Also, clean up check for
2016 * configure: Regenerate.
2018 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
2020 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2021 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2022 (MULTILIB_DEFAULTS): Use it.
2023 (MIPS_CPU_STRING_DEFAULT): Remove.
2024 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2025 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
2026 EABI64 -mlong32 the default ABI. Enforce the default architecture.
2027 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2028 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2029 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2030 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
2033 2004-03-24 DJ Delorie <dj@redhat.com>
2034 Richard Sandiford <rsandifo@redhat.com>
2036 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2037 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2038 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2039 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2040 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2041 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2042 if TARGET_FIX_VR4122.
2043 * config/mips/mips.md (define_attr length): Account for nops inserted
2044 after macc and dmult when using -mfix-vr4122-bugs.
2045 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2046 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2047 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
2048 * config/mips/vr4122-div.S: New file.
2049 * doc/invoke.texi: Document -mfix-vr4122-bugs.
2051 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
2053 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2054 (TARGET_MIPS4130): New macro.
2055 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2056 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2057 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2058 with PROCESSOR_R4130.
2059 * config/mips/mips.md (define_attr cpu): Add r4130.
2060 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2062 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2063 Richard Sandiford <rsandifo@redhat.com>
2065 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2067 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
2069 PR preprocessor/14438
2070 * cpplib.c (do_pragma): Remove line_change call after pragma
2073 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
2075 * doc/extend.texi (ARM Built-in Functions): Replace with correct
2078 2004-03-23 Roger Sayle <roger@eyesopen.com>
2080 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2081 if flag_unsafe_math_optimizations.
2082 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2083 and TARGET_80387 expand using truncdfsf2_noop pattern.
2084 (truncxfsf2): Likewise using truncxfsf2_noop.
2085 (truncxfdf2): Likewise using truncxfdf2_noop.
2086 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2088 2004-03-23 Ziemowit Laski <zlaski@apple.com>
2090 * hooks.c (hook_constcharptr_tree_null): New hook.
2091 * hooks.h (hook_constcharptr_tree_null): New prototype.
2092 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2093 * target.h (mangle_fundamental_type): New target hook.
2094 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2095 target hook at rs6000_mangle_fundamental_type.
2096 (rs6000_mangle_fundamental_type): New function.
2097 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2099 2004-03-23 Zack Weinberg <zack@codesourcery.com>
2101 PR 12267, 12391, 12560, 13129, 14114, 14133
2102 * c-tree.h: Forward declare struct c_binding. Declare
2103 c_override_bindings_to_false. Update prototypes.
2104 (struct lang_identifier): Update comments. Change fields to be
2106 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2107 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2108 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2109 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2110 * c-common.h: Update prototypes.
2111 * c-decl.c (struct c_scope): Update commentary. Remove names,
2112 names_last, parms, parms_last, tags, and shadowed fields. Add
2113 bindings and depth fields.
2114 (scope_freelist): Move to more appropriate location.
2115 (c_print_identifier): Update for changes to struct lang_identifier.
2116 (objc_mark_locals_volatile): Update for new bindings structures.
2117 (global_bindings_p): Honor c_override_global_bindings_to_false.
2118 (pushlevel): Rename to push_scope; take no arguments; use the
2119 scope_freelist; initialize scope->depth and check for overflow.
2120 (poplevel): Rename to pop_scope; totally rewritten for new bindings
2122 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2123 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
2124 Improve some commentary. Adjust handling of forward parm decls.
2125 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2126 Preserve C_DECL_IN_EXTERNAL_SCOPE.
2127 (warn_if_shadowing): Correct indentation. Improve diagnostics.
2128 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
2129 decls. Rewrite for new bindings structures. Improve commentary.
2130 Eliminate the copy_node call.
2131 (implicit_decl_warning): Use the "diag" idiom (as seen in
2132 locate_old_decl) to reduce code duplication; call locate_old_decl
2133 if appropriate. Relocate to remove need for forward declaration.
2134 (implicitly_declare): Adjust for new bindings structures. Kludge
2135 around Objective-C not-really-builtin functions.
2136 (undeclared_variable): Improve diagnostics. If current_function_decl
2137 is nonnull but current_function_scope is null, use current_scope.
2139 (lookup_tag): Adjust for new bindings structures. Kludge around
2140 Objective-C's tag declarations that wind up in the external scope.
2141 (lookup_name): Adjust for new bindings structures. Kludge around
2142 c-common.c's pseudo-typedefs that wind up in the external scope.
2143 (lookup_name_current_level): Rename lookup_name_in_scope; take a
2144 second argument indicating the scope to examine; rewrite for
2145 new bindings structures.
2146 (c_init_decl_processing): Adjust for renamed functions. Do not
2147 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2148 First scope pushed is the external scope, not the global scope.
2149 (builtin_function): Use bind, not pushdecl. Adjust other bits
2150 for new data structures. Keep track of builtins that should be
2151 made visible automatically.
2152 (start_decl): Adjust diagnostics. Remove unnecessary call to
2154 (grokparms): Return 0 if arg_types is error_mark_node.
2155 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2156 reversed sense. Rewrite for new bindings structures. Do not
2157 leave any decls in the scope, to prevent pop_scope from doing
2158 contradictory things with them.
2159 (finish_struct, finish_enum): Remove redundant diagnostics.
2160 (build_enumerator): Don't cascade diagnostics for error_mark_node.
2161 Mark location where -pedantic changes the meaning of the program.
2162 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2163 parameter decls into the function's scope structure using bind.
2164 Warn here about function definitions in the wrong style.
2166 (store_parm_decls): Correct the determination of whether a
2167 function was defined with a prototype.
2168 (c_write_global_declarations): Operate on all file decls and on
2169 the external scope. Split body of the loop to...
2170 (c_write_global_declarations_1): ... this new function, to avoid
2172 (truly_local_externals, first_builtin_decl, last_builtin_decl)
2173 (make_scope, pop_scope, in_parm_level_p, set_block)
2174 (any_external_decl, record_external_decl, bind_label, getdecls)
2175 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2176 (c_reset_state): Delete.
2177 (visible_builtins, c_override_global_bindings_to_false)
2178 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2179 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2180 (external_scope, binding_freelist, bind, free_binding_and_advance)
2181 (push_file_scope, pop_file_scope): New.
2182 (pushtag, pushdecl_top_level, lookup_label, declare_label)
2183 (define_label, c_make_fname_decl, finish_decl)
2184 (mark_forward_parm_decls, build_compound_literal)
2185 (grokdeclarator, start_function, check_for_loop_decls)
2186 (identifier_global_value, record_builtin_type): Minor adjustments
2187 for new bindings structures. Improve diagnostics and commentary.
2188 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2189 pushlevel/poplevel respectively.
2190 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2191 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2192 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
2193 correct loop over multiple translation units; call fatal_error if
2194 requested to compile more than one file at once. (This disables
2195 IMA temporarily - an up-front error being preferable to a crash.)
2196 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2197 (all actions): Adjust calls to pushlevel/poplevel.
2198 (parsing_iso_function_signature): Delete.
2199 (extdef_1): Fold into extdef.
2200 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
2201 warn here about function definitions in the wrong style.
2202 (after_tyle_declarator, parm_declarator_starttypename)
2203 (parm_declarator_nostarttypename, notype_declarator): Remove
2204 commented-out productions.
2205 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2206 an empty TREE_LIST node. Adjust calls to get_parm_info.
2207 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2208 to suppress -Wold-style-definition after this error.
2209 (c_parse_file): Don't clear the binding stack or call
2210 finish_fname_decls here. Correct comment.
2211 * c-typeck.c (same_translation_unit_p): Export.
2212 (common_type): Use c_override_global_bindings_to_false, not
2213 pushlevel/poplevel/declare_parm_level.
2214 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2215 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2216 and LANG_HOOKS_GETDECLS with do-nothing stubs.
2217 * objc/objc-lang.c: Likewise.
2218 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2220 (OBJC_VOID_AT_END): Delete; replace all uses
2221 with void_list_node.
2222 (generate_forward_declaration_to_string_table): Delete.
2223 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2225 * coverage.c (create_coverage): Don't pushdecl anything.
2226 * langhooks.c (lhd_clear_binding_stack): Call
2227 lang_hooks.decls.poplevel, not poplevel.
2228 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2229 circular list rather than going into an infinite loop.
2231 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
2233 * optabs.c (expand_binop): When synthesizing double word rotates
2234 from single word shifts, use a new register target if the provided
2235 target is not a REG already.
2237 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2239 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2240 * c-common.c (handle_mode_attribute): Add extra arg to
2241 build_pointer_type_for_mode and build_reference_type_for_mode.
2242 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2244 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2245 Chain pointers via TYPE_NEXT_PTR_TO.
2246 (build_reference_type_for_mode): Similarly.
2247 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2248 and build_reference_type_for_mode.
2249 (tree_check4_failed): New function.
2250 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2251 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2252 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2255 2004-03-23 Roger Sayle <roger@eyesopen.com>
2257 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2258 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
2259 when both A and B are nonnegative.
2260 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2263 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2265 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2266 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2268 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
2270 PR optimization/14669
2271 * fold-const.c (fold): Only unwiden integer comparisons for equality
2272 and inequality operators, or when the signedness doesn't change.
2274 2004-03-23 Jakub Jelinek <jakub@redhat.com>
2276 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2277 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2278 * config/sparc/t-linux: New file.
2280 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
2282 * gcse.c (can_assign_to_reg_p): New function, split out from...
2283 (want_to_gcse_p): ...here.
2284 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2287 2004-03-22 Diego Novillo <dnovillo@redhat.com>
2289 * c-typeck.c (same_translation_unit_p): Fix pasto.
2291 2004-03-22 David Edelsohn <edelsohn@gnu.org>
2293 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2294 (PARAM_MAX_SCHED_REGION_INSNS): New.
2295 * sched-rgn.c: Include params.h
2296 (MAX_RGN_BLOCKS): Delete.
2297 (MAX_RGN_INSNS): Delete.
2298 (too_large): Return bool. Convert to PARAM_VALUE.
2299 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2300 * doc/invoke.texi (param): Document max-sched-region-blocks and
2301 max-sched-region-insns.
2303 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2305 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2308 2004-03-22 Joel Brobecker <brobecker@gnat.com>
2310 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2313 2004-03-22 Jakub Jelinek <jakub@redhat.com>
2316 * c-decl.c (finish_struct): Change type of incorrect flexible array
2317 field into error_mark_node.
2319 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
2322 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2323 who are not local for Darwin PIC.
2325 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
2327 * regrename.c (regrename_optimize): Set regs_ever_live for all
2328 registers introduced as replacement.
2330 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2333 * expr.c (mark_queue): New function.
2334 (emit_insns_enqueued_after_mark): New function replacing
2335 emit_queue. Clear the body of emitted queued insns.
2336 (emit_queue): Call emit_insns_enqueued_after_mark.
2337 (store_expr): Mark the increment queue on entry. Emit
2338 only the incrementations queued when expanding the source.
2340 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
2342 * configure.ac: Allow --disable-coverage-flags (for the future benefit
2343 of top level bootstrap, and consistency). Reindent.
2344 * configure: Regenerate.
2346 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
2348 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2349 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2352 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
2355 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2358 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2360 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2361 to nonimmediate_operand.
2362 ("*doloop_di"): Likewise.
2364 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
2366 * real.h (struct real_value): Use the same type for all
2367 bitfields. Rename exp to uexp.
2368 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2369 Adjust all uses of exp...
2370 * builtins.c: ... here, ...
2371 * emit-rtl.c: ... here, and ...
2372 * real.c: ... and here.
2374 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
2376 * pretty-print.c (pp_base_maybe_space): New function.
2377 * pretty-print.h (pp_base_maybe_space): Declare.
2378 (pp_maybe_space): New macro.
2380 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2382 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2384 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
2386 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2387 of using register multiplication cost.
2388 (expand_mult): Adapt choose_mult_variant call.
2389 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2390 of MODE; pass appropriate cost bound. Adjust result when
2391 performing signed multiplication by a negative constant.
2392 Don't use intermediate modes larger than word_mode.
2394 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2396 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2397 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2398 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2399 * explow.c (expr_size): Likewise.
2400 * expr.h (placeholder_list, find_placeholder): Deleted.
2401 * expr.c (store_constructor): Likewise.
2402 (get_inner_reference): Likewise. Also don't call find_placeholder.
2403 (placeholder_list, find_placeholder): Deleted.
2404 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2405 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2406 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2407 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2408 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2410 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2411 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2412 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2413 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2414 Clean up by using first_rtl_op.
2415 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2416 (substitute_placeholder_in_expr): New function.
2417 * tree.def (WITH_RECORD_EXPR): Deleted.
2418 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2419 (substitute_placeholder_in_expr): New.
2421 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
2423 * dojump.c (prefer_and_bit_test): Fix which part of
2424 the and_test is replaced.
2426 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
2428 * frontends.texi: Add missing line.
2430 2004-03-21 Zack Weinberg <zack@codesourcery.com>
2431 Chris Devers <cdevers@pobox.com>
2432 Joseph S. Myers <jsm@polyomino.org.uk>
2434 * doc/frontends.texi: Rewrite.
2435 * doc/gcc.texi: Update last modification date.
2437 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
2439 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2440 message before redirecting the edge.
2442 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2444 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2446 * explow.c (force_not_mem): Set REG_POINTER flag according to
2448 * rtl.h (MEM_POINTER): New macro.
2449 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2452 2004-03-20 Roger Sayle <roger@eyesopen.com>
2455 * cse.c (fold_rtx): Avoid substituting constants into unary
2456 conversion operations.
2458 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2460 * fold-const.c (fold): Replace "expr" with "t".
2462 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
2465 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2466 DECL_ORIGINAL_TYPE if there isn't one.
2468 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2470 * fold-const.c (fold): Replace "final_type" with "type".
2471 Remove variable "final_type".
2473 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2475 * fold-const.c (fold): Constify "type".
2476 Replace "TREE_TYPE (t)" with "type".
2478 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2480 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2481 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2482 via (*targetm.foo) () with targetm.foo ().
2484 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
2487 * doc/install.texi: Add info directory category and entry.
2489 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2491 * fold-const.c (fold): Replace "t" with "tem" where it is used
2492 as a temporary variable. Remove "orig_t" and all of its uses.
2494 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2496 * fold-const.c (fold): Remove variable "invert".
2497 Move the handling of relational expressions that can be folded
2499 (fold_relational_const): ... here.
2500 (tree_expr_nonzero_p): New.
2502 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
2505 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2508 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
2510 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2511 (GTFILES): Add $(srcdir)/dojump.h.
2512 (gt-dojump.h): New dependency.
2513 * dojump.c (and_reg, and_test, shift_test): New static variables.
2514 (prefer_and_bit_test): New function.
2515 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2517 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2519 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2520 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2521 reorg.c, tree.h: Fix comment typos.
2523 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2525 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2526 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2527 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2528 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2529 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2530 vmsdbgout.c: Replace calls via (*targetm.foo) () with
2533 2004-03-19 Ziemowit Laski <zlaski@apple.com>
2535 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2536 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2537 always_inline attribute.
2538 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2539 Treat expansion as completed even if literal argument is
2540 invalid (so that other expansions are not tried in vain).
2542 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2544 * loop-doloop.c (add_test): Replace GEN_INT (0) with
2547 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2549 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2551 (fold_abs_const): ... here.
2553 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2555 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2557 2004-03-19 Denis Chertykov <denisc@overta.ru>
2560 * config/avr/avr.md ("call_insn"): Handle explicit integer
2562 (call_value_insn): Likewise.
2564 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2566 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2568 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
2570 * fold-const.c (negate_expr): Move the handling of constants
2572 (fold_negate_const): ... here.
2574 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2576 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2577 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2578 * tree.c (debug_no_type_hash): Deleted.
2579 (type_hash_canon): Abort if passed a variant.
2580 Check lang_hooks.types.hash_types.
2581 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2582 (build_array_type): Remove unnecessary allocation of pointer type.
2583 (build_complex_type): Properly qualify resulting type.
2585 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
2587 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2589 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
2591 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2592 (expand_mult): ...here.
2593 (extract_high_half): New, split out from expand_mult_highpart.
2594 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
2595 (expand_highpart): Evaluate the cost of a shift/add sequence,
2596 then see if any of the specialized optabs are cheaper.
2598 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
2600 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2602 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2604 * convert.c (convert_to_real): Add more math builtins.
2606 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2608 * convert.c (convert_to_real): Reformat using switch stmt.
2610 2004-03-18 Mark Mitchell <mark@codesourcery.com>
2612 * c-common.c (pointer_int_sum): Do not complain about using
2613 pointers to pointers-to-members.
2615 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
2617 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2618 have moved to the target hooks structure".
2620 2004-03-18 James E Wilson <wilson@specifixinc.com>
2622 * config/mips/mips.md (type): Split move into arith and fmove. Split
2623 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
2624 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2626 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2628 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2629 rm7_fp_quick): Likewise.
2630 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2631 rm9k_fquick): Likewise.
2632 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2634 (ir_sr70_icmp): Delete.
2636 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2638 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2639 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2640 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2641 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2642 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2643 Protect with proper check.
2644 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2645 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2646 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2647 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2648 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2649 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2651 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2653 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
2655 * gcse.c (eliminate_partially_redundant_loads): Reject change if
2656 dest is set between beginning and current insn.
2658 2004-03-18 Mark Mitchell <mark@codesourcery.com>
2660 * c-decl.c (grokdeclarator): Do not complain about redeclaring
2661 visible "static" identifiers "extern" in a local scope.
2662 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2663 post-increments/decrements.
2665 2004-03-18 Bob Wilson <bob.wilson@acm.org>
2667 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2668 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2669 (xtensa_va_start): Remove assignment to current_function_arg_words.
2671 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
2673 * alias.c (record_set): Detect the case where a register is assigned
2674 a new value that has the same base term as the old one.
2676 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2678 * doloop.c: Removed.
2679 * loop-doloop.c: New file.
2680 * Makefile.in (doloop.o): Remove.
2681 (loop-doloop.o): New.
2682 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2683 * cfgloopanal.c (get_loop_level): New function.
2684 * loop-iv.c (iv_number_of_iterations): Handle case when loop
2685 is leaved immediatelly.
2686 * loop.c (strength_reduce): Do not call doloop optimization.
2687 * loop.h (LOOP_BCT): Removed.
2688 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2689 (rest_of_handle_loop2): Call doloop_optimize_loops.
2690 (rest_of_compilation): Test for optimizations moved to
2691 rest_of_handle_loop2.
2693 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
2695 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2697 (rs6000_emit_prologue): Ditto.
2698 (rs6000_emit_epilogue): Ditto.
2699 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2700 macro for mixed mode.
2702 2004-03-18 Jan Hubicka <jh@suse.cz>
2704 * predict.c (propagate_freq): Compute correctly frequency of
2707 2004-03-17 Eric Christopher <echristo@redhat.com>
2709 * builtins.c (apply_args_size): Use reg_raw_mode.
2710 (apply_result_size): Ditto.
2712 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2715 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2717 2004-03-17 Jakub Jelinek <jakub@redhat.com>
2719 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2720 32-bit builds when defaulting to 32-bit.
2722 2004-03-17 Jan Hubicka <jh@suse.cz>
2724 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2727 2004-03-17 James E Wilson <wilson@specifixinc.com>
2729 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2730 (hazard_nop): Change type to nop.
2731 (type): Split arith into arith, shift, slt, clz. Delete darith.
2732 Fix all uses. Change arith to multi if more than one insn emitted.
2733 * config/mips/5400.md (ir_vr54_arith): Likewise.
2734 * config/mips/5500.md (ir_vr55_arith): Likewise.
2735 * config/mips/7000.md (rm7_int_other): Likewise.
2736 * config/mips/9000.md (rm9k_int): Likewise.
2737 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2739 2004-03-17 Joel Brobecker <brobecker@gnat.com>
2741 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2742 to hold the subtype tree instead of recomputing it several times.
2744 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
2746 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2748 * config/mn10300/mn10300.md (cc): Remove "invert".
2750 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2752 * builtins.c (integer_valued_real_p): Add builtin rint.
2753 (fold_builtin): Likewise.
2754 * convert.c (convert_to_real): Likewise.
2756 * convert.c (convert_to_real): Fix typos in `long double'
2759 2004-03-16 Mark Mitchell <mark@codesourcery.com>
2762 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2763 generated COMPOUND_EXPRs.
2765 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2767 * config/h8300/t-rtems (h8300-*-rtems*): New.
2769 2004-03-16 Eric Christopher <echristo@redhat.com>
2771 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2773 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
2775 * config/i386/i386-protos.h: Add a prototype for
2776 ix86_reverse_condition.
2777 * config/i386/i386.c (ix86_reverse_condition): New.
2778 * config/i386/i386.h (REVERSE_CONDITION): Use
2779 ix86_reverse_condition.
2780 * config/i386/i386.md: Use ix86_reverse_condition instead of
2783 2004-03-16 J. Brobecker <brobecker@gnat.com>
2785 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2787 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
2790 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2792 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
2794 * c-common.c (c_common_type_for_mode): Build vector types on
2796 (handle_mode_attribute): Deprecate using the mode attribute
2797 to create vector types. Fix indentation.
2798 (vector_type_node_list): Remove.
2799 (handle_vector_size_attribute): Create vector types on demand.
2800 Strip a NON_LVALUE_EXPR from the attribute if there is one.
2801 * c-typeck.c (comptypes): Make vector types compatible if they
2802 have the same underlying mode.
2803 (convert_for_assignment): Use comptypes to convert between
2805 * tree.c (build_common_tree_nodes_2): Do not create vector types.
2806 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2808 * tree.h: Remove vector types.
2809 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2810 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2811 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2812 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2813 * doc/extend.texi (Vector Types): Document how to use the
2814 vector_size attribute to create vectors, rather than mode.
2816 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2817 * config/i386/emmintrin.h: Likewise.
2818 * config/i386/mmintrin.h: Likewise.
2819 * config/i386/xmmintrin.h: Likewise.
2820 * config/sh/ushmedia.h: Likewise.
2822 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
2824 * config/freebsd-spec.h, config/arc/arc-protos.h,
2825 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2826 config/arm/linux-gas.h, config/arm/semi.h,
2827 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2828 config/ia64/freebsd.h, config/mips/7000.md,
2829 config/mips/9000.md, config/ns32k/ns32k-protos.h,
2830 config/sparc/pbd.h: Update copyright.
2832 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2835 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
2837 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
2839 * combine.c (combine_simplify_rtx): Remove the "last"
2840 parameter and its documentation. Adjust recursive calls.
2841 (simplify_logical): Always perform the only simplification
2842 controlled by "last", if the simplified expression is
2844 (try_combine): Do not pass the "last" parameter to
2845 combine_simplify_rtx.
2847 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
2850 * config/mips/mips.md (UNSPEC_GP): New constant.
2851 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2852 an UNSPEC instead of (reg $gp).
2853 (mips16_gp_pseudo_reg): Change accordingly.
2854 (print_operand): Print $gp directly when handling CONST_GP_P.
2856 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
2858 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2859 * longlong.h: Make code 68060 clean when compiling for m68060.
2861 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
2863 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2864 * doc/md.texi: Clarify description of "i" constraint.
2866 2004-03-15 James E Wilson <wilson@specifixinc.com>
2868 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2869 Split store into store, fpstore, fpidxstore. Fix all uses.
2870 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2872 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2873 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2874 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2875 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2876 ir_sr70_fstore): Likewise.
2878 2004-03-15 Richard Henderson <rth@redhat.com>
2881 * except.c (collect_one_action_chain): Record action for cleanup
2882 outer of exception spec.
2884 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
2886 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2887 Fix the check for abort and only do the mmap if we can.
2889 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
2891 * config/sparc/sparc.h: Rework comments about the code model
2892 in 64-bit environment and the mode 'Pmode'.
2893 * doc/invoke.texi (SPARC options): Rework description of the
2894 different code models supported in 64-bit environment.
2896 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2898 * defaults.h (REVERSIBLE_CC_MODE): Define.
2899 * jump.c (reversed_comparison_code_parts): Don't check if
2900 REVERSIBLE_CC_MODE is defined.
2902 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2904 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2905 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2906 hosthooks.h, params.h, ra-colorize.c, web.c,
2907 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2908 config/avr/avr-protos.h, config/avr/avr.md,
2909 config/fr30/fr30-protos.h, config/fr30/fr30.md,
2910 config/h8300/fixunssfsi.c, config/i386/darwin.h,
2911 config/i386/freebsd.h, config/i386/freebsd64.h,
2912 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2913 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2914 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2915 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2916 config/pa/pa64-regs.h, config/rs6000/aix41.h,
2917 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2918 config/sparc/aout.h, config/sparc/freebsd.h,
2919 config/sparc/litecoff.h, config/vax/vax-protos.h,
2920 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2923 2004-03-15 Paul Brook <paul@codesourcery.com>
2925 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2927 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
2929 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2930 (pp_c_cv_qualifier): Document.
2931 (pp_c_space_for_pointer_operator): Likewise.
2932 (pp_c_integer_constant): Likewise.
2933 (pp_c_identifier): Likewise.
2934 (pp_c_init_declarator): Don't print function body.
2936 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
2938 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2939 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2940 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2941 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
2942 wording and grammar.
2944 2004-03-14 Roger Sayle <roger@eyesopen.com>
2946 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2947 with lang_hooks.foo ().
2948 * builtins.c (expand_builtin_va_arg): Likewise.
2949 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2950 c_common_type_for_mode, c_common_nodes_and_builtins,
2951 handle_mode_attribute, handle_vector_size_attribute): Likewise.
2952 * c-convert.c (convert): Likewise.
2953 * c-format.c (check_format_types): Likewise.
2954 * c-objc-common.c (c_tree_printer): Likewise.
2955 * c-typeck.c (build_unary_op, build_conditional_expr,
2956 build_binary_op): Likewise.
2957 * calls.c (try_to_integrate, expand_call,
2958 emit_library_call_value_1): Likewise.
2959 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2961 * cgraphunit.c (record_call_1, cgraph_analyze_function,
2962 cgraph_expand_function): Likewise.
2963 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2964 * coverage.c (build_fn_info_type, build_ctr_info_type,
2965 build_gcov_info, create_coverage): Likewise.
2966 * dbxout.c (dbxout_init): Likewise.
2967 * diagnostic.c (diagnostic_report_current_function): Likewise.
2968 * dojump.c (do_jump): Likewise.
2969 * dwarf2out.c (dwarf2_name): Likewise.
2970 * except.c (init_eh): Likewise.
2971 * explow.c (expr_size, int_expr_size): Likewise.
2972 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2974 * expr.c (store_expr, store_constructor, safe_from_p,
2975 expand_expr_real, do_store_flag, try_casesi): Likewise.
2976 * function.c (push_function_context_to, pop_function_context_from,
2977 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2978 put_var_into_stack, allocate_struct_function, current_function_name):
2980 * integrate.c (copy_decl_for_inlining, expand_inline_function):
2982 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2983 lhd_print_error_function): Likewise.
2984 * opts.c (handle_option, decode_options): Likewise.
2985 * passes.c (open_dump_file): Likewise.
2986 * print-tree.c (print_node): Likewise.
2987 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2988 expand_decl_cleanup, emit_case_nodes): Likewise.
2989 * stor-layout.c (variable_size): Likewise.
2990 * toplev.c (announce_function, wrapup_global_declarations,
2991 check_global_declarations, compile_file, default_tree_printer,
2992 process_options, lang_dependent_init, finalize): Likewise.
2993 * tree-dump.c (dequeue_and_dump): Likewise.
2994 * tree-inline.c (remap_decl, remap_block, copy_body_r,
2995 initialize_inlined_parameters, declare_return_variable,
2996 inlinable_function_p, expand_call_inline, optimize_inline_calls,
2997 walk_tree, copy_tree_r): Likewise.
2998 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2999 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3000 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3001 variably_modified_type_p, dump_tree_statistics): Likewise.
3002 * varasm.c (assemble_variable, compare_constant, copy_constant,
3003 force_const_mem, compute_reloc_for_constant, output_constant,
3004 output_addressed_constants, initializer_constant_valid_p): Likewise.
3006 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
3008 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3010 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
3012 * doc/install.texi: Reflect autoconf and automake version for
3013 libffi. Update autoconf version to 2.59.
3015 2004-03-13 Roger Sayle <roger@eyesopen.com>
3017 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3018 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3019 make_range, build_range_check, fold_range_test, unextend,
3020 constant_boolean_node, fold_binary_op_with_conditional_arg,
3021 fold_truthop, fold_mathfn_compare, fold_inf_compare,
3022 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3023 with lang_hooks.foo ().
3025 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
3027 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3029 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
3031 * doc/install.texi: Note status of -fnew-ra.
3033 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3036 * expr.c (store_expr): Call emit_queue before generating the move
3037 from the temporary to the original target. Protect the temporary
3040 2004-03-13 Jakub Jelinek <jakub@redhat.com>
3043 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3044 other than UNSPEC_GOTOFF.
3046 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
3048 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
3049 to arm_legitimate_index_p. Update all callers with SET as default
3051 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
3052 range if OUTER is a sign-extend operation on QImode. Correctly
3053 reject shift operations on sign-extended QImode addresses.
3054 (bad_signed_byte_operand): Delete.
3055 (arm_extendqisi_mem_op): New function.
3056 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
3057 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
3059 (CONSTRAINT_LEN): New.
3060 (EXTRA_CONSTRAINT): Delete. Replace with...
3061 (EXTRA_CONSTRAINT_STR): ... this.
3062 (PREDICATE_CODES): Remove bad_signed_byte_operand.
3063 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
3064 is now always default.
3065 (define_splits for bad sign-extend loads): Delete.
3066 (arm_extendqisi, arm_extendqisi_v5): Likewise.
3067 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3068 Rework 'U' constraint to 'Uv'.
3069 * arm-protos.h: Remove bad_signed_byte_operand. Add
3070 arm_extendqisi_mem_op.
3071 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3074 2004-03-13 Alan Modra <amodra@bigpond.net.au>
3076 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3077 with targetm version.
3080 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3081 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3082 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3083 Update all users of RS6000_ARG_SIZE.
3084 (function_arg_advance): Count fregno using mode size.
3085 (function_arg): Handle long double split over regs and memory.
3086 (function_arg_partial_nregs): Likewise.
3087 (rs6000_va_arg): Repackage complex args.
3089 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
3092 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3093 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3094 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3096 2004-03-12 Jakub Jelinek <jakub@redhat.com>
3098 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3100 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3101 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3103 2003-03-12 Andrew Pinski <apinski@apple.com>
3105 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3106 Use ret instead of result. Use addr instead of base.
3108 2004-03-12 David Edelsohn <edelsohn@gnu.org>
3110 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3111 fixes required by libstdc++ and update installation instructions
3114 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
3116 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3117 leading '@' on fastcall symbols before stripping suffix.
3119 2004-03-12 Roger Sayle <roger@eyesopen.com>
3121 * combine.c (unmentioned_reg_p): New function to check whether an
3122 expression is a "specialization" of another, i.e. that there are
3123 no registers or memory references mentioned in the first that don't
3124 appear in the second.
3125 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3126 (combine_instructions): Also try combining instructions using the
3127 REG_EQUAL note from a preceding log-linked instruction.
3129 2004-03-12 Roger Sayle <roger@eyesopen.com>
3131 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3133 2004-03-12 Matt Austern <austern@apple.com>
3135 * target.h (struct gcc_target): New target hook, unwind_label.
3136 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3137 * output.h (default_emit_unwind_label): New function.
3138 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3139 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3140 (TARGET_SUPPORTS_HIDDEN): New target macro.
3141 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3142 that corresponds to this FDE.
3143 (FRAME_BEGIN_LABEL): Allow target to override default label.
3144 (output_call_frame_info): If FDEs are linknonce, then use extra
3145 indirection for FDE encoding, output a label for each FDE, and
3146 output an empty label for each function without an FDE.
3147 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3148 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3149 decls with DECL_ONE_ONLY set, if that macro is defined.
3150 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3151 for a SUPPORTS_ONE_ONLY target.
3152 * config/darwin-protos.h (darwin_unique_section): Declare.
3153 (darwin_asm_named_section): Likewise.
3154 (darwin_section_type_flags): Likewise.
3155 (darwin_non_lazy_pcrel): Likewise.
3156 (darwin_emit_unwind_label): Likewise.
3157 (darwin_make_decl_one_only): Likewise.
3158 * config/darwin.c (machopic_finish): Get rid of tweak that
3159 eliminate stubs for symbols that are defined.
3160 (darwin_encode_section_info): Don't treat weak functions as defined.
3161 (darwin_make_decl_one_only): Define.
3162 (darwin_asm_named_section): Likewise.
3163 (darwin_section_type_flags): Likewise.
3164 (darwin_unique_section): Likewise.
3165 (darwin_emit_unwind_label): Likewise.
3166 (darwin_non_lazy_pcrel): Likewise.
3167 (darwin_asm_output_dwarf_delta): Difference between two labels is
3168 local only if both labels are local.
3169 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3170 (ASM_MAKE_LABEL_LINKONCE): Likewise.
3171 (TARGET_SUPPORTS_HIDDEN): Likewise.
3172 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3173 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3174 (FRAME_BEGIN_LABEL): Likewise.
3175 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3176 (ASM_DECLARE_FUNCTION_NAME): Likewise.
3177 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3178 (TARGET_ASM_UNIQUE_SECTION): Define.
3179 (EH_FRAME_SECTION_NAME): Define.
3180 (EH_FRAME_SECTION_ATTR): Likewise.
3181 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3182 (TARGET_ASM_NAMED_SECTION): Likewise.
3183 (TARGET_SECTION_TYPE_FLAGS): Likewise.
3184 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3185 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3186 TARGET_ASM_EMIT_UNWIND_LABEL.
3188 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3190 * builtins.c (expand_builtin_mathfn): Add pow10* to the
3191 existing exp10* case.
3192 (expand_builtin): Likewise.
3194 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3196 * doc/tm.texi (registers) <Values in Registers>: Add
3197 entry for REGMODE_NATURAL_SIZE.
3199 2004-03-12 Richard Henderson <rth@redhat.com>
3202 * target.h (struct gcc_target): Move calls substructure before
3203 booleans. Add split_complex_arg.
3204 * function.c (assign_parms, split_complex_args): Use it.
3205 * calls.c (expand_call): Likewise.
3206 (split_complex_values): Likewise. Check for splittable types
3207 before allocating memory.
3208 (split_complex_types): Likewise.
3209 * system.h (SPLIT_COMPLEX_ARGS): Poison.
3210 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3211 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3212 * config/alpha/alpha.c (alpha_split_complex_arg): New.
3213 (TARGET_SPLIT_COMPLEX_ARG): New.
3214 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3215 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3216 (rs6000_override_options): Zap it for non-AIX.
3217 (rs6000_function_value): Use targetm.calls.split_complex_arg.
3218 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3219 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3220 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3221 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3222 SPLIT_COMPLEX_ARGS entry.
3224 2004-03-11 Richard Henderson <rth@redhat.com>
3226 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3227 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3228 (alpha_emit_xfloating_arith): Update to match.
3229 (alpha_emit_xfloating_compare): Likewise.
3230 (alpha_emit_xfloating_cvt): Likewise.
3231 (alpha_emit_xfloating_libcall): Take already built symbol,
3233 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3236 2004-03-11 Richard Henderson <rth@redhat.com>
3239 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3241 * simplify-rtx.c (simplify_relational_operation): Fix typo.
3243 2004-03-11 Richard Henderson <rth@redhat.com>
3246 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3248 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3251 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3252 defined, pass small BLKmode values in registers in the low-order part.
3254 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
3256 * combine.c (if_then_else_cond): Check for NULL return value of
3257 simplify_gen_subreg.
3259 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3262 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3263 TARGET_SINGLE_FLOAT.
3265 2004-03-11 Steve Ellcey <sje@cup.hp.com>
3267 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3268 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3269 * config/ia64/ia64.c (ia64_init_libfuncs): New.
3270 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3272 2004-03-11 Roger Sayle <roger@eyesopen.com>
3274 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3275 -((int)X>>C) where C is an integer constant one bit less than the
3276 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
3277 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3279 * simplify-rtx.c (simplify_unary_operation): Also implement the
3280 above transformations at the RTL level.
3282 2004-03-11 Alan Modra <amodra@bigpond.net.au>
3284 * real.c (encode_ibm_extended): Do round low word.
3286 2004-03-11 Ben Elliston <bje@wasabisystems.com>
3288 * config/arm/arm.md (is_xscale): Comment this attribute and move
3289 it a bit further up in the file, closer to related attributes.
3291 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3293 * config/host-solaris.c (sol_gt_pch_use_address): Add
3294 missing terminating marker to comment.
3296 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
3298 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3299 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3300 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3301 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
3302 move_operand as source predicate in all cases.
3303 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
3304 Test reg_or_0_operand. Use move_operand as source predicate.
3305 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
3306 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3307 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
3308 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3309 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
3310 Use move_operand as source predicate. Remove 'K' constraint.
3311 (*movqi_internal): Likewise movqi_internal.
3312 (*movsf_hardfloat): Renamed from movsf_internal1. Test
3313 reg_or_0_operand. Use move_operand as source predicate.
3314 (*movsf_softfloat): Likewise movsf_internal2.
3315 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3316 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3317 (*movdf_softfloat): Likewise movdf_internal2.
3318 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3319 for DImode if !TARGET_64BIT.
3320 (mips_legitimize_move): Simplify accordingly.
3322 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
3325 * var-tracking.c (struct variable_def): Added field refcount.
3326 (variable_htab_free): Decrease the refcount and delete variable
3327 only if there are no more references.
3328 (unshare_variable): New function.
3329 (vars_copy_1): Increase refcount instead of copying the variable.
3330 (variable_union): Share the variables where possible, unshare
3331 the variables if needed.
3332 (variable_different_p): Return false if var1 and var2 are
3334 (variable_was_changed): Init the refcount of new variable.
3335 (set_frame_base_location): Unshare variable if needed.
3336 (set_variable_part): Init the refcount of new variable.
3337 Unshare the variables if needed.
3338 (delete_variable_part): Unshare the variables if needed.
3339 (emit_notes_for_differences_1): Init the refcount of new variable.
3340 (vt_add_function_parameters): Do not add function parameters to
3341 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3342 (vt_initialize): Do not add frame_base_decl to IN set of
3343 ENTRY_BLOCK_PTR because it is unused anyway.
3345 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
3347 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3348 (vars_copy): Likewise.
3349 (variable_union): Likewise.
3350 (set_variable_part): Likewise.
3351 (delete_variable_part): Likewise.
3353 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
3355 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3356 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3357 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3358 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3359 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3360 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3361 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3362 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3363 config/stormy16/stormy16.c: Fix comment typos and formatting.
3365 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
3367 * configure: Regenerate, since I forgot to while committing Paolo's
3370 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
3373 Move language detection to the top level.
3374 * configure.ac: Remove code to detect languages,
3375 it now lives exclusively in the top level.
3376 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3377 top level, renamed to ACX_PROG_GNAT.
3379 2004-03-10 Richard Henderson <rth@redhat.com>
3381 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3383 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3384 and host_xmake_file fragments.
3385 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3386 (gt_pch_restore): Similarly for gt_pch_use_address.
3387 (default_gt_pch_get_address): New.
3388 (mmap_gt_pch_get_address): Split out of gt_pch_save.
3389 (default_gt_pch_use_address): Split out of gt_pch_restore.
3390 (mmap_gt_pch_use_address): Likewise.
3391 * hooks.c (hook_voidp_size_t_null): Remove.
3392 (hook_bool_voidp_size_t_false): Remove.
3393 * hooks.h: Likewise.
3394 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3395 default_ or mmap_ definitions.
3396 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3397 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3398 and gt_pch_use_address.
3399 * config/host-linux.c, config/host-solaris.c: New files.
3400 * config/x-linux, config/x-solaris: New files.
3401 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3402 Update for changed definition.
3403 (darwin_rs6000_gt_pch_use_address): Likewise.