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