1 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
4 * c-decl.c (pushdecl): When there is a declaration in the current
5 scope and the declarations are external linkage, check for
6 compatibility with the type in the external scope and update the
7 type in the external scope with the composite type information.
8 Do not form a composite type of the new type and the visible type
9 if they are incompatible.
11 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
13 * crtstuff.c: Revert part of 2005-05-08 Change.
16 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
18 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
19 remove redundant test.
21 (fp_high_losum_p): Remove redundant test.
22 * config/sparc/predicates.md (const_high_operand): Explicitly test
23 (not small_int_operand).
24 (fp_const_high_losum_operand): New.
25 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
26 (movdi_insn_sp32_v9): Use canonical predicates.
27 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
28 (movdi_insn_sp64_novis): Delete.
29 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
30 (movsf_insn_novis): Delete.
31 (movsf_insn_vis): Rename into movsf_insn.
32 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
33 (movsf_lo_sum): Use fp_const_high_losum_operand.
34 (movsf_high): Likewise.
35 (movsf_high_losum splitter): Likewise.
36 (mov<V32:mode> expander): Use register_or_zero_operand.
37 (mov<V64:mode> expander): Likewise.
38 (movdf_insn_sp32): Use register_or_zero_operand.
39 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
40 Rename into movdf_insn_sp32_no_fpu.
41 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
42 Rename into movdf_insn_sp32_v9_no_fpu.
43 (movdf_insn_v9only_novis): Delete.
44 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
45 (movdf_insn_sp64_novis): Delete.
46 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
47 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
48 Rename into movdf_insn_sp64_no_fpu.
49 (movtf expander): Use register_or_zero_operand.
50 (movtf_insn_sp32): Delete.
51 (movtf_insn_vis_sp32): Use register_or_zero_operand.
52 Rename into movtf_insn_sp32.
53 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
54 Rename into movtf_insn_sp32_no_fpu.
55 (movtf_insn_hq_sp64): Delete.
56 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
57 Rename into movtf_insn_sp64_hq.
58 (movtf_insn_sp64): Delete.
59 (movtf_insn_vis_sp64): Use register_or_zero_operand.
60 Rename into movtf_insn_sp64.
61 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
62 Rename into movtf_insn_sp64_no_fpu.
64 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
66 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
67 gcc_assert and gcc_unreachable as appropriate.
68 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
69 xstormy16_output_cbranch_si, xstormy16_split_move,
70 xstormy16_initial_elimination_offset,
71 xstormy16_encode_section_info, xstormy16_print_operand_address,
72 xstormy16_expand_call, xstormy16_expand_arith,
73 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
75 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
77 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
78 const_copies to VEC(tree,heap)*.
79 (new_elim_graph, delete_elim_graph, elim_graph_size,
80 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
83 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
86 * doc/extend.texi (Type Attributes): Correct example syntax.
88 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
91 * doc/invoke.texi (-Wuninitialized): Update documentation.
93 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
95 * arm.c (const_ok_for_arm): Use a faster algorithm.
97 2005-05-09 David Edelsohn <edelsohn@gnu.org>
100 * config/rs6000/rs6000.md (add_op2): New.
101 (add<mode>3): Use it.
103 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
105 * arm.c (arm_gen_constant): Add new heuristic for generating
106 constant integers that can be expressed as the difference of two
109 2005-05-09 Roger Sayle <roger@eyesopen.com>
111 * c-tree.h (parser_build_unary_op): New prototype.
112 * c-typeck.c (parser_build_unary_op): New function to construct
113 a unary operation in the C parser.
114 * c-parser.c (c_parser_unary_expression): Use the new function
115 parser_build_unary_op when appropriate.
117 2005-05-09 Mark Mitchell <mark@codesourcery.com>
120 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
121 before outputting DWARF_FRAME_RETURN_COLUMN.
123 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
125 * config/s390/s390.c: (s390_branch_condition_mask,
126 s390_branch_condition_mnemonic, s390_extra_constraint_str,
127 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
128 legitimize_pic_address, s390_emit_tls_call_insn,
129 legitimize_tls_address, legitimize_tls_address,
130 s390_expand_addcc, print_shift_count_operand, print_operand,
131 addr_generation_dependency_p, annotate_constant_pool_refs,
132 s390_split_branches, find_constant_pool_ref,
133 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
134 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
135 s390_output_pool_entry, s390_function_value,
136 s390_call_saved_register_used, s390_emit_call): Replace
137 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
138 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
139 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
140 get_some_local_dynamic_name, s390_function_arg_size,
141 s390_function_arg_advance, s390_function_arg,
142 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
143 default case by gcc_unreachable.
144 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
145 conditional abort by gcc_assert.
146 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
147 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
149 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
151 * config/s390/s390.c: (s390_decompose_address,
152 tls_symbolic_operand, legitimate_pic_operand_p,
153 legitimate_constant_p, legitimate_reload_constant_p,
154 s390_expand_plus_operand, legitimate_address_p,
155 legitimate_la_operand_p, ): Remove 'register' from signature.
156 (symbolic_reference_mentioned_p,
157 tls_symbolic_reference_mentioned_p): Remove 'register' from local
158 variable declarations.
159 (legitimize_address): Remove 'register' from
160 signature and local variable declarations.
162 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
164 * config/s390/s390-protos.h: (s390_match_ccmode,
165 s390_match_ccmode_set, reg_used_in_mem_p,
166 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
167 legitimate_la_operand_p, preferred_la_operand_p,
168 s390_short_displacement, addr_generation_dependency_p,
169 legitimate_reload_constant_p, legitimate_address_p): Change return type
171 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
172 * config/s390/s390.c: (s390_match_ccmode,
173 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
174 legitimate_reload_constant_p): Change return type into 'bool'.
175 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
176 Likewise. Additionally adapted comment.
177 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
178 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
179 (s390_decompose_address): Change the type of the internal flags
180 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
181 (struct s390_address): Change type of "pointer" into bool.
182 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
183 Adapt calls for 's390_tm_ccmode' to the new signature.
185 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
187 * config/s390/s390.c: (s390_match_ccmode_set,
188 s390_branch_condition_mnemonic, s390_short_displacement,
189 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
190 print_shift_count_operand, get_some_local_dynamic_name,
191 get_some_local_dynamic_name_1, reg_used_in_mem_p,
192 addr_generation_dependency_p, s390_split_branches,
193 annotate_constant_pool_refs, find_constant_pool_ref,
194 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
195 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
196 s390_register_info, s390_frame_info, s390_init_frame_layout,
197 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
198 restore_gprs, s390_function_arg_size, s390_function_arg_float,
199 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
200 s390_encode_section_info, s390_cannot_force_const_mem,
201 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
202 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
203 s390_adjust_priority, s390_issue_rate,
204 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
205 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
206 s390_build_builtin_va_list, s390_gimplify_va_arg,
207 s390_function_ok_for_sibcall, s390_call_saved_register_used,
208 s390_pass_by_reference, s390_fixed_condition_code_regs,
209 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
210 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
211 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
212 s390_add_pool_insn, s390_find_pool, s390_add_constant,
213 s390_find_constant, s390_add_execute, s390_find_execute,
214 s390_execute_label, s390_execute_target, s390_dump_pool,
215 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
216 Move target macro definitions to the end of the file. Move several
217 functions within the file to assure correct compiling.
219 2005-05-09 Steven Bosscher <stevenb@suse.de>
221 * calls.c (purge_reg_equiv_notes): Remove, fold into...
222 (fixup_tail_calls): ...here. Only look at insns between the
223 start of the function and the FUNCTION_BEG insn note.
225 * gcse.c (one_cprop_pass): Fix typos in dumps.
227 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
229 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
231 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
232 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
233 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
234 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
236 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
237 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
238 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
241 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
243 * config/s390/s390.md: ("gf") New mode attribute.
244 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
245 "fixuns_truncsfsi2"): Merge.
246 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
247 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
248 "fix_truncsfsi2_ieee"): Merge.
250 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
252 * config/s390/s390.md: ("FPR") New mode macro.
253 ("de", "dee"): New mode attributes.
254 ("cmpdf", "cmpsf"): Merge.
255 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
256 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
257 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
258 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
259 ("floatdidf2", "floatdisf2"): Merge.
260 ("adddf3", "addsf3"): Merge.
261 ("*adddf3", "*addsf3"): Merge.
262 ("*adddf3_cc", "*addsf3_cc"): Merge.
263 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
264 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
265 ("subdf3", "subsf3"): Merge.
266 ("*subdf3", "*subsf3"): Merge.
267 ("*subdf3_cc", "*subsf3_cc"): Merge.
268 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
269 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
270 ("muldf3", "mulsf3"): Merge.
271 ("*muldf3", "*mulsf3" "): Merge.
272 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
273 ("*fmadddf", "*fmaddsf"): Merge.
274 ("*fmsubdf", "*fmsubsf"): Merge.
275 ("divdf3", "divsf3"): Merge.
276 ("*divdf3", "*divsf3"): Merge.
277 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
278 ("negdf2", "negsf2"): Merge.
279 ("*negdf2_cc", "*negsf2_cc"): Merge.
280 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
281 ("*negdf2", "*negsf2"): Merge.
282 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
283 ("absdf2", "abssf2"): Merge.
284 ("*absdf2_cc", "*abssf2_cc"): Merge.
285 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
286 ("*absdf2", "*abssf2"): Merge.
287 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
288 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
289 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
290 ("*negabsdf2", "*negabssf2"): Merge.
291 ("sqrtdf2", "sqrtsf2"): Merge.
293 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
295 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
297 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
298 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
299 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
300 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
302 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
303 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
304 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
305 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
306 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
307 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
308 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
309 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
310 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
311 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
312 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
313 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
314 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
315 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
316 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
317 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
319 ("*divsf3"): Additionally rename second pattern to
321 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
322 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
323 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
324 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
325 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
326 'type values' and rename 'type' value.
327 ("*addsf3"): Additionally rename second pattern to
330 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
332 * config/s390/s390.md: ("SHIFT"): New mode macro.
333 ("lr", "shift"): New mode attributes.
334 ("ashldi3", "lshrdi3"): Merge.
335 ("*ashldi3_31", "*lshrdi3"_31): Merge.
336 ("*ashldi3_64", "*lshrdi3"_64): Merge.
337 ("ashlsi3", "lshrsi3"): Merge.
339 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
341 * config/s390/s390.md: ("DSI", "SCOND"): New mode
343 ("E", "g"): New mode attributes.
344 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
345 ("*adddi3_alc", "*addsi3_alc"): Merge.
346 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
347 ("*subdi3_slb", "*subsi3_slb"): Merge.
348 ("adddicc", "addsicc"): Merge.
349 ("*sconddi", "*scondsi"): Merge.
350 ("*sconddi_neg", "*scondsi_neg"): Merge.
351 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
352 ("negdi2", "negsi2"): Extract expander pattern from
353 "negsi2" and merge with "negdi2".
354 ("*negdi2"): Merge with instruction pattern of "negsi2".
355 ("*negdi2_cc", "*negsi2_cc"): Merge.
356 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
357 ("rotldi3", "rotlsi3"): Merge.
359 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
361 * config/s390/s390.md: ("hc"): New mode attribute.
362 ("extendhidi2", "extendqidi2"): Merge.
363 ("*extendhidi2", "*extendqidi2"): Merge.
364 ("extendhisi2", "extendqisi2"): Merge.
365 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
366 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
367 Merged 2 define_split.
368 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
369 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
371 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
373 * config/s390/s390.md: ("COMPARE"): New mode macro.
374 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
375 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
376 "bungt", "bunle", "bunge", "bltgt"): Merge.
378 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
380 * config/s390/s390.md: ("INT"): New mode macro.
381 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
384 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
386 * config/s390/s390.md: ("GPR", "P"): New mode macros.
387 ("cmpdi", "cmpsi"): Merge.
388 ("strlendi", "strlensi"): Merge.
389 ("*strlendi", "*strlensi"): Merge.
390 ("movmemdi", "movmemsi"): Merge.
391 ("clrmemdi", "clrmemsi"): Merge.
393 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
395 * config/s390/s390.md: ("HQI"): New mode macro.
396 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
397 ("*tmhi_full", "*tmqi_full"): Merge.
398 ("*tsthiCCT", "*tstqiCCT"): Merge.
399 ("*tsthi", "*tstqi"): Merge.
400 ("*tsthi_cconly", "tstqi_cconly"): Merge.
401 ("*sethighhisi", "*sethighqisi"): Merge.
403 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
405 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
406 config/alpha/unicosmk.h, config/arc/arc.md,
407 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
408 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
409 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
410 config/arm/semi.h, config/arm/uclinux-elf.h,
411 config/arm/wince-pe.h, config/fr30/fr30.c,
412 config/rs6000/altivec.h: Update copyright.
414 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
416 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
417 gcc_assert and gcc_unreachable as appropriate.
418 (pdp11_output_function_epilogue, output_move_double,
419 output_move_quad, print_operand_address, output_jump,
420 output_addr_const_pdp11): Likewise.
421 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
422 ASM_OUTPUT_ALIGN): Likewise.
423 * config/pdp11/pdp11.md: Likewise.
424 (extendhisi2, subhi3, subqi3): Likewise.
426 2005-05-09 David Edelsohn <edelsohn@gnu.org>
429 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
432 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
434 * config/ia64/ia64.c: Fix a comment typo.
436 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
439 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
440 (arm_override_options): Use them instead of manifest constants. Don't
441 allow -march to override the -mtune setting.
443 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
445 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
446 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
447 (function_arg_advance, function_arg, save_restore_insns,
448 iq2000_expand_prologue, iq2000_output_conditional_branch,
449 expand_one_builtin, print_operand):
450 * config/iq2000/iq2000.md (tablejump): Likewise.
452 2005-05-09 David Ung <davidu@mips.com>
454 * config/mips/mips.h (processor_type): Add names for the 24K.
455 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
457 * config/mips/mips.md (cnv_mode): New attribute for recording the
458 conversion types of float convert insns.
459 (cpu): Add 24k and 24kx.
460 (include): Include 24k.md file.
461 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
462 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
463 (floatdisf2): Setup cnv_mode.
464 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
466 * config/mips/24k.md: New file, contains 24k DFA pipeline
469 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
471 * config/sh/sh.c (print_operand_address): Use gcc_assert and
472 gcc_unreachable as appropriate.
473 (print_operand, prepare_move_operands, prepare_scc_operands,
474 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
475 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
476 fixup_mova, gen_far_branch, sh_reorg, split_branches,
477 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
478 sh_set_return_address, sh_setup_incoming_varargs,
479 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
480 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
481 check_use_sfunc_addr): Likewise.
482 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
483 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
484 * config/sh/symbian.c (sh_symbian_mark_dllexport,
485 sh_symbian_mark_dllimport): Likewise.
486 * config/sh/sh.md: Likewise.
487 (movdicc, call_pop, call_value_pop, casesi_worker_1,
488 casesi_worker_2, casesi_shift_media, casesi_load_media,
489 return_media): Likewise.
491 2005-05-08 Roger Sayle <roger@eyesopen.com>
494 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
497 2005-05-08 Richard Henderson <rth@redhat.com>
499 * config/alpha/alpha.c (adjust_address): Fix typo last change.
501 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
503 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
504 and -1 can happen in reg_renumber when no hard register is assigned.
506 2005-05-08 Steven Bosscher <stevenb@suse.de>
507 Kazu Hirata <kazu@cs.umass.edu>
509 PR tree-optimization/14841, tree-optimization/15838
510 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
511 (evaluate_stmt): Call it.
513 2005-05-08 Jakub Jelinek <jakub@redhat.com>
515 * config/ia64/ia64.c (ia64_override_options): Don't set
516 ia64_flag_var_tracking and clear flag_var_tracking here...
517 (ia64_file_start): ... but here.
519 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
521 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
522 and gcc_unreachable as appropriate.
523 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
524 m68hc11_gen_highpart, print_operand, print_operand_address,
525 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
526 m68hc11_gen_movhi): Likewise.
527 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
528 * config/m68hc11/m68hc11.md: Reword comment.
530 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
533 * config/m68hc11/predicates.md (splitable_operand): An immediate is
536 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
538 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
539 the 68HC12 address indirect addressing mode as it is not supported by
541 * config/m68hc11/m68hc11-protos.h
542 (m68hc11_valid_addressing_p): Declare.
543 (m68hc11_add_mode): Declare.
544 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
545 register_indirect_p and export it.
546 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
547 instruction so that it is part of the good BB.
548 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
549 addressing with movw.
550 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
552 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
553 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
554 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
556 ("*movhi_68hc12"): Handle movhi_const0.
557 ("*subhi3", "subqi3"): Use general_operand for operand 1.
558 ("*subhi3_zext"): Likewise.
560 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
563 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
564 operand 1 and fix constraints.
565 ("mulqihi3"): Use general_operand for operand 2.
567 2005-05-08 Julian Brown <julian@codesourcery.com>
568 H.J. Lu <hongjiu.lu@intel.com>
569 Paul Brook <paul@codesourcery.com>
571 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
572 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
573 20050308/2.16.0 or newer for comdat group.
574 * configure: Regenerated.
575 * config.in: Regenerated.
576 * varasm.c (default_function_rodata_section): Put .rodata section in
577 COMDAT group when necessary.
578 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
580 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
583 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
585 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
587 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
588 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
589 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
590 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
592 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
595 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
596 64-bit constants on 64-bit hosts.
597 (m68hc11_split_logical): Simplify.
598 (m68hc11_split_move): Likewise.
600 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
601 Paolo Bonzini <bonzini@gnu.org>
603 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
604 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
605 * configure.ac (enable_checking): Fix typos in runtime_checking.
606 (ENABLE_RUNTIME_CHECKING): Mark as target template.
607 (xm_file): Prepend auto-host.h
608 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
609 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
611 * crtstuff.c: Do not include auto-host.h.
612 (IN_LIBGCC2): Do not define.
613 * gcov-io.h: Include tconfig.h, not auto-host.h.
614 * libgcc2.c: Do not include auto-host.h.
615 (abort): Do not undefine.
616 * libgcov.c: Remove unneeded comment about config.h.
617 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
618 * config.in, configure: Regenerated.
620 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
621 Falk Hueffner <falk@debian.org>
623 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
624 and gcc_unreachable as appropriate.
625 (get_aligned_mem, get_unaligned_address,
626 alpha_emit_set_long_const, alpha_emit_conditional_branch,
627 alpha_emit_setcc, alpha_emit_conditional_move,
628 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
629 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
630 alpha_expand_unaligned_load, alpha_expand_block_move,
631 alpha_expand_zap_mask, get_trap_mode_suffix,
632 get_round_mode_suffix, get_some_local_dynamic_name,
633 print_operand_address, function_arg, alpha_return_in_memory,
634 function_value, alpha_expand_builtin,
635 alpha_initial_elimination_offset, alpha_expand_epilogue,
636 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
637 alphaev5_next_group, alpha_align_insns,
638 unicosmk_initial_elimination_offset, unicosmk_unique_section,
639 unicosmk_ssib_name): Likewise.
640 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
641 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
642 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
643 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
644 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
645 * config/alpha/alpha.md (*divmodsi_internal_er,
646 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
647 call_nt, call_umk, call_vms, call_value, sibcall_value,
648 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
649 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
650 * config/alpha/predicates.md (input_operand): Likewise.
652 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
654 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
655 gcc_unreachable, as appropriate.
656 (frv_function_prologue, frv_alloc_temp_reg,
657 frv_initial_elimination_offset, frv_expand_block_move,
658 frv_expand_block_clear, frv_print_operand_jump_hint,
659 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
660 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
661 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
662 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
663 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
664 frv_in_small_data_p, frv_asm_out_constructor,
665 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
666 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
667 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
668 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
669 sibcall_value, casesi): Likewise.
671 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
672 gcc_unreachable as appropriate.
673 (print_operand_address, mn10300_print_reg_list, expand_prologue,
674 expand_epilogue, notice_update_cc, initial_offset,
675 mn10300_address_cost_1): Likewise.
676 * config/mn10300/mn10300.md: Likewise.
677 (absdf2, abssf2, negdf2, negsf2): Likewise.
679 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
682 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
684 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
685 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
686 including sunge_<mode> and sungt_<mode>.
688 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
690 * integrate.h (get_hard_reg_initial_val): Change type of register
691 parameter from int to unsigned int.
692 (has_hard_reg_initial_val): Likewise.
693 * integrate.c (get_hard_reg_initial_val): Likewise.
694 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
696 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
698 * except.c (eh_status): Change the type of ttype_data to
700 (add_ttypes_entry, assign_filter_values,
701 output_function_exception_table): Use VEC instead of VARRAY.
703 2005-05-07 David Edelsohn <edelsohn@gnu.org>
705 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
707 2005-05-07 Paul Brook <paul@codesourcery.com>
709 * Makefile.in: Fix dependencies.
710 (GCOV_IO_H, VARRAY_H): Set.
712 2005-05-07 Anthony Green <green@redhat.com>
715 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
716 x$STMP_FIXPROTO test.
717 * configure: Rebuilt.
719 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
721 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
722 inappropriate feature test macros if flag_iso.
724 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
726 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
728 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
731 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
732 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
733 Handle moved operand being in special register.
734 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
735 presumed working insn.
736 (mover2side): Add FIXME.
738 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
740 * integrate.c (get_func_hard_reg_initial_val): Delete.
741 (has_func_hard_reg_initial_val): Delete.
742 (get_hard_reg_initial_val): Inline the old implementation of
743 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
744 instead of has_func_hard_reg_initial_val to test for an existing
745 pseudo. Only create an rtx if a new initial value entry is needed.
746 (has_hard_reg_initial_val): Scan the initial value list directly.
749 2005-05-07 David Edelsohn <edelsohn@gnu.org>
751 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
753 * config.in (HAVE_AS_POPCNTB): New.
754 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
755 (HAVE_AS_POPCNTB): New.
756 * configure: Regenerated.
757 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
758 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
759 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
760 and rs6000_sched_costly_dep.
761 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
762 (TARGET_XL_COMPAT): Delete.
763 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
764 (popcount<mode>2): New.
765 (popcntb<mode>2): New.
766 * config/rs6000/rs6000.opt (mpopcntb): New.
768 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
769 if variable name exists.
771 2005-05-07 Matt Kraai <kraai@ftbfs.org>
773 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
775 2005-05-07 Richard Henderson <rth@redhat.com>
778 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
779 with constant offsets.
781 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
783 * config/v850/v850.c (print_operand): Use gcc_assert and
784 gcc_unreachable, as appropriate.
785 (print_operand_address, v850_handle_data_area_attribute,
786 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
787 v850_insert_attributes, construct_prepare_instruction): Likewise.
788 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
789 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
791 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
793 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
794 config/rs6000/rs6000.h: Fix comment typos.
796 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
798 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
799 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
800 (mips_scalar_mode_supported_p): Delete.
802 2005-05-06 Eric Christopher <echristo@redhat.com>
804 * config/mips/mips.opt: Remove -mint64 option.
805 * config/mips/mips.c (override_options): Remove -mint64
807 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
808 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
809 64-bit integer handling.
810 * doc/invoke.texi (Option Summary): Remove -mint64 for
813 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
815 PR tree-optimization/19401
816 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
817 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
818 (estimated_unrolled_size): New function.
819 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
820 tree_unroll_loops_completely): Always unroll loops if the code size
822 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
823 loops should be unrolled completely.
824 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
826 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
828 PR rtl-optimization/21254
829 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
830 assumptions for loops that otherwise do not roll.
831 (find_simple_exit): Prefer # of iterations that is guaranteed
833 * loop-unroll.c (decide_peel_once_rolling,
834 decide_peel_completely): Check whether the loop is infinite.
836 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
838 * config/rs6000/sysv4.opt: Fix typo.
840 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
841 Jakub Jelinek <jakub@redhat.com>
844 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
845 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
846 Don't use rep; movs{l,q} if the repetition count is really small,
847 instead use a sequence of movs{l,q} instructions.
849 2005-05-06 Jeff Law <law@redhat.com>
851 PR tree-optimization/21380
852 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
853 thread through a block with no preds.
855 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
857 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
858 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
859 add_call_read_ops): Use VEC instead of VARRAY.
861 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
863 * config/mcore/mcore.c (mcore_print_operand_address): Use
864 gcc_assert and gcc_unreachable as appropriate.
865 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
866 mcore_output_andn, output_inline_const, mcore_output_move,
867 mcore_output_movedouble, mcore_expand_block_move,
868 layout_mcore_frame, mcore_initial_elimination_offset,
869 mcore_expand_prolog, mcore_mark_dllexport,
870 mcore_mark_dllimport): Likewise.
871 * config/mcore/mcore.h (switch_to_section): Likewise.
872 * config/mcore/mcore.md: Likewise.
874 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
876 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
877 TARGET_PROFILE_KERNEL.
879 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
880 TARGET_PROFILE_KERNEL use.
882 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
884 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
885 and gcc_unreachable, as appropriate.
886 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
887 m32r_expand_prologue, m32r_output_function_epilogue,
888 m32r_legitimize_pic_address, m32r_print_operand_address,
889 emit_cond_move, m32r_function_symbol,
890 m32r_output_block_move): Likewise.
891 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
892 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
893 *rev_zero_branch_insn): Likewise.
895 2005-05-06 Jakub Jelinek <jakub@redhat.com>
898 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
899 if both NEWDECL and OLDDECL are already weak.
901 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
903 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
905 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
906 Kaz Kojima <kkojima@gcc.gnu.org>
908 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
911 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
912 David Edelsohn <edelsohn@gnu.org>
914 * config.gcc: Add .opt magic for the rs6000 ports.
916 * doc/invoke.texi: Document -mabi= option properly. Document
917 -misel and -mno-sel. Document -mspe and -mno-spe. Document
918 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
921 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
922 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
925 * config/rs6000/aix.opt: New.
926 * config/rs6000/aix41.opt: New.
927 * config/rs6000/aix64.opt: New.
928 * config/rs6000/darwin.opt: New.
929 * config/rs6000/linux64.opt: New.
930 * config/rs6000/rs6000.opt: New.
931 * config/rs6000/sysv4.opt: New.
933 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
934 associated TARGET_*. Remove SUBTARGET_OPTIONS,
936 Define TARGET_USES_SYSV4_OPT.
937 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
938 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
939 TARGET_USES_AIX64_OPT.
940 * config/rs6000/aix51.h: Same.
941 * config/rs6000/aix52.h: Same.
942 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
943 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
944 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
945 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
946 * config/rs6000/linux64.h: Use
947 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
949 * config/rs6000/rs6000.c: Remove definitions of
950 rs6000_sched_restricted_insns_priority,
951 rs6000_long_double_size_string, rs6000_altivec_vrsave,
952 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
953 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
954 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
955 rs6000_alignment_string. Define rs6000_explicit_options.
956 (rs6000_parse_abi_options): Remove.
957 (rs6000_parse_alignment_option): Remove.
958 (rs6000_parse_float_gprs_option): Remove.
959 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
960 TARGET_DEFAULT_TARGET_FLAGS.
961 (rs6000_override_options): Revamp to use new .opt machinery.
963 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
964 of new .opt machinery. Remove target_flags. Redefine
965 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
966 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
967 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
968 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
969 rs6000_longcall_switch, rs6000_default_long_calls,
970 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
971 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
972 TARGET_ALTIVEC_VRSAVE.
974 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
976 * config.gcc (hppa1.1-*-rtems*): Remove.
977 * config/pa/rtems.h: Remove.
979 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
981 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
982 Exclude roe/603e multilib variants.
984 2005-05-04 Denis Chertykov <denisc@overta.ru>
987 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
990 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
992 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
993 arm/pe.opt to $extra_options.
994 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
995 (target_float_abi_name, target_float_switch, target_abi_name)
996 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
997 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
998 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
999 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
1000 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
1001 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
1002 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
1003 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
1004 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
1005 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
1006 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
1007 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
1008 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
1009 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
1010 (arm_pic_register_string): Delete.
1011 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1013 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1014 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1015 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1016 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1017 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1018 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1019 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1020 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1021 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1022 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1023 (SUBTARGET_SWITCHES): Delete.
1024 * config/arm/arm.c (target_float_switch): Delete.
1025 (arm_cpu_select): Moved from config/arm/arm.h.
1026 (target_fpu_name, target_fpe_name, target_float_abi_name)
1027 (target_abi_name, structure_size_string, arm_pic_register_string)
1028 (arm_select): Make static.
1029 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1030 (arm_handle_option): New function.
1031 (arm_override_options): Update target_flags checks for new mask names.
1032 Remove target_float_switch code.
1033 (arm_expand_prologue, thumb_expand_prologue): Check
1034 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1035 * config/arm/arm.opt, config/arm/pe.opt: New files.
1037 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
1039 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1040 gcc_unreachable as appropriate.
1041 (arc_double_limm_p, arc_setup_incoming_varargs,
1042 arc_compute_function_type, arc_output_function_prologue,
1043 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1044 output_shift, arc_print_operand, arc_print_operand_address,
1045 arc_final_prescan_insn): Likewise.
1046 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1048 2005-05-04 Geoffrey Keating <geoffk@apple.com>
1050 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1055 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1056 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1057 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1058 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1059 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1060 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1061 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1062 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1064 2005-05-05 Paul Brook <paul@codesourcery.com>
1066 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1067 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1068 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1069 and tree-data-ref.h with *_H variables.
1071 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
1073 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1075 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
1077 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1079 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
1081 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1083 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1085 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1086 setting of vrsave register for current function after
1087 call to save_world is emitted.
1089 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
1091 * config/mmix/predicates.md: New file.
1092 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1093 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1094 (mmix_foldable_comparison_operator, mmix_comparison_operator)
1095 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1096 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1098 * config/mmix/mmix.md: Include predicates.md.
1099 ("call", "call_value"): Force address to register if it isn't a
1100 mmix_symbolic_or_address_operand.
1102 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
1104 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1105 the flags are of appropriate types.
1106 (num_ssa_operands): Generalize using the generic interface.
1107 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1110 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
1112 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1113 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1115 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1117 * tree-outof-ssa.c (edge_leader, stmt_list,
1118 analyze_edges_for_bb): Use VEC instead of VARRAY.
1119 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1120 (perform_edge_inserts): Call init_analayze_edges_for_bb and
1121 fini_analayze_edges_for_bb.
1123 2005-05-04 James E Wilson <wilson@specifixinc.com>
1126 * gcc.c (process_command): In the second argv scan loop, ignore
1127 Xassembler and Xpreprocessor, along with their argument.
1129 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1131 * tree-flow-inline.h, tree-ssa-operands.c,
1132 tree-ssa-operands.h, tree-ssa-opfinalize.h:
1133 Likewise. tree-vn.c: Fix comment typos.
1134 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1136 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
1138 * doc/tm.texi (Target Hooks): Document
1139 TARGET_RESOLVE_OVERLOADED_BUILTIN.
1141 2005-05-04 Paul Brook <paul@codesourcery.com>
1143 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1145 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1147 * dwarf2out.c (incomplete_types, retry_incomplete_types,
1148 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1151 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1152 get_expansion, expand_var_during_unrolling,
1153 insert_var_expansion_initialization,
1154 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1157 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1160 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
1163 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1164 the same as INTEGER_TYPE.
1165 (fold_binary): Fold "bool_var != 0" to bool_var.
1166 Fold "bool_var == 1" to bool_var.
1168 2004-05-03 Richard Henderson <rth@redhat.com>
1171 * function.c (instantiate_virtual_regs_in_insn): Use the mode
1172 from recog_data instead of insn_data.
1174 2005-05-03 DJ Delorie <dj@redhat.com>
1176 * common.opt (fdiagnostics-show-option): No variable is needed.
1177 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1178 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1179 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1180 Save and restore original message format. Use flag in context
1182 (warning): Don't test for enabled warnings here.
1183 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1186 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
1188 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1189 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1190 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1191 * aclocal.m4: Don't include accross.m4.
1192 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1193 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1194 * configure, config.in: Regenerate.
1196 2005-05-04 Jakub Jelinek <jakub@redhat.com>
1199 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1200 (clear_storage): Add argument.
1201 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1202 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1204 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1205 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1206 (store_expr, store_constructor): Adjust callers.
1207 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1208 to emit_block_move if CALL_EXPR_TAILCALL (exp).
1209 (expand_builtin_memmove): Add ORIG_EXP argument, copy
1210 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1211 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1212 with EXP. Pass EXP to expand_builtin_memmove.
1213 (expand_builtin_memset): Add ORIG_EXP argument, pass
1214 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1215 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1216 Pass EXP to expand_builtin_memset.
1217 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1219 (expand_builtin_strncmp): Likewise.
1220 (expand_builtin_printf): Replace ARGLIST argument with EXP.
1221 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1222 (expand_builtin_fprintf): Likewise.
1223 (expand_builtin): Adjust calls to
1224 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1226 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1229 PR rtl-optimization/21239
1230 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1232 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
1234 * tree-flow.h (tree_ann_common_d): Move aux to ...
1235 (stmt_ann_d): ... here.
1236 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1237 move_computations_stmt, schedule_sm): Update references to
1239 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1241 * tree-cfg.c (remove_bb): Remove a redundant call to
1243 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1246 2005-05-03 Richard Henderson <rth@redhat.com>
1248 * config/rs6000/rs6000.c: Remove conflict markers.
1250 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1252 2005-05-03 James E Wilson <wilson@specifixinc.com>
1254 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1256 2005-05-03 DJ Delorie <dj@redhat.com>
1258 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1259 decide if the warning will be printed.
1260 * calls.c (expand_call): Likewise.
1261 * function.c (init-function_start): Likewise.
1263 * common.opt (-fdiagnostics-show-option): New.
1264 * opts.c (option_enabled): Accept the option index instead of a
1265 pointer to the option descriptor.
1266 * opts.h (option_enabled): Likewise.
1267 * toplev.c (print_switch_values): Pass option index, not option
1269 * diagnostic.h (diagnostic_info): Add option_index.
1270 * diagnostic.c: Include opts.h.
1271 (diagnostic_set_info): Initialize option_index.
1272 (diagnostic_report_diagnostic): Amend option name if appropriate.
1273 (warning): Check to see if the specified warning is enabled.
1275 * doc/invoke.texi (-fdiagnostics-show-options): Document.
1277 2005-05-03 Richard Henderson <rth@redhat.com>
1279 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1280 SPEC_OR_GEN_REGS definitions.
1282 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
1285 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1286 for unavailable registers.
1288 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
1290 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1292 * cfglayout.c (block_locators_blocks,
1293 insn_locators_initialize, insn_scope): Use VEC instead of
1296 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1297 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1300 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1302 * config/sparc/predicates.md (const_compl_high_operand): New.
1303 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1305 (sparc_emit_set_const64_quick1): Adjust for above change.
1306 (sparc_emit_set_const64_quick2): Likewise.
1307 (sparc_emit_set_const64_longway): Likewise.
1308 (sparc_emit_set_const64): Likewise.
1309 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1310 movdi_const64_special): Delete.
1311 (logical constant splitters): Use const_compl_high_operand.
1313 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
1315 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1316 rather than STRIP_NOPS.
1318 2005-05-03 Jakub Jelinek <jakub@redhat.com>
1320 PR rtl-optimization/21330
1321 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
1323 (unswitch_single_loop): Clear cinsn when retrying.
1326 * config/i386/i386.c (legitimize_address): When canonicalizing
1327 ASHIFT into MULT, multiply by 1 << shift_count instead of
1328 1 << log2 (shift_count).
1330 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
1332 * lambda-code.c (gcc_loop_to_lambda_loop,
1333 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
1334 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
1335 generic operand interface.
1336 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
1337 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
1338 generic operand interface.
1339 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
1340 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
1341 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
1342 num_imm_uses): Use ssa_use_operand_t.
1343 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
1344 get_v_must_def_ops): Delete.
1345 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
1346 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
1347 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
1348 get_v_must_def_kill_ptr): Delete.
1349 (delink_stmt_imm_use): Move and use new operand interface.
1350 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
1351 op_iter_next_tree): Use new operand implementation.
1352 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
1353 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
1355 (op_iter_next_mustdef, op_iter_next_maydef,
1356 op_iter_next_must_and_may_def): Delete. Replace with...
1357 (op_iter_next_maymustdef): New. Combine must and may next operations.
1358 (op_iter_init_maydef, op_iter_init_mustdef,
1359 op_iter_init_must_and_may_def): Use new interface.
1360 (single_ssa_tree_operand ): New. Process single operands only as trees.
1361 (single_ssa_use_operand): New. Process single operands only as uses.
1362 (single_ssa_def_operand): New. Process single operands only as defs.
1363 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
1365 (num_ssa_operands): New. Count the number of specified operands.
1366 (compare_ssa_operands_equal): New. Compare two statements' operands.
1367 (single_phi_def): New. Return true if PHI has one def of the specified
1369 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
1370 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
1371 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
1372 (struct stmt_ann_d): Operands field no longer require GTY().
1373 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
1374 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1375 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1376 dump_replaceable_exprs, rewrite_trees): Use generic interface.
1377 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
1378 Use use_operand_p instead of ssa_imm_use_t *.
1379 * tree-pretty-print.c (dump_vops): check if operands are active before
1380 dumping virtual operands.
1381 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
1382 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
1383 (ccp_fold): Use new interface.
1384 (ccp_visit_stmt): Remove unused variables and code.
1385 (convert_to_gimple_builtin): Insert statements before calling
1386 mark_new_vars_to_rename.
1387 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
1388 (copy_prop_visit_cond_stmt): Use generic interface.
1389 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
1390 annotation in table.
1391 (thread_across_edge): Use generic interface.
1392 (initialize_hash_element): Initialzie with stmt, not annotation.
1393 (eliminate_redundant_computations): Use generic interface.
1394 (record_equivalences_from_stmt): Pass stmt, not annotation.
1395 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
1397 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1398 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
1399 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
1400 generic operand interface.
1401 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
1403 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
1405 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
1406 (build_defs, build_uses, build_v_may_defs, build_vuses,
1407 build_v_must_defs): Change type to struct opbuild_list_d.
1408 (ops_active): New. Operands active boolean.
1409 (operand_memory, operand_memory_index): New. Operand memory managers.
1410 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1411 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1412 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1413 Change from functions to static variable list heads.
1414 (opbuild_initialize_virtual): New. Initialize a virtual build list.
1415 (opbuild_initialize_real): New. Initialize a virtual build list.
1416 (opbuild_free): New. Free a build list.
1417 (opbuild_num_elems): New. Number of items in a list.
1418 (opbuild_append_real): New. Add a real (tree *) operand.
1419 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
1420 (opbuild_first): New. Return first element index in a list.
1421 (opbuild_next): New. Return next element in a list.
1422 (opbuild_elem_real): New. Return real element.
1423 (opbuild_elem_virtual): New. Return virtual element.
1424 (opbuild_elem_uid): New. Return UID of virtual element.
1425 (opbuild_clear): New. Reset an operand list.
1426 (opbuild_remove_elem): New. Remove an element form a list.
1427 (ssa_operands_active): New. Return true if operand cache is active.
1428 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
1429 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
1430 (correct_use_link): Use use_operand_p.
1431 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1432 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
1433 (cleanup_v_may_defs): Use new implmentation.
1434 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
1436 (append_def, append_use, append_v_may_def, append_vuse,
1437 append_v_must_def): Call opbuild_append routine instead of using varray.
1438 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
1439 global parse_old_ops variable.
1440 (free_ssa_operands): New implementation.
1441 (update_stmt_operands): Move. Change argument to build_ssa_operands.
1442 (copy_virtual_operands): Move. New generic implementation.
1443 (create_ssa_artficial_load_stmt): Move. New implementation.
1444 (swap_tree_operands): Update for new implementation.
1445 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
1446 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
1447 rather than a varray.
1448 (verify_imm_links): Use use_operand_p.
1449 (dump_immediate_uses_for): If the immediate use variable is a virtual
1450 variable, show the virtual ops in the stmt.
1451 * tree-ssa-operands.h (def_operand_p): No longer a structure.
1452 (NULL_DEF_OPERAND_P): Now a #define.
1453 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
1454 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
1455 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
1456 mustdef_optype_d): New. Use Linked list representation.
1457 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
1458 (struct ssa_operand_memory_d): New. Allocated Chunk node.
1459 (struct stmt_operands_d): Change to new pointers that are not GTY.
1460 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
1461 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
1462 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1463 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
1464 SET_V_MUST_DEF_KILL): Delete.
1465 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
1466 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1467 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
1468 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
1469 (enum ssa_op_iter_type): Operand iterator typechecking values.
1470 (struct ssa_operand_iterator_d): Use linked lists of operands.
1471 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
1472 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
1473 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
1474 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
1475 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
1476 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
1477 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
1478 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
1479 * tree-ssa-opfinalize.h: New. Function templates for expansion.
1480 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
1481 alloc_vuse, and alloc_mustdef.
1482 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
1483 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1484 and finalize_ssa_v_must_def_ops.
1485 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
1486 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
1488 (compute_avail): Use generic iterator interface.
1489 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1490 (stmt_makes_single_load, stmt_makes_single_store): Use
1492 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
1493 (statement_sink_location): Use generic interface.
1494 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
1495 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
1496 reset the immediate use link nodes.
1497 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
1498 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
1499 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
1500 (eliminate_tail_call): Use generic operand interface.
1501 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1502 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
1504 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
1506 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
1507 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
1509 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
1510 Use statement pointer instead of vuse_optype. Use generic interface.
1511 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
1512 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
1513 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
1514 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
1515 * doc/tree-ssa.texi: Update documentation for operand interface.
1517 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
1519 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
1520 gcc_unreachable as appropriate.
1521 (machopic_function_base_name, machopic_indirect_data_reference,
1522 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
1523 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
1524 * config/rs6000/altivec.md (*mov<mode>_internal,
1525 build_vector_mask_for_load): Likewise.
1526 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
1527 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
1528 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
1529 * config/rs6000/predicates.md (easy_fp_constant,
1530 logical_operand): Likewise.
1531 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
1532 compute_save_world_info, rs6000_emit_prologue,
1533 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
1534 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
1537 2005-05-03 Uros Bizjak <uros@kss-loka.si>
1540 * convert.c (convert_to_integer): Convert ceil and floor in
1543 2005-04-29 Geoffrey Keating <geoffk@apple.com>
1546 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
1547 define_insn_and_split. Split only when memory operand is
1548 offsettable. Use adjust_address rather than plus_constant.
1549 (floatunssidf2_internal): Likewise.
1550 (fix_truncdfsi2_internal): Split only when memory operand is
1551 offsettable. Use adjust_address rather than plus_constant.
1552 (fix_trunctfsi2_internal): Likewise.
1553 (floatsidf2_internal): Likewise.
1555 2005-05-02 Diego Novillo <dnovillo@redhat.com>
1557 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
1558 (set_value_range_to_null): Likewise.
1559 (set_value_range_to_varying): New function. Use it in all
1560 call sites that used to call set_value_range (vr, VR_VARYING, ...).
1561 (extract_range_from_assert): If the integral type has a
1562 super-type, and LIMIT is not within MIN and MAX values of that
1563 type, set the resulting range to VR_VARYING.
1565 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
1567 * config/mmix/mmix.opt: New file.
1568 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
1569 (mmix_cc1_ignored_option): Don't declare.
1570 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
1571 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
1572 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
1573 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
1574 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
1575 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
1576 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
1577 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
1579 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
1580 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
1581 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1583 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
1586 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
1587 * c-decl.c (current_function_prototype_built_in,
1588 current_function_prototype_arg_types): New.
1589 (merge_decls): Keep source location of prototype followed by
1590 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
1591 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
1592 (start_function): Always set current_function_prototype_locus,
1593 current_function_prototype_built_in and
1594 current_function_prototype_arg_types. Check for external
1595 prototype whether or not visible for external function and set
1596 current_function_prototype_arg_types accordingly.
1597 (store_parm_decls_oldstyle): Use
1598 current_function_prototype_arg_types for checking old-style
1599 definition against prototype. Give warnings only if
1600 current_function_prototype_built_in).
1602 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
1604 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
1605 (ggc_alloc_zone_stat): Don't define.
1606 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
1607 ggc_alloc_zone_pass_stat.
1608 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
1609 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
1610 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
1612 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
1614 * calls.c (expand_call): Handle current_function_pretend_args_size
1615 when checking for sibcalls.
1617 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1619 PR tree-optimization/21294
1620 * tree-vrp.c (vrp_expr_computes_nonzero): New.
1621 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
1623 2005-05-02 Janis Johnson <janis187@us.ibm.com>
1626 * gcov-io.h: Declare gcov external functions hidden.
1628 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1630 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
1631 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
1632 Use VEC instead of VARRAY.
1635 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
1638 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
1640 * c-common.c (resolve_overloaded_builtin): Forward to target
1641 hook for BUILT_IN_MD built-ins.
1642 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
1643 for all types of built-in.
1644 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
1645 in the definition of the target hooks struct.
1646 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
1647 * config/rs6000/altivec.h: Rewritten.
1648 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
1649 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
1650 rs6000_builtin_type, rs6000_builtin_type_compatible,
1651 altivec_overloaded_builtins, rs6000_builtin_type,
1652 rs6000_builtin_type_compatible): New.
1653 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
1655 (def_builtin): Turn into a function. Check for duplicates and store
1656 the builtin into rs6000_builtin_decls.
1657 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
1658 bdesc_1arg): Add overloaded builtins.
1659 (altivec_expand_builtin): Check for unresolved overloaded builtins,
1660 do not support ALTIVEC_COMPILETIME_ERROR.
1661 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
1662 nodes to represent front-end types.
1663 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
1664 with opaque arguments and/or return values.
1665 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
1666 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
1667 (rs6000_builtin_type_index): New.
1668 (is_ev64_opaque_type): Rename to...
1669 (rs6000_is_opaque_type): ... this.
1670 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
1673 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1675 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
1678 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
1679 Bernd Schmidt <bernd.schmidt@analog.com>
1681 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
1682 print_address_operand, print_operand, legitimize_pic_address,
1683 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
1684 output_pop_multiple): Use gcc_assert or gcc_unreachable as
1686 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
1688 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
1690 * doc/passes.texi: Document vectorization pass.
1692 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1694 * tree-scalar-evolution.c (get_exit_conditions_rec,
1695 select_loops_exit_conditions,
1696 number_of_iterations_for_all_loops,
1697 analyze_scalar_evolution_for_all_loop_phi_nodes,
1698 scev_analysis): Use VEC instead of VARRAY.
1700 2005-05-02 Michael Matz <matz@suse.de>
1703 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
1704 (warn_strict_null_sentinel): Define.
1705 (check_function_sentinel): Check for null_node as valid sentinel too.
1706 * c-common.h (c_tree_index): Added CTI_NULL.
1707 (null_node) Define global_tree[CTI_NULL].
1708 (warn_strict_null_sentinel): Declare.
1709 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
1710 * c.opt: (Wstrict-null-sentinel): New C++ option.
1711 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
1713 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
1715 * gimplify.c (gimplify_compound_lval): Use VEC instead of
1718 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
1720 * dwarf2out.c (decl_scope_table, push_decl_scope,
1721 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
1724 2005-05-01 Mark Mitchell <mark@codesourcery.com>
1727 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
1729 * doc/cpp.texi (__DEPRECATED): Document.
1730 (__EXCEPTIONS): Likewise.
1731 (__GXX_WEAK__): Likewise.
1733 * function.c (INVOKE__main): Do not define.
1734 (expand_main_function): Check HAS_INIT_SECTION when determining
1735 whether or not to call __main.
1737 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
1739 * tree-ssa-loop-ivopts.c: Fix a comment typo.
1741 2005-01-05 Paul Brook <paul@codesourcery.com>
1743 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
1744 (INITIALIZE_TRAMPOLINE): Use it.
1745 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
1746 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
1747 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
1749 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
1751 * doc/install.texi (Specific): Omit dots in the @anchors names
1752 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
1753 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
1755 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1757 PR tree-optimization/18316
1758 PR tree-optimization/19126
1759 * tree.c (build_int_cst_type): Avoid shift by size of type.
1760 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
1762 * tree-scalar-evolution.h (simple_iv): Declaration changed.
1763 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
1765 (dump_cand): Dump depends_on information.
1766 (determine_biv_step): Add argument to simple_iv call.
1767 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
1768 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
1770 (add_candidate_1): Record depends_on for candidates.
1771 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
1772 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
1773 Handle ivs with nonconstant step.
1774 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
1775 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
1776 (create_new_iv): Unshare the step before passing it to create_iv.
1777 (free_loop_data): Free cand->depends_on.
1778 (build_addr_strip_iref): New function.
1779 (find_interesting_uses_address): Use build_addr_strip_iref.
1780 (strip_offset_1): Split the recursive part from strip_offset.
1781 Strip constant offset component_refs and array_refs.
1782 (strip_offset): Split the recursive part to strip_offset_1.
1783 (add_address_candidates): Removed.
1784 (add_derived_ivs_candidates): Do not use add_address_candidates.
1785 (add_iv_value_candidates): Add candidates with stripped constant
1786 offset. Consider all candidates with initial value 0 important.
1787 (struct affine_tree_combination): New.
1788 (aff_combination_const, aff_combination_elt, aff_combination_scale,
1789 aff_combination_add_elt, aff_combination_add,
1790 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
1791 fold_affine_sum): New functions.
1792 (get_computation_at): Use fold_affine_sum.
1793 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
1794 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
1797 2005-04-30 Michael Matz <matz@suse.de>
1799 * config/i386/i386.md (movmemsi): Also active when
1800 TARGET_INLINE_ALL_STRINGOPS.
1802 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
1805 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
1807 2005-04-30 Paul Brook <paul@codesourcery.com>
1809 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
1811 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
1812 * config/arm/ieee754-sf.S: Ditto.
1813 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
1814 (FUNC_ALIAS): Use .thumb_set for thumb routines.
1816 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
1818 * tree-ssanames.c: Fix a comment typo.
1819 * doc/options.texi: Fix a typo.
1821 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
1823 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
1824 gcc_unreachable as appropriate.
1825 (split_adds_subs, cond_string, print_operand,
1826 h8300_initial_elimination_offset, h8300_classify_operand,
1827 h8300_unary_length, h8300_short_immediate_length,
1828 h8300_bitfield_length, h8300_binary_length,
1829 h8300_insn_length_from_table, compute_mov_length, output_plussi,
1830 compute_plussi_length, compute_plussi_cc, output_logical_op,
1831 compute_logical_op_length, compute_logical_op_cc,
1832 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
1833 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
1834 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1835 h8300_regs_ok_for_stm): Likewise.
1836 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1837 monitor_prologue): Likewise.
1839 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
1841 * loop-invariant.c (invariants, create_new_invariant,
1842 get_inv_cost, best_gain_for_invariant,
1843 find_invariants_to_move, move_invariants,
1844 init_inv_motion_data, free_inv_motion_data): Use VEC instead
1847 2005-04-29 Richard Henderson <rth@redhat.com>
1849 * function.c (instantiate_decls): Remove valid_only argument.
1850 (instantiate_decls_1, instantiate_decl): Likewise.
1851 (instantiate_virtual_regs_1): Delete.
1852 (instantiate_virtual_regs_lossage): Delete.
1853 (instantiate_virtual_regs_in_rtx): New.
1854 (safe_insn_predicate): New.
1855 (instantiate_virtual_regs_in_insn): New.
1856 (instantiate_virtual_regs): Update to match all that. Only run
1857 instantiate_decls once.
1859 2005-04-29 Richard Henderson <rth@redhat.com>
1860 Daniel Jacobowitz <dan@codesourcery.com>
1862 * gengtype.c (write_func_for_structure): Split out ...
1863 (output_type_enum): ... new function. Fix thinko accessing
1864 TYPE_PARAM_STRUCT data.
1866 2005-04-29 Tom Tromey <tromey@redhat.com>
1868 * tree.c (build_block): Removed unused 'tags' argument.
1869 * tree.h (build_block): Removed argument.
1871 2005-04-29 Michael Matz <matz@suse.de>
1873 PR rtl-optimization/21144
1874 * postreload.c (reload_cse_move2add): Check for VOIDmode.
1876 2005-04-29 Bob Wilson <bob.wilson@acm.org>
1878 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1879 flag_reorder_blocks.
1881 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
1883 PR tree-optimization/21030
1884 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1885 ranges where VR->MAX is smaller than VR->MIN.
1887 2005-04-29 Devang Patel <dpatel@apple.com>
1889 PR tree-optimization/21272
1890 PR tree-optimization/21266
1891 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1893 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
1895 * tree-flow-inline.h: Fix a comment typo.
1896 * doc/tree-ssa.texi: Fix a typo.
1898 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1900 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1902 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1903 gcc_unreachable as appropriate.
1904 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1905 fr30_print_operand, fr30_move_double): Likewise.
1906 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1908 2005-04-29 Mark Mitchell <mark@codesourcery.com>
1910 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1911 definition has already been provided.
1912 (ARM_EABI_DTORS_SECTION_OP): Likewise.
1913 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1914 (ARM_EABI_DTORS_SECTION_OP): Likewise.
1916 2005-04-29 Jim Tison <jtison@us.ibm.com>
1918 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1919 trace hooks calls to improve performance.
1921 2005-04-29 Julian Brown <julian@codesourcery.com>
1922 Mark Mitchell <mark@codesourcery.com>
1923 Paul Brook <paul@codesourcery.com>
1925 * crtstuff.c: Handle targets that use .init_array.
1926 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1927 that INVOKE__main is set correctly.
1928 (expand_main_function): Test INVOKE__main.
1929 * libgcc2.c: Do not define __main when using .init_array.
1930 * config/arm/arm.c (arm_elf_asm_constructor): New function.
1931 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1933 (DTORS_SECTION_ASM_OP): Likewise.
1934 (CTOR_LIST_BEGIN): Define specially when in libgcc.
1935 (CTOR_LIST_END): Likewise.
1936 (DTOR_LIST_BEGIN): Likewise.
1937 (DTOR_LIST_END): Likewise.
1938 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1939 (FINI_SECTION_ASM_OP): Likewise.
1940 (INIT_ARRAY_SECTION_ASM_OP): Define.
1941 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1942 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1943 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1944 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1945 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1947 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1949 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1950 gcc_assert and gcc_unreachable as appropriate.
1951 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1952 const_int_cost, output_move_const_into_data_reg,
1953 output_move_qimode, output_move_double, find_addr_reg,
1954 print_operand, print_operand_address): Likewise.
1955 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1956 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1957 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1958 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1959 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1960 conditional_trap): Likewise.
1961 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1963 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1965 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1966 gcc_unreachable as appropriate.
1967 (gen_conditional_move, xtensa_split_operand_pair,
1968 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1969 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1970 xtensa_copy_incoming_a7, xtensa_output_literal,
1971 xtensa_output_literal, xtensa_output_literal): Likewise.
1972 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1973 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1974 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1975 movsicc_internal1, movsfcc_internal0,
1976 movsfcc_internal1): Likewise.
1978 2005-04-28 James E Wilson <wilson@specifixinc.com>
1980 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1981 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1983 2005-04-28 DJ Delorie <dj@redhat.com>
1985 * opt-functions.awk (var_set): Emit proper initializer for
1986 non-target bitfields.
1988 2005-04-28 Devang Patel <dpatel@apple.com>
1990 * dbxout.c (have_used_extensions): Remove.
1991 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1992 have_used_extensions.
1994 2005-04-28 James E Wilson <wilson@specifixinc.com>
1996 * doc/install.texi: Update -enable-languages info. Correct path to
1999 2005-04-28 DJ Delorie <dj@redhat.com>
2001 * optc-gen.awk (END): Make sure no variable is defined more
2003 * opth-gen.awk (END): Allocate bits on a per-variable basis.
2004 Allow for bitfield variables other than target_flags.
2005 * doc/options.text (Mask): Document that you may specify a
2006 variable other than target_flags.
2008 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
2010 PR rtl-optimization/18877
2011 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2012 number in val.start.
2014 2005-04-28 David Edelsohn <edelsohn@gnu.org>
2017 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2019 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2020 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2021 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2023 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
2025 * arm.c (legitimize_pic_address): Fix sense of assertion test for
2026 creating pseudos when the base offset is too large.
2028 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
2030 * global.c (earlyclobber_regclass): Change the type to
2032 (check_earlyclobber): Update uses of earlyclobber_regclass.
2033 (mark_reg_use_for_earlyclobber): Likewise.
2034 (calculate_local_reg_bb_info): Allocate and free
2035 earlyclobber_regclass using the VEC API.
2037 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
2039 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2042 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
2044 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2047 * config.gcc: Obsolete c4x-* and tic4x-*.
2049 * tree.h (edge_def): Remove.
2051 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2052 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2053 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2054 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2057 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2058 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2059 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2060 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2061 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2062 machmode.def, mips-tfile.c, params.c, pretty-print.c,
2063 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2064 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2065 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2066 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2067 config/i386/cygming.h, config/i386/djgpp.h,
2068 config/i386/lynx.h, config/i386/netware.c,
2069 config/i386/winnt.c, config/ia64/ia64-c.c,
2070 config/iq2000/iq2000.c, config/m32r/little.h,
2071 config/m68k/m68k-protos.h, config/m68k/m68k.h,
2072 config/m68k/m68k.md, config/mcore/mcore.c,
2073 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2074 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2075 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2076 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2077 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2078 config/pdp11/pdp11.h, config/rs6000/darwin.h,
2079 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2080 config/s390/2064.md, config/s390/2084.md,
2081 config/s390/s390-modes.def, config/s390/s390-protos.h,
2082 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2083 config/stormy16/stormy16.c, config/vax/vax-protos.h,
2084 config/vax/vax.c, config/vax/vax.h,
2085 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2088 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
2090 * c-typeck.c (build_compound_expr): Correct logic in last change.
2092 2005-04-27 James E. Wilson <wilson@specifixinc.com>
2094 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2095 parameters. Replace conditional move code with assert checking for
2096 ar.lc. Delete obsolete comments.
2097 (set_src_needs_barrier): Delete cond parameter, and code using it.
2098 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
2099 assert checking for PR_REGS. Fix calls to update_set_flags and
2100 set_src_needs_barrier.
2101 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
2102 callers. Rewrite explanatory comment before the function.
2103 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2106 2005-04-27 Mike Stump <mrs@apple.com>
2108 * doc/cpp.texi: gcc now implements universal character names.
2110 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2113 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2114 being a compound expression whose right-hand side is cast to void.
2116 2005-04-27 Caroline Tice <ctice@apple.com>
2118 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2119 Remove targetm.have_named_sections test.
2120 (fix_edges_for_rarely_executed_code): Likewise.
2121 (insert_section_boundary_note): Likewise.
2122 (reorder_basic_blocks): Check partitioning flag before calling
2123 verify_hot_cold_block_grouping.
2124 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2125 the function struct rather than global variables.
2126 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2127 (COLD_END_LABEL): Likewise
2128 (cold_text_section_label): New static global variable.
2129 (cold_end_label): Likewise.
2130 (dwarf2out_switch_text_section): Get hot/cold section labels from
2131 the function struct rather than global variables; test to make sure
2133 (output_aranges): Use cold_text_section_label and cold_end_label;
2134 check partitioning flag before putting out delta.
2135 (output_ranges): Remove incorrect code attempting to use
2137 (output_line_info): Get cold section label from function struct; test
2138 to make sure cfun is defined.
2139 (add_location_or_const_value_attribute): Likewise.
2140 (dwarf2out_var_location): Likewise.
2141 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2142 write out cold_text_section_label if partition flag is set.
2143 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2144 * function.h (struct function): Add new fields to point to hot/cold
2145 section labels: hot_section_label, cold_section_label,
2146 hot_section_end_label and cold_section_end_label; also add new field
2147 for cold text section name, unlikely_text_section_name.
2148 * opts.c (decode_options): Turn off partitioning flag if
2149 !targetm.have_named_sections.
2150 * output.h (hot_section_label): Remove.
2151 (hot_section_end_label): Remove.
2152 (cold_section_end_label): Remove.
2153 (unlikely_section_label): Remove.
2154 (unlikely_text_section_name): Remove.
2155 * passes.c (rest_of_handle_final): Remove extra blank line.
2156 * varasm.c (unlikely_section_label): Remove.
2157 (hot_section_label): Remove.
2158 (hot_section_end_label): Remove.
2159 (cold_section_end_label): Remove.
2160 (unlikely_text_section_name): Remove.
2161 (initialize_cold_section_name): Modify to call
2162 targetm.strip_name_encoding; to store cold section name in current
2163 function struct, if it exists; and to only use the decl_section_name
2164 if flag_named_sections is true.
2165 (unlikely_text_section): Modify to get section name out of current
2166 function struct, if there is one; otherwise build it from
2167 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2168 (in_unlikely_text_section): Likewise.
2169 (named_section): Modify to get/put cold section name in current function
2170 struct, if there is one.
2171 (function_section): Change 'bool unlikely' to 'int reloc'; check
2172 targetm.have_named_sections before calling named_section.
2173 (current_function_section): Likewise.
2174 (assemble_start_function): Modify to get/put unlikely_text_section_name
2175 in current function struct; modify to get hot/cold section labels
2176 from function struct; initialize labels using
2177 ASM_GENERATE_INTERNAL_LABEL;
2178 test partitioning flag before writing out hot section label.
2179 (assemble_end_function): Test partitioning flag before writing out
2180 hot/cold section labels.
2181 (default_section_type_flags_1): Get cold text section name from
2182 function struct if there is one; Set flags correctly for
2183 cold text section if there is not a current function struct.
2185 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2187 * tree-ssa-propagate.c (set_rhs): Revert last change.
2189 2005-04-27 Steve Ellcey <sje@cup.hp.com>
2191 * explow.c (convert_memory_address): Add gcc_assert.
2193 2005-04-27 Mark Mitchell <mark@codesourcery.com>
2195 * configure.ac: Check for ld --sysroot support.
2196 * gcc.c: Document %R specifier for specs.
2197 (SYSROOT_SPEC): New macro.
2198 (sysroot_spec): New variable.
2199 (static_specs): Add sysroot_spec.
2200 (main): Pass the sysroot spec to the linker if appropriate.
2201 * configure: Regenerated.
2202 * config.in: Likewise.
2204 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2206 * fold-const.c (fold_binary): Use build_fold_addr_expr
2207 for address calculation and INDIRECT_REF handling.
2209 2005-04-27 Andrew Haley <aph@redhat.com>
2211 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2213 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2215 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2216 pointer when thumb backtracing is on.
2218 * config/fp-bit.c (abort): Revert change.
2220 2005-04-27 Ian Lance Taylor <ian@airs.com>
2222 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2224 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2226 * tree-ssa-dce.c: Fix a comment typo.
2228 2005-04-27 David S. Miller <davem@davemloft.net>
2230 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2231 Kill setjmpless_size. current_function_calls_setjmp is completely
2232 computed when we are called, so just use the optimized size value
2233 instead of using REG_SAVE_AREA notes.
2234 (optimize_save_area_alloca): Delete....
2235 * rtl.h (optimize_save_area_alloca): Likewise...
2236 * passes.c (rest_of_compilation): and don't call it any more.
2237 * reg-notes.def (SAVE_AREA): Delete.
2239 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2241 * config/fp-bit.c (abort): Add noreturn attribute.
2243 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2244 gcc_unreachable as appropriate.
2245 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2246 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2247 ASM_OUTPUT_REG_POP): Likewise.
2249 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
2251 * tree-complex.c (expand_vector_operations_1): Do not build
2252 VIEW_CONVERT_EXPR's for the lhs.
2254 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2256 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2257 unnecessary noncanonical RTL handling.
2258 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2259 gcc_assert and gcc_unreachable.
2261 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2262 gcc_unreachable as appropriate.
2263 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2264 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2265 use_return_insn, const_ok_for_op, arm_gen_constant,
2266 arm_canonicalize_comparison, legitimize_pic_address,
2267 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2268 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2269 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2270 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2271 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2272 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2273 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2274 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2275 output_call, output_mov_long_double_fpa_from_arm,
2276 output_mov_long_double_arm_from_fpa,
2277 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2278 output_move_double, arithmetic_instr, shift_op, int_log2,
2279 output_return_instruction, arm_output_function_prologue,
2280 arm_output_epilogue, arm_output_function_epilogue,
2281 emit_multi_reg_push, arm_get_frame_offsets,
2282 arm_compute_initial_elimination_offset, arm_expand_prologue,
2283 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2284 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2285 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2286 thumb_compute_initial_elimination_offset,
2287 thumb_output_function_prologue, thumb_load_double_from_address,
2288 thumb_output_move_mem_multiple, thumb_reload_out_hi,
2289 arm_emit_vector_const, arm_dbx_register_number): Likewise.
2290 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2291 * config/arm/arm.md (thumb_extendhisi2,
2292 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2293 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2294 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2295 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2296 * config/arm/cirrus.md (*cirrus_arm_movdi,
2297 *cirrus_movdf_hard_insn): Likewise.
2298 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2300 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2302 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2303 (num_ssa_names): Use VEC_length.
2304 (ssa_names): Use VEC_index.
2305 * tree-ssanames.c (ssa_names): Change the type to
2307 (init_ssanames, fini_ssa_names, make_ssanames,
2308 release_ssa_name): Update uses of ssa_names.
2310 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2311 Use fold_buildN instead of fold (buildN (...)).
2313 2005-04-27 Devang Patel <dpatel@apple.com>
2315 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2317 2005-04-27 Matt Thomas <matt@3am-software.com>
2318 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
2320 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
2321 (vax_output_mi_thunk): Ditto.
2322 (vax_notice_cc_update): Ditto.
2323 (INDEX_REGISTER_P): Add trailing \.
2324 (BASE_REGISTER_P): Add trailing \.
2325 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
2327 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2329 * tree-ssa-propagate.c (set_rhs): Check operand of
2330 ADDR_EXPR for gimpliness, too.
2332 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2334 * tree-ssa-pre.c: Fix a comment typo.
2336 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
2338 PR tree-optimization/21171
2339 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2340 record address uses if the reference is volatile.
2342 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
2344 * tree-complex.c (expand_vector_operation): New, extracted from
2345 expand_vector_operations_1.
2346 (tree_vec_extract): Build a NOP_EXPR.
2347 (expand_vec_parallel): Do not care about returning the correct type.
2348 (expand_vector_operations_1): Call expand_vector_operation.
2349 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
2351 * tree-complex.c (gate_expand_vector_operations): New.
2352 (pass_lower_vector_ssa): Use it.
2353 * tree-optimize.c (init_tree_optimization_passes): Include
2354 pass_lower_vector_ssa.
2355 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
2356 (vectorizable_operation): Use it.
2357 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
2358 integer modes for the vector type.
2360 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2361 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
2362 Do not cope with UNITS_PER_SIMD_WORD == 0.
2363 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
2364 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
2365 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
2366 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2367 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2368 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2369 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2371 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
2372 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
2373 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
2375 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
2376 (UNITS_PER_SIMD_WORD): New.
2378 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2380 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
2381 gcc_unreachable as appropriate.
2382 (ia64_expand_load_address, ia64_expand_tls_address,
2383 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
2384 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
2385 next_scratch_gr_reg, ia64_initial_elimination_offset,
2386 ia64_expand_prologue, ia64_expand_epilogue,
2387 ia64_output_dwarf_dtprel, ia64_print_operand,
2388 ia64_register_move_cost, first_instruction, rws_access_regno,
2389 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
2390 ia64_sched_init, ia64_variable_issue,
2391 ia64_first_cycle_multipass_dfs_lookahead_guard,
2392 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
2393 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
2394 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
2395 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2396 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2397 * config/ia64/predicates.md (got_symbolic_operand,
2398 sdata_symbolic_operand): Likewise.
2399 * config/ia64/vect.md (vcondv2sf): Likewise.
2401 2005-04-27 Matt Thomas <matt@3am-software.com>
2403 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
2404 CONSTANT_ADDRESS_P in config/vax/vax.h
2405 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
2406 (INDEX_REGISTER_P): New.
2407 (BASE_REGISTER_P): New.
2408 (indirectable_constant_address_p): New. Adapted from
2409 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
2410 (indirectable_address_p): New. Adapted from
2411 INDIRECTABLE_ADDRESS_P in vax.h.
2412 (nonindexed_address_p): New. Adapted from
2413 GO_IF_NONINDEXED_ADDRESS in vax.h.
2414 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
2415 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
2416 (legitimate_address_p): New. Adapted from
2417 GO_IF_LEGITIMATE_ADDRESS in vax.h.
2418 (vax_mode_dependent_address_p): New. Adapted from
2419 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
2420 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
2421 legitimate_constant_address_p.
2422 (CONSTANT_P): Use legitimate_constant_p.
2423 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
2424 (INDIRECTABLE_ADDRESS_P): Removed.
2425 (GO_IF_NONINDEXED_ADDRESS): Removed.
2426 (INDEX_TEMP_P): Removed.
2427 (GO_IF_REG_PLUS_INDEX): Removed.
2428 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
2429 definitions, depending on whether REG_OK_STRICT is defined.
2430 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
2431 Two definitions, depending on whether REG_OK_STRICT is defined.
2432 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
2434 (legitimate_constant_p): Prototype added.
2435 (legitimate_address_p): Prototype added.
2436 (vax_mode_dependent_address_p): Prototype added.
2438 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2440 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2442 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2445 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
2448 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2451 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
2452 assertion failures, if __gcc_host_wide_int__ is not properly
2454 (init_dynamic_diag_info): Give errors, not assertion failures, if
2455 location_t, tree or __gcc_host_wide_int__ are not properly
2458 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2460 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
2461 n_iv_uses, iv_use, n_iv_cands, iv_cand,
2462 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
2463 prepare_decl_rtl, free_loop_data,
2464 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
2467 * tree.h (tree_phi_node): Add a comment about the order of PHI
2470 2005-04-26 Paul Brook <paul@codesourcery.com>
2472 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2474 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
2476 * config/mips.mips.c (mips_legitimize_tls_address): Use
2479 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
2480 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
2481 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
2483 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
2486 2005-04-26 Jeff Law <law@redhat.com>
2488 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
2489 (op_iter_init_must_and_may_def): Likewise.
2490 (unmodifiable_var_p): Move to a later point in the file.
2491 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
2492 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
2493 (dse_record_phis): Directly check for virtual operands rather than
2494 using need_imm_uses_for.
2495 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
2496 store has multiple V_{MAY,MUST}_DEF operands.
2498 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
2500 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
2503 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2505 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
2506 call to find_edge outside a loop to go through a PHI chain.
2508 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
2510 PR tree-optimization/17598
2511 * fold-const.c (fold_binary): Fold comparisons of addresses
2512 of COMPONENT_REFs which reference the same field to
2513 comparisons of the addresses of the base objects.
2515 2005-04-26 Julian Brown <julian@codesourcery.com>
2517 * config/arm/arm.c (arm_return_in_msb): New function.
2518 (arm_must_pass_in_stack): New function.
2519 (TARGET_RETURN_IN_MSB): Define target hook.
2520 (TARGET_MUST_PASS_IN_STACK): Define target hook.
2521 (arm_function_value): Pad small aggregate return.
2522 (arm_pad_arg_upward): New function.
2523 (arm_pad_reg_upward): New function.
2524 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
2525 (FUNCTION_ARG_PADDING): Define macro.
2526 (BLOCK_REG_PADDING): Define macro.
2527 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
2528 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
2529 (arm_pad_reg_upward): Declare function.
2531 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2533 * basic-block.h (ei_cond): New.
2534 (FOR_EACH_EDGE): Call ei_cond.
2536 PR tree-optimization/21047
2537 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
2538 (fold): Don't handle ASSERT_EXPR.
2540 2005-04-25 Roger Sayle <roger@eyesopen.com>
2542 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
2543 all writes to any stack register as a read/write dependency on
2545 (sched_analyze_2): Likewise, for reads from any stack register.
2547 2005-04-25 Richard Henderson <rth@redhat.com>
2549 * final.c (output_addr_const): Revert 2005-04-09 change.
2551 2005-04-25 Mike Stump <mrs@apple.com>
2553 * config/darwin.c (darwin_encode_section_info): Always set
2554 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
2556 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2558 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
2559 gensupport.c, protoize.c, toplev.c: Replace calls to
2560 `unlock_stream' with `unlock_std_streams'.
2562 2005-04-25 Devang Patel <dpatel@apple.com>
2564 * dbxout.c (dbxout_type): Emit attribute vector.
2566 2005-04-05 Paul Brook <paul@codesourcery.com>
2568 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
2569 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
2570 * config/arm/arm.c (arm_cxx_atexit_name): New function.
2571 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
2572 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
2573 (register_dtor_fn): Likewise.
2574 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
2576 2005-04-25 Ian Lance Taylor <ian@airs.com>
2578 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
2579 * c-common.h (EXPR_STMT_EXPR): Don't define.
2580 (c_common_stmt_codes): Don't define.
2581 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
2582 * c-gimplify.c (gimplify_expr_stmt): Remove.
2583 (c_gimplify_expr): Remove EXPR_STMT case.
2584 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
2585 to INIT_STATEMENT_CODES.
2586 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
2588 2005-04-25 Jan Hubicka <jh@suse.cz>
2590 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
2592 * except.c: Include diagnostic.h
2593 (dump_eh_tree, verify_eh_tree): New functions.
2594 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
2595 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
2596 (dump_function_to_file): dump eh tree.
2597 * tree-eh.c (mark_eh_edge): New function.
2598 (mark_eh_edge_found_error): New static variable.
2599 (verify_eh_edges): New function.
2601 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
2603 * tree-ssa-alias.c (fieldoff_t): Remove.
2604 (fieldoff_s): typedef the structure itself. Create a vector of
2606 (push_fields_onto_fieldstack): Return count of fields pushed.
2607 Remove peeling of first field. Adjust.
2608 (fieldoff_compare): Adjust.
2609 (create_overlap_variables_for): Adjust.
2611 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
2613 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
2615 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
2618 * doc/install.texi: Document correct assembler and linker to use
2619 on i?86-*-solaris2.10.
2621 2005-04-25 Steven Bosscher <stevenb@suse.de>
2623 Fix PR tree-optimization/21173
2625 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
2626 Unshare expression we pass to force_gimple_operand.
2628 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
2629 Stephen Clarke <stevec@superh.com>
2630 Roger Sayle <roger@eyesopen.com>
2632 PR rtl-optimization/20413
2633 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
2634 VOIDmode for LABEL_REF.
2635 * final.c (shorten_branches): Likewise.
2636 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
2637 * loop.c (reg_dead_after_loop): Likewise.
2638 * varasm.c (decode_addr_const): Likewise.
2639 * doc/rtl.texi: Document mode requirement for LABEL_REF.
2641 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
2643 * config.gcc (avr-*-*): Remove redundant "case".
2645 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
2647 * tree-vect-analyze.c (vect_mark_relevant): Take
2648 VEC(tree,heap) instead of varray_type as an argument.
2649 (vect_mark_stmts_to_be_vectorized): Change the type of
2650 worklist to VEC(tree,heap). Adjust uses of worklist.
2652 2005-04-24 Devang Patel <dpatel@apple.com>
2654 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2656 2005-04-24 Ian Lance Taylor <ian@airs.com>
2658 * c-semantics.c (build_stmt): Remove test of specific tree codes
2659 for TREE_SIDE_EFFECTS handling.
2661 2005-04-24 Per Bothner <per@bothner.com>
2663 * c-opts.c (finish_options): Make the line-number of the <built-in>
2664 location 0, as assumed elsewhere, rather than 1.
2666 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2668 * tree-ssa-uncprop.c (equiv_stack): Change the type o
2670 (tree_ssa_uncprop, uncprop_finalize_block,
2671 uncprop_initialize_block): Update uses of equiv_stack.
2673 2005-04-24 Richard Henderson <rth@redhat.com>
2676 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
2677 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
2679 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
2680 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
2681 <DIV, MOD>: Likewise.
2683 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2685 * collect2.c (main): Unlock the stdio streams.
2686 * gcc.c (main): Likewise.
2687 * gcov-dump.c (main): Likewise.
2688 * gcov.c (main): Likewise.
2689 * gen-protos.c (main): Likewise.
2690 * gensupport.c (init_md_reader_args_cb): Likewise.
2691 * protoize.c (main): Likewise.
2692 * toplev.c (general_init): Likewise.
2694 2005-04-24 Jakub Jelinek <jakub@redhat.com>
2697 * cgraph.h (cgraph_local_info): Add vtable_method field.
2698 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
2699 and node is vtable_method, finalized and not reachable, don't do
2702 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2704 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
2706 * tree-ssa-pre.c (create_value_expr_from): Use
2707 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
2708 * tree-ssa-propagate.c (stmt_makes_single_load,
2709 stmt_makes_single_store): Use REFERENCE_CLASS_P.
2710 * tree-vect-transform.c (vect_is_simple_cond): Use
2712 * tree-vrp.c (extract_range_from_assert,
2713 build_assert_expr_for, fp_predicate, has_assert_expr): Use
2716 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
2717 of tpa_to_clear to VEC(int,heap). Update uses of
2718 tpa_to_clear. Free tpa_to_clear at the end.
2720 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
2722 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
2725 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
2727 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
2728 and gcc_unreachable as appropriate.
2729 (num_insns_constant, output_vec_const_move,
2730 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
2731 rs6000_emit_set_const, rs6000_emit_move,
2732 spe_build_register_parallel, function_arg,
2733 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
2734 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
2735 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
2736 rs6000_common_init_builtins, expand_block_clear,
2737 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
2738 extract_ME, rs6000_get_some_local_dynamic_name,
2739 rs6000_output_function_entry, print_operand,
2740 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
2741 output_cbranch, output_e500_flip_gt_bit,
2742 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
2743 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
2744 compute_save_world_info, rs6000_stack_info,
2745 rs6000_emit_load_toc_table, rs6000_frame_related,
2746 spe_synthesize_frame_save, rs6000_emit_epilogue,
2747 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
2748 output_function_profiler, rs6000_trampoline_size,
2749 rs6000_initialize_trampoline, find_addr_reg,
2750 rs6000_machopic_legitimize_pic_address,
2751 rs6000_initial_elimination_offset,
2752 rs6000_dbx_register_number): Likewise.
2753 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
2754 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
2755 *movti_power, *movti_string, call, call_value, sibcall,
2756 sibcall_value): Likewise.
2757 * config/rs6000/spe.md (*movdf_e500_double,
2758 *movv2si_internal): Likewise.
2759 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
2762 2005-04-24 Richard Henderson <rth@redhat.com>
2765 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
2766 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
2767 Deny modes smaller than 4 bytes.
2768 * config/i386/i386-protos.h: Update.
2770 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
2772 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
2773 Switch h8300-*-rtems* to ELF.
2775 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2777 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
2779 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2781 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2783 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
2786 * fold-const.c: Fold &a[i]-&a[j] to i-j.
2788 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
2790 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
2791 definitions of ssa names in condition. Split recusive part to ...
2792 (tree_simplify_using_condition_1): New function.
2793 (expand_simple_operations): New function.
2795 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
2797 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
2798 (find_interesting_uses_cond): Do not use integer_zerop and
2799 integer_nonzerop to check for integer constants.
2800 (set_use_iv_cost): Record the value field.
2801 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
2802 determine_use_iv_cost_outer): Set the value field of the cost pair.
2803 (may_eliminate_iv): Do not return the comparison code.
2804 (iv_elimination_compare): New function.
2805 (determine_use_iv_cost_condition): Set the value field. Record
2806 noneliminable invariants correctly.
2807 (rewrite_use_compare, rewrite_use_outer): Use the value field.
2809 2005-04-23 DJ Delorie <dj@redhat.com>
2811 * diagnostic.c (warning): Accept parameter to classify warning option.
2812 (warning0): New, for when a pointer to an error() like function is needed.
2813 * errors.c (warning): Likewise.
2814 * errors.h (warning, warning0): Adjust prototypes.
2815 * toplev.h (warning, warning0): Likewise.
2817 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
2818 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
2819 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
2820 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
2821 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
2822 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2823 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
2824 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
2826 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
2827 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
2828 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
2829 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
2830 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
2831 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
2832 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
2833 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
2834 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2835 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2836 config/rs6000/aix52.h, config/rs6000/darwin.h,
2837 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2838 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2839 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2840 config/stormy16/stormy16.c, config/v850/v850-c.c,
2841 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2844 2005-04-23 Richard Henderson <rth@redhat.com>
2847 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2848 performing some integral scalar simplifications.
2850 2005-04-23 Richard Henderson <rth@redhat.com>
2853 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2854 simplifying CONST_VECTOR.
2856 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2858 * tree-ssa-live.c (live_worklist): Take a stack allocated on
2859 heap as an argument. Update uses of stack.
2860 (calculate_live_on_entry): Allocate stack on heap.
2862 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2863 partition_link and tpa_nodes on heap.
2865 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2866 (mark_stmt_necessary, propagate_necessity,
2867 mark_really_necessary_kill_operand_phis): Update uses of
2869 (tree_dce_init): Allocate worklist using VEC_alloc.
2870 (tree_dce_done): Free worklist using VEC_free.
2872 2005-04-23 Mike Stump <mrs@apple.com>
2874 * config/darwin.c (machopic_indirection_name): Don't use
2876 (darwin_emit_unwind_label): Use user_label_prefix instead of
2879 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2881 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2883 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
2885 * config.gcc <cris-*>: Specify .opt files.
2886 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2887 config/cris/linux.opt: New files.
2888 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2889 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2890 (TARGET_ELF): Override to 0.
2891 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2892 -melinux-stacksize=N.
2893 * config/cris/cris.c: (cris_handle_option): New function.
2894 (TARGET_DEFAULT_TARGET_FLAGS): Override.
2895 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2896 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2897 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2898 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2899 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2900 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2901 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2902 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2903 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2904 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2905 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2906 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2907 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2908 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2909 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2910 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2911 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2912 (TARGET_LINUX): Define 0.
2913 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2914 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2915 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2916 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2917 (TARGET_LINUX): Override to 1.
2918 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2920 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
2922 * haifa-sched.c (schedule_block): Fix thinko in previous
2923 assertification patch.
2925 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
2927 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2928 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2929 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
2930 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2931 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2932 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
2933 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
2935 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2936 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2937 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2938 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2939 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2940 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2941 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2942 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2943 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2944 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2945 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2946 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2947 (SUBTARGET_OPTIONS): Delete.
2948 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2949 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2950 instead of a string.
2951 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2952 (pa_cpu_string, pa_unix_string): Delete.
2953 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2954 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2956 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2957 (pa_handle_option): New function.
2958 (override_options): Remove handling of -march=, -mfixed-range=,
2959 -mschedule= and -munix=.
2960 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2961 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2962 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2963 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2964 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2965 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2966 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2968 * config/pa/pa.opt: New file.
2969 * config/pa/pa-hpux.opt: New file.
2970 * config/pa/pa-hpux1010.opt: New file.
2971 * config/pa/pa-hpux1111.opt: New file.
2972 * config/pa/pa64-hpux.opt: New file.
2974 2005-04-22 David S. Miller <davem@davemloft.net>
2976 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2977 integer when it's mode is VOIDmode not DImode.
2979 2005-04-22 Geoffrey Keating <geoffk@apple.com>
2981 * config/rs6000/rs6000.md (sync_add<mode>_internal,
2982 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2983 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2984 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2985 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2986 "bne- $-xxx" rather than local labels.
2987 (sync_lock_release<mode>): Add second operand.
2988 (lwsync): Use .long rather than a more meaningful opcode.
2989 * doc/md.texi (Standard Names): Add description of second
2990 parameter to sync_lock_test_and_set.
2992 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2994 PR tree-optimization/21088
2995 * fold-const.c (fold_unary, fold_binary, fold_ternary):
2997 * tree-vrp.c (compare_values): Use fold_binary to compare
2998 pointers. Use boolean_type_node as the type of a comparison
2999 expression being folded.
3000 * tree.h: Add prototypes for fold_unary, fold_binary,
3003 * tree-ssa-dom.c: Fix formatting.
3005 2005-04-22 Diego Novillo <dnovillo@redhat.com>
3007 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
3008 * lambda-code.c (perfect_nestify): Mark virtual operands in
3009 the moved statement for renaming.
3010 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
3011 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3012 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
3013 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3014 * tree-flow.h (struct var_ann_d): Update comments.
3015 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
3016 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
3017 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
3018 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
3019 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
3020 debug_names_replaced_by): Remove declarations.
3021 (delete_update_ssa, get_current_def, set_current_def): Declare.
3022 (rewrite_into_loop_closed_ssa): Add new argument. Update
3024 * tree-into-ssa.c: Include params.h.
3025 (old_virtual_ssa_names): Remove. Update all users.
3026 (need_to_replace_names_p): Remove. Update all users.
3027 (struct update_ssa_stats_d): Declare.
3028 (update_ssa_stats): New local.
3029 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
3030 dump_tree_ssa_stats, debug_tree_ssa_stats,
3031 dump_update_ssa, debug_update_ssa,
3032 dump_names_replaced_by, debug_names_replaced_by): Declare.
3033 (get_current_def, set current_def): Make extern.
3034 (is_old_name, is_new_name): Protect against references
3035 past the end of the sets.
3036 (add_new_name_mapping): Assert that OLD and NEW are
3037 different SSA names for the same symbol.
3038 When adding a virtual mapping, update stats for virtual
3040 (insert_phi_nodes_for): If UPDATE_P is true, create the
3041 LHS of the new PHI by duplicating SSA name VAR.
3042 (insert_phi_nodes_1): Remove. Update all users.
3043 (insert_phi_nodes): Remove second argument. Update all
3045 (maybe_replace_use, maybe_replace_def): New.
3046 (rewrite_update_stmt): Call them.
3047 (mark_def_interesting): Remove calls to is_gimple_reg.
3048 (prepare_phi_args_for_update): Remove. Update all users.
3049 (prepare_block_for_update): Only process virtual operands
3050 and GIMPLE registers in normal form.
3051 (prepare_use_sites_for): New.
3052 (prepare_names_to_update): Rename from prepare_def_sites.
3053 Call prepare_use_sites_for.
3054 (dump_update_ssa): Rename from dump_repl_tbl.
3056 Show statistics for virtual mapping heuristic.
3057 (debug_update_ssa): Rename from debug_debug_repl_tbl.
3058 (init_update_ssa): Initialize UPDATE_SSA_STATS.
3059 (delete_update_ssa): Make extern.
3060 (mark_set_for_renaming): If the set is empty, do nothing.
3061 (release_ssa_name_after_update_ssa): Update comment.
3062 (insert_updated_phi_nodes_for): Do not remove existing
3063 PHI nodes for symbols.
3064 (switch_virtuals_to_full_rewrite_p): New.
3065 (switch_virtuals_to_full_rewrite): New.
3066 (update_ssa): Call them.
3067 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
3068 for every statement before updating.
3069 If all the names in NEW_SSA_NAMES have been marked for
3070 removal, do nothing.
3071 Only start at the top of the CFG if there are symbols in
3073 (ssa_rewrite_finalize_block): Remove.
3074 (ssa_register_new_def): Remove.
3075 (ssa_rewrite_stmt): Remove.
3076 (ssa_rewrite_phi_arguments): Remove.
3077 (ssa_rewrite_initialize_block): Remove.
3078 (ssa_mark_def_sites): Remove.
3079 (ssa_mark_def_sites_initialize_block): Remove.
3080 (ssa_mark_phi_uses): Remove.
3081 (rewrite_ssa_into_ssa): Remove.
3082 * tree-phinodes.c (find_phi_node_for): Remove.
3083 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3085 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
3086 Remove calls to verify_dominators and
3087 verify_loop_structure.
3088 (tree_unswitch_single_loop): Call update_ssa.
3089 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
3092 (delete_tree_ssa): Assert that need_ssa_update_p returns
3094 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
3095 * tree-vectorizer.c (allocate_new_names, rename_def_op,
3096 free_new_names): Remove. Update all users.
3097 (rename_use_op): Call get_current_def.
3098 (rename_variables_in_bb): Do not handle any real or
3100 (slpeel_update_phis_for_duplicate_loop): Call
3101 get_current_def and set_current_def instead of using
3103 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
3104 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
3105 ssa_names_to_replace and delete_update_ssa.
3106 * doc/invoke.texi: Document --param min-virtual-mappings
3107 and --param virtual-mappings-ratio.
3109 2005-04-22 Diego Novillo <dnovillo@redhat.com>
3111 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
3112 for newly created PHI nodes.
3113 Call create_new_def_for for every new V_MAY_DEF and
3114 V_MUST_DEF on the copied statement.
3115 (struct ssa_name_map_entry): Remove.
3116 (ssa_name_map_entry_hash): Remove.
3117 (ssa_name_map_entry_eq): Remove.
3118 (allocate_ssa_names): Remove.
3119 (rewrite_to_new_ssa_names_def): Remove.
3120 (rewrite_to_new_ssa_names_use): Remove.
3121 (rewrite_to_new_ssa_names_bb): Remove.
3122 (rewrite_to_new_ssa_names): Remove.
3123 (tree_duplicate_sese_region): Remove variables ver,
3124 definitions, phi, ssa_name_map and bi.
3125 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
3127 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3128 update_ssa instead of rewrite_ssa_into_ssa.
3129 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
3131 (find_uses_to_rename_use): Add argument 'need_phis'.
3132 (find_uses_to_rename_stmt): Do not scan virtual operands.
3133 (find_uses_to_rename): Only scan PHI nodes for
3135 (rewrite_into_loop_closed_ssa): Call update_ssa.
3136 (check_loop_closed_ssa_use): Ignore virtual operands.
3137 (check_loop_closed_ssa_stmt): Likewise.
3138 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
3140 (rename_variables, set_phi_def_stmts): Remove.
3141 (tree_duplicate_loop_to_header_edge): Reformat comment.
3142 Remove variables BB, I and DEFINITIONS.
3143 Call need_ssa_update_p.
3145 (lv_adjust_loop_header_phi): Reformat comment.
3146 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
3147 (marked_for_rewrite_p, any_marked_for_rewrite_p,
3148 mark_for_rewrite, unmark_all_for_rewrite,
3149 marked_ssa_names): Remove. Update all users.
3150 (release_ssa_name): If VAR has been registered for SSA
3151 updating, do nothing.
3152 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
3153 (build_assert_expr_for): Call register_new_name_mapping.
3154 (insert_range_assertions): Update call to update_ssa.
3155 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
3156 marked_for_rewrite_p, any_marked_for_rewrite_p,
3157 marked_ssa_names): Remove.
3159 2005-04-22 Jeff Law <law@redhat.com>
3161 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
3162 (restore_currdefs_to_original_value): Likewise.
3163 (register_definitions_for_stmt): Likewise.
3164 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
3165 for each variable. Do not allocate/free block_defs_stack either.
3166 Do not iterate if we just thread jumps. Only iterate if the
3167 tree_cleanup_cfg does useful work (temporary).
3168 (dom_opt_initialize_block): No longer push a marker on
3170 (dom_opt_finalize_block): Removal call to restore currdefs.
3171 Relax restrictions for recording edge equivalences.
3172 (record_equivalences_from_phis): No longer need to track
3174 (optimize_stmt): Similarly.
3175 (thread_across_edge): Simplify by removing the requirement that
3176 statements in the block we are threading through must be nops.
3177 (initialize_hash_element): Handle GOTO_EXPR.
3179 2005-04-22 David S. Miller <davem@davemloft.net>
3181 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
3183 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
3184 fix check on CONST_DOUBLE mode. It should be VOIDmode
3185 when it is representing an integer.
3187 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3189 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
3190 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
3191 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
3192 find_char_info_specifier_index,
3193 find_length_info_modifier_index): Likewise.
3194 * c-typeck.c (composite_type, pop_init_level): Likewise.
3195 * combine.c (cant_combine_insn_p, try_combine): Likewise.
3196 * cse.c (cse_insn): Likewise
3197 * dominance.c (calc_dfs_tree): Likewise
3198 dwarf2out.c (loc_descriptor_from_tree_1,
3199 add_abstract_origin_attribute, force_decl_die,
3200 force_type_die): Likewise
3201 emit-rtl.c (operand_subword_force): Likewise
3202 explow.c (hard_function_value): Likewise
3203 expmed.c (store_bit_field, expand_divmod,
3204 emit_store_flag_force): Likewise
3205 expr.c (emit_move_multi_word, store_expr,
3206 expand_expr_real_1): Likewise
3207 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
3208 output_operand): Likewise
3209 flow.c (recompute_reg_usage): Likewise
3210 * function.c (assign_stack_temp_for_type, assign_temp,
3211 handle_epilogue_set): Likewise
3212 * genextract.c (main): Likewise
3213 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
3214 gimplify_modify_expr_rhs, gimplify_expr): Likewise
3215 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
3216 ready_remove, rm_line_notes, rm_other_notes,
3217 schedule_block): Likewise
3218 mips-tfile.c (copy_object, out_of_bounds): Likewise
3220 2005-04-22 David Edelsohn <edelsohn@gnu.org>
3223 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
3224 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
3225 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
3226 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
3228 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
3230 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3232 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
3233 (gcc_tree_to_linear_expression): Convert to heap allocated
3235 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3236 lbv_to_gcc_expression, lle_to_gcc_expression,
3237 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
3238 perfect_nestify): Likewise.
3239 lambda.h (gcc_loopnest_to_lambda_loopnest,
3240 lambda_loopnest_to_gcc_loopnest): Likewise.
3241 tree-loop-linear.c (linear_transform_loops): Likewise.
3243 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3245 * config/sparc/predicates.md (arith_double_operand): Use
3246 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
3247 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
3248 (DImode, DFmode constant splitters): Likewise. Remove code for
3249 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
3250 (logical constant splitters): Use const_int_operand predicate.
3251 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
3252 HOST_BITS_PER_WIDE_INT < 64.
3254 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3256 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
3257 gcc_unreachable as appropriate.
3258 (force_mode, emit_move_sequence, singlemove_string,
3259 output_move_double, output_fp_move_double, find_addr_reg,
3260 output_block_move, output_block_clear, output_and,
3261 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
3262 pa_adjust_cost, pa_issue_rate, print_operand,
3263 output_global_address, output_arg_descriptor, output_cbranch,
3264 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
3265 output_call): Likewise.
3266 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
3267 prefetch, prefetch_cc, prefetch_nocc): Likewise.
3269 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
3271 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
3272 _gcov_pow2_profiler and _gcov_one_value_profiler.
3273 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
3274 (GTFILES): Add $(srcdir)/tree-profile.c.
3275 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
3276 __gcov_one_value_profiler): Declare.
3277 * gimplify.c (force_gimple_operand): Check whether the statements
3278 should be produced in ssa form.
3279 (force_gimple_operand_bsi): New function.
3280 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
3281 __gcov_one_value_profiler): New functions.
3282 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
3283 the profiled value is a power of two or not.
3284 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
3285 * tree-flow.h (in_ssa_p): Declare.
3286 (force_gimple_operand_bsi): Declare.
3287 * tree-into-ssa.c (in_ssa_p): New variable.
3288 (rewrite_into_ssa): Set in_ssa_p.
3289 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
3290 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
3291 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
3292 tree_one_value_profiler_fn): New variables.
3293 (tree_init_edge_profiler): Initialize the profiler function decls.
3294 (tree_gen_edge_profiler): Use global gcov_type_node.
3295 (prepare_instrumented_value): New function.
3296 (tree_gen_interval_profiler, tree_gen_interval_profiler,
3297 tree_gen_one_value_profiler): Call the library functions instead of
3298 creating instrumentation code.
3299 * tree.c (build_fn_decl): New function.
3300 * tree.h (build_fn_decl): Declare.
3301 * value-prof.c (rtl_divmod_values_to_profile,
3302 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
3303 tree_mod_pow2_value_transform, tree_find_values_to_profile):
3304 Do not handle may_be_other and precise values of exponents at pow2
3306 (tree_mod_subtract_transform): Reflect that value field of
3307 histogram has changed meaning.
3308 (tree_divmod_values_to_profile): Record the values correctly.
3309 (tree_values_to_profile): Update comment.
3310 * value-prof.h (struct histogram_value_t): Remove pow2 data.
3312 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
3314 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3317 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3319 * config/i386/i386.md (length_immediate): Use gcc_assert or
3320 gcc_unreachable, as appropriate.
3321 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
3322 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
3323 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
3324 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
3325 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3326 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
3327 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
3328 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
3329 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
3330 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
3331 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
3332 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3333 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
3334 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
3335 *prefetch_sse_rex): Likewise.
3336 * config/i386/predicates.md (x86_64_immediate_operand,
3337 x86_64_zext_immediate_operand, symbolic_operand,
3338 no_seg_address_operand, aligned_operand,
3339 memory_displacement_operand): Likewise.
3340 * config/i386/sse.md (*mov<mode>_internal,
3341 *movv2df_internal): Likewise.
3343 2005-04-22 Jan Hubicka <jh@suse.cz>
3345 * Makefile.in (ipa.o, ipa-inline.o): New files.
3346 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
3347 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
3348 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
3349 * cgraphunit.c (cgraph_default_inline_p,
3350 cgraph_decide_inlining_incrementally, ncalls_inlined,
3351 nfunctions_inlined, initial_insns, overall_insns,
3352 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
3353 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3354 cgraph_mark_inline, cgraph_check_inline_limits,
3355 cgraph_default_inline_p, cgraph_recursive_inlining_p,
3356 update_callee_keys, lookup_recursive_calls,
3357 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
3358 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
3359 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
3360 pass_ipa_inline): Move to ipa-inline.c
3361 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
3363 * ipa-inline.c: New file.
3365 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3367 * doc/invoke.texi (SPARC options): Document that -mapp-regs
3368 is turned off by default on Solaris.
3370 2005-04-21 Roger Sayle <roger@eyesopen.com>