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