1 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
3 * crtstuff.c: Revert part of 2005-05-08 Change.
6 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
8 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
11 (fp_high_losum_p): Remove redundant test.
12 * config/sparc/predicates.md (const_high_operand): Explicitly test
13 (not small_int_operand).
14 (fp_const_high_losum_operand): New.
15 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
16 (movdi_insn_sp32_v9): Use canonical predicates.
17 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
18 (movdi_insn_sp64_novis): Delete.
19 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
20 (movsf_insn_novis): Delete.
21 (movsf_insn_vis): Rename into movsf_insn.
22 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
23 (movsf_lo_sum): Use fp_const_high_losum_operand.
24 (movsf_high): Likewise.
25 (movsf_high_losum splitter): Likewise.
26 (mov<V32:mode> expander): Use register_or_zero_operand.
27 (mov<V64:mode> expander): Likewise.
28 (movdf_insn_sp32): Use register_or_zero_operand.
29 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
30 Rename into movdf_insn_sp32_no_fpu.
31 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
32 Rename into movdf_insn_sp32_v9_no_fpu.
33 (movdf_insn_v9only_novis): Delete.
34 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
35 (movdf_insn_sp64_novis): Delete.
36 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
37 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
38 Rename into movdf_insn_sp64_no_fpu.
39 (movtf expander): Use register_or_zero_operand.
40 (movtf_insn_sp32): Delete.
41 (movtf_insn_vis_sp32): Use register_or_zero_operand.
42 Rename into movtf_insn_sp32.
43 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
44 Rename into movtf_insn_sp32_no_fpu.
45 (movtf_insn_hq_sp64): Delete.
46 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
47 Rename into movtf_insn_sp64_hq.
48 (movtf_insn_sp64): Delete.
49 (movtf_insn_vis_sp64): Use register_or_zero_operand.
50 Rename into movtf_insn_sp64.
51 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
52 Rename into movtf_insn_sp64_no_fpu.
54 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
56 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
57 gcc_assert and gcc_unreachable as appropriate.
58 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
59 xstormy16_output_cbranch_si, xstormy16_split_move,
60 xstormy16_initial_elimination_offset,
61 xstormy16_encode_section_info, xstormy16_print_operand_address,
62 xstormy16_expand_call, xstormy16_expand_arith,
63 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
65 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
67 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
68 const_copies to VEC(tree,heap)*.
69 (new_elim_graph, delete_elim_graph, elim_graph_size,
70 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
73 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
76 * doc/extend.texi (Type Attributes): Correct example syntax.
78 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
81 * doc/invoke.texi (-Wuninitialized): Update documentation.
83 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
85 * arm.c (const_ok_for_arm): Use a faster algorithm.
87 2005-05-09 David Edelsohn <edelsohn@gnu.org>
90 * config/rs6000/rs6000.md (add_op2): New.
93 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
95 * arm.c (arm_gen_constant): Add new heuristic for generating
96 constant integers that can be expressed as the difference of two
99 2005-05-09 Roger Sayle <roger@eyesopen.com>
101 * c-tree.h (parser_build_unary_op): New prototype.
102 * c-typeck.c (parser_build_unary_op): New function to construct
103 a unary operation in the C parser.
104 * c-parser.c (c_parser_unary_expression): Use the new function
105 parser_build_unary_op when appropriate.
107 2005-05-09 Mark Mitchell <mark@codesourcery.com>
110 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
111 before outputting DWARF_FRAME_RETURN_COLUMN.
113 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
115 * config/s390/s390.c: (s390_branch_condition_mask,
116 s390_branch_condition_mnemonic, s390_extra_constraint_str,
117 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
118 legitimize_pic_address, s390_emit_tls_call_insn,
119 legitimize_tls_address, legitimize_tls_address,
120 s390_expand_addcc, print_shift_count_operand, print_operand,
121 addr_generation_dependency_p, annotate_constant_pool_refs,
122 s390_split_branches, find_constant_pool_ref,
123 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
124 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
125 s390_output_pool_entry, s390_function_value,
126 s390_call_saved_register_used, s390_emit_call): Replace
127 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
128 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
129 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
130 get_some_local_dynamic_name, s390_function_arg_size,
131 s390_function_arg_advance, s390_function_arg,
132 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
133 default case by gcc_unreachable.
134 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
135 conditional abort by gcc_assert.
136 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
137 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
139 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
141 * config/s390/s390.c: (s390_decompose_address,
142 tls_symbolic_operand, legitimate_pic_operand_p,
143 legitimate_constant_p, legitimate_reload_constant_p,
144 s390_expand_plus_operand, legitimate_address_p,
145 legitimate_la_operand_p, ): Remove 'register' from signature.
146 (symbolic_reference_mentioned_p,
147 tls_symbolic_reference_mentioned_p): Remove 'register' from local
148 variable declarations.
149 (legitimize_address): Remove 'register' from
150 signature and local variable declarations.
152 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
154 * config/s390/s390-protos.h: (s390_match_ccmode,
155 s390_match_ccmode_set, reg_used_in_mem_p,
156 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
157 legitimate_la_operand_p, preferred_la_operand_p,
158 s390_short_displacement, addr_generation_dependency_p,
159 legitimate_reload_constant_p, legitimate_address_p): Change return type
161 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
162 * config/s390/s390.c: (s390_match_ccmode,
163 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
164 legitimate_reload_constant_p): Change return type into 'bool'.
165 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
166 Likewise. Additionally adapted comment.
167 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
168 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
169 (s390_decompose_address): Change the type of the internal flags
170 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
171 (struct s390_address): Change type of "pointer" into bool.
172 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
173 Adapt calls for 's390_tm_ccmode' to the new signature.
175 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
177 * config/s390/s390.c: (s390_match_ccmode_set,
178 s390_branch_condition_mnemonic, s390_short_displacement,
179 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
180 print_shift_count_operand, get_some_local_dynamic_name,
181 get_some_local_dynamic_name_1, reg_used_in_mem_p,
182 addr_generation_dependency_p, s390_split_branches,
183 annotate_constant_pool_refs, find_constant_pool_ref,
184 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
185 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
186 s390_register_info, s390_frame_info, s390_init_frame_layout,
187 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
188 restore_gprs, s390_function_arg_size, s390_function_arg_float,
189 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
190 s390_encode_section_info, s390_cannot_force_const_mem,
191 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
192 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
193 s390_adjust_priority, s390_issue_rate,
194 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
195 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
196 s390_build_builtin_va_list, s390_gimplify_va_arg,
197 s390_function_ok_for_sibcall, s390_call_saved_register_used,
198 s390_pass_by_reference, s390_fixed_condition_code_regs,
199 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
200 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
201 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
202 s390_add_pool_insn, s390_find_pool, s390_add_constant,
203 s390_find_constant, s390_add_execute, s390_find_execute,
204 s390_execute_label, s390_execute_target, s390_dump_pool,
205 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
206 Move target macro definitions to the end of the file. Move several
207 functions within the file to assure correct compiling.
209 2005-05-09 Steven Bosscher <stevenb@suse.de>
211 * calls.c (purge_reg_equiv_notes): Remove, fold into...
212 (fixup_tail_calls): ...here. Only look at insns between the
213 start of the function and the FUNCTION_BEG insn note.
215 * gcse.c (one_cprop_pass): Fix typos in dumps.
217 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
219 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
221 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
222 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
223 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
224 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
226 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
227 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
228 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
231 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
233 * config/s390/s390.md: ("gf") New mode attribute.
234 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
235 "fixuns_truncsfsi2"): Merge.
236 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
237 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
238 "fix_truncsfsi2_ieee"): Merge.
240 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
242 * config/s390/s390.md: ("FPR") New mode macro.
243 ("de", "dee"): New mode attributes.
244 ("cmpdf", "cmpsf"): Merge.
245 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
246 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
247 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
248 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
249 ("floatdidf2", "floatdisf2"): Merge.
250 ("adddf3", "addsf3"): Merge.
251 ("*adddf3", "*addsf3"): Merge.
252 ("*adddf3_cc", "*addsf3_cc"): Merge.
253 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
254 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
255 ("subdf3", "subsf3"): Merge.
256 ("*subdf3", "*subsf3"): Merge.
257 ("*subdf3_cc", "*subsf3_cc"): Merge.
258 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
259 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
260 ("muldf3", "mulsf3"): Merge.
261 ("*muldf3", "*mulsf3" "): Merge.
262 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
263 ("*fmadddf", "*fmaddsf"): Merge.
264 ("*fmsubdf", "*fmsubsf"): Merge.
265 ("divdf3", "divsf3"): Merge.
266 ("*divdf3", "*divsf3"): Merge.
267 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
268 ("negdf2", "negsf2"): Merge.
269 ("*negdf2_cc", "*negsf2_cc"): Merge.
270 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
271 ("*negdf2", "*negsf2"): Merge.
272 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
273 ("absdf2", "abssf2"): Merge.
274 ("*absdf2_cc", "*abssf2_cc"): Merge.
275 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
276 ("*absdf2", "*abssf2"): Merge.
277 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
278 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
279 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
280 ("*negabsdf2", "*negabssf2"): Merge.
281 ("sqrtdf2", "sqrtsf2"): Merge.
283 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
285 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
287 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
288 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
289 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
290 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
292 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
293 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
294 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
295 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
296 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
297 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
298 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
299 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
300 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
301 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
302 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
303 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
304 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
305 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
306 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
307 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
309 ("*divsf3"): Additionally rename second pattern to
311 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
312 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
313 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
314 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
315 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
316 'type values' and rename 'type' value.
317 ("*addsf3"): Additionally rename second pattern to
320 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
322 * config/s390/s390.md: ("SHIFT"): New mode macro.
323 ("lr", "shift"): New mode attributes.
324 ("ashldi3", "lshrdi3"): Merge.
325 ("*ashldi3_31", "*lshrdi3"_31): Merge.
326 ("*ashldi3_64", "*lshrdi3"_64): Merge.
327 ("ashlsi3", "lshrsi3"): Merge.
329 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
331 * config/s390/s390.md: ("DSI", "SCOND"): New mode
333 ("E", "g"): New mode attributes.
334 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
335 ("*adddi3_alc", "*addsi3_alc"): Merge.
336 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
337 ("*subdi3_slb", "*subsi3_slb"): Merge.
338 ("adddicc", "addsicc"): Merge.
339 ("*sconddi", "*scondsi"): Merge.
340 ("*sconddi_neg", "*scondsi_neg"): Merge.
341 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
342 ("negdi2", "negsi2"): Extract expander pattern from
343 "negsi2" and merge with "negdi2".
344 ("*negdi2"): Merge with instruction pattern of "negsi2".
345 ("*negdi2_cc", "*negsi2_cc"): Merge.
346 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
347 ("rotldi3", "rotlsi3"): Merge.
349 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
351 * config/s390/s390.md: ("hc"): New mode attribute.
352 ("extendhidi2", "extendqidi2"): Merge.
353 ("*extendhidi2", "*extendqidi2"): Merge.
354 ("extendhisi2", "extendqisi2"): Merge.
355 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
356 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
357 Merged 2 define_split.
358 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
359 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
361 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
363 * config/s390/s390.md: ("COMPARE"): New mode macro.
364 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
365 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
366 "bungt", "bunle", "bunge", "bltgt"): Merge.
368 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
370 * config/s390/s390.md: ("INT"): New mode macro.
371 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
374 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
376 * config/s390/s390.md: ("GPR", "P"): New mode macros.
377 ("cmpdi", "cmpsi"): Merge.
378 ("strlendi", "strlensi"): Merge.
379 ("*strlendi", "*strlensi"): Merge.
380 ("movmemdi", "movmemsi"): Merge.
381 ("clrmemdi", "clrmemsi"): Merge.
383 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
385 * config/s390/s390.md: ("HQI"): New mode macro.
386 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
387 ("*tmhi_full", "*tmqi_full"): Merge.
388 ("*tsthiCCT", "*tstqiCCT"): Merge.
389 ("*tsthi", "*tstqi"): Merge.
390 ("*tsthi_cconly", "tstqi_cconly"): Merge.
391 ("*sethighhisi", "*sethighqisi"): Merge.
393 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
395 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
396 config/alpha/unicosmk.h, config/arc/arc.md,
397 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
398 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
399 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
400 config/arm/semi.h, config/arm/uclinux-elf.h,
401 config/arm/wince-pe.h, config/fr30/fr30.c,
402 config/rs6000/altivec.h: Update copyright.
404 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
406 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
407 gcc_assert and gcc_unreachable as appropriate.
408 (pdp11_output_function_epilogue, output_move_double,
409 output_move_quad, print_operand_address, output_jump,
410 output_addr_const_pdp11): Likewise.
411 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
412 ASM_OUTPUT_ALIGN): Likewise.
413 * config/pdp11/pdp11.md: Likewise.
414 (extendhisi2, subhi3, subqi3): Likewise.
416 2005-05-09 David Edelsohn <edelsohn@gnu.org>
419 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
422 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
424 * config/ia64/ia64.c: Fix a comment typo.
426 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
429 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
430 (arm_override_options): Use them instead of manifest constants. Don't
431 allow -march to override the -mtune setting.
433 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
435 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
436 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
437 (function_arg_advance, function_arg, save_restore_insns,
438 iq2000_expand_prologue, iq2000_output_conditional_branch,
439 expand_one_builtin, print_operand):
440 * config/iq2000/iq2000.md (tablejump): Likewise.
442 2005-05-09 David Ung <davidu@mips.com>
444 * config/mips/mips.h (processor_type): Add names for the 24K.
445 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
447 * config/mips/mips.md (cnv_mode): New attribute for recording the
448 conversion types of float convert insns.
449 (cpu): Add 24k and 24kx.
450 (include): Include 24k.md file.
451 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
452 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
453 (floatdisf2): Setup cnv_mode.
454 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
456 * config/mips/24k.md: New file, contains 24k DFA pipeline
459 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
461 * config/sh/sh.c (print_operand_address): Use gcc_assert and
462 gcc_unreachable as appropriate.
463 (print_operand, prepare_move_operands, prepare_scc_operands,
464 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
465 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
466 fixup_mova, gen_far_branch, sh_reorg, split_branches,
467 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
468 sh_set_return_address, sh_setup_incoming_varargs,
469 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
470 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
471 check_use_sfunc_addr): Likewise.
472 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
473 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
474 * config/sh/symbian.c (sh_symbian_mark_dllexport,
475 sh_symbian_mark_dllimport): Likewise.
476 * config/sh/sh.md: Likewise.
477 (movdicc, call_pop, call_value_pop, casesi_worker_1,
478 casesi_worker_2, casesi_shift_media, casesi_load_media,
479 return_media): Likewise.
481 2005-05-08 Roger Sayle <roger@eyesopen.com>
484 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
487 2005-05-08 Richard Henderson <rth@redhat.com>
489 * config/alpha/alpha.c (adjust_address): Fix typo last change.
491 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
493 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
494 and -1 can happen in reg_renumber when no hard register is assigned.
496 2005-05-08 Steven Bosscher <stevenb@suse.de>
497 Kazu Hirata <kazu@cs.umass.edu>
499 PR tree-optimization/14841, tree-optimization/15838
500 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
501 (evaluate_stmt): Call it.
503 2005-05-08 Jakub Jelinek <jakub@redhat.com>
505 * config/ia64/ia64.c (ia64_override_options): Don't set
506 ia64_flag_var_tracking and clear flag_var_tracking here...
507 (ia64_file_start): ... but here.
509 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
511 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
512 and gcc_unreachable as appropriate.
513 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
514 m68hc11_gen_highpart, print_operand, print_operand_address,
515 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
516 m68hc11_gen_movhi): Likewise.
517 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
518 * config/m68hc11/m68hc11.md: Reword comment.
520 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
523 * config/m68hc11/predicates.md (splitable_operand): An immediate is
526 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
528 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
529 the 68HC12 address indirect addressing mode as it is not supported by
531 * config/m68hc11/m68hc11-protos.h
532 (m68hc11_valid_addressing_p): Declare.
533 (m68hc11_add_mode): Declare.
534 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
535 register_indirect_p and export it.
536 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
537 instruction so that it is part of the good BB.
538 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
539 addressing with movw.
540 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
542 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
543 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
544 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
546 ("*movhi_68hc12"): Handle movhi_const0.
547 ("*subhi3", "subqi3"): Use general_operand for operand 1.
548 ("*subhi3_zext"): Likewise.
550 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
553 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
554 operand 1 and fix constraints.
555 ("mulqihi3"): Use general_operand for operand 2.
557 2005-05-08 Julian Brown <julian@codesourcery.com>
558 H.J. Lu <hongjiu.lu@intel.com>
559 Paul Brook <paul@codesourcery.com>
561 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
562 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
563 20050308/2.16.0 or newer for comdat group.
564 * configure: Regenerated.
565 * config.in: Regenerated.
566 * varasm.c (default_function_rodata_section): Put .rodata section in
567 COMDAT group when necessary.
568 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
570 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
573 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
575 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
577 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
578 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
579 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
580 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
582 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
585 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
586 64-bit constants on 64-bit hosts.
587 (m68hc11_split_logical): Simplify.
588 (m68hc11_split_move): Likewise.
590 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
591 Paolo Bonzini <bonzini@gnu.org>
593 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
594 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
595 * configure.ac (enable_checking): Fix typos in runtime_checking.
596 (ENABLE_RUNTIME_CHECKING): Mark as target template.
597 (xm_file): Prepend auto-host.h
598 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
599 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
601 * crtstuff.c: Do not include auto-host.h.
602 (IN_LIBGCC2): Do not define.
603 * gcov-io.h: Include tconfig.h, not auto-host.h.
604 * libgcc2.c: Do not include auto-host.h.
605 (abort): Do not undefine.
606 * libgcov.c: Remove unneeded comment about config.h.
607 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
608 * config.in, configure: Regenerated.
610 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
611 Falk Hueffner <falk@debian.org>
613 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
614 and gcc_unreachable as appropriate.
615 (get_aligned_mem, get_unaligned_address,
616 alpha_emit_set_long_const, alpha_emit_conditional_branch,
617 alpha_emit_setcc, alpha_emit_conditional_move,
618 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
619 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
620 alpha_expand_unaligned_load, alpha_expand_block_move,
621 alpha_expand_zap_mask, get_trap_mode_suffix,
622 get_round_mode_suffix, get_some_local_dynamic_name,
623 print_operand_address, function_arg, alpha_return_in_memory,
624 function_value, alpha_expand_builtin,
625 alpha_initial_elimination_offset, alpha_expand_epilogue,
626 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
627 alphaev5_next_group, alpha_align_insns,
628 unicosmk_initial_elimination_offset, unicosmk_unique_section,
629 unicosmk_ssib_name): Likewise.
630 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
631 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
632 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
633 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
634 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
635 * config/alpha/alpha.md (*divmodsi_internal_er,
636 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
637 call_nt, call_umk, call_vms, call_value, sibcall_value,
638 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
639 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
640 * config/alpha/predicates.md (input_operand): Likewise.
642 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
644 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
645 gcc_unreachable, as appropriate.
646 (frv_function_prologue, frv_alloc_temp_reg,
647 frv_initial_elimination_offset, frv_expand_block_move,
648 frv_expand_block_clear, frv_print_operand_jump_hint,
649 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
650 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
651 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
652 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
653 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
654 frv_in_small_data_p, frv_asm_out_constructor,
655 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
656 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
657 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
658 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
659 sibcall_value, casesi): Likewise.
661 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
662 gcc_unreachable as appropriate.
663 (print_operand_address, mn10300_print_reg_list, expand_prologue,
664 expand_epilogue, notice_update_cc, initial_offset,
665 mn10300_address_cost_1): Likewise.
666 * config/mn10300/mn10300.md: Likewise.
667 (absdf2, abssf2, negdf2, negsf2): Likewise.
669 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
672 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
674 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
675 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
676 including sunge_<mode> and sungt_<mode>.
678 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
680 * integrate.h (get_hard_reg_initial_val): Change type of register
681 parameter from int to unsigned int.
682 (has_hard_reg_initial_val): Likewise.
683 * integrate.c (get_hard_reg_initial_val): Likewise.
684 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
686 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
688 * except.c (eh_status): Change the type of ttype_data to
690 (add_ttypes_entry, assign_filter_values,
691 output_function_exception_table): Use VEC instead of VARRAY.
693 2005-05-07 David Edelsohn <edelsohn@gnu.org>
695 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
697 2005-05-07 Paul Brook <paul@codesourcery.com>
699 * Makefile.in: Fix dependencies.
700 (GCOV_IO_H, VARRAY_H): Set.
702 2005-05-07 Anthony Green <green@redhat.com>
705 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
706 x$STMP_FIXPROTO test.
707 * configure: Rebuilt.
709 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
711 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
712 inappropriate feature test macros if flag_iso.
714 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
716 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
718 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
721 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
722 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
723 Handle moved operand being in special register.
724 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
725 presumed working insn.
726 (mover2side): Add FIXME.
728 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
730 * integrate.c (get_func_hard_reg_initial_val): Delete.
731 (has_func_hard_reg_initial_val): Delete.
732 (get_hard_reg_initial_val): Inline the old implementation of
733 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
734 instead of has_func_hard_reg_initial_val to test for an existing
735 pseudo. Only create an rtx if a new initial value entry is needed.
736 (has_hard_reg_initial_val): Scan the initial value list directly.
739 2005-05-07 David Edelsohn <edelsohn@gnu.org>
741 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
743 * config.in (HAVE_AS_POPCNTB): New.
744 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
745 (HAVE_AS_POPCNTB): New.
746 * configure: Regenerated.
747 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
748 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
749 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
750 and rs6000_sched_costly_dep.
751 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
752 (TARGET_XL_COMPAT): Delete.
753 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
754 (popcount<mode>2): New.
755 (popcntb<mode>2): New.
756 * config/rs6000/rs6000.opt (mpopcntb): New.
758 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
759 if variable name exists.
761 2005-05-07 Matt Kraai <kraai@ftbfs.org>
763 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
765 2005-05-07 Richard Henderson <rth@redhat.com>
768 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
769 with constant offsets.
771 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
773 * config/v850/v850.c (print_operand): Use gcc_assert and
774 gcc_unreachable, as appropriate.
775 (print_operand_address, v850_handle_data_area_attribute,
776 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
777 v850_insert_attributes, construct_prepare_instruction): Likewise.
778 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
779 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
781 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
783 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
784 config/rs6000/rs6000.h: Fix comment typos.
786 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
788 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
789 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
790 (mips_scalar_mode_supported_p): Delete.
792 2005-05-06 Eric Christopher <echristo@redhat.com>
794 * config/mips/mips.opt: Remove -mint64 option.
795 * config/mips/mips.c (override_options): Remove -mint64
797 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
798 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
799 64-bit integer handling.
800 * doc/invoke.texi (Option Summary): Remove -mint64 for
803 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
805 PR tree-optimization/19401
806 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
807 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
808 (estimated_unrolled_size): New function.
809 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
810 tree_unroll_loops_completely): Always unroll loops if the code size
812 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
813 loops should be unrolled completely.
814 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
816 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
818 PR rtl-optimization/21254
819 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
820 assumptions for loops that otherwise do not roll.
821 (find_simple_exit): Prefer # of iterations that is guaranteed
823 * loop-unroll.c (decide_peel_once_rolling,
824 decide_peel_completely): Check whether the loop is infinite.
826 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
828 * config/rs6000/sysv4.opt: Fix typo.
830 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
831 Jakub Jelinek <jakub@redhat.com>
834 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
835 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
836 Don't use rep; movs{l,q} if the repetition count is really small,
837 instead use a sequence of movs{l,q} instructions.
839 2005-05-06 Jeff Law <law@redhat.com>
841 PR tree-optimization/21380
842 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
843 thread through a block with no preds.
845 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
847 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
848 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
849 add_call_read_ops): Use VEC instead of VARRAY.
851 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
853 * config/mcore/mcore.c (mcore_print_operand_address): Use
854 gcc_assert and gcc_unreachable as appropriate.
855 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
856 mcore_output_andn, output_inline_const, mcore_output_move,
857 mcore_output_movedouble, mcore_expand_block_move,
858 layout_mcore_frame, mcore_initial_elimination_offset,
859 mcore_expand_prolog, mcore_mark_dllexport,
860 mcore_mark_dllimport): Likewise.
861 * config/mcore/mcore.h (switch_to_section): Likewise.
862 * config/mcore/mcore.md: Likewise.
864 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
866 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
867 TARGET_PROFILE_KERNEL.
869 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
870 TARGET_PROFILE_KERNEL use.
872 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
874 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
875 and gcc_unreachable, as appropriate.
876 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
877 m32r_expand_prologue, m32r_output_function_epilogue,
878 m32r_legitimize_pic_address, m32r_print_operand_address,
879 emit_cond_move, m32r_function_symbol,
880 m32r_output_block_move): Likewise.
881 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
882 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
883 *rev_zero_branch_insn): Likewise.
885 2005-05-06 Jakub Jelinek <jakub@redhat.com>
888 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
889 if both NEWDECL and OLDDECL are already weak.
891 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
893 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
895 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
896 Kaz Kojima <kkojima@gcc.gnu.org>
898 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
901 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
902 David Edelsohn <edelsohn@gnu.org>
904 * config.gcc: Add .opt magic for the rs6000 ports.
906 * doc/invoke.texi: Document -mabi= option properly. Document
907 -misel and -mno-sel. Document -mspe and -mno-spe. Document
908 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
911 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
912 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
915 * config/rs6000/aix.opt: New.
916 * config/rs6000/aix41.opt: New.
917 * config/rs6000/aix64.opt: New.
918 * config/rs6000/darwin.opt: New.
919 * config/rs6000/linux64.opt: New.
920 * config/rs6000/rs6000.opt: New.
921 * config/rs6000/sysv4.opt: New.
923 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
924 associated TARGET_*. Remove SUBTARGET_OPTIONS,
926 Define TARGET_USES_SYSV4_OPT.
927 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
928 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
929 TARGET_USES_AIX64_OPT.
930 * config/rs6000/aix51.h: Same.
931 * config/rs6000/aix52.h: Same.
932 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
933 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
934 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
935 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
936 * config/rs6000/linux64.h: Use
937 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
939 * config/rs6000/rs6000.c: Remove definitions of
940 rs6000_sched_restricted_insns_priority,
941 rs6000_long_double_size_string, rs6000_altivec_vrsave,
942 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
943 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
944 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
945 rs6000_alignment_string. Define rs6000_explicit_options.
946 (rs6000_parse_abi_options): Remove.
947 (rs6000_parse_alignment_option): Remove.
948 (rs6000_parse_float_gprs_option): Remove.
949 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
950 TARGET_DEFAULT_TARGET_FLAGS.
951 (rs6000_override_options): Revamp to use new .opt machinery.
953 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
954 of new .opt machinery. Remove target_flags. Redefine
955 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
956 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
957 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
958 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
959 rs6000_longcall_switch, rs6000_default_long_calls,
960 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
961 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
962 TARGET_ALTIVEC_VRSAVE.
964 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
966 * config.gcc (hppa1.1-*-rtems*): Remove.
967 * config/pa/rtems.h: Remove.
969 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
971 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
972 Exclude roe/603e multilib variants.
974 2005-05-04 Denis Chertykov <denisc@overta.ru>
977 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
980 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
982 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
983 arm/pe.opt to $extra_options.
984 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
985 (target_float_abi_name, target_float_switch, target_abi_name)
986 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
987 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
988 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
989 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
990 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
991 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
992 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
993 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
994 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
995 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
996 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
997 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
998 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
999 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
1000 (arm_pic_register_string): Delete.
1001 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1003 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1004 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1005 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1006 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1007 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1008 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1009 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1010 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1011 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1012 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1013 (SUBTARGET_SWITCHES): Delete.
1014 * config/arm/arm.c (target_float_switch): Delete.
1015 (arm_cpu_select): Moved from config/arm/arm.h.
1016 (target_fpu_name, target_fpe_name, target_float_abi_name)
1017 (target_abi_name, structure_size_string, arm_pic_register_string)
1018 (arm_select): Make static.
1019 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1020 (arm_handle_option): New function.
1021 (arm_override_options): Update target_flags checks for new mask names.
1022 Remove target_float_switch code.
1023 (arm_expand_prologue, thumb_expand_prologue): Check
1024 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1025 * config/arm/arm.opt, config/arm/pe.opt: New files.
1027 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
1029 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1030 gcc_unreachable as appropriate.
1031 (arc_double_limm_p, arc_setup_incoming_varargs,
1032 arc_compute_function_type, arc_output_function_prologue,
1033 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1034 output_shift, arc_print_operand, arc_print_operand_address,
1035 arc_final_prescan_insn): Likewise.
1036 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1038 2005-05-04 Geoffrey Keating <geoffk@apple.com>
1040 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1045 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1046 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1047 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1048 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1049 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1050 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1051 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1052 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1054 2005-05-05 Paul Brook <paul@codesourcery.com>
1056 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1057 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1058 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1059 and tree-data-ref.h with *_H variables.
1061 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
1063 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1065 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
1067 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1069 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
1071 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1073 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1075 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1076 setting of vrsave register for current function after
1077 call to save_world is emitted.
1079 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
1081 * config/mmix/predicates.md: New file.
1082 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1083 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1084 (mmix_foldable_comparison_operator, mmix_comparison_operator)
1085 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1086 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1088 * config/mmix/mmix.md: Include predicates.md.
1089 ("call", "call_value"): Force address to register if it isn't a
1090 mmix_symbolic_or_address_operand.
1092 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
1094 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1095 the flags are of appropriate types.
1096 (num_ssa_operands): Generalize using the generic interface.
1097 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1100 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
1102 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1103 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1105 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1107 * tree-outof-ssa.c (edge_leader, stmt_list,
1108 analyze_edges_for_bb): Use VEC instead of VARRAY.
1109 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1110 (perform_edge_inserts): Call init_analayze_edges_for_bb and
1111 fini_analayze_edges_for_bb.
1113 2005-05-04 James E Wilson <wilson@specifixinc.com>
1116 * gcc.c (process_command): In the second argv scan loop, ignore
1117 Xassembler and Xpreprocessor, along with their argument.
1119 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1121 * tree-flow-inline.h, tree-ssa-operands.c,
1122 tree-ssa-operands.h, tree-ssa-opfinalize.h:
1123 Likewise. tree-vn.c: Fix comment typos.
1124 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1126 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
1128 * doc/tm.texi (Target Hooks): Document
1129 TARGET_RESOLVE_OVERLOADED_BUILTIN.
1131 2005-05-04 Paul Brook <paul@codesourcery.com>
1133 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1135 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
1137 * dwarf2out.c (incomplete_types, retry_incomplete_types,
1138 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1141 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1142 get_expansion, expand_var_during_unrolling,
1143 insert_var_expansion_initialization,
1144 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1147 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1150 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
1153 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1154 the same as INTEGER_TYPE.
1155 (fold_binary): Fold "bool_var != 0" to bool_var.
1156 Fold "bool_var == 1" to bool_var.
1158 2004-05-03 Richard Henderson <rth@redhat.com>
1161 * function.c (instantiate_virtual_regs_in_insn): Use the mode
1162 from recog_data instead of insn_data.
1164 2005-05-03 DJ Delorie <dj@redhat.com>
1166 * common.opt (fdiagnostics-show-option): No variable is needed.
1167 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1168 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1169 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1170 Save and restore original message format. Use flag in context
1172 (warning): Don't test for enabled warnings here.
1173 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1176 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
1178 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1179 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1180 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1181 * aclocal.m4: Don't include accross.m4.
1182 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1183 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1184 * configure, config.in: Regenerate.
1186 2005-05-04 Jakub Jelinek <jakub@redhat.com>
1189 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1190 (clear_storage): Add argument.
1191 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1192 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1194 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1195 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1196 (store_expr, store_constructor): Adjust callers.
1197 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1198 to emit_block_move if CALL_EXPR_TAILCALL (exp).
1199 (expand_builtin_memmove): Add ORIG_EXP argument, copy
1200 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1201 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1202 with EXP. Pass EXP to expand_builtin_memmove.
1203 (expand_builtin_memset): Add ORIG_EXP argument, pass
1204 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1205 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1206 Pass EXP to expand_builtin_memset.
1207 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1209 (expand_builtin_strncmp): Likewise.
1210 (expand_builtin_printf): Replace ARGLIST argument with EXP.
1211 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1212 (expand_builtin_fprintf): Likewise.
1213 (expand_builtin): Adjust calls to
1214 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1216 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1219 PR rtl-optimization/21239
1220 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1222 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
1224 * tree-flow.h (tree_ann_common_d): Move aux to ...
1225 (stmt_ann_d): ... here.
1226 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1227 move_computations_stmt, schedule_sm): Update references to
1229 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1231 * tree-cfg.c (remove_bb): Remove a redundant call to
1233 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1236 2005-05-03 Richard Henderson <rth@redhat.com>
1238 * config/rs6000/rs6000.c: Remove conflict markers.
1240 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1242 2005-05-03 James E Wilson <wilson@specifixinc.com>
1244 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1246 2005-05-03 DJ Delorie <dj@redhat.com>
1248 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1249 decide if the warning will be printed.
1250 * calls.c (expand_call): Likewise.
1251 * function.c (init-function_start): Likewise.
1253 * common.opt (-fdiagnostics-show-option): New.
1254 * opts.c (option_enabled): Accept the option index instead of a
1255 pointer to the option descriptor.
1256 * opts.h (option_enabled): Likewise.
1257 * toplev.c (print_switch_values): Pass option index, not option
1259 * diagnostic.h (diagnostic_info): Add option_index.
1260 * diagnostic.c: Include opts.h.
1261 (diagnostic_set_info): Initialize option_index.
1262 (diagnostic_report_diagnostic): Amend option name if appropriate.
1263 (warning): Check to see if the specified warning is enabled.
1265 * doc/invoke.texi (-fdiagnostics-show-options): Document.
1267 2005-05-03 Richard Henderson <rth@redhat.com>
1269 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1270 SPEC_OR_GEN_REGS definitions.
1272 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
1275 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1276 for unavailable registers.
1278 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
1280 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1282 * cfglayout.c (block_locators_blocks,
1283 insn_locators_initialize, insn_scope): Use VEC instead of
1286 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1287 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1290 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1292 * config/sparc/predicates.md (const_compl_high_operand): New.
1293 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1295 (sparc_emit_set_const64_quick1): Adjust for above change.
1296 (sparc_emit_set_const64_quick2): Likewise.
1297 (sparc_emit_set_const64_longway): Likewise.
1298 (sparc_emit_set_const64): Likewise.
1299 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1300 movdi_const64_special): Delete.
1301 (logical constant splitters): Use const_compl_high_operand.
1303 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
1305 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1306 rather than STRIP_NOPS.
1308 2005-05-03 Jakub Jelinek <jakub@redhat.com>
1310 PR rtl-optimization/21330
1311 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
1313 (unswitch_single_loop): Clear cinsn when retrying.
1316 * config/i386/i386.c (legitimize_address): When canonicalizing
1317 ASHIFT into MULT, multiply by 1 << shift_count instead of
1318 1 << log2 (shift_count).
1320 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
1322 * lambda-code.c (gcc_loop_to_lambda_loop,
1323 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
1324 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
1325 generic operand interface.
1326 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
1327 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
1328 generic operand interface.
1329 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
1330 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
1331 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
1332 num_imm_uses): Use ssa_use_operand_t.
1333 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
1334 get_v_must_def_ops): Delete.
1335 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
1336 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
1337 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
1338 get_v_must_def_kill_ptr): Delete.
1339 (delink_stmt_imm_use): Move and use new operand interface.
1340 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
1341 op_iter_next_tree): Use new operand implementation.
1342 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
1343 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
1345 (op_iter_next_mustdef, op_iter_next_maydef,
1346 op_iter_next_must_and_may_def): Delete. Replace with...
1347 (op_iter_next_maymustdef): New. Combine must and may next operations.
1348 (op_iter_init_maydef, op_iter_init_mustdef,
1349 op_iter_init_must_and_may_def): Use new interface.
1350 (single_ssa_tree_operand ): New. Process single operands only as trees.
1351 (single_ssa_use_operand): New. Process single operands only as uses.
1352 (single_ssa_def_operand): New. Process single operands only as defs.
1353 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
1355 (num_ssa_operands): New. Count the number of specified operands.
1356 (compare_ssa_operands_equal): New. Compare two statements' operands.
1357 (single_phi_def): New. Return true if PHI has one def of the specified
1359 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
1360 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
1361 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
1362 (struct stmt_ann_d): Operands field no longer require GTY().
1363 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
1364 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1365 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1366 dump_replaceable_exprs, rewrite_trees): Use generic interface.
1367 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
1368 Use use_operand_p instead of ssa_imm_use_t *.
1369 * tree-pretty-print.c (dump_vops): check if operands are active before
1370 dumping virtual operands.
1371 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
1372 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
1373 (ccp_fold): Use new interface.
1374 (ccp_visit_stmt): Remove unused variables and code.
1375 (convert_to_gimple_builtin): Insert statements before calling
1376 mark_new_vars_to_rename.
1377 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
1378 (copy_prop_visit_cond_stmt): Use generic interface.
1379 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
1380 annotation in table.
1381 (thread_across_edge): Use generic interface.
1382 (initialize_hash_element): Initialzie with stmt, not annotation.
1383 (eliminate_redundant_computations): Use generic interface.
1384 (record_equivalences_from_stmt): Pass stmt, not annotation.
1385 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
1387 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1388 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
1389 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
1390 generic operand interface.
1391 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
1393 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
1395 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
1396 (build_defs, build_uses, build_v_may_defs, build_vuses,
1397 build_v_must_defs): Change type to struct opbuild_list_d.
1398 (ops_active): New. Operands active boolean.
1399 (operand_memory, operand_memory_index): New. Operand memory managers.
1400 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1401 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1402 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1403 Change from functions to static variable list heads.
1404 (opbuild_initialize_virtual): New. Initialize a virtual build list.
1405 (opbuild_initialize_real): New. Initialize a virtual build list.
1406 (opbuild_free): New. Free a build list.
1407 (opbuild_num_elems): New. Number of items in a list.
1408 (opbuild_append_real): New. Add a real (tree *) operand.
1409 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
1410 (opbuild_first): New. Return first element index in a list.
1411 (opbuild_next): New. Return next element in a list.
1412 (opbuild_elem_real): New. Return real element.
1413 (opbuild_elem_virtual): New. Return virtual element.
1414 (opbuild_elem_uid): New. Return UID of virtual element.
1415 (opbuild_clear): New. Reset an operand list.
1416 (opbuild_remove_elem): New. Remove an element form a list.
1417 (ssa_operands_active): New. Return true if operand cache is active.
1418 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
1419 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
1420 (correct_use_link): Use use_operand_p.
1421 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1422 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
1423 (cleanup_v_may_defs): Use new implmentation.
1424 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
1426 (append_def, append_use, append_v_may_def, append_vuse,
1427 append_v_must_def): Call opbuild_append routine instead of using varray.
1428 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
1429 global parse_old_ops variable.
1430 (free_ssa_operands): New implementation.
1431 (update_stmt_operands): Move. Change argument to build_ssa_operands.
1432 (copy_virtual_operands): Move. New generic implementation.
1433 (create_ssa_artficial_load_stmt): Move. New implementation.
1434 (swap_tree_operands): Update for new implementation.
1435 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
1436 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
1437 rather than a varray.
1438 (verify_imm_links): Use use_operand_p.
1439 (dump_immediate_uses_for): If the immediate use variable is a virtual
1440 variable, show the virtual ops in the stmt.
1441 * tree-ssa-operands.h (def_operand_p): No longer a structure.
1442 (NULL_DEF_OPERAND_P): Now a #define.
1443 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
1444 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
1445 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
1446 mustdef_optype_d): New. Use Linked list representation.
1447 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
1448 (struct ssa_operand_memory_d): New. Allocated Chunk node.
1449 (struct stmt_operands_d): Change to new pointers that are not GTY.
1450 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
1451 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
1452 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1453 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
1454 SET_V_MUST_DEF_KILL): Delete.
1455 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
1456 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1457 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
1458 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
1459 (enum ssa_op_iter_type): Operand iterator typechecking values.
1460 (struct ssa_operand_iterator_d): Use linked lists of operands.
1461 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
1462 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
1463 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
1464 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
1465 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
1466 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
1467 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
1468 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
1469 * tree-ssa-opfinalize.h: New. Function templates for expansion.
1470 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
1471 alloc_vuse, and alloc_mustdef.
1472 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
1473 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1474 and finalize_ssa_v_must_def_ops.
1475 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
1476 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
1478 (compute_avail): Use generic iterator interface.
1479 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1480 (stmt_makes_single_load, stmt_makes_single_store): Use
1482 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
1483 (statement_sink_location): Use generic interface.
1484 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
1485 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
1486 reset the immediate use link nodes.
1487 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
1488 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
1489 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
1490 (eliminate_tail_call): Use generic operand interface.
1491 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1492 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
1494 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
1496 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
1497 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
1499 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
1500 Use statement pointer instead of vuse_optype. Use generic interface.
1501 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
1502 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
1503 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
1504 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
1505 * doc/tree-ssa.texi: Update documentation for operand interface.
1507 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
1509 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
1510 gcc_unreachable as appropriate.
1511 (machopic_function_base_name, machopic_indirect_data_reference,
1512 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
1513 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
1514 * config/rs6000/altivec.md (*mov<mode>_internal,
1515 build_vector_mask_for_load): Likewise.
1516 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
1517 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
1518 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
1519 * config/rs6000/predicates.md (easy_fp_constant,
1520 logical_operand): Likewise.
1521 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
1522 compute_save_world_info, rs6000_emit_prologue,
1523 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
1524 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
1527 2005-05-03 Uros Bizjak <uros@kss-loka.si>
1530 * convert.c (convert_to_integer): Convert ceil and floor in
1533 2005-04-29 Geoffrey Keating <geoffk@apple.com>
1536 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
1537 define_insn_and_split. Split only when memory operand is
1538 offsettable. Use adjust_address rather than plus_constant.
1539 (floatunssidf2_internal): Likewise.
1540 (fix_truncdfsi2_internal): Split only when memory operand is
1541 offsettable. Use adjust_address rather than plus_constant.
1542 (fix_trunctfsi2_internal): Likewise.
1543 (floatsidf2_internal): Likewise.
1545 2005-05-02 Diego Novillo <dnovillo@redhat.com>
1547 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
1548 (set_value_range_to_null): Likewise.
1549 (set_value_range_to_varying): New function. Use it in all
1550 call sites that used to call set_value_range (vr, VR_VARYING, ...).
1551 (extract_range_from_assert): If the integral type has a
1552 super-type, and LIMIT is not within MIN and MAX values of that
1553 type, set the resulting range to VR_VARYING.
1555 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
1557 * config/mmix/mmix.opt: New file.
1558 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
1559 (mmix_cc1_ignored_option): Don't declare.
1560 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
1561 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
1562 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
1563 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
1564 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
1565 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
1566 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
1567 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
1569 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
1570 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
1571 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1573 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
1576 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
1577 * c-decl.c (current_function_prototype_built_in,
1578 current_function_prototype_arg_types): New.
1579 (merge_decls): Keep source location of prototype followed by
1580 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
1581 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
1582 (start_function): Always set current_function_prototype_locus,
1583 current_function_prototype_built_in and
1584 current_function_prototype_arg_types. Check for external
1585 prototype whether or not visible for external function and set
1586 current_function_prototype_arg_types accordingly.
1587 (store_parm_decls_oldstyle): Use
1588 current_function_prototype_arg_types for checking old-style
1589 definition against prototype. Give warnings only if
1590 current_function_prototype_built_in).
1592 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
1594 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
1595 (ggc_alloc_zone_stat): Don't define.
1596 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
1597 ggc_alloc_zone_pass_stat.
1598 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
1599 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
1600 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
1602 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
1604 * calls.c (expand_call): Handle current_function_pretend_args_size
1605 when checking for sibcalls.
1607 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1609 PR tree-optimization/21294
1610 * tree-vrp.c (vrp_expr_computes_nonzero): New.
1611 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
1613 2005-05-02 Janis Johnson <janis187@us.ibm.com>
1616 * gcov-io.h: Declare gcov external functions hidden.
1618 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1620 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
1621 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
1622 Use VEC instead of VARRAY.
1625 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
1628 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
1630 * c-common.c (resolve_overloaded_builtin): Forward to target
1631 hook for BUILT_IN_MD built-ins.
1632 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
1633 for all types of built-in.
1634 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
1635 in the definition of the target hooks struct.
1636 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
1637 * config/rs6000/altivec.h: Rewritten.
1638 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
1639 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
1640 rs6000_builtin_type, rs6000_builtin_type_compatible,
1641 altivec_overloaded_builtins, rs6000_builtin_type,
1642 rs6000_builtin_type_compatible): New.
1643 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
1645 (def_builtin): Turn into a function. Check for duplicates and store
1646 the builtin into rs6000_builtin_decls.
1647 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
1648 bdesc_1arg): Add overloaded builtins.
1649 (altivec_expand_builtin): Check for unresolved overloaded builtins,
1650 do not support ALTIVEC_COMPILETIME_ERROR.
1651 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
1652 nodes to represent front-end types.
1653 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
1654 with opaque arguments and/or return values.
1655 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
1656 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
1657 (rs6000_builtin_type_index): New.
1658 (is_ev64_opaque_type): Rename to...
1659 (rs6000_is_opaque_type): ... this.
1660 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
1663 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1665 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
1668 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
1669 Bernd Schmidt <bernd.schmidt@analog.com>
1671 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
1672 print_address_operand, print_operand, legitimize_pic_address,
1673 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
1674 output_pop_multiple): Use gcc_assert or gcc_unreachable as
1676 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
1678 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
1680 * doc/passes.texi: Document vectorization pass.
1682 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
1684 * tree-scalar-evolution.c (get_exit_conditions_rec,
1685 select_loops_exit_conditions,
1686 number_of_iterations_for_all_loops,
1687 analyze_scalar_evolution_for_all_loop_phi_nodes,
1688 scev_analysis): Use VEC instead of VARRAY.
1690 2005-05-02 Michael Matz <matz@suse.de>
1693 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
1694 (warn_strict_null_sentinel): Define.
1695 (check_function_sentinel): Check for null_node as valid sentinel too.
1696 * c-common.h (c_tree_index): Added CTI_NULL.
1697 (null_node) Define global_tree[CTI_NULL].
1698 (warn_strict_null_sentinel): Declare.
1699 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
1700 * c.opt: (Wstrict-null-sentinel): New C++ option.
1701 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
1703 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
1705 * gimplify.c (gimplify_compound_lval): Use VEC instead of
1708 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
1710 * dwarf2out.c (decl_scope_table, push_decl_scope,
1711 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
1714 2005-05-01 Mark Mitchell <mark@codesourcery.com>
1717 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
1719 * doc/cpp.texi (__DEPRECATED): Document.
1720 (__EXCEPTIONS): Likewise.
1721 (__GXX_WEAK__): Likewise.
1723 * function.c (INVOKE__main): Do not define.
1724 (expand_main_function): Check HAS_INIT_SECTION when determining
1725 whether or not to call __main.
1727 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
1729 * tree-ssa-loop-ivopts.c: Fix a comment typo.
1731 2005-01-05 Paul Brook <paul@codesourcery.com>
1733 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
1734 (INITIALIZE_TRAMPOLINE): Use it.
1735 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
1736 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
1737 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
1739 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
1741 * doc/install.texi (Specific): Omit dots in the @anchors names
1742 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
1743 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
1745 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1747 PR tree-optimization/18316
1748 PR tree-optimization/19126
1749 * tree.c (build_int_cst_type): Avoid shift by size of type.
1750 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
1752 * tree-scalar-evolution.h (simple_iv): Declaration changed.
1753 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
1755 (dump_cand): Dump depends_on information.
1756 (determine_biv_step): Add argument to simple_iv call.
1757 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
1758 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
1760 (add_candidate_1): Record depends_on for candidates.
1761 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
1762 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
1763 Handle ivs with nonconstant step.
1764 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
1765 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
1766 (create_new_iv): Unshare the step before passing it to create_iv.
1767 (free_loop_data): Free cand->depends_on.
1768 (build_addr_strip_iref): New function.
1769 (find_interesting_uses_address): Use build_addr_strip_iref.
1770 (strip_offset_1): Split the recursive part from strip_offset.
1771 Strip constant offset component_refs and array_refs.
1772 (strip_offset): Split the recursive part to strip_offset_1.
1773 (add_address_candidates): Removed.
1774 (add_derived_ivs_candidates): Do not use add_address_candidates.
1775 (add_iv_value_candidates): Add candidates with stripped constant
1776 offset. Consider all candidates with initial value 0 important.
1777 (struct affine_tree_combination): New.
1778 (aff_combination_const, aff_combination_elt, aff_combination_scale,
1779 aff_combination_add_elt, aff_combination_add,
1780 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
1781 fold_affine_sum): New functions.
1782 (get_computation_at): Use fold_affine_sum.
1783 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
1784 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
1787 2005-04-30 Michael Matz <matz@suse.de>
1789 * config/i386/i386.md (movmemsi): Also active when
1790 TARGET_INLINE_ALL_STRINGOPS.
1792 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
1795 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
1797 2005-04-30 Paul Brook <paul@codesourcery.com>
1799 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
1801 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
1802 * config/arm/ieee754-sf.S: Ditto.
1803 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
1804 (FUNC_ALIAS): Use .thumb_set for thumb routines.
1806 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
1808 * tree-ssanames.c: Fix a comment typo.
1809 * doc/options.texi: Fix a typo.
1811 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
1813 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
1814 gcc_unreachable as appropriate.
1815 (split_adds_subs, cond_string, print_operand,
1816 h8300_initial_elimination_offset, h8300_classify_operand,
1817 h8300_unary_length, h8300_short_immediate_length,
1818 h8300_bitfield_length, h8300_binary_length,
1819 h8300_insn_length_from_table, compute_mov_length, output_plussi,
1820 compute_plussi_length, compute_plussi_cc, output_logical_op,
1821 compute_logical_op_length, compute_logical_op_cc,
1822 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
1823 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
1824 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
1825 h8300_regs_ok_for_stm): Likewise.
1826 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
1827 monitor_prologue): Likewise.
1829 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
1831 * loop-invariant.c (invariants, create_new_invariant,
1832 get_inv_cost, best_gain_for_invariant,
1833 find_invariants_to_move, move_invariants,
1834 init_inv_motion_data, free_inv_motion_data): Use VEC instead
1837 2005-04-29 Richard Henderson <rth@redhat.com>
1839 * function.c (instantiate_decls): Remove valid_only argument.
1840 (instantiate_decls_1, instantiate_decl): Likewise.
1841 (instantiate_virtual_regs_1): Delete.
1842 (instantiate_virtual_regs_lossage): Delete.
1843 (instantiate_virtual_regs_in_rtx): New.
1844 (safe_insn_predicate): New.
1845 (instantiate_virtual_regs_in_insn): New.
1846 (instantiate_virtual_regs): Update to match all that. Only run
1847 instantiate_decls once.
1849 2005-04-29 Richard Henderson <rth@redhat.com>
1850 Daniel Jacobowitz <dan@codesourcery.com>
1852 * gengtype.c (write_func_for_structure): Split out ...
1853 (output_type_enum): ... new function. Fix thinko accessing
1854 TYPE_PARAM_STRUCT data.
1856 2005-04-29 Tom Tromey <tromey@redhat.com>
1858 * tree.c (build_block): Removed unused 'tags' argument.
1859 * tree.h (build_block): Removed argument.
1861 2005-04-29 Michael Matz <matz@suse.de>
1863 PR rtl-optimization/21144
1864 * postreload.c (reload_cse_move2add): Check for VOIDmode.
1866 2005-04-29 Bob Wilson <bob.wilson@acm.org>
1868 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
1869 flag_reorder_blocks.
1871 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
1873 PR tree-optimization/21030
1874 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
1875 ranges where VR->MAX is smaller than VR->MIN.
1877 2005-04-29 Devang Patel <dpatel@apple.com>
1879 PR tree-optimization/21272
1880 PR tree-optimization/21266
1881 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
1883 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
1885 * tree-flow-inline.h: Fix a comment typo.
1886 * doc/tree-ssa.texi: Fix a typo.
1888 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
1890 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1892 * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
1893 gcc_unreachable as appropriate.
1894 (fr30_expand_epilogue, fr30_setup_incoming_varargs,
1895 fr30_print_operand, fr30_move_double): Likewise.
1896 * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
1898 2005-04-29 Mark Mitchell <mark@codesourcery.com>
1900 * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
1901 definition has already been provided.
1902 (ARM_EABI_DTORS_SECTION_OP): Likewise.
1903 * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
1904 (ARM_EABI_DTORS_SECTION_OP): Likewise.
1906 2005-04-29 Jim Tison <jtison@us.ibm.com>
1908 * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
1909 trace hooks calls to improve performance.
1911 2005-04-29 Julian Brown <julian@codesourcery.com>
1912 Mark Mitchell <mark@codesourcery.com>
1913 Paul Brook <paul@codesourcery.com>
1915 * crtstuff.c: Handle targets that use .init_array.
1916 * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
1917 that INVOKE__main is set correctly.
1918 (expand_main_function): Test INVOKE__main.
1919 * libgcc2.c: Do not define __main when using .init_array.
1920 * config/arm/arm.c (arm_elf_asm_constructor): New function.
1921 * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
1923 (DTORS_SECTION_ASM_OP): Likewise.
1924 (CTOR_LIST_BEGIN): Define specially when in libgcc.
1925 (CTOR_LIST_END): Likewise.
1926 (DTOR_LIST_BEGIN): Likewise.
1927 (DTOR_LIST_END): Likewise.
1928 * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
1929 (FINI_SECTION_ASM_OP): Likewise.
1930 (INIT_ARRAY_SECTION_ASM_OP): Define.
1931 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1932 * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
1933 (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
1934 * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
1935 (FINI_ARRAY_SECTION_ASM_OP): Likewise.
1937 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1939 * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
1940 gcc_assert and gcc_unreachable as appropriate.
1941 (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
1942 const_int_cost, output_move_const_into_data_reg,
1943 output_move_qimode, output_move_double, find_addr_reg,
1944 print_operand, print_operand_address): Likewise.
1945 * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
1946 absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
1947 sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
1948 bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
1949 *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
1950 conditional_trap): Likewise.
1951 * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
1953 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>
1955 * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
1956 gcc_unreachable as appropriate.
1957 (gen_conditional_move, xtensa_split_operand_pair,
1958 xtensa_split_operand_pair, xtensa_copy_incoming_a7,
1959 xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
1960 xtensa_copy_incoming_a7, xtensa_output_literal,
1961 xtensa_output_literal, xtensa_output_literal): Likewise.
1962 * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1963 * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
1964 *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
1965 movsicc_internal1, movsfcc_internal0,
1966 movsfcc_internal1): Likewise.
1968 2005-04-28 James E Wilson <wilson@specifixinc.com>
1970 * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
1971 (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
1973 2005-04-28 DJ Delorie <dj@redhat.com>
1975 * opt-functions.awk (var_set): Emit proper initializer for
1976 non-target bitfields.
1978 2005-04-28 Devang Patel <dpatel@apple.com>
1980 * dbxout.c (have_used_extensions): Remove.
1981 (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
1982 have_used_extensions.
1984 2005-04-28 James E Wilson <wilson@specifixinc.com>
1986 * doc/install.texi: Update -enable-languages info. Correct path to
1989 2005-04-28 DJ Delorie <dj@redhat.com>
1991 * optc-gen.awk (END): Make sure no variable is defined more
1993 * opth-gen.awk (END): Allocate bits on a per-variable basis.
1994 Allow for bitfield variables other than target_flags.
1995 * doc/options.text (Mask): Document that you may specify a
1996 variable other than target_flags.
1998 2005-04-28 Martin Koegler <mkoegler@auto.tuwien.ac.at>
2000 PR rtl-optimization/18877
2001 * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2002 number in val.start.
2004 2005-04-28 David Edelsohn <edelsohn@gnu.org>
2007 * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2009 * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2010 * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2011 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2013 2005-04-28 Richard Earnshaw <richard.earnshaw@arm.com>
2015 * arm.c (legitimize_pic_address): Fix sense of assertion test for
2016 creating pseudos when the base offset is too large.
2018 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
2020 * global.c (earlyclobber_regclass): Change the type to
2022 (check_earlyclobber): Update uses of earlyclobber_regclass.
2023 (mark_reg_use_for_earlyclobber): Likewise.
2024 (calculate_local_reg_bb_info): Allocate and free
2025 earlyclobber_regclass using the VEC API.
2027 2005-04-28 Nathan Sidwell <nathan@codesourcery.com>
2029 * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2032 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
2034 * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2037 * config.gcc: Obsolete c4x-* and tic4x-*.
2039 * tree.h (edge_def): Remove.
2041 * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2042 function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2043 reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2044 JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2047 * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2048 coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2049 errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2050 genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2051 integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2052 machmode.def, mips-tfile.c, params.c, pretty-print.c,
2053 print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2054 tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2055 config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2056 config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2057 config/i386/cygming.h, config/i386/djgpp.h,
2058 config/i386/lynx.h, config/i386/netware.c,
2059 config/i386/winnt.c, config/ia64/ia64-c.c,
2060 config/iq2000/iq2000.c, config/m32r/little.h,
2061 config/m68k/m68k-protos.h, config/m68k/m68k.h,
2062 config/m68k/m68k.md, config/mcore/mcore.c,
2063 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2064 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2065 config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2066 config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2067 config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2068 config/pdp11/pdp11.h, config/rs6000/darwin.h,
2069 config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2070 config/s390/2064.md, config/s390/2084.md,
2071 config/s390/s390-modes.def, config/s390/s390-protos.h,
2072 config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2073 config/stormy16/stormy16.c, config/vax/vax-protos.h,
2074 config/vax/vax.c, config/vax/vax.h,
2075 config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2078 2005-04-28 Joseph S. Myers <joseph@codesourcery.com>
2080 * c-typeck.c (build_compound_expr): Correct logic in last change.
2082 2005-04-27 James E. Wilson <wilson@specifixinc.com>
2084 * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2085 parameters. Replace conditional move code with assert checking for
2086 ar.lc. Delete obsolete comments.
2087 (set_src_needs_barrier): Delete cond parameter, and code using it.
2088 (rtx_needs_barrier): Delete initialization of cond. Fix typo in
2089 assert checking for PR_REGS. Fix calls to update_set_flags and
2090 set_src_needs_barrier.
2091 (group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
2092 callers. Rewrite explanatory comment before the function.
2093 (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2096 2005-04-27 Mike Stump <mrs@apple.com>
2098 * doc/cpp.texi: gcc now implements universal character names.
2100 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2103 * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2104 being a compound expression whose right-hand side is cast to void.
2106 2005-04-27 Caroline Tice <ctice@apple.com>
2108 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2109 Remove targetm.have_named_sections test.
2110 (fix_edges_for_rarely_executed_code): Likewise.
2111 (insert_section_boundary_note): Likewise.
2112 (reorder_basic_blocks): Check partitioning flag before calling
2113 verify_hot_cold_block_grouping.
2114 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2115 the function struct rather than global variables.
2116 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2117 (COLD_END_LABEL): Likewise
2118 (cold_text_section_label): New static global variable.
2119 (cold_end_label): Likewise.
2120 (dwarf2out_switch_text_section): Get hot/cold section labels from
2121 the function struct rather than global variables; test to make sure
2123 (output_aranges): Use cold_text_section_label and cold_end_label;
2124 check partitioning flag before putting out delta.
2125 (output_ranges): Remove incorrect code attempting to use
2127 (output_line_info): Get cold section label from function struct; test
2128 to make sure cfun is defined.
2129 (add_location_or_const_value_attribute): Likewise.
2130 (dwarf2out_var_location): Likewise.
2131 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2132 write out cold_text_section_label if partition flag is set.
2133 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2134 * function.h (struct function): Add new fields to point to hot/cold
2135 section labels: hot_section_label, cold_section_label,
2136 hot_section_end_label and cold_section_end_label; also add new field
2137 for cold text section name, unlikely_text_section_name.
2138 * opts.c (decode_options): Turn off partitioning flag if
2139 !targetm.have_named_sections.
2140 * output.h (hot_section_label): Remove.
2141 (hot_section_end_label): Remove.
2142 (cold_section_end_label): Remove.
2143 (unlikely_section_label): Remove.
2144 (unlikely_text_section_name): Remove.
2145 * passes.c (rest_of_handle_final): Remove extra blank line.
2146 * varasm.c (unlikely_section_label): Remove.
2147 (hot_section_label): Remove.
2148 (hot_section_end_label): Remove.
2149 (cold_section_end_label): Remove.
2150 (unlikely_text_section_name): Remove.
2151 (initialize_cold_section_name): Modify to call
2152 targetm.strip_name_encoding; to store cold section name in current
2153 function struct, if it exists; and to only use the decl_section_name
2154 if flag_named_sections is true.
2155 (unlikely_text_section): Modify to get section name out of current
2156 function struct, if there is one; otherwise build it from
2157 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2158 (in_unlikely_text_section): Likewise.
2159 (named_section): Modify to get/put cold section name in current function
2160 struct, if there is one.
2161 (function_section): Change 'bool unlikely' to 'int reloc'; check
2162 targetm.have_named_sections before calling named_section.
2163 (current_function_section): Likewise.
2164 (assemble_start_function): Modify to get/put unlikely_text_section_name
2165 in current function struct; modify to get hot/cold section labels
2166 from function struct; initialize labels using
2167 ASM_GENERATE_INTERNAL_LABEL;
2168 test partitioning flag before writing out hot section label.
2169 (assemble_end_function): Test partitioning flag before writing out
2170 hot/cold section labels.
2171 (default_section_type_flags_1): Get cold text section name from
2172 function struct if there is one; Set flags correctly for
2173 cold text section if there is not a current function struct.
2175 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2177 * tree-ssa-propagate.c (set_rhs): Revert last change.
2179 2005-04-27 Steve Ellcey <sje@cup.hp.com>
2181 * explow.c (convert_memory_address): Add gcc_assert.
2183 2005-04-27 Mark Mitchell <mark@codesourcery.com>
2185 * configure.ac: Check for ld --sysroot support.
2186 * gcc.c: Document %R specifier for specs.
2187 (SYSROOT_SPEC): New macro.
2188 (sysroot_spec): New variable.
2189 (static_specs): Add sysroot_spec.
2190 (main): Pass the sysroot spec to the linker if appropriate.
2191 * configure: Regenerated.
2192 * config.in: Likewise.
2194 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2196 * fold-const.c (fold_binary): Use build_fold_addr_expr
2197 for address calculation and INDIRECT_REF handling.
2199 2005-04-27 Andrew Haley <aph@redhat.com>
2201 * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2203 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2205 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2206 pointer when thumb backtracing is on.
2208 * config/fp-bit.c (abort): Revert change.
2210 2005-04-27 Ian Lance Taylor <ian@airs.com>
2212 * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2214 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2216 * tree-ssa-dce.c: Fix a comment typo.
2218 2005-04-27 David S. Miller <davem@davemloft.net>
2220 * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2221 Kill setjmpless_size. current_function_calls_setjmp is completely
2222 computed when we are called, so just use the optimized size value
2223 instead of using REG_SAVE_AREA notes.
2224 (optimize_save_area_alloca): Delete....
2225 * rtl.h (optimize_save_area_alloca): Likewise...
2226 * passes.c (rest_of_compilation): and don't call it any more.
2227 * reg-notes.def (SAVE_AREA): Delete.
2229 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2231 * config/fp-bit.c (abort): Add noreturn attribute.
2233 * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2234 gcc_unreachable as appropriate.
2235 (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2236 * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2237 ASM_OUTPUT_REG_POP): Likewise.
2239 2005-04-27 Paolo Bonzini <bonzini@gnu.org>
2241 * tree-complex.c (expand_vector_operations_1): Do not build
2242 VIEW_CONVERT_EXPR's for the lhs.
2244 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2246 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2247 unnecessary noncanonical RTL handling.
2248 * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2249 gcc_assert and gcc_unreachable.
2251 * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2252 gcc_unreachable as appropriate.
2253 (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2254 * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2255 use_return_insn, const_ok_for_op, arm_gen_constant,
2256 arm_canonicalize_comparison, legitimize_pic_address,
2257 thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2258 arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2259 load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2260 emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2261 arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2262 move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2263 dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2264 fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2265 output_call, output_mov_long_double_fpa_from_arm,
2266 output_mov_long_double_arm_from_fpa,
2267 output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2268 output_move_double, arithmetic_instr, shift_op, int_log2,
2269 output_return_instruction, arm_output_function_prologue,
2270 arm_output_epilogue, arm_output_function_epilogue,
2271 emit_multi_reg_push, arm_get_frame_offsets,
2272 arm_compute_initial_elimination_offset, arm_expand_prologue,
2273 arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2274 arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2275 arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2276 thumb_compute_initial_elimination_offset,
2277 thumb_output_function_prologue, thumb_load_double_from_address,
2278 thumb_output_move_mem_multiple, thumb_reload_out_hi,
2279 arm_emit_vector_const, arm_dbx_register_number): Likewise.
2280 * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2281 * config/arm/arm.md (thumb_extendhisi2,
2282 *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2283 *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2284 thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2285 *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2286 * config/arm/cirrus.md (*cirrus_arm_movdi,
2287 *cirrus_movdf_hard_insn): Likewise.
2288 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2290 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2292 * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2293 (num_ssa_names): Use VEC_length.
2294 (ssa_names): Use VEC_index.
2295 * tree-ssanames.c (ssa_names): Change the type to
2297 (init_ssanames, fini_ssa_names, make_ssanames,
2298 release_ssa_name): Update uses of ssa_names.
2300 * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2301 Use fold_buildN instead of fold (buildN (...)).
2303 2005-04-27 Devang Patel <dpatel@apple.com>
2305 * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2307 2005-04-27 Matt Thomas <matt@3am-software.com>
2308 Jan-Benedict Glaw <jbglaw@microdata-pos.de>
2310 * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
2311 (vax_output_mi_thunk): Ditto.
2312 (vax_notice_cc_update): Ditto.
2313 (INDEX_REGISTER_P): Add trailing \.
2314 (BASE_REGISTER_P): Add trailing \.
2315 (legitimate_address_p): Whitespace cleanup. Remove trailing \.
2317 2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
2319 * tree-ssa-propagate.c (set_rhs): Check operand of
2320 ADDR_EXPR for gimpliness, too.
2322 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2324 * tree-ssa-pre.c: Fix a comment typo.
2326 2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
2328 PR tree-optimization/21171
2329 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2330 record address uses if the reference is volatile.
2332 2004-04-27 Paolo Bonzini <bonzini@gnu.org>
2334 * tree-complex.c (expand_vector_operation): New, extracted from
2335 expand_vector_operations_1.
2336 (tree_vec_extract): Build a NOP_EXPR.
2337 (expand_vec_parallel): Do not care about returning the correct type.
2338 (expand_vector_operations_1): Call expand_vector_operation.
2339 Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
2341 * tree-complex.c (gate_expand_vector_operations): New.
2342 (pass_lower_vector_ssa): Use it.
2343 * tree-optimize.c (init_tree_optimization_passes): Include
2344 pass_lower_vector_ssa.
2345 * tree-vect-transform.c (vect_min_worthwhile_factor): New.
2346 (vectorizable_operation): Use it.
2347 * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
2348 integer modes for the vector type.
2350 * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2351 * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
2352 Do not cope with UNITS_PER_SIMD_WORD == 0.
2353 * tree-vectorizer.c (get_vectype_for_scalar_type): Check
2354 if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
2355 (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
2356 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2357 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2358 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2359 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2361 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
2362 * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
2363 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
2365 * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
2366 (UNITS_PER_SIMD_WORD): New.
2368 2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
2370 * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
2371 gcc_unreachable as appropriate.
2372 (ia64_expand_load_address, ia64_expand_tls_address,
2373 ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
2374 ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
2375 next_scratch_gr_reg, ia64_initial_elimination_offset,
2376 ia64_expand_prologue, ia64_expand_epilogue,
2377 ia64_output_dwarf_dtprel, ia64_print_operand,
2378 ia64_register_move_cost, first_instruction, rws_access_regno,
2379 update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
2380 ia64_sched_init, ia64_variable_issue,
2381 ia64_first_cycle_multipass_dfs_lookahead_guard,
2382 ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
2383 ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
2384 process_for_unwind_directive, ia64_hpux_file_end): Likewise.
2385 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2386 * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2387 * config/ia64/predicates.md (got_symbolic_operand,
2388 sdata_symbolic_operand): Likewise.
2389 * config/ia64/vect.md (vcondv2sf): Likewise.
2391 2005-04-27 Matt Thomas <matt@3am-software.com>
2393 * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
2394 CONSTANT_ADDRESS_P in config/vax/vax.h
2395 (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
2396 (INDEX_REGISTER_P): New.
2397 (BASE_REGISTER_P): New.
2398 (indirectable_constant_address_p): New. Adapted from
2399 INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
2400 (indirectable_address_p): New. Adapted from
2401 INDIRECTABLE_ADDRESS_P in vax.h.
2402 (nonindexed_address_p): New. Adapted from
2403 GO_IF_NONINDEXED_ADDRESS in vax.h.
2404 (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
2405 (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
2406 (legitimate_address_p): New. Adapted from
2407 GO_IF_LEGITIMATE_ADDRESS in vax.h.
2408 (vax_mode_dependent_address_p): New. Adapted from
2409 GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
2410 * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
2411 legitimate_constant_address_p.
2412 (CONSTANT_P): Use legitimate_constant_p.
2413 (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
2414 (INDIRECTABLE_ADDRESS_P): Removed.
2415 (GO_IF_NONINDEXED_ADDRESS): Removed.
2416 (INDEX_TEMP_P): Removed.
2417 (GO_IF_REG_PLUS_INDEX): Removed.
2418 (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
2419 definitions, depending on whether REG_OK_STRICT is defined.
2420 (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
2421 Two definitions, depending on whether REG_OK_STRICT is defined.
2422 * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
2424 (legitimate_constant_p): Prototype added.
2425 (legitimate_address_p): Prototype added.
2426 (vax_mode_dependent_address_p): Prototype added.
2428 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
2430 * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2432 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2435 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
2438 2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
2441 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
2442 assertion failures, if __gcc_host_wide_int__ is not properly
2444 (init_dynamic_diag_info): Give errors, not assertion failures, if
2445 location_t, tree or __gcc_host_wide_int__ are not properly
2448 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2450 * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
2451 n_iv_uses, iv_use, n_iv_cands, iv_cand,
2452 tree_ssa_iv_optimize_init, record_use, add_candidate_1,
2453 prepare_decl_rtl, free_loop_data,
2454 tree_ssa_iv_optimize_finalize): Use the VEC API instead of
2457 * tree.h (tree_phi_node): Add a comment about the order of PHI
2460 2005-04-26 Paul Brook <paul@codesourcery.com>
2462 * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2464 2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
2466 * config/mips.mips.c (mips_legitimize_tls_address): Use
2469 * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
2470 * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
2471 * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
2473 * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
2476 2005-04-26 Jeff Law <law@redhat.com>
2478 * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
2479 (op_iter_init_must_and_may_def): Likewise.
2480 (unmodifiable_var_p): Move to a later point in the file.
2481 * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
2482 * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
2483 (dse_record_phis): Directly check for virtual operands rather than
2484 using need_imm_uses_for.
2485 (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
2486 store has multiple V_{MAY,MUST}_DEF operands.
2488 2005-04-26 Andrew MacLeod <amacleod@redhat.com>
2490 * tree-cfg.c (bsi_replace): Delink immediate uses for the original
2493 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2495 * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
2496 call to find_edge outside a loop to go through a PHI chain.
2498 2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
2500 PR tree-optimization/17598
2501 * fold-const.c (fold_binary): Fold comparisons of addresses
2502 of COMPONENT_REFs which reference the same field to
2503 comparisons of the addresses of the base objects.
2505 2005-04-26 Julian Brown <julian@codesourcery.com>
2507 * config/arm/arm.c (arm_return_in_msb): New function.
2508 (arm_must_pass_in_stack): New function.
2509 (TARGET_RETURN_IN_MSB): Define target hook.
2510 (TARGET_MUST_PASS_IN_STACK): Define target hook.
2511 (arm_function_value): Pad small aggregate return.
2512 (arm_pad_arg_upward): New function.
2513 (arm_pad_reg_upward): New function.
2514 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
2515 (FUNCTION_ARG_PADDING): Define macro.
2516 (BLOCK_REG_PADDING): Define macro.
2517 (PAD_VARARGS_DOWN): Correct padding for AAPCS.
2518 * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
2519 (arm_pad_reg_upward): Declare function.
2521 2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
2523 * basic-block.h (ei_cond): New.
2524 (FOR_EACH_EDGE): Call ei_cond.
2526 PR tree-optimization/21047
2527 * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
2528 (fold): Don't handle ASSERT_EXPR.
2530 2005-04-25 Roger Sayle <roger@eyesopen.com>
2532 * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
2533 all writes to any stack register as a read/write dependency on
2535 (sched_analyze_2): Likewise, for reads from any stack register.
2537 2005-04-25 Richard Henderson <rth@redhat.com>
2539 * final.c (output_addr_const): Revert 2005-04-09 change.
2541 2005-04-25 Mike Stump <mrs@apple.com>
2543 * config/darwin.c (darwin_encode_section_info): Always set
2544 MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
2546 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2548 * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
2549 gensupport.c, protoize.c, toplev.c: Replace calls to
2550 `unlock_stream' with `unlock_std_streams'.
2552 2005-04-25 Devang Patel <dpatel@apple.com>
2554 * dbxout.c (dbxout_type): Emit attribute vector.
2556 2005-04-05 Paul Brook <paul@codesourcery.com>
2558 * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
2559 * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
2560 * config/arm/arm.c (arm_cxx_atexit_name): New function.
2561 (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
2562 * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
2563 (register_dtor_fn): Likewise.
2564 * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
2566 2005-04-25 Ian Lance Taylor <ian@airs.com>
2568 * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
2569 * c-common.h (EXPR_STMT_EXPR): Don't define.
2570 (c_common_stmt_codes): Don't define.
2571 * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
2572 * c-gimplify.c (gimplify_expr_stmt): Remove.
2573 (c_gimplify_expr): Remove EXPR_STMT case.
2574 * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
2575 to INIT_STATEMENT_CODES.
2576 * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
2578 2005-04-25 Jan Hubicka <jh@suse.cz>
2580 * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
2582 * except.c: Include diagnostic.h
2583 (dump_eh_tree, verify_eh_tree): New functions.
2584 * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
2585 * tree-cfg.c (tree_verify_flow_info): verify eh edges.
2586 (dump_function_to_file): dump eh tree.
2587 * tree-eh.c (mark_eh_edge): New function.
2588 (mark_eh_edge_found_error): New static variable.
2589 (verify_eh_edges): New function.
2591 2005-04-25 Nathan Sidwell <nathan@codesourcery.com>
2593 * tree-ssa-alias.c (fieldoff_t): Remove.
2594 (fieldoff_s): typedef the structure itself. Create a vector of
2596 (push_fields_onto_fieldstack): Return count of fields pushed.
2597 Remove peeling of first field. Adjust.
2598 (fieldoff_compare): Adjust.
2599 (create_overlap_variables_for): Adjust.
2601 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
2603 * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
2605 2005-04-25 Joseph S. Myers <joseph@codesourcery.com>
2608 * doc/install.texi: Document correct assembler and linker to use
2609 on i?86-*-solaris2.10.
2611 2005-04-25 Steven Bosscher <stevenb@suse.de>
2613 Fix PR tree-optimization/21173
2615 * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
2616 Unshare expression we pass to force_gimple_operand.
2618 2005-04-25 J"orn Rennecke <joern.rennecke@st.com>
2619 Stephen Clarke <stevec@superh.com>
2620 Roger Sayle <roger@eyesopen.com>
2622 PR rtl-optimization/20413
2623 * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
2624 VOIDmode for LABEL_REF.
2625 * final.c (shorten_branches): Likewise.
2626 * jump.c (mark_all_labels, redirect_exp_1): Likewise.
2627 * loop.c (reg_dead_after_loop): Likewise.
2628 * varasm.c (decode_addr_const): Likewise.
2629 * doc/rtl.texi: Document mode requirement for LABEL_REF.
2631 2005-04-25 Ralf Corsepius <ralf.corsepius@rtems.org>
2633 * config.gcc (avr-*-*): Remove redundant "case".
2635 2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
2637 * tree-vect-analyze.c (vect_mark_relevant): Take
2638 VEC(tree,heap) instead of varray_type as an argument.
2639 (vect_mark_stmts_to_be_vectorized): Change the type of
2640 worklist to VEC(tree,heap). Adjust uses of worklist.
2642 2005-04-24 Devang Patel <dpatel@apple.com>
2644 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2646 2005-04-24 Ian Lance Taylor <ian@airs.com>
2648 * c-semantics.c (build_stmt): Remove test of specific tree codes
2649 for TREE_SIDE_EFFECTS handling.
2651 2005-04-24 Per Bothner <per@bothner.com>
2653 * c-opts.c (finish_options): Make the line-number of the <built-in>
2654 location 0, as assumed elsewhere, rather than 1.
2656 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2658 * tree-ssa-uncprop.c (equiv_stack): Change the type o
2660 (tree_ssa_uncprop, uncprop_finalize_block,
2661 uncprop_initialize_block): Update uses of equiv_stack.
2663 2005-04-24 Richard Henderson <rth@redhat.com>
2666 * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
2667 for SCALAR_INT_MODE_P instead of not MODE_CC before returning
2669 <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
2670 <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
2671 <DIV, MOD>: Likewise.
2673 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2675 * collect2.c (main): Unlock the stdio streams.
2676 * gcc.c (main): Likewise.
2677 * gcov-dump.c (main): Likewise.
2678 * gcov.c (main): Likewise.
2679 * gen-protos.c (main): Likewise.
2680 * gensupport.c (init_md_reader_args_cb): Likewise.
2681 * protoize.c (main): Likewise.
2682 * toplev.c (general_init): Likewise.
2684 2005-04-24 Jakub Jelinek <jakub@redhat.com>
2687 * cgraph.h (cgraph_local_info): Add vtable_method field.
2688 * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
2689 and node is vtable_method, finalized and not reachable, don't do
2692 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2694 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
2696 * tree-ssa-pre.c (create_value_expr_from): Use
2697 CONSTANT_CLASS_P and REFERENCE_CLASS_P.
2698 * tree-ssa-propagate.c (stmt_makes_single_load,
2699 stmt_makes_single_store): Use REFERENCE_CLASS_P.
2700 * tree-vect-transform.c (vect_is_simple_cond): Use
2702 * tree-vrp.c (extract_range_from_assert,
2703 build_assert_expr_for, fp_predicate, has_assert_expr): Use
2706 * tree-ssa-live.c (build_tree_conflict_graph): Change the type
2707 of tpa_to_clear to VEC(int,heap). Update uses of
2708 tpa_to_clear. Free tpa_to_clear at the end.
2710 2005-04-24 Andrew Pinski <pinskia@physics.uc.edu>
2712 * tree.h (TREE_THIS_VOLATILE): Document the effect on a
2715 2005-04-24 Nathan Sidwell <nathan@codesourcery.com>
2717 * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
2718 and gcc_unreachable as appropriate.
2719 (num_insns_constant, output_vec_const_move,
2720 build_mask64_2_operands, rs6000_output_dwarf_dtprel,
2721 rs6000_emit_set_const, rs6000_emit_move,
2722 spe_build_register_parallel, function_arg,
2723 rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
2724 spe_expand_predicate_builtin, spe_expand_evsel_builtin,
2725 rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
2726 rs6000_common_init_builtins, expand_block_clear,
2727 expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
2728 extract_ME, rs6000_get_some_local_dynamic_name,
2729 rs6000_output_function_entry, print_operand,
2730 print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
2731 output_cbranch, output_e500_flip_gt_bit,
2732 rs6000_emit_vector_compare, rs6000_emit_vector_compare,
2733 rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
2734 compute_save_world_info, rs6000_stack_info,
2735 rs6000_emit_load_toc_table, rs6000_frame_related,
2736 spe_synthesize_frame_save, rs6000_emit_epilogue,
2737 rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
2738 output_function_profiler, rs6000_trampoline_size,
2739 rs6000_initialize_trampoline, find_addr_reg,
2740 rs6000_machopic_legitimize_pic_address,
2741 rs6000_initial_elimination_offset,
2742 rs6000_dbx_register_number): Likewise.
2743 * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
2744 *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
2745 *movti_power, *movti_string, call, call_value, sibcall,
2746 sibcall_value): Likewise.
2747 * config/rs6000/spe.md (*movdf_e500_double,
2748 *movv2si_internal): Likewise.
2749 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
2752 2005-04-24 Richard Henderson <rth@redhat.com>
2755 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
2756 * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
2757 Deny modes smaller than 4 bytes.
2758 * config/i386/i386-protos.h: Update.
2760 2005-04-24 Ralf Corsepius <ralf.corsepius@rtems.org>
2762 * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
2763 Switch h8300-*-rtems* to ELF.
2765 2005-04-24 Kazu Hirata <kazu@cs.umass.edu>
2767 * vec.h (VEC_safe_grow): Replace grow with safe_grow.
2769 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2771 * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
2773 2005-04-23 Richard Guenther <rguenth@gcc.gnu.org>
2776 * fold-const.c: Fold &a[i]-&a[j] to i-j.
2778 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
2780 * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
2781 definitions of ssa names in condition. Split recusive part to ...
2782 (tree_simplify_using_condition_1): New function.
2783 (expand_simple_operations): New function.
2785 2005-04-23 Zdenek Dvorak <dvorakz@suse.cz>
2787 * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
2788 (find_interesting_uses_cond): Do not use integer_zerop and
2789 integer_nonzerop to check for integer constants.
2790 (set_use_iv_cost): Record the value field.
2791 (determine_use_iv_cost_generic, determine_use_iv_cost_address,
2792 determine_use_iv_cost_outer): Set the value field of the cost pair.
2793 (may_eliminate_iv): Do not return the comparison code.
2794 (iv_elimination_compare): New function.
2795 (determine_use_iv_cost_condition): Set the value field. Record
2796 noneliminable invariants correctly.
2797 (rewrite_use_compare, rewrite_use_outer): Use the value field.
2799 2005-04-23 DJ Delorie <dj@redhat.com>
2801 * diagnostic.c (warning): Accept parameter to classify warning option.
2802 (warning0): New, for when a pointer to an error() like function is needed.
2803 * errors.c (warning): Likewise.
2804 * errors.h (warning, warning0): Adjust prototypes.
2805 * toplev.h (warning, warning0): Likewise.
2807 * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
2808 c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
2809 c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
2810 fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
2811 genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
2812 reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2813 tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
2814 tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
2816 * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
2817 config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
2818 config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
2819 config/darwin.c, config/darwin.h, config/h8300/h8300.c,
2820 config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
2821 config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
2822 config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
2823 config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
2824 config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
2825 config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
2826 config/rs6000/aix52.h, config/rs6000/darwin.h,
2827 config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
2828 config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2829 config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
2830 config/stormy16/stormy16.c, config/v850/v850-c.c,
2831 config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
2834 2005-04-23 Richard Henderson <rth@redhat.com>
2837 * simplify-rtx.c (simplify_binary_operation): Fix mode check before
2838 performing some integral scalar simplifications.
2840 2005-04-23 Richard Henderson <rth@redhat.com>
2843 * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
2844 simplifying CONST_VECTOR.
2846 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2848 * tree-ssa-live.c (live_worklist): Take a stack allocated on
2849 heap as an argument. Update uses of stack.
2850 (calculate_live_on_entry): Allocate stack on heap.
2852 * tree-ssa-live.c (build_tree_conflict_graph): Allocate
2853 partition_link and tpa_nodes on heap.
2855 * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
2856 (mark_stmt_necessary, propagate_necessity,
2857 mark_really_necessary_kill_operand_phis): Update uses of
2859 (tree_dce_init): Allocate worklist using VEC_alloc.
2860 (tree_dce_done): Free worklist using VEC_free.
2862 2005-04-23 Mike Stump <mrs@apple.com>
2864 * config/darwin.c (machopic_indirection_name): Don't use
2866 (darwin_emit_unwind_label): Use user_label_prefix instead of
2869 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2871 * final.c, ipa-inline.c, varasm.c: Fix comment typos.
2873 2005-04-23 Hans-Peter Nilsson <hp@axis.com>
2875 * config.gcc <cris-*>: Specify .opt files.
2876 * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
2877 config/cris/linux.opt: New files.
2878 * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
2879 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2880 (TARGET_ELF): Override to 0.
2881 (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
2882 -melinux-stacksize=N.
2883 * config/cris/cris.c: (cris_handle_option): New function.
2884 (TARGET_DEFAULT_TARGET_FLAGS): Override.
2885 (TARGET_HANDLE_OPTION): Override to cris_handle_option.
2886 (cris_override_options): Use MASK_*, not TARGET_MASK_*.
2887 * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
2888 (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
2889 (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
2890 (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
2891 (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
2892 (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
2893 (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
2894 (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
2895 (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
2896 (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
2897 (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
2898 (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
2899 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
2900 (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
2901 (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
2902 (TARGET_LINUX): Define 0.
2903 (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2904 (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
2905 (CRIS_SUBTARGET_DEFAULT): New empty default macro.
2906 * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
2907 (TARGET_LINUX): Override to 1.
2908 (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
2910 2005-04-23 Nathan Sidwell <nathan@codesourcery.com>
2912 * haifa-sched.c (schedule_block): Fix thinko in previous
2913 assertification patch.
2915 2005-04-23 Richard Sandiford <rsandifo@redhat.com>
2917 * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
2918 $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
2919 (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
2920 pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
2921 $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
2922 (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add
2923 pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt
2925 * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
2926 (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
2927 (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
2928 (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
2929 (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
2930 (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
2931 (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
2932 (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
2933 (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
2934 (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
2935 (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
2936 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
2937 (SUBTARGET_OPTIONS): Delete.
2938 (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
2939 (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
2940 instead of a string.
2941 * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
2942 (pa_cpu_string, pa_unix_string): Delete.
2943 (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
2944 (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
2946 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2947 (pa_handle_option): New function.
2948 (override_options): Remove handling of -march=, -mfixed-range=,
2949 -mschedule= and -munix=.
2950 * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
2951 * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
2952 * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
2953 * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
2954 * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
2955 * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
2956 * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
2958 * config/pa/pa.opt: New file.
2959 * config/pa/pa-hpux.opt: New file.
2960 * config/pa/pa-hpux1010.opt: New file.
2961 * config/pa/pa-hpux1111.opt: New file.
2962 * config/pa/pa64-hpux.opt: New file.
2964 2005-04-22 David S. Miller <davem@davemloft.net>
2966 * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
2967 integer when it's mode is VOIDmode not DImode.
2969 2005-04-22 Geoffrey Keating <geoffk@apple.com>
2971 * config/rs6000/rs6000.md (sync_add<mode>_internal,
2972 sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
2973 sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
2974 sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
2975 sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
2976 "bne- $-xxx" rather than local labels.
2977 (sync_lock_release<mode>): Add second operand.
2978 (lwsync): Use .long rather than a more meaningful opcode.
2979 * doc/md.texi (Standard Names): Add description of second
2980 parameter to sync_lock_test_and_set.
2982 2005-04-23 Kazu Hirata <kazu@cs.umass.edu>
2984 PR tree-optimization/21088
2985 * fold-const.c (fold_unary, fold_binary, fold_ternary):
2987 * tree-vrp.c (compare_values): Use fold_binary to compare
2988 pointers. Use boolean_type_node as the type of a comparison
2989 expression being folded.
2990 * tree.h: Add prototypes for fold_unary, fold_binary,
2993 * tree-ssa-dom.c: Fix formatting.
2995 2005-04-22 Diego Novillo <dnovillo@redhat.com>
2997 * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
2998 * lambda-code.c (perfect_nestify): Mark virtual operands in
2999 the moved statement for renaming.
3000 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
3001 (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3002 * params.h (MIN_VIRTUAL_MAPPINGS): Define.
3003 (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
3004 * tree-flow.h (struct var_ann_d): Update comments.
3005 (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
3006 allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
3007 debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
3008 debug_tree_ssa_stats, rewrite_ssa_into_ssa,
3009 dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
3010 debug_names_replaced_by): Remove declarations.
3011 (delete_update_ssa, get_current_def, set_current_def): Declare.
3012 (rewrite_into_loop_closed_ssa): Add new argument. Update
3014 * tree-into-ssa.c: Include params.h.
3015 (old_virtual_ssa_names): Remove. Update all users.
3016 (need_to_replace_names_p): Remove. Update all users.
3017 (struct update_ssa_stats_d): Declare.
3018 (update_ssa_stats): New local.
3019 (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
3020 dump_tree_ssa_stats, debug_tree_ssa_stats,
3021 dump_update_ssa, debug_update_ssa,
3022 dump_names_replaced_by, debug_names_replaced_by): Declare.
3023 (get_current_def, set current_def): Make extern.
3024 (is_old_name, is_new_name): Protect against references
3025 past the end of the sets.
3026 (add_new_name_mapping): Assert that OLD and NEW are
3027 different SSA names for the same symbol.
3028 When adding a virtual mapping, update stats for virtual
3030 (insert_phi_nodes_for): If UPDATE_P is true, create the
3031 LHS of the new PHI by duplicating SSA name VAR.
3032 (insert_phi_nodes_1): Remove. Update all users.
3033 (insert_phi_nodes): Remove second argument. Update all
3035 (maybe_replace_use, maybe_replace_def): New.
3036 (rewrite_update_stmt): Call them.
3037 (mark_def_interesting): Remove calls to is_gimple_reg.
3038 (prepare_phi_args_for_update): Remove. Update all users.
3039 (prepare_block_for_update): Only process virtual operands
3040 and GIMPLE registers in normal form.
3041 (prepare_use_sites_for): New.
3042 (prepare_names_to_update): Rename from prepare_def_sites.
3043 Call prepare_use_sites_for.
3044 (dump_update_ssa): Rename from dump_repl_tbl.
3046 Show statistics for virtual mapping heuristic.
3047 (debug_update_ssa): Rename from debug_debug_repl_tbl.
3048 (init_update_ssa): Initialize UPDATE_SSA_STATS.
3049 (delete_update_ssa): Make extern.
3050 (mark_set_for_renaming): If the set is empty, do nothing.
3051 (release_ssa_name_after_update_ssa): Update comment.
3052 (insert_updated_phi_nodes_for): Do not remove existing
3053 PHI nodes for symbols.
3054 (switch_virtuals_to_full_rewrite_p): New.
3055 (switch_virtuals_to_full_rewrite): New.
3056 (update_ssa): Call them.
3057 Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
3058 for every statement before updating.
3059 If all the names in NEW_SSA_NAMES have been marked for
3060 removal, do nothing.
3061 Only start at the top of the CFG if there are symbols in
3063 (ssa_rewrite_finalize_block): Remove.
3064 (ssa_register_new_def): Remove.
3065 (ssa_rewrite_stmt): Remove.
3066 (ssa_rewrite_phi_arguments): Remove.
3067 (ssa_rewrite_initialize_block): Remove.
3068 (ssa_mark_def_sites): Remove.
3069 (ssa_mark_def_sites_initialize_block): Remove.
3070 (ssa_mark_phi_uses): Remove.
3071 (rewrite_ssa_into_ssa): Remove.
3072 * tree-phinodes.c (find_phi_node_for): Remove.
3073 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3075 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
3076 Remove calls to verify_dominators and
3077 verify_loop_structure.
3078 (tree_unswitch_single_loop): Call update_ssa.
3079 * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
3082 (delete_tree_ssa): Assert that need_ssa_update_p returns
3084 * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
3085 * tree-vectorizer.c (allocate_new_names, rename_def_op,
3086 free_new_names): Remove. Update all users.
3087 (rename_use_op): Call get_current_def.
3088 (rename_variables_in_bb): Do not handle any real or
3090 (slpeel_update_phis_for_duplicate_loop): Call
3091 get_current_def and set_current_def instead of using
3093 (slpeel_update_phi_nodes_for_guard2): Reformat comments.
3094 (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
3095 ssa_names_to_replace and delete_update_ssa.
3096 * doc/invoke.texi: Document --param min-virtual-mappings
3097 and --param virtual-mappings-ratio.
3099 2005-04-22 Diego Novillo <dnovillo@redhat.com>
3101 * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
3102 for newly created PHI nodes.
3103 Call create_new_def_for for every new V_MAY_DEF and
3104 V_MUST_DEF on the copied statement.
3105 (struct ssa_name_map_entry): Remove.
3106 (ssa_name_map_entry_hash): Remove.
3107 (ssa_name_map_entry_eq): Remove.
3108 (allocate_ssa_names): Remove.
3109 (rewrite_to_new_ssa_names_def): Remove.
3110 (rewrite_to_new_ssa_names_use): Remove.
3111 (rewrite_to_new_ssa_names_bb): Remove.
3112 (rewrite_to_new_ssa_names): Remove.
3113 (tree_duplicate_sese_region): Remove variables ver,
3114 definitions, phi, ssa_name_map and bi.
3115 Call need_ssa_update_p instead of any_marked_for_rewrite_p.
3117 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3118 update_ssa instead of rewrite_ssa_into_ssa.
3119 * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
3121 (find_uses_to_rename_use): Add argument 'need_phis'.
3122 (find_uses_to_rename_stmt): Do not scan virtual operands.
3123 (find_uses_to_rename): Only scan PHI nodes for
3125 (rewrite_into_loop_closed_ssa): Call update_ssa.
3126 (check_loop_closed_ssa_use): Ignore virtual operands.
3127 (check_loop_closed_ssa_stmt): Likewise.
3128 (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
3130 (rename_variables, set_phi_def_stmts): Remove.
3131 (tree_duplicate_loop_to_header_edge): Reformat comment.
3132 Remove variables BB, I and DEFINITIONS.
3133 Call need_ssa_update_p.
3135 (lv_adjust_loop_header_phi): Reformat comment.
3136 * tree-ssanames.c (ssa_names_to_rewrite): Remove.
3137 (marked_for_rewrite_p, any_marked_for_rewrite_p,
3138 mark_for_rewrite, unmark_all_for_rewrite,
3139 marked_ssa_names): Remove. Update all users.
3140 (release_ssa_name): If VAR has been registered for SSA
3141 updating, do nothing.
3142 * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
3143 (build_assert_expr_for): Call register_new_name_mapping.
3144 (insert_range_assertions): Update call to update_ssa.
3145 * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
3146 marked_for_rewrite_p, any_marked_for_rewrite_p,
3147 marked_ssa_names): Remove.
3149 2005-04-22 Jeff Law <law@redhat.com>
3151 * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
3152 (restore_currdefs_to_original_value): Likewise.
3153 (register_definitions_for_stmt): Likewise.
3154 (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
3155 for each variable. Do not allocate/free block_defs_stack either.
3156 Do not iterate if we just thread jumps. Only iterate if the
3157 tree_cleanup_cfg does useful work (temporary).
3158 (dom_opt_initialize_block): No longer push a marker on
3160 (dom_opt_finalize_block): Removal call to restore currdefs.
3161 Relax restrictions for recording edge equivalences.
3162 (record_equivalences_from_phis): No longer need to track
3164 (optimize_stmt): Similarly.
3165 (thread_across_edge): Simplify by removing the requirement that
3166 statements in the block we are threading through must be nops.
3167 (initialize_hash_element): Handle GOTO_EXPR.
3169 2005-04-22 David S. Miller <davem@davemloft.net>
3171 * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
3173 * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
3174 fix check on CONST_DOUBLE mode. It should be VOIDmode
3175 when it is representing an integer.
3177 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3179 * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
3180 'abort'. Use gcc_assert and gcc_unreachable as appropriate.
3181 * c-format.c (get_constant, decode_format_attr, get_flag_spec,
3182 find_char_info_specifier_index,
3183 find_length_info_modifier_index): Likewise.
3184 * c-typeck.c (composite_type, pop_init_level): Likewise.
3185 * combine.c (cant_combine_insn_p, try_combine): Likewise.
3186 * cse.c (cse_insn): Likewise
3187 * dominance.c (calc_dfs_tree): Likewise
3188 dwarf2out.c (loc_descriptor_from_tree_1,
3189 add_abstract_origin_attribute, force_decl_die,
3190 force_type_die): Likewise
3191 emit-rtl.c (operand_subword_force): Likewise
3192 explow.c (hard_function_value): Likewise
3193 expmed.c (store_bit_field, expand_divmod,
3194 emit_store_flag_force): Likewise
3195 expr.c (emit_move_multi_word, store_expr,
3196 expand_expr_real_1): Likewise
3197 final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
3198 output_operand): Likewise
3199 flow.c (recompute_reg_usage): Likewise
3200 * function.c (assign_stack_temp_for_type, assign_temp,
3201 handle_epilogue_set): Likewise
3202 * genextract.c (main): Likewise
3203 * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
3204 gimplify_modify_expr_rhs, gimplify_expr): Likewise
3205 * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
3206 ready_remove, rm_line_notes, rm_other_notes,
3207 schedule_block): Likewise
3208 mips-tfile.c (copy_object, out_of_bounds): Likewise
3210 2005-04-22 David Edelsohn <edelsohn@gnu.org>
3213 * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
3214 * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
3215 rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64.
3216 (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
3218 * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
3220 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3222 * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
3223 (gcc_tree_to_linear_expression): Convert to heap allocated
3225 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3226 lbv_to_gcc_expression, lle_to_gcc_expression,
3227 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
3228 perfect_nestify): Likewise.
3229 lambda.h (gcc_loopnest_to_lambda_loopnest,
3230 lambda_loopnest_to_gcc_loopnest): Likewise.
3231 tree-loop-linear.c (linear_transform_loops): Likewise.
3233 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3235 * config/sparc/predicates.md (arith_double_operand): Use
3236 trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
3237 * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
3238 (DImode, DFmode constant splitters): Likewise. Remove code for
3239 TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
3240 (logical constant splitters): Use const_int_operand predicate.
3241 (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
3242 HOST_BITS_PER_WIDE_INT < 64.
3244 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3246 * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
3247 gcc_unreachable as appropriate.
3248 (force_mode, emit_move_sequence, singlemove_string,
3249 output_move_double, output_fp_move_double, find_addr_reg,
3250 output_block_move, output_block_clear, output_and,
3251 output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
3252 pa_adjust_cost, pa_issue_rate, print_operand,
3253 output_global_address, output_arg_descriptor, output_cbranch,
3254 output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
3255 output_call): Likewise.
3256 * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
3257 prefetch, prefetch_cc, prefetch_nocc): Likewise.
3259 2005-04-22 Zdenek Dvorak <dvorakz@suse.cz>
3261 * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
3262 _gcov_pow2_profiler and _gcov_one_value_profiler.
3263 (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
3264 (GTFILES): Add $(srcdir)/tree-profile.c.
3265 * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
3266 __gcov_one_value_profiler): Declare.
3267 * gimplify.c (force_gimple_operand): Check whether the statements
3268 should be produced in ssa form.
3269 (force_gimple_operand_bsi): New function.
3270 * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
3271 __gcov_one_value_profiler): New functions.
3272 * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
3273 the profiled value is a power of two or not.
3274 * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
3275 * tree-flow.h (in_ssa_p): Declare.
3276 (force_gimple_operand_bsi): Declare.
3277 * tree-into-ssa.c (in_ssa_p): New variable.
3278 (rewrite_into_ssa): Set in_ssa_p.
3279 * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
3280 * tree-profile.c: Include ggc.h and gt-tree-profile.h.
3281 (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
3282 tree_one_value_profiler_fn): New variables.
3283 (tree_init_edge_profiler): Initialize the profiler function decls.
3284 (tree_gen_edge_profiler): Use global gcov_type_node.
3285 (prepare_instrumented_value): New function.
3286 (tree_gen_interval_profiler, tree_gen_interval_profiler,
3287 tree_gen_one_value_profiler): Call the library functions instead of
3288 creating instrumentation code.
3289 * tree.c (build_fn_decl): New function.
3290 * tree.h (build_fn_decl): Declare.
3291 * value-prof.c (rtl_divmod_values_to_profile,
3292 rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
3293 tree_mod_pow2_value_transform, tree_find_values_to_profile):
3294 Do not handle may_be_other and precise values of exponents at pow2
3296 (tree_mod_subtract_transform): Reflect that value field of
3297 histogram has changed meaning.
3298 (tree_divmod_values_to_profile): Record the values correctly.
3299 (tree_values_to_profile): Update comment.
3300 * value-prof.h (struct histogram_value_t): Remove pow2 data.
3302 2005-04-22 Joseph S. Myers <joseph@codesourcery.com>
3304 * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3307 2005-04-22 Nathan Sidwell <nathan@codesourcery.com>
3309 * config/i386/i386.md (length_immediate): Use gcc_assert or
3310 gcc_unreachable, as appropriate.
3311 (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
3312 *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
3313 *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
3314 *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
3315 *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3316 *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
3317 *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
3318 *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
3319 *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
3320 *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
3321 *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
3322 *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3323 pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
3324 pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
3325 *prefetch_sse_rex): Likewise.
3326 * config/i386/predicates.md (x86_64_immediate_operand,
3327 x86_64_zext_immediate_operand, symbolic_operand,
3328 no_seg_address_operand, aligned_operand,
3329 memory_displacement_operand): Likewise.
3330 * config/i386/sse.md (*mov<mode>_internal,
3331 *movv2df_internal): Likewise.
3333 2005-04-22 Jan Hubicka <jh@suse.cz>
3335 * Makefile.in (ipa.o, ipa-inline.o): New files.
3336 * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
3337 cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
3338 cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
3339 * cgraphunit.c (cgraph_default_inline_p,
3340 cgraph_decide_inlining_incrementally, ncalls_inlined,
3341 nfunctions_inlined, initial_insns, overall_insns,
3342 cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
3343 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3344 cgraph_mark_inline, cgraph_check_inline_limits,
3345 cgraph_default_inline_p, cgraph_recursive_inlining_p,
3346 update_callee_keys, lookup_recursive_calls,
3347 cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
3348 cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
3349 cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
3350 pass_ipa_inline): Move to ipa-inline.c
3351 (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
3353 * ipa-inline.c: New file.
3355 2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3357 * doc/invoke.texi (SPARC options): Document that -mapp-regs
3358 is turned off by default on Solaris.
3360 2005-04-21 Roger Sayle <roger@eyesopen.com>
3362 * c-common.h (objc_build_method_signature): Update prototype.
3363 * stub-objc.c (objc_build_method_signature): Update the stub
3364 implementation to accept and ignore additional parameter.
3365 * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
3366 the value of ellipsis to objc_build_method_signature instead
3367 of setting TREE_OVERFLOW on the parms TREE_LIST node.
3369 2005-04-21 Geoffrey Keating <geoffk@apple.com>
3371 * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
3372 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
3373 gen_rtx_* not gen_rtx_fmt_*.
3374 (rs6000_emit_vector_select): Likewise.
3375 (rs6000_emit_sync): New.
3376 * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
3377 (larx, stcx, cmp): New mode substitutions.
3378 (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
3379 UNSPEC_ISYNC): New constants.
3380 (rlwinm): Give name.
3381 (memory_barrier, isync, lwsync): New insns.
3382 (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
3383 (sync_lock_release<mode>): New expander.
3384 (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
3385 sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
3386 sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
3387 sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
3388 sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
3389 sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
3390 (sync_add<mode>_internal, sync_addshort_internal,
3391 sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
3392 sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
3393 sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
3395 * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
3396 is the memory before, not after, the operation. Clarify
3397 barrier requirements.
3399 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
3401 * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
3402 * lambda.h (lambda_vector_min_nz): Likewise.
3403 * langhooks.h (struct lang_hooks_for_types,
3404 struct lang_hooks): Likewise.
3405 * output.h (assemble_integer, this_is_asm_operands): Likewise.
3408 * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
3410 * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
3411 comments to avoid 'abort'. Use gcc_assert as necessary.
3412 * opts.c (common_handle_option): Likewise.
3413 * pretty-print.c (pp_base_format_text): Likewise.
3414 * print-rtl.c (print_rtx): Likewise.
3415 * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
3416 * regmove.c (try_auto_increment): Likewise.
3417 * reload.c (find_valid_class, find_reloads_toplev,
3418 find_equiv_reg): Likewise.
3419 * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
3420 merge_assigned_reloads): Likewise.
3421 * tree-inline.c (inline_forbidden_p_1,
3422 estimate_num_insns_1): Likewise.
3423 * tree-optimize.c (execute_todo): Likewise.
3424 * tree-outof-ssa.c (eliminate_phi): Likewise.
3425 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
3426 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
3427 * tree-ssa-operands.c (parse_ssa_operands,
3428 get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
3429 * tree-ssa-pre.c (find_or_generate_expression): Likewise.
3430 * tree-ssanames.c (release_ssa_name): Likewise.
3431 * tree.c (int_bit_position, int_byte_position, tree_low_cst,
3432 walk_tree): Likewise.
3434 * tree-ssa-operands.c (verify_abort): Fold into ..
3435 (verify_imm_links): ... here.
3437 2005-04-21 Richard Henderson <rth@redhat.com>
3439 * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
3440 on non-memory operand for previous inversion.
3442 2005-04-21 Devang Patel <dpatel@apple.com>
3444 PR optimization/20994
3445 * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
3446 x = !(a == b) : p , q;.
3447 (pass_if_conversion): Verify stmts and flow.
3449 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
3451 * optabs.c (gen_conditional_trap): Restore #define.
3453 * alias.c (true_dependence): Remove 'abort' from comments. Use
3454 gcc_assert and gcc_unreachable as appropriate.
3455 (canon_true_dependence): Likewise.
3456 * bb-reorder.c (connect_traces): Likewise.
3457 * c-common.c (c_add_case_label): Likewise.
3458 * c-decl.c (finish_function): Likewise.
3459 * caller-save.c (insert_restore, insert_save): Likewise.
3460 * cfg.c (update_bb_profile_for_threading): Likewise.
3461 * cfganal.c (flow_active_insn_p): Likewise.
3462 * cfgexpand.c (add_reg_br_prob_note): Likewise.
3463 * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
3464 cfg_layout_merge_blocks): Likewise.
3465 * ifcvt.c (cond_exec_process_insns, merge_if_block,
3466 find_if_block): Likewise.
3467 * integrate.c (allocate_initial_values): Likewise.
3468 * jump.c (reverse_condition, reverse_condition_maybe_unordered,
3469 swap_condition, unsigned_condition, signed_condition,
3470 mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
3471 reg_or_subregno): Likewise.
3472 * lambda-code.c (lambda_compute_auxillary_space,
3473 lambda_transform_legal_p): Likewise.
3474 * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
3475 * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
3476 lhd_incomplete_type_error, lhd_expand_expr,
3477 lhd_types_compatible_p, lhd_tree_size): Likewise.
3478 * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
3479 * local-alloc.c (update_equiv_regs): Likewise.
3480 * loop-unroll.c (peel_loop_completely
3481 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
3482 peel_loop_simple, unroll_loop_stupid,
3483 analyze_iv_to_split_insn): Likewise.
3484 * loop.c (gen_prefetch, find_and_verify_loops,
3485 basic_induction_var): Likewise.
3486 * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
3487 * value-prof.c (tree_find_values_to_profile): Likewise.
3488 * varasm.c (named_section, default_assemble_integer,
3489 decode_addr_const): Likewise.
3491 2005-04-21 Alan Modra <amodra@bigpond.net.au>
3492 Fariborz Jahanian <fjahanian@apple.com>
3494 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
3495 portion of argument passed in fpr.
3496 * expr.c (emit_push_insn): Fix computation of 'offset' used to
3497 decide on partial argument save on stack.
3499 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
3501 * config/sparc/predicates.md, config/sparc/sparc.md: Fix
3504 2005-04-21 Jan Hubicka <jh@suse.cz>
3506 * cgraphunit.c: Include tree-pass.h
3507 (cgraph_decide_recursive_inlining,
3508 cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
3509 cgraph_decide_inlining): Dump goes to dump_file.
3510 (cgraph_optimize): Call ipa passes instead of inliner.
3511 (cgraph_gate_inlining, pass_ipa_inline): New.
3512 * tree-optimize.c (all_ipa_passes): New static variable.
3513 (register_one_dump_file): Dead with IPA passes.
3514 (register_dump_files): Likewise.
3515 (init_tree_optimization_passes): Initialize IPA passes.
3516 (execute_todo): Do cgraph dump when asked to, do not dump function body
3518 * tree-pass.h (TODO_dump_cgraph): New macro.
3519 (ipa_passes): Declare.
3520 * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
3522 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
3524 * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
3525 gcc_assert instead of abort.
3526 (classify_argument, examine_argument, construct_container,
3527 contains_128bit_aligned_vector_p, ix86_check_movabs,
3528 standard_80387_constant_opcode, standard_80387_constant_rtx,
3529 ix86_initial_elimination_offset, ix86_compute_frame_layout,
3530 pro_epilogue_adjust_stack, ix86_expand_epilogue,
3531 ix86_address_cost, legitimate_address_p, legitimize_pic_address,
3532 legitimize_tls_address, output_pic_addr_const,
3533 i386_output_dwarf_dtprel, put_condition_code, print_reg,
3534 get_some_local_dynamic_name, print_operand, print_operand_address,
3535 output_387_binary_op, emit_i387_cw_initialization,
3536 output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
3537 ix86_expand_clear, ix86_expand_binary_operator,
3538 ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
3539 ix86_cc_modes_compatible, ix86_fp_comparison_codes,
3540 ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
3541 ix86_expand_branch, ix86_expand_setcc,
3542 ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
3543 ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
3544 ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
3545 memory_address_length, ix86_attr_length_immediate_default,
3546 ix86_attr_length_address_default, ix86_agi_dependant,
3547 x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
3548 ix86_expand_binop_builtin, ix86_force_to_memory,
3549 ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
3550 x86_emit_floatuns): Likewise.
3551 * config/i386/netware.c (gen_regparm_prefix,
3552 i386_nlm_strip_name_encoding): Likewise.
3553 * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
3555 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
3557 * optabs.c (gen_condiational_trap): Remove #define.
3558 (add_equal_note): Assertify. Remove explicit indirection from
3559 call via function pointer.
3560 (expand_ternary_op, expand_simple_binop, expand_binop,
3561 expand_twoval_unop, expand_twoval_binop,
3562 expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
3563 emit_unop_insn, emit_no_conflict_block, prepare_cmp_insn,
3564 prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
3565 prepare_float_lib_cmp, emit_conditional_move,
3566 emit_conditional_add, gen_add2_insn, gen_add3_insn,
3567 have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
3568 expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
3569 vector_compare_rtx, expand_vec_cond_expr): Likewise.
3571 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
3573 * vec.h: Update API to separate allocation mechanism from type.
3574 (VEC_safe_grow): New.
3575 * vec.c (calculate_allocation): New.
3576 (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
3577 (vec_gc_free, vec_heap_free): Remove.
3578 * gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
3580 (mangle_macro_name): New.
3581 (struct macro_def): New.
3582 (struct macro): Add multiple argument values.
3583 (macro_expans_end): New.
3584 (push_macro_expansion): Chain on new macro. Process multiple
3585 args, create follow on expansion. Return follow on argument.
3586 (macro_input): Deal with multiple arguments.
3588 * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
3589 (struct tree_binfo): Adjust.
3590 * basic-block.h: Define VEC(edge,gc).
3591 (struct edge_def): Adjust.
3592 (struct basic_block_def, struct edge_iterator): Likewise.
3593 (ei_container, ei_start_1, ei_last_1): Likewise.
3594 * cfg.c (connect_src, connect_dest): Likewise.
3595 * cfgrtl.c (force_nonfallthru_and_redirect)
3596 * dbxout.c (dbxout_type)
3597 * dwarf2out.c (gen_member_die)
3598 * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
3599 (gcc_tree_to_linear_expression): Adjust.
3600 (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
3601 lbv_to_gcc_expression, lle_to_gcc_expression,
3602 lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
3603 perfect_nestify): Likewise.
3604 * lambda.h (gcc_loopnest_to_lambda_loopnest,
3605 lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
3606 * profile.c (instrument_values): Adjust.
3607 * tree-cfg.c (modified_noreturn_calls): Adjust.
3608 (remove_fallthru_edge): Likewise.
3609 * tree-dump.c (dequeue_and_dump): Adjust.
3610 * tree-flow-inline.h (mark_stmt_modified): Adjust.
3611 * tree-flow.h (modified_noreturn_calls): Adjust.
3612 (tree_on_heap): Remove. (yay!)
3613 (register_new_def): Adjust.
3614 * tree-into-ssa.c: Define VEC(int,heap).
3615 (block_defs_stack): Adjust.
3616 (find_idf, insert_phi_nodes, register_new_def,
3617 rewrite_initialize_block, rewrite_finalize_block,
3618 register_new_update_single, rewrite_update_init_block,
3619 rewrite_update_fini_block, rewrite_blocks,
3620 ssa_rewrite_finalize_block, ssa_register_new_def,
3621 ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
3622 * tree-loop-linear.c (linear_transform_loops): Adjust.
3623 * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
3624 (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
3625 * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
3626 stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
3627 vrp_variables_stack): Adjust declarations.
3628 (tree_ssa_dominator_optimize): Adjust.
3629 (dom_opt_initialize_block, remove_local_expressions_from_table,
3630 restore_nonzero_vars_to_original_value,
3631 restore_vars_to_original_value,
3632 restore_currdefs_to_original_value, dom_opt_finalize_block,
3633 record_var_is_nonzero, record_cond, record_const_or_copy_1,
3634 optimize_stmt, update_rhs_and_lookup_avail_expr,
3635 lookup_avail_expr, record_range): Likewise.
3636 * tree-ssa-pre.c: Define VEC(basic_block,heap).
3637 (compute_antic_aux): Adjust.
3638 (inserted_exprs, create_expression_by_pieces,
3639 insert_into_preds_of_block, eliminate, mark_operand_necessary,
3640 remove_dead_inserted_code, fini_pre): Likewise.
3641 * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
3642 (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
3643 ssa_prop_init): Likewise.
3644 * tree-ssa.c: Define VEC(bitmap,heap).
3645 (verify_name_tags): Adjust.
3646 * value-prof.c (rtl_divmod_values_to_profile): Adjust.
3647 (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
3648 tree_divmod_values_to_profile, tree_find_values_to_profile,
3649 value_profile_transformations): Likewise.
3650 * value-prof.h: Define VEC(histogram_value,heap).
3651 * varasm.c: Remove alias_pair pointer typedef, define
3653 (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
3655 * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
3656 not a pointer to it. Create an object vector.
3657 (extern_symbols): Turn into an object vector.
3658 (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
3660 2005-04-21 Sebastian Pop <pop@cri.ensmp.fr>
3663 * Makefile.in (tree-chrec.o): Depend on params.h.
3664 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
3666 * tree-chrec.c: Depend on params.h. Replace build with buildN,
3667 and fold build with fold_buildN.
3668 (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
3669 the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3670 (tree_contains_chrecs): Compute an estimation of the size of the
3672 * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
3673 (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
3674 * tree-scalar-evolution.c (simple_iv): Ditto.
3675 * doc/invoke.texi (scev-max-expr-size): Documented.
3677 2005-04-21 Richard Sandiford <rsandifo@redhat.com>
3679 * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
3680 (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
3681 (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
3682 (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
3683 (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
3684 (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
3685 * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
3686 (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
3687 * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
3688 (darwin_fix_and_continue_switch): Delete.
3689 * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
3690 (SUBTARGET_SWITCHES): Delete.
3691 * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
3692 (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
3693 (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
3694 (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
3695 (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
3696 (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
3697 (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
3698 (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
3699 (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
3700 (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
3701 (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
3702 (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
3703 (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
3704 (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
3705 (TARGET_64BIT): Undef before redefining.
3706 (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
3707 (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
3708 (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
3709 (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
3710 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
3711 (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
3712 (ix86_asm_string, ix86_regparm, ix86_regparm_string)
3713 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
3714 (ix86_debug_arg_string, ix86_debug_addr_string)
3715 (ix86_align_loops_string, ix86_align_jumps_string)
3716 (ix86_align_funcs_string): Delete.
3717 * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
3718 (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
3719 * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
3720 (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
3721 * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
3722 * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
3723 (SUBTARGET_SWITCHES): Delete.
3724 * config/i386/i386.c (ix86_debug_arg_string): Delete.
3725 (ix86_debug_addr_string): Delete.
3726 (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
3727 (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
3728 (ix86_align_loops_string, ix86_align_jumps_string)
3729 (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
3730 (ix86_align_funcs_string): Make static.
3731 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3732 (ix86_handle_option): New function.
3733 (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
3734 (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
3735 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
3736 of darwin_fix_and_continue_switch.
3737 (darwin_one_byte_bool): Delete.
3738 * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
3739 * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
3740 to darwin_one_byte_bool.
3741 * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
3742 * config/i386/djgpp.opt, config/i386/i386.opt,
3743 * config/i386/sco5.opt: New files.
3745 2005-04-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3747 * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
3748 fp_zero_operand, fp_register_operand, intreg_operand,
3749 fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
3750 call_operand, call_operand_address, tgd_symbolic_operand,
3751 tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
3752 symbolic_operand, symbolic_memory_operand, label_ref_operand,
3753 sp64_medium_pic_operand, data_segment_operand,
3754 text_segment_operand, splittable_symbolic_memory_operand,
3755 reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
3756 eq_or_neq, normal_comp_operator, noov_compare_op,
3757 noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
3758 cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
3759 const64_operand, const64_high_operand, arith11_operand,
3760 arith10_operand, arith_double_operand, arith_double_4096_operand,
3761 arith_double_add_operand, arith11_double_operand,
3762 arith10_double_operand, small_int, small_int_or_double,
3763 uns_small_int, uns_arith_operand, clobbered_register,
3764 input_operand, compare_operand): Delete.
3765 (sparc_emit_set_const32): Use predicates in assertion. Remove special
3766 code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
3767 (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
3768 (GEN_HIGHINT64, GEN_INT64): Delete.
3769 (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
3770 gen_safe_XOR64): Adjust for above deletion.
3771 (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
3772 Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
3773 (legitimate_constant_p): Use const_zero_operand instead.
3774 (sparc_extra_constraint_check): Likewise.
3775 * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
3776 (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
3777 (PREDICATE_CODES): Delete.
3778 * config/sparc/sparc.md: Include predicates.md.
3779 (All patterns): Adjust for new predicate names.
3780 (cmpdi, cmpdi_sp64): Use arith_operand predicate.
3781 (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
3782 (movdi): Use general_operand predicate.
3783 (movdi_sp64_dbl): Delete.
3784 (movdi_const64_special): Add 'N' constraint.
3785 (movdicc): Use arith10_operand predicate.
3786 (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
3787 (movdi_cc_reg_sp64): Use arith10_operand predicate.
3788 (movdi_cc_reg_sp64_trunc): Delete.
3789 (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
3790 (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
3791 (subdi3_sp32): Delete.
3792 (subdi3_insn_sp32): Change to define_insn_and_split.
3793 (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
3794 (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
3795 (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
3796 umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
3797 small_int_operand predicate.
3798 (divdi3, udivdi3): Use arith_operand predicate.
3799 (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
3800 (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
3801 xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
3802 (xordi3_sp64_dbl): Delete.
3803 (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
3804 cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
3805 cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
3806 cmp_ccx_set_not): Use arith_operand predicate.
3807 (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
3808 * config/sparc/predicates.md: New file.
3810 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
3812 PR tree-optimization/14846
3813 * fold-const.c (fold_single_bit_test_into_sign_test): New,
3815 (fold_single_bit_test): ... here.
3816 (fold_binary): Call fold_single_bit_test_into_sign_test
3817 instead of fold_single_bit_test.
3819 2005-04-20 James E Wilson <wilson@specifixinc.com>
3822 * dwarf2out.c (gen_variable_die): Don't emit a specification if this
3823 is another declaration.
3825 2005-04-21 Hans-Peter Nilsson <hp@axis.com>
3827 * config/cris/predicates.md: New file.
3828 * config/cris/cris-protos.h (cris_store_multiple_op_p)
3829 (cris_movem_load_rest_p): Declare.
3830 * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
3831 (cris_movem_load_rest_p): Ditto. Globalize.
3832 (cris_bdap_operand, cris_bdap_biap_operand,
3833 cris_orthogonal_operator, cris_commutative_orth_op,
3834 cris_operand_extend_operator,
3835 cris_additive_operand_extend_operator, cris_extend_operator,
3836 cris_plus_or_bound_operator, cris_mem_op,
3837 cris_general_operand_or_symbol,
3838 cris_general_operand_or_gotless_symbol,
3839 cris_general_operand_or_plt_symbol, cris_mem_call_operand,
3840 cris_load_multiple_op): Remove predicate functions.
3841 (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
3842 abort, for UNSPECs other than CRIS_UNSPEC_PLT.
3843 * config/cris/cris.h (PREDICATE_CODES): Don't define.
3844 * config/cris/cris.md: Include predicates.md.
3845 ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
3847 2005-04-20 Ian Lance Taylor <ian@airs.com>
3849 * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
3850 * c-common.h (STMT_EXPR_STMT): Don't define.
3851 (STMT_EXPR_NO_SCOPE): Don't define.
3852 * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
3853 * c-pretty-print.c (pp_c_primary_expression): Likewise.
3854 (pp_c_expression): Likewise.
3856 2005-04-20 Richard Henderson <rth@redhat.com>
3859 * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
3861 2005-04-20 Jeff Law <law@redhat.com>
3863 * reload1.c (reload): Ignore equivalences between pseudos and
3866 2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
3869 * c-tree.h (struct c_label_list): Update comment.
3870 (struct c_label_context): Rename to struct c_label_context_se.
3871 (label_context_stack): Rename to label_context_stack_se.
3872 (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
3873 c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
3874 c_end_vm_scope): New.
3875 (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
3876 * c-decl.c (pop_scope): Call c_end_vm_scope.
3877 (pushdecl): Call c_begin_vm_scope for variably modified
3879 (define_label): Check for jumping into scope of identifier with
3880 variably modified type. Push label on stack for those defined at
3881 current context of identifiers with variably modified type.
3882 (start_function): Create stack level for context of identifiers
3883 with variably modified type.
3884 (finish_function): Pop stack level for context of identifiers with
3885 variably modified type.
3886 * c-typeck.c (label_context_stack): Rename to
3887 label_context_stack_se.
3888 (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
3889 (c_finish_goto_label): Check for jumping into scope of identifier
3890 with variably modified type. Push label on stack for those jumped
3891 to from current context of identifiers with variably modified
3893 (struct c_switch): Add blocked_vm.
3894 (c_start_case): Initialize blocked_vm.
3895 (do_case): Check blocked_vm.
3896 (c_finish_case): Add comment.
3897 (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
3898 variable label_context_stack.
3900 2005-04-20 Kazu Hirata <kazu@cs.umass.edu>
3902 * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
3903 conditional_replacement, value_replacement, abs_replacement,
3905 (replace_phi_edge_with_variable): Remove argument BB.
3906 (conditional_replacement, value_replacement,
3907 minmax_replacement, abs_replacement): Remove argument PHI_BB.
3908 Update a call to replace_phi_edge_with_variable.
3910 * tree-ssa-phiopt.c: Fix comments.
3912 2005-04-20 Michael Matz <matz@suse.de>
3915 * reload.c (push_reload, find_dummy_reload): Check for uninitialized