1 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
3 * timevar.def (TV_SCEV_CONST): New timevar.
4 * tree-optimize.c (init_tree_optimization_passes): Add
6 * tree-pass.h (pass_scev_cprop): Declare.
7 * tree-scalar-evolution.c (scev_const_prop): New function.
8 * tree-scalar-evolution.h (scev_const_prop): Declare.
9 * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
11 * tree-cfg.c (replace_uses_by): Export.
12 * tree-flow.h (replace_uses_by): Declare.
14 2005-05-17 Mike Stump <mrs@apple.com>
16 Yet more Objective-C++...
18 * c-common.h (objc_finish_try_stmt): Add.
19 (objc_build_synchronized): Add.
20 (objc_generate_write_barrier): Add.
21 * stub-objc.c (objc_build_synchronized): Add return value.
22 (objc_finish_try_stmt): Likewise.
23 (objc_generate_write_barrier): Add.
25 * c-common.h (objc_rewrite_function_call): Add.
26 * c-typeck.c (build_function_call): Allow objc to rewrite
28 (build_modify_expr): Allow objc to generate write barriers.
29 * c.opt (Wassign-intercept): Add.
30 (Wstrict-selector-match): Add.
31 (fobjc-call-cxx-cdtors): Add.
32 (fobjc-direct-dispatch): Add.
34 * dbxout.c (get_lang_number): Add Objective-C++ support.
35 * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
36 (-Wstrict-selector-match): Likewise.
37 (-fobjc-direct-dispatch): Likewise.
38 (-Wassign-intercept): Likewise.
39 (Overall Options): Likewise.
40 * gengtype.c (get_output_file_with_visibility): Likewise.
41 * stub-objc.c (objc_rewrite_function_call): Add.
42 * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
44 * c-common.c (flag_objc_exceptions): Remove.
45 (flag_objc_sjlj_exceptions): Remove.
46 * c-decl.c (objc_mark_locals_volatile): Don't change decls
48 * c-opts.c (c_common_handle_option, case
49 OPT_fobjc_exceptions): Remove.
50 (case OPT_fobjc_sjlj_exceptions): Remove
51 * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
52 (fobjc-exceptions): Likewise.
53 (fobjc-sjlj-exceptions): Likewise.
54 * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
55 (OFFS_ASSIGNIVAR_FAST): Add.
57 2005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
59 * config/sparc/sparc.md (movhi): Do not test constness
62 (movdi): Unconditionally accept zero as second operand
63 when the first is memory.
64 (movdi_insn_sp32): Handle above case.
65 (DImode splitter): Use predicates.
66 (DImode splitter): Use const_zero_operand predicate.
67 (movsf_insn): Swap 2 alternatives.
69 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
71 * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
72 expand_simple_operations to bases of the ivs.
73 (tree_int_cst_sign_bit): Export.
74 * tree-flow.h (expand_simple_operations): Declare.
75 * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
76 tree_int_cst_sign_bit.
77 (expand_simple_operations): Export.
78 * tree.h (tree_int_cst_sign_bit): Declare.
80 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
82 * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
84 (replace_uses_by): New function.
85 (tree_merge_blocks): Eliminate the phi nodes in the merged block.
86 * tree-flow.h (fold_stmt_inplace): Declare.
87 * tree-ssa-ccp.c (fold_stmt_inplace): New function.
88 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
89 info after cfg cleanup.
91 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
93 * cfgloop.h (just_once_each_iteration_p): Declaration changed.
94 * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
97 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
99 * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
100 * ggc-zone.c (ggc_alloc_zone_1): Ditto.
101 * timevar.c (timevar_ggc_mem_total): New variable.
102 (GGC_MEM_BOUND): New constant.
103 (get_time): Record ggc memory status.
104 (timevar_accumulate): Accumulate amount of ggc memory.
105 (timevar_print): Print consumption of ggc memory.
106 * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
107 TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
108 TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
109 * timevar.h (struct timevar_time_def): Add ggc_mem field.
110 (timevar_ggc_mem_total): Declare.
112 2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
114 * tree-into-ssa.c (update_ssa): Clean up by shortening the
117 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
119 * config/cris/cris.md (ncond, ocode, rcond): Remove separate
121 ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
122 ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
123 ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
124 ("s<ocond:code>"): Rename from respectively "b<ncond>",
125 "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
126 "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
127 "s<rcond>" and "s<ocond>".
128 ("b<ocond:code>", "*b<ocond:code>_reversed")
129 ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
130 output statement section.
132 2005-05-17 Roger Sayle <roger@eyesopen.com>
134 * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
136 2005-05-17 Steven Bosscher <stevenb@suse.de>
137 Stuart Hastings <stuart@apple.com>
138 Jan Hubicka <jh@suse.cz>
139 Dale Johannesen <dalej@apple.com>
141 * cgraph.h (cgraph_node): Add 'lowered' state.
142 (cgraph_lower_function): Declare.
143 * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
144 (cgraph_lower_function): New function.
145 (cgraph_create_edges): Deal with lowered function bodies.
146 (verify_cgraph_node): Likewise.
147 (cgraph_analyze_function): Do lowering job.
148 (cgraph_build_static_cdtor): Likewise.
149 * function.h (struct function): Add saved_eh and saved_cfg.
150 * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
151 * tree-cfg.c (fold_cond_expr_cond): Export.
152 * tree-flow.h (fold_cond_expr_cond): Declare.
153 * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
155 (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
156 in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
157 callee_cfun, block, eh_region, eh_region_offset.
158 (inlining_p): New predicate.
159 (remap_decl): Update for new inline_data; declare newly created inline
160 vars in low gimple way.
161 (copy_body_r): Update for new datastructure, simplify some of handling
162 when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
163 deal with RESX_EXPRs.
165 (copy_edges_for_bb): Likewise.
167 (copy_cfg_body): New.
168 (copy_generic_body): Rewrite to work on low gimple.
169 (copy_body): Turn into simple wrapper around copy_cfg_body.
170 (setup_one_parameter): Insert new statements into given basic block.
171 (initialize_initialized_parameters): Likewise, reorganize way things are
173 (declare_return_variable): Update for new inline data datastructure.
174 (inline_forbidden_p): Work on low gimple.
175 (estimate_num_insns): Likewise.
176 (expand_call_inline): Work on CFG.
177 (push_cfun, pop_cfun): New functions.
178 (cfun_stack): New stack.
179 (add_lexical_block): New function.
180 (gimple_expand_calls_inline): Work on basic block.
181 (optimize_inline_calls): Likewise.
182 (clone_body, save_body, unsave_ewpr_now): Update for new
184 (declare_inline_vars): Work on block instead of bind_expr.
185 (inlining_p): New predicate.
186 * tree-inline.h (push_cfun, pop_cfun): Declare.
187 * tree-optimize.c: Include except.h
188 (all_lowering_passes): New variable.
189 (execute_fixup_cfg, pass_fixup_cfg): New pass.
190 (init_tree_optimization_passes): Move some to all_lowering_passes.
191 (tree_lowering_passes): New function.
192 (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
194 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
196 * unwind-dw2-fde-darwin.c: Include tsystem.h.
198 2005-05-17 Jeff Law <law@redhat.com>
200 * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
201 * tree-ssa-forwprop.c: Include langhooks.h.
202 (forward_propagate_addr_expr_into_variable_array_index): New.
203 (forward_propagate_addr_expr): New.
204 (tree_ssa_forward_propagate_single_use_vars): Loop over all
205 the statements in the block instead of just the last statement.
206 Call forward_propagate_addr_expr as needed.
207 (pass_forwprop): Update the SSA graph after forward propagation is
210 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
212 * unwind-dw2-fde-glibc.c (base_from_cb_data,
213 _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
215 * unwind-dw2-fde.c (__deregister_frame_info_bases,
216 base_from_object, fde_split, end_fde_sort): Likewise.
217 * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
218 execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
219 uw_init_context_1): Likewise.
220 * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
221 _Unwind_Resume_or_Rethrow): Likewise.
222 * unwind-pe.h (__gxx_abort): Do not define.
223 (size_of_encoded_value, base_of_encoded_value,
224 read_encoded_value_with_base): Use gcc_unreachable.
225 * unwind.h (_Unwind_GetTextRelBase): Likewise.
227 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
229 * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
230 (cfi_end): New macros.
231 (RETLDM): Use cfi_pop. Expect an eight byte stack frame.
232 (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
233 an eight byte stack frame.
234 (__NR_tkill): Define.
235 (__div0): Use gettid tkill on GNU/Linux.
236 (_arm_return): Add CFI.
237 (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
239 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
241 * configure.ac: Remove spaces around assignment to
243 * configure: Regenerated.
245 2005-05-17 David Edelsohn <edelsohn@gnu.org>
247 * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
248 * config/rs6000/rs6000.c (rs6000_explicit_options): Add
250 (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
251 Modify aix_struct_return variable, not target_flags.
252 (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
253 (rs6000_return_in_memory): Test aix_struct_return.
254 * config/rs6000/rs6000.opt (maix-struct-return): Convert to
255 independent variable. Report mxl-compat.
257 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
259 * config/bfin/bfin.md (eh_return): Add missing DONE.
261 2005-05-17 Ian Lance Taylor <ian@airs.com>
263 * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
265 (mode_attr_index): Remove check for defined attribute. Remove
266 infile parameter. Change all callers.
267 (apply_mode_maps): Add unknown parameter. Change caller. Always
268 return after finding attribute.
269 (apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
271 (apply_macro_traverse): Set mtd->unknown_mode_attr.
272 (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
273 attribute used for a mode.
275 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
277 * tree-ssa-math-opts.c: New file.
279 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
281 * Makefile.in: Add tree-ssa-math-opts.c.
282 * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
283 * fold-const.c (distribute_real_division): New.
284 (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
285 * tree-pass.h (pass_cse_reciprocals): New.
286 * tree-optimize.c (init_tree_optimization_passes): Run it.
287 * doc/passes.texi: Document the new pass.
289 2005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
292 * builtins.c (fold_builtin_constant_p): Handle
293 &"string cst"[0] as constant.
295 2005-05-17 Richard Henderson <rth@redhat.com>
297 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
299 2005-05-17 Jakub Jelinek <jakub@redhat.com>
302 * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
303 src2 if src2 has been split.
305 PR tree-optimization/21610
306 * c-typeck.c (decl_constant_value_for_broken_optimization): If not
307 returning DECL, call unshare_expr.
309 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
311 * config/cris/cris.md: Unquote preparation and output statements.
312 (BWD, WD, BW): New, mode-macros.
313 (S, s, m, mm, nbitsm1): New, mode-attrs.
314 (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
315 (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
317 ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
318 ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
319 ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
321 ("cmp<mode>"): Replace "cmphi" and "cmpqi".
322 ("movdi"): Move misplaced head comment regarding necessity of
323 movdi from movsi to here.
324 ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
326 ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
327 ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
328 "*mov_sideqi_biap_mem".
329 ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
331 ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
332 "*clear_sidehi_biap" and "*clear_sideqi_biap".
333 ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
335 ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
336 "*ext_sidehisi_biap".
337 ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
339 ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
340 ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
341 ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
342 ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
343 ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
345 ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
346 "*op_sidehi_biap" and "*op_sidesi_biap".
347 ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
349 ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
350 "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
351 ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
352 "*op_swap_sidehi" and "*op_swap_sidesi".
353 ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
354 in the N alternative of "subqi3".
355 ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
356 "*extophisi_side_biap".
357 ("*extop<mode>si_side"): Replace "*extopqisi_side" and
359 ("*extop<mode>si_swap_side_biap"): Replace
360 "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
361 ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
362 "*extophisi_swap_side".
363 ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
364 ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
366 ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
367 "mulqihi3", "mulhisi3" and "mulhisi3".
368 ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
369 ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
371 ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
372 ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
373 ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
374 ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
375 ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
376 ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
377 "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
378 ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
379 "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
380 ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
381 ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
382 ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
384 ("abs<mode>2"): Replace "abshi2" and "absqi2".
385 ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
387 ("b<ocond>"): Replace "bgt" and "ble".
388 ("b<rcond>"): Replace "blt" and "bge".
389 ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
390 "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
392 ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
394 ("*b<rcond>_reversed"): Replace "*blt_reversed" and
396 ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
398 ("s<rcond>"): Replace "sge" and "slt".
399 ("s<ocond>"): Replace "sgt" and "sle".
400 ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
401 [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
402 ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
403 clear.w [rx=rx+i] and clear.b [rx=rx+i].
405 2005-05-17 Jakub Jelinek <jakub@redhat.com>
407 * varasm.c (struct constant_descriptor_tree): Add hash field.
408 (const_desc_hash): Just return hash field.
409 (const_desc_eq): If hash values are different, return 0 immediately.
410 (output_constant_def): Compute hash field of temporary key, use
411 htab_find_slot_with_hash instead of htab_find_slot. Set hash in
412 newly built constant descriptor.
413 (lookup_constant_def): Compute hash field of temporary key, use
414 htab_find_with_hash instead of htab_find.
416 2005-05-16 Richard Henderson <rth@redhat.com>
418 * config/i386/sse.md (mulv4si3): New.
420 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
422 * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
423 tests for noncanonical versions of reg+constant and
426 2005-05-16 Richard Henderson <rth@redhat.com>
427 Steven Bosscher <stevenb@suse.de>
430 * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
431 maybe_clean_eh_stmt; take old stmt parameter. Update EH
432 region data structure to match replacement.
433 * tree-flow.h: Update to match.
434 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
435 * tree-ssa-dom.c (optimize_stmt): Likewise.
436 * tree-ssa-pre.c (eliminate): Likewise.
437 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
439 2005-05-16 Caroline Tice <ctice@apple.com>
441 * bb-reorder.c (verify_hot_cold_block_grouping): Replace
442 internal_error with gcc_assert.
443 * dwarf2out.c (dwarf2out_switch_text_section): Likewise.
444 * function.h (struct function): Remove space between "*" and
446 * varasm.c (initialize_cold_section_name): Add gcc_assert;
447 modify to use alloca.
448 (unlikely_text_section): Add check for flag_function_sections.
449 (assemble_start_function): Move call to resolve_section, so it
450 comes before first call to unlikely_text_section.
451 (assemble_end_function): Add test and call to function_section
454 2005-05-16 Roger Sayle <roger@eyesopen.com>
456 * c-common.c (c_common_truthvalue_conversion): Use fold_build2
457 instead of build_binary_op when performing code transformations
458 to avoid error messages about constructs not it the user's code.
460 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
462 * tree-ssa-pre.c: Fix a comment typo.
464 2005-05-16 Richard Henderson <rth@redhat.com>
467 * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
468 load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
469 add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
470 load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
471 add_tprel22): Remove mode from symbolic operand.
473 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
475 * optc-gen.awk: Include intl.h after the externally-provided files.
477 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
479 * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
480 folding a COND_EXPR_COND in a nondestructive manner.
482 2005-05-16 Fariborz Jahanian <fjahanian@apple.com>
484 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
485 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
486 New values for vec_select definitions and bitmask for element
489 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
491 * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
492 Change the type to VEC(rtx,gc)*.
493 (mem_loc_descriptor, add_const_value_attributes,
494 dwarf2out_init): Adjust uses of used_rtx_varray.
496 * tree-data-ref.c (compute_all_dependences): Change the type
497 of dependence_relations to VEC(ddr_p,heap)**.
498 (compute_data_dependences_for_loop): Change the type of
499 allrelations to VEC(ddr_p,heap)*.
501 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
503 * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
504 system.h, coretypes.h and tm.h.
505 (options.o): Update dependencies accordingly.
506 * optc-gen.awk: Allow header_name to be a list of filenames.
507 Handle the "Condition" flag.
508 * opts.h (CL_DISABLED): New flag.
509 * opts.c (handle_option): Print an error for CL_DISABLED options.
510 * doc/options.texi: Document the "Condition" option flag.
512 2005-05-16 Paolo Bonzini <bonzini@gnu.org>
514 * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
516 2005-05-15 Roger Sayle <roger@eyesopen.com>
518 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
519 check for TREE_OVERFLOW on INTEGER_CST trees.
520 * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
521 CONSTANT_CLASS_P tree nodes.
523 2005-05-15 H.J. Lu <hongjiu.lu@intel.com>
526 * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
528 2005-05-15 Daniel Berlin <dberlin@dberlin.org>
530 Fix PR tree-optimization/21576
532 * tree-ssa-pre.c (expression_node_pool): New pool.
533 (comparison_node_pool): Ditto.
534 (list_node_pool): Ditto.
535 (pool_copy_list): New function.
536 (phi_translate): Handle CALL_EXPR.
537 (valid_in_set): Ditto.
538 (create_expression_by_pieces): Ditto.
539 (insert_into_preds_of_block): Ditto.
541 (compute_avail): Ditto.
542 (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
543 (can_value_number_call): New function.
544 (find_leader): Update comment.
545 (init_pre): Create new pools.
546 (fini_pre): Free new pools.
547 (pass_pre): Add TODO_update_ssa for the future when we are going
549 * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
550 (set_value_handle): Ditto.
551 (get_value_handle): Ditto.
553 2005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
555 * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
557 2005-05-15 Andreas Jaeger <aj@suse.de>
559 * gcc.c (pfatal_pexecute): Remove unused local function.
561 2005-05-15 Richard Sandiford <rsandifo@redhat.com>
563 * optc-gen.awk: Remove excess indentation.
564 * opth-gen.awk: Likewise.
566 2005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
568 * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
569 of basic_block_info. Call init_flow and find_basic_blocks
570 before dbr_schedule if needed.
572 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
574 * tree-optimize.c (init_tree_optimization_passes): Move
575 pass_cd_dce in place of the last pass_dce.
577 PR tree-optimization/21563
578 * tree-vrp.c (compare_value): Return boolean_false_node when
579 SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
580 strictly larger than CST.
582 2005-05-14 Nathan Sidwell <nathan@codesourcery.com>
583 Jan-Benedict Glaw <jbglaw@lug-owl.de>
585 * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
587 (rev_cond_name) Likewise.
588 (vax_float_literal) Likewise.
589 * config/vax/vax.md: Likewise.
591 2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
593 * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
594 registers and use them (specifically the stack pointer).
595 * config/vax/vax.h: Use above defines right here.
597 * config/vax/vax.c: (override_options) Remove 'register' keyword.
598 (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
599 (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
601 * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
602 mostly removal of trailing spaces...
603 * config/vax/vax-modes.def: Remove trailing whitespace.
605 * config/vax/elf.h: Update whitespace.
607 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
610 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
611 * fold-const.c (fold_indirect_ref_1): Avoid removing
612 NOP_EXPRs with type qualifiers like const.
614 2005-05-14 Jan Hubicka <jh@suse.cz>
616 Patch by Richard Henderson:
617 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
618 Handle RESX expressions properly.
620 * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
621 (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
622 (remove_stmt_from_eh_region_fn): Likewise.
624 * tree-cfg.c (execute_warn_function_return): Break out noreturn
626 (execute_warn_function_noreturn): ... here.
627 (pass_warn_function_noreturn): New pass.
628 * tree-pass.h (pass_warn_function_noreturn): Declare
629 * tree-optimize.c (init_tree_optimization_passes): Move return
630 warnings early and add noreturn warnings at place of previous
633 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
635 * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
636 root_var_init, type_var_init): Use VEC instead of VARRAY.
637 * tree-ssa-live.h (tree_partition_associator_d): Change the
638 type of trees to VEC(tree,heap)*.
639 (tpa_tree): Use VEC instead of VARRAY.
641 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
643 * fold-const.c (div_if_zero_remainder): New function.
644 (try_move_mult_to_index): Use it.
646 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
648 * tree-eh.c (leh_tf_state): Change the type of dest_array to
650 (maybe_record_in_goto_queue, lower_try_finally_onedest,
651 lower_try_finally_copy, lower_try_finally_switch,
652 lower_try_finally): Use VEC instead of VARRAY.
654 2005-05-14 Hans-Peter Nilsson <hp@axis.com>
656 * config/cris/cris.h (Node: Register Classes): Remove obsoleted
657 comment regarding defined register classes.
658 (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
660 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
662 * tree-optimize.c (init_tree_optimization_passes): Move
663 pass_merge_phi before the first pass_dominator.
665 2005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
667 * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
670 2005-05-13 Josh Conner <jconner@apple.com>
672 * config/arm/arm.c (arm_size_return_regs): New.
673 (thumb_unexpanded_epilogue): replace in-line calculation
674 of return registers with call to arm_size_return_regs.
675 (use_return_insn): Include test of which registers are
676 being used to hold return values, to accommodate
677 vector return values.
679 2005-05-11 Aldy Hernandez <aldyh@redhat.com>
681 * config/rs6000/sysv4.opt (mlittle): Handle.
683 * config/rs6000/rs6000.c (rs6000_handle_option): Set
684 target_flags_explicit when appropriate.
686 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
689 * optabs.c (no_conflict_data): New struct.
690 (no_conflict_move_test): New function.
691 (emit_no_conflict_block): Use it.
693 2005-05-13 Adam Nemet <anemet@lnxw.com>
695 * doc/invoke.texi (Debugging Options): Option
696 -fdump-translation-unit only works with C++ now.
698 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
700 Replace calls to abort in CRIS port.
701 * config/cris/cris.h (CRIS_ASSERT): New macro.
702 * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
703 internal_error instead of abort.
704 ("movsi"): Ditto. Unquote preparation statement section.
705 ("call", "call_value"): Ditto, but use gcc_assert where
706 appropriate. Tweak comments.
707 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
709 (cris_op_str): Call internal_error, not abort.
710 (cris_print_operand): Tweak "abort" reference to "die" in comment.
711 (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
712 (cris_notice_update_cc): Call internal_error, not abort.
713 (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
714 (cris_emit_movem_store, cris_asm_output_symbol_ref)
715 (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
716 (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
717 ENABLE_CHECKING-guarded abort call.
718 (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
719 Use internal_error at end of test-chain.
721 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
723 PR rtl-optimization/20769:
724 * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
725 pattern emitted by expand_nl_goto_receiver.
728 * integrate.c (allocate_initial_values): Update register liveness
731 2005-05-13 Josh Conner <jconner@apple.com>
733 * arm.c (arm_return_in_memory): Add handling for vector return types.
735 2005-05-13 David Ung <davidu@mips.com>
737 * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
739 * config/mips/mips.c: Add 4km alias.
740 * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
741 * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
744 2005-05-13 Jan Hubicka <jh@suse.cz>
746 * c-decl.c (finish_function): Suppress "control reaches end of
747 non-void function" when "no return statement in function
748 returning non-void" is issued.
750 * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
751 * tree-optimize.c (pass_gimple): Kill.
752 (init_tree_optimization_passes): Kill pass_gimple.
753 * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
754 * tree-dump.c (dump_files): Rename .generic to .gimple.*
756 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
758 PR rtl-optimization/20756:
759 * basic-block.h (PROP_DEAD_INSN): Define.
760 * flow.c (propagate_one_insn): Set during mark_set_regs call
762 (mark_set_1): Emit a clobber when we are about to delete a dead insn
763 that kills a live register.
765 2005-05-13 Adrian Straetling <straetling@de.ibm.com>
767 * config/s390/s390.md: ("DBL"): New mode attribute.
768 ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
769 ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
770 ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
772 2005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
774 * c-format.c (check_format_arg): Handle string literals of
775 the form &"string"[offset].
777 * g++.dg/warn/format4.C: New testcase.
779 2005-05-13 Kazu Hirata <kazu@cs.umass.edu>
781 * config/mips/3000.md, config/mips/4000.md,
782 config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
783 config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
784 config/mips/generic.md, config/pdp11/pdp11.md,
785 config/sh/crt1.asm, config/sh/lib1funcs.asm,
786 config/sh/sh-modes.def, config/sh/sh-protos.h,
787 config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
789 2005-05-13 Richard Henderson <rth@redhat.com>
791 * function.c (instantiate_virtual_regs_in_insn): Do not simplify
792 addition to move unless dest is a register. Do not skip
793 instantiation in dest on addition simplification.
795 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
797 * config/cris/cris.c (cris_print_operand) <case 'H'; case
798 CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
799 output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
801 2005-05-13 Jan Hubicka <jh@suse.cz>
803 * basic-block.h (FOR_ALL_BB_FN): New macro.
804 (init_flow): Initialize cfg structure.
805 * function.c (allocate_struct_function): Do not initialize cfg structure.
806 * tree-cfg.c (init_empty_tree_cfg): Break out from ...
807 (build_tree_cfg): ... here.
808 * tree-flow.h (init_empty_tree_cfg): Declare.
810 2005-05-12 Steven Bosscher <stevenb@suse.de>
812 Fix PR tree-optimization/21520
813 * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
814 to attempt to fold constants.
816 2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
818 * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
819 only when TARGET_ADJUST_UNROLL_MAX is defined.
820 (general_movsrc_operand): Use the C style comment.
821 (ua_offset): Use prototype.
823 2005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
825 * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
826 (struct hmr_data, hoist_memory_reference, memref_del,
827 struct fmrv_data): Removed.
828 (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
829 (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
831 (find_more_ref_vops): Traverse the list of memory references.
832 (determine_lsm_loop): Work with the list of memory references instead
833 of traversing the hashtable.
835 2005-05-12 Steven Bosscher <stevenb@suse.de>
836 Stuart Hastings <stuart@apple.com>
837 Jan Hubicka <jh@suse.cz>
839 * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
840 duplicate_eh_regions): New functions, based on old
841 implementation removed with RTL inliner.
842 (reachable_next_level): Modify behaviour pre-inline.
843 * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
845 * function.h (struct function): Add after_inlining flag.
846 * tree-optimize.c (tree_rest_of_compilation): Set it.
847 * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
849 * tree-cfg.c (label_to_block_fn): Deal with cases where
850 label was never insterted into code.
852 2005-05-12 Zack Weinberg <zack@codesourcery.com>
854 * doc/cpp.texi: Document that #sccs is a synonym for #ident.
856 2005-05-12 Daniel Berlin <dberlin@dberlin.org>
858 Fix PR tree-optimization/21532
859 * tree-ssa-pre.c (create_expression_by_pieces): stmt
860 needs to go onto the inserted_exprs list.
862 2005-05-12 Ian Lance Taylor <ian@airs.com>
864 * c-common.h (statement_code_p): Don't declare.
865 (STATEMENT_CODE_P): Don't define.
866 (INIT_STATEMENT_CODES): Don't define.
867 * c-common.c (statement_code_p): Don't define.
869 2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
871 * config/sparc/sparc.h: Remove dead code.
872 * config/sparc/sparc.c (sparc_compute_frame_size): Use
873 FIRST_PARM_OFFSET for the size of the register window area.
874 (emit_save_regs): Rename into emit_save_or_restore_regs.
875 Add 'action' parameter. Use 4095 as upper bound for the offset.
876 Pass 'action' to save_or_restore_regs.
877 (emit_restore_regs): Delete.
878 (sparc_expand_prologue): Call emit_save_or_restore_regs.
879 (sparc_expand_epilogue): Likewise.
880 * config/sparc/sparc.md (mode macro P): Move.
881 (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
882 (mov<V32:mode> expander): Move to the top of the V32 section.
883 (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
884 (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
885 (sibcall_epilogue): Move.
887 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
890 * arm.c (arm_gen_constant): Sign-extend intermediate values when
891 synthesizing a constant of the difference of two immediates.
893 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
895 * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
896 (negdf2_vfp): Likewise. Convert to define_insn_and_split and split
897 the alternatives using integer registers into the appropriate
900 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
902 * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
903 bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
904 * bitmap.h: Fixed comments.
906 2005-05-11 Richard Henderson <rth@redhat.com>
909 * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
910 (ia64_cannot_force_const_mem): New.
911 (tls_symbolic_operand_type): New.
912 (ia64_legitimate_constant_p): New.
913 (ia64_expand_load_address): Return true on success. Improve
914 checks for when we should not split.
915 (ia64_expand_tls_address): New addend operand. Distribute it
916 as appropriate to the tls_kind. Delay referencing gp.
917 (ia64_expand_move): Split symbolic addend as necessary. Handle
918 tls symbols with addends.
919 * config/ia64/ia64-protos.h: Update.
920 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
922 (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
923 * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
924 (symbolic_operand splitter): Pass everything through
925 ia64_expand_load_address and FAIL or DONE as appropriate.
926 (load_fptr): Only accept after reload.
927 (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
928 load_symptr_low, load_ltoff_dtpmod,
930 (load_dtprel): Only accept tls symbols.
931 (load_dtprel64, load_dtprel22): Likewise.
932 (load_tprel, load_tprel64, load_tprel22): Likewise.
933 (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
934 (add_dtprel): Only accept tls symbols. Canonicalize PLUS.
935 (add_dtprel14, add_dtprel22): Likewise.
936 (add_tprel, add_tprel14, add_tprel22): Likewise.
937 * config/ia64/predicates.md (small_addr_symbolic_operand): New.
938 (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
939 (got_symbolic_operand): Check CONST offsets.
940 (tls_symbolic_operand, ld_tls_symbolic_operand): New.
941 (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
942 (move_operand): Don't handle tls here. Check CONST offsets.
944 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
946 * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
947 Remove hilo_operand check.
948 (rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
949 * config/mips/predicates.md (hilo_operand): Delete.
951 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
953 * config/mips/sr71k.md, config/mips/7000.md: Reformat.
955 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
957 PR tree-optimizer/18472
958 * tree-if-conv.c (tree_if_convert_stmt,
959 if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
961 2005-05-11 Jan Hubicka <jh@suse.cz>
963 * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
964 (GTFILES): add except.h.
965 * except.c (eh_status): Add throw_stmt_table.
966 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
967 * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
968 lookup_stmt_eh_region_fn): Declare.
969 (throw_stmt_node): New structure.
970 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
971 * gengtype.c (open_base_files): Add except.h to inlines.
972 * tree-eh.c (throw_stmt_node): Kill.
973 (record_stmt_eh_region): Update.
974 (add_stmt_to_eh_region_fn): Break out from ...
975 (add_stmt_to_eh_region): ... here.
976 (remove_stmt_from_eh_region_fn): Break out from ...
977 (remove_stmt_from_eh_region): ... here.
978 (lookup_stmt_eh_region_fn): Break out from ...
979 (lookup_stmt_eh_region): ... here.
980 (honor_protect_cleanup_actions): Use build_resx.
981 (lower_try_finally_onedest): Likewise.
982 (lower_try_finally_copy): Likewise.
983 (lower_try_finally_switch): Likewise.
984 (lower_eh_constructs): Update eh table construction.
985 * tree.c (build_resx): New.
986 * tree.h (build_resx): Declare.
988 2005-05-11 H.J. Lu <hongjiu.lu@intel.com>
990 * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
993 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
995 * fold-const.c, libgcov.c: Fix comment typos.
997 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1000 2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
1002 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1003 * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1005 (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1007 2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
1010 * crtstuff.c: Include auto-host.h again, for now.
1012 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1014 * config/mips/24k.md: Remove trailing whitespace.
1016 2005-05-11 David Ung <davidu@mips.com>
1018 * config/mips/mips.md (type): Add imul3.
1019 (length, hazard, may_clobber_hilo): Check for imul3.
1020 (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1021 (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1022 * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1023 for a 3 operand mul and its bypasses.
1024 * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1025 * config/mips/4000.md (r4k_imul): Likewise.
1026 * config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
1027 * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1028 (vr4130_muldi): Likewise.
1029 * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1030 * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1031 * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1032 * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1033 (ir_vr54_imadd_si): Likewise.
1034 * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
1035 * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1036 (rm7_impy_di): Likewise.
1037 * config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
1038 * config/mips/generic.md (generic_imul): Likewise.
1039 * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1040 * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
1042 2005-05-11 J"orn Rennecke <joern.rennecke@st.com>
1044 PR middle-end/20371:
1045 * tree.h (record_layout_info_s): New member prev_packed.
1046 * stor-layout.c (update_alignment_for_field): Fix comment about
1047 KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
1048 we start it properly aligned.
1049 (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1050 to update_alignment_for_field, and recompute it afterwards using
1051 the alignment of the record.
1052 When a packed bitfield precedes an MS bitfield, don't add padding
1053 at the end of the packed bitfield on behalf of the base type of
1054 the packed bit field.
1055 Don't adjust rli->bitpos at the end
1056 of an MS bitfield run if we already adjusted bitpos/offset for an
1057 alignment as large or larger than the bitfield type size.
1058 Take possible record alignment > BIGGEST_ALIGNMENT into account
1059 when calculating actual_align.
1060 Only put packed buit fields into rli->prev_field if they end up
1062 Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1063 Update rli->remaining_in_alignment when we have already started a
1064 run of bit fields and we process a packed bit field.
1066 2005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
1068 * tree-data-ref.c (find_data_references_in_loop): Give up when
1069 the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1070 may embed arbitrary side effects.
1071 Remove the assumption that GIMPLE form contains a single array
1072 access per statement.
1073 When the statement contains virtual operands, fail if it is not
1074 a MODIFY_EXPR or a CALL_EXPR.
1075 Return after the dont know node is inserted.
1077 2005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
1079 * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1081 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1084 PR tree-optimization/19639
1085 * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1086 and generic summands for char* as s * delta, too, folding &a[i]
1087 CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
1088 for comparison of steps. Convert types for index addition.
1089 (fold_binary): Adjust the callers to always dispatch to
1090 try_move_mult_to_index.
1091 * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1092 expr with non-gimple ARRAY_REF offset.
1094 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1096 * fold-const.c (fold_indirect_ref_1): Avoid removing
1097 NOP_EXPRs with type qualifiers like const.
1099 2005-05-11 Richard Henderson <rth@redhat.com>
1102 * c-decl.c (finish_decl): Propagate the completed array type of
1103 a global variable into the binding.
1105 2005-05-10 Matt Kraai <kraai@ftbfs.org>
1107 * Makefile.in (gtype-desc.o, build/genautomata.o)
1108 (build/varray.o): Depend on $(VARRAY_H).
1110 2005-05-10 Diego Novillo <dnovillo@redhat.com>
1112 * tree-optimize.c (init_tree_optimization_passes): Re-organize
1113 optimization passes to do an initial batch of scalar cleanups.
1115 2005-05-10 Ian Lance Taylor <ian@airs.com>
1117 * read-rtl.c (struct macro_traverse_data): Define.
1118 (map_attr_string): New static function, broken out of
1119 apply_macro_to_string.
1120 (mode_attr_index, apply_mode_maps): New static functions.
1121 (apply_macro_to_string): Call map_attr_string.
1122 (apply_macro_to_rtx): Add mode_maps and infile parameters. Change
1124 (apply_macro_traverse): Expect data to point to a struct
1125 macro_traverse_data.
1126 (read_rtx): Add mode_maps local variable. Use mode_traverse_data
1127 to pass data through htab_traverse.
1128 (read_rtx_1): Add mode_maps parameter. Change all callers.
1129 Handle mode names which are attribute strings.
1130 * doc/md.texi (Substitutions): Rename from String Substitutions.
1131 Change references. Document using attributes as modes.
1133 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1135 * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1136 * tree-optimize.c (init_tree_optimization_passes) Swap
1137 pass_ch and pass_profile.
1138 * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1139 here. Remove rewrite_into_loop_closed_ssa call.
1141 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1143 * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1145 (legitimate_reload_constant_p): Add check for const double zero.
1146 * config/s390/s390.md: Add comment for constraint letter 'G'.
1147 ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1148 attributes for new case.
1149 * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1150 s390_const_double_ok_for_constraint_p.
1151 * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1154 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1156 PR tree-optimization/21170
1157 * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1158 rewrite_ssa_into_ssa in comments with update_ssa.
1160 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1162 * tree-ssa-loop-im.c: Include hashtab.h.
1163 (struct mem_ref_loc): New.
1164 (struct mem_ref): Describe the set of references with the same
1166 (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1167 maybe_queue_var, fem_single_reachable_address,
1168 for_each_memref, single_reachable_address,
1169 is_call_clobbered_ref, determine_lsm_reg): Removed.
1170 (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1171 hoist_memory_reference, memref_hash, memref_eq, memref_del,
1172 gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1174 (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1175 (determine_lsm_loop): Rewritten.
1176 (determine_lsm): Do not set stmt uids.
1178 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1180 * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1183 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1185 * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1186 ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1187 ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1189 2005-05-10 Jeff Law <law@redhat.com>
1191 * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1192 thread_across_edge for any abnormal edges.
1194 2005-05-10 Richard Henderson <rth@redhat.com>
1196 * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1197 * config/ia64/ia64-protos.h: Declare it.
1198 * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1199 (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1200 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1201 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1202 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1203 (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
1204 extend result; use release semantics.
1205 (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1206 (sync_val_compare_and_swap_<IMODE>): Update to match.
1208 2005-05-10 Richard Henderson <rth@redhat.com>
1210 * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1211 before comparing it for success.
1213 2005-05-10 Richard Henderson <rth@redhat.com>
1215 * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1216 no return value pattern.
1218 2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
1219 H.J. Lu <hongjiu.lu@intel.com>
1221 * libgcov.c (create_file_directory): New function. Create
1222 directory for the given file name.
1223 (gcov_max_filename): New static var. Keeps size of the longest
1225 (gcov_exit): Always try to create directory for output
1226 file. Relocate each filename basing on environment vars.
1227 (__gcov_init): Remember the longest file name.
1228 * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1229 * doc/gcov.texi (Cross-profiling): New node documenting
1230 cross-profiling management.
1231 * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1233 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1235 * config/sparc/sparc.c (mem_min_alignment): Do not rely
1236 on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1238 2005-05-10 Bob Wilson <bob.wilson@acm.org>
1240 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1241 case code to avoid one move instruction.
1242 (__umodsi3, __modsi3): Merge duplicated code sequences.
1244 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1246 * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1247 config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1248 * doc/invoke.texi: Fix typos.
1250 * tree-data-ref.c (analyze_array_indexes, analyze_array,
1251 init_data_ref, access_functions_are_affine_or_constant_p,
1252 free_data_refs): Use VEC instead of VARRAY.
1253 * tree-data-ref.h (data_reference): Change the type of
1254 access_fns to VEC(tree,gc)*.
1255 (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1257 2005-05-10 Gabor Loki <loki@gcc.gnu.org>
1260 * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1261 * fold-const.c (fold): Expand the condition of reducing cond_expr.
1262 (contains_label_1, contains_label_p): New functions for checking
1263 labels in a sub-tree.
1265 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1268 * c-decl.c (pushdecl): When there is a declaration in the current
1269 scope and the declarations are external linkage, check for
1270 compatibility with the type in the external scope and update the
1271 type in the external scope with the composite type information.
1272 Do not form a composite type of the new type and the visible type
1273 if they are incompatible.
1275 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1277 * crtstuff.c: Revert part of 2005-05-08 Change.
1278 (IN_LIBGCC2): Define.
1280 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1282 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1283 remove redundant test.
1284 (fp_mov_p): Accept 0.
1285 (fp_high_losum_p): Remove redundant test.
1286 * config/sparc/predicates.md (const_high_operand): Explicitly test
1287 (not small_int_operand).
1288 (fp_const_high_losum_operand): New.
1289 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
1290 (movdi_insn_sp32_v9): Use canonical predicates.
1291 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1292 (movdi_insn_sp64_novis): Delete.
1293 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1294 (movsf_insn_novis): Delete.
1295 (movsf_insn_vis): Rename into movsf_insn.
1296 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1297 (movsf_lo_sum): Use fp_const_high_losum_operand.
1298 (movsf_high): Likewise.
1299 (movsf_high_losum splitter): Likewise.
1300 (mov<V32:mode> expander): Use register_or_zero_operand.
1301 (mov<V64:mode> expander): Likewise.
1302 (movdf_insn_sp32): Use register_or_zero_operand.
1303 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1304 Rename into movdf_insn_sp32_no_fpu.
1305 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1306 Rename into movdf_insn_sp32_v9_no_fpu.
1307 (movdf_insn_v9only_novis): Delete.
1308 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1309 (movdf_insn_sp64_novis): Delete.
1310 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1311 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1312 Rename into movdf_insn_sp64_no_fpu.
1313 (movtf expander): Use register_or_zero_operand.
1314 (movtf_insn_sp32): Delete.
1315 (movtf_insn_vis_sp32): Use register_or_zero_operand.
1316 Rename into movtf_insn_sp32.
1317 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1318 Rename into movtf_insn_sp32_no_fpu.
1319 (movtf_insn_hq_sp64): Delete.
1320 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1321 Rename into movtf_insn_sp64_hq.
1322 (movtf_insn_sp64): Delete.
1323 (movtf_insn_vis_sp64): Use register_or_zero_operand.
1324 Rename into movtf_insn_sp64.
1325 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1326 Rename into movtf_insn_sp64_no_fpu.
1328 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1330 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1331 gcc_assert and gcc_unreachable as appropriate.
1332 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1333 xstormy16_output_cbranch_si, xstormy16_split_move,
1334 xstormy16_initial_elimination_offset,
1335 xstormy16_encode_section_info, xstormy16_print_operand_address,
1336 xstormy16_expand_call, xstormy16_expand_arith,
1337 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1339 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1341 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1342 const_copies to VEC(tree,heap)*.
1343 (new_elim_graph, delete_elim_graph, elim_graph_size,
1344 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1347 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1350 * doc/extend.texi (Type Attributes): Correct example syntax.
1352 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
1355 * doc/invoke.texi (-Wuninitialized): Update documentation.
1357 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1359 * arm.c (const_ok_for_arm): Use a faster algorithm.
1361 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1364 * config/rs6000/rs6000.md (add_op2): New.
1365 (add<mode>3): Use it.
1367 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1369 * arm.c (arm_gen_constant): Add new heuristic for generating
1370 constant integers that can be expressed as the difference of two
1373 2005-05-09 Roger Sayle <roger@eyesopen.com>
1375 * c-tree.h (parser_build_unary_op): New prototype.
1376 * c-typeck.c (parser_build_unary_op): New function to construct
1377 a unary operation in the C parser.
1378 * c-parser.c (c_parser_unary_expression): Use the new function
1379 parser_build_unary_op when appropriate.
1381 2005-05-09 Mark Mitchell <mark@codesourcery.com>
1384 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1385 before outputting DWARF_FRAME_RETURN_COLUMN.
1387 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1389 * config/s390/s390.c: (s390_branch_condition_mask,
1390 s390_branch_condition_mnemonic, s390_extra_constraint_str,
1391 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1392 legitimize_pic_address, s390_emit_tls_call_insn,
1393 legitimize_tls_address, legitimize_tls_address,
1394 s390_expand_addcc, print_shift_count_operand, print_operand,
1395 addr_generation_dependency_p, annotate_constant_pool_refs,
1396 s390_split_branches, find_constant_pool_ref,
1397 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1398 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1399 s390_output_pool_entry, s390_function_value,
1400 s390_call_saved_register_used, s390_emit_call): Replace
1401 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1402 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1403 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1404 get_some_local_dynamic_name, s390_function_arg_size,
1405 s390_function_arg_advance, s390_function_arg,
1406 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1407 default case by gcc_unreachable.
1408 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1409 conditional abort by gcc_assert.
1410 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1411 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1413 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1415 * config/s390/s390.c: (s390_decompose_address,
1416 tls_symbolic_operand, legitimate_pic_operand_p,
1417 legitimate_constant_p, legitimate_reload_constant_p,
1418 s390_expand_plus_operand, legitimate_address_p,
1419 legitimate_la_operand_p, ): Remove 'register' from signature.
1420 (symbolic_reference_mentioned_p,
1421 tls_symbolic_reference_mentioned_p): Remove 'register' from local
1422 variable declarations.
1423 (legitimize_address): Remove 'register' from
1424 signature and local variable declarations.
1426 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1428 * config/s390/s390-protos.h: (s390_match_ccmode,
1429 s390_match_ccmode_set, reg_used_in_mem_p,
1430 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1431 legitimate_la_operand_p, preferred_la_operand_p,
1432 s390_short_displacement, addr_generation_dependency_p,
1433 legitimate_reload_constant_p, legitimate_address_p): Change return type
1435 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1436 * config/s390/s390.c: (s390_match_ccmode,
1437 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1438 legitimate_reload_constant_p): Change return type into 'bool'.
1439 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1440 Likewise. Additionally adapted comment.
1441 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1442 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1443 (s390_decompose_address): Change the type of the internal flags
1444 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1445 (struct s390_address): Change type of "pointer" into bool.
1446 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1447 Adapt calls for 's390_tm_ccmode' to the new signature.
1449 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1451 * config/s390/s390.c: (s390_match_ccmode_set,
1452 s390_branch_condition_mnemonic, s390_short_displacement,
1453 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1454 print_shift_count_operand, get_some_local_dynamic_name,
1455 get_some_local_dynamic_name_1, reg_used_in_mem_p,
1456 addr_generation_dependency_p, s390_split_branches,
1457 annotate_constant_pool_refs, find_constant_pool_ref,
1458 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1459 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1460 s390_register_info, s390_frame_info, s390_init_frame_layout,
1461 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1462 restore_gprs, s390_function_arg_size, s390_function_arg_float,
1463 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1464 s390_encode_section_info, s390_cannot_force_const_mem,
1465 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1466 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1467 s390_adjust_priority, s390_issue_rate,
1468 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1469 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1470 s390_build_builtin_va_list, s390_gimplify_va_arg,
1471 s390_function_ok_for_sibcall, s390_call_saved_register_used,
1472 s390_pass_by_reference, s390_fixed_condition_code_regs,
1473 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1474 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1475 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1476 s390_add_pool_insn, s390_find_pool, s390_add_constant,
1477 s390_find_constant, s390_add_execute, s390_find_execute,
1478 s390_execute_label, s390_execute_target, s390_dump_pool,
1479 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1480 Move target macro definitions to the end of the file. Move several
1481 functions within the file to assure correct compiling.
1483 2005-05-09 Steven Bosscher <stevenb@suse.de>
1485 * calls.c (purge_reg_equiv_notes): Remove, fold into...
1486 (fixup_tail_calls): ...here. Only look at insns between the
1487 start of the function and the FUNCTION_BEG insn note.
1489 * gcse.c (one_cprop_pass): Fix typos in dumps.
1491 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1493 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1495 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1496 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1497 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1498 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1500 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1501 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1502 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1505 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1507 * config/s390/s390.md: ("gf") New mode attribute.
1508 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1509 "fixuns_truncsfsi2"): Merge.
1510 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1511 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1512 "fix_truncsfsi2_ieee"): Merge.
1514 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1516 * config/s390/s390.md: ("FPR") New mode macro.
1517 ("de", "dee"): New mode attributes.
1518 ("cmpdf", "cmpsf"): Merge.
1519 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1520 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1521 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1522 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1523 ("floatdidf2", "floatdisf2"): Merge.
1524 ("adddf3", "addsf3"): Merge.
1525 ("*adddf3", "*addsf3"): Merge.
1526 ("*adddf3_cc", "*addsf3_cc"): Merge.
1527 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1528 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1529 ("subdf3", "subsf3"): Merge.
1530 ("*subdf3", "*subsf3"): Merge.
1531 ("*subdf3_cc", "*subsf3_cc"): Merge.
1532 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1533 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1534 ("muldf3", "mulsf3"): Merge.
1535 ("*muldf3", "*mulsf3" "): Merge.
1536 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1537 ("*fmadddf", "*fmaddsf"): Merge.
1538 ("*fmsubdf", "*fmsubsf"): Merge.
1539 ("divdf3", "divsf3"): Merge.
1540 ("*divdf3", "*divsf3"): Merge.
1541 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1542 ("negdf2", "negsf2"): Merge.
1543 ("*negdf2_cc", "*negsf2_cc"): Merge.
1544 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1545 ("*negdf2", "*negsf2"): Merge.
1546 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1547 ("absdf2", "abssf2"): Merge.
1548 ("*absdf2_cc", "*abssf2_cc"): Merge.
1549 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1550 ("*absdf2", "*abssf2"): Merge.
1551 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1552 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1553 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1554 ("*negabsdf2", "*negabssf2"): Merge.
1555 ("sqrtdf2", "sqrtsf2"): Merge.
1557 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1559 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1561 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1562 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1563 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1564 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1566 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1567 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1568 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1569 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1570 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1571 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1572 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1573 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1574 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1575 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1576 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1577 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1578 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1579 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1580 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1581 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1583 ("*divsf3"): Additionally rename second pattern to
1585 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1586 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1587 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1588 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1589 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1590 'type values' and rename 'type' value.
1591 ("*addsf3"): Additionally rename second pattern to
1594 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1596 * config/s390/s390.md: ("SHIFT"): New mode macro.
1597 ("lr", "shift"): New mode attributes.
1598 ("ashldi3", "lshrdi3"): Merge.
1599 ("*ashldi3_31", "*lshrdi3"_31): Merge.
1600 ("*ashldi3_64", "*lshrdi3"_64): Merge.
1601 ("ashlsi3", "lshrsi3"): Merge.
1603 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1605 * config/s390/s390.md: ("DSI", "SCOND"): New mode
1607 ("E", "g"): New mode attributes.
1608 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1609 ("*adddi3_alc", "*addsi3_alc"): Merge.
1610 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1611 ("*subdi3_slb", "*subsi3_slb"): Merge.
1612 ("adddicc", "addsicc"): Merge.
1613 ("*sconddi", "*scondsi"): Merge.
1614 ("*sconddi_neg", "*scondsi_neg"): Merge.
1615 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1616 ("negdi2", "negsi2"): Extract expander pattern from
1617 "negsi2" and merge with "negdi2".
1618 ("*negdi2"): Merge with instruction pattern of "negsi2".
1619 ("*negdi2_cc", "*negsi2_cc"): Merge.
1620 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1621 ("rotldi3", "rotlsi3"): Merge.
1623 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1625 * config/s390/s390.md: ("hc"): New mode attribute.
1626 ("extendhidi2", "extendqidi2"): Merge.
1627 ("*extendhidi2", "*extendqidi2"): Merge.
1628 ("extendhisi2", "extendqisi2"): Merge.
1629 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1630 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1631 Merged 2 define_split.
1632 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1633 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1635 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1637 * config/s390/s390.md: ("COMPARE"): New mode macro.
1638 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1639 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1640 "bungt", "bunle", "bunge", "bltgt"): Merge.
1642 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1644 * config/s390/s390.md: ("INT"): New mode macro.
1645 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1648 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1650 * config/s390/s390.md: ("GPR", "P"): New mode macros.
1651 ("cmpdi", "cmpsi"): Merge.
1652 ("strlendi", "strlensi"): Merge.
1653 ("*strlendi", "*strlensi"): Merge.
1654 ("movmemdi", "movmemsi"): Merge.
1655 ("clrmemdi", "clrmemsi"): Merge.
1657 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1659 * config/s390/s390.md: ("HQI"): New mode macro.
1660 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
1661 ("*tmhi_full", "*tmqi_full"): Merge.
1662 ("*tsthiCCT", "*tstqiCCT"): Merge.
1663 ("*tsthi", "*tstqi"): Merge.
1664 ("*tsthi_cconly", "tstqi_cconly"): Merge.
1665 ("*sethighhisi", "*sethighqisi"): Merge.
1667 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1669 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
1670 config/alpha/unicosmk.h, config/arc/arc.md,
1671 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
1672 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
1673 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1674 config/arm/semi.h, config/arm/uclinux-elf.h,
1675 config/arm/wince-pe.h, config/fr30/fr30.c,
1676 config/rs6000/altivec.h: Update copyright.
1678 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1680 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
1681 gcc_assert and gcc_unreachable as appropriate.
1682 (pdp11_output_function_epilogue, output_move_double,
1683 output_move_quad, print_operand_address, output_jump,
1684 output_addr_const_pdp11): Likewise.
1685 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
1686 ASM_OUTPUT_ALIGN): Likewise.
1687 * config/pdp11/pdp11.md: Likewise.
1688 (extendhisi2, subhi3, subqi3): Likewise.
1690 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1693 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
1696 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1698 * config/ia64/ia64.c: Fix a comment typo.
1700 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
1703 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
1704 (arm_override_options): Use them instead of manifest constants. Don't
1705 allow -march to override the -mtune setting.
1707 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1709 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
1710 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
1711 (function_arg_advance, function_arg, save_restore_insns,
1712 iq2000_expand_prologue, iq2000_output_conditional_branch,
1713 expand_one_builtin, print_operand):
1714 * config/iq2000/iq2000.md (tablejump): Likewise.
1716 2005-05-09 David Ung <davidu@mips.com>
1718 * config/mips/mips.h (processor_type): Add names for the 24K.
1719 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
1721 * config/mips/mips.md (cnv_mode): New attribute for recording the
1722 conversion types of float convert insns.
1723 (cpu): Add 24k and 24kx.
1724 (include): Include 24k.md file.
1725 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
1726 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
1727 (floatdisf2): Setup cnv_mode.
1728 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
1730 * config/mips/24k.md: New file, contains 24k DFA pipeline
1733 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1735 * config/sh/sh.c (print_operand_address): Use gcc_assert and
1736 gcc_unreachable as appropriate.
1737 (print_operand, prepare_move_operands, prepare_scc_operands,
1738 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
1739 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
1740 fixup_mova, gen_far_branch, sh_reorg, split_branches,
1741 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
1742 sh_set_return_address, sh_setup_incoming_varargs,
1743 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
1744 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
1745 check_use_sfunc_addr): Likewise.
1746 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
1747 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1748 * config/sh/symbian.c (sh_symbian_mark_dllexport,
1749 sh_symbian_mark_dllimport): Likewise.
1750 * config/sh/sh.md: Likewise.
1751 (movdicc, call_pop, call_value_pop, casesi_worker_1,
1752 casesi_worker_2, casesi_shift_media, casesi_load_media,
1753 return_media): Likewise.
1755 2005-05-08 Roger Sayle <roger@eyesopen.com>
1758 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
1761 2005-05-08 Richard Henderson <rth@redhat.com>
1763 * config/alpha/alpha.c (adjust_address): Fix typo last change.
1765 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
1767 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
1768 and -1 can happen in reg_renumber when no hard register is assigned.
1770 2005-05-08 Steven Bosscher <stevenb@suse.de>
1771 Kazu Hirata <kazu@cs.umass.edu>
1773 PR tree-optimization/14841, tree-optimization/15838
1774 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
1775 (evaluate_stmt): Call it.
1777 2005-05-08 Jakub Jelinek <jakub@redhat.com>
1779 * config/ia64/ia64.c (ia64_override_options): Don't set
1780 ia64_flag_var_tracking and clear flag_var_tracking here...
1781 (ia64_file_start): ... but here.
1783 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
1785 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
1786 and gcc_unreachable as appropriate.
1787 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
1788 m68hc11_gen_highpart, print_operand, print_operand_address,
1789 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
1790 m68hc11_gen_movhi): Likewise.
1791 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
1792 * config/m68hc11/m68hc11.md: Reword comment.
1794 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
1797 * config/m68hc11/predicates.md (splitable_operand): An immediate is
1800 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
1802 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
1803 the 68HC12 address indirect addressing mode as it is not supported by
1805 * config/m68hc11/m68hc11-protos.h
1806 (m68hc11_valid_addressing_p): Declare.
1807 (m68hc11_add_mode): Declare.
1808 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
1809 register_indirect_p and export it.
1810 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
1811 instruction so that it is part of the good BB.
1812 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
1813 addressing with movw.
1814 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
1816 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
1817 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
1818 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
1820 ("*movhi_68hc12"): Handle movhi_const0.
1821 ("*subhi3", "subqi3"): Use general_operand for operand 1.
1822 ("*subhi3_zext"): Likewise.
1824 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
1827 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
1828 operand 1 and fix constraints.
1829 ("mulqihi3"): Use general_operand for operand 2.
1831 2005-05-08 Julian Brown <julian@codesourcery.com>
1832 H.J. Lu <hongjiu.lu@intel.com>
1833 Paul Brook <paul@codesourcery.com>
1835 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
1836 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
1837 20050308/2.16.0 or newer for comdat group.
1838 * configure: Regenerated.
1839 * config.in: Regenerated.
1840 * varasm.c (default_function_rodata_section): Put .rodata section in
1841 COMDAT group when necessary.
1842 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
1844 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
1847 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
1849 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
1851 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
1852 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
1853 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
1854 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1856 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
1859 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
1860 64-bit constants on 64-bit hosts.
1861 (m68hc11_split_logical): Simplify.
1862 (m68hc11_split_move): Likewise.
1864 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
1865 Paolo Bonzini <bonzini@gnu.org>
1867 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
1868 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
1869 * configure.ac (enable_checking): Fix typos in runtime_checking.
1870 (ENABLE_RUNTIME_CHECKING): Mark as target template.
1871 (xm_file): Prepend auto-host.h
1872 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
1873 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
1875 * crtstuff.c: Do not include auto-host.h.
1876 (IN_LIBGCC2): Do not define.
1877 * gcov-io.h: Include tconfig.h, not auto-host.h.
1878 * libgcc2.c: Do not include auto-host.h.
1879 (abort): Do not undefine.
1880 * libgcov.c: Remove unneeded comment about config.h.
1881 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
1882 * config.in, configure: Regenerated.
1884 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
1885 Falk Hueffner <falk@debian.org>
1887 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
1888 and gcc_unreachable as appropriate.
1889 (get_aligned_mem, get_unaligned_address,
1890 alpha_emit_set_long_const, alpha_emit_conditional_branch,
1891 alpha_emit_setcc, alpha_emit_conditional_move,
1892 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
1893 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
1894 alpha_expand_unaligned_load, alpha_expand_block_move,
1895 alpha_expand_zap_mask, get_trap_mode_suffix,
1896 get_round_mode_suffix, get_some_local_dynamic_name,
1897 print_operand_address, function_arg, alpha_return_in_memory,
1898 function_value, alpha_expand_builtin,
1899 alpha_initial_elimination_offset, alpha_expand_epilogue,
1900 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
1901 alphaev5_next_group, alpha_align_insns,
1902 unicosmk_initial_elimination_offset, unicosmk_unique_section,
1903 unicosmk_ssib_name): Likewise.
1904 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1905 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
1906 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
1907 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
1908 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1909 * config/alpha/alpha.md (*divmodsi_internal_er,
1910 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
1911 call_nt, call_umk, call_vms, call_value, sibcall_value,
1912 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
1913 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
1914 * config/alpha/predicates.md (input_operand): Likewise.
1916 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
1918 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
1919 gcc_unreachable, as appropriate.
1920 (frv_function_prologue, frv_alloc_temp_reg,
1921 frv_initial_elimination_offset, frv_expand_block_move,
1922 frv_expand_block_clear, frv_print_operand_jump_hint,
1923 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
1924 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
1925 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
1926 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
1927 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
1928 frv_in_small_data_p, frv_asm_out_constructor,
1929 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
1930 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
1931 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
1932 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
1933 sibcall_value, casesi): Likewise.
1935 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
1936 gcc_unreachable as appropriate.
1937 (print_operand_address, mn10300_print_reg_list, expand_prologue,
1938 expand_epilogue, notice_update_cc, initial_offset,
1939 mn10300_address_cost_1): Likewise.
1940 * config/mn10300/mn10300.md: Likewise.
1941 (absdf2, abssf2, negdf2, negsf2): Likewise.
1943 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
1946 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
1948 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
1949 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
1950 including sunge_<mode> and sungt_<mode>.
1952 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
1954 * integrate.h (get_hard_reg_initial_val): Change type of register
1955 parameter from int to unsigned int.
1956 (has_hard_reg_initial_val): Likewise.
1957 * integrate.c (get_hard_reg_initial_val): Likewise.
1958 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
1960 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
1962 * except.c (eh_status): Change the type of ttype_data to
1964 (add_ttypes_entry, assign_filter_values,
1965 output_function_exception_table): Use VEC instead of VARRAY.
1967 2005-05-07 David Edelsohn <edelsohn@gnu.org>
1969 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
1971 2005-05-07 Paul Brook <paul@codesourcery.com>
1973 * Makefile.in: Fix dependencies.
1974 (GCOV_IO_H, VARRAY_H): Set.
1976 2005-05-07 Anthony Green <green@redhat.com>
1979 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
1980 x$STMP_FIXPROTO test.
1981 * configure: Rebuilt.
1983 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
1985 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
1986 inappropriate feature test macros if flag_iso.
1988 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
1990 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
1992 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
1995 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
1996 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
1997 Handle moved operand being in special register.
1998 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
1999 presumed working insn.
2000 (mover2side): Add FIXME.
2002 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2004 * integrate.c (get_func_hard_reg_initial_val): Delete.
2005 (has_func_hard_reg_initial_val): Delete.
2006 (get_hard_reg_initial_val): Inline the old implementation of
2007 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
2008 instead of has_func_hard_reg_initial_val to test for an existing
2009 pseudo. Only create an rtx if a new initial value entry is needed.
2010 (has_hard_reg_initial_val): Scan the initial value list directly.
2011 Don't create an rtx.
2013 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2015 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2017 * config.in (HAVE_AS_POPCNTB): New.
2018 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2019 (HAVE_AS_POPCNTB): New.
2020 * configure: Regenerated.
2021 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2022 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2023 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
2024 and rs6000_sched_costly_dep.
2025 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2026 (TARGET_XL_COMPAT): Delete.
2027 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2028 (popcount<mode>2): New.
2029 (popcntb<mode>2): New.
2030 * config/rs6000/rs6000.opt (mpopcntb): New.
2032 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2033 if variable name exists.
2035 2005-05-07 Matt Kraai <kraai@ftbfs.org>
2037 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2039 2005-05-07 Richard Henderson <rth@redhat.com>
2042 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2043 with constant offsets.
2045 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
2047 * config/v850/v850.c (print_operand): Use gcc_assert and
2048 gcc_unreachable, as appropriate.
2049 (print_operand_address, v850_handle_data_area_attribute,
2050 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2051 v850_insert_attributes, construct_prepare_instruction): Likewise.
2052 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2053 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2055 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
2057 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2058 config/rs6000/rs6000.h: Fix comment typos.
2060 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2062 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2063 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2064 (mips_scalar_mode_supported_p): Delete.
2066 2005-05-06 Eric Christopher <echristo@redhat.com>
2068 * config/mips/mips.opt: Remove -mint64 option.
2069 * config/mips/mips.c (override_options): Remove -mint64
2071 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2072 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2073 64-bit integer handling.
2074 * doc/invoke.texi (Option Summary): Remove -mint64 for
2077 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2079 PR tree-optimization/19401
2080 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2081 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2082 (estimated_unrolled_size): New function.
2083 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2084 tree_unroll_loops_completely): Always unroll loops if the code size
2086 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2087 loops should be unrolled completely.
2088 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2090 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2092 PR rtl-optimization/21254
2093 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2094 assumptions for loops that otherwise do not roll.
2095 (find_simple_exit): Prefer # of iterations that is guaranteed
2097 * loop-unroll.c (decide_peel_once_rolling,
2098 decide_peel_completely): Check whether the loop is infinite.
2100 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
2102 * config/rs6000/sysv4.opt: Fix typo.
2104 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
2105 Jakub Jelinek <jakub@redhat.com>
2108 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2109 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2110 Don't use rep; movs{l,q} if the repetition count is really small,
2111 instead use a sequence of movs{l,q} instructions.
2113 2005-05-06 Jeff Law <law@redhat.com>
2115 PR tree-optimization/21380
2116 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2117 thread through a block with no preds.
2119 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
2121 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2122 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2123 add_call_read_ops): Use VEC instead of VARRAY.
2125 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2127 * config/mcore/mcore.c (mcore_print_operand_address): Use
2128 gcc_assert and gcc_unreachable as appropriate.
2129 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2130 mcore_output_andn, output_inline_const, mcore_output_move,
2131 mcore_output_movedouble, mcore_expand_block_move,
2132 layout_mcore_frame, mcore_initial_elimination_offset,
2133 mcore_expand_prolog, mcore_mark_dllexport,
2134 mcore_mark_dllimport): Likewise.
2135 * config/mcore/mcore.h (switch_to_section): Likewise.
2136 * config/mcore/mcore.md: Likewise.
2138 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
2140 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2141 TARGET_PROFILE_KERNEL.
2143 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2144 TARGET_PROFILE_KERNEL use.
2146 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2148 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2149 and gcc_unreachable, as appropriate.
2150 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2151 m32r_expand_prologue, m32r_output_function_epilogue,
2152 m32r_legitimize_pic_address, m32r_print_operand_address,
2153 emit_cond_move, m32r_function_symbol,
2154 m32r_output_block_move): Likewise.
2155 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2156 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2157 *rev_zero_branch_insn): Likewise.
2159 2005-05-06 Jakub Jelinek <jakub@redhat.com>
2162 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2163 if both NEWDECL and OLDDECL are already weak.
2165 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
2167 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2169 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
2170 Kaz Kojima <kkojima@gcc.gnu.org>
2172 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2175 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
2176 David Edelsohn <edelsohn@gnu.org>
2178 * config.gcc: Add .opt magic for the rs6000 ports.
2180 * doc/invoke.texi: Document -mabi= option properly. Document
2181 -misel and -mno-sel. Document -mspe and -mno-spe. Document
2182 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
2185 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
2186 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
2189 * config/rs6000/aix.opt: New.
2190 * config/rs6000/aix41.opt: New.
2191 * config/rs6000/aix64.opt: New.
2192 * config/rs6000/darwin.opt: New.
2193 * config/rs6000/linux64.opt: New.
2194 * config/rs6000/rs6000.opt: New.
2195 * config/rs6000/sysv4.opt: New.
2197 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2198 associated TARGET_*. Remove SUBTARGET_OPTIONS,
2200 Define TARGET_USES_SYSV4_OPT.
2201 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2202 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
2203 TARGET_USES_AIX64_OPT.
2204 * config/rs6000/aix51.h: Same.
2205 * config/rs6000/aix52.h: Same.
2206 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2207 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2208 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2209 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2210 * config/rs6000/linux64.h: Use
2211 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
2213 * config/rs6000/rs6000.c: Remove definitions of
2214 rs6000_sched_restricted_insns_priority,
2215 rs6000_long_double_size_string, rs6000_altivec_vrsave,
2216 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2217 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2218 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2219 rs6000_alignment_string. Define rs6000_explicit_options.
2220 (rs6000_parse_abi_options): Remove.
2221 (rs6000_parse_alignment_option): Remove.
2222 (rs6000_parse_float_gprs_option): Remove.
2223 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
2224 TARGET_DEFAULT_TARGET_FLAGS.
2225 (rs6000_override_options): Revamp to use new .opt machinery.
2227 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2228 of new .opt machinery. Remove target_flags. Redefine
2229 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
2230 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2231 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2232 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2233 rs6000_longcall_switch, rs6000_default_long_calls,
2234 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2235 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2236 TARGET_ALTIVEC_VRSAVE.
2238 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2240 * config.gcc (hppa1.1-*-rtems*): Remove.
2241 * config/pa/rtems.h: Remove.
2243 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2245 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2246 Exclude roe/603e multilib variants.
2248 2005-05-04 Denis Chertykov <denisc@overta.ru>
2251 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2254 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
2256 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2257 arm/pe.opt to $extra_options.
2258 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2259 (target_float_abi_name, target_float_switch, target_abi_name)
2260 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2261 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2262 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2263 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2264 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2265 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2266 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2267 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2268 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2269 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2270 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2271 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2272 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2273 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
2274 (arm_pic_register_string): Delete.
2275 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2277 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2278 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2279 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2280 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2281 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2282 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2283 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2284 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2285 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2286 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2287 (SUBTARGET_SWITCHES): Delete.
2288 * config/arm/arm.c (target_float_switch): Delete.
2289 (arm_cpu_select): Moved from config/arm/arm.h.
2290 (target_fpu_name, target_fpe_name, target_float_abi_name)
2291 (target_abi_name, structure_size_string, arm_pic_register_string)
2292 (arm_select): Make static.
2293 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2294 (arm_handle_option): New function.
2295 (arm_override_options): Update target_flags checks for new mask names.
2296 Remove target_float_switch code.
2297 (arm_expand_prologue, thumb_expand_prologue): Check
2298 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2299 * config/arm/arm.opt, config/arm/pe.opt: New files.
2301 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
2303 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2304 gcc_unreachable as appropriate.
2305 (arc_double_limm_p, arc_setup_incoming_varargs,
2306 arc_compute_function_type, arc_output_function_prologue,
2307 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2308 output_shift, arc_print_operand, arc_print_operand_address,
2309 arc_final_prescan_insn): Likewise.
2310 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2312 2005-05-04 Geoffrey Keating <geoffk@apple.com>
2314 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2319 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2320 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2321 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2322 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2323 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2324 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2325 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2326 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2328 2005-05-05 Paul Brook <paul@codesourcery.com>
2330 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2331 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2332 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2333 and tree-data-ref.h with *_H variables.
2335 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2337 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2339 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2341 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2343 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
2345 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2347 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2349 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2350 setting of vrsave register for current function after
2351 call to save_world is emitted.
2353 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
2355 * config/mmix/predicates.md: New file.
2356 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2357 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2358 (mmix_foldable_comparison_operator, mmix_comparison_operator)
2359 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2360 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2362 * config/mmix/mmix.md: Include predicates.md.
2363 ("call", "call_value"): Force address to register if it isn't a
2364 mmix_symbolic_or_address_operand.
2366 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
2368 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2369 the flags are of appropriate types.
2370 (num_ssa_operands): Generalize using the generic interface.
2371 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2374 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
2376 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2377 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2379 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2381 * tree-outof-ssa.c (edge_leader, stmt_list,
2382 analyze_edges_for_bb): Use VEC instead of VARRAY.
2383 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2384 (perform_edge_inserts): Call init_analayze_edges_for_bb and
2385 fini_analayze_edges_for_bb.
2387 2005-05-04 James E Wilson <wilson@specifixinc.com>
2390 * gcc.c (process_command): In the second argv scan loop, ignore
2391 Xassembler and Xpreprocessor, along with their argument.
2393 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2395 * tree-flow-inline.h, tree-ssa-operands.c,
2396 tree-ssa-operands.h, tree-ssa-opfinalize.h:
2397 Likewise. tree-vn.c: Fix comment typos.
2398 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2400 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
2402 * doc/tm.texi (Target Hooks): Document
2403 TARGET_RESOLVE_OVERLOADED_BUILTIN.
2405 2005-05-04 Paul Brook <paul@codesourcery.com>
2407 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2409 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2411 * dwarf2out.c (incomplete_types, retry_incomplete_types,
2412 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2415 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2416 get_expansion, expand_var_during_unrolling,
2417 insert_var_expansion_initialization,
2418 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2421 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2424 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
2427 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2428 the same as INTEGER_TYPE.
2429 (fold_binary): Fold "bool_var != 0" to bool_var.
2430 Fold "bool_var == 1" to bool_var.
2432 2004-05-03 Richard Henderson <rth@redhat.com>
2435 * function.c (instantiate_virtual_regs_in_insn): Use the mode
2436 from recog_data instead of insn_data.
2438 2005-05-03 DJ Delorie <dj@redhat.com>
2440 * common.opt (fdiagnostics-show-option): No variable is needed.
2441 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2442 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2443 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2444 Save and restore original message format. Use flag in context
2446 (warning): Don't test for enabled warnings here.
2447 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2450 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
2452 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2453 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2454 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2455 * aclocal.m4: Don't include accross.m4.
2456 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2457 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2458 * configure, config.in: Regenerate.
2460 2005-05-04 Jakub Jelinek <jakub@redhat.com>
2463 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2464 (clear_storage): Add argument.
2465 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2466 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2468 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2469 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2470 (store_expr, store_constructor): Adjust callers.
2471 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2472 to emit_block_move if CALL_EXPR_TAILCALL (exp).
2473 (expand_builtin_memmove): Add ORIG_EXP argument, copy
2474 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2475 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2476 with EXP. Pass EXP to expand_builtin_memmove.
2477 (expand_builtin_memset): Add ORIG_EXP argument, pass
2478 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2479 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2480 Pass EXP to expand_builtin_memset.
2481 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2483 (expand_builtin_strncmp): Likewise.
2484 (expand_builtin_printf): Replace ARGLIST argument with EXP.
2485 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2486 (expand_builtin_fprintf): Likewise.
2487 (expand_builtin): Adjust calls to
2488 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2490 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2493 PR rtl-optimization/21239
2494 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2496 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2498 * tree-flow.h (tree_ann_common_d): Move aux to ...
2499 (stmt_ann_d): ... here.
2500 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2501 move_computations_stmt, schedule_sm): Update references to
2503 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2505 * tree-cfg.c (remove_bb): Remove a redundant call to
2507 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2510 2005-05-03 Richard Henderson <rth@redhat.com>
2512 * config/rs6000/rs6000.c: Remove conflict markers.
2514 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2516 2005-05-03 James E Wilson <wilson@specifixinc.com>
2518 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2520 2005-05-03 DJ Delorie <dj@redhat.com>
2522 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2523 decide if the warning will be printed.
2524 * calls.c (expand_call): Likewise.
2525 * function.c (init-function_start): Likewise.
2527 * common.opt (-fdiagnostics-show-option): New.
2528 * opts.c (option_enabled): Accept the option index instead of a
2529 pointer to the option descriptor.
2530 * opts.h (option_enabled): Likewise.
2531 * toplev.c (print_switch_values): Pass option index, not option
2533 * diagnostic.h (diagnostic_info): Add option_index.
2534 * diagnostic.c: Include opts.h.
2535 (diagnostic_set_info): Initialize option_index.
2536 (diagnostic_report_diagnostic): Amend option name if appropriate.
2537 (warning): Check to see if the specified warning is enabled.
2539 * doc/invoke.texi (-fdiagnostics-show-options): Document.
2541 2005-05-03 Richard Henderson <rth@redhat.com>
2543 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2544 SPEC_OR_GEN_REGS definitions.
2546 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
2549 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2550 for unavailable registers.
2552 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2554 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2556 * cfglayout.c (block_locators_blocks,
2557 insn_locators_initialize, insn_scope): Use VEC instead of
2560 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2561 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2564 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2566 * config/sparc/predicates.md (const_compl_high_operand): New.
2567 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2569 (sparc_emit_set_const64_quick1): Adjust for above change.
2570 (sparc_emit_set_const64_quick2): Likewise.
2571 (sparc_emit_set_const64_longway): Likewise.
2572 (sparc_emit_set_const64): Likewise.
2573 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2574 movdi_const64_special): Delete.
2575 (logical constant splitters): Use const_compl_high_operand.
2577 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
2579 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2580 rather than STRIP_NOPS.
2582 2005-05-03 Jakub Jelinek <jakub@redhat.com>
2584 PR rtl-optimization/21330
2585 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2587 (unswitch_single_loop): Clear cinsn when retrying.
2590 * config/i386/i386.c (legitimize_address): When canonicalizing
2591 ASHIFT into MULT, multiply by 1 << shift_count instead of
2592 1 << log2 (shift_count).
2594 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
2596 * lambda-code.c (gcc_loop_to_lambda_loop,
2597 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2598 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2599 generic operand interface.
2600 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2601 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2602 generic operand interface.
2603 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2604 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2605 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2606 num_imm_uses): Use ssa_use_operand_t.
2607 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2608 get_v_must_def_ops): Delete.
2609 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2610 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2611 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2612 get_v_must_def_kill_ptr): Delete.
2613 (delink_stmt_imm_use): Move and use new operand interface.
2614 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2615 op_iter_next_tree): Use new operand implementation.
2616 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
2617 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2619 (op_iter_next_mustdef, op_iter_next_maydef,
2620 op_iter_next_must_and_may_def): Delete. Replace with...
2621 (op_iter_next_maymustdef): New. Combine must and may next operations.
2622 (op_iter_init_maydef, op_iter_init_mustdef,
2623 op_iter_init_must_and_may_def): Use new interface.
2624 (single_ssa_tree_operand ): New. Process single operands only as trees.
2625 (single_ssa_use_operand): New. Process single operands only as uses.
2626 (single_ssa_def_operand): New. Process single operands only as defs.
2627 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
2629 (num_ssa_operands): New. Count the number of specified operands.
2630 (compare_ssa_operands_equal): New. Compare two statements' operands.
2631 (single_phi_def): New. Return true if PHI has one def of the specified
2633 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
2634 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
2635 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2636 (struct stmt_ann_d): Operands field no longer require GTY().
2637 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2638 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2639 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2640 dump_replaceable_exprs, rewrite_trees): Use generic interface.
2641 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2642 Use use_operand_p instead of ssa_imm_use_t *.
2643 * tree-pretty-print.c (dump_vops): check if operands are active before
2644 dumping virtual operands.
2645 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2646 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2647 (ccp_fold): Use new interface.
2648 (ccp_visit_stmt): Remove unused variables and code.
2649 (convert_to_gimple_builtin): Insert statements before calling
2650 mark_new_vars_to_rename.
2651 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2652 (copy_prop_visit_cond_stmt): Use generic interface.
2653 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
2654 annotation in table.
2655 (thread_across_edge): Use generic interface.
2656 (initialize_hash_element): Initialzie with stmt, not annotation.
2657 (eliminate_redundant_computations): Use generic interface.
2658 (record_equivalences_from_stmt): Pass stmt, not annotation.
2659 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
2661 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
2662 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
2663 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
2664 generic operand interface.
2665 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
2667 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
2669 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
2670 (build_defs, build_uses, build_v_may_defs, build_vuses,
2671 build_v_must_defs): Change type to struct opbuild_list_d.
2672 (ops_active): New. Operands active boolean.
2673 (operand_memory, operand_memory_index): New. Operand memory managers.
2674 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2675 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
2676 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2677 Change from functions to static variable list heads.
2678 (opbuild_initialize_virtual): New. Initialize a virtual build list.
2679 (opbuild_initialize_real): New. Initialize a virtual build list.
2680 (opbuild_free): New. Free a build list.
2681 (opbuild_num_elems): New. Number of items in a list.
2682 (opbuild_append_real): New. Add a real (tree *) operand.
2683 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
2684 (opbuild_first): New. Return first element index in a list.
2685 (opbuild_next): New. Return next element in a list.
2686 (opbuild_elem_real): New. Return real element.
2687 (opbuild_elem_virtual): New. Return virtual element.
2688 (opbuild_elem_uid): New. Return UID of virtual element.
2689 (opbuild_clear): New. Reset an operand list.
2690 (opbuild_remove_elem): New. Remove an element form a list.
2691 (ssa_operands_active): New. Return true if operand cache is active.
2692 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
2693 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
2694 (correct_use_link): Use use_operand_p.
2695 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
2696 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
2697 (cleanup_v_may_defs): Use new implmentation.
2698 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
2700 (append_def, append_use, append_v_may_def, append_vuse,
2701 append_v_must_def): Call opbuild_append routine instead of using varray.
2702 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
2703 global parse_old_ops variable.
2704 (free_ssa_operands): New implementation.
2705 (update_stmt_operands): Move. Change argument to build_ssa_operands.
2706 (copy_virtual_operands): Move. New generic implementation.
2707 (create_ssa_artficial_load_stmt): Move. New implementation.
2708 (swap_tree_operands): Update for new implementation.
2709 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
2710 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
2711 rather than a varray.
2712 (verify_imm_links): Use use_operand_p.
2713 (dump_immediate_uses_for): If the immediate use variable is a virtual
2714 variable, show the virtual ops in the stmt.
2715 * tree-ssa-operands.h (def_operand_p): No longer a structure.
2716 (NULL_DEF_OPERAND_P): Now a #define.
2717 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
2718 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
2719 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
2720 mustdef_optype_d): New. Use Linked list representation.
2721 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
2722 (struct ssa_operand_memory_d): New. Allocated Chunk node.
2723 (struct stmt_operands_d): Change to new pointers that are not GTY.
2724 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
2725 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
2726 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
2727 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
2728 SET_V_MUST_DEF_KILL): Delete.
2729 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
2730 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
2731 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
2732 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
2733 (enum ssa_op_iter_type): Operand iterator typechecking values.
2734 (struct ssa_operand_iterator_d): Use linked lists of operands.
2735 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
2736 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
2737 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
2738 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
2739 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
2740 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
2741 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
2742 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
2743 * tree-ssa-opfinalize.h: New. Function templates for expansion.
2744 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
2745 alloc_vuse, and alloc_mustdef.
2746 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
2747 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2748 and finalize_ssa_v_must_def_ops.
2749 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
2750 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
2752 (compute_avail): Use generic iterator interface.
2753 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
2754 (stmt_makes_single_load, stmt_makes_single_store): Use
2756 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
2757 (statement_sink_location): Use generic interface.
2758 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
2759 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
2760 reset the immediate use link nodes.
2761 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
2762 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
2763 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
2764 (eliminate_tail_call): Use generic operand interface.
2765 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
2766 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
2768 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
2770 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
2771 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
2773 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
2774 Use statement pointer instead of vuse_optype. Use generic interface.
2775 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
2776 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
2777 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
2778 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
2779 * doc/tree-ssa.texi: Update documentation for operand interface.
2781 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
2783 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
2784 gcc_unreachable as appropriate.
2785 (machopic_function_base_name, machopic_indirect_data_reference,
2786 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
2787 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
2788 * config/rs6000/altivec.md (*mov<mode>_internal,
2789 build_vector_mask_for_load): Likewise.
2790 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
2791 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
2792 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
2793 * config/rs6000/predicates.md (easy_fp_constant,
2794 logical_operand): Likewise.
2795 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
2796 compute_save_world_info, rs6000_emit_prologue,
2797 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
2798 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
2801 2005-05-03 Uros Bizjak <uros@kss-loka.si>
2804 * convert.c (convert_to_integer): Convert ceil and floor in
2807 2005-04-29 Geoffrey Keating <geoffk@apple.com>
2810 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
2811 define_insn_and_split. Split only when memory operand is
2812 offsettable. Use adjust_address rather than plus_constant.
2813 (floatunssidf2_internal): Likewise.
2814 (fix_truncdfsi2_internal): Split only when memory operand is
2815 offsettable. Use adjust_address rather than plus_constant.
2816 (fix_trunctfsi2_internal): Likewise.
2817 (floatsidf2_internal): Likewise.
2819 2005-05-02 Diego Novillo <dnovillo@redhat.com>
2821 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
2822 (set_value_range_to_null): Likewise.
2823 (set_value_range_to_varying): New function. Use it in all
2824 call sites that used to call set_value_range (vr, VR_VARYING, ...).
2825 (extract_range_from_assert): If the integral type has a
2826 super-type, and LIMIT is not within MIN and MAX values of that
2827 type, set the resulting range to VR_VARYING.
2829 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
2831 * config/mmix/mmix.opt: New file.
2832 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
2833 (mmix_cc1_ignored_option): Don't declare.
2834 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
2835 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
2836 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
2837 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
2838 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
2839 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
2840 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
2841 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
2843 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
2844 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
2845 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2847 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
2850 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
2851 * c-decl.c (current_function_prototype_built_in,
2852 current_function_prototype_arg_types): New.
2853 (merge_decls): Keep source location of prototype followed by
2854 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
2855 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
2856 (start_function): Always set current_function_prototype_locus,
2857 current_function_prototype_built_in and
2858 current_function_prototype_arg_types. Check for external
2859 prototype whether or not visible for external function and set
2860 current_function_prototype_arg_types accordingly.
2861 (store_parm_decls_oldstyle): Use
2862 current_function_prototype_arg_types for checking old-style
2863 definition against prototype. Give warnings only if
2864 current_function_prototype_built_in).
2866 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
2868 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
2869 (ggc_alloc_zone_stat): Don't define.
2870 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
2871 ggc_alloc_zone_pass_stat.
2872 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
2873 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
2874 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
2876 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
2878 * calls.c (expand_call): Handle current_function_pretend_args_size
2879 when checking for sibcalls.
2881 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
2883 PR tree-optimization/21294
2884 * tree-vrp.c (vrp_expr_computes_nonzero): New.
2885 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
2887 2005-05-02 Janis Johnson <janis187@us.ibm.com>
2890 * gcov-io.h: Declare gcov external functions hidden.
2892 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
2894 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
2895 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
2896 Use VEC instead of VARRAY.
2899 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
2902 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
2904 * c-common.c (resolve_overloaded_builtin): Forward to target
2905 hook for BUILT_IN_MD built-ins.
2906 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
2907 for all types of built-in.
2908 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
2909 in the definition of the target hooks struct.
2910 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
2911 * config/rs6000/altivec.h: Rewritten.
2912 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
2913 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
2914 rs6000_builtin_type, rs6000_builtin_type_compatible,
2915 altivec_overloaded_builtins, rs6000_builtin_type,
2916 rs6000_builtin_type_compatible): New.
2917 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
2919 (def_builtin): Turn into a function. Check for duplicates and store
2920 the builtin into rs6000_builtin_decls.
2921 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
2922 bdesc_1arg): Add overloaded builtins.
2923 (altivec_expand_builtin): Check for unresolved overloaded builtins,
2924 do not support ALTIVEC_COMPILETIME_ERROR.
2925 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
2926 nodes to represent front-end types.
2927 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
2928 with opaque arguments and/or return values.
2929 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
2930 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
2931 (rs6000_builtin_type_index): New.
2932 (is_ev64_opaque_type): Rename to...
2933 (rs6000_is_opaque_type): ... this.
2934 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
2937 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
2939 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
2942 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
2943 Bernd Schmidt <bernd.schmidt@analog.com>
2945 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
2946 print_address_operand, print_operand, legitimize_pic_address,
2947 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
2948 output_pop_multiple): Use gcc_assert or gcc_unreachable as
2950 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
2952 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
2954 * doc/passes.texi: Document vectorization pass.
2956 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
2958 * tree-scalar-evolution.c (get_exit_conditions_rec,
2959 select_loops_exit_conditions,
2960 number_of_iterations_for_all_loops,
2961 analyze_scalar_evolution_for_all_loop_phi_nodes,
2962 scev_analysis): Use VEC instead of VARRAY.
2964 2005-05-02 Michael Matz <matz@suse.de>
2967 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
2968 (warn_strict_null_sentinel): Define.
2969 (check_function_sentinel): Check for null_node as valid sentinel too.
2970 * c-common.h (c_tree_index): Added CTI_NULL.
2971 (null_node) Define global_tree[CTI_NULL].
2972 (warn_strict_null_sentinel): Declare.
2973 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
2974 * c.opt: (Wstrict-null-sentinel): New C++ option.
2975 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
2977 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
2979 * gimplify.c (gimplify_compound_lval): Use VEC instead of
2982 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
2984 * dwarf2out.c (decl_scope_table, push_decl_scope,
2985 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
2988 2005-05-01 Mark Mitchell <mark@codesourcery.com>
2991 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
2993 * doc/cpp.texi (__DEPRECATED): Document.
2994 (__EXCEPTIONS): Likewise.
2995 (__GXX_WEAK__): Likewise.
2997 * function.c (INVOKE__main): Do not define.
2998 (expand_main_function): Check HAS_INIT_SECTION when determining
2999 whether or not to call __main.
3001 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3003 * tree-ssa-loop-ivopts.c: Fix a comment typo.
3005 2005-01-05 Paul Brook <paul@codesourcery.com>
3007 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3008 (INITIALIZE_TRAMPOLINE): Use it.
3009 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3010 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3011 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3013 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
3015 * doc/install.texi (Specific): Omit dots in the @anchors names
3016 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3017 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3019 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
3021 PR tree-optimization/18316
3022 PR tree-optimization/19126
3023 * tree.c (build_int_cst_type): Avoid shift by size of type.
3024 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3026 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3027 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3029 (dump_cand): Dump depends_on information.
3030 (determine_biv_step): Add argument to simple_iv call.
3031 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3032 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3034 (add_candidate_1): Record depends_on for candidates.
3035 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3036 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3037 Handle ivs with nonconstant step.
3038 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3039 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3040 (create_new_iv): Unshare the step before passing it to create_iv.
3041 (free_loop_data): Free cand->depends_on.
3042 (build_addr_strip_iref): New function.
3043 (find_interesting_uses_address): Use build_addr_strip_iref.
3044 (strip_offset_1): Split the recursive part from strip_offset.
3045 Strip constant offset component_refs and array_refs.
3046 (strip_offset): Split the recursive part to strip_offset_1.
3047 (add_address_candidates): Removed.
3048 (add_derived_ivs_candidates): Do not use add_address_candidates.
3049 (add_iv_value_candidates): Add candidates with stripped constant
3050 offset. Consider all candidates with initial value 0 important.
3051 (struct affine_tree_combination): New.
3052 (aff_combination_const, aff_combination_elt, aff_combination_scale,
3053 aff_combination_add_elt, aff_combination_add,
3054 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3055 fold_affine_sum): New functions.
3056 (get_computation_at): Use fold_affine_sum.
3057 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3058 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3061 2005-04-30 Michael Matz <matz@suse.de>
3063 * config/i386/i386.md (movmemsi): Also active when
3064 TARGET_INLINE_ALL_STRINGOPS.
3066 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3069 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3071 2005-04-30 Paul Brook <paul@codesourcery.com>
3073 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3075 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3076 * config/arm/ieee754-sf.S: Ditto.
3077 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3078 (FUNC_ALIAS): Use .thumb_set for thumb routines.
3080 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3082 * tree-ssanames.c: Fix a comment typo.
3083 * doc/options.texi: Fix a typo.
3085 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
3087 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3088 gcc_unreachable as appropriate.
3089 (split_adds_subs, cond_string, print_operand,
3090 h8300_initial_elimination_offset, h8300_classify_operand,
3091 h8300_unary_length, h8300_short_immediate_length,
3092 h8300_bitfield_length, h8300_binary_length,
3093 h8300_insn_length_from_table, compute_mov_length, output_plussi,
3094 compute_plussi_length, compute_plussi_cc, output_logical_op,
3095 compute_logical_op_length, compute_logical_op_cc,
3096 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3097 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3098 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3099 h8300_regs_ok_for_stm): Likewise.
3100 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3101 monitor_prologue): Likewise.
3103 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3105 * loop-invariant.c (invariants, create_new_invariant,
3106 get_inv_cost, best_gain_for_invariant,
3107 find_invariants_to_move, move_invariants,
3108 init_inv_motion_data, free_inv_motion_data): Use VEC instead
3111 2005-04-29 Richard Henderson <rth@redhat.com>
3113 * function.c (instantiate_decls): Remove valid_only argument.
3114 (instantiate_decls_1, instantiate_decl): Likewise.
3115 (instantiate_virtual_regs_1): Delete.
3116 (instantiate_virtual_regs_lossage): Delete.
3117 (instantiate_virtual_regs_in_rtx): New.
3118 (safe_insn_predicate): New.
3119 (instantiate_virtual_regs_in_insn): New.
3120 (instantiate_virtual_regs): Update to match all that. Only run
3121 instantiate_decls once.
3123 2005-04-29 Richard Henderson <rth@redhat.com>
3124 Daniel Jacobowitz <dan@codesourcery.com>
3126 * gengtype.c (write_func_for_structure): Split out ...
3127 (output_type_enum): ... new function. Fix thinko accessing
3128 TYPE_PARAM_STRUCT data.
3130 2005-04-29 Tom Tromey <tromey@redhat.com>
3132 * tree.c (build_block): Removed unused 'tags' argument.
3133 * tree.h (build_block): Removed argument.
3135 2005-04-29 Michael Matz <matz@suse.de>
3137 PR rtl-optimization/21144
3138 * postreload.c (reload_cse_move2add): Check for VOIDmode.
3140 2005-04-29 Bob Wilson <bob.wilson@acm.org>
3142 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3143 flag_reorder_blocks.
3145 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3147 PR tree-optimization/21030
3148 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3149 ranges where VR->MAX is smaller than VR->MIN.
3151 2005-04-29 Devang Patel <dpatel@apple.com>
3153 PR tree-optimization/21272
3154 PR tree-optimization/21266
3155 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3157 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
3159 * tree-flow-inline.h: Fix a comment typo.
3160 * doc/tree-ssa.texi: Fix a typo.
3162 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3164 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3166 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
3167 gcc_unreachable as appropriate.
3168 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
3169 fr30_print_operand, fr30_move_double): Likewise.
3170 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
3172 2005-04-29 Mark Mitchell <mark@codesourcery.com>
3174 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
3175 definition has already been provided.
3176 (ARM_EABI_DTORS_SECTION_OP): Likewise.
3177 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
3178 (ARM_EABI_DTORS_SECTION_OP): Likewise.
3180 2005-04-29 Jim Tison <jtison@us.ibm.com>
3182 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
3183 trace hooks calls to improve performance.
3185 2005-04-29 Julian Brown <julian@codesourcery.com>
3186 Mark Mitchell <mark@codesourcery.com>
3187 Paul Brook <paul@codesourcery.com>
3189 * crtstuff.c: Handle targets that use .init_array.
3190 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
3191 that INVOKE__main is set correctly.
3192 (expand_main_function): Test INVOKE__main.
3193 * libgcc2.c: Do not define __main when using .init_array.
3194 * config/arm/arm.c (arm_elf_asm_constructor): New function.
3195 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
3197 (DTORS_SECTION_ASM_OP): Likewise.
3198 (CTOR_LIST_BEGIN): Define specially when in libgcc.
3199 (CTOR_LIST_END): Likewise.
3200 (DTOR_LIST_BEGIN): Likewise.
3201 (DTOR_LIST_END): Likewise.
3202 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
3203 (FINI_SECTION_ASM_OP): Likewise.
3204 (INIT_ARRAY_SECTION_ASM_OP): Define.
3205 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3206 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
3207 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
3208 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
3209 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3211 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3213 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
3214 gcc_assert and gcc_unreachable as appropriate.
3215 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
3216 const_int_cost, output_move_const_into_data_reg,
3217 output_move_qimode, output_move_double, find_addr_reg,
3218 print_operand, print_operand_address): Likewise.
3219 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
3220 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
3221 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
3222 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
3223 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
3224 conditional_trap): Likewise.
3225 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
3227 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
3229 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
3230 gcc_unreachable as appropriate.
3231 (gen_conditional_move, xtensa_split_operand_pair,
3232 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
3233 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
3234 xtensa_copy_incoming_a7, xtensa_output_literal,
3235 xtensa_output_literal, xtensa_output_literal): Likewise.
3236 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3237 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
3238 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
3239 movsicc_internal1, movsfcc_internal0,
3240 movsfcc_internal1): Likewise.
3242 2005-04-28 James E Wilson <wilson@specifixinc.com>
3244 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
3245 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
3247 2005-04-28 DJ Delorie <dj@redhat.com>
3249 * opt-functions.awk (var_set): Emit proper initializer for
3250 non-target bitfields.
3252 2005-04-28 Devang Patel <dpatel@apple.com>
3254 * dbxout.c (have_used_extensions): Remove.
3255 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
3256 have_used_extensions.
3258 2005-04-28 James E Wilson <wilson@specifixinc.com>
3260 * doc/install.texi: Update -enable-languages info. Correct path to
3263 2005-04-28 DJ Delorie <dj@redhat.com>
3265 * optc-gen.awk (END): Make sure no variable is defined more
3267 * opth-gen.awk (END): Allocate bits on a per-variable basis.
3268 Allow for bitfield variables other than target_flags.
3269 * doc/options.text (Mask): Document that you may specify a
3270 variable other than target_flags.
3272 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
3274 PR rtl-optimization/18877
3275 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
3276 number in val.start.
3278 2005-04-28 David Edelsohn <edelsohn@gnu.org>
3281 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
3283 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3284 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3285 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
3287 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
3289 * arm.c (legitimize_pic_address): Fix sense of assertion test for
3290 creating pseudos when the base offset is too large.
3292 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3294 * global.c (earlyclobber_regclass): Change the type to
3296 (check_earlyclobber): Update uses of earlyclobber_regclass.
3297 (mark_reg_use_for_earlyclobber): Likewise.
3298 (calculate_local_reg_bb_info): Allocate and free
3299 earlyclobber_regclass using the VEC API.
3301 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
3303 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
3306 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3308 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
3311 * config.gcc: Obsolete c4x-* and tic4x-*.
3313 * tree.h (edge_def): Remove.
3315 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
3316 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
3317 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
3318 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
3321 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
3322 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
3323 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
3324 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
3325 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
3326 machmode.def, mips-tfile.c, params.c, pretty-print.c,
3327 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
3328 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
3329 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
3330 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
3331 config/i386/cygming.h, config/i386/djgpp.h,
3332 config/i386/lynx.h, config/i386/netware.c,
3333 config/i386/winnt.c, config/ia64/ia64-c.c,
3334 config/iq2000/iq2000.c, config/m32r/little.h,
3335 config/m68k/m68k-protos.h, config/m68k/m68k.h,
3336 config/m68k/m68k.md, config/mcore/mcore.c,
3337 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
3338 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
3339 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
3340 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
3341 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
3342 config/pdp11/pdp11.h, config/rs6000/darwin.h,
3343 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
3344 config/s390/2064.md, config/s390/2084.md,
3345 config/s390/s390-modes.def, config/s390/s390-protos.h,
3346 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
3347 config/stormy16/stormy16.c, config/vax/vax-protos.h,
3348 config/vax/vax.c, config/vax/vax.h,
3349 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
3352 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
3354 * c-typeck.c (build_compound_expr): Correct logic in last change.
3356 2005-04-27 James E. Wilson <wilson@specifixinc.com>
3358 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
3359 parameters. Replace conditional move code with assert checking for
3360 ar.lc. Delete obsolete comments.
3361 (set_src_needs_barrier): Delete cond parameter, and code using it.
3362 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
3363 assert checking for PR_REGS. Fix calls to update_set_flags and
3364 set_src_needs_barrier.
3365 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
3366 callers. Rewrite explanatory comment before the function.
3367 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
3370 2005-04-27 Mike Stump <mrs@apple.com>
3372 * doc/cpp.texi: gcc now implements universal character names.
3374 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
3377 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3378 being a compound expression whose right-hand side is cast to void.