]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
1022abd673e73fa93f4e96710cc59de9664b94dc
[gcc.git] / gcc / ChangeLog
1 2004-08-09 Mark Mitchell <mark@codesourcery.com>
2
3 * config.gcc (arm*-*-eabi*): New target.
4 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
5 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6 * expmed.c (expand_divmod): Try a two-valued divmod function as a
7 last resort.
8 * gthr.h: Remove bogus tokens at end of #pragma.
9 * optabs.c (expand_twoval_binop_libfunc): New function.
10 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
11 (prepare_float_lib_cmp): Try reversing the condition.
12 (debug_optab_libfuncs): New function.
13 * optabs.h (expand_twoval_binop_libfunc): Declare.
14 * config/arm/arm.c (arm_init_libfuncs): New function.
15 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
16 (TARGET_INIT_LIBFUNCS): Define it.
17 * config/arm/arm.h (TARGET_BPABI): New macro.
18 * config/arm/arm-protos.h
19 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
20 * config/arm/bpabi.S: New file.
21 * config/arm/bpabi.c: Likewise.
22 * config/arm/bpabi.h: Likewise.
23 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
24 (__aeabi_drsub): Likewise.
25 (__aeabi_dsub): Likewise.
26 (__aeabi_dadd): Likewise.
27 (__aeabi_ui2d): Likewise.
28 (__aeabi_i2d): Likewise.
29 (__aeabi_f2d): Likewise.
30 (__aeabi_dmul): Likewise.
31 (__aeabi_ddiv): Likewise.
32 (__aeabi_cdrcmple): Likewise.
33 (__aeabi_cdcmpeq): Likewise.
34 (__aeabi_cdcmple): Likewise.
35 (__aeabi_dcmpeq): Likewise.
36 (__aeabi_dcmplt): Likewise.
37 (__aeabi_dcmple): Likewise.
38 (__aeabi_dcmpge): Likewise.
39 (__aeabi_dcmpgt): Likewise.
40 (__aeabi_dcmpun): Likewise.
41 (__aeabi_d2iz): Likewise.
42 (__aeabi_d2uiz): Likewise.
43 (__aeabi_d2f): Likewise.
44 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
45 (__aeabi_frsub): Likewise.
46 (__aeabi_fsub): Likewise.
47 (__aeabi_fadd): Likewise.
48 (__aeabi_ui2f): Likewise.
49 (__aeabi_i2f): Likewise.
50 (__aeabi_fmul): Likewise.
51 (__aeabi_fdiv): Likewise.
52 (__aeabi_cfrcmple): Likewise.
53 (__aeabi_cfcmpeq): Likewise.
54 (__aeabi_cfcmple): Likewise.
55 (__aeabi_fcmpeq): Likewise.
56 (__aeabi_fcmplt): Likewise.
57 (__aeabi_fcmple): Likewise.
58 (__aeabi_fcmpge): Likewise.
59 (__aeabi_fcmpgt): Likewise.
60 (__aeabi_fcmpun): Likewise.
61 (__aeabi_f2iz): Likewise.
62 (__aeabi_f2uiz): Likewise.
63 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
64 (__aeabi_uidivmod): New function or alias.
65 (__aeabi_idivmod): Likewise.
66 (__aeabi_idiv0): Likewise.
67 (__aeabi_ldiv0): Likewise.
68 (__aeabi_llsr): Likewise.
69 (__aeabi_lasr): Likewise.
70 (__aeabi_llsl): Likewise.
71 (bpabi.S): Include it.
72 * config/arm/libgcc-bpabi.ver: New file.
73 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
74 (LINK_SPEC): Remove.
75 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
76 __aeabi_ulcmp.
77 * config/arm/t-bpabi: New file.
78 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
79 (TARGET_LIB_INT_CMP_BIASED): Likewise.
80
81 2004-08-10 David Edelsohn <edelsohn@gnu.org>
82
83 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
84 * config/rs6000/rs6000.md (clrmemsi): New pattern.
85 * config/rs6000/rs6000.c (expand_block_clear): New function.
86 (expand_block_move): Convert alignment to bits. Use SImode and
87 HImode for unaligned addresses if not STRICT_ALIGNMENT.
88
89 2004-08-10 Caroline Tice <ctice@apple.com>
90
91 * varasm.c (unlikely_section_label): New global variable.
92 (unlikely_text_section_name): New global variable.
93 (text_section): Remove alignment statement.
94 (unlikely_text_section): Remove alignment statement; use
95 unlikely_section_label rather than hard-coded string.
96 (assemble_start_function): Initialize unlikely_section_label and
97 unlikely_text_section_name; make sure cold section is properly
98 aligned at start of function; output unlikely_section_label if
99 appropriate.
100
101 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
102
103 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
104 * config/s390/s390.c (s390_canonicalize_comparison): New function.
105 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
106 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
107 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
108 ("*tmqi_mem"): Remove SUBREG from pattern.
109 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
110 ("*andsi3_cconly"): Likewise.
111
112 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
113
114 PR target/16909
115 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
116
117 2004-08-10 Janis Johnson <janis187@us.ibm.com>
118
119 * doc/sourcebuild.texi (compat testing): Document available test
120 framework commands. Use the preferred spelling of DejaGnu.
121
122 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
123
124 * lambda.h: Add matrix type, and prototypes for remainder of
125 matrix and vector functions.
126 (lambda_vector_mult_const): New function.
127 (lambda_vector_negate): Ditto.
128 (lambda_vector_add): Ditto.
129 (lambda_vector_add_mc): Ditto.
130 (lambda_vector_copy): Ditto.
131 (lambda_vector_zerop): Ditto.
132 (lambda_vector_equal): Ditto.
133 (lambda_vector_min_nz): Ditto.
134 (lambda_vector_first_nz): Ditto.
135 (lambda_vector_matrix_mult): Ditto.
136 * lambda-mat.c: New file.
137 * Makefile.in (lambda-mat.o): New.
138
139 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
140
141 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
142 after linking stmt into the program.
143 (bsi_remove): Don't call modify_stmt.
144 * tree-complex.c (update_complex_assignment,
145 expand_complex_comparison): Call modify_stmt after changing the stmt.
146 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
147 removing the stmt.
148 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
149 the stmt, and only if needed.
150 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
151 expression.
152 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
153 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
154 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
155 (eliminate_redundant_computations): Don't pass an annotation. Call
156 modify_stmt rather than setting the annotation directly.
157 (record_equivalences_from_stmt): Remove unused local 'j'.
158 (cprop_operand): Take a stmt rather than an annotation as a parameter.
159 Call modify_stmt.
160 (cprop_into_stmt): Pass stmt rather than annotation.
161 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
162 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
163 modify_stmt.
164 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
165
166 2004-08-10 Jason Merrill <jason@redhat.com>
167
168 PR middle-end/16948
169 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
170 the RESULT_DECL.
171
172 2004-08-10 Geoffrey Keating <geoffk@apple.com>
173
174 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
175 hash function.
176
177 2004-08-10 Roger Sayle <roger@eyesopen.com>
178
179 * config/mips/mips.md: New reciprocal square root patterns that
180 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
181
182 2004-08-10 Paul Brook <paul@codesourcery.com>
183
184 * config/arm/arm-protos.h (arm_set_return_address,
185 thumb_set_return_address): Add prototypes.
186 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
187 * config/arm/arm.c (arm_compute_func_type,
188 use_return_insn, arm_compute_save_reg0_reg12_mask,
189 arm_compute_save_reg_mask, arm_output_function_prologue,
190 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
191 current_function_calls_eh_return.
192 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
193 old eh code.
194 (arm_set_return_address, thumb_set_return_address): New functions.
195 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
196 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
197 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
198 (epilogue): Use the stackadj register.
199 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
200
201 2004-08-10 Jakub Jelinek <jakub@redhat.com>
202
203 PR target/3144
204 * expr.c (move_by_pieces_ninsns): Add max_size argument.
205 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
206 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
207 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
208 but using MOVE_RATIO.
209 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
210 (can_store_by_pieces): Change max_size type to unsigned int.
211 (store_by_pieces_1): Likewise. Pass max_size to
212 move_by_pieces_ninsns.
213 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
214 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
215 to move_by_pieces_ninsns.
216 (STORE_BY_PIECES_P): Define.
217 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
218 to move_by_pieces_ninsns.
219 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
220
221 * config/i386/i386.h (CLEAR_RATIO): Define.
222
223 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
224
225 * expr.c (expand_expr_real_1): Add back code that was not dead.
226
227 2004-08-09 Andrew Pinski <apinski@apple.com>
228
229 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
230 which is found to be compatible before returning the aliasing set.
231
232 2004-08-09 Daniel Jacobowitz <dan@debian.org>
233
234 * ggc-zone.c (struct alloc_zone): Add statistics counters.
235 (always_collect): New flag.
236 (ggc_alloc_zone_1): Update statistics support. Don't include
237 overhead in allocated counter.
238 (sweep_pages): Update allocated counter for large pages. Don'y
239 include overhead.
240 (ggc_collect_1): Always collect.
241 (ggc_collect): Honor always_collect flag. Sum all zones to decide
242 whether to collect.
243 (SCALE, LABEL): New macros.
244 (ggc_print_statistics): Add statistics support.
245
246 2004-08-09 Roger Sayle <roger@eyesopen.com>
247
248 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
249 (init_expmed): Fix potential overrun problem with "all.reg".
250 (expand_sdiv2_pow2): Add an alternate implementation for signed
251 division, if the target provides a suitable conditional move insn.
252
253 2004-08-09 Paul Brook <paul@codesourcery.com>
254 Richard Henderson <rth@redhat.com>
255
256 * unwind-dw2.c (uw_install_context_1): Update target saved stack
257 pointer.
258
259 2004-08-09 Geoffrey Keating <geoffk@apple.com>
260
261 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
262 Check DATA limit only if there's no AS limit. Ignore insanely
263 low DATA limits.
264 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
265 but take care that the AS limit isn't overrun.
266 * doc/invoke.texi: Update documentation of min-heapsize parameter.
267
268 2004-08-09 Jeff Law <law@redhat.com>
269
270 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
271 (tree-ssa-threadupdate.o): Add dependencies.
272 * tree-ssa-threadupdate.c: New file.
273 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
274 (rewrite_vars_out_of_ssa): Remove prototype.
275 (cleanup_tree_cfg): Returns a bool.
276 * tree.h (thread_through_all_blocks): Prototype.
277 * tree-outof-ssa.c (SSANORM_*): Move into here.
278 (remove_ssa_form): Now static.
279 (rewrite_vars_out_of_ssa): Kill.
280 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
281 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
282 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
283 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
284 anything was changed.
285 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
286 from the PHI's annotation rather than the edge associated with
287 the new argument.
288 * tree-ssa-dom.c (redirection_edges): Kill.
289 (redirect_edges_and_update_ssa_graph): Kill.
290 (tree_ssa_dominator_optimize): Do not reset forwardable flag
291 for blocks anymore. Do not initialize redirection_edges.
292 Call thread_through_all_blocks. Simplify code for cleanup
293 of the CFG and iterating. No longer call cleanup_tree_cfg
294 outside the iteration loop.
295 (thread_across_edge): No longer mess with forwardable blocks.
296
297 2004-08-09 Zack Weinberg <zack@codesourcery.com>
298
299 * explow.c (memory_address): Use memory_address_p.
300 * recog.c (general_operand): Likewise.
301 * regrename.c: No need to define REG_OK_STRICT.
302
303 2004-08-09 Steven Bosscher <stevenb@suse.de>
304
305 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
306 New timers.
307 * gcse.c: Include timevar.h.
308 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
309 and global_copy_prop_count.
310 (local_const_prop_count, local_copy_prop_count): New static globals.
311 (gcse_main): Set the right timevar for each pass.
312 (cprop_jump): Increment global_const_prop_count when a constant is
313 propagated. Add "GLOBAL" to dump output.
314 (cprop_insn): Increment global_const_prop_count when a constant is
315 propagated, or global_copy_prop_count when a copy is propagated.
316 (do_local_cprop): Likewise for local_const_prop_count and
317 local_copy_prop_count.
318 (one_cprop_pass): Initialize const/cprop counters to zero.
319 Print out results of local and global const/cprop separately.
320 (bypass_block): Break over-length line.
321 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
322 for bb-reorder.o and tracer.o.
323
324 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
325
326 * Makefile.in (GTFILES): Remove stmt.c
327 (stmt.o): Do not depend on gt-stmt.h.
328 * emit-rtl.c (emit_line_note): Do not call
329 set_file_and_line_for_stmt.
330 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
331 do everything.
332 * function.c (free_after_parsing): Do not free STMT field.
333 (allocate_struct_function): Do not call init_stmt_for_function.
334 (assign_stack_temp_for_type): Do not accept values of keep
335 other than 0 or 1.
336 (init_temp_slots): Do not initialize removed variables.
337 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
338 and X_VAR_TEMP_SLOT_LEVEL fields.
339 * rtl.h (set_file_and_line_for_stmt): Remove.
340 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
341 struct stmt_status, cond_stack, case_stack, nesting_stack,
342 nesting_depth, emit_locus, set_file_and_line_for_stmt,
343 same_case_target_p, init_stmt_for_function, emit_nop,
344 expand_start_cond, expand_start_elseif, expand_start_else,
345 expand_elseif, expand_end_cond): Remove.
346 (preserve_subexpressions_p): Remove references to CFUN->STMT.
347 (expand_start_case, expand_end_case_type): Remove, merge into...
348 (expand_case): ... this one, including other bits from
349 expand_expr_real_1. Inline same_case_target_p. Turn members
350 of CASE_STACK into local variables.
351 (emit_case_bit_tests): Inline same_case_target_p.
352 (add_case_node): Add HEAD argument, return new head of the list,
353 do not handle default label here.
354 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
355 expand_start_elseif, current_nesting_level, expand_start_case,
356 expand_end_case_type, expand_end_case, add_case_node,
357 init_stmt_for_function, expand_elseif): Remove prototypes.
358 (expand_case): Add prototype.
359
360 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
361
362 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
363
364 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
365
366 * expr.c (var_rtx): Remove.
367 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
368 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
369 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
370 Abort.
371 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
372 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
373 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
374
375 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
376 Ayal Zaks <zaks@il.ibm.com>
377
378 * common.opt (freschedule-modulo-scheduled-loops): New flag.
379 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
380 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
381 when -freschedule-modulo-scheduled-loops flag is not specified.
382 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
383 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
384 More accurate placing of insn in row of partial schedule.
385 (ps_insn_find_column): New function.
386 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
387 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
388 (schedule_region): Use sched_is_disabled_for_current_region_p.
389 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
390
391 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
392
393 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
394 change.
395
396 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
397
398 * config/i386/i386.c (ix86_expand_clrmem): Properly call
399 gen_strset for 64bit target.
400
401 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
402
403 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
404
405 2004-08-07 Jason Merrill <jason@redhat.com>
406
407 Make return in memory explicit.
408 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
409 (assign_parm_find_data_types): Remove code for old front end
410 invisible reference handling.
411 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
412 (expand_function_end): Likewise.
413 * gimplify.c (gimplify_return_expr): Handle a dereferenced
414 RESULT_DECL.
415 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
416 (declare_return_variable): Handle DECL_BY_REFERENCE.
417 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
418 (cp_genericize_r): Use convert_from_reference.
419 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
420 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
421
422 * c-common.c (c_warn_unused_result): Check TREE_USED before
423 warning about a CALL_EXPR with an unused value.
424
425 2004-08-06 Mark Mitchell <mark@codesourcery.com>
426
427 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
428 to the compiler. Use -fshort-wchar by default.
429
430 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
431
432 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
433 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
434 threshhold.
435 * doc/invoke.texi (param): Document min-crossjump-insns.
436
437 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
438
439 PR c/13282
440 * c.opt (Wmissing-field-initializers): New option.
441 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
442 * c-typeck.c (pop_init_level): Guard the missing field warning with
443 warn_missing_field_initializers rather than extra_warnings.
444 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
445 some of the explanation from...
446 (-Wextra): ...here. Say that the missing field warning can be
447 seperately controlled by -Wmissing-field-initializers.
448
449 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
450
451 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
452 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
453 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
454 * tree.def (ENTRY_VALUE_EXPR): Remove.
455
456 2004-08-06 Jakub Jelinek <jakub@redhat.com>
457
458 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
459 the places where it is actually needed. Don't use repz; stosb
460 for -Os with sufficiently small constant sizes.
461 For sufficiently small repz; stos{l,q} repeat counts use a sequence
462 of stos{l,q} instructions instead.
463
464 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
465
466 PR tree-optimization/16807
467 * loop-iv.c (dump_iv_info): Dump invariants correctly.
468 (iv_subreg, iv_extend): Express value of invariant purely in
469 base field.
470
471 2004-08-06 Mark Mitchell <mark@codesourcery.com>
472
473 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
474 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
475
476 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
477
478 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
479 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
480 pre_dec_operand.
481 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
482 pattern until reload is finished to allow better code generation
483 and split them completely into separate instrunctions.
484 (*andsi3_split): New pattern.
485
486 2004-08-05 Mark Mitchell <mark@codesourcery.com>
487
488 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
489 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
490 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
491 * tree.h (handle_dll_attribute): Declare. Test
492 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
493 * c-common.h (c_determine_visibility): Declare.
494 * c-common.c (c_determine_visibility): New function.
495 * c-decl.c (finish_decl): Use it.
496 (finish_function): Likewise.
497 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
498 zero, by default. Use #if, not #ifdef, to test it.
499 * config/arm/arm.c (arm_attribute_table): Use
500 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
501 #if.
502 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
503 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
504 to 1.
505 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
506 * config/i386/i386.c (ix86_attribute_table): Use
507 handle_dll_attribute for dllimport/dllexport. Test
508 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
509 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
510 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
511 it to 1.
512 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
513 with #if.
514 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
515 it to 1.
516 * doc/extend.texi (dllexport): Clarify and correct documentation.
517 (dllimport): Likewise.
518 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
519 handle_dll_attribute.
520
521 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
522
523 * tree-ssa-loop-manip.c: New file.
524 * Makefile.in (tree-ssa-loop-manip.o): Add.
525 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
526 Declare.
527 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
528 form.
529 (tree_ssa_loop_done): Verify loop closed ssa form.
530 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
531
532 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
533
534 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
535 pa_asm_output_aligned_local): New functions.
536 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
537 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
538 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
539 pa_asm_output_aligned_common.
540 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
541 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
542 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
543 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
544 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
545 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
546 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
547 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
548 common data.
549
550 2004-08-05 Andrew Pinski <apinski@apple.com>
551
552 * objc/objc-act.c (build_objc_string_object): Mark the address
553 expression as constant.
554
555 2004-08-05 David Edelsohn <edelsohn@gnu.org>
556
557 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
558 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
559 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
560
561 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
562
563 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
564 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
565 out, and associated obsolete comments.
566
567 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
568
569 * tree.h (force_fit_type): Return a tree, take three flags.
570 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
571 TREE_CONSTANT_OVERFLOW here.
572 (int_const_binop, const_binop): Adjust.
573 (size_int_type): Do sign extension here.
574 (fold_convert_const, optimize_bit_field_compare,
575 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
576 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
577 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
578
579 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
580
581 PR tree-optimization/16864
582 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
583 for ssa names without default_def.
584
585 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
586
587 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
588 frame pointer, restore eax with an ebp-relative address.
589
590 2004-08-04 Geoffrey Keating <geoffk@apple.com>
591
592 PR 14516
593 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
594 * c-common.h (make_rtl_for_local_static): Delete.
595 * c-decl.c (shadow_tag_warned): Clean up comment.
596 (finish_decl): Clean up spacing. Use set_user_assembler_name when
597 appropriate. Don't pass asmspec to rest_of_decl_compilation.
598 * c-semantics.c (make_rtl_for_local_static): Delete.
599 * expr.c (init_block_move_fn): Use set_user_assembler_name.
600 (init_block_clear_fn): Likewise.
601 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
602 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
603 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
604 * tree.h (make_decl_rtl): Remove second parameter.
605 (set_user_assembler_name): New.
606 * varasm.c (set_user_assembler_name): New.
607 (make_decl_rtl): Remove second parameter. Update callers in many
608 files.
609
610 2004-08-05 Adam Nemet <anemet@lnxw.com>
611
612 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
613 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
614 to LynxOS 4.0.
615 * gthr-lynx.h: New file.
616 * config/lynx-ng.h: Remove file.
617 * config/lynx.h: Update to LynxOS 4.0.
618 * config/t-lynx: New file.
619 * config/i386/lynx-ng.h: Remove file.
620 * config/i386/lynx.h: Update to LynxOS 4.0.
621 * config/rs6000/lynxbase.h: Remove file.
622 * config/rs6000/lynx.h: Update to LynxOS 4.0.
623 * config/rs6000/t-lynx: New file.
624 * doc/install.texi (Options specification): Remove reference to
625 LynxOS from systems where --with-gnu-as makes a difference.
626
627 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
628
629 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
630 __UINTMAX_TYPE__.
631 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
632 __INTMAX_MAX__.
633 (c_cpp_builtins): Call it.
634 * doc/cpp.texi: Update.
635
636 2004-08-04 David Edelsohn <edelsohn@gnu.org>
637
638 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
639 cost.
640
641 2004-08-04 Jan Hubicka <jh@suse.cz>
642
643 * basic-block.h (profile_staus): New global variable.
644 * cfg.c (profile_status): Declare.
645 (check_bb_profile): Break out from ....; use profile_status
646 (dump_flow_info): ... here.
647 * cfgbuild.c (find_basic_blocks): Set profile_status.
648 * cfgexpand.c (tree_expand_cfg): Likewise.
649 * predict.c (estimate_probability): Likewise.
650 * profile.c (branch_prob): Likewise.
651 * tree-cfg.c (build_tree_cfg): Likewise.
652 (dump_function_to_file): Use check_bb_profile.
653 * tree-pretty-print (dump_bb_header): Likewise.
654 * tree-profile.c (do_tree_profiling): Cleanup.
655
656 2004-08-04 Zack Weinberg <zack@codesourcery.com>
657
658 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
659 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
660 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
661 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
662 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
663 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
664 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
665 (ggc-none.o, errors.o): Move rule to generators section;
666 correct dependencies.
667 (min-insn-modes.o): Move rule to generators section; remove
668 unnecessary explicit command; correct dependencies.
669 (print-rtl.o, print-rtl1.o): Correct dependencies.
670 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
671 (mostlyclean): Update.
672
673 * errors.c: Include bconfig.h not config.h. Correct comment.
674 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
675 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
676 * print-rtl.c: Don't include tm_p.h.
677
678 * rtl.h: Move forward-decl of struct function down where it's
679 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
680 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
681
682 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
683 Jeff Law <law@redhat.com>
684
685 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
686 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
687 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
688 manipulate the duplicated ssa names.
689 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
690 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
691 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
692 New functions.
693 (release_ssa_name): Do not release ssa names that may have multiple
694 definitions.
695 * tree.h (release_ssa_name_force, mark_for_rewrite,
696 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
697 marked_ssa_names): Declare.
698 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
699 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
700 Update call to rewrite_ssa_into_ssa.
701
702 2004-08-04 Mark Mitchell <mark@codesourcery.com>
703
704 * defaults.h (TARGET_DECLSPEC): New macro.
705 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
706 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
707 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
708 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
709 __declspec support.
710 (TARGET_DECLSPEC): Define.
711 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
712 __declspec support.
713 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
714 __declspec support.
715 (TARGET_DECLSPEC): Define.
716 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
717 __declspec support.
718 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
719 support.
720 * doc/tm.texi (TARGET_DECLSPEC): Document.
721
722 * doc/extend.texi: Fix typo in comment.
723
724 2004-08-04 Paul Brook <paul@codesourcery.com>
725
726 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
727 (TARGET_CXX): Use it.
728 * target.h (struct gcc_target): Add cdtor_returns_this.
729 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
730 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
731 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
732
733 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
734
735 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
736 low/high pair. Do range checking directly.
737 (interpret_integer): Adjust.
738
739 2004-08-04 Nick Clifton <nickc@redhat.com>
740
741 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
742 GCC ABI.
743 * doc/invoke.texi: Document this new switch and also the -mrenesas
744 switch.
745
746 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
747
748 * cfglayout.c (insn_locators_initialize): Update the current
749 location before initializing a location.
750
751 2004-08-03 Zack Weinberg <zack@codesourcery.com>
752
753 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
754 (dbxout_function_end): Return after emitting the "Lscope" symbol
755 under the same conditions that this function formerly wasn't called.
756 Add explanatory comments.
757
758 PR 14860
759 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
760 on the new decl.
761
762 PR 13956
763 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
764 functions, broken out of dbxout_block.
765 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
766 stabs too, if it contains symbols. Use the begin_label and
767 the Lscope label (emitted by dbxout_function_end) for the
768 range of this block.
769
770 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
771
772 * doc/install.texi: Update autoconf version requirements.
773
774 2004-08-03 Zack Weinberg <zack@codesourcery.com>
775
776 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
777 * recog.c (general_operand, immediate_operand, nonmemory_operand)
778 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
779 * regclass.c (record_reg_classes): Likewise.
780 * reload.c (find_reloads): Likewise.
781 * reload1.c (reload): Likewise.
782
783 2004-08-03 Zack Weinberg <zack@codesourcery.com>
784
785 * gensupport.c (init_md_reader_args_cb): Renamed from
786 init_md_reader_args. Add third option, callback function for
787 parsing program-specific options. Add diagnosis of incorrect
788 number of input files.
789 (init_md_reader): Fold into init_md_reader_args_cb.
790 (init_md_reader_args): Now a thin wrapper around
791 init_md_reader_args_cb.
792 * gensupport.h: Update prototypes.
793
794 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
795 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
796 * genrecog.c: No need to diagnose lack of an input file;
797 init_md_reader_args will handle it.
798 * genconditions.c: Likewise, and use init_md_reader_args.
799 * genconstants.c: Likewise, and no need to call read_md_rtx.
800
801 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
802
803 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
804 declarations.
805
806 2004-08-03 Mike Stump <mrs@apple.com>
807
808 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
809 for frameworks.
810 * doc/invoke.texi (Darwin Options): Update to reflect above.
811
812 2004-08-03 Roger Sayle <roger@eyesopen.com>
813
814 PR middle-end/16790
815 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
816 truncations, not just global truncations.
817
818 2004-08-03 Andrew Pinski <apinski@apple.com>
819
820 PR bootstrap/16865
821 * loop-iv.c (simplify_using_assignment): Initialize lhs.
822
823 2004-08-03 Paul Brook <paul@codesourcery.com>
824
825 * gcc/doc/install.texi: Document MPFR requirement.
826
827 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
828
829 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
830 and mmap() explicitly instead of relying on preset autoconf cache
831 variables.
832 * configure: Regenerate.
833
834 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
835
836 PR target/16570
837 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
838 to tmake_file.
839 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
840 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
841 to tmake_file.
842
843 * config/i386/t-gmm_malloc: New file.
844 * config/i386/t-pmm_malloc: Likewise.
845
846 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
847
848 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
849 Tanguy Fautrà <tfautre@pandora.be>
850
851 * config/i386/pmm_malloc.h: New file.
852
853 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
854
855 * config/i386/gmm_malloc.h: New file.
856
857 2004-08-03 Dale Johannesen <dalej@apple.com>
858
859 * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
860 * c-common.c: Include opts.h.
861 (c_common_get_alias_set): Fix check for a single input file.
862 * toplev.c: Remove current_file_decl.
863 * tree.h: Ditto.
864
865 2004-08-03 Mark Mitchell <mark@codesourcery.com>
866
867 * config.gcc (arm*-*-symbianelf*): New target.
868 * config/arm/symbian.h: New file.
869
870 * gthr-gnat.c: Add visibility #pragmas.
871 * gthr-gnat.h : Likewise.
872 * gthr.h: Likewise.
873 * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
874 (__ffsDI2): Likewise.
875 (__clzSI2): Likewise.
876 (__ctzSI2): Likewise.
877 (__ctzDI2): Likewise.
878 (__popcountSI2): Likewise.
879 (__popcountDI2): Likewise.
880 (__paritySI2): Likewise.
881 (__parityDI2): Likewise.
882 * libgcc2.h: Add visibility #pragmas.
883 (__clzDI2): Add prototype.
884 (__clzSI2): Likewise.
885 (__ctzSI2): Likewise.
886 (__ffsDI2): Likewise.
887 (__ffsSI2): Likewise.
888 (__ctzDI2): Likewise.
889 (__popcountSI2): Likewise.
890 (__popcountDI2): Likewise.
891 (__paritySI2): Likewise.
892 (__parityDI2): Likewise.
893 * unwind-dw2-fde.h: Add visibility #pragmas.
894 * unwind.h: Likewise.
895
896 2004-08-03 David Edelsohn <edelsohn@gnu.org>
897 Dale Johannesen <dalej@apple.com>
898 Roger Sayle <roger@eyesopen.com>
899
900 * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
901 constants more accurately. Adjust costs for FMA instructions.
902 Add cases for most logical and float operations. Recurse into
903 most operands.
904
905 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
906
907 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
908
909 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
910
911 * ra-build.c (conflicts_between_webs): For webs that cross a call add
912 conflicts to regs_invalidated_by_call.
913
914 2004-08-03 Paul Brook <paul@codesourcery.com>
915
916 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
917
918 2004-08-03 Jan Hubicka <jh@suse.cz>
919
920 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
921 ARRAY_REF argument.
922
923 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
924
925 * arm-cores.def: Sort by architecture. Add arm946es, arm966es,
926 arm968es, arm10e, arm1020e, arm1022e.
927 * invoke.texi: Update list of ARM cores.
928 * arm-tune.md: Regenerate.
929
930 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
931
932 * arm/gentune.sh: New file.
933 * arm/t-arm: New file.
934 * arm/arm-tune.md: New file (autogenerated).
935 * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
936 * arm.md (attribute tune): Delete. Include arm-tune.md.
937
938 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
939
940 * gcc.c (add_prefix, add_sysrooted_prefix): Remove
941 penultimate parameter. All callers adjusted.
942 (struct prefix_list): Remove used_flag_ptr.
943 (find_a_file): Do not set *pl->used_flag_ptr.
944 (warn_B, warn_std_ptr): Remove.
945
946 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
947 Mostafa Hagog <mustafa@il.ibm.com>
948
949 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
950
951 2004-08-02 Geoffrey Keating <geoffk@apple.com>
952
953 * dwarf2out.c (output_call_frame_info): Don't change data format
954 due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
955 label. Use 'true' not '1'.
956 * doc/install.texi (powerpc-*-darwin*): Mention cctools version
957 required.
958
959 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
960
961 * gdbinit.in: Reflect previous changes to rtunion_def.
962
963 2004-08-02 Roger Sayle <roger@eyesopen.com>
964
965 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
966 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
967
968 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
969
970 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
971 vec_p_reserve.
972 * langhooks.h (lang_hooks::builtin_function): Rename parameter
973 from "class" to "bt_class".
974
975 2004-08-02 Paul Brook <paul@codesourcery.com>
976
977 PR rtl-optimization/15068
978 * flow.c (init_propagate_block_info): Check condition is reversible.
979
980 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
981
982 * gengtype.h (options::info): Change type to const char *.
983 (enum gc_used_enum): Move out of struct type scope.
984 * gengtype.c (create_option): Convert initializer for option::info to
985 appropiate type.
986 (adjust_field_type, walk_type, write_func_for_structure,
987 write_root, write_roots): Remove pointless cast.
988
989 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
990
991 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
992
993 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
994
995 * rtl.h (union rtunion_def): Have all members start with the
996 prefix "rt_".
997 (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
998 X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
999 X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
1000 XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
1001 access.
1002 * gengtype.c (adjust_field_rtx_def): Likewise.
1003 * rtlanal.c (loc_mentioned_in_p): Likewise.
1004
1005 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
1006
1007 * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
1008 Replace uses of mips/elf64.h with mips/elf.h
1009 * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
1010 (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
1011 (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
1012 (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
1013 (HANDLE_SYSV_PRAGMA): Delete.
1014 (ASM_OUTPUT_DEF): Fix formatting.
1015 * config/mips/elf64.h: Delete.
1016
1017 2004-08-01 Zack Weinberg <zack@codesourcery.com>
1018
1019 * config/ia64/ia64.c (got_symbolic_operand): Do require a
1020 symbol+offset operand to have its offset be zero mod 0x3fff
1021 when GOT entries are in use. Clarify logic in SYMBOL_REF
1022 case. Clarify comments.
1023 (ia64_expand_load_address): Split a symbol+offset load when
1024 the offset is nonzero mod 0x3fff, not 0x1fff.
1025
1026 2004-08-01 Geoffrey Keating <geoffk@apple.com>
1027
1028 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
1029 if trying to *store* to a non-offsettable address.
1030 * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
1031 a nonoffsettable address.
1032 (movdi_internal32): Don't move GPRs to a nonoffsettable address.
1033 Clean up.
1034 (movti_string): Don't move GPRs to a nonoffsettable address.
1035 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
1036
1037 2004-08-02 Ben Elliston <bje@au.ibm.com>
1038
1039 PR target/16155
1040 * config/rs6000/altivec.h: Replace typeof with __typeof__.
1041
1042 2004-08-01 Richard Henderson <rth@redhat.com>
1043
1044 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
1045 variable sized types.
1046
1047 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
1048
1049 * doc/invoke.texi: In the MIPS options section, remove the passage
1050 saying that -mexplicit-relocs is usually disabled for -mabicalls
1051 -fno-unit-at-a-time.
1052 * config/mips/mips.c (override_options): Remove the code that enforced
1053 this rule.
1054
1055 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
1056
1057 * config/mips/mips.md (cprestore): Provide two alternatives, one for
1058 an in-range offset and one for an out-of-range offset. Wrap the latter
1059 in .set macro/.set nomacro if it's inside a .set nomacro block.
1060
1061 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
1062
1063 * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
1064 (mips_restore_gp): Declare.
1065 * config/mips/mips.c (mips_add_offset): Add a scratch register
1066 argument. Reimplement in rtl only, reusing MIPS16 logic from
1067 mips_output_mi_thunk.
1068 (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
1069 to mips_add_offset.
1070 (mips_gp_save_slot): Delete.
1071 (mips_restore_gp): New function.
1072 (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
1073 * config/mips/mips.md (exception_receiver): Turn into a
1074 define_insn_and_split. Use mips_restore_gp to do the split.
1075 (call_internal, call_value_internal, call_value_multiple_internal): Use
1076 mips_restore_gp to restore $gp.
1077
1078 2004-07-31 Andrew Pinski <apinski@apple.com>
1079
1080 PR other/16842
1081 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
1082
1083 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
1084
1085 * c-decl.c (diagnose_mismatched_decls): Give error for external
1086 redeclaration of identifier declared with no linkage, not just
1087 warning with -Wtraditional. Do not check DECL_CONTEXT to give
1088 error for redeclaration with no linkage.
1089
1090 2004-07-30 Geoffrey Keating <geoffk@apple.com>
1091 Fariborz Jahanian <fjahanian@apple.com>
1092
1093 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
1094 non-offsettable addresses even for DImode.
1095 (rs6000_split_multireg_move): Cope with non-offsettable addresses
1096 being moved into multiple GPRs.
1097
1098 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
1099 to 64.
1100 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
1101 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
1102 to 128.
1103 * config/rs6000/darwin-ldouble.c (isless): New macro.
1104 (inf): New macro.
1105 (nonfinite): New macro.
1106 (FPKINF): Delete.
1107 (_xlqadd): Completely rewrite.
1108 (_xlqmul): Correct overflow handling.
1109 (_xlqdiv): Correct overflow handling.
1110 * config/rs6000/darwin-ldouble-format: New file.
1111
1112 2004-07-30 Roger Sayle <roger@eyesopen.com>
1113 Richard Henderson <rth@redhat.com>
1114
1115 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
1116 9 into the equivalent lea instruction.
1117
1118 2004-07-30 Richard Henderson <rth@redhat.com>
1119
1120 * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
1121 with DECL_INITIAL if fb_lvalue.
1122 * tree-gimple.c (is_gimple_id): Add CONST_DECL.
1123 * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
1124 with <Cxxx>.
1125 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
1126
1127 2004-07-30 Diego Novillo <dnovillo@redhat.com>
1128
1129 * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
1130 pointer escapes through a function call, assume that the
1131 callee will dereference it.
1132 (add_pointed_to_var): Assume that VALUE is always an
1133 ADDR_EXPR.
1134 (collect_points_to_info_r): Only call add_pointed_to_var if
1135 the value is an ADDR_EXPR.
1136
1137 2004-07-30 Diego Novillo <dnovillo@redhat.com>
1138
1139 * tree-ssa-alias.c (create_alias_map_for): Do not get the
1140 alias set of the inner type of ARRAY_TYPEs.
1141
1142 2004-07-29 Diego Novillo <dnovillo@redhat.com>
1143
1144 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
1145 setting a non-register to UNDEFINED right before the call to
1146 set_lattice_value.
1147
1148 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
1149
1150 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
1151
1152 2004-07-29 Diego Novillo <dnovillo@redhat.com>
1153
1154 * tree-ssa.c (verify_flow_sensitive_alias_info): When
1155 comparing points-to sets of different pointers, make sure the
1156 second pointer is actually referenced in the code.
1157
1158 2004-07-29 Zack Weinberg <zack@codesourcery.com>
1159
1160 * config/ia64/ia64.c (setjmp_operand): Delete, unused.
1161 (got_symbolic_operand): Remove unreachable code.
1162 * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
1163 setjmp_operand; add entry for tls_symbolic_operand.
1164 * config/ia64/ia64-protos.h: Remove all prototypes of
1165 predicate functions.
1166
1167 2004-07-29 Mark Mitchell <mark@codesourcery.com>
1168
1169 * c-common.h (lang_post_pch_load): New variable.
1170 * c-pch.c (lang_post_pch_load): Define it.
1171 (c_common_read_pch): Use it.
1172 * cgraphunit.c (record_call_1): Give the front end a chance to
1173 record additional needed entities when a variable is marked as
1174 needed.
1175 * tlink.c (recompile_files): Robustify.
1176 (scan_linker_output): If a symbol is assigned to a file,
1177 but after recompilation is not present there, issue an error
1178 message.
1179
1180 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1181
1182 * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
1183 Take orig_loop argument and pass it to set_level.
1184 (schedule_sm): Pass the correct orig_loop to force_move_till.
1185
1186 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1187
1188 * cfgloop.c (update_latch_info): Update dominator of the new block.
1189 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
1190 info.
1191 * dominance.c (verify_dominators): Check that the dominance tree is
1192 connected.
1193 (recount_dominator): Ignore unreachable blocks.
1194 (iterate_fix_dominators): Cleanup old dominance information before
1195 recomputing it.
1196
1197 2004-07-29 Diego Novillo <dnovillo@redhat.com>
1198
1199 * tree-ssa-operands.c (get_expr_operands): Revert changes
1200 to ADDR_EXPR processing introduced by:
1201 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1202 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1203
1204 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
1205
1206 * doc/implement-c.texi: Add C90 subclause references. Point to
1207 preprocessor documentation instead of duplicating it. Add points
1208 only present in C90. Fill in documentation for all points.
1209
1210 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1211
1212 * pa.c (output_movb): Correct typo.
1213
1214 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
1215
1216 * ra.h (single_reg_in_regclass): Declare.
1217 * ra.c (single_reg_in_regclass): Define.
1218 (first_hard_reg): New.
1219 (init_ra): Initialize single_reg_in_regclass.
1220 * ra-colorize.c (ok_class): New.
1221 (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
1222
1223 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
1224
1225 * gcov-io.h: Allow zero tag as EOF indicator.
1226 (gcov_is_eof): Remove.
1227 (gcov_truncate): Remove.
1228 * gcov-io.c (gcov_seek): Always SEEK_SET.
1229 * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit
1230 EOF tag.
1231 * coverage.c (read_counts_file): Don't use gcov_is_eof.
1232 * gcov-dump.c (dump_file): Likewise.
1233 * gcov.c (read_graph_file, read_count_file): Likewise.
1234
1235 * c-decl.c (complete_array_type): Don't gratuitously copy
1236 maxindex. Check it always has a type.
1237
1238 2004-07-29 Steven Bosscher <stevenb@suse.de>
1239
1240 * rtl.c (currently_expanding_to_rtl): New.
1241 * rtl.h (currently_expanding_to_rtl): Export it.
1242 * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
1243
1244 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
1245 inliner hack.
1246 * config/sh/sh.c: Replace rtx_equal_function_value_matters
1247 with currently_expanding_to_rtl.
1248 * config/sh/sh.md: Likewise.
1249 * config/ia64/ia64.c (got_symbolic_operand): Likewise.
1250
1251 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
1252
1253 Introduce sh2a support.
1254 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
1255 * config.gcc: Build multilibs for sh2a and sh2a-single by
1256 default.
1257 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
1258 default. Split their tests out of the corresponding SH4
1259 multilibs.
1260 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
1261 multilibs for SH2a.
1262 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
1263 * config.gcc: Handle sh2a multilibs and cpu selection.
1264 * config/sh/sh.h: Likewise. Handle sh2a command line flags.
1265 * config/sh/t-mlib-sh2a: New.
1266 * config/sh/t-mlib-sh2a-nofpu: New.
1267 * config/sh/t-mlib-sh2a-single: New.
1268 * config/sh/t-mlib-sh2a-single-only: New.
1269 2004-07-09 Nick Clifton <nickc@redhat.com>
1270 Issue 43400
1271 * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
1272 -ml and -m2a are used together.
1273 2004-03-23 DJ Delorie <dj@redhat.com>
1274 * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
1275 when we have a double-sized FPU.
1276 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
1277 * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
1278 is set.
1279 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
1280 -msh2a-single and -msh2a-single-only
1281 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
1282 * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
1283 is set.
1284 2004-02-20 DJ Delorie <dj@delorie.com>
1285 * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
1286 2004-02-20 Fred Fish <fnf@redhat.com>,
1287 Corinna Vinschen <vinschen@redhat.com>
1288 * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
1289 (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
1290 2004-02-18 DJ Delorie <dj@redhat.com>
1291 * config/sh/sh.c (broken_move): Add support for movi20.
1292 * config/sh/sh.h: Likewise.
1293 (SHIFT_COUNT_TRUNCATED): Set for sh2a.
1294 * config/sh/sh.md (udivsi3_sh2a): New.
1295 (udivsi3): Call it.
1296 (divsi3_sh2a): New.
1297 (divsi3): Call it.
1298 (mul_r): New.
1299 (ashlsi3_sh2a): New.
1300 (ashrsi3_sh2a): New.
1301 (lshrsi3_sh2a): New.
1302 (movsi_i): Disable for sh2a.
1303 (movsi_ie): Add movi20.
1304 (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
1305 sh2a, for -m2a-nofpu mode.
1306 2004-02-13 DJ Delorie <dj@redhat.com>
1307 * config/sh/lib1funcs.asm: Handle double vs single better.
1308 * config/sh/sh.h: Likewise.
1309 2004-02-09 DJ Delorie <dj@redhat.com>
1310 * config/sh/crt1.asm: Add support for sh2a.
1311 * config/sh/elf.h: Likewise.
1312 * config/sh/lib1funcs.asm: Likewise.
1313 * config/sh/sh.c: Likewise.
1314 * config/sh/sh.md: Likewise.
1315 * config/sh/sh.h: Likewise.
1316 * config/sh/t-sh: Likewise.
1317
1318 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
1319
1320 * config/frv/frv.md (movqi_internal, movhi_internal,
1321 movsi_internal): Add backup alternatives for memory inputs.
1322
1323 2004-07-28 Matt Austern <austern@apple.com>
1324
1325 * config/darwin.c (darwin_one_byte_bool): New global variable.
1326 * config/darwin.h (darwin_one_byte_bool): Declare.
1327 (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.)
1328 * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
1329 value of darwin_one_byte_bool.
1330 * doc/invoke.texi: Document -mone-byte-bool flag.
1331
1332 2004-07-28 Eric Christopher <echristo@redhat.com>
1333
1334 * c-common.c (c_common_unsafe_for_reeval): Delete.
1335 * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
1336 * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
1337 * calls.c (fix_unsafe_tree): Delete.
1338 (expand_call): Delete code which used above.
1339 * dojump.c (do_jump): Delete UNSAVE_EXPR case.
1340 * expr.c (expand_expr_real_1): Ditto.
1341 * fold-const.c (non_lvalue): Ditto.
1342 * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
1343 (lhd_unsafe_for_reeval): Ditto.
1344 * langhooks.c (lhd_unsafe_for_reeval): Ditto.
1345 * langhooks.h (unsafe_for_reeval): Ditto.
1346 (unsave_expr_now): Adjust comment.
1347 * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
1348 (estimate_num_insns_1): Ditto.
1349 * tree-pretty-print.c (dump_generic_node): Ditto.
1350 * tree.c (expr_align): Ditto.
1351 (unsave_expr): Delete.
1352 (unsafe_for_reeval): Ditto.
1353 * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
1354 * tree.def (UNSAVE_EXPR): Delete.
1355 * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
1356
1357 2004-07-28 Zack Weinberg <zack@codesourcery.com>
1358
1359 * tree.h (enum tls_model): Move ...
1360 * coretypes.h: ... here.
1361
1362 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
1363
1364 * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
1365
1366 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
1367
1368 * cse.c (validate_canon_reg): New function, split out from...
1369 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
1370
1371 2004-07-28 Diego Novillo <dnovillo@redhat.com>
1372
1373 * tree-ssa-alias.c (maybe_create_global_var): Don't just
1374 return if .GLOBAL_VAR has been created.
1375
1376 2004-07-28 Diego Novillo <dnovillo@redhat.com>
1377
1378 * tree-ssa.c (verify_flow_insensitive_alias_info): Process
1379 every variable that may have aliases, not just tags.
1380
1381 2004-07-28 Aldy Hernandez <aldyh@redhat.com>
1382
1383 * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
1384 move_from_CR_eq_bit.
1385 Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
1386
1387
1388 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
1389 e500_flip_eq_bit.
1390
1391 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
1392 output_e500_flip_eq_bit.
1393
1394 * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
1395 output_e500_flip_eq_bit.
1396 (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
1397 output_e500_flip_eq_bit.
1398 Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
1399 (print_operand): case D. Get to EQ bit.
1400
1401 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
1402
1403 * gcov.c (function_summary): Add missing \n.
1404
1405 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
1406
1407 Introduce sh4a support.
1408 * config.gcc: Handle sh4a multilibs and cpu selection.
1409 * config/sh/sh.h: Likewise. Handle sh4a command line flags.
1410 * config/sh/t-mlib-sh4a: New.
1411 * config/sh/t-mlib-sh4al: New.
1412 * config/sh/t-mlib-sh4a-nofpu: New.
1413 * config/sh/t-mlib-sh4a-single: New.
1414 * config/sh/t-mlib-sh4a-single-only: New.
1415 2004-02-20 DJ Delorie <dj@redhat.com>
1416 * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
1417 * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
1418 2003-08-22 Eric Christopher <echristo@redhat.com>
1419 * config/sh/sh4a.md: Update for chip errata.
1420 2003-08-07 Eric Christopher <echristo@redhat.com>
1421 * config/sh/sh4a.md: New file. sh4a processor description.
1422 2003-07-08 Alexandre Oliva <aoliva@redhat.com>
1423 * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description
1424 of -m4a-nofpu.
1425 (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
1426 * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
1427 * doc/invoke.texi (SH Options): Document -m4al.
1428 2003-07-03 Alexandre Oliva <aoliva@redhat.com>
1429 * config/sh/sh.c (expand_block_move): Remove commented-out code
1430 checked in by mistake.
1431 (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
1432 single elements from SFmode vectors.
1433 * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
1434 register.
1435 (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
1436 2003-07-01 Alexandre Oliva <aoliva@redhat.com>
1437 * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
1438 sh_fsca_int2sf): Remove variable declarations.
1439 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1440 sh_fsca_int2sf): New functions.
1441 (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
1442 sh_fsca_int2sf_rtx): New static variables.
1443 * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
1444 sh_fsca_int2sf): Declare.
1445 * config/sh/sh.md: Adjust.
1446 * doc/invoke.texi (SH Options): Document new options.
1447 * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
1448 compatibility from SH4 code.
1449 2003-06-27 Alexandre Oliva <aoliva@redhat.com>
1450 * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
1451 early.
1452 (memory_movsrc_operand): Renamed to...
1453 (unaligned_load_operand): ... this. Simplified.
1454 * config/sh/sh.h (PREDICATE_CODES): Adjust.
1455 * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's
1456 input operand to SImode, and adjust the others. Introduce
1457 post-increment by peephole.
1458 * config/sh/sh.c (expand_block_move): Give the target address the
1459 same mode as the temp reg.
1460 * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
1461 copying.
1462 2003-06-26 Alexandre Oliva <aoliva@redhat.com>
1463 Introduce support for SH4a.
1464 * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
1465 __SH4A__. Emit 4 4kb blocks and touch all of them otherwise.
1466 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1467 sh_fsca_int2sf): New.
1468 (sh_init_builtins): Initialize them.
1469 (print_operand): Support `d'.
1470 (expand_block_move): Use movua if src is misaligned.
1471 (memory_movsrc_operand): New.
1472 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
1473 and one of the SH4 macros.
1474 (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
1475 SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
1476 SELECT_SH4A_SINGLE): New.
1477 (TARGET_NONE): Add SH4A_BIT.
1478 (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
1479 (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
1480 (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
1481 (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
1482 (enum processor_type): Added PROCESSOR_SH4A.
1483 (PREDICATE_CODES): Add memory_movsrc_operand.
1484 * config/sh/sh.md: Removed unused variables.
1485 (attr cpu): Add sh4a.
1486 (attr type): Add movua, fsrra and fsca.
1487 (prefetch): New, for SH4.
1488 (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
1489 (toggle_sz): Set type to fp.
1490 (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
1491 (movua, extv, extzv): New.
1492 * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
1493 and 4a-single-only.
1494
1495 2004-07-28 Diego Novillo <dnovillo@redhat.com>
1496
1497 * tree-optimize.c (init_tree_optimization_passes): Schedule
1498 pass_may_alias right after the program is renamed into SSA.
1499 * tree-pass.h (PROP_alias): Define.
1500 * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
1501 * tree-sra.c (pass_sra): Likewise.
1502 * tree-ssa-ccp.c (pass_ccp): Likewise.
1503 * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
1504 * tree-ssa-dce.c (pass_dce): Likewise.
1505 * tree-ssa-dom.c (pass_dominator): Likewise.
1506 * tree-ssa-dse.c (pass_dse): Likewise.
1507 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
1508 * tree-ssa-loop-ch.c (pass_ch): Likewise.
1509 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1510 * tree-ssa-pre.c (pass_pre): Likewise.
1511 * tree-tailcall.c (pass_tail_recursion): Likewise.
1512 * tree-ssa.c (pass_redundant_phi): Likewise.
1513 * tree-ssa-alias.c (aliases_computed_p): Remove.
1514 Update all users.
1515 (init_alias_info): Do not mark all type tags for renaming
1516 unconditionally.
1517 Clear may_aliases from every symbol.
1518 (setup_pointers_and_addressables): If a pointer has not been
1519 dereferenced and it had a type tag, clear it and mark the old
1520 tag for renaming.
1521
1522 2004-07-28 Diego Novillo <dnovillo@redhat.com>
1523
1524 PR tree-optimization/16705
1525 * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
1526 .GLOBAL_VAR.
1527
1528 2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1529
1530 * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
1531 check.
1532
1533 * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
1534 don't make another one.
1535
1536 PR optimization/15077
1537 * function.h (struct function): Add field saved_static_chain_decl.
1538 Fix comment for static_chain_decl.
1539 * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
1540 * tree-inline.h (save_body): Add new arg.
1541 * tree-optimize.c (tree_rest_of_compilation): Handle saving
1542 static_chain_decl.
1543
1544 2004-07-27 Richard Henderson <rth@redhat.com>
1545
1546 * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
1547 (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
1548 is_gimple_addressable.
1549 * tree-gimple.c (is_gimple_addressable): Rename from
1550 is_gimple_addr_expr_arg; accept INDIRECT_REF.
1551 (is_gimple_lvalue): Don't test INDIRECT_REF directly.
1552 * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
1553 rename to is_gimple_addressable.
1554
1555 2004-07-28 Alan Modra <amodra@bigpond.net.au>
1556
1557 * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
1558
1559 2004-07-27 Richard Henderson <rth@redhat.com>
1560
1561 * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
1562 before rounding.
1563
1564 2004-07-27 Zack Weinberg <zack@codesourcery.com>
1565
1566 * libgcc2.c: Change all conditionals testing
1567 LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
1568 * libgcc2.h: Likewise.
1569 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
1570 TYPE_PRECISION of float80_type to 80.
1571 * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
1572 of fpreg_type and float80_type to 80.
1573 * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
1574 * config/m68k/netbsd-elf.h:
1575 Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
1576 to evaluate to 80 whenever they would formerly have evaluated to 96.
1577 * config/i386/sco5.h: Remove unnecessary redefinition of
1578 LONG_DOUBLE_TYPE_SIZE.
1579 * doc/rtl.texi: Clarify uses of XFmode and TFmode.
1580 * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
1581 XFmode, with a bitsize of 80. Update commentary.
1582 * config/ia64/ia64-modes.def: Likewise.
1583 * config/m68k/m68k-modes.def: Likewise.
1584
1585 2004-07-27 Steven Bosscher <stevenb@suse.de>
1586
1587 * cfgexpand.c (tree_expand_cfg): Fix comment.
1588
1589 * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
1590 * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
1591 Remove.
1592 (prepare_function_start): Don't set rtx_equal_function_value_matters.
1593 * integrate.c (copy_rtx_and_substitute): Don't test for it.
1594 * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
1595 Don't set rtx_equal_function_value_matters. Don't register RTL hooks
1596 here again. Update leading comment.
1597 * rtl.c (rtx_equal_function_value_matters): Remove.
1598 (rtx_equal_p): Don't test for it.
1599 * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
1600 Likewise.
1601
1602 * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
1603 * rtl.c (note_insn_name): Likewise.
1604 * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
1605 * final.c (final_scan_insn): Likewise.
1606
1607 * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
1608 * passes.c (rest_of_handle_eh): Do it here.
1609
1610 * stmt.c (struct nesting): Remove struct nesting block member.
1611 (struct stmt_status): Remove x_block_start_count field.
1612 (current_block_start_count): Remove.
1613
1614 2004-07-27 Brian Booth <bbooth@redhat.com>
1615
1616 * tree-optimize.c (register_one_dump_file): Update condition that uses
1617 static_pass_number.
1618 (dup_pass_1): Replace with...
1619 (next_pass_1): This.
1620 (NEXT_PASS): Call next_pass_1.
1621 (DUP_PASS): Remove.
1622 (init_tree_optimization_passes): Remove uses of DUP_PASS.
1623 (execute_one_pass): Update condition that uses
1624 static_pass_number.
1625 * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
1626 integer.
1627
1628 2004-07-27 Nick Clifton <nickc@redhat.com>
1629
1630 * config/m32r/m32r.c: Include integrate.h in order to get the
1631 prototype for get_hard_reg_initial_val().
1632
1633 * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
1634 and tidy up indentation.
1635 (final_presence_set): Use absence_set instead, so that if there is
1636 nothing in the "o" pipe the "s" pipe can be scheduled.
1637
1638 2004-07-27 Diego Novillo <dnovillo@redhat.com>
1639
1640 * tree-ssa-alias.c (create_name_tags): Ignore pointers that
1641 don't have PT_VARS nor PT_MALLOC set.
1642 Clear name tag from pointers that have not been dereferenced.
1643 (set_pt_anything, set_pt_malloc): Forward declare.
1644 * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
1645 not type compatibility when determining if a pointer can be
1646 copy propagated.
1647
1648 2004-07-27 Richard Sandiford <rsandifo@redhat.com>
1649
1650 * expr.h (canonicalize_condition, get_condition): Add an int argument.
1651 * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
1652 it to check whether the condition is still valid at the jump insn.
1653 * ifcvt.c (noce_get_condition): Likewise.
1654 (noce_get_alt_condition): Update call to canonicalize_condition.
1655 * loop-iv.c (simplify_using_initial_values): Update call to
1656 get_condition. Remove FIXME.
1657 (check_simple_exit): Update call to get_condition.
1658 * loop-unswitch.c (may_unswitch_on): Likewise.
1659 * loop.c (check_dbra_loop): Likewise.
1660 (canonicalize_condition, get_condition): Add an argument to say whether
1661 the condition must still be valid at INSN.
1662 (get_condition_for_loop): Update call to get_condition. Require that
1663 the condition be valid at INSN.
1664 * predict.c (estimate_probability): Update call to get_condition.
1665 Remove unused earliest parameter.
1666 (expected_value_to_br_prob): Update call to canonicalize_condition.
1667
1668 2004-07-26 Eric Christopher <echristo@redhat.com>
1669
1670 * tree-dfa.c (add_referenced_var): Register initializers of global
1671 variables.
1672
1673 2004-07-26 Paolo Bonzini <bonzini@gnu.org>
1674
1675 * config/i386/i386.c (function_arg): Always treat 8-
1676 and 16-byte wide vectors the same, even if MMX/SSE
1677 are disabled.
1678 (contains_128bit_aligned_vector_p): Add comment.
1679
1680 2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
1681
1682 * ra.h (enum node_type): Rename to:
1683 (enum ra_node_type).
1684 * ra-colorize.c: Likewise.
1685
1686 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
1687
1688 * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
1689 after simplifying the jump.
1690
1691 2004-06-26 Richard Henderson <rth@redhat.com>
1692
1693 * calls.c (combine_pending_stack_adjustment_and_call): Make
1694 preferred_unit_stack_boundary argument unsigned. Make
1695 unadjusted_alignment unsigned.
1696 (expand_call): Make preferred_stack_boundary and
1697 preferred_unit_stack_boundary variables unsigned.
1698 * function.c (assign_stack_local_1): Make alignment unsigned.
1699 * function.h (struct function): Make stack_alignment_needed,
1700 preferred_stack_boundary unsigned.
1701 * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
1702 (ix86_compute_frame_layout): Make stack_alignment_needed,
1703 preferred_alignment variables unsigned.
1704 * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
1705
1706 2004-07-26 Tom Tromey <tromey@redhat.com>
1707
1708 * tree.h: Fix typo in comment.
1709
1710 2004-07-26 Daniel Jacobowitz <dan@debian.org>
1711
1712 PR bootstrap/12804
1713 * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
1714 (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
1715 (ggc_free): Remove incorrect freeing.
1716 (sweep_pages): Advance PP for large pages. Fix indentation.
1717
1718 2004-07-26 Richard Sandiford <rsandifo@redhat.com>
1719
1720 PR rtl-optimization/16643
1721 * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
1722 * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
1723 * basic-block.h (reorder_basic_blocks): Add a flags parameter.
1724 * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
1725 (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
1726 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1727 * rtl.h (tracer): Add a flags parameter.
1728 * tracer.c (tracer): Pass it to cfg_layout_initialise.
1729 * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
1730 (rest_of_handle_reorder_blocks): Update calls to tracer and
1731 reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
1732 (rest_of_handle_tracer): Pass 0 to tracer.
1733 (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
1734
1735 2004-07-25 David Edelsohn <edelsohn@gnu.org>
1736
1737 PR target/16239
1738 * config/rs6000/rs6000.md (movdi_internal64): Further disparage
1739 f->f.
1740
1741 2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
1742
1743 * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
1744 (BINFO_BASE_ACCESS): Adjust.
1745 (BINFO_BASE_ACCESS_APPEND): New.
1746 (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
1747 * dbxout.c (dbxout_type): Adjust binfo access accessing.
1748 * dwarf2out.c (gen_member_die): Likewise.
1749 * tree-dump.c (deque_and_dump): Likewise.
1750
1751 2004-07-26 Falk Hueffner <falk@debian.org>
1752
1753 * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
1754 costs.
1755
1756 2004-07-25 Roger Sayle <roger@eyesopen.com>
1757
1758 * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
1759 value off of the stack if TARGET_USE_FFREEP.
1760
1761 2004-07-26 Bernardo Innocenti <bernie@develer.com>
1762
1763 * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
1764 * gengtype-yacc.y: Likewise. Replace free() with XDELETE ().
1765 * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
1766 check on invocation of XRESIZEVEC ().
1767
1768 2004-07-26 Bernardo Innocenti <bernie@develer.com>
1769
1770 * c-common.c (disable_builtin_function): Rename variable n to
1771 new_disabled_builtin.
1772 * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
1773 Rename local variable old to old_decl.
1774 * gensupport.c (shift_output_template): Rename parameter old to src.
1775 * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
1776 old_rtx and newx to new_rtx.
1777
1778 2004-07-26 Bernardo Innocenti <bernie@develer.com>
1779
1780 * Makefile.in (C_PRAGMA_H): New variable to track dependencies
1781 of c-pragma.h.
1782 * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
1783 enum cpp_ttype.
1784 * c-lex.c: Likewise.
1785
1786 2004-07-25 Roger Sayle <roger@eyesopen.com>
1787
1788 * fold-const.c (constant_boolean_node): Make extern.
1789 (make_range): Wrap long lines.
1790 (fold_cond_expr_with_comparison): Remove unnecessary call to
1791 pedantic_non_lvalue. Add missing calls to fold_convert.
1792 (fold_truthop): Add missing calls to fold_convert.
1793 (fold): Likewise.
1794 * tree.h (constant_boolean_node): Add prototype here.
1795 * builtins.c (expand_builtin_strncmp): Add missing calls to
1796 fold_convert.
1797 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1798 Call fold_convert and constant_boolean_node to correct types.
1799 * tree-ssa-forwprop.c (substitute_single_use_vars): Add
1800 missing call to fold_convert to correct types.
1801
1802 2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
1803 Brian Ryner <bryner@brianryner.com>
1804
1805 PR c++/9283
1806 PR c++/15000
1807 * c-common.c (c_common_attribute_table): Allow
1808 handle_visibility_attribute to be called for types.
1809 (handle_visibility_attribute) When given a type, set the visibility
1810 bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
1811 so that we can check later whether the attribute was present. Added
1812 warning if attribute applied to non class type.
1813 * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
1814 decls and checking that they are consistent.
1815 * common.opt: Added -fvisibility.
1816 * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
1817 * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
1818 * flags.h, tree.h: Added assorted support defines for overall patch
1819 * opts.c: Added parsing support for -fvisibility.
1820 * tree.c (build_decl): Set visibility for all decls to be whatever
1821 is in force at that time.
1822 * varasm.c (default_binds_local_p_1): Reworked logic determining
1823 when to make a symbol locally bound.
1824 * doc/invoke.texi: Added documentation for -fvisibility and
1825 -fvisibility-inlines-hidden.
1826
1827 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1828
1829 * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
1830 * c-common.c: Add missing casts from void * to other types.
1831 * c-decl.c: Likewise.
1832 * c-format.c: Likewise.
1833 * c-lex.c: Likewise.
1834 * c-pragma.c: Likewise.
1835 * c-typeck.c: Likewise.
1836 * defaults.h: Likewise.
1837 * genconstants.c: Likewise.
1838 * gengtype-lex.l: Likewise.
1839 * genmodes.c: Likewise.
1840 * read-rtl.c: Likewise.
1841 * rtl.c: Likewise.
1842
1843 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1844
1845 * bitmap.c: Use type-safe memory allocation macros from libiberty.
1846 * c-common.c: Likewise.
1847 * c-decl.c: Likewise.
1848 * c-lang.c: Likewise.
1849 * c-lex.c: Likewise.
1850 * c-opts.c: Likewise.
1851 * c-parse.in: Likewise.
1852 * c-typeck.c: Likewise.
1853 * genconditions.c: Likewise.
1854 * gengtype-lex.l: Likewise.
1855 * gengtype-yacc.y: Likewise.
1856 * gengtype.c: Likewise.
1857 * genmodes.c: Likewise.
1858 * gensupport.c: Likewise.
1859 * read-rtl.c: Likewise.
1860 * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
1861 htab_find_slot().
1862
1863 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1864
1865 * c-decl.c (groktypename, groktypename_in_param_context): Rename
1866 variable typename to type_name.
1867 * c-lex.c (interpret_float): Likewise.
1868
1869 2004-07-25 Roger Sayle <roger@eyesopen.com>
1870
1871 * convert.c (convert_to_real, convert_to_integer,
1872 convert_to_complex): Replace calls to build with calls to buildN.
1873 * coverage.c (tree_coverage_counter_ref): Likewise.
1874 * dojump.c (do_jump): Likewise.
1875 * dwarf2out.c (loc_descriptor_from_tree): Likewise.
1876 * emit-rtl.c (component_ref_for_mem_expr,
1877 set_mem_attributes_minus_bitpos): Likewise.
1878 * explow.c (update_nonlocal_goto_save_area): Likewise.
1879 * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
1880 expand_mult_add): Likewise.
1881 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
1882 store_constructor, get_inner_reference, expand_expr_real_1,
1883 try_casesi, try_tablejump): Likewise.
1884 * function.c (expand_function_start): Likewise.
1885 * stmt.c (emit_case_bit_tests, expand_end_case_type,
1886 node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
1887 * stor-layout.c (place_union_field, layout_type): Likewise.
1888 * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
1889 * varasm.c (copy_constant): Likewise.
1890
1891 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1892
1893 * c-common.c: Rename all identifiers named `new'.
1894 * c-decl.c: Likewise.
1895 * gensupport.c: Likewise.
1896 * simplify-rtx.c: Likewise.
1897 * c-common.c (disable_builtin_function): Replace a call to xmalloc()
1898 with XNEW().
1899 * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
1900 with XNEWVEC().
1901
1902 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
1903
1904 PR c/15360
1905 * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
1906 declarations until after calling pushdecl.
1907 (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
1908 "extern" and not on whether the declaration is initialized.
1909
1910 2004-07-25 Daniel Jacobowitz <dan@debian.org>
1911
1912 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
1913 (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
1914 * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
1915 "cpplib.h", "c-pragma.h", "c-common.h".
1916 (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
1917 (solaris_register_pragmas): New functions.
1918 * config/sol2-protos.h: New file.
1919 * config/sol2.c: New file.
1920 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
1921 (REGISTER_TARGET_PRAGMAS): New macros.
1922 (solaris_pending_aligns, solaris_pending_inits)
1923 (solaris_pending_finis): New variables.
1924 * config/t-sol2 (sol2-c.o): Update dependencies.
1925 (sol2.o): New rule.
1926 * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
1927 SUBTARGET_INSERT_ATTRIBUTES.
1928 (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
1929 * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
1930 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
1931 * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
1932 * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
1933 * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
1934 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
1935 * config/sparc/sparc.c (sparc_attribute_table): New.
1936 (TARGET_INSERT_ATTRIBUTES): Define in terms of
1937 SUBTARGET_INSERT_ATTRIBUTES.
1938 (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
1939 is defined.
1940 * doc/extend.texi (Solaris Pragmas): New section.
1941
1942 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1943
1944 * c-common.c: Rename all identifiers named `class' to `cl'.
1945 * c-common.h: Likewise.
1946 * c-parse.in: Likewise.
1947 * c-typeck.c: Likewise.
1948 * genmodes.c: Likewise.
1949 * real.c: Likewise.
1950 * real.h: Likewise.
1951 * recog.c: Likewise.
1952 * recog.h: Likewise.
1953 * regrename.c: Likewise.
1954 * tree.h: Likewise.
1955 * c-common.c (builtin_function_2): Change type of 5th parameter from
1956 int to enum built_in_function. Change type of 8th parameter from int
1957 to bool.
1958 * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
1959 with GGC_CNEW().
1960 * c-typeck.c (convert_arguments): Change type of formal_prec from
1961 int to unsigned int.
1962 * genmodes.c (blank_mode): Make a few negative constants unsigned.
1963 (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
1964 emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
1965 emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
1966 emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
1967 iterator to for_all_modes () instead of an enum because enums can't
1968 be incremented in C++.
1969
1970
1971 2004-07-25 Daniel Jacobowitz <dan@debian.org>
1972
1973 * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
1974 hard registers.
1975
1976 2004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1977
1978 * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
1979 Handle ARRAY_RANGE_REF like ARRAY_REF.
1980
1981 2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
1982
1983 * c-typeck.c (digest_init): Don't allow arrays of signed or
1984 unsigned variants of wchar_t to be initialized by wide string
1985 constants. Do allow arrays of enumerated types compatible with
1986 wchar_t to be initialized by wide string constants. Refine tests
1987 distinguishing wide and narrow strings and arrays. Give specific
1988 error for arrays of other integer types initialized by string
1989 constants.
1990 (output_init_element, process_init_element): Check for
1991 INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
1992 initializing with string constants.
1993
1994 2004-07-25 Richard Henderson <rth@redhat.com>
1995
1996 * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
1997 on the RESULT_DECL.
1998 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1999 * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
2000 DECL_IGNORED_P to new decl.
2001
2002 2004-07-24 Zack Weinberg <zack@codesourcery.com>
2003
2004 * config/ia64/ia64.c (general_xfmode_operand)
2005 (destination_xfmode_operand): Delete.
2006 * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
2007 * config/ia64/ia64.md (*movxf_internal): Use general_operand
2008 and destination_operand.
2009
2010 2004-07-24 Alexander Kabaev <kan@freebsd.org>
2011
2012 * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
2013 (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
2014
2015 2004-07-24 Alexander Kabaev <kan@freebsd.org>
2016 Zack Weinberg <zack@codesourcery.com
2017
2018 PR 16684
2019 * c-decl.c (diagnose_mismatched_decls): Don't issue a
2020 redundant-declaration warning the first time a builtin is
2021 declared explicitly.
2022
2023 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2024
2025 * tree.h (staticp): Change return type to bool.
2026
2027 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2028
2029 * c-common.c (c_staticp): Last episode of the staticp saga.
2030
2031 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2032
2033 * c-common.h (c_staticp): Change return type from int to bool.
2034 * tree.c (staticp): Likewise.
2035 * langhooks.h (staticp): Likewise.
2036
2037 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2038
2039 * langhooks-def.h (lhd_staticp): Change return type from int to
2040 bool in prototype to match definition.
2041
2042 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2043
2044 * system.h (bool, true, false): Don't redefine as preprocessor macros
2045 in C++.
2046
2047 2004-07-24 Roger Sayle <roger@eyesopen.com>
2048
2049 * expmed.c (init_expmed): A signed modulus by a power of two is
2050 considered cheap if its less than or equal to four instructions.
2051
2052 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2053
2054 * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
2055 GGC_CNEWVAR): New macros.
2056
2057 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2058
2059 * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
2060 lists.
2061 * c-decl.c: Likewise.
2062 * c-format.c: Likewise.
2063 * c-lex.c: Likewise.
2064 * c-opts.c: Likewise.
2065 * c-pragma.c: Likewise.
2066 * c-typeck.c: Likewise.
2067 * gencheck.c: Likewise.
2068 * genconditions.c: Likewise.
2069 * genconfig.c: Likewise.
2070 * genflags.c: Likewise.
2071 * gengtype.c: Likewise.
2072 * gensupport.c: Likewise.
2073 * ggc-none.c: Likewise.
2074 * langhooks.c: Likewise.
2075 * statistics.h: Likewise.
2076 * stub-objc.c: Likewise.
2077 * java/decl.c: Likewise.
2078
2079 2004-07-24 Roman Zippel <zippel@linux-m68k.org>
2080
2081 * config/m68k/m68k.c (output_scc_di): Fix coding style.
2082 (symbolic_operand): Fix prototype.
2083 * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
2084 * config/m68k/m68k.md: Add constants for registers a0 and sp and
2085 use them, change from the "{...}" syntax to the simpler {...}
2086 syntax.
2087 (*cfv4_extendqisi2): Fix destination predicate.
2088 * config/m68k/m68k-protos.h: Remove various declarations also
2089 generated via PREDICATE_CODES.
2090
2091 2004-07-23 Mike Stump <mrs@apple.com>
2092
2093 * c-typeck.c (convert_for_assignment): Tightened up pointer
2094 converstions that differ in signedness.
2095
2096 2004-07-23 Zack Weinberg <zack@codesourcery.com>
2097
2098 * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
2099
2100 2004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2101
2102 * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
2103 * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
2104
2105 * gimplify.c (gimplify_compound_lval): Check for no handled
2106 operations, rather than checking for explicit list of nodes.
2107 (is_gimple_addr_expr_arg_or_indirect): New function.
2108 (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
2109 redundant setting of TREE_INVARIANT.
2110 (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
2111 * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
2112
2113 2004-07-23 Diego Novillo <dnovillo@redhat.com>
2114
2115 PR tree-optimization/16688
2116 PR tree-optimization/16689
2117 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
2118 unnecessary initialization of 'tag'.
2119 (get_tmt_for): Check that the new type tag has the same alias
2120 set as the pointed-to type.
2121 (group_aliases): Only regular variables need to be removed
2122 from the alias set of a name tag.
2123 * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
2124 propagation if the two types are not compatible.
2125 (merge_alias_info): Rename from replace_ssa_names_ann.
2126 Add more checking.
2127 (replace_exp_1): If both arguments are SSA_NAMEs, check that
2128 the propagation can be done.
2129 Only call merge_alias_info on pointers.
2130 (propagate_value): Likewise.
2131 * tree-ssa-copyrename.c: Include langhooks.h.
2132 (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
2133 to do the merging.
2134 Do not coalesce variables with incompatible types.
2135 (rename_ssa_copies): Call replace_ssa_name_symbol.
2136 * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
2137 the same type as the underlying _DECL.
2138 * tree-ssanames.c (replace_ssa_name_symbol): New function.
2139 * tree.h (replace_ssa_name_symbol): Declare.
2140
2141 2004-07-23 Richard Henderson <rth@redhat.com>
2142
2143 PR c++/16277
2144 * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
2145 unshare it properly.
2146 (gimplify_modify_expr_rhs): Push assignment from a conditional into
2147 the conditional for all non-register types.
2148
2149 2004-07-23 Richard Henderson <rth@redhat.com>
2150
2151 * expr.c (expand_expr_real_1): Don't handle non-local variables.
2152 * expr.h (fix_lexical_addr): Remove.
2153 * function.c (NEED_SEPARATE_AP): Remove.
2154 (fix_lexical_addr): Remove.
2155 * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
2156 not null decl_function_context.
2157 (create_alias_vars): Likewise.
2158 * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
2159 (simple_goto_p): Likewise.
2160 * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
2161 * tree-ssa-ccp.c (get_default_value): Likewise.
2162 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2163 * tree.c (needs_to_live_in_memory): Likewise.
2164 * tree-flow-inline.h (may_be_aliased): Move...
2165 * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for
2166 when TREE_STATIC variables may be addressable.
2167
2168 2004-07-24 Jakub Jelinek <jakub@redhat.com>
2169
2170 * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
2171
2172 2004-07-23 Zack Weinberg <zack@codesourcery.com>
2173
2174 * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
2175 bitmap contents if GENERATOR_FILE is defined.
2176 * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
2177 ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
2178
2179 2004-07-23 Joseph S. Myers <jsm@polyomino.org.uk>
2180
2181 * c-decl.c (start_function): Form composite type of function types
2182 rather than copying type from previous prototype declaration.
2183
2184 2004-07-23 Janis Johnson <janis187@us.ibm.com>
2185
2186 * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
2187 the const qualifier for the second argument in the C++ functions.
2188
2189 * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
2190 specific pointer types.
2191
2192 * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
2193 vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
2194 for vector bool and/or vector pixel, add C++ and C missing support.
2195 (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
2196 vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
2197 vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
2198 vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
2199 vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
2200 missing C++ and C support for vector bool and/or vector pixel.
2201 (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
2202 vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
2203 vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
2204 vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
2205 vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
2206 C++ and C types used for vector bool and/or vector pixel.
2207 (vec_st, vec_stl): Add C++ support for vector pixel.
2208 (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
2209 (vec_all_ne): Add C++ support for vector pixel.
2210
2211 * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
2212 (vec_vmulesb): Add missing C++ function.
2213 (vec_perm): Fix type of third argument in C++ function.
2214 (vec_vsum4shs): Fix C++ function name.
2215 (vec_any_ge): Remove C++ functions for unsupported arg combinations.
2216 (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
2217 argument passed to the error handler in C macro.
2218 (vec_nmsub): Remove extra parens around argument names in C macro.
2219 (vec_packpx): Add missing parens in C macro.
2220
2221 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
2222
2223 * machmode.def: Remove vector modes.
2224 * config/alpha/alpha-modes.def: Add supported vector modes.
2225 * config/arm/arm-modes.def: Likewise.
2226 * config/frv/frv-modes.def: Likewise.
2227 * config/i386/i386-modes.def: Likewise.
2228 * config/rs6000/rs6000-modes.def: Likewise.
2229 * config/sh/sh-modes.def: Likewise.
2230
2231 2004-07-23 Matthias Klose <doko@debian.org>
2232
2233 * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
2234 * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
2235 * config.h: Regenerate.
2236 * configure: Likewise.
2237
2238 2004-07-22 Mark Mitchell <mark@codesourcery.com>
2239
2240 * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
2241 generated SYMBOL_REFs for labels.
2242 * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
2243 Change prototype.
2244 (machopic_stub_name): Remove.
2245 (machopic_indirection_name): New function.
2246 (machopic_mcount_stub_name): Likewise.
2247 (machopic_classify_name): Remove.
2248 (machopic_function_base_sym): New function.
2249 (machpoic_classify_symbol): Likewise.
2250 (machopic_classify_ident): Remove.
2251 (machopic_define_ident): Likewise.
2252 (machopic_define_name): Likewise.
2253 (machopic_name_defined_p): Likewise.
2254 (machopic_ident_defined_p): Likewise.
2255 (darwin_strip_name_encoding): Likewise.
2256 (machopic_define_symbol): New function.
2257 * config/darwin.c (hashtab.h): Include.
2258 (machopic_defined_list): Remove.
2259 (machopic_classify_ident): Likewise.
2260 (machopic_classify_name): Likewise.
2261 (machopic_ident_defined_p): Likewise.
2262 (machopic_define_ident): Likewise.
2263 (machopic_define_name): Likewise.
2264 (machopic_symbol_defined_p): New function.
2265 (machopic_classify_symbol): Likewise.
2266 (machopic_data_defined_p): Use machopic_classify_symbol.
2267 (machopic_define_symbol): New function.
2268 (machopic_function_base_sym): New function.
2269 (machopic_non_lazy_pointers): Remove.
2270 (machopic_non_lazy_ptr_name): Likewise.
2271 (machopic_stubs): Likewise.
2272 (machopic_stub_name): Likewise.
2273 (NON_LAZY_POINTER_SUFFIX): New macro.
2274 (STUB_SUFFIX): Likewise.
2275 (machopic_indirection): New structure.
2276 (machopic_indirections): New variable.
2277 (machopic_indirection_hash): New function.
2278 (machopic_indirection_eq): Likewise.
2279 (machopic_indirection_name): Likewise.
2280 (machopic_mcount_stub_name): New function.
2281 (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
2282 hash table.
2283 (machopic_indirect_data_reference): Rework to use new functions.
2284 (machopic_indirect_call_target): Likewise.
2285 (machopic_legitimize_pic_address): Likewise.
2286 (machopic_output_indirection): New function.
2287 (machopic_finish): Use it.
2288 (machopic_operand_p): Rework to use new functions.
2289 (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
2290 (darwin_strip_name_encoding): Remove.
2291 (update_non_lazy_ptrs): Remove.
2292 (update_stubs): Likewise.
2293 (darwin_non_lazy_pcrel): Use new functions.
2294 * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2295 (ASM_OUTPUT_LABELREF): Likewise.
2296 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2297 (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
2298 (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
2299 (TARGET_STRIP_NAME_ENCODING): Do not use
2300 darwin_strip_name_encoding.
2301 (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
2302 darwin_strip_name_encoding.
2303 * config/i386/darwin.h (FUNCTION_PROFILER): Use
2304 machopic_mcount_stub_name.
2305 * config/i386/i386.c (x86_output_mi_thunk): Use
2306 machopic_indirection_name, not machopic_stub_name.
2307 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
2308 machopic_function_base_sym.
2309 (print_operand): Use machopic_classify_symbol.
2310 (rs6000_emit_prologue): Use machopic_function_base_sym.
2311 (output_profile_hook): Do not use machopic_stub_name.
2312 (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
2313
2314 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
2315
2316 PR c/7284
2317 * fold-const.c (extract_muldiv_1): Do not treat signed left shift
2318 as multiplication.
2319
2320 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
2321
2322 * doc/implement-c.texi: New file.
2323 * doc/extend.texi (C Implementation): Move to there.
2324 * doc/gcc.texi: Include implement-c.texi.
2325 * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
2326
2327 2004-07-22 Jason Merrill <jason@redhat.com>
2328
2329 * integrate.c (copy_decl_for_inlining): Remove invisible reference
2330 handling.
2331 * tree-inline.c (setup_one_parameter): Likewise.
2332
2333 2004-07-22 Brian Booth <bbooth@redhat.com>
2334
2335 * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
2336 (substitute_and_fold): Propigate into VUSE operands when possible.
2337 (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
2338 (cp_lattice_meet): Handle merging of latticevalues when
2339 UNKNOWN_VAL is present.
2340 (visit_stmt): Visit assignments with V_MUST_DEFs.
2341 (visit_assignment): Gather ccp information for V_MUST_DEF operands.
2342 (ccp_fold): Deal with RHS' that are constant and virtual.
2343 (evaluate_stmt): Handle UNKNOWN_VAL likely values.
2344 (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
2345 (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
2346 V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
2347 computing immediate uses.
2348 (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
2349 transition.
2350 (replace_vuse_in): New function.
2351 (likely_value): Add check of vuse operands.
2352 (get_default_value): Set the default value of virtually defined
2353 variables to UKNOWN_VAL instead of VARYING.
2354
2355 2004-07-22 Richard Henderson <rth@redhat.com>
2356
2357 * expr.c (emit_push_insn): Don't use set_mem_attributes.
2358
2359 2004-07-22 Richard Henderson <rth@redhat.com>
2360
2361 * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
2362 variables due to conditional compilation.
2363
2364 2004-07-22 Diego Novillo <dnovillo@redhat.com>
2365
2366 * tree-into-ssa.c (set_livein_block): Fix typo in comment.
2367 (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
2368 Release SSA names that have been re-renamed.
2369 * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
2370 variable.
2371 * tree-ssa-alias.c (init_alias_info): If aliases have been
2372 computed before, clear existing alias information.
2373 (create_name_tags): Do no fixup PT_ANYTHING pointers.
2374 If the new name tag for a pointer is different than the one it
2375 had before, mark the old tag for renaming.
2376 (replace_may_alias): New function.
2377 (group_aliases): Call it.
2378 (setup_pointers_and_addressables): Always call get_tmt_for.
2379 (maybe_create_global_var): Don't create .GLOBAL_VAR more than
2380 once.
2381 (set_pt_anything): New local function.
2382 (set_pt_malloc): New local function.
2383 (merge_pointed_to_info): Don't merge pointed-to variables from
2384 the original pointer if the destination is pointing to an
2385 unknown location.
2386 (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
2387 (add_pointed_to_var): Do not add a variable to the points-to
2388 set if the pointer is already pointing to anywhere.
2389 (collect_points_to_info_r): If the defining statement is a PHI
2390 node, only merge pointed-to information if the argument has
2391 already been visited.
2392 (get_tmt_for): Only create a new tag if the pointer didn't
2393 have one already.
2394 (dump_alias_info): Emit more information.
2395 (dump_points_to_info_for): Likewise.
2396 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
2397 try to get the annotation of an SSA_NAME.
2398 * tree-ssa-operands.c (add_stmt_operand): Only check for empty
2399 alias sets when checking is enabled.
2400 * tree-ssa-pre.c (need_eh_cleanup): New local variable.
2401 (eliminate): Mark basic blocks that will need
2402 EH information cleaned up.
2403 (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
2404 predecessor.
2405 Initialize need_eh_cleanup.
2406 (fini_pre): Call tree_purge_all_dead_eh_edges and
2407 cleanup_tree_cfg if needed.
2408 Free need_eh_cleanup.
2409 * tree-ssa.c (verify_ssa_name): New function.
2410 (verify_def): Call it.
2411 Re-arrange to avoid printing too many error messages.
2412 (verify_use): Likewise.
2413 (verify_phi_args): Likewise.
2414 (verify_flow_insensitive_alias_info): New function.
2415 (verify_flow_sensitive_alias_info): New function.
2416 (verify_alias_info): New function.
2417 (verify_ssa): Call verify_alias_info.
2418 Clear TREE_VISITED on all the SSA_NAMEs before scanning the
2419 program.
2420 Re-arrange to avoid printing too many error messages.
2421 * tree-ssanames.c (make_ssa_name): Clear
2422 SSA_NAME_IN_FREE_LIST.
2423 (release_ssa_name): Never release a default definition.
2424 (release_defs): New function.
2425 * tree.h: Declare it.
2426 * tree-ssa-dce.c (remove_dead_stmt): Call it.
2427
2428 2004-07-22 Diego Novillo <dnovillo@redhat.com>
2429
2430 * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
2431 If true, do a depth-first search. Do a breadht-first search,
2432 otherwise.
2433 (walk_use_def_chains): Add new argument IS_DFS.
2434 Update all users.
2435 * tree-flow.h (walk_use_def_chains): Update prototype.
2436
2437 2004-07-22 Hans-Peter Nilsson <hp@axis.com>
2438
2439 * config/cris/cris.md: Tweak formatting.
2440 (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
2441 (mover2side, moverside, movemside, movei, op3, andu): Replace
2442 live define_peephole:s with define_peephole2 near-equivalents.
2443 Delete the rest.
2444 ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all
2445 word-size modes.
2446 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2447 Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
2448 "*mov_sidesi_mem" respectively.
2449
2450 2004-07-22 Paolo Bonzini <bonzini@gnu.org>
2451
2452 * tree-cfg.c (gimplify_val): Move from tree-complex.c.
2453 (gimplify_build1): Move from tree-complex.c do_unop.
2454 (gimplify_build2): Move from tree-complex.c do_binop.
2455 (gimplify_build3): New.
2456 * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
2457 Adjust throughout to call the functions above.
2458 * tree-flow.h: Declare the functions above.
2459 * tree-nested.c (gimplify_val): Rename to...
2460 (tsi_gimplify_val): ... this.
2461
2462 * Makefile.in (tree_complex.o): Update dependencies.
2463 (stor-layout.o): Depend on regs.h.
2464 * c-common.c (handle_vector_size_attribute): Update for
2465 vector types without corresponding vector modes.
2466 * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
2467 a corresponding vector mode is not available.
2468 * print-tree.c (print_node): Print nunits for vector types
2469 * regclass.c (have_regs_of_mode): New.
2470 (init_reg_sets_1): Initialize it and use it instead
2471 of allocatable_regs_of_mode.
2472 * regs.h (have_regs_of_mode): Declare it.
2473 * stor-layout.c (layout_type): Pick a mode for vector types.
2474 * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
2475 build_replicated_const, do_unop, do_binop, do_plus_minus,
2476 do_negate, expand_vector_piecewise, expand_vector_parallel,
2477 expand_vector_addition, expand_vector_operations_1,
2478 expand_vector_operations, tree_lower_operations,
2479 pass_lower_vector_ssa, pass_pre_expand): New.
2480 (expand_complex_operations, pass_lower_complex): Remove.
2481 * tree-optimize.c (init_tree_optimization_passes): Adjust
2482 pass ordering for changes in tree-complex.c.
2483 * tree-pass.h: Declare new passes.
2484 * tree.c (finish_vector_type): Remove.
2485 (make_vector_type): New.
2486 (build_vector_type_for_mode, build_vector_type): Rewritten.
2487 * tree.def (VECTOR_TYPE): Document where the number of
2488 subparts is stored.
2489 * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
2490 (make_vector): Remove declaration.
2491
2492 2004-07-21 Richard Henderson <rth@redhat.com>
2493
2494 * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
2495 TREE_THIS_VOLATILE, may_aliases, or optimization level.
2496 (remove_useless_vars): Dump debugging info.
2497 (expand_used_vars): Move ...
2498 * cfgexpand.c (expand_used_vars): ... here. Make static.
2499 * tree-flow-inline.h (set_is_used): New.
2500 (set_default_def): Use get_var_ann.
2501 * tree-flow.h: Update decls.
2502 * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
2503 (create_ssa_var_map): Use it.
2504 * tree-ssa.c (set_is_used): Remove.
2505
2506 2004-07-22 Ben Elliston <bje@au.ibm.com>
2507
2508 * gdbinit.in: Set a breakpoint on internal_error.
2509
2510 2004-07-21 Richard Henderson <rth@redhat.com>
2511
2512 * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
2513 to create a new basic block.
2514
2515 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
2516
2517 PR c/15052
2518 * c-decl.c (grokdeclarator): Only pedwarn for qualified void
2519 return type on function definitions. Move other warnings for
2520 qualified return type to -Wreturn-type. Do not condition any such
2521 warnings on -pedantic. Update comments.
2522 (start_function): Only copy function type from previous prototype
2523 declaration if return types are compatible.
2524 * c-typeck.c (function_types_compatible_p): Don't condition
2525 warning for incompatibility of volatile qualifiers on the return
2526 type on -pedantic. Update comment.
2527 * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
2528
2529 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
2530
2531 * c-typeck.c (set_init_index): Require designator to be of integer
2532 type.
2533
2534 2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
2535
2536 PR c/11250
2537 * c-parse.in (init): Change to exprtype.
2538 (primary): Set original_code for STRING to STRING_CST.
2539 Call maybe_warn_string_init for compound literals.
2540 (initdcl, notype_initdcl): Call maybe_warn_string_init.
2541 (initval): Update.
2542 * c-tree.h (maybe_warn_string_init): New.
2543 (pop_init_level, process_init_element): Use struct c_expr.
2544 (struct c_expr): Update comment.
2545 * c-typeck.c (maybe_warn_string_init): New function.
2546 (digest_init): Call it. Additional parameter strict_string. All
2547 callers changed.
2548 (output_init_element): Likewise.
2549 (struct constructor_stack): Use struct c_expr for
2550 replacement_value.
2551 (really_start_incremental_init, push_init_level): Update.
2552 (pop_init_level): Update. Return struct c_expr.
2553 (process_init_level): Update. Take struct c_expr argument.
2554
2555 2004-07-21 David S. Miller <davem@nuts.davemloft.net>
2556
2557 * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
2558 commit.
2559
2560 2004-07-21 Eric Christopher <echristo@redhat.com>
2561
2562 * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
2563 removal.
2564 * c-decl.c (pop_scope): Ditto.
2565 * calls.c (expand_call): Remove call to current_nesting_level,
2566 update comment accordingly. Remove calls to expand_start_target_temps
2567 and expand_end_target_temps.
2568 * cfgexpand.c (construct_init_block): Remove call to
2569 expand_start_bindings_and_block.
2570 (construct_exit_block): Remove call to expand_end_bindings.
2571 * expr.c (safe_from_p): Remove BIND_EXPR handling.
2572 (expand_expr_real_1): Ditto. Fix formatting.
2573 (expand_vars): Delete.
2574 * stmt.c (POPSTACK): Remove block_stack.
2575 (stmt_status): Remove x_block_stack.
2576 (block_stack): Delete.
2577 (expand_start_bindings_and_block): Ditto.
2578 (expand_start_target_temps): Ditto.
2579 (expand_end_target_temps): Ditto.
2580 (current_nesting_level): Ditto.
2581 (warn_about_unused_variables): Ditto.
2582 (expand_end_bindings): Ditto.
2583 * tree.h: Remove declarations for above.
2584
2585 2004-07-21 Steven Bosscher <stevenb@suse.de>
2586
2587 * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
2588 * rtl.c (note_insn_name): Likewise.
2589 * print-rtl.c (print_rtx): Don't print it.
2590 * cfgrtl.h (can_delete_note_p): Don't handle it.
2591 (rtl_delete_block): Likewise.
2592 * passes.c (rest_of_handle_guess_branch_prob): Remove.
2593 (rest_of_compilation): Don't call it.
2594 * predict.c (process_note_predictions, process_note_prediction,
2595 note_prediction_to_br_prob): Remove.
2596 * basic-block.c (note_prediction_to_br_prob): Remove prototype.
2597 * stmt.c (return_prediction): Remove.
2598 (expand_value_return): Don't call it. Don't add prediction
2599 notes for return statements.
2600
2601 2004-07-21 Josef Zlomek <zlomekj@suse.cz>
2602
2603 * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
2604 once.
2605
2606 2004-07-21 Paolo Bonzini <bonzini@gnu.org>
2607
2608 * c-common.c (vector_types_convertible_p): Use vector types'
2609 TYPE_SIZE and TREE_TYPE instead of their mode.
2610 * convert.c (convert_to_integer): Likewise.
2611 (convert_to_vector): Likewise.
2612 * fold-const.c (fold_convert): Likewise.
2613 * varasm.c (output_constant): Likewise.
2614 * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
2615 Allow a VECTOR_TYPE initializer to be made of several vectors.
2616 For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
2617 of cleared and need_to_clear, and use fold_convert.
2618 * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
2619 integer vectors.
2620
2621 2004-07-20 Richard Henderson <rth@redhat.com>
2622
2623 * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
2624 (expand_gimple_basic_block): out from here. Renamed from expand_block.
2625
2626 2004-07-20 David S. Miller <davem@nuts.davemloft.net>
2627
2628 * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
2629 enormous cost if not TARGET_HARD_MUL.
2630
2631 2004-07-20 Andrew Pinski <apinski@apple.com>
2632
2633 PR target/16557
2634 * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
2635 (ASM_SPEC): here.
2636
2637 2004-07-21 Paul brook <paul@codesourcery.com>
2638
2639 * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
2640
2641 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2642
2643 * fold-const.c (operand_equal_p): Temporarily support NULL args.
2644 (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
2645 (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
2646
2647 2004-07-20 Zack Weinberg <zack@codesourcery.com>
2648
2649 * rtl.h (plus_constant): Delete.
2650 (plus_constant_wide): Rename to plus_constant.
2651 (plus_constant_for_output_wide): Delete vestigial prototype.
2652 (GEN_INT): Remove unnecessary cast.
2653 * tree.h (build_int_2, size_int_type): Delete.
2654 (build_int_2_wide): Rename to build_int_2.
2655 (size_int_wide): Rename to size_int_kind.
2656 (size_int_type_wide): Rename to size_int_type.
2657 (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
2658 Remove unnecessary cast.
2659 * tree.c (build_int_2_wide): Rename build_int_2; update comment.
2660 * explow.c (plus_constant_wide): Rename plus_constant; update comment.
2661 * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
2662 (size_int_type_wide): Rename size_int_type.
2663 (int_const_binop): Use size_int_type.
2664 * c-lex.c (interpret_integer): Use build_int_2.
2665 * final.c (split_double): Remove unnecessary casts.
2666 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
2667
2668 2004-07-20 Richard Henderson <rth@redhat.com>
2669
2670 * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
2671 (gimplify_compound_lval): Use is_gimple_tmp_reg.
2672 * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
2673 (is_gimple_tmp_reg): New.
2674 * tree-gimple.h (is_gimple_tmp_reg): Declare.
2675
2676 2004-07-20 Richard Henderson <rth@redhat.com>
2677
2678 * tree-pretty-print.c (dump_generic_node): Dump
2679 CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2680
2681 2004-07-20 Frank Ch. Eigler <fche@redhat.com>
2682
2683 * tree-mudflap.c (mf_set_options_fndecl): New tree.
2684 (mudflap_init): Set it.
2685 (mudflap_register_call): Remove __mf_init call.
2686 (mudflap_finish_file): Emit call to __mf_init here. Emit a call to
2687 to pass "-ignore-reads" option to libmudflap if needed.
2688
2689 2004-07-20 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
2690
2691 PR c++/14607
2692 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
2693 (MAKE_DECL_ONE_ONLY): Undefine.
2694 * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
2695 readonly_data, one_only_data_section, forget_section): New prototypes.
2696 * pa.c (pa_init_machine_status, som_text_section_asm_op): New
2697 functions.
2698 (pa_select_section): Add one-only (COMDAT) support.
2699 * pa.h (struct machine_function): Define.
2700 * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
2701 (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
2702 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2703 ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2704 ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
2705 (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
2706 (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
2707 (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2708 ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
2709 for EXTRA_SECTION_FUNCTIONS.
2710 * doc/install.texi: Update binutils requirements.
2711
2712 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
2713
2714 * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
2715 VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
2716 VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
2717 size_t.
2718 (struct VEC): Use unsigned for num and alloc.
2719 * vec.c (struct vec_prefix): Likewise.
2720 (vec_o_reserve): Adjust.
2721
2722 * dbxout.c (dbxout_type): Fix printf format.
2723
2724 * tree.h (binfo_member): Remove.
2725 * tree.c (binfo_member): Remove.
2726
2727 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
2728
2729 * tree.h: Include vec.h
2730 (DEF_VEC_P(tree)): New type.
2731 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
2732 (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
2733 (BINFO_LANG_SLOT): Remove.
2734 (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
2735 (struct tree_binfo): Turn base_binfos into a trailing
2736 VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
2737 (binfo_lang_slots): Remove.
2738 * tree.c (binfo_lang_slots): Remove.
2739 (make_tree_binfo_stat): Take a base binfo count, not a
2740 lang slot count. Adjust.
2741 * Makefile.in (TREE_H): Add vec.h
2742 * alias.c (record_component_aliases): Adjust BINFO access.
2743 * dbxout.c (dbxout_type): Likewise.
2744 * dwarf2out.c (gen_member_die): Likewise.
2745 * sdbout.c (sdbout_one_type): Likewise.
2746 * tree-dump.c (deque_and_dump): Likewise.
2747 * config/i386/i386.c (classify_argument,
2748 contains_128bit_aligned_vector_p): Likewise.
2749 * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
2750 * doc/c-tree.texi (Classes): Update BINFO documentation.
2751
2752 2004-07-20 Steven Bosscher <stevenb@suse.de>
2753
2754 * c-common.h (check_case_value): Remove prototype.
2755 (c_add_case_label): Adjust prototype.
2756 * c-common.c (check_case_value): Make static.
2757 (check_case_bounds): New function.
2758 (c_add_case_label): Use it. Take new argument orig_type.
2759 * c-typeck.c (struct c_switch): New orig_type field.
2760 (c_start_case): Set it.
2761 (do_case): Pass it to c_add_case_label.
2762 * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
2763 cases from here. Add the labels in reverse order.
2764 * stmt.c (struct case_node): Adjust comment. Remove balance field.
2765 (add_case_node): Return nothing, don't check for duplicate cases.
2766 Insert new case nodes in a list, not in an AVL tree.
2767 (expand_end_case_type): Don't turn a case tree into a case list.
2768 (case_tree2list): Remove.
2769 * tree.h (add_case_node): Adjust prototype.
2770
2771 2004-07-19 Paolo Bonzini <bonzini@gnu.org>
2772
2773 * genattr.c (struct range, struct function_unit,
2774 write_units, extend_range, init_range): Remove them.
2775 (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2776 Output "#define INSN_SCHEDULING" here.
2777 * genattrtab.c (struct range, struct function_unit_op,
2778 struct function_unit, struct dimension, enum operator,
2779 operate_exp, expand_units, simplify_knowing,
2780 encode_units_mask, simplify_by_exploding,
2781 find_and_mark_used_attributes, unmark_used_attributes,
2782 add_values_to_cover, increment_current_value,
2783 test_for_current_value, simplify_with_current_value,
2784 simplify_with_current_value_aux, gen_unit,
2785 write_unit_name, write_function_unit_info,
2786 write_complex_function, write_toplevel_expr,
2787 find_single_value, extend_range): Remove.
2788 (write_attr_get): Do not handle common_av->value
2789 being an FFS.
2790 (struct attr_desc): Remove func_units_p and blockage_p.
2791 (write_attr_valueq): Do not handle them.
2792 (find_attr): Do not clear them.
2793 (make_internal_attr): Do not initialize them.
2794 (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2795 * sched-vis.c (init_target_units, insn_print_units,
2796 init_block_visualization, print_block_visualization,
2797 visualize_scheduled_insns, visualize_no_unit,
2798 visualize_stall_cycles, visualize_alloc,
2799 visualize_free, target_units, get_visual_tbl_length,
2800 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
2801 visual_tbl_line_length, visual_tbl, n_vis_no_unit,
2802 MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
2803 * haifa-sched.c (blockage_range, clear_units,
2804 schedule_unit, actual_hazard, potential_hazard,
2805 insn_unit, unit_last_insn, unit_tick,
2806 actual_hazard_this_instance, potential_hazard,
2807 schedule_unit, max_insn_queue_index_value): Remove.
2808 (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
2809 max_insn_queue_index.
2810 * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
2811 * doc/md.texi (Processor pipeline description): Remove
2812 references to old pipeline descriptions.
2813 (Automaton pipeline description): Merge with the above.
2814 (Old pipeline description, Comparison of the two descriptions):
2815 Remove.
2816
2817 * bt-load.c (migrate_btr_def): Remove references to
2818 use_pipeline_interface.
2819 * haifa-sched.c (insn_cost, schedule_insn,
2820 schedule_block, advance_one_cycle, sched_init,
2821 queue_to_ready, sched_finish): Likewise.
2822 * modulo-sched.c (sms_schedule, advance_one_cycle,
2823 ps_has_conflicts): Likewise.
2824 * sched-rgn.c (init_ready): Likewise.
2825 (debug_dependencies): Likewise, and remove an "if (1)".
2826 * target.h (use_dfa_pipeline_interface): Remove.
2827 * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2828 * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2829 * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2830 * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2831 * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2832 * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2833 * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2834 * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2835 * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2836 * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2837 * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2838 * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2839 * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2840 * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2841 * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2842 * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2843 * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2844 * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2845 * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2846
2847 2004-07-19 Roger Sayle <roger@eyesopen.com>
2848
2849 * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
2850
2851 2004-07-19 Jeff Law <law@redhat.com>
2852
2853 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
2854 (get_eq_expr_value): Use it. Simplify slightly.
2855
2856 2004-07-19 Maciej W. Rozycki <macro@linux-mips.org>
2857
2858 * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
2859 (umulsidi3_32bit_r4000): Likewise.
2860
2861 2004-07-19 Nathan Sidwell <nathan@codesourcery.com>
2862
2863 * vec.h: Propagate location information properly.
2864 (VEC_T_iterate): Add result pointer parameter.
2865 (VEC_T_space): New.
2866 (VEC_T_reserve): Use it.
2867
2868 2004-07-19 Daniel Jacobowitz <dan@debian.org>
2869
2870 * Makefile.in (c-format.o): Depend on c-format.h.
2871 * c-format.h: New file.
2872 (struct format_char_info): Add CHAIN member.
2873 * c-format.c: Move some types and constants to c-format.h.
2874 (format_type_error): Set to -1.
2875 (struct function_format_info): Use an int for format_type.
2876 (decode_format_type): Return an int. Return format_type_error
2877 on error.
2878 (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
2879 (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
2880 (scan_char_table, time_char_table, monetary_char_table): Initialize
2881 CHAIN to NULL.
2882 (n_format_types): New variable.
2883 (check_format_info_main): Handle CHAIN in format_char_info.
2884 (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
2885 TARGET_N_FORMAT_TYPES.
2886 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2887 (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
2888 * config/sol2-c.c: New file.
2889 * config/t-sol2: New file.
2890 * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
2891 * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
2892 TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
2893
2894 * doc/extend.texi (Target Format Checks): New section.
2895 (Function Attributes): Mention it.
2896 * doc/invoke.texi: Mention target format checks.
2897 * doc/sourcebuild.texi: Mention target format checks.
2898 * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
2899 TARGET_FORMAT_TYPES.
2900
2901 2004-07-19 Andreas Krebbel <krebbel1@de.ibm.com>
2902
2903 * config/s390/s390-protos.h (s390_return_address_offset): Prototype
2904 added.
2905 * config/s390/s390.c (regclass_map initializer): Register 35 added to
2906 ADDR_REGS.
2907 (load_multiple_operation, store_multiple_operation): Removed
2908 pointless sanity check.
2909 (s390_decompose_address): Added check for return_address_pointer_rtx.
2910 (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
2911 (s390_return_address_offset): New function.
2912 * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
2913 (FRAME_REGNO_P): Added check for register 35.
2914 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
2915 REG_ALLOC_ORDER): Appended entry for register 35.
2916 (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
2917 (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
2918 (RETURN_ADDRESS_POINTER_REGNUM): New macro.
2919 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
2920 is eliminable using stack pointer or hard frame pointer.
2921 (REGISTER_NAMES): Added name for register 35.
2922 * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
2923 pointless sanity check.
2924
2925 2004-07-19 Roger Sayle <roger@eyesopen.com>
2926
2927 * fold-const.c (tree_expr_nonzero_p): Add function prototype.
2928 (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
2929 fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
2930 (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
2931 of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
2932 (fold_relational_const): Tidy up handling of floating point
2933 comparisons by calling real_compare. Remove tree_expr_nonzero_p
2934 transformation; fold_relational_const assumes constant operands.
2935
2936 2004-07-19 Gabriel Dos Reis <gdr@integrable-solution.net>
2937
2938 * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
2939 directory.
2940
2941 2004-07-19 Joseph S. Myers <jsm@polyomino.org.uk>
2942
2943 * c-tree.h (struct c_expr): Define.
2944 (C_SET_EXP_ORIGINAL_CODE): Remove.
2945 (parser_build_binary_op, build_compound_expr): Update prototypes.
2946 * c-parse.in (%union): Add exprtype.
2947 (FUNC_NAME): Mark as ttype.
2948 (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
2949 exprtype.
2950 (expr): Update. Define directly in terms of expr_no_commas
2951 instead of using nonnull_exprlist.
2952 (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
2953 offsetof_member_designator, typespec_nonreserved_nonattr, init,
2954 initval, designator, component_declarator,
2955 component_notype_declarator, enumerator, array_declarator,
2956 condition, exexpr, switch_statement, stmt_nocomp, stmt,
2957 nonnull_asm_operands, ivar_declarator, receiver): Update. Don't
2958 set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments
2959 where appropriate.
2960 * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
2961 * c-common.c (c_common_truthvalue_conversion): Don't check
2962 C_EXP_ORIGINAL_CODE.
2963 * c-typeck.c (parser_build_binary_op): Use c_expr structures.
2964 Don't use C_EXP_ORIGINAL_CODE.
2965 (default_conversion, default_function_array_conversion): Don't use
2966 C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING.
2967 (internal_build_compound_expr): Merge into build_compound_expr.
2968 (build_compound_expr): Take two operands instead of a TREE_LIST.
2969 * objc/objc-act.c (get_super_receiver): Update calls to
2970 build_compound_expr.
2971
2972 2004-07-18 Paolo Bonzini <bonzini@gnu.org>
2973
2974 * config/sh/sh.c (sh_use_dfa_interface): Remove.
2975 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
2976 hook_int_void_1.
2977 * config/sh/sh.md: Extract pipeline descriptions
2978 into separate files.
2979 * config/sh/sh1.md: New file, extracted from sh.md.
2980 * config/sh/sh4.md: New file, extracted from sh.md.
2981 * config/sh/shmedia.md: New file, extracted from sh.md
2982 and rewritten using new-style pipeline description.
2983
2984 2004-07-18 Zack Weinberg <zack@codesourcery.com>
2985
2986 * config/pa/pa.md: Delete the two remaining define_peephole
2987 patterns.
2988
2989 2004-07-18 Steven Bosscher <stevenb@suse.de>
2990 Joseph S. Myers <jsm@polyomino.org.uk>
2991
2992 * c-common.c (c_common_truthvalue_conversion): Don't warn if
2993 TREE_NO_WARNING is set.
2994
2995 2004-07-18 Roger Sayle <roger@eyesopen.com>
2996
2997 * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
2998 simplify_builtin_strncmp): Delete.
2999 (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
3000 Change argument to accept an arglist instead of an "exp". Assume
3001 that the return type is always integer_type_node. Copy missing
3002 transformations from their now obsolete simplify_builtin_*
3003 equivalents.
3004 (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
3005 fold_builtin_strcmp and fold_builtin_strncmp.
3006 (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
3007 and fold_builtin_strncmp instead of simplify_builtin_memcmp,
3008 simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
3009
3010 2004-07-18 Daniel Jacobowitz <dan@debian.org>
3011
3012 * Makefile.in (tree-alias-common.o): Update dependencies.
3013
3014 2004-07-17 Sebastian Pop <pop@cri.ensmp.fr>
3015
3016 * cfgloop.c (flow_loop_nested_p): Fix comment.
3017
3018 2004-07-17 Jason Merrill <jason@redhat.com>
3019
3020 PR c++/16115
3021 * stor-layout.c (relayout_decl): New fn.
3022 * tree.h: Declare it.
3023 (DECL_BY_REFERENCE): New macro.
3024
3025 2004-07-17 Eric Botcazou <ebotcazou@act-europe.fr>
3026
3027 * libgcc2.c (__enable_execute_stack): New symbol.
3028 * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4
3029 and declare __enable_execute_stack.
3030 * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
3031 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
3032 * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3033 ENABLE_EXECUTE_STACK.
3034 * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
3035 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3036 * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3037 ENABLE_EXECUTE_STACK.
3038 * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3039 * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
3040 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3041 * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
3042 ENABLE_EXECUTE_STACK.
3043 * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3044 * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3045 * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3046 * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
3047 * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
3048 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
3049 (sparc64_initialize_trampoline): Likewise.
3050 * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
3051
3052 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
3053
3054 * langhooks.h (builtin_function): New langhook.
3055 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
3056 (LANG_HOOKS_INITIALIZER): Update.
3057 * tree.h (builtin_function): Remove.
3058 * doc/tm.texi: Update.
3059 * c-tree.h (builtin_function): Declare.
3060 * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
3061 config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
3062 config/ia64/ia64.c, config/iq2000/iq2000.c,
3063 config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
3064 config/stormy16/stormy16.c: All callers of builtin_function
3065 changed.
3066
3067 2004-07-17 Andrew Pinski <pinskia@physics.uc.edu>
3068
3069 PR target/16556
3070 * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3071 Remove white space after the backslash.
3072
3073 2004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
3074
3075 PR rtl-optimization/16294
3076 * resource.c (return_insn_p): New predicate.
3077 (mark_target_live_regs): Use it. Special-case return insns.
3078 (init_resource_info): Use it. Don't scan the epilogue past
3079 a return.
3080
3081 2004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3082
3083 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
3084 destroy dominance information.
3085 * passes.c (rest_of_handle_loop2): Free dominance information.
3086 * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
3087 jump threading.
3088 (thread_jumps): Update dominance information and remove unreachable
3089 blocks.
3090 * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance
3091 information and remove the unreachable block.
3092
3093 2004-07-17 Graham Stott <graham.stott@btinternet.com>
3094
3095 * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
3096
3097 2004-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
3098
3099 * doc/sourcebuild.texi: Remove libf2c entry.
3100
3101 2004-07-17 Paolo Bonzini <bonzini@gnu.org>
3102
3103 * config/i386/i386.md (movv16qi_internal): Fix typo.
3104
3105 2004-07-17 Steven Bosscher <stevenb@suse.de>
3106
3107 * final.c (final_scan_insn): Fix broken commit from previous
3108 patch.
3109
3110 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
3111
3112 * c-typeck.c (parser_build_binary_op): Condition warnings for
3113 X<=Y<=Z on -Wparentheses instead of -Wextra.
3114 * doc/invoke.texi: Update. Document that most of -Wparentheses is
3115 supported for C only.
3116
3117 2004-07-17 Steven Bosscher <stevenb@suse.de>
3118
3119 * cfgcleanup.c (try_simplify_condjump): Don't remove line
3120 notes to avoid unreachable code warnings.
3121 * toplev.c (backend_init): Don't emit line notes for
3122 unreachable code warnings.
3123
3124 * combine.c (distribute_notes): Don't distribute a
3125 REG_VTABLE_REF note.
3126 * final.c (final_scan_insn): Don't handle it.
3127 * rtl.c (reg_note_name): Remove it.
3128 * rtl.h (enum reg_node): Dito.
3129
3130 * emit-rtl.c (force_line_numbers, restore_line_number_status):
3131 Remove.
3132 * rtl.h (force_line_numbers, restore_line_number_status):
3133 Remove prototypes.
3134
3135 * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
3136 * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static.
3137 (using_eh_for_cleanups): Also moved here.
3138
3139 * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
3140 <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY. Update calls
3141 to expand_start_case and add_case_node.
3142 * stmt.c (struct nesting): Cleanup unused fields condition_code,
3143 last_unconditional_cleanup, nominal_type, printname, and
3144 line_number_status.
3145 (struct fixup_goto): Remove.
3146 (struct stmt_status): Remove x_goto_fixup_chain field.
3147 (goto_fixup_chain): Remove.
3148 (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
3149 pushcase, pushcase_range): Remove.
3150 (expand_start_bindings_and_block): Don't set unused fields in
3151 the nesting stack.
3152 (expand_start_case, add_case_node): Cleanup unused formal arguments.
3153 (expand_end_case_type): Don't simplify the case-list. Use emit_jump
3154 instead of emit_jump_if_reachable.
3155 (emit_case_nodes): Likewise.
3156 * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
3157 static.
3158 (update_eh_label): Work around left-over exception handing regions.
3159 * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
3160 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
3161 (pass_cleanup_cfg_post_optimizing): New pass.
3162 (init_tree_optimization_passes): Run the new pass after all
3163 optimizations.
3164 * tree.h (pushcase, pushcase_range): Remove prototypes.
3165 (expand_start_case, add_case_node): Update prototypes.
3166
3167 2004-07-16 Krister Walfridsson <cato@df.lth.se>
3168
3169 * tree-inline.c (estimate_num_insns_1): Correct increase of count.
3170
3171 2004-07-16 Richard Henderson <rth@redhat.com>
3172
3173 * builtins.c (std_expand_builtin_va_arg): Remove.
3174 (expand_builtin_va_arg): Remove.
3175 * expr.h: Don't declare them.
3176 * gimplify.c (mark_decls_volatile_r): Remove.
3177 (copy_if_shared_r): Don't call it.
3178 * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
3179 * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
3180 * gimple-low.c (lower_stmt): Likewise.
3181 * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
3182 * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
3183 * tree-ssa-operands.c (get_expr_operands): Likewise.
3184 * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
3185 EXPAND_BUILTIN_VA_ARG.
3186 * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
3187 * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
3188 config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
3189 config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
3190
3191 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
3192
3193 * tree-ssa-pre.c (insert_aux): Break out if we hit
3194 a critical edge.
3195
3196 2004-07-16 Richard Henderson <rth@redhat.com>
3197
3198 * basic-block.h (remove_fake_exit_edges): Declare.
3199 * cfganal.c (remove_fake_predecessors): Rename from
3200 remove_fake_successors; iterate over predecessors.
3201 (remove_fake_exit_edges): New.
3202 * cfgcleanup.c (try_optimize_cfg): Use it.
3203 * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
3204 * predict.c (estimate_probability): Likewise.
3205 (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
3206 * tree-cfg.c (make_edges): Likewise.
3207 * tree-ssa-pre.c (fini_pre): Likewise.
3208 * profile.c (instrument_edges): Don't remove_fake_edges.
3209 (branch_prob): Do it earlier here.
3210
3211 2004-07-16 Richard Henderson <rth@redhat.com>
3212
3213 * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
3214 switchification wrt CONSTRUCTOR. Document the reason.
3215
3216 2004-07-16 Frank Ch. Eigler <fche@redhat.com>
3217
3218 * tree-mudflap.c (mf_file_function_line_tree): Correct typo
3219 that prevented descriptive __mf_check source location strings.
3220
3221 2004-07-16 Richard Henderson <rth@redhat.com>
3222
3223 * tree-def (WITH_SIZE_EXPR): New.
3224 * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
3225 * expr.c (expand_expr_real_1): Likewise.
3226 * gimplify.c (maybe_with_size_expr): New.
3227 (gimplify_arg, gimplify_modify_expr): Use it.
3228 (gimplify_modify_expr_to_memcpy): Take size parameter.
3229 (gimplify_modify_expr_to_memset): Likewise.
3230 (gimplify_expr): Handle WITH_SIZE_EXPR.
3231 * tree-alias-common.c (find_func_aliases): Likewise.
3232 * tree-eh.c (tree_could_trap_p): Likewise.
3233 (tree_could_throw_p): Likewise.
3234 * tree-gimple.c (is_gimple_lvalue): Likewise.
3235 (get_call_expr_in): Likewise.
3236 * tree-inline.c (estimate_num_insns_1): Likewise.
3237 (expand_calls_inline): Likewise.
3238 * tree-nested.c (convert_call_expr): Likewise.
3239 * tree-pretty-print.c (dump_generic_node): Likewise.
3240 * tree-sra.c (sra_walk_expr): Likewise.
3241 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
3242 * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
3243 * tree-ssa-operands.c (get_expr_operands): Likewise.
3244 * tree-tailcall.c (find_tail_calls): Likewise.
3245
3246 * calls.c (expand_call): Reset old_stack_allocated after
3247 calling emit_stack_restore.
3248
3249 2004-07-16 Richard Henderson <rth@redhat.com>
3250
3251 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
3252 lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
3253 * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
3254 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
3255 copy_res_decl_for_inlining.
3256
3257 * tree-inline.c (declare_return_variable): New modify_dest argument.
3258 Use it as the return value, when possible or manditory. Handle
3259 TREE_ADDRESSABLE types.
3260 (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify
3261 replacement of CALL_EXPR.
3262
3263 2004-07-16 Richard Henderson <rth@redhat.com>
3264
3265 * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
3266 * gimple-low.c (expand_var_p): Don't check it.
3267 * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
3268 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3269 * tree-ssa-operands.c (add_stmt_operand): Likewise.
3270 * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
3271 (find_referenced_vars): Don't call them.
3272 * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
3273
3274 2004-07-16 Richard Henderson <rth@redhat.com>
3275
3276 * function.c (pass_by_reference): True for all variable sized types.
3277
3278 2004-07-16 Sebastian Pop <pop@cri.ensmp.fr>
3279
3280 * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
3281 * tree-pretty-print.c: Include tree-chrec.h.
3282 (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
3283 and POLYNOMIAL_CHREC nodes.
3284
3285 2004-07-16 Steve Ellcey <sje@cup.hp.com>
3286
3287 * builtins.c (expand_builtin_stpcpy): Do not create temporary
3288 reg with VOIDmode.
3289
3290 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
3291
3292 * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
3293
3294 2004-07-16 Andreas Krebbel <krebbel1@de.ibm.com>
3295
3296 * config/s390/s390.md: Changed every occurence of BASE_REGISTER
3297 to BASE_REGNUM.
3298 * config/s390/s390.c: Likewise.
3299 * config/s390/s390.h: Likewise.
3300
3301 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3302
3303 * config/mips/mips.md (addsi3, adddi3): Remove special handling
3304 of $sp adds. Remove REGNO checks from mips16 patterns.
3305
3306 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3307
3308 * config/mips/mips.md: Delete outdated comment.
3309
3310 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3311
3312 * config/mips/mips.c (get_float_compare_codes): Delete.
3313 (mips_emit_compare): New function, mostly extracted from
3314 get_float_compare_codes and gen_conditional_branch.
3315 (gen_conditional_branch, gen_conditional_move): Use it.
3316
3317 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
3318
3319 * genautomata.c (add_vect): Speedup by using integers as
3320 bit-vectors for walking through the comb_vect and finding
3321 a match.
3322
3323 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3324
3325 * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
3326 operand is an uns_arith_operand; use subtraction otherwise.
3327 * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
3328 not just arith_operands.
3329
3330 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3331
3332 * config/mips/mips-protos.h (gen_int_relational): Delete.
3333 (mips_emit_scc): Declare.
3334 * config/mips/mips.c (internal_test): Delete.
3335 (sle_operand, sleu_operand): New functions.
3336 (map_test_to_internal_test, gen_int_relational): Delete.
3337 (mips_emit_binary, mips_relational_operand_ok_p)
3338 (mips_emit_int_relational, mips_zero_if_equal)
3339 (mips_emit_scc): New functions.
3340 (gen_conditional_branch): Rework to use mips_emit_int_relational.
3341 * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
3342 sleu_operand.
3343 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
3344 (sltu, sleu): Use mips_emit_scc.
3345 (*sge_[sd]i, *sgeu_[sd]i): New patterns.
3346 (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
3347 (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
3348
3349 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3350
3351 * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
3352
3353 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3354
3355 * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
3356 (*sne_[sd]i): Likewise sne_[sd]i_zero.
3357 (*sgt_[sd]i): ...and sgt_[sd]i.
3358 (*slt_[sd]i): ...and slt_[sd]i.
3359 (*sgtu_[sd]i): ...and sgtu_[sd]i.
3360 (*sltu_[sd]i): ...and sltu_[sd]i.
3361 (*sleu_[sd]i): ...and sleu_[sd]i_const.
3362 Name previously unnamed mips16 patterns. Formatting fixes.
3363
3364 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3365
3366 * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
3367 (branch_type): Delete.
3368 (gen_conditional_branch, gen_conditional_move)
3369 (mips_gen_conditional_trap): Update after name change. Get the
3370 comparison mode from cmp_operands[0].
3371 * config/mips/mips.h (cmp_type, branch_type): Delete.
3372 (cmp_operands): Renamed from branch_cmp.
3373 * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
3374 name change. Don't set branch_type.
3375 (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
3376 mode class of cmp_operands[0] rather than branch_type. Update after
3377 name change.
3378
3379 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3380
3381 * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
3382 of 0...255 to 0 when inside a SET.
3383
3384 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
3385
3386 * config/mips/mips.md: Remove mips16 define_peepholes.
3387
3388 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
3389
3390 * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
3391 (fini_pre): Remove fake edges.
3392
3393 2004-07-15 Richard Henderson <rth@redhat.com>
3394
3395 * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out...
3396 (get_indirect_ref_operands, get_call_expr_operands): ... these.
3397
3398 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
3399
3400 * vec.h (VEC_address): New function.
3401
3402 2004-07-14 Jason Merrill <jason@redhat.com>
3403
3404 PR middle-end/15885
3405 * gimplify.c (gimplify_arg): New fn, split out from...
3406 (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START.
3407
3408 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
3409
3410 * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
3411 generate code which is generated by pushqi1 now
3412 * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
3413
3414 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
3415
3416 * combine.c (simplify_set): match the mode of the constant 0 with
3417 the tested operand to match the compare behaviour and the
3418 simplify_relational_operation() expectation.
3419
3420 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
3421
3422 * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
3423 ("bordered"): Same.
3424
3425 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
3426
3427 * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
3428 unconditionally.
3429 * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
3430
3431 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
3432
3433 * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
3434 calls in mips16 code.
3435
3436 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
3437
3438 * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
3439 the destination of the li as well as for the neg.
3440
3441 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
3442
3443 g++/15861
3444 * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
3445 * cgraph.h: Update declaration.
3446 * c-decl.c (build_cdtor): Update call with default priority.
3447 * coverage.c (create_coverage): Ditto.
3448 * tree-mudflap.c (mf_init_fndecl): New tree.
3449 (mudflap_init): Set it.
3450 (mudflap_register_call): Arrange to call __mf_init before the first
3451 __mf_register call.
3452 (mudflap_finish_file): Mark the mudflap static initializer as extra
3453 high priority, to beat all C++ static constructors.
3454
3455 2004-07-15 Jeff Law <law@redhat.com>
3456
3457 * loop.c (check_insn_for_givs): Restore check for code labels that was
3458 accidentally deleted by a recent checkin.
3459
3460 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
3461
3462 * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
3463 (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
3464
3465 2004-07-14 Richard Henderson <rth@redhat.com>
3466
3467 * print-tree.c (print_node): Fix casts last change.
3468
3469 2004-07-15 Paul Brook <paul@codesourcery.com>
3470
3471 * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
3472 to TARGET_UNWIND_INFO.
3473 * except.c (output_function_exception_table): Ditto.
3474 * except.h: Ditto.
3475 * opts.c (decode_options): Ditto.
3476 * passes.c (rest_of_handle_final): Ditto.
3477 * final.c (final_start_function): Ditto.
3478 (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
3479 target hook.
3480 * targhooks.h (default_unwind_emit): Declare.
3481 * targhooks.c (default_unwind_emit): New function.
3482 * target-def.h: Define and use TARGET_UNWIND_EMIT.
3483 * target.h (struct gcc_target): Add unwind_emit.
3484 * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
3485 * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
3486 Remove IA64_UNWIND_EMIT.
3487 * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
3488
3489 2004-07-14 Richard Henderson <rth@redhat.com>
3490
3491 * print-tree.c (print_node): Handle SSA_NAME.
3492
3493 2004-07-14 James E Wilson <wilson@specifixinc.com>
3494
3495 PR target/16325
3496 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
3497 and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
3498
3499 2004-07-15 Jakub Jelinek <jakub@redhat.com>
3500
3501 * expr.c (expand_assignment): Reenable bitfield += optimizations.
3502 Use alias set 0 for memory, do proper mode calculations and adjust
3503 address for memories.
3504
3505 2004-07-14 Per Bothner <per@bothner.com>
3506
3507 * input.h: If USE_MAPPED_LOCATION, define separate expanded_location
3508 structure with extra column field.
3509 * tree.c (expand_location): Also fill in column field.
3510 * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype
3511 gets confused by the two conditionally-compiled definitions.
3512
3513 2004-07-14 Eric Christopher <echristo@redhat.com>
3514
3515 * calls.c (expand_call): Fix typo in comment.
3516
3517 2004-07-14 Steve Ellcey <sje@cup.hp.com>
3518
3519 * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
3520 comparision of TFmode.
3521
3522 2004-07-14 Richard Henderson <rth@redhat.com>
3523
3524 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
3525 (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference.
3526 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
3527 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3528 * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
3529 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3530 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3531 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
3532 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
3533
3534 2004-07-14 Mike Stump <mrs@apple.com>
3535
3536 * config/darwin.h (WINT_TYPE): Define to be int to match
3537 system header files.
3538
3539 2004-07-14 Bob Wilson <bob.wilson@acm.org>
3540
3541 * config/xtensa/xtensa.c (function_arg_advance): Check for args
3542 that must be passed in the stack.
3543 (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
3544 arguments if the size is not a constant.
3545
3546 2004-07-14 Per Bothner <per@bothner.com>
3547
3548 * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION
3549 instead of EXPR_LOCUS in a boolean context, which is always true
3550 if --enable-mapped-location.
3551 * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION.
3552
3553 2004-07-14 Richard Henderson <rth@redhat.com>
3554
3555 * dominance.c (struct dom_info): Add fake_exit_edge.
3556 (init_dom_info): Allocate it.
3557 (free_dom_info): Free it.
3558 (calc_dfs_tree): Set it. Handle noreturn and infinite loops
3559 in two passes.
3560 (calc_idoms): Honor fake_exit_edge.
3561
3562 2004-07-13 Jason Merrill <jason@redhat.com>
3563
3564 * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
3565 (rhs_test_for): New fn.
3566 (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
3567 * tree-gimple.h: Declare them.
3568 * gimplify.c (gimplify_modify_expr): Use the new fns.
3569
3570 2004-07-14 Richard Henderson <rth@redhat.com>
3571
3572 * config/arm/arm-protos.h (arm_va_arg): Remove.
3573 * config/arm/arm.c (arm_va_arg): Remove.
3574 (arm_init_expanders): Fix alignment of arg_pointer_rtx.
3575 * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
3576
3577 2004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3578
3579 * pa.c (fix_range): New function to mark a range(s) of registers as
3580 fixed registers.
3581 (override_options): Call fix_range if the -mfixed-range option string
3582 is not empty.
3583 * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
3584 * doc/invoke.texi (-mfixed-range): Document new option.
3585
3586 2004-07-14 David Edelsohn <edelsohn@gnu.org>
3587
3588 * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
3589 for TARGET_64BIT.
3590 (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
3591
3592 2004-07-14 Roger Sayle <roger@eyesopen.com>
3593
3594 * expmed.c (expand_sdiv_pow2): New function to expand signed division
3595 by a positive power of two, split out from expand_divmod. Provide
3596 an alternate implementation when shifts are expensive. Lower the
3597 threshold for using a branchless implementation to BRANCH_COST >= 2.
3598 (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
3599
3600 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
3601
3602 * tree-dfa.c (make_rename_temp): *Really* work just
3603 like create_tmp_var if called while outside SSA form.
3604
3605 2004-07-14 Ulrich Weigand <uweigand@de.ibm.com>
3606
3607 * config/s390/s390.md ("udivsi3"): Ensure trap is generated
3608 for division by zero.
3609 ("umodsi3"): Likewise.
3610
3611 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
3612
3613 * config/mips/mips.c (mips_output_move): When generating mips16 code,
3614 force loads of negative constants to be split.
3615 * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
3616 Generalize SImode li/neg splitter to cope with other modes.
3617
3618 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
3619
3620 * expmed.c: Remove more references to QUEUED in the comments.
3621 * expr.c: Likewise.
3622
3623 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
3624
3625 Revert:
3626 2004-07-13 Richard Henderson <rth@redhat.com>
3627 * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
3628 correctly.
3629
3630 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
3631
3632 * tree-dfa.c (make_rename_temp): Work just like
3633 create_tmp_var if called while outside SSA form.
3634
3635 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
3636
3637 * expr.c (enqueue_insn, finish_expr_for_function,
3638 protect_from_queue, queued_subexp_p, mark_queue,
3639 emit_insns_enqueued_after_mark, emit_queue,
3640 expand_increment): Remove.
3641 (store_constructor): Expand increment as an assignment.
3642 (expand_expr_real_1 <case PREINCREMENT_EXPR,
3643 case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
3644 case POSTDECREMENT_EXPR>): Abort.
3645 * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
3646 QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
3647 protect_from_queue, emit_queue, queued_subexp_p): Remove.
3648 * function.h (pending_chain, x_pending_chain): Remove.
3649 * rtl.def (QUEUED): Remove.
3650
3651 * emit-rtl.c (copy_insn_1, copy_most_rtx,
3652 set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
3653 * genattrtab.c (attr_copy_rtx, clear_struct_flag,
3654 encode_units_mask): Likewise.
3655 * local-alloc.c (equiv_init_varies_p): Likewise.
3656 * rtl.c (copy_rtx): Likewise.
3657 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
3658 * simplify-rtx.c (simplify_gen_subreg): Likewise.
3659 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
3660
3661 * builtins.c (expand_builtin, expand_builtin_apply,
3662 expand_builtin_mathfn, expand_builtin_mathfn_2,
3663 expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
3664 Remove calls to emit_queue and protect_from_queue.
3665 * calls.c (expand_call, precompute_arguments,
3666 precompute_register_parameters, rtx_for_function_call,
3667 store_one_arg): Likewise.
3668 * dojump.c (do_compare_and_jump, do_jump): Likewise.
3669 * explow.c (memory_address): Likewise.
3670 * expmed.c (clear_by_pieces_1, clear_storage,
3671 clear_storage_via_libcall, emit_group_load,
3672 emit_group_store, emit_store_flag,
3673 expand_expr_real_1, store_by_pieces,
3674 store_constructor, store_expr, try_casesi,
3675 try_tablejump): Likewise.
3676 * function.c (expand_pending_sizes): Likewise.
3677 * optabs.c (emit_cmp_and_jump_insns,
3678 emit_conditional_add, emit_conditional_move,
3679 expand_fix, expand_float, prepare_cmp_insn): Likewise.
3680 * stmt.c (emit_case_bit_tests,
3681 expand_asm_expr, expand_computed_goto,
3682 expand_decl_init, expand_end_case_type,
3683 expand_end_stmt_expr, expand_expr_stmt_value,
3684 expand_return, expand_start_case,
3685 optimize_tail_recursion): Likewise.
3686 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3687 * config/s390/s390.c (s390_expand_cmpmem): Likewise.
3688
3689 2004-07-14 Ben Elliston <bje@au.ibm.com>
3690
3691 * vec.h: Comment fix.
3692
3693 2004-07-13 Richard Henderson <rth@redhat.com>
3694
3695 * target.h (struct gcc_target): Add calls.pass_by_reference.
3696 * target-def.h (TARGET_PASS_BY_REFERENCE): New.
3697 * function.c (pass_by_reference): Use the hook.
3698 * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
3699 * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
3700 (hook_pass_by_reference_must_pass_in_stack): New.
3701 * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
3702 (alpha_pass_by_reference): New.
3703 (TARGET_PASS_BY_REFERENCE): New.
3704 * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3705 * config/arc/arc.c (arc_pass_by_reference): New.
3706 (TARGET_PASS_BY_REFERENCE): New.
3707 * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3708 (FUNCTION_ARG_CALLEE_COPIES): True.
3709 * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
3710 * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
3711 (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
3712 * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3713 * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3714 * config/cris/cris.c (cris_pass_by_reference): New.
3715 (TARGET_PASS_BY_REFERENCE): New.
3716 * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
3717 (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
3718 (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3719 * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
3720 * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3721 * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
3722 * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
3723 (frv_function_arg_pass_by_reference): Remove.
3724 * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3725 * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
3726 * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
3727 (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
3728 * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3729 * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
3730 * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
3731 (ia64_pass_by_reference): Rename from
3732 ia64_function_arg_pass_by_reference.
3733 * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3734 * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3735 * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
3736 * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
3737 (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
3738 * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3739 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3740 * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
3741 * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
3742 (m32r_pass_by_reference): Adjust prototype. Make static.
3743 Handle mode sizes correctly.
3744 * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3745 * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
3746 (m68hc11_function_arg_pass_by_reference): Remove.
3747 * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3748 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3749 * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
3750 * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3751 * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
3752 * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
3753 (mips_va_arg): Use pass_by_reference.
3754 (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
3755 Handle mode sizes correctly.
3756 * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3757 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3758 * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
3759 * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
3760 (mmix_pass_by_reference): Rename from
3761 mmix_function_arg_pass_by_reference.
3762 * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3763 (FUNCTION_ARG_CALLEE_COPIES): True.
3764 * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
3765 (mn10300_pass_by_reference): New.
3766 * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3767 (FUNCTION_ARG_CALLEE_COPIES): True.
3768 * config/pa/pa.c (pa_pass_by_reference): New.
3769 (TARGET_PASS_BY_REFERENCE): New.
3770 * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3771 (FUNCTION_ARG_CALLEE_COPIES): True.
3772 * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
3773 * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
3774 (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
3775 * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3776 * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
3777 * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
3778 (s390_pass_by_reference): Rename from
3779 s390_function_arg_pass_by_reference.
3780 (s390_function_arg_advance): Don't query pass-by-ref.
3781 (s390_function_arg): Likewise.
3782 (s390_gimplify_va_arg): Use pass_by_reference.
3783 (s390_call_saved_register_used): Likewise.
3784 * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3785 * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
3786 (shcompact_byref, sh_pass_by_reference): New.
3787 * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3788 (SHCOMPACT_BYREF): Remove.
3789 * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
3790 * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
3791 (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
3792 (sparc_gimplify_va_arg): Use pass_by_reference.
3793 * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3794 * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3795 * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
3796 (v850_pass_by_reference): New.
3797 * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3798 (FUNCTION_ARG_CALLEE_COPIES): True.
3799 * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
3800 FUNCTION_ARG_PASS_BY_REFERENCE docs.
3801
3802 2004-07-14 Richard Henderson <rth@redhat.com>
3803 Richard Sandiford <rsandifo@redhat.com>
3804
3805 * config/mips/mips-protos.h (mips_va_arg): Delete.
3806 * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
3807 * config/mips/mips.c: Include tree-gimple.h.
3808 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3809 (mips_arg_info): Remove special handling of must_pass_in_stck args.
3810 (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
3811 (function_arg_pass_by_reference): Return true if must_pass_in_stack.
3812
3813 2004-07-13 Bob Wilson <bob.wilson@acm.org>
3814
3815 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
3816 arguments for COND_EXPR in big-endian adjustment code.
3817
3818 2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3819
3820 * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
3821 * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
3822 * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
3823 * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
3824
3825 2004-07-13 Diego Novillo <dnovillo@redhat.com>
3826
3827 PR tree-optimization/16443
3828 * tree-ssa-alias.c: Add more description for
3829 CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
3830 * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
3831 clobbering of call-clobbered and addressable variables. If
3832 there are any before aliases have been computed, add them.
3833
3834 2004-07-13 Diego Novillo <dnovillo@redhat.com>
3835
3836 * tree-optimize.c (execute_todo): Flush DUMP_FILE before
3837 verification.
3838
3839 2004-07-13 Ulrich Weigand <uweigand@de.ibm.com>
3840
3841 * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
3842 of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR
3843 to the same type.
3844
3845 2004-07-13 Per Bothner <per@bothner.com>
3846
3847 * collect2.c (main): Handle --no-demangle and --demangle flags.
3848
3849 2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
3850
3851 * Makefile.in (OBJS-common): Add tree-data-ref.o.
3852 (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
3853 (tree-data-ref.o): New rule.
3854 * lambda.h: New file.
3855 * tree-data-ref.c: New file.
3856 * tree-data-ref.h: New file.
3857 * tree.c (int_cst_value, tree_fold_gcd): New functions.
3858 * tree.h (int_cst_value, tree_fold_gcd): Declared here.
3859
3860 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3861
3862 PR target/13926
3863 * config/sparc/sparc-protos.h (output_ubranch): New prototype.
3864 * config/sparc/sparc.c (output_ubranch): New function.
3865 * config/sparc/sparc.md (jump pattern): Use it.
3866
3867 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3868
3869 PR target/16494
3870 * config/sparc/sparc.c (output_cbranch): Properly guard
3871 the code handling far branches with TARGET_V9.
3872 * config/sparc/sparc.md (length attribute): Document the
3873 side-effect of having a length greater or equal to 3.
3874
3875 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3876 Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
3877
3878 PR target/15186
3879 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
3880 /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
3881
3882 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3883 Martin Sebor <sebor@roguewave.com>
3884
3885 PR target/12602
3886 * doc/invoke.texi (SPARC options): Document -threads
3887 and -pthreads on Solaris.
3888
3889 2004-07-13 Richard Henderson <rth@redhat.com>
3890
3891 * builtins.c (std_gimplify_va_arg_expr): Handle types passed
3892 by reference.
3893 (ind_gimplify_va_arg_expr): Remove.
3894 * tree.h (ind_gimplify_va_arg_expr): Remove.
3895 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
3896 * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
3897 argsp to be null.
3898
3899 * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
3900 (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
3901 * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
3902 config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
3903 config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
3904
3905 2004-07-13 Richard Henderson <rth@redhat.com>
3906
3907 * function.c (pass_by_reference): New.
3908 (assign_parm_find_data_types): Use it.
3909 * calls.c (initialize_argument_information): Likewise.
3910 (emit_library_call_value_1): Likewise.
3911 * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3912 * function.h (pass_by_reference): Declare.
3913
3914 2004-07-13 Richard Henderson <rth@redhat.com>
3915
3916 * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
3917 * target.h (struct gcc_target): Add calls.must_pass_in_stack.
3918 * expr.h (MUST_PASS_IN_STACK): Remove.
3919 * system.h (MUST_PASS_IN_STACK): Poison.
3920 * tree.h (must_pass_in_stack_var_size): Declare.
3921 (must_pass_in_stack_var_size_or_pad): Declare.
3922 * calls.c (must_pass_in_stack_var_size): New.
3923 (must_pass_in_stack_var_size_or_pad): Rename from
3924 default_must_pass_in_stack.
3925 * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
3926 (TARGET_MUST_PASS_IN_STACK): New.
3927 * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
3928 * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
3929 (TARGET_MUST_PASS_IN_STACK): New.
3930 * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
3931 * config/frv/frv.c (frv_must_pass_in_stack): New.
3932 (TARGET_MUST_PASS_IN_STACK): New.
3933 * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
3934 * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
3935 * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
3936 (ix86_must_pass_in_stack): Make static.
3937 * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
3938 * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
3939 * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
3940 * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
3941 * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
3942 * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
3943 * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
3944 (mcore_must_pass_on_stack): Remove.
3945 * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
3946 * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
3947 * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
3948 * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
3949 * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
3950 * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
3951 * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
3952 * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
3953 (TARGET_MUST_PASS_IN_STACK): New.
3954 * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
3955 * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
3956 * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
3957 * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
3958 * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
3959 * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
3960 * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
3961 MUST_PASS_IN_STACK.
3962
3963 * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
3964 config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
3965 config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
3966 config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
3967 config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
3968 config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
3969 config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
3970 config/xtensa/xtensa.c: Use target hook.
3971
3972 2004-07-13 Anthony Heading <aheading@jpmorgan.com>
3973
3974 * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
3975 * configure: Rebuilt.
3976
3977 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
3978
3979 * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
3980 * config/mips/mips.h (mips_reg_names): Don't declare.
3981 (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down.
3982 (TARGET_NAME_REGS): Delete.
3983 (TARGET_SWITCHES): Remove -mrnames.
3984 (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
3985 (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
3986 in REGISTER_NAMES.
3987 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
3988 (override_options): Remove handling of TARGET_NAME_REGS.
3989
3990 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
3991
3992 * config/mips/mips.h (TARGET_*): Boolify.
3993
3994 2004-07-12 Nick Clifton <nickc@redhat.com>
3995
3996 * config.gcc: Add sh-*-symbianelf target.
3997 * config/sh/sh.c: Add new target macros:
3998 TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
3999 TARGET_CXX_IMPORT_EXPORT_CLASS.
4000 (sh_file_start): Create a definition of the .directive section.
4001 (sh_attribute): Add dllimport and dllexport attributes.
4002 * config/sh/symbian-pre.h: New file.
4003 * config/sh/symbian-post.h: New file.
4004 * config/sh/symbian.c: New file. Contains Symbian specific
4005 functions.
4006 * config/sh/sh-protos.h: Add prototypes for new functions
4007 provided by symbian.c.
4008 * config/sh/t-symbian: New file.
4009 * doc/extend.texi: Document support for dllimport and dllexport
4010 attributes by the sh-symbianelf target.
4011
4012 2004-07-12 James E Wilson <wilson@specifixinc.com>
4013
4014 * Makefile.in (AR): Use @AR@ not ar.
4015 (NM): New.
4016 (AR_FOR_TARGET): Use $(AR) not ar for native.
4017 (NM_FOR_TARGET): Use $(NM) not nm for native.
4018 * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
4019 * configure: Regenerate.
4020
4021 2004-07-12 David S. Miller <davem@nuts.davemloft.net>
4022
4023 * config/sparc/sparc.md (ashlsi3): Eliminate const 1
4024 special case.
4025 (ashldi3_sp64): Likewise.
4026
4027 2004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4028
4029 PR target/16477
4030 * pa.c (function_arg): Update comment.
4031 * pa.h (BLOCK_REG_PADDING): Define.
4032
4033 2004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4034
4035 PR tree-optimization/16461
4036 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
4037 arguments of phi nodes.
4038
4039 2004-07-12 Devang Patel <dpatel@apple.com>
4040
4041 * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
4042
4043 2004-07-12 Steve Ellcey <sje@cup.hp.com>
4044
4045 * function.c (expand_function_start): Ensure r_save is in Pmode.
4046 * calls.c (prepare_call_address): Ensure static_chain_value is
4047 in Pmode.
4048 * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
4049 r_save_area are in Pmode.
4050 * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
4051 fnaddr, and static_chain are in Pmode.
4052
4053 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
4054
4055 PR target/16445
4056 * config/ia64/ia64.c (bundling): Don't count ignored insns.
4057
4058 2004-07-12 Richard Henderson <rth@redhat.com>
4059
4060 * target.h (struct gcc_target): Move gimplify_va_arg_expr
4061 next to build_builtin_va_list.
4062 * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
4063 * builtins.c (gimplify_va_arg_expr): Likewise.
4064 * gimplify.c (copy_if_shared_r): Likewise.
4065
4066 2004-07-12 Alexandre Oliva <aoliva@redhat.com>
4067
4068 * passes.c (rest_of_decl_compilation): Don't defer call of
4069 assemble_variable if its DECL_RTL is already set.
4070
4071 2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
4072
4073 * cfgloop.h (struct loop): Add nb_iterations field.
4074 (current_loops): Declare.
4075 * tree-chrec.c (chrec_not_analyzed_yet,
4076 chrec_dont_know, chrec_known, count_ev_in_wider_type,
4077 chrec_contains_symbols_defined_in_loop): Remove the temporary
4078 hooks.
4079 * tree-flow-inline.h (loop_containing_stmt): New function.
4080 * tree-scalar-evolution.c: Add implementation.
4081 * tree-scalar-evolution.h: Add declarations.
4082
4083 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
4084
4085 PR rtl-optimization/15921
4086 * Makefile.in (global.o): Add recog.h.
4087
4088 * global.c (recog.h): Add the include-clause.
4089 (bb_info): New member earlyclobber.
4090 (allocate_bb_info, free_bb_info): Initialize/finish the new
4091 member.
4092 (earlyclobber_regclass, earlyclobber_regclass_length): The new
4093 global variables.
4094 (check_earlyclobber, regclass_intersect,
4095 mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
4096 New functions.
4097 (calculate_local_reg_bb_info): Calculate value of earlyclobber.
4098 (make_accurate_live_analysis): Modify pavin.
4099
4100 2004-07-12 Diego Novillo <dnovillo@redhat.com>
4101
4102 * tree-cfg.c (find_taken_edge): Statically compute the truth
4103 value of a predicate comparing an SSA_NAME to itself.
4104
4105 2004-07-12 Roger Sayle <roger@eyesopen.com>
4106
4107 * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
4108 rs6000 doesn't have shift-and-add or shift-and-sub instructions
4109 by returning the cost of a multiplication plus an addition.
4110
4111 2004-07-12 Paolo Bonzini <bonzini@gnu.org>
4112
4113 PR tree-optimization/14107
4114 * gimplify.c (gimplify_return_expr): Accept a
4115 RETURN_EXPR with an error argument.
4116 * tree-optimize.c (init_tree_optimization_passes):
4117 Run pass_warn_function_return at -O0.
4118
4119 2004-07-12 Roger Sayle <roger@eyesopen.com>
4120
4121 * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
4122 index entry.
4123
4124 2004-07-12 Richard Sandiford <rsandifo@redhat.com>
4125
4126 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
4127 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4128 * config/mips/3000.md: Add copyright notice. Remove automota and
4129 function units; use generic ones instead. Only define reservations
4130 for things that are different from generic.md. Extend each clause
4131 to include r3900.
4132 * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
4133 * config/mips/mips.md: Include them. Remove define_function_units.
4134 (alu, imuldiv): New automata and units.
4135
4136 2004-07-12 Ben Elliston <bje@au.ibm.com>
4137
4138 * doc/invoke.texi (Optimize Options): Document -frename-registers
4139 not being enabled by default at -O3.
4140
4141 2004-07-11 Roger Sayle <roger@eyesopen.com>
4142
4143 * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
4144 floating point additions, to keep real immediate constant positive.
4145 <MINUS_EXPR>: For floating point subtractions, only transform X - -C
4146 into X + C, and leave positive real constants as X - C.
4147
4148 2004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4149
4150 * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
4151
4152 2004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4153
4154 PR tree-optimization/15654
4155 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
4156
4157 2004-07-11 Roger Sayle <roger@eyesopen.com>
4158
4159 * builtins.c (fold_builtin_fputs): Don't bother converting the
4160 return type to integer_type_node, as we've already checked that
4161 the result will be ignored.
4162
4163 * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
4164 that signed addition, subtraction, multiplication, division,
4165 remainder, negation and absolute value may potentially trap.
4166
4167 * fold-const.c (fold_ignored_result): New function to strip
4168 non-side-effecting tree nodes from an expression whose result
4169 is ignored.
4170 (fold_convert): Call fold_ignored_result when casting a value
4171 to VOID_TYPE.
4172 (omit_one_operand): Call fold_ignored_result on the "omitted"
4173 operand when building a COMPOUND_EXPR.
4174 (pedantic_omit_one_operand): Likewise.
4175 * tree.h (fold_ignored_result): Prototype here.
4176 * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
4177 when we're going to ignore the result.
4178
4179 2004-07-11 Richard Henderson <rth@redhat.com>
4180
4181 PR tree-opt/16383
4182 * tree-ssa-ccp.c (fold_stmt_r): Split out...
4183 * tree.c (fields_compatible_p, find_compatible_field): ... new.
4184 * tree.h (fields_compatible_p, find_compatible_field): Declare.
4185 * tree-sra.c (sra_hash_tree): Hash fields by offset.
4186 (sra_elt_eq): Use fields_compatible_p.
4187 (generate_one_element_ref): Use find_compatible_field.
4188
4189 2004-07-11 Richard Henderson <rth@redhat.com>
4190
4191 PR tree-opt/16422
4192 * tree-sra.c (generate_one_element_init): New.
4193 (generate_element_init): Use it.
4194 (scalarize_init): Push/pop gimplify context around it.
4195 (find_new_referenced_vars_1, find_new_referenced_vars): New.
4196 * gimplify.c (gimplify_expr): Allow SSA_NAME.
4197
4198 2004-07-11 Roger Sayle <roger@eyesopen.com>
4199
4200 * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
4201 combine.c's combine_insn_cost.
4202 * rtl.h (insn_rtx_cost): Prototype here.
4203 * combine.c (combine_insn_cost): Delete function.
4204 (combine_validate_cost): Update callers of combine_insn_cost to
4205 call insn_rtx_cost instead.
4206 (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid
4207 requesting the rtx_cost of call and/or jump instructions.
4208
4209 * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
4210 rtx_cost directly. Don't request/use the cost of call or jump
4211 instructions. Return -1 if the cost of any instruction can't be
4212 determined (or the BB contains a function call).
4213 (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
4214 -1 (i.e. can't determine the cost of any instruction or the basic
4215 block contains a subroutine call).
4216 (find_if_case_2): Likewise.
4217
4218 2004-07-11 Roger Sayle <roger@eyesopen.com>
4219
4220 * rs6000.c (struct processor_costs): Change semantics of fields to
4221 include the COST_N_INSNS scaling, and update all initializers.
4222 (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
4223 Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
4224 Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When
4225 optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
4226
4227 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
4228
4229 * LANGUAGES: Remove obsolete information.
4230
4231 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4232
4233 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
4234 SIGBUS signal frames, the PSW address points *to* the faulting
4235 instruction, not after it.
4236
4237 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4238
4239 * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
4240 added to TLS symbol addresses.
4241
4242 2004-07-11 Richard Henderson <rth@redhat.com>
4243
4244 * expmed.c (init_expmed): Use stack-local structures for
4245 temporary rtl. Don't recognize shifts.
4246
4247 2004-07-11 Richard Henderson <rth@redhat.com>
4248
4249 * expr.c (store_expr): Don't fiddle subreg promotion for types
4250 with precision smaller than the mode.
4251
4252 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
4253
4254 * tree.h (all_types_permanent): Remove.
4255
4256 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
4257
4258 * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
4259 maybe_build_cleanup, update_decl_after_saving): Remove hooks.
4260 * langhooks.c (lhd_clear_binding_stack): Remove.
4261 * langhooks-def.h (lhd_clear_binding_stack,
4262 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
4263 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
4264 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
4265 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
4266 (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
4267 * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
4268 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
4269 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
4270 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
4271 * tree.h (poplevel): Don't declare.
4272 * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
4273 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
4274 * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
4275 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
4276 Remove.
4277
4278 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
4279
4280 PR tree-optimization/16437
4281 * c-common.c (shorten_compare): Don't mark result of conversion to
4282 narrower signed type as overflowing.
4283 * fold-const.c (decode_field_reference): Determine whether
4284 signedness comes from outer type using precision rather than size.
4285
4286 2004-07-11 Phil Edwards <phil@codesourcery.com>
4287
4288 * configure.ac: Alphabetize --enable-checking list, add
4289 missing valgrind entry.
4290 * configure: Regenerate.
4291
4292 2004-07-11 Phil Edwards <phil@codesourcery.com>
4293
4294 * doc/install.texi (Testing): Fix syntax in "make check" example.
4295
4296 2004-07-10 James E Wilson <wilson@specifixinc.com>
4297
4298 * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
4299
4300 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4301
4302 PR rtl-optimization/16001
4303 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
4304 niter_expr.
4305
4306 2004-07-10 Geoffrey Keating <geoffk@apple.com>
4307
4308 * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
4309
4310 2004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu>
4311 James Morrison <phython@gcc.gnu.org>
4312
4313 * doc/contrib.texi (Contributors): Add gfortran contributors and
4314 fix a couple of typos.
4315
4316 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4317
4318 PR rtl-optimization/15387
4319 * calls.c (check_sibcall_argument_overlap_1): Handle pointers
4320 to incoming args space correctly.
4321
4322 2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4323
4324 * pa.c (output_indirect_call): Only use %r2 as the link register in
4325 indirect calls with the long PA 2.0 pc-relative branch.
4326
4327 2004-07-10 Daniel Jacobowitz <dan@debian.org>
4328
4329 * config/i386/i386.c (override_options): Pick a 64-bit CPU
4330 for the default tuning if TARGET_64BIT.
4331
4332 2004-07-10 Richard Henderson <rth@redhat.com>
4333
4334 * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
4335 to HOST_WIDE_INT. Fold pad-args-down arithmetic.
4336
4337 2004-07-10 Jakub Jelinek <jakub@redhat.com>
4338
4339 * expr.h (store_bit_field, extract_bit_field): Remove last argument.
4340 * expmed.c (store_bit_field, extract_bit_field): Remove last
4341 argument.
4342 * builtins.c (expand_builtin_signbit): Adjust callers.
4343 * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
4344 * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
4345 * ifcvt.c (noce_emit_move_insn): Likewise.
4346 * stmt.c (expand_return): Likewise.
4347 * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
4348 store_field, expand_expr_real_1): Likewise.
4349
4350 2004-07-10 Richard Henderson <rth@redhat.com>
4351
4352 * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
4353
4354 2004-07-09 Mike Stump <mrs@apple.com>
4355
4356 * config/darwin.c (no_dead_strip): Add.
4357 (HAVE_DEAD_STRIP): Add.
4358 (darwin_emit_unwind_label): Ensure that we don't dead code strip
4359 the .eh label.
4360
4361 2004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4362
4363 * tree-ssa-loop-im.c: New file.
4364 * Makefile.in (tree-ssa-loop-im.o): Add.
4365 * cfgloop.c (superloop_at_depth): New function.
4366 * cfgloop.h (superloop_at_depth): Declare.
4367 * common.opt (ftree-lim): New flag.
4368 * expr.c (array_ref_up_bound): New function.
4369 * params.def (PARAM_LIM_EXPENSIVE): New parameter.
4370 * timevar.def (TV_LIM): New timevar.
4371 * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
4372 computing immediate uses of a phi node.
4373 * tree-flow.h (struct tree_ann_common_d): Add aux field.
4374 (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
4375 * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
4376 * tree-pass.h (pass_lim): Declare.
4377 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
4378 functions.
4379 (pass_lim): New pass structure.
4380 * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
4381 * tree.c (in_array_bounds_p): New function.
4382 * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
4383 (in_array_bounds_p, array_ref_up_bound): Declare.
4384 * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
4385 * doc/passes.texi (tree-ssa-loop-im.c): Document.
4386
4387 2004-07-09 Richard Henderson <rth@redhat.com>
4388
4389 * builtins.c (expand_builtin_stpcpy): Don't modify len.
4390
4391 * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
4392 with prejudice.
4393
4394 2004-07-10 Kelley Cook <kcook@gcc.gnu.org>
4395
4396 * flags.h: Delete redundant prototypes that are being generated
4397 in options.h from common.opt.
4398 * common.opt: Add in the expository comments formerly in flags.h.
4399
4400 2004-07-09 Jan Beulich <jbeulich@novell.com>
4401
4402 * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
4403 available for use only when TARGET_MMX/_SSE is set, and check for
4404 variable argument function if any register count is non-zero.
4405 (function_arg): Correctly suppress repeated warnings for passing SSE
4406 vectors are arguments without SSE enabled.
4407 (ix86_function_arg_boundary): Without SSE enabled, the use of what
4408 would be SSE register modes does no longer influence the alignment.
4409
4410 2004-07-09 Richard Henderson <rth@redhat.com>
4411
4412 * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
4413 Always align upward to arg boundary. Use size_in_bytes/round_up.
4414 Maintain type-correctness of constants.
4415 * stor-layout.c (round_up, round_down): Special-case powers of 2.
4416
4417 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
4418
4419 * config/sparc/sparc.c (*_costs): Scale instruction costs
4420 by COSTS_N_INSNS.
4421 (sparc_rtx_costs): Adjust as appropriate.
4422
4423 2004-07-09 Jan Beulich <jbeulich@novell.com>
4424
4425 * config/i386/mm3dnow.h: New.
4426 * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
4427
4428 2004-07-09 Richard Henderson <rth@redhat.com>
4429
4430 * simplify-rtx.c (simplify_const_relational_operation): Only
4431 look at bounds of scalar integers.
4432
4433 2004-07-09 Jan Beulich <jbeulich@novell.com>
4434
4435 * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
4436
4437 2004-07-09 Andrew Pinski <apinski@apple.com>
4438
4439 * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
4440 always referenced.
4441 (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
4442 UOBJC_METACLASS_decl.
4443
4444 2004-07-09 James E Wilson <wilson@specifixinc.com>
4445
4446 PR target/16364
4447 * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
4448 do return a parallel if hfa_mode == XFmode and mode == TImode.
4449
4450 2004-07-09 Jan Beulich <jbeulich@novell.com>
4451
4452 * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
4453 permissible for unary plus.
4454
4455 2004-07-09 Jan Beulich <jbeulich@novell.com>
4456
4457 * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
4458 (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
4459 (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
4460 (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
4461 BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
4462 * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
4463 BUILTIN_POPCOUNTxxx): Arguments are unsigned.
4464 (BUILTIN_xxxIMAX): New.
4465 * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
4466 BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
4467 BUILT_IN_PARITYIMAX.
4468
4469 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
4470
4471 * config/sparc/sparc.h (processor_costs): Define.
4472 (sparc_costs): Declare.
4473 * config/sparc/sparc.c (cypress_costs, supersparc_costs,
4474 hypersparc_costs, sparclet_costs, ultrasparc_costs,
4475 ultrasparc3_costs): New.
4476 (sparc_override_options): Set sparc_costs as appropriate.
4477 (sparc_rtx_costs): Use sparc_costs instead of messy
4478 conditionals.
4479
4480 2004-07-09 Steven Bosscher <stevenb@suse.de>
4481
4482 * doc/md.texi (Processor pipeline description): Mention that
4483 the old pipeline description is deprecated.
4484
4485 * config/rs6000/7450.md (automaton ppc7450): Split up, move
4486 mciu_7450 function unit to...
4487 (automaton ppc7450mciu): ...new automaton.
4488
4489 * haifa-sched.c (insert_schedule_bubbles_p): Remove.
4490 (schedule_block): Don't consider inserting bubbles.
4491 (sched_init): Don't initialize DFA bubbles.
4492 * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
4493 TARGET_SCHED_DFA_BUBBLE): Remove.
4494 * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
4495 * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
4496 TARGET_SCHED_DFA_BUBBLE): Remove documentation.
4497
4498 * stmt.c (conditional_context): Remove prototype.
4499 * tree.h (conditional_context): Remove.
4500 * tree-cfg.c (pre_insert_on_edge): Remove.
4501
4502 * c-common.h (c_expand_asm_operands): Remove prototype.
4503 * c-typeck.c (c_expand_asm_operands): Remove.
4504
4505 2004-07-09 Jan Beulich <jbeulich@novell.com>
4506
4507 * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
4508 their base modes. CTImode, TCmode, and XCmode must be passed in memory.
4509 TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
4510 and V8QI are class SSE. All sufficiently small remaining vector modes
4511 must be passed in one or two integer registers.
4512 (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
4513 returned in memory.
4514 (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
4515 __builtin_ia32_pmuludq128 have non-uniform argument and return types
4516 and must thus be handled explicitly.
4517 * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
4518 MMX and XMM regs.
4519 (movv8qi_internal, movv4hi_internal, movv2si_internal,
4520 movv2sf_internal): Permit moving between MMX and XMM registers (since
4521 MMX areguments and return values are passed in XMM registers).
4522 (sse2_umulsidi3): Correct type and mode.
4523
4524 2004-07-09 Richard Henderson <rth@redhat.com>
4525
4526 * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
4527
4528 2004-07-09 Eric Christopher <echristo@redhat.com>
4529
4530 * config/rs6000/40x.md: Split into two automatons.
4531
4532 2004-07-09 Zack Weinberg <zack@codesourcery.com>
4533 Andrew Pinski <apinski@apple.com>
4534
4535 * c-opts.c (c_common_post_options): Force unit-at-a-time mode
4536 on when we have more than one input file.
4537 (c_common_parse_file): Restore loop over all input files.
4538 Clarify diagnostic for -dy when YYDEBUG wasn't defined.
4539
4540 * c-decl.c (set_type_context): New function.
4541 (pop_scope): Use it to set context of types. When we
4542 encounter a TYPE_DECL, set the context of the attached type too.
4543 (pop_file_scope): Don't call cpp_undef_all here.
4544 (diagnose_mismatched_decls): Do not complain about a second
4545 definition of an 'extern inline' function if it's not in the
4546 same translation unit. Do not complain about inline
4547 declaration after use if the use was in a different
4548 translation unit.
4549 (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
4550 (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
4551 the external scope.
4552 (pushdecl_top_level): Likewise.
4553 (grokdeclarator): Clarify what is going on with setting
4554 DECL_EXTERNAL on function types, a little.
4555 (c_write_global_declarations): Don't do anything if
4556 -fsyntax-only or errors have been encountered.
4557
4558 2004-07-09 Zack Weinberg <zack@codesourcery.com>
4559
4560 * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
4561
4562 2004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4563
4564 PR target/16459
4565 * pa.c (output_indirect_call): Use %r2 as the link register when
4566 calling $$dyncall with a pc-relative branch.
4567
4568 2004-07-08 Gerald Pfeifer <gerald@pfeifer.com>
4569
4570 * doc/install.texi (Binaries): Mention OpenPKG.
4571
4572 2004-07-09 Diego Novillo <dnovillo@redhat.com>
4573
4574 Fix PR tree-optimization/15555
4575 * tree-dfa.c (dump_variable): If the variable is a pointer
4576 SSA_NAME, also dump its points-to information.
4577 * tree-flow.h (struct ptr_info_def): Add field
4578 is_dereferenced.
4579 (dump_points_to_info_for): Declare.
4580 (debug_points_to_info_for): Declare.
4581 * tree-optimize.c (init_tree_optimization_passes): Add a
4582 second alias analysis pass after DOM2.
4583 Move pass_del_pta to a later spot.
4584 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
4585 create a name tags when we find a dereferenced pointer. Just
4586 mark the pointer dereferenced.
4587 (collect_points_to_info_for): Move code to clear points-to
4588 information to create_name_tags.
4589 (create_name_tags): New function.
4590 (compute_flow_sensitive_aliasing): Call it.
4591 (setup_pointers_and_addressables): Mark type tags for renaming
4592 here instead of ...
4593 (create_memory_tag): ... here.
4594 (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
4595 (dump_points_to_info_for): Declare extern.
4596 (debug_points_to_info_for): New function.
4597
4598 2004-07-09 Paolo Bonzini <bonzini@gnu.org>
4599
4600 * config/arc/arc.md: Switch to DFA-based scheduler description.
4601 * config/arc/arc.c: Switch to DFA-based scheduler description.
4602
4603 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
4604
4605 * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
4606 pointer.
4607
4608 2004-07-09 Richard Henderson <rth@redhat.com>
4609
4610 * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
4611 * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4612 (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
4613 * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
4614
4615 * config/v850/v850-protos.h (v850_va_arg): Remove.
4616 * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4617 (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
4618 * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
4619 (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
4620 (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
4621
4622 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
4623
4624 PR target/12133
4625 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
4626 and DImode to use +/-4k offset.
4627
4628 2004-07-09 Richard Henderson <rth@redhat.com>
4629
4630 * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
4631 Remove.
4632 * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4633 (xstormy16_gimplify_va_arg_expr): Rewrite from
4634 xstormy16_expand_builtin_va_arg.
4635 * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
4636
4637 * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
4638 * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
4639
4640 * config/sh/sh-protos.h (sh_va_arg): Remove.
4641 * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4642 (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
4643 * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
4644
4645 * config/pa/pa-protos.h (hppa_va_arg): Remove.
4646 * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4647 (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
4648 * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
4649
4650 * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
4651 * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4652 (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
4653 * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
4654
4655 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
4656
4657 * config/sparc/sparc.md (return): Rewrite length formula.
4658 * config/sparc/sparc.c (output_return): Pass 1 as 5th
4659 argument to final_scan_insn when in a delay slot.
4660 (output_sibcall): Likewise.
4661
4662 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
4663
4664 * arm.c (arm_cpp_interwork): New variable.
4665 (arm_override_options): Set it if TARGET_INTERWORK was on the command
4666 line.
4667 * arm.h (arm_cpp_interwork): Declare it.
4668 (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
4669 __THUMB_INTERWORK__ in the preprocessor.
4670
4671 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
4672
4673 * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
4674
4675 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
4676
4677 PR target/16416
4678 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
4679 Override default settings to account for -m32 and -m64.
4680
4681 2004-07-08 Randolph Chung <tausq@debian.org>
4682
4683 * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4684
4685 2004-07-09 Alexandre Oliva <aoliva@redhat.com>
4686
4687 * builtins.c (fold_builtin_strncpy): Make sure len is a constant
4688 before comparing it as such.
4689
4690 2004-07-08 Richard Henderson <rth@redhat.com>
4691
4692 * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
4693 temporary. Use bit arithmetic to align.
4694
4695 2004-07-08 Jerry Quinn <jlquinn@optonline.net>
4696
4697 * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
4698 nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
4699 NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
4700 * bb-reorder.c (mark_bb_for_unlikely_executed_section,
4701 add_labels_and_missing_jumps, find_jump_block,
4702 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
4703 Likewise.
4704 * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
4705 link_btr_uses, move_btr_def): Likewise.
4706 * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
4707 expand_builtin_expect_jump): Likewise.
4708 * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
4709 * calls.c (expand_call, emit_library_call_value_1): Likewise.
4710 * cfganal.c (forwarder_block_p): Likewise.
4711 * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
4712 make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
4713 find_bb_boundaries): Likewise.
4714 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4715 merge_blocks_move_predecessor_nojumps,
4716 merge_blocks_move_successor_nojumps, insns_match_p,
4717 flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
4718 try_optimize_cfg): Likewise.
4719 * cfgexpand.c (expand_block, construct_exit_block): Likewise.
4720 * cfglayout.c (skip_insns_after_block, label_for_bb,
4721 record_effective_endpoints, insn_locators_initialize,
4722 fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
4723 * cfgmainloop.c (create_loop_notes): Likewise.
4724 * cfgrtl.c (delete_insn, delete_insn_chain,
4725 create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
4726 update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
4727 block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
4728 redirect_branch_edge, force_nonfallthru_and_redirect,
4729 rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
4730 rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
4731 update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
4732 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
4733 cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
4734 cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
4735 need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
4736 * combine.c (combine_instructions, can_combine_p, try_combine,
4737 find_split_point, record_dead_and_set_regs, reg_dead_at_p,
4738 distribute_notes, distribute_links, insn_cuid): Likewise.
4739 * cse.c (fold_rtx, cse_insn, cse_around_loop,
4740 invalidate_skipped_block, cse_set_around_loop,
4741 cse_end_of_basic_block, cse_main, cse_basic_block,
4742 cse_condition_code_reg): Likewise.
4743 * cselib.c (cselib_process_insn): Likewise.
4744 * ddg.c (create_ddg): Likewise.
4745 * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
4746 Likewise.
4747 * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4748 gen_label_die, dwarf2out_var_location): Likewise.
4749 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
4750 next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
4751 last_call_insn, active_insn_p, next_label, prev_label,
4752 link_cc0_insns, next_cc0_user, try_split, add_insn_after,
4753 add_insn_before, remove_insn, add_function_usage_to,
4754 reorder_insns, find_line_note, remove_unnecessary_notes,
4755 emit_insn_after_1, classify_insn): Likewise.
4756 * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
4757 connect_post_landing_pads, sjlj_mark_call_sites,
4758 sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
4759 can_throw_internal, can_throw_external, set_nothrow_function_flags,
4760 convert_to_eh_region_ranges): Likewise.
4761 * explow.c (optimize_save_area_alloca): Likewise.
4762 * expr.c (expand_expr_real): Likewise.
4763 * final.c (insn_current_reference_address, compute_alignments,
4764 shorten_branches, final, scan_ahead_for_unlikely_executed_note,
4765 final_scan_insn, output_asm_label, leaf_function_p): Likewise.
4766 * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
4767 propagate_block_delete_insn, propagate_one_insn,
4768 init_propagate_block_info, propagate_block, libcall_dead_p,
4769 mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
4770 Likewise.
4771 * function.c (instantiate_virtual_regs, reorder_blocks_1,
4772 expand_function_start, expand_function_end, contains,
4773 thread_prologue_and_epilogue_insns,
4774 reposition_prologue_and_epilogue_notes): Likewise.
4775 * gcse.c (constprop_register, bypass_conditional_jumps,
4776 insert_insn_end_bb, gcse_after_reload): Likewise.
4777 * genemit.c (gen_expand, gen_split): Likewise.
4778 * genpeep.c (gen_peephole, main): Likewise.
4779 * global.c (build_insn_chain): Likewise.
4780 * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
4781 * haifa-sched.c (unlink_other_notes, unlink_line_notes,
4782 get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
4783 restore_line_notes, rm_redundant_line_notes, rm_other_notes,
4784 ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
4785 * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
4786 cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
4787 merge_if_block, block_jumps_and_fallthru_p, find_if_block,
4788 dead_or_predicable): Likewise.
4789 * integrate.c (try_constants): Likewise.
4790 * jump.c (rebuild_jump_labels, cleanup_barriers,
4791 purge_line_number_notes, init_label_info, mark_all_labels,
4792 squeeze_notes, get_label_before, get_label_after,
4793 reversed_comparison_code_parts, simplejump_p, pc_set,
4794 returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
4795 delete_barrier, delete_prior_computation, delete_computation,
4796 delete_related_insns, delete_for_peephole, redirect_jump):
4797 Likewise.
4798 * lcm.c (optimize_mode_switching): Likewise.
4799 * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
4800 Likewise.
4801 * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
4802 * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
4803 * loop-iv.c (simplify_using_assignment): Likewise.
4804 * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
4805 libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
4806 find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
4807 loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
4808 check_insn_for_givs, check_final_value, update_giv_derive,
4809 basic_induction_var, product_cheap_p, check_dbra_loop,
4810 loop_insn_first_p, last_use_this_basic_block,
4811 canonicalize_condition, get_condition, loop_regs_scan, load_mems,
4812 try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
4813 * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
4814 sms_schedule_by_order): Likewise.
4815 * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
4816 * postreload.c (reload_cse_simplify_operands, reload_combine,
4817 reload_cse_move2add): Likewise.
4818 * predict.c (can_predict_insn_p, estimate_probability,
4819 expected_value_to_br_prob, process_note_predictions): Likewise.
4820 * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
4821 * profile.c (branch_prob): Likewise.
4822 * ra-build.c (live_out_1, livethrough_conflicts_bb,
4823 detect_webs_set_in_cond_jump): Likewise.
4824 * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
4825 ra_print_rtl_with_bb): Likewise.
4826 * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
4827 * recog.c (next_insn_tests_no_inequality, find_single_use,
4828 split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
4829 * reg-stack.c (next_flags_user, record_label_references,
4830 emit_swap_insn, swap_rtx_condition, subst_stack_regs,
4831 compensate_edge, convert_regs_1): Likewise.
4832 * regclass.c (scan_one_insn): Likewise.
4833 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
4834 regmove_optimize, fixup_match_1, single_set_for_csa,
4835 combine_stack_adjustments_for_block): Likewise.
4836 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
4837 * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
4838 find_equiv_reg): Likewise.
4839 * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
4840 reload_as_needed, emit_input_reload_insns, do_output_reload,
4841 delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
4842 Likewise.
4843 * reorg.c (find_end_label, emit_delay_sequence,
4844 delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
4845 get_jump_flags, rare_destination, mostly_true_jump,
4846 try_merge_delay_insns, redundant_insn, own_thread_p,
4847 fill_simple_delay_slots, fill_slots_from_thread,
4848 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4849 dbr_schedule): Likewise.
4850 * resource.c (find_basic_block, next_insn_no_annul,
4851 find_dead_or_set_registers, mark_target_live_regs): Likewise.
4852 * rtl.h (RTX_PREV): Likewise.
4853 * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
4854 no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
4855 reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
4856 find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
4857 tablejump_p, computed_jump_p, insns_safe_to_move_p,
4858 find_first_parameter_load, can_hoist_insn_p): Likewise.
4859 * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
4860 sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
4861 * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
4862 schedule_ebbs): Likewise.
4863 * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
4864 is_conditionally_protected, can_schedule_ready_p,
4865 add_branch_dependences, debug_dependencies): Likewise.
4866 * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
4867 Likewise.
4868 * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
4869 reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
4870 set_dominates_use, ujump_to_loop_cont): Likewise.
4871 * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
4872 * varasm.c (output_constant_pool_1): Likewise.
4873
4874 2004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4875
4876 * tree-scalar-evolution.c: New file.
4877 * tree-scalar-evolution.h: New file.
4878 * tree-ssa-loop-niter.c: New file.
4879 * Makefile.in (SCEV_H): New.
4880 (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
4881 * cfgloop.h (struct loop): Add bounds field.
4882 * tree-flow.h (struct tree_niter_desc): New type.
4883 (number_of_iterations_cond, number_of_iterations_exit,
4884 loop_niter_by_eval, find_loop_niter_by_eval,
4885 estimate_numbers_of_iterations, can_count_iv_in_wider_type,
4886 free_numbers_of_iterations_estimates): Declare.
4887 * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
4888 * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
4889 * doc/invoke.texi (max-iterations-to-track): Document.
4890
4891 2004-07-08 Kaz Kojima <kkojima@gcc.gnu.org>
4892
4893 * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
4894 * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
4895 (MODE_AFTER): Add cast appropriately.
4896 * config/sh/sh.md (movdi splitter): Likewise.
4897 (casesi_worker_2): Add const qualifier appropriately.
4898 (eh_return): Remove unused variable.
4899 (insv): Initialize v;
4900
4901 2004-07-08 Richard Henderson <rth@redhat.com>
4902
4903 * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
4904 * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4905 (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
4906 * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
4907 (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
4908
4909 * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
4910 * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4911 (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
4912 * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
4913
4914 * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
4915 * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4916 (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
4917 * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
4918
4919 * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
4920 * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4921 (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
4922 * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
4923
4924 * config/i860/i860-protos.h (i860_va_arg): Remove.
4925 * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4926 (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
4927 * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
4928
4929 2004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
4930
4931 * system.h: Prototype getpagesize if missing.
4932 * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
4933 * configure: Regenerate.
4934 * config.in: Regenerate.
4935
4936 2004-07-08 Richard Henderson <rth@redhat.com>
4937
4938 * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
4939 * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4940 (fr30_gimplify_va_arg_expr): New.
4941 (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
4942 * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
4943
4944 2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
4945
4946 PR target/16414
4947 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
4948 of asm_noperands result.
4949
4950 2004-07-08 Richard Henderson <rth@redhat.com>
4951
4952 * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
4953 * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4954 (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
4955 * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
4956
4957 2004-07-08 Richard Henderson <rth@redhat.com>
4958
4959 * builtins.c (ind_gimplify_va_arg_expr): New.
4960 * tree.h (ind_gimplify_va_arg_expr): Declare.
4961 * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
4962
4963 2004-07-08 Jan Beulich <jbeulich@novell.com>
4964
4965 * expmed.c (extract_bit_field): Correct condition to use vec_extract
4966 patterns also on vector elements other than the first one.
4967 * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
4968 break statements.
4969
4970 2004-07-08 Geoffrey Keating <geoffk@apple.com>
4971
4972 * config/rs6000/darwin-ldouble.c: Correct reference
4973 to the Linnainmaa paper.
4974
4975 2004-07-08 Richard Henderson <rth@redhat.com>
4976
4977 * config/arc/arc-protos.h (arc_va_arg): Remove.
4978 * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4979 (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
4980 * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
4981
4982 * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
4983 * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
4984 (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
4985 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
4986
4987 2004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4988
4989 * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
4990
4991 2004-07-08 Zack Weinberg <zack@codesourcery.com>
4992
4993 * c-decl.c (static_ctors, static_dtors): Make static.
4994 (pop_file_scope): Call c_common_write_pch and
4995 cgraph_finalize_compilation_unit here.
4996 (build_cdtor): Moved here from c-objc-common.c; simplify.
4997 (c_write_global_declarations_1): Clarify comment.
4998 (c_write_global_declarations): Close the external scope before
4999 doing anything else. Call build_cdtor, cgraph_optimize, and
5000 mudflap_finish_file here.
5001 * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
5002 Clarify comment.
5003 * c-objc-common.c: No need to include cgraph.h.
5004 (build_cdtor): Moved to c-decl.c.
5005 (c_objc_common_finish_file): Delete.
5006 * c-tree.h: Update to match.
5007 * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
5008 (generate_static_references): Set TREE_USED before calling finish_decl.
5009 Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation
5010 on the static_instances_decl.
5011
5012 2004-07-08 Zack Weinberg <zack@codesourcery.com>
5013
5014 * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
5015 decls when there is only one input translation unit.
5016 * langhooks.c (lhd_set_decl_assembler_name): Partially revert
5017 change of 2004-07-05; do not treat declarations with
5018 DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
5019 * opts.c (cur_in_fname): Delete.
5020 * opts.h: Likewise.
5021 * tree.c: Revert changes of 2004-07-05; no special treatment
5022 for TRANSLATION_UNIT_DECLs.
5023 * Makefile.in (tree.o): Update dependencies.
5024
5025 2004-07-08 Roger Sayle <roger@eyesopen.com>
5026
5027 * builtins.c (fold_builtin_strcpy): Merge functionality from
5028 simplify_builtin_strcpy. Add additional len argument. No longer
5029 static. Remove function prototype.
5030 (fold_builtin_strncpy): Likewise integrate functionality from
5031 simplify_builtin_strncpy. Add additional slen argument. No
5032 longer static. Remove function prototype.
5033 (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
5034 (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change
5035 types of "ignore" and "unlocked" parameters to bool.
5036 (fold_builtin_1): Add additional ignore argument. Call renamed
5037 fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
5038 builtins. Update arguments to fold_builtin_strncpy and
5039 fold_builtin_strcpy. Add function prototype.
5040 (fold_builtin): Add additional Boolean ignore argument to pass
5041 to fold_builtin_1.
5042 (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
5043 and fold_builtin_strncpy instead of simplify_builtin_fputs,
5044 simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
5045
5046 * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
5047 simplify_builtin_strncpy): Delete function prototypes.
5048 * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
5049 fold_builtin_strncpy): Add function prototypes here.
5050 (fold_builtin): Update function prototype with new "bool ignore".
5051
5052 * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
5053 (ccp_fold_builtin): Update call to fold_builtin. Call
5054 fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
5055 instead of simplify_builtin_fputs, simplify_builtin_strcpy and
5056 simplify_builtin_strncpy respectively.
5057 * fold-const.c (fold): Update call to fold_builtin.
5058
5059 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
5060
5061 * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
5062 to strcpy.
5063
5064 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
5065 (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
5066 (FUNCTION_ARG_CALLEE_COPIES): Likewise.
5067 * calls.c: Remove ifdefs of macros above.
5068 * functions.c: Likewise.
5069 * expr.c: Likewise.
5070
5071 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5072
5073 * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
5074 (arch attribute): Delete.
5075 (current_function_calls_alloca attribute): Rename into calls_alloca.
5076 (calls_eh_return): New attribute.
5077 (leaf_function): Likewise.
5078 (length attribute): Fix formula for sibcalls.
5079 (return insn): Correctly compute the 'length' attribute.
5080 (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
5081
5082 2004-07-08 Richard Henderson <rth@redhat.com>
5083
5084 * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
5085 (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
5086 (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
5087 * tree-eh.c (lower_eh_constructs_1): Likewise.
5088 * tree-sra.c (sra_walk_modify_expr): Likewise.
5089 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5090 (eliminate_unnecessary_stmts): Likewise.
5091 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
5092 * tree-tailcall.c (optimize_tail_call): Likewise.
5093 * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
5094
5095 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
5096 Jakub Jelinek <jakub@redhat.com>
5097
5098 * config/i386/i386.c (override_options): Enable
5099 SSE prefetches with -mtune, as long as we are
5100 compiling for i686 or higher. All i686 processors
5101 accept SSE prefetches as NOPS, some i586's don't.
5102
5103 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5104
5105 PR target/10567
5106 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
5107
5108 2004-07-08 Diego Novillo <dnovillo@redhat.com>
5109
5110 * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
5111 the handling of clobbering ASM_EXPRs.
5112
5113 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5114
5115 PR target/16430
5116 * config/sparc/sparc.c (function_value): In 64-bit mode,
5117 return the aggregates larger than 16 bytes like unions.
5118
5119 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5120
5121 PR target/16199
5122 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
5123 'temp' is zero, generate new pseudos as needed and emit the
5124 sequence of insns in single-assignment form. Resync comments
5125 with code.
5126 (sparc_emit_set_const64): Pass zero as 'temp' argument to above
5127 function before reload.
5128
5129 2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
5130
5131 * vec.c (vec_assert_fail): Remove duplicate 'function'.
5132
5133 * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
5134
5135 * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
5136 Allocation is signed.
5137 (VEC_reserve): Return flag, allocation is signed.
5138
5139 2004-07-08 Richard Henderson <rth@redhat.com>
5140
5141 * tree-ssa-ccp.c (fold_stmt): Get type directly from
5142 OBJ_TYPE_REF_OBJECT.
5143
5144 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
5145 Neil Booth <neil@daikokuya.co.uk>
5146
5147 PR c/2511
5148 PR c/3325
5149 * c-decl.c (finish_struct): Ensure bit-fields are given the
5150 correct type.
5151 * c-common.c (c_common_signed_or_unsigned_type): For C, require
5152 the precision to match as well as the mode.
5153 * expr.c (reduce_to_bit_field_precision): New function.
5154 (expand_expr_real_1): Reduce expressions of bit-field type to
5155 proper precision.
5156 * langhooks.h (reduce_bit_field_operations): New hook.
5157 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5158 Define.
5159 * c-lang.c, objc/objc-lang.c
5160 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
5161 * objc/objc-act.c (check_ivars): Convert types to bit-field types
5162 before checking.
5163 * tree.c (build_nonstandard_integer_type): New function.
5164 * tree.h (build_nonstandard_integer_type): New prototype.
5165 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
5166 conversions between integer and boolean types as useless.
5167
5168 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
5169
5170 * c-common.c (c_common_nodes_and_builtins): Do not
5171 create __builtin_ptrdiff_t and __builtin_size_t.
5172
5173 2004-07-08 Andrew Pinski <apinski@apple.com>
5174
5175 * Makefile.in (libbackend.o): Add -combine to the gcc
5176 command line.
5177
5178 2004-07-08 Nick Clifton <nickc@redhat.com>
5179
5180 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
5181 Set to -Os.
5182
5183 2004-07-08 Richard Henderson <rth@redhat.com>
5184
5185 * except.c (expand_eh_region_start, expand_eh_region_end,
5186 expand_eh_handler, expand_eh_region_end_cleanup,
5187 expand_start_all_catch, expand_start_catch, expand_end_catch,
5188 expand_end_all_catch, expand_eh_region_end_allowed,
5189 expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
5190 expand_eh_region_end_fixup): Remove.
5191 * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
5192 cleanups, outer_cleanups, label_chain, exception_region.
5193 (struct goto_fixup): Remove stack_level, cleanup_list_list.
5194 (struct label_chain): Remove.
5195 (struct stmt_status): Remove x_stack_block_stack.
5196 (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
5197 fixup_gotos, save_stack_pointer, expand_decl_cleanup,
5198 expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
5199 end_cleanup_deferral, last_cleanup_this_contour,
5200 containing_blocks_have_cleanups_or_stack_level,
5201 any_pending_cleanups): Remove.
5202 (expand_null_return_1): Take no arguments.
5203 (expand_label, expand_naked_return, expand_return,
5204 expand_start_bindings_and_block, expand_end_bindings, expand_decl,
5205 expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
5206 expand_end_case_type): Don't use any of them.
5207 * calls.c (expand_call): Likewise.
5208 * dojump.c (do_jump): Likewise.
5209 * function.c (expand_function_end): Likewise.
5210 * expr.c (store_expr, expand_expr_real_1): Likewise.
5211 (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
5212 (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
5213 CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
5214 EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
5215 * fold-const.c (fold_checksum_tree): Use first_rtl_op.
5216 * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
5217 * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
5218 for WITH_CLEANUP_EXPR.
5219 (gimple_push_cleanup): Likewise.
5220 * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
5221 * print-tree.c (print_node): Likewise.
5222 * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
5223 * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
5224 (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
5225 * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
5226 (GOTO_SUBROUTINE_EXPR): Remove.
5227 * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
5228 (DECL_TOO_LATE): Remove.
5229 * except.h, tree.h: Update decls.
5230
5231 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
5232
5233 * explow.c (optimize_save_area_alloca): Do not accept parameters.
5234 * passes.c (rest_of_handle_final): Handle symout.
5235 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
5236 Push timevar here.
5237 (rest_of_handle_sched): Break out SMS. Remove ifs for
5238 flag_schedule_insns and flag_modulo_sched.
5239 (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
5240 collect at the end.
5241 (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
5242 (rest_of_handle_partition_blocks, rest_of_handle_sms,
5243 rest_of_handle_if_after_reload, rest_of_handle_peephole2,
5244 rest_of_handle_mode_switching, rest_of_handle_jump,
5245 rest_of_handle_guess_branch_prob, rest_of_handle_eh,
5246 rest_of_handle_jump2, rest_of_handle_postreload,
5247 rest_of_handle_flow2, rest_of_clean_state,
5248 rest_of_handle_shorten_branches,
5249 rest_of_handle_prologue_epilogue,
5250 rest_of_handle_branch_target_load_optimize): New.
5251 (rest_of_compilation): Call the above. Remove ggc_collect
5252 calls moved to rest_of_handle_*.
5253 * rtl.h (optimize_save_area_alloca): Do not accept parameters.
5254
5255 * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
5256 * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
5257 * except.h (set_nothrow_function_flags): Update comment.
5258 * function.c (current_function_nothrow): Remove.
5259 * output.h (current_function_nothrow): Remove.
5260 * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
5261 * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
5262
5263 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5264
5265 PR bootstrap/16326
5266 * reorg.c: Revert 2004-06-30 change.
5267 (find_end_label): If HAVE_epilogue and !HAVE_return,
5268 return 0 instead of creating a label at the end of the insn chain.
5269 (optimize_skip): Account for the failure mode of find_end_label.
5270 (fill_simple_delay_slots): Likewise.
5271 (fill_slots_from_thread): Likewise.
5272 (relax_delay_slots): Likewise.
5273
5274 2004-07-08 Diego Novillo <dnovillo@redhat.com>
5275
5276 * tree-flow.h (addressable_vars): Declare.
5277 * tree-ssa-alias.c (addressable_vars): Define.
5278 (setup_pointers_and_addressables): Add addressable variables
5279 to addressable_vars.
5280 * tree-ssa-operands.c (get_stmt_operands): Move
5281 handling of ASM_EXPRs ...
5282 (get_asm_expr_operands): ... here.
5283 When the ASM_EXPR clobbers memory, also clobber addressable
5284 variables.
5285 * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
5286 (delete_tree_ssa): Reset addressable_vars.
5287
5288 2004-07-07 Jan Beulich <jbeulich@novell.com>
5289 Richard Henderson <rth@redhat.com>
5290
5291 * varasm.c (assemble_variable): Use assemble_zeros for
5292 zero-initialized variables.
5293 (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
5294 for SECCAT_BSS and SECCAT_TBSS.
5295
5296 2004-07-07 Jan Beulich <jbeulich@novell.com>
5297
5298 * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
5299
5300 * expmed.c (emit_store_flag): Also special-case double-word
5301 (in-)equality comparison against -1.
5302
5303 * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
5304 passing arguments the containers for which are registers.
5305
5306 * calls.c (emit_library_call_value_1): Use mode of function parameter
5307 rather than that of argument since constants have none.
5308
5309 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
5310
5311 Introduce H8SX support.
5312 * expr.c (expand_strcpy): Renamed and moved to...
5313 * builtins.c (expand_movstr): ... here. Tweak.
5314 (expand_builtin_strcpy): Adjust. Use movstr if len can't be
5315 computed or has side effects.
5316 (expand_builtin_stpcpy): Likewise. Use strcpy if return value is
5317 unused, or if mempcpy fails. Adjust the return value in the
5318 latter case. Use movstr if everything else fails.
5319 * doc/md.texi (movstr): Document.
5320 (movmemM, clrmemM): Fix explanation of memory block operands.
5321 * config/h8300/h8300.md (stpcpy): Renamed to...
5322 (movstr): ... this. Adjust.
5323 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
5324 * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
5325 movmem* and clrstr* to clrmem*.
5326 2004-06-27 Alexandre Oliva <aoliva@redhat.com>
5327 * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
5328 GENERAL_REGS, always.
5329 (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
5330 getting the stack pointer as addr.
5331 * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
5332 from general_operand_dst.
5333 * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
5334 variant of...
5335 (movmd_internal): ... this. Add modes to operands. Disparage `D'
5336 instead of requiring it to match only before reload.
5337 (stpcpy_internal_normal): New, normal-mode variant of...
5338 (stpcpy_internal): ... this. Add modes to operands. Disparage
5339 `D' instead of requiring it to match only before reload.
5340 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
5341 mode argument.
5342 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
5343 * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
5344 h8300_get_index.
5345 * config/h8300/h8300.md (attr type): Add call.
5346 (attr can_delay): If type is call, set it no.
5347 (call, call_value): Set type to call.
5348 2004-06-21 Alexandre Oliva <aoliva@redhat.com>
5349 * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
5350 2004-06-16 Alexandre Oliva <aoliva@redhat.com>
5351 * tree.c (get_narrower): Don't narrow integral types into
5352 non-integral types.
5353 * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
5354 frame_size *before* the first use.
5355 * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
5356 on input.
5357 (peephole2): Don't widen instructions that push SP. Move
5358 decrement of SP to the end of all stm-generating peepholes.
5359 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
5360 * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
5361 and OR to set it to all ones.
5362 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
5363 * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
5364 (call, call_value): Set can_delay to "no".
5365 2003-07-22 Richard Sandiford <rsandifo@redhat.com>
5366 * config/h8300/h8300.md (extzv): Make subreg check more robust.
5367 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
5368 * config/h8300/h8300.md (*brabit): Remove.
5369 * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
5370 zero_extract. Use bit_memory_operand as the predicate for
5371 operand 1 and 'WU' as the constraint. Check the difference
5372 between the base length and the final one when deciding which
5373 type of branch to use.
5374 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
5375 * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
5376 Use convert_move to extend the result for TARGET_H8300SX. Check
5377 for QImode memory references. Optimize the case where the
5378 destination is a paradoxical subreg.
5379 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
5380 * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
5381 * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
5382 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
5383 * config/h8300/h8300.md: Include mova.md
5384 (length_table): Add mova and mova_zero.
5385 * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length
5386 after all constant addresses for '%R', '%X', '%T' and '%S'.
5387 (h8300_mova_length): New function.
5388 (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
5389 * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to
5390 dependencies for s-config, etc.
5391 * config/h8300/gemova.sh: New file.
5392 * config/h8300/mova.md: Generated.
5393 2003-07-20 Alexandre Oliva <aoliva@redhat.com>
5394 * config/h8300/h8300.c (h8300_bitfield_length): New.
5395 (nibble_operand): Adjust.
5396 (h8300_binary_length): Handle conditional binary op.
5397 (h8300_insn_length_from_table): Handle bitfield and bitbranch.
5398 * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
5399 P#<X, respectively. The original P is now IP4>X. Introduced P#>0
5400 and P#<0, unused so far. W and Y are now prefixes to multi-letter
5401 constraints. WU is introduced as a variant of U that requires a
5402 mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
5403 * config/h8300/h8300.md (attr type): Added bitbranch.
5404 (attr length_table): Added bitfield and bitbranch.
5405 (attr length): Compute bitbranch length.
5406 (andqi): Separate pattern for H8300SX. Use bfld for loading the
5407 least-significant bit of a byte.
5408 (brabit, brabc, brabs): New.
5409 (insv, extzv): Emit bfst and bfld on H8300SX.
5410 (bfld, bfst, seq, sne): New.
5411 (bstzhireg, cmpstz, bstz, bistz): New.
5412 (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
5413 (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
5414 2003-07-11 Richard Sandiford <rsandifo@redhat.com>
5415 * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
5416 (h8sx_unary_memory_operator): New function.
5417 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
5418 (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
5419 * config/h8300/h8300.md: Add peepholes to combine reloads and
5420 arithmetic insns.
5421 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
5422 * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
5423 (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
5424 (and?i, ior?i, xor?i): Likewise.
5425 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
5426 * config/h8300/h8300.c: Move enums and prototypes to head of file.
5427 Various whitespace fixes.
5428 (h8300_constant_length): New function, split out from...
5429 (h8300_displacement_size): ...here. Rename h8300_displacement_length.
5430 (h8300_classify_operand): Use IN_RANGE.
5431 (h8300_classify_operand): Use h8300_constant_length.
5432 (h8300_short_move_mem_p): Tighten size check.
5433 (h8sx_mergeable_memrefs_p): Tighten equality check.
5434 2003-06-30 Richard Sandiford <rsandifo@redhat.com>
5435 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
5436 for -msx.
5437 * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
5438 * config/h8300/crtn.asm: Likewise.
5439 * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers
5440 if __H8300SX__ is defined.
5441 2003-06-27 Richard Sandiford <rsandifo@redhat.com>
5442 * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
5443 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
5444 (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
5445 addresses as mode-dependent.
5446 * config/h8300/h8300.c (print_operand_address): Update call to
5447 h8300_get_index.
5448 (h8300_get_index): Take a mode argument. Rework to fix an
5449 earlier misunderstanding.
5450 2003-06-26 Richard Sandiford <rsandifo@redhat.com>
5451 * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
5452 into a register if TARGET_H8300SX.
5453 (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
5454 TARGET_H8300SX. Also disable related define_splits.
5455 (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
5456 2003-06-23 Richard Sandiford <rsandifo@redhat.com>
5457 * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
5458 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
5459 * config/h8300/h8300.h (OK_FOR_Z): New macro.
5460 (EXTRA_CONSTRAINT_STR): Check it.
5461 * config/h8300/h8300.c (h8300_classify_operand): Accept null
5462 class arguments.
5463 (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
5464 * config/h8300/h8300.md (length_table): Add mov_imm4.
5465 (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
5466 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
5467 * genattrtab.c (write_eligible_delay): Allow candidate_insn to
5468 be a label.
5469 * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
5470 * config/h8300/h8300.c (h8300_reorg): New function.
5471 (TARGET_MACHINE_DEPENDENT_REORG): Define.
5472 * config/h8300/h8300.md (length): Subtract the length of the
5473 delay slot from (pc) when checking the range of forward branches.
5474 (delay_slot, can_delay): New attributes.
5475 (define_delay): Add bra/s handling.
5476 (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
5477 (jump): Add delayed-branch handling.
5478 2003-06-17 Richard Sandiford <rsandifo@redhat.com>
5479 * expr.c (expand_strcpy): New function.
5480 * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
5481 (expand_builtin_stpcpy): Likewise.
5482 * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
5483 (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
5484 * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
5485 handling to improve register allocation for -fno-omit-frame-pointer.
5486 (h8sx_split_movmd): Delete, moving er6 handling into...
5487 (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
5488 * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
5489 (movmd): Add calls to copy_rtx.
5490 (movmd_internal): In the second alternative, allow the initial and
5491 final destination registers to be different . Update the splitter
5492 accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6
5493 instead of h8sx_split_movmd.
5494 (stpcpy, movsd): New expanders.
5495 (movsd_internal): New define_insn.
5496 2003-06-13 Richard Sandiford <rsandifo@redhat.com>
5497 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
5498 (h8sx_emit_movmd, h8sx_split_movmd): Declare.
5499 * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
5500 and DESTINATION_REGS.
5501 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5502 (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
5503 (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
5504 (h8300_move_ratio): Declare.
5505 (MOVE_RATIO): Use it.
5506 * config/h8300/h8300.c (h8300_move_ratio): New variable.
5507 (h8300_init_once): Initialize it.
5508 (h8300_reg_class_from_letter): New function.
5509 (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
5510 (h8sx_emit_movmd, h8sx_split_movmd): New functions.
5511 * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
5512 (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
5513 (movstrsi, movmd): New expanders.
5514 (movmd_internal): New insn.
5515 2003-06-06 Richard Sandiford <rsandifo@redhat.com>
5516 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
5517 2003-06-04 Richard Sandiford <rsandifo@redhat.com>
5518 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
5519 * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
5520 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
5521 * config/h8300/h8300.c (nibble_operand): Fix warning.
5522 * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
5523 (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
5524 (movsf_h8300h): Disable for TARGET_H8300SX.
5525 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
5526 * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
5527 h8300_stm_parallel and h8300_return_parallel.
5528 * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
5529 h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
5530 h8300_stm_parallel, h8300_return_parallel): New functions.
5531 (h8300_expand_prologue): Don't enforce ldm/stm register alignment
5532 if TARGET_H8300SX. Use h8300_push_pop.
5533 (h8300_expand_epilogue): Likewise. Try to merge the return insn
5534 and final pop when generating h8sx code. Always emit some form
5535 of return insn.
5536 * config/h8300/h8300.md: Don't enforce register alignment in
5537 stm peepholes if TARGET_H8300SX.
5538 (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
5539 (ldm_h8300s_[234], stm_h8300_[234]): Disable.
5540 (epilogue): Expect h8300_expand_epilogue to emit a return insn.
5541 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
5542 * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
5543 (MULTILIB_DIRNAMES): Add a directory for it.
5544 (MULTILIB_MATCHES): Delete.
5545 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
5546 * final.c (walk_alter_subreg): Handle addresses with subregs
5547 inside a ZERO_EXTEND or AND.
5548 * config/h8300/h8300-protos.h (h8300_get_index): Declare.
5549 * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
5550 if TARGET_H8300SX.
5551 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
5552 * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
5553 @(dd,Rn.w) and @(dd,ERn.L).
5554 (h8300_displacement_size): Take the whole address as argument.
5555 (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
5556 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
5557 * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
5558 (h8sx_mergeable_memrefs_p): Declare.
5559 * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
5560 (HAVE_PRE_INCREMENT): Likewise.
5561 (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
5562 addresses for TARGET_H8300SX,
5563 * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
5564 and POST_DEC.
5565 (movb_length_table, movl_length_table): New tables.
5566 (movw_length_table): Define to movb_length_table.
5567 (h8300_displacement_size): New, split out from...
5568 (h8300_classify_address): ...here. Handle pre/post inc/dec.
5569 (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
5570 (h8300_insn_length_from_table): Add cases for movb, movw and movl.
5571 (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
5572 (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
5573 (compute_plussi_length, compute_plussi_cc): Update accordingly.
5574 (h8sx_unary_shift_operator): Get the mode from the operator.
5575 (binary_shift_operator): Likewise.
5576 * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
5577 a memory reference, check whether the reference is offsettable.
5578 (length_table): Add movb, movw and movl.
5579 (movqi): Add new h8sx pattern. Don't force one operand to be a
5580 register when generating h8sx code.
5581 (movhi, movsi, movsf): Likewise.
5582 (movstrictqi): Use the length_table attribute.
5583 (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn.
5584 (addqi3): Split into a define_expand and define_insn. Don't accept
5585 memory operands in the expander. Use h8300_operands_match_p to
5586 check for matching operands in the define_insn.
5587 (subqi3, negqi2, one_cmplqi2): Likewise.
5588 (add[hs]i3): Don't accept memory operands in the expander. Likewise
5589 in any patterns that are unused in h8sx code. In the h8sx patterns,
5590 use h8300_operands_match_p to check whether operands match.
5591 (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
5592 one_cmpl[hs]i3): Likewise.
5593 (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand
5594 in the expander.
5595 2003-05-23 Richard Sandiford <rsandifo@redhat.com>
5596 * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
5597 (h8300_insn_length_from_table): Add a second parameter.
5598 (output_h8sx_shift): Declare.
5599 * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
5600 (EXTRA_CONSTRAINT): Replace with...
5601 (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y.
5602 (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
5603 (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
5604 and h8sx_binary_shift_operator.
5605 * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
5606 for TARGET_H8300SX.
5607 (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
5608 (bit_memory_operand, fix_bit_operand): Likewise.
5609 (h8300_length_table_for_insn): Remove.
5610 (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
5611 instructions.
5612 (h8300_short_immediate_length, h8300_binary_length): New functions.
5613 (h8300_insn_length_from_table): Add an opcodes parameter. Rework.
5614 (output_plussi): Use sub to add negative constants.
5615 (compute_plussi_length): Adjust accordingly.
5616 (h8sx_single_shift_type): New enum.
5617 (h8sx_single_shift, h8sx_unary_shift_operator,
5618 h8sx_binary_shift_operator, output_h8sx_shift): New functions.
5619 (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
5620 single h8sx instruction. Return false in this case.
5621 * config/h8300/h8300.md (length_table): Add short_immediate.
5622 (length): Pass the operand array to h8300_insn_length_from_table.
5623 (adjust_length): Assume "no" for insns with a length_table attribute.
5624 (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
5625 (*addhi3_h8300hs): Don't use for h8sx.
5626 (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
5627 and sub.w #xx:3.
5628 (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
5629 1's predicate to nonimmediate_operand. Only skip default expansion
5630 if expand_a_shift or expand_a_rotate returns true. Add new patterns
5631 for single h8sx shift instructions.
5632 2003-05-22 Alexandre Oliva <aoliva@redhat.com>
5633 * config/h8300/h8300.c (nibble_operand): Split out of...
5634 (reg_or_nibble_operand): ... this.
5635 * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
5636 * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
5637 umulhisi3): Introduce expand, and introduce separate insns for
5638 sign- or zero-extended REG and already-extended CONST_INT.
5639 2003-05-20 Richard Sandiford <rsandifo@redhat.com>
5640 * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
5641 * config/h8300/h8300.md (subqi3): Generalize for h8sx.
5642 (subhi3): Likewise. Don't accept immediates for operand 1.
5643 Remove the early clobber from second alternative of the h8300s pattern.
5644 (subsi3): Generalize for h8sx. Force operand 2 into a register
5645 on plain h8300 targets.
5646 (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
5647 (subsi3_h8300h): Generalize for h8sx.
5648 (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
5649 2003-05-19 Alexandre Oliva <aoliva@redhat.com>
5650 * config/h8300/h8300.c (reg_or_nibble_operand): New.
5651 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
5652 (TARGET_H8300SXMUL): New.
5653 (CONST_OK_FOR_P): New.
5654 (CONST_OK_FOR_LETTER_P): Adjust.
5655 * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
5656 umulhisi3): Accept 4-bit immediate on H8SX.
5657 (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
5658 (udivsi3, divhi3, udivsi3, divsi3): New.
5659 2003-05-19 Richard Sandiford <rsandifo@redhat.com>
5660 * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
5661 * config/h8300/h8300.h (OK_FOR_Q): New macro.
5662 (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
5663 (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
5664 Add ADDRESSOF to the bit_operand entry.
5665 * config/h8300/h8300.c (h8300_dst_operand): New predicate.
5666 (h8300_src_operand): Likewise.
5667 (bit_operand): Check nonimmediate_operand rather than general_operand.
5668 Accept any nonimmediate_operand in h8sx code.
5669 (h8300_and_costs): Initialize operands[1].
5670 (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
5671 (h8300_operand_class): New enum.
5672 (h8300_length_table): New typedef.
5673 (addb_length_table, addw_length_table, addl_length_table,
5674 logicl_length_table): New tables.
5675 (logicb_length_table, logicw_length_table): New macros.
5676 (h8300_classify_operand, h8300_length_from_table,
5677 h8300_length_table_for_insn, h8300_unary_length,
5678 h8300_insn_length_from_table): New functions.
5679 (output_plussi): Only use adds and subs for register destinations.
5680 Disable redundant clause.
5681 (compute_plussi_cc): Likewise.
5682 (compute_plussi_length): Likewise. Use h8300_length_from_table
5683 to work out the length of an insn.
5684 (output_logical_op): Only use narrower immediate instructions
5685 if the destination is a register.
5686 (compute_logical_op_cc): Likewise.
5687 (compute_logical_op_length): Likewise. Use h8300_length_from_table.
5688 (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
5689 * config/h8300/h8300.md (length_table): New attribute.
5690 (length): When an instruction has a length_table attribute, use
5691 h8300_insn_length_from_table to calculate its default length.
5692 (cmpqi): Use h8300_dst_operand for the first operand and
5693 h8300_src_operand for the second.
5694 (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
5695 negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
5696 addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
5697 iorsi3, xorhi3, xorsi3): Likewise.
5698 (andqi3): Use h8300_src_operand for operand 2. Adjust the condition
5699 so that it allows any combination of operands for TARGET_H8300SX.
5700 (iorqi3, xorqi3): Likewise.
5701 (cmpqi): Use the length_table attribute.
5702 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
5703 xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
5704 (cmpqi): Add 'Q' constraint.
5705 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
5706 iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
5707 2003-05-14 Richard Sandiford <rsandifo@redhat.com>
5708 * config/h8300/h8300.h (MASK_H8300SX): New macro.
5709 (TARGET_H8300S): True for both -ms and -msx.
5710 (TARGET_H8300SX): New macro.
5711 (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
5712 * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
5713 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
5714 * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
5715 [Temporary change.]
5716 2003-02-28 Alexandre Oliva <aoliva@redhat.com>
5717 * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
5718 16-bit pointers and 32-bit ints.
5719 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
5720 CONST_DOUBLE with mode no wider than SImode.
5721 * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
5722 output operand.
5723 2003-02-27 Alexandre Oliva <aoliva@redhat.com>
5724 * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
5725 or SUBREG thereof.
5726 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
5727 2003-02-22 Alexandre Oliva <aoliva@redhat.com>
5728 * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
5729
5730 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5731
5732 * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
5733
5734 2004-07-07 Per Bothner <per@bothner.com>
5735
5736 * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE.
5737
5738 2004-07-07 Mike Stump <mrs@apple.com>
5739
5740 * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
5741 * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
5742 (machopic_finish): Likewise.
5743
5744 2004-07-07 Richard Henderson <rth@redhat.com>
5745
5746 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
5747 through any value-preserving cast.
5748
5749 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
5750
5751 * function.c (assign_parm_find_data_types): Call
5752 FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
5753
5754 2004-07-07 Steven Bosscher <stevenb@suse.de>
5755
5756 * tree-cfg.c (group_case_labels): Remove case labels that have
5757 the same target as the default case.
5758
5759 2004-07-07 Steven Bosscher <stevenb@suse.de>
5760
5761 * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
5762 regardless of DECL_LANG_SPECIFIC being present or not.
5763 * tree.h (DECL_NUM_STMTS): Purge.
5764
5765 2004-07-07 Andrew Pinski <apinski@apple.com>
5766
5767 * configure: Regenerate with the right autoconf.
5768
5769 2004-07-07 David Edelsohn <edelsohn@gnu.org>
5770
5771 * ifcvt.c (total_bb_rtx_cost): New function.
5772 (find_if_case_1): Compare rtx_cost of basic block to cost of
5773 BRANCH_COST insns.
5774 (find_if_case_2): Same.
5775
5776 2004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5777
5778 PR target/10567
5779 * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
5780 (output_return): Likewise.
5781 (output_sibcall): Abort if !flag_delayed_branch.
5782 (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
5783 (emit_and_preserve): New function.
5784 (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an
5785 indirect jump to the thunked-to function if !flag_delayed_branch.
5786 * config/sparc/sparc.md (delayed_branch): New attribute.
5787 (load_pcrel_sym): Honor flag_delayed_branch. Use above
5788 attribute to compute the length of the insn.
5789 (goto_handler_and_restore): Likewise.
5790
5791 2004-07-07 Andrew Pinski <apinski@apple.com>
5792
5793 PR tree-optimization/15777
5794 * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
5795
5796 * expr.c (expand_expr_real_1): Fix formating.
5797 BUFFER_REF and IN_EXPR are dead.
5798 * fold-const.c (non_lvalue): BUFFER_REF is dead.
5799 * tree-inline.c (estimate_num_insns_1): Likewise.
5800 * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
5801 IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
5802 * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
5803
5804 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
5805
5806 * collect2.c (dump_file): Don't call cplus_demangle if
5807 HAVE_LD_DEMANGLE is defined.
5808 (main): Pass "--demangle" to ld if no_demangle is not 0 and
5809 HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
5810 if HAVE_LD_DEMANGLE is defined.
5811
5812 * configure.ac (--with-demangler-in-ld): Added
5813 (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
5814 --with-demangler-in-ld is used.
5815 * config.in: Regenerated.
5816 * configure: Likewise.
5817
5818 2004-07-07 Roger Sayle <roger@eyesopen.com>
5819
5820 * config/rs6000/rs6000.c (struct processor_costs): Add new fields
5821 for simple floating point operations "fp", double precision
5822 multiplication "dmul", and single and double precision division
5823 "sdiv" and "ddiv". Update all CPU variant tables as appropriate.
5824 (ppc630_cost): New table split from ppc620_cost, to distinguish
5825 differences in floating point latencies.
5826 (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
5827 (rs6000_rtx_costs): Add support for single and double precision
5828 floating point addition, subtraction, multiplication, division,
5829 fused-multiply-add, fused-multiply-sub, negation, absolute value
5830 and negative absolute value. Tweak MEM case to use prefered idiom.
5831
5832 2004-07-07 Richard Henderson <rth@redhat.com>
5833
5834 * tree-flow-inline.h (may_propagate_copy): Move...
5835 * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we
5836 attempt to copy between types requiring conversion.
5837 * tree-flow.h (may_propagate_copy): Update decl.
5838 * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
5839
5840 2004-07-07 Jakub Jelinek <jakub@redhat.com>
5841
5842 * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
5843 from -mtune= option.
5844
5845 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
5846
5847 * builtins.c: Rename movstr*, except for movstrict*, to
5848 movmem* and clrstr* to clrmem*.
5849 * expr.c: Likewise.
5850 * expr.h: Likewise.
5851 * genopinit.c: Likewise.
5852 * integrate.c: Likewise.
5853 * local-alloc.c: Likewise.
5854 * optabs.c: Likewise.
5855 * optabs.h: Likewise.
5856 * config/alpha/alpha.h: Likewise.
5857 * config/alpha/alpha.md: Likewise.
5858 * config/arm/arm-protos.h: Likewise.
5859 * config/arm/arm.c: Likewise.
5860 * config/arm/arm.md: Likewise.
5861 * config/avr/avr.md: Likewise.
5862 * config/c4x/c4x.c: Likewise.
5863 * config/c4x/c4x.md: Likewise.
5864 * config/frv/frv.md: Likewise.
5865 * config/i386/i386-protos.h: Likewise.
5866 * config/i386/i386.c: Likewise.
5867 * config/i386/i386.h: Likewise.
5868 * config/i386/i386.md: Likewise.
5869 * config/i860/i860.c: Likewise.
5870 * config/i860/i860.md: Likewise.
5871 * config/ip2k/ip2k.md: Likewise.
5872 * config/ip2k/libgcc.S: Likewise.
5873 * config/ip2k/t-ip2k: Likewise.
5874 * config/m32r/m32r.c: Likewise.
5875 * config/m32r/m32r.md: Likewise.
5876 * config/mcore/mcore.md: Likewise.
5877 * config/mips/mips.c: Likewise.
5878 * config/mips/mips.md: Likewise.
5879 * config/ns32k/ns32k.c: Likewise.
5880 * config/ns32k/ns32k.h: Likewise.
5881 * config/ns32k/ns32k.md: Likewise.
5882 * config/pa/pa.c: Likewise.
5883 * config/pa/pa.md: Likewise.
5884 * config/pdp11/pdp11.h: Likewise.
5885 * config/pdp11/pdp11.md: Likewise.
5886 * config/rs6000/rs6000.c: Likewise.
5887 * config/rs6000/rs6000.md: Likewise.
5888 * config/s390/s390-protos.h: Likewise.
5889 * config/s390/s390.c: Likewise.
5890 * config/s390/s390.md: Likewise.
5891 * config/sh/lib1funcs.asm: Likewise.
5892 * config/sh/sh.c: Likewise.
5893 * config/sh/sh.md: Likewise.
5894 * config/sh/t-sh: Likewise.
5895 * config/sparc/sparc.h: Likewise.
5896 * config/vax/vax.md: Likewise.
5897 * config/xtensa/xtensa.c: Likewise.
5898 * config/xtensa/xtensa.md: Likewise.
5899 * doc/invoke.texi: Likewise.
5900 * doc/md.texi: Likewise.
5901 * doc/rtl.texi: Likewise.
5902
5903 2004-07-07 Richard Sandiford <rsandifo@redhat.com>
5904
5905 PR target/16407
5906 * config/mips/mips-protos.h (mips_declare_common_object): Declare.
5907 * config/mips/mips.c (mips_declare_common_object): New function,
5908 mostly split out from...
5909 (mips_output_aligned_decl_common): ...here.
5910 * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
5911 (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
5912 * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
5913 rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object.
5914
5915 2004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5916
5917 PR c/16392
5918 * function.c (assign_parms): Fix typo from previous change.
5919
5920 2004-07-07 Jason Merrill <jason@redhat.com>
5921
5922 PR c++/15815
5923 * doc/extend.texi (C++ Interface): Correct information and
5924 discourage use.
5925
5926 2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
5927
5928 PR target/16130
5929 PR target/16142
5930 PR target/16143
5931 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
5932 insn.
5933
5934 2004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5935
5936 PR target/1679.
5937 * config/m32r/m32r.c (m32r_function_symbol): New function:
5938 Generate a symbol name RTX with the correct m32r specific flags
5939 set.
5940 (block_move_call): Use new function to generate correct symbol.
5941 * config/m32r/m32r-protos.h: Add prototype for new funcion.
5942 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
5943 function.
5944
5945 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
5946
5947 * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
5948 TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
5949 TYPE_BINFO_BASETYPE): Remove.
5950 (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
5951 to ...
5952 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
5953 here.
5954 (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
5955 (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
5956 (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
5957 (struct tree_binfo): Rename base_types to base_binfos.
5958 * alias.c (record_component_aliases): Adjust BINFO macros.
5959 * dbxout.c (dbxout_type): Likewise.
5960 * dwarf2out.c (gen_member_die): Likewise.
5961 * sdbout.c (sdbout_one_type): Likewise.
5962 * tree-dump.c (deque_and_dump): Likewise.
5963 * config/i386/i386.c (classify_argument,
5964 contains_128bit_aligned_vector_p): Likewise.
5965
5966 2004-07-07 Nick Clifton <nickc@redhat.com>
5967
5968 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
5969 arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
5970
5971 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
5972
5973 * vec.h: Fix the example use.
5974
5975 2004-07-06 Richard Henderson <rth@redhat.com>
5976
5977 * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
5978 * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
5979 * tree-inline.c (copy_body_r, setup_one_parameter,
5980 initialize_inlined_parameters, expand_call_inline,
5981 declare_inline_vars): Don't check it.
5982 (expand_calls_inline): Remove old version, rename new version
5983 from gimple_expand_calls_inline.
5984 * tree-optimize.c (execute_gimple): Remove.
5985 (pass_gimple): Don't run anything.
5986
5987 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
5988
5989 * doc/sourcebuild.texi: Use semicolons instead of commas in
5990 section title.
5991
5992 2004-07-06 Richard Henderson <rth@redhat.com>
5993
5994 * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
5995 (sra_walk_modify_expr, scan_init): Likewise.
5996 (generate_element_zero): Check visited before scanning children.
5997 (generate_element_init): Set visited on error.
5998 (scalarize_init): Handle generate_element_init failure similar
5999 to use_block_copy.
6000
6001 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
6002
6003 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
6004 (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
6005
6006 2004-07-06 Richard Henderson <rth@redhat.com>
6007
6008 * config/i386/i386.c (legitimize_pic_address): Make static.
6009 (legitimize_address): Handle CONST with TLS operand.
6010 (ix86_expand_move): Don't call legitimize_pic_address directly.
6011 * config/i386/i386-protos.h (legitimize_pic_address): Remove.
6012
6013 2004-07-06 Roger Sayle <roger@eyesopen.com>
6014
6015 * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
6016 (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
6017 (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
6018 is currently executed unconditionally, i.e. not in "else_bb".
6019
6020 2004-07-06 Steven Bosscher <stevenb@suse.de>
6021
6022 * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
6023 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6024 * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
6025 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6026 * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
6027 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6028 * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
6029 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6030 * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
6031 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6032 * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
6033 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6034 * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
6035 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6036 * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
6037 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
6038
6039 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
6040
6041 * dojump.c (do_jump): REFERENCE_EXPR is dead.
6042 * expr.c (expand_expr_real_1): Ditto.
6043 * tree-inline.c (estimate_num_insns_1): Ditto.
6044 * tree-pretty-print.c (dump_generic_node): Ditto.
6045 (op_symbol): Ditto.
6046 * tree.def: Ditto.
6047
6048 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
6049
6050 * tree-ssa-pre.c (reference_node_pool): New pool.
6051 (find_or_generate_expression): Class 'r' is okay too.
6052 (create_value_expr_from): Ditto.
6053 (add_to_sets): LHS should not include vuses.
6054 (eliminate): Ditto.
6055 (compute_avail): Reverse ordering of tests.
6056 Valuize INDIRECT_REF as well.
6057
6058 2004-07-06 Richard Sandiford <rsandifo@redhat.com>
6059
6060 PR rtl-optimization/16380
6061 * loop.c (check_dbra_loop): Sink comparison instructions if they
6062 do something other than set cc0.
6063
6064 2004-07-06 James E Wilson <wilson@specifixinc.com>
6065
6066 * doc/interface.texi (longjmp and automatic variables): Delete
6067 paragraph recommending taking the address of a variable.
6068
6069 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
6070
6071 * vec.h (VEC_embedded_alloc): Remove.
6072 (VEC_embedded_size, VEC_embedded_init): New.
6073 (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
6074 MEM_STAT_INFO.
6075 (VEC_truncate): New.
6076 (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
6077 (vec_embedded_alloc): Remove.
6078 * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
6079 (vec_embedded_alloc): Remove.
6080
6081 2004-07-06 Mark Mitchell <mark@codesourcery.com>
6082
6083 * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
6084 (gt-langhooks.h): Remove.
6085
6086 2004-07-06 George Helffrich <george@gly.bris.ac.uk>
6087
6088 * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
6089
6090 2004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr>
6091
6092 * config/sparc/sparc.c (get_pc_symbol): Rename into
6093 add_pc_to_pic_symbol.
6094 (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
6095 (load_pic_register): Account for previous changes.
6096 Use reg_names. Don't create the label twice.
6097 * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
6098 UNSPEC_LOAD_PCREL_SYM.
6099 (get_pc): Rename into load_pcrel_sym. Add predicate to
6100 operands. Remove condition.
6101
6102 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
6103
6104 * dbxout.c (dbxout_type): Don't test whether the binfo slot of
6105 RECORD, UNION & QUAL_UNION is actually a binfo.
6106
6107 * tree.h (TREE_VIA_VIRTUAL): Rename to ...
6108 (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
6109 (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
6110 * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
6111 * dwarf2out.c (add_data_member_location_attribute): Likewise.
6112 (gen_inheritance_die): Likewise.
6113 * tree-dump.c (deque_and_dump): Likewise.
6114 * doc/c-tree.texi (Binfos): Add under reconstruction note.
6115
6116 2004-07-06 Steven Bosscher <stevenb@suse.de>
6117
6118 * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
6119 Define.
6120 * config/mcore/mcore.md: Model memory latency with a simple DFA
6121 pipeline description instead of a define_function_unit.
6122
6123 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6124
6125 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
6126 * langhooks.h (var_mod_type_p): Likewise.
6127 * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
6128 * expr.c (count_type_elements): Properly handle return from
6129 array_type_nelts and properly test for overflow.
6130 * gimplify.c (gimplify_init_constructor): Properly handle return
6131 from array_type_nelts.
6132 (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
6133 * integrate.c (copy_decl_for_inlining): Correct comments.
6134 * tree-inline.c (remap_decl): Update comments, remove dead code,
6135 and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
6136 (remap_type): Only remap if variably modified by vars in function
6137 being inlined.
6138 (copy_body_r): Use compatible_type langhooks to see when can fold.
6139 (setup_one_parameter): Don't remap type.
6140 (inline_forbidden_p_1): Add arg to variably_modified_type_p.
6141 * tree.c (recompute_tree_invarant_for_addr_expr): Properly
6142 compute TREE_INVARIANT for decl case.
6143 (find_var_from_fn): New function.
6144 (variably_modified_type_p): Add arg and call new function.
6145 * tree.h (variably_modified_type_p): Add extra arg.
6146
6147 2004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr>
6148
6149 * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
6150 (goto_handler_and_restore_v9): Delete disabled insn.
6151 (goto_handler_and_restore_v9_sp64): Likewise.
6152
6153 2004-07-05 Roger Sayle <roger@eyesopen.com>
6154
6155 * calls.c (load_register_parameters): Call expand_shift instead
6156 of expand_binop with ashl_optab (or other shift optab) directly.
6157 * expr.c (emit_group_load, emit_group_store): Likewise.
6158 * function.c (assign_parm_setup_block): Likewise.
6159 * stmt.c (shift_return_value): Likewise.
6160
6161 2004-07-05 Jakub Jelinek <jakub@redhat.com>
6162
6163 * expr.c (expand_assignment): Disable the bitfield += optimizations.
6164
6165 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
6166
6167 * doc/sourcebuild.texi: Revert previous patch.
6168
6169 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
6170
6171 * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
6172 TARGET_MEM_FUNCTIONS.
6173 * system.h: Poison TARGET_MEM_FUNCTIONS.
6174 * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
6175 bcmp_libfunc, bzero_libfunc): Remove.
6176 * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
6177 bzero_libfunc.
6178 * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
6179 * doc/standards.texi: Don't mention calling BSD string functions.
6180 * doc/invoke.texi: Likewise. Mention that memmove may be called.
6181 * config/vax/t-memfuncs: New.
6182 * config/memcmp.c, config/memcpy.c, config/memmove.c,
6183 config/memset.c: New.
6184 * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
6185 * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
6186 vax/t-memfuncs.
6187 * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
6188 config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
6189 config/elfos.h, config/gnu.h, config/h8300/h8300.h,
6190 config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
6191 config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
6192 config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
6193 config/netbsd.h, config/openbsd.h, config/pa/pa.h,
6194 config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
6195 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
6196 config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
6197
6198 2004-07-05 Richard Henderson <rth@redhat.com>
6199
6200 * function.c (assign_parm_setup_reg): Properly rename variables in
6201 FUNCTION_ARG_CALLEE_COPIES section.
6202
6203 2004-07-05 Zack Weinberg <zack@codesourcery.com>
6204
6205 * tree-mudflap.c: Include cgraph.h.
6206 (mf_init_extern_trees): Rename to mudflap_init. Export.
6207 Rewrite to create synthetic declarations instead of looking
6208 up declarations from mf-runtime.h.
6209 (mf_make_builtin, mf_make_cache_struct_type): New functions.
6210 (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
6211 Correct commentary.
6212 (execute_mudflap_function_decls, mudflap_register_call):
6213 Don't call mf_init_extern_trees.
6214 (mudflap_finish_file): Use cgraph_build_static_cdtor.
6215
6216 * tree-mudflap.h: Update prototypes.
6217 * c-mudflap.c: Delete file.
6218 * c-common.c: Include tree-mudflap.h.
6219 (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
6220 * Makefile.in: Remove all references to c-mudflap.o.
6221 Update dependencies.
6222
6223 2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6224
6225 * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
6226 displacements with the spatial-locality cache-control completer.
6227
6228 2004-07-05 Zack Weinberg <zack@codesourcery.com>
6229
6230 * langhooks.c: Don't include gt-langhooks.h.
6231 (var_labelno): Delete.
6232 (lhd_set_decl_assembler_name): Do not append a distinguishing
6233 number to file-scope internal-linkage declarations for the first
6234 input file, even if they have DECL_CONTEXT set. Use DECL_UID of
6235 the declaration itself (if at block scope), or its containing
6236 TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
6237 number.
6238
6239 * opts.c (cur_in_fname): New global.
6240 * opts.h: Declare it.
6241 * tree.c: Include opts.h.
6242 (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
6243 DECL_UID equal to cur_in_fname.
6244 (copy_node_stat): Do not change DECL_UID when copying a
6245 TRANSLATION_UNIT_DECL.
6246 (build_common_tree_nodes): Adjust next_decl_uid to reserve the
6247 range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
6248
6249 * c-decl.c (c_static_assembler_name): Delete.
6250 * c-tree.h (c_static_assembler_name): Delete prototype.
6251 * c-lang.c, objc/objc-lang.c: Don't override
6252 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
6253
6254 * Makefile.in (tree.o): Update dependencies.
6255 (GTFILES): Remove langhooks.c.
6256
6257 2004-07-05 Roger Sayle <roger@eyesopen.com>
6258
6259 * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
6260 by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
6261 Normalize "X % C" as "X % -C" for signed modulus and negative C.
6262 Optimize "X % -Y" as "X % Y" for signed modulus.
6263 <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
6264 into "((unsigned) X % Y) == 0".
6265
6266 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
6267
6268 * sourcebuild.texi (Config Fragments): Use @comma{} in
6269 cross-reference to section title.
6270
6271 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6272
6273 * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
6274 * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
6275 (gimplify_target_expr, gimplify_expr): Likewise.
6276 (copy_if_shared_r): No longer need special case for BIND_EXPR.
6277 (unshare_body, unvisit_body): Only look at nested if BODY_P is
6278 whole function.
6279 (gimplify_compound_lval): See if we can strip any useless conversion.
6280 (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
6281 from RHS, not LHS.
6282 (gimplify_modify_expr_to_memset): Likewise.
6283 (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
6284 * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
6285 (declare_inline_vars): Likewise.
6286 (walk_type_fields): New function.
6287 (walk_tree): Use it.
6288 * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
6289
6290 * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
6291 (sra_walk_modify_expr): Allow init function to fail.
6292 (scan_init): Now returns bool.
6293 (generate_element_init): If can't understand INIT, return false.
6294 (scalarize_init): Return false if generate_element_init does.
6295
6296 * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
6297 print bounds.
6298
6299 * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
6300 bounds if bounds aren't constant.
6301
6302 * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
6303
6304 * function.c, langhooks-def.h, langhooks.h: Move max_size hook
6305 to type hooks; remove bogus PARAMS.
6306
6307 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
6308
6309 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
6310 * dwarf2out.c (add_data_member_location_attribute): Check for
6311 TREE_BINFO.
6312 * tree.c (tree_node_kinds): Add "binfos".
6313 (binfo_lang_slots): New.
6314 (make_node_stat): Add TREE_BINFO.
6315 (make_tree_binfo_stat): New.
6316 (tree_node_structure): Add TREE_BINFO.
6317 * tree.def (TREE_BINFO): New.
6318 * tree.h (REC_OR_UNION_CHECK): Rename to ...
6319 (RECORD_OR_UNION_CHECK): ... here.
6320 (NOT_RECORD_OR_UNION_CHECK): New.
6321 (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
6322 (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
6323 RECORD_OR_UNION_CHECK.
6324 (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
6325 (TYPE_LANG_SLOT_1): New.
6326 (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
6327 BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
6328 BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
6329 (BINFO_ELTS): Remove.
6330 (BINFO_LANG_SLOT): New.
6331 (struct tree_binfo): New.
6332 (binfo_lang_slots): Declare.
6333 (enum tree_node_structure_enum): Add TS_BINFO.
6334 (union tree_node): Add binfo.
6335 (make_tree_binfo_stat): Declare.
6336 (make_tree_binfo): New.
6337 (enum tree_node_kind): Add binfo_kind.
6338
6339 * objc/objc-act.c (start_class, objc_declare_protocols,
6340 start_protocols): Use TYPE_LANG_SLOT_1.
6341 * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
6342 to ...
6343 (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
6344 (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
6345 CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
6346 PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
6347
6348 2004-07-05 Steven Bosscher <stevenb@suse.de>
6349
6350 * rtl.h (struct rtx_def): Remove the integrated flag.
6351 Use the return_val flag for MEM_SCALAR_P.
6352 Reshuffle and update flags in CLEAR_RTX_FLAGS.
6353
6354 2004-07-05 Richard Sandiford <rsandifo@redhat.com>
6355
6356 PR target/16357
6357 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
6358 to mips_expand_unaligned_load, mips_expand_unaligned_store, and
6359 move_by_pieces.
6360
6361 2004-07-05 Josef Zlomek <zlomekj@suse.cz>
6362
6363 * var-tracking.c: Fix some comments.
6364 (frame_stack_adjust): New.
6365 (vt_stack_adjustments): Init stack_adjust of entry block to
6366 minus stack adjustment of function prologue.
6367 (adjust_stack_reference): Do not adjust if adjustment == 0.
6368 (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
6369 (emit_notes_in_bb): Likewise.
6370 (vt_add_function_parameters): Do not adjust locations of
6371 function arguments.
6372 (vt_initialize): Compute the stack adjustment of function
6373 prologue and offset the initial "location" of frame_base_decl
6374 from the stack pointer after prologue.
6375
6376 2004-07-04 Richard Henderson <rth@redhat.com>
6377
6378 * function.c (struct assign_parm_data_all): New.
6379 (struct assign_parm_data_one): New.
6380 (assign_parms_initialize_all, assign_parms_augmented_arg_list,
6381 assign_parm_find_data_types, assign_parms_setup_varargs,
6382 assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
6383 assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
6384 assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
6385 assign_parm_setup_block, assign_parm_setup_reg,
6386 assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
6387 (assign_parms): ... here.
6388
6389 2004-07-04 Daniel Berlin <dberlin@dberlin.org>
6390
6391 * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
6392 now are bitmap_set_t's.
6393 (bitmap_insert_into_set): No point in inserting the value if
6394 it's invariant.
6395 (bitmap_set_contains): New function.
6396 (bitmap_set_replace_value): Add comment on why we do it
6397 this way.
6398 (set_contains): Removed.
6399 (bitmap_set_subtract_from_value_set): New name of
6400 set_subtract now that it's arguments are two different
6401 types of sets.
6402 Update callers.
6403 (bitmap_find_leader): Change algorithm used.
6404 (find_or_generate_expression): Update use of functions for new
6405 bitmap sets.
6406 (create_expression_by_pieces): Ditto.
6407 (insert_aux): Ditto.
6408 (insert): Ditto.
6409 (add_to_sets): Ditto.
6410 (init_pre): Ditto.
6411 (execute_pre): Ditto.
6412 (compute_avail): Ditto.
6413 Also ignore virtual phis.
6414
6415 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
6416
6417 * combine.c (simplify_comparison): Fix comment typo.
6418
6419 2004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
6420
6421 * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
6422 into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
6423 (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
6424 (output_restore): Change parameter from 'insn' to 'pat'.
6425 (output_return): Adjust call to output_restore.
6426 (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
6427 Adjust call to output_restore.
6428
6429 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
6430
6431 * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
6432 and assert system is bsd.
6433
6434 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
6435
6436 * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
6437 (TARGET_SWITCHES): Remove -mdebugc.
6438 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
6439 (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
6440 (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
6441 (sle_[sd]i_reg): Delete.
6442
6443 2004-07-04 Steven Bosscher <stevenb@suse.de>
6444
6445 * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
6446 Define.
6447 * config/iq2000/iq2000.md: Translate old pipeline description to an
6448 equivalent new one.
6449
6450 2004-07-04 Roger Sayle <roger@eyesopen.com>
6451
6452 * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
6453 Ensure the replacement rhs is valid gimple before performing
6454 the substitution. Return false if these sanity checks fail.
6455 (fold_stmt): Only set changed to true, if set_rhs returns true.
6456 (execute_fold_all_builtins): Only call modify_stmt if set_rhs
6457 succeeds.
6458
6459 2004-07-04 Richard Henderson <rth@redhat.com>
6460
6461 PR c/16348
6462 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
6463
6464 2004-07-04 Mark Mitchell <mark@codesourcery.com>
6465
6466 * configure.ac (ranlib_flags): New variable.
6467 * Makefile.in (RANLIB_FLAGS): New variable.
6468 (libbackend.a): Use it.
6469 * configure: Regenerated.
6470
6471 2004-07-04 Roger Sayle <roger@eyesopen.com>
6472
6473 * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
6474 a "sign mask" instead of using ashr_optab directly.
6475
6476 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
6477
6478 * doc/cpp.texi: Don't document what we do for ill-formed expressions.
6479 * doc/cppopts.texi: Clarify processing of command-line defines.
6480
6481 2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
6482
6483 * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
6484
6485 2004-07-04 Richard Henderson <rth@redhat.com>
6486
6487 * rtl.def (ADDRESSOF): Remove.
6488 * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
6489 (find_base_term, memrefs_conflict_p): Likewise.
6490 * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
6491 (fold_rtx, cse_insn, set_live_p): Likewise.
6492 * dwarf2out.c (mem_loc_descriptor): Likewise.
6493 (add_location_or_const_value_attribute): Likewise.
6494 * emit-rtl.c (copy_insn_1): Likewise.
6495 * explow.c (memory_address): Likewise.
6496 * expmed.c (store_split_bit_field): Likewise.
6497 * expr.c (expand_expr_real_1): Likewise.
6498 * function.c (instantiate_decl
6499 (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
6500 * genrecog.c (preds, validate_pattern): Likewise.
6501 * integrate.c (copy_rtx_and_substitute): Likewise.
6502 * recog.c (general_operand, register_operand): Likewise.
6503 (memory_address_p): Likwise.
6504 * reload1.c (eliminate_regs, elimination_effects): Likewise.
6505 * rtl.c (copy_rtx): Likewise.
6506 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
6507 (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
6508 * rtlhooks.c (gen_lowpart_general): Likewise.
6509 * stmt.c (expand_asm_operands): Likewise.
6510 * web.c (entry_register, replace_ref, web_main): Likewise.
6511 * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
6512 alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6513 * config/arm/arm.c (thumb_rtx_costs): Likewise.
6514 * config/c4x/c4x.c (c4x_valid_operands): Likewise.
6515 * config/frv/frv.c (move_destination_operand, move_source_operand,
6516 condexec_dest_operand, condexec_source_operand,
6517 condexec_memory_operand): Likewise.
6518 * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
6519 * config/ia64/ia64.c (general_xfmode_operand): Likewise.
6520 (destination_xfmode_operand): Likewise.
6521 * config/mips/mips.h (PREDICATE_CODES): Likewise.
6522 * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
6523 * config/s390/s390.c (general_s_operand): Likewise.
6524 * config/s390/s390.md (mov*): Likewise.
6525 * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
6526
6527 * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
6528 * expr.c (expand_expr_real_1): Likewise.
6529 * stmt.c (expand_decl): Likewise.
6530 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
6531
6532 * function.c (struct fixup_replacement, struct insns_for_mem_entry,
6533 postponed_insns, put_var_into_stack, put_reg_into_stack,
6534 schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
6535 fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
6536 fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
6537 walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
6538 gen_mem_addressof, flush_addressof, put_addressof_into_stack,
6539 purge_bitfield_addressof_replacements, purge_addressof_replacements,
6540 purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
6541 struct insns_for_mem_walk_info, insns_for_mem_walk,
6542 compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
6543 setjmp_protect_args): Remove.
6544 (push_function_context_to): Don't handle var_refs_queue.
6545 (pop_function_context_from, free_after_compilation): Likewise.
6546 (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
6547 (assign_parms, allocate_struct_function): Likewise.
6548 (use_register_for_decl): New.
6549 (expand_function_end): Don't setjmp_protect.
6550 * function.h (struct emit_status): Update commentary.
6551 (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
6552 (max_parm_reg, parm_reg_stack_loc): Remove.
6553 * passes.c (DFI_addressof): Remove.
6554 (dump_file_info): Remove addressof.
6555 (rest_of_handle_addressof): Remove.
6556 (rest_of_compilation): Don't call it.
6557 * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
6558 * stmt.c (expand_decl): Use use_register_for_decl.
6559 * tree.h: Update decls.
6560 * web.c (mark_addressof): Remove.
6561 * doc/invoke.texi (-dF): Remove.
6562
6563 2004-07-03 Richard Henderson <rth@redhat.com>
6564
6565 * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
6566 instead of gen_mem_addressof.
6567 * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
6568 TImode output register.
6569
6570 2004-07-03 Richard Henderson <rth@redhat.com>
6571
6572 PR tree-optimization/16341
6573 * tree-sra.c (sra_walk_function): Increment to next stmt before
6574 processing the current stmt.
6575 (sra_insert_after): Always use BSI_SAME_STMT.
6576
6577 2004-07-03 Richard Henderson <rth@redhat.com>
6578
6579 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
6580 fp plus with minus.
6581
6582 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
6583
6584 * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
6585 with tree_int_cst_equal.
6586
6587 2004-07-03 Andreas Schwab <schwab@suse.de>
6588
6589 * config/ia64/ia64.md: Define new attribute "empty".
6590 (prologue_use, nop_x, insn_group_barrier): Set it.
6591
6592 * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
6593 skip over "empty" insns.
6594
6595 2004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6596
6597 * tree-inline.c (initialize_inlined_parameters): Pass proper function
6598 context to gimplify_body.
6599 (walk_tree): Don't walk into types twice.
6600 (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
6601
6602 * tree-sra.c (generate_element_init): Remove any useless conversions.
6603
6604 * gimplify.c (gimplify_conversion): Remove stripping useless
6605 conversions from here.
6606 (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
6607 (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
6608 Unshare before substituting PLACEHOLDER_EXPR.
6609 (gimplify_modify_expr_to_memset): Likewise.
6610 Pass address of TO to memset, not TO itself.
6611 (gimplify_init_constructor): Make copy of OBJECT so we have it each
6612 time we make an expression (to match a PLACEHOLDER_EXPR).
6613
6614 * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
6615 VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
6616 * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
6617 * tree-ssa-dom.c (local_fold): Likewise.
6618
6619 * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
6620 * langhooks.h (strct lang_hooks): New field type_max_size.
6621 * function.c (assign_temp): Call it.
6622
6623 2004-07-03 Steven Bosscher <stevenb@suse.de>
6624
6625 * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
6626 * config/sh/sh.md: Convert the SH1 pipeline description to
6627 a DFA model.
6628
6629 2004-07-02 Zack Weinberg <zack@codesourcery.com>
6630
6631 * c-decl.c (struct c_binding): Remove contour field; add
6632 depth, invisible, nested fields.
6633 (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
6634 (B_IN_EXTERNAL_SCOPE): New convenience macros.
6635 (bind): Add invisible and nested arguments. Initialize
6636 new fields of struct c_binding; adjust loop scanning for
6637 insertion point.
6638 (free_binding_and_advance): Clear structure with memset.
6639 (pop_scope): Adjust to match. Set DECL_CONTEXT on everything
6640 in file scope, even if it's in external scope too.
6641 (pushdecl): Adjust to match. Create invisible file-scope
6642 declarations for block-scope forward declarations of static functions.
6643 (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
6644 (undeclared_variable, lookup_label, declare_label, define_label)
6645 (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
6646 (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
6647 (store_parm_decls_oldstyle): Adjust to match.
6648 (diagnose_mismatched_decls): Correct handling of linkage clashes.
6649 (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
6650
6651 * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
6652 (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
6653
6654 2004-07-02 Richard Henderson <rth@redhat.com>
6655
6656 * c-decl.c (grokdeclarator): Don't frob current_function_decl
6657 around variable_size.
6658 (set_decl_nonlocal): Remove.
6659 (store_parm_decls): Add stmts for pending sizes.
6660 * calls.c (calls_function, calls_function_1): Remove.
6661 (precompute_arguments): Don't call it.
6662 * cfgexpand.c (set_save_expr_context): Remove.
6663 (tree_expand_cfg): Don't call it.
6664 * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
6665 (dwarf2out_finish): Likewise.
6666 * expr.c (emit_block_move): Adjust addresses to BLKmode.
6667 (store_constructor): Don't pre-evaluate SAVE_EXPR.
6668 (safe_from_p): Don't queue SAVE_EXPRs.
6669 (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
6670 or build plain VAR_DECLs.
6671 * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
6672 (fold): Likewise.
6673 (fold_checksum_tree): Don't special-case SAVE_EXPR.
6674 * function.c (free_after_compilation): Don't clear x_save_expr_regs.
6675 (put_var_into_stack): Don't handle SAVE_EXPR.
6676 (gen_mem_addressof): Likewise.
6677 * function.h (struct function): Remove x_save_expr_regs.
6678 (save_expr_regs): Remove.
6679 * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
6680 * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
6681 * stor-layout.c (variable_size): Don't set it.
6682 (force_type_save_exprs, force_type_save_exprs_1): Remove.
6683 * tree-inline.c (remap_save_expr): Remove fn argument. Update
6684 all callers. Don't set SAVE_EXPR_CONTEXT.
6685 * tree-inline.h (remap_save_expr): Update decl.
6686 * tree.c (save_expr): Update build size.
6687 (first_rtl_op): Don't handle SAVE_EXPR.
6688 (unsave_expr_1, contains_placeholder_p): Likewise.
6689 (decl_function_context): Likewise.
6690 * tree.def (SAVE_EXPR): Remove args 1 and 2.
6691 * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
6692 (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
6693
6694 2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
6695
6696 * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
6697 doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
6698 doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
6699 doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
6700 some first-person references and patronizing comments. Based on
6701 printed manual.
6702 * doc/invoke.texi: Don't reference fortran@gnu.org.
6703 * doc/trouble.texi (Warning when a non-void function value is
6704 ignored): Rewrite. From Russ Allbery and Chris Devers.
6705
6706 2004-07-02 Daniel Berlin <dberlin@dberlin.org)
6707
6708 * tree-ssa-pre.c (bitmap_set_t): New.
6709 (bb_value_sets): avail_out is now a bitmap_set_t.
6710 (bitmap_find_leader): New function.
6711 (bitmap_value_insert_into_set): Ditto.
6712 (bitmap_set_copy): Ditto.
6713 (bitmap_value_replace_in_set): Ditto.
6714 (bitmap_set_contains_value): Ditto.
6715 (bitmap_set_new): Ditto.
6716 (bitmap_set_pool): New pool.
6717 (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
6718 (insert_aux): Ditto.
6719 (add_to_sets): Ditto.
6720 (compute_avail): Ditto
6721 (eliminate): Ditto.
6722 (init_pre): Ditto.
6723 (fini_pre): Ditto.
6724 (execute_pre): Ditto.
6725
6726 2004-07-02 Roger Sayle <roger@eyesopen.com>
6727
6728 * config/rs6000/rs6000.c (struct processor_costs): New structure
6729 used to hold instruction latencies/sizes for processor types.
6730 (rs6000_cost): New global variable pointing to current CPU's costs.
6731 (rs6000_override_options): Initialize rs6000_cost to point to the
6732 appropriate cost table based upon rs6000_cpu and optimize_size.
6733 (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
6734 timings inline.
6735
6736 2004-07-02 Richard Henderson <rth@redhat.com>
6737
6738 * expmed.c (make_tree): Don't use SET_DECL_RTL.
6739
6740 2004-07-02 Steven Bosscher <stevenb@suse.de>
6741
6742 * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
6743
6744 2004-07-01 Richard Henderson <rth@redhat.com>
6745
6746 * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
6747 (alpha_gp_save_rtx): Use assign_stack_local instead of
6748 gen_mem_addressof.
6749
6750 2004-07-01 Richard Henderson <rth@redhat.com>
6751
6752 * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
6753 (alpha_rtx_cost_data): Update to match.
6754 (alpha_rtx_cost_size): New.
6755 (alpha_rtx_costs): Honor optimize_size.
6756
6757 2004-07-01 Richard Henderson <rth@redhat.com>
6758
6759 * gimple-low.c (lower_function_body): Don't reset_block_changes here.
6760 * cfgexpand.c (tree_expand_cfg): Do it here.
6761 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
6762 * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
6763 * config/mips/mips.c (mips_output_mi_thunk): And here.
6764 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
6765 * config/sh/sh.c (sh_output_mi_thunk): And here.
6766 * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
6767
6768 2004-07-01 Richard Henderson <rth@redhat.com>
6769
6770 * tree.def (RTL_EXPR): Remove.
6771 * c-typeck.c (lvalue_p): Don't handle it.
6772 * expr.c (safe_from_p): Likewise.
6773 (expand_expr_real_1): Likewise.
6774 * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
6775 (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
6776 * gengtype.c (adjust_field_tree_exp): Likewise.
6777 * stmt.c (warn_if_unused_value): Likewise.
6778 * tree-gimple.c (recalculate_side_effects): Likewise.
6779 * tree-pretty-print.c (dump_generic_node): Likewise.
6780 * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
6781 (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
6782 * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
6783
6784 * stmt.c (struct stmt_status): Remove x_last_expr_type,
6785 x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
6786 (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
6787 (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove
6788 all the bits that tracked last_expr.
6789 (expand_end_bindings): Don't track last_expr.
6790 (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
6791 (clear_last_expr): Remove.
6792 (expand_asm): Don't call it.
6793 (expand_asm_operands, expand_end_cond): Likewise.
6794 (expand_naked_return, expand_null_return_1): Likewise.
6795 * c-typeck.c (c_begin_compound_stmt): Likewise.
6796 * cfgexpand.c (expand_block): Use expand_expr_stmt.
6797 * expr.c (expand_expr_real_1): Likewise.
6798 * tree.h: Update prototypes.
6799
6800 * function.h (struct sequence_stack): Remove sequence_rtl_expr.
6801 (struct emit_status): Remove sequence_rtl_expr.
6802 (struct function): Remove x_rtl_expr_chain.
6803 (seq_rtl_expr, rtl_expr_chain): Remove.
6804 * function.c (struct temp_slot): Remove rtl_expr.
6805 (assign_stack_temp_for_type): Don't set it.
6806 (free_temp_slots, pop_temp_slots): Don't check it.
6807 (free_after_compilation): Don't clear x_rtl_expr_chain.
6808 (fixup_var_refs): Don't search it.
6809 (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
6810 * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
6811 or seq_rtl_expr.
6812 (push_topmost_sequence): Likewise.
6813 (end_sequence, init_emit): Likewise.
6814 (start_sequence_for_rtl_expr): Remove.
6815 * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
6816 * rtl.h (preserve_rtl_expr_result): Remove.
6817
6818 2004-07-02 Kazu Hirata <kazu@cs.umass.edu>
6819
6820 * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
6821 tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
6822 typos.
6823
6824 2004-07-02 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
6825
6826 * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
6827 (STANDARD_STARTFILE_PREFIX_2): Define.
6828 (standard_startfile_prefix_1): Initialize to
6829 STANDARD_STARTFILE_PREFIX_1.
6830 (standard_startfile_prefix_2): Initialize to
6831 STANDARD_STARTFILE_PREFIX_2.
6832 * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
6833 (STANDARD_STARTFILE_PREFIX_1): Define.
6834 (STANDARD_STARTFILE_PREFIX_2): Define.
6835 * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
6836 (STANDARD_STARTFILE_PREFIX_2): Document.
6837
6838 2004-07-01 Richard Henderson <rth@redhat.com>
6839
6840 * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
6841 in order to disable scalarization. Instead set a flag and wait
6842 for a candidate decl.
6843
6844 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
6845
6846 * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
6847 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
6848 Use terminology "testsuite" and "enumerated".
6849
6850 2004-07-01 Richard Henderson <rth@redhat.com>
6851
6852 * dwarf2out.c (reg_save): Use INVALID_REGNUM.
6853 (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
6854 (initial_return_save): Likewise.
6855 (flush_queued_reg_saves): Remap register numbers.
6856 (dwarf2out_return_reg): Likewise.
6857
6858 2004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6859
6860 * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
6861
6862 * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
6863 access functions for lower bound and element size and only output
6864 if lower bound nonzero or element size not same as that of type.
6865 (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
6866
6867 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
6868
6869 * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
6870
6871 2004-07-01 Per Bothner <per@bothner.com>
6872
6873 * final.c (final): Fix typo reported by Aaron W. LaFramboise.
6874
6875 2004-07-01 Jakub Jelinek <jakub@redhat.com>
6876
6877 * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
6878 bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's
6879 first operand. Don't optimize if the bitfield is volatile.
6880
6881 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
6882
6883 * c-pretty-print.c (pp_c_postfix_expression): Handle
6884 floating-point comparison operators.
6885 (pp_c_expression): Pass floating-point comparison
6886 operators to pp_c_postfix_expression.
6887
6888 2004-07-01 Roger Sayle <roger@eyesopen.com>
6889
6890 * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
6891 rtx_cost instead of "had_mult" to determine whether the transformed
6892 expression is cheaper than the original.
6893
6894 2004-07-01 Jerry Quinn <jlquinn@optonline.net>
6895
6896 * alias.c (get_alias_set, canon_rtx, get_addr,
6897 nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
6898 Use MEM_P.
6899 * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
6900 expand_builtin): Likewise.
6901 * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
6902 Likewise.
6903 * combine.c (can_combine_p, combinable_i3pat, try_combine,
6904 find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
6905 rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
6906 record_dead_and_set_regs_1, get_last_value_validate,
6907 mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
6908 * cse.c (check_dependence, canon_hash, equiv_constant,
6909 gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
6910 cse_around_loop, cse_check_loop_start, cse_set_around_loop,
6911 count_reg_usage): Likewise.
6912 * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
6913 cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
6914 cselib_record_sets): Likewise.
6915 * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
6916 dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
6917 * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
6918 * df.c (df_uses_record): Likewise.
6919 * dojump (do_jump): Likewise.
6920 * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
6921 loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
6922 decl_start_label): Likewise.
6923 * emit-rtl.c (gen_complex_constant_part, gen_highpart,
6924 operand_subword, change_address_1, make_safe_from): Likewise.
6925 * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
6926 stabilize, force_not_mem): Likewise.
6927 * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
6928 expand_mult_const, expand_divmod, emit_store_flag): Likewise.
6929 * expr.c (convert_move, convert_modes, emit_block_move,
6930 emit_group_load, emit_group_store, clear_storage, emit_move_insn,
6931 emit_move_insn_1, expand_assignment, store_expr,
6932 store_constructor_field, store_constructor, store_field,
6933 force_operand, safe_from_p, expand_expr_real_1, expand_increment):
6934 Likewise.
6935 * final.c (cleanup_subreg_operands, alter_subreg,
6936 get_mem_expr_from_op): Likewise.
6937 * flow.c (notice_stack_pointer_modification_1,
6938 init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
6939 Likewise.
6940 * function.c (mark_temp_addr_taken, preserve_temp_slots,
6941 preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
6942 optimize_bit_field, flush_addressof, purge_addressof_1,
6943 instantiate_decl, instantiate_virtual_regs_1, assign_parms,
6944 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
6945 keep_stack_depressed): Likewise.
6946 * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
6947 noce_process_if_block, find_memory): Likewise.
6948 * integrate.c (subst_constants, allocate_initial_values): Likewise.
6949 * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
6950 update_equiv_regs): Likewise.
6951 * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
6952 maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
6953 * optabs.c (expand_abs, emit_unop_insn): Likewise.
6954 * passes.c (rest_of_handle_final): Likewise.
6955 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
6956 move2add_note_store): Likewise.
6957 * ra-build.c (detect_remat_webs): Likewise.
6958 * ra-debug.c (dump_static_insn_cost): Likewise.
6959 * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
6960 * recog.c (validate_change, apply_change_group, cancel_changes,
6961 validate_replace_rtx_1, general_operand, register_operand,
6962 nonmemory_operand, push_operand, pop_operand, memory_operand,
6963 indirect_operand, asm_operand_ok, offsettable_memref_p,
6964 offsettable_nonstrict_memref_p, constrain_operands,
6965 store_data_bypass_p): Likewise.
6966 * reg-stack.c (subst_stack_regs_pat): Likewise.
6967 * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
6968 copy_cost, reg_scan_mark_refs): Likewise.
6969 * regmove.c (optimize_reg_copy_3, stack_memref_p,
6970 combine_stack_adjustments_for_block): Likewise.
6971 * regrename.c (copyprop_hardreg_forward_1): Likewise.
6972 * reload.c (can_reload_into, push_reload, decompose, immune_p,
6973 find_reloads, find_reloads_address, find_reloads_address_1,
6974 reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
6975 find_equiv_reg): Likewise.
6976 * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
6977 reload_as_needed, choose_reload_regs, emit_input_reload_insns,
6978 do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
6979 delete_address_reloads): Likewise.
6980 * resource.c (mark_referenced_resources): Likewise.
6981 * rtlanal.c (get_jump_table_offset, count_occurrences,
6982 reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
6983 reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
6984 num_sign_bit_copies1): Likewise.
6985 * rtlhooks.c (gen_lowpart_general): Likewise.
6986 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
6987 * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
6988 sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
6989 sdbout_global_decl): Likewise.
6990 * simplify-rtx.c (simplify_subreg): Likewise.
6991 * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
6992 expand_anon_union_decl, expand_end_case_type): Likewise.
6993 * unroll.c (calculate_giv_inc): Likewise.
6994 * var-tracking.c (stack_adjust_offset_pre_post,
6995 bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
6996 add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
6997 vt_add_function_parameters): Likewise.
6998 * varasm.c (make_var_volatile, notice_global_symbol,
6999 assemble_external, decode_addr_const, mark_weak,
7000 default_encode_section_info): Likewise.
7001
7002 2004-07-01 Steven Bosscher <stevenb@suse.de>
7003
7004 * stmt.c (check_seenlabel): Remove.
7005 (pushcase, pushcase_range, expand_end_case_type): Don't call it.
7006
7007 2004-07-01 Richard Henderson <rth@redhat.com>
7008
7009 * function.h (struct function): Remove x_function_call_count.
7010 (function_call_count): Remove.
7011 * calls.c (expand_call): Don't set it.
7012 * integrate.c (copy_rtx_and_substitute): Likewise.
7013
7014 * function.h (struct function): Remove x_cleanup_label.
7015 (cleanup_label): Remove.
7016 * stmt.c (expand_value_return): Don't use it.
7017 * function.c (free_after_compilation): Don't set it.
7018 (expand_function_start): Likewise. Remove parms_have_cleanups arg.
7019 * cfgexpand.c (tree_expand_cfg): Update call.
7020 * tree.h (expand_function_start): Update decl.
7021
7022 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
7023
7024 PR c/1027
7025 * c-lang.c (c_initialize_diagnostics): Move from here ...
7026 * c-objc-common.c: ... to here. Include "c-pretty-print.h".
7027 (c_tree_printer): Use pretty-printer to format %T.
7028 * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
7029 before '*' if not C++.
7030 (pp_c_direct_abstract_declarator): Don't try to print array upper
7031 bound for flexible array members.
7032 * c-tree.h: Include "diagnostic.h".
7033 (c_initialize_diagnostics): Declare.
7034 * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
7035 * c-format.c (format_type_warning): New function. Improve
7036 diagnostics for incorrect format argument types.
7037 (check_format_types): Use it. Add two parameters. Use the
7038 TYPE_MAIN_VARIANT of wanted_type.
7039 (check_format_info_main): Pass new parameters to
7040 check_format_types.
7041 (struct format_wanted_type): Update comment.
7042
7043 2004-07-01 Nick Clifton <nickc@redhat.com>
7044
7045 * target.h (struct gcc_target): Add new field to struct cxx:
7046 import_export_class.
7047 * target-def.h (TARGET_CXX): Initialise the new field.
7048 (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
7049 the new field.
7050 * doc/tm.texi: Document the new target hook.
7051
7052 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
7053
7054 * builtins.c (fold_builtin_classify): Fix typo.
7055
7056 2004-07-01 Richard Henderson <rth@redhat.com>
7057
7058 * function.c (identify_blocks, identify_blocks_1): Remove.
7059 * function.h (identify_blocks): Remove.
7060 * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
7061
7062 2004-07-01 Paolo Bonzini <bonzini@gnu.org>
7063
7064 * builtins.c (fold_builtin_classify): New.
7065 (fold_builtin_unordered_cmp): Fix commentary.
7066 (fold_builtin): Use it.
7067 * builtins.def: Define builtins for isnan,
7068 isnanf, isnanl, finite, finitef, finitel,
7069 isinf, isinff, isinfl.
7070
7071 2004-07-01 Richard Henderson <rth@redhat.com>
7072
7073 * function.h (struct function): Remove dont_emit_block_notes.
7074 * gimple-low.c (lower_function_body): Don't set it.
7075 * cfgexpand.c (expand_block): Don't check it.
7076 * cfglayout.c (insn_locators_initialize): Likewise.
7077 * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
7078 * passes.c (rest_of_compilation): Likewise.
7079 * stmt.c (expand_start_bindings_and_block): Likewise.
7080 (expand_end_bindings): Likewise.
7081
7082 2004-07-01 Richard Henderson <rth@redhat.com>
7083
7084 * cgraph.h (cgraph_build_static_cdtor): Declare.
7085 * cgraphunit.c (cgraph_build_static_cdtor): New.
7086 * c-objc-common.c (build_cdtor): Use it.
7087 * coverage.c (create_coverage): Likewise.
7088 * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
7089 * optabs.c (init_optabs): Don't set gcov_init_libfunc.
7090
7091 See ChangeLog.11 for earlier changes.
This page took 0.328974 seconds and 5 git commands to generate.