1 2005-04-14 Julian Brown <julian@codesourcery.com>
3 * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
4 link failures on ppc64 Linux.
6 2005-04-14 Andreas Krebbel <krebbel1@de.ibm.com>
8 * config.gcc: Set cpu_type for s390.
10 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
12 Fix PR tree-optimization/20963
13 * tree-ssa-pre.c (compute_avail): Remove special case for
15 (create_expression_by_pieces): Add value numbers for forced out
18 2005-04-14 Hans-Peter Nilsson <hp@axis.com>
20 * config/cris/cris.md: Replace references to (reg:SI 16) with
21 (reg:SI CRIS_SRP_REGNUM).
23 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
25 PR tree-optimization/20657
26 * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
27 create an appropriate range from it.
29 2005-04-14 Uros Bizjak <uros@kss-loka.si>
31 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
32 <UNSPEC_FIST_CEIL> case.
34 * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
35 (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
36 (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
37 to implement lfloor and llfloor built-ins as x87 intrinsic function.
38 (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
39 (lfloor<mode>2): New expanders.
40 (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
41 (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
42 to implement lceil and llceil built-ins as x87 intrinsic function.
43 (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
44 (lceil<mode>2): New expanders.
46 2005-04-14 Uros Bizjak <uros@kss-loka.si>
48 * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
49 and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
51 2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
54 * config/s390/s390-modes.def: Define TFmode.
56 2005-04-13 Richard Sandiford <rsandifo@redhat.com>
58 * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
59 (JUMP_TABLES_IN_TEXT_SECTION): Define.
60 * config/mips/mips.c (mips16_insn_length): Remove reference to
61 JUMP_TABLES_IN_TEXT_SECTION.
63 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
65 * simplify-rtx.c (simplify_binary_operation_1): Return
66 scalar or vector of constant 0, depending on the xor's
69 2005-04-13 Dale Johannesen <dalej@apple.com>
71 * objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
73 * objc/objc-act.c (objc_gimplify_expr): New.
74 (objc_get_callee_fndecl): New.
75 * objc/objc-act.h: Include tree-gimple.h. Declare new functions.
76 * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
77 (LANG_HOOKS_GET_CALLEE_FNDECL): Define.
79 2005-04-13 Devang Patel <dpatel@apple.com>
81 * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
84 2005-04-13 Hans-Peter Nilsson <hp@axis.com>
87 * config/cris/cris-protos.h (cris_emit_movem_store)
88 (cris_expand_prologue): Prototype.
89 * config/cris/cris.c (struct machine_function): New member
91 (cfa_label_num, cris_target_asm_function_prologue): Remove.
92 (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
93 (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
94 (cris_load_multiple_op, cris_return_address_on_stack)
95 (cris_return_address_on_stack_for_return): ISO-Cify.
96 (cris_store_multiple_op): New predicate function.
97 (cris_expand_prologue, cris_emit_movem_store): New functions.
98 (cris_print_operand) <case 'O'>: Handle modifications other than
100 (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
101 (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
102 (cris_gen_movem_load): Rearrange slightly to make local variable
103 src a parameter, removing osrc.
104 (cris_setup_incoming_varargs): Set machine_function member
105 stdarg_regs to correspond to the number of registers that need to
107 * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
109 (PREDICATE_CODES): Add cris_store_multiple_op. Make
110 cris_general_operand_or_gotless_symbol accept UNSPEC.
111 * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
112 ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
113 ("*cris_store_multiple"): New pattern. Tweak common comment above
114 this and "*cris_load_multiple".
115 ("prologue"): New define_expand.
117 * config/cris/cris.md ("epilogue"): Conditionalize on
118 TARGET_PROLOGUE_EPILOGUE.
120 2005-04-13 Steve Ellcey <sje@cup.hp.com>
123 * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
124 fpsr 0 instead of fpsr 1.
125 (divsf3_internal_thr): Ditto.
126 (divdf3_internal_lat): Ditto.
127 (divdf3_internal_thr): Ditto.
128 (divxf3_internal_lat): Ditto.
129 (divxf3_internal_thr): Ditto.
131 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
133 PR tree-optimization/20913
134 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
136 PR tree-optimization/20702
137 * tree-vrp.c (maybe_add_assert_expr): Recurse into
138 dominator children that haven't been walked into.
140 2005-04-13 Julian Brown <julian@codesourcery.com>
142 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
143 being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
146 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
148 * basic-block.h, tree-ssa-uncprop.c, varasm.c,
149 config/i386/sse.md: Fix comment typos.
151 * genattrtab.c (NULL_ATTR): Remove.
152 * ifcvt.c (NULL_EDGE): Likewise.
154 * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
156 * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
157 NOTE_PREDICT): Remove.
159 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
161 * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
162 * configure: Regenerate.
163 * config.in: Likewise.
164 * system.h: Declare vsnprintf if not already declared.
166 2005-04-13 Eric Botcazou <ebotcazou@libertysurf.fr>
168 * optc-gen.awk: Handle stand-alone Mask records.
169 * opth-gen.awk: Likewise.
170 * doc/options.texi (Option file format): Document them.
171 * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
172 sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
173 (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
174 * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
175 MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
176 MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
177 MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
178 MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
179 MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
180 (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
181 TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
182 TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
183 TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
184 TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
185 TARGET_LONG_DOUBLE_128): Likewise.
186 (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
187 (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
188 * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
189 * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
190 * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
191 * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
192 * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
193 * config/sparc/sparc.c (fpu_option_set): New global.
194 (sparc_handle_option): New function.
195 (sparc_override_options): Test fpu_option_set.
196 (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
197 (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
198 * config/sparc/sparc.opt: New file.
199 * config/sparc/little-endian.opt: Likewise.
200 * config/sparc/long-double-switch.opt: Likewise.
202 2005-04-13 Bernd Schmidt <bernd.schmidt@analog.com>
204 * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
205 (bfin_handle_options): Set it if -mshared-library-id= is seen.
206 * config/bfin/bfin.opt (mshared-library-id=): Lose
207 Var(bfin_lib_id_given).
209 2005-04-13 Matt Thomas <matt@3am-software.com>
211 * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
214 2005-04-13 Kazu Hirata <kazu@cs.umass.edu>
216 * rtl.h (CLEAR_RTX_FLAGS): Remove.
218 * cgraphunit.c (INSNS_PER_CALL): Remove.
220 * tree-ssa-forwprop.c (vars,
221 record_single_argument_cond_exprs,
222 substitute_single_use_vars): Remove.
223 (forward_propagate_into_cond_1, forward_propagate_into_cond):
225 (tree_ssa_forward_propagate_single_use_vars): Call
226 forward_propagate_into_cond for each COND_EXPR.
228 * tree-inline.c (INSNS_PER_STMT): Remove.
230 2005-04-12 Richard Henderson <rth@redhat.com>
232 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
233 (ix86_expand_sse_fp_minmax): ... from ...
234 (ix86_expand_fp_movcc): ... here.
235 (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
236 * config/i386/i386-protos.h: Update.
237 * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
238 (sse_setccsf, sse_setccdf): Allow before reload.
239 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
240 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
241 (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
242 * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
243 (anddf3, nanddf3, iordf3, xordf3): New.
245 2005-04-12 Jeff Law <law@redhat.com>
247 * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
248 (tree-ssa-uncprop.o): Add dependencies.
249 * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
250 * tree-flow.h (remove_useless_stmts): Remove prototype.
251 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
252 remove_useless_stmts.
253 * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
254 * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
255 * tree-pass.h (pass_uncprop): Declare.
256 * tree-ssa-uncprop.c: New file.
258 2005-04-12 James E. Wilson <wilson@specifixinc.com>
261 * unwind-ia64.c (uw_intall_context): Add missing load of r27.
263 2005-04-12 Caroline Tice <ctice@apple.com>
265 Temporary fix for partitioning problems.
266 * passes.c (rest_of_handle_final): Remove code that
267 frees unlikely_text_section_name,
268 * varasm.c (assemble_start_function): Test for partitioning
269 flag before writing out section labels.
270 (assemble_end_function): Test for partitioning flag before
271 writing out section labels.
273 2005-04-12 Steven Bosscher <stevenb@suse.de>
274 Stuart Hastings <stuart@apple.com>
275 Jan Hubicka <jh@suse.cz>
277 * Makefile.in: Add function.h to BASIC_BLOCK_H. Remove all
278 references to gt-tree-cfg.h.
279 * basic-block.h (struct basic_block_def): Don't skip rbi
280 for garbage collection.
281 (struct reorder_block_def): Make GTY-able.
282 (struct control_flow_graph): New structure.
283 (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
284 BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
285 but instead defines to the control_flow_graph for cfun.
286 (label_to_block_map): New define, points to the label map of
287 the control_flow_graph for cfun.
288 (n_edges_for_function, n_basic_blocks_for_function,
289 last_basic_block_for_function, basic_block_info_for_function,
290 EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
291 basic_block_info_for_function, label_to_block_map_for_function):
292 Counterparts for the above, taking a struct function as an extra
294 (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
295 * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
296 basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
297 (alloc_rbi_pool, free_rbi_pool): Remove.
298 (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
299 * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
301 (cfg_layout_finalize) ... and don't free it here.
302 * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
304 * flow.c (free_basic_block_vars): Set label_to_block_map and
306 * function.h (struct function): Add cfg field.
307 * function.c (allocate_struct_function): Allocate the cfg.
308 * tree-cfg.c (label_to_block_map): Remove.
309 (build_tree_cfg): Don't allocate the rbi pool here...
310 (delete_tree_cfg_annotations): ...and don't free it here.
311 Also don't nullify label_to_block_map for cfun.
313 2005-04-12 Caroline Tice <ctice@apple.com>
315 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
316 Revert my patch from April 9.
317 (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
318 (reorder_basic_blocks): Revert my patch from April 9.
319 (insert_section_boundary_note): Revert my patch from April 9.
320 * dbxout.c (dbxout_function_end): Revert my patch from April 9.
321 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
322 (COLD_END_LABEL): Revert my patch from April 9.
323 (cold_text_section_label): Revert my patch from April 9.
324 (cold_end_label): Revert my patch from April 9.
325 (dwarf2out_switch_text_section): Revert my patch from April 9.
326 (output_aranges): Revert my patch from April 9.
327 (output_ranges): Revert my patch from April 9.
328 (output_line_info): Revert my patch from April 9.
329 (add_location_or_const_value_attribute): Revert my patch from April 9.
330 (dwarf2out_var_location): Revert my patch from April 9.
331 (dwarf2out_init): Revert my patch from April 9.
332 (dwarf2out_finish): Revert my patch from April 9.
333 * function.h (struct function): Revert my patch from April 9.
334 * opts.c (decode_options): Revert my patch from April 9.
335 * output.h (unlikely_section_label, hot_section_label,
336 hot_section_end_label, cold_section_end_label,
337 unlikely_text_section_name): Revert my patch from April 9.
338 * passes.c (rest_of_handle_final): Revert my patch from April 9.
339 * varasm.c (unlikely_section_label, hot_section_label,
340 hot_section_end_label, cold_section_end_label,
341 unlikely_text_section_name): Revert my patch from April 9.
342 (initialize_cold_section_name): Revert my patch from April 9.
343 (unlikely_text_section): Revert my patch from April 9.
344 (in_unlikely_text_section): Revert my patch from April 9.
345 (named_section): Revert my patch from April 9.
346 (function_section): Revert my patch from April 9.
347 (current_function_section): Revert my patch from April 9.
348 (assemble_start_function): Revert my patch from April 9.
349 (assemble_end_function): Revert my patch from April 9.
350 (default_section_type_flags_1): Revert my patch from April 9.
352 2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
354 * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
355 * config/sparc/sparc.md (untyped_call): Save the registers manually.
357 * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
359 2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
362 * config/s390/s390.md ("*set_tp"): Use SET in pattern.
363 ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
365 2004-04-12 Richard Henderson <rth@redhat.com>
367 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
368 UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
369 UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
370 (UNSPEC_*, UNSPECV_*): Renumber.
372 2005-04-12 Frank Ch. Eigler <fche@redhat.com>
375 From Richard Henderson <rth@redhat.com>:
376 * tree-mudflap.c (mf_build_check_statement_for): Correct block
379 2005-04-12 Dorit Naishlos <dorit@il.ibm.com>
381 * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
383 2005-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
385 * config/bfin/bfin.c (bfin_library_id_string): Remove.
386 (bfin_library_id): New variable.
387 (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
388 instead of bfin_library_id_string.
389 (bfin_handle_option): New function.
390 (override_options): Remove most code to deal with shared library IDs,
391 just check they aren't used without -mid-shared-library.
392 (TARGET_HANDLE_OPTION): Define.
393 * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
394 * config/bfin/bfin.opt (mshared-library-id=): New.
396 2005-04-12 Kazu Hirata <kazu@cs.umass.edu>
398 * tree-vect-transform.c: Fix comment typos.
400 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
402 * postreload-gcse.c (eliminate_partially_redundant_load): Don't
403 split critical edges when not possible/profitable.
405 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
407 * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
408 (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
409 (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
410 (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
411 (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
412 (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
413 (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
414 * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
416 * config/ns32k/ns32k.c (ns32k_handle_option): New function.
417 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
418 * config/ns32k/ns32k.opt: New file.
420 2005-04-12 Richard Sandiford <rsandifo@redhat.com>
422 * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
423 * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
424 (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
425 (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
426 (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
427 (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
428 (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
429 (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
430 (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
431 (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
432 (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
433 (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
434 (MASK_COLDFIRE): Formatting fixes.
435 (TARGET_COLDFIRE): Turn into a boolean value for consistency.
436 * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
437 * config/m68k/m68k.c (m68k_library_id_string): Initialize to
438 "_current_shared_library_a5_offset_".
439 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
440 (MASK_ALL_CPU_BITS): New macro.
441 (m68k_handle_option): New function.
442 (override_options): Remove handling of m68k_library_id_string.
443 * config/m68k/m68k.opt: New file.
444 * config/m68k/ieee.opt: New file.
446 2005-04-11 Mark Mitchell <mark@codesourcery.com>
448 * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
449 (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
450 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
451 (TARGET_CXX): Adjust accordingly.
452 * target.h (struct gcc_target): Remove epxort_class_data. Add
453 determine_class_data_visibility and class_data_always_comdat.
454 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
455 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
456 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
457 * config/arm/arm.c (arm_cxx_export_class_data): Remove.
458 (arm_cxx_determine_class_data_visibility): New.
459 (arm_cxx_class_data_always_comdat): Likewise.
460 (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
461 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
462 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
463 * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
464 * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
467 2005-04-11 Devang Patel <dpatel@apple.com>
469 * tree-data-ref.c (build_classic_dist_vector,
470 compute_subscript_distance): Make externally visible.
471 * tree-data-ref.h (build_classic_dist_vector,
472 compute_subscript_distance): Same.
473 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
474 Check distance vector against vectorization factor.
475 (vect_analyze_loop): Determine vectorizaion factor before
476 analyzing data dependences.
477 * tree-vectorizer.c (loops_num): Make it externally visible and
479 * tree-vectorizer.c (vect_loops_num): ... new name.
480 * tree-vectorizer.h (vect_loops_num): New.
482 2005-04-11 Devang Patel <dpatel@apple.com>
484 * tree-vect-analyze.c (vect_analyze_operations): Check
485 vectorizable codition.
486 * tree-vect-transform.c (vect_is_simple_cond): New function.
487 (vectorizable_condition): New function.
488 (vect_transform_stmt): Handle condition_vec_info_type.
489 * tree-vectorizer.h (enum stmt_vec_info_type): Add
490 condition_vec_info_type.
491 (vectorizable_condition): New.
493 2005-04-11 Geoffrey Keating <geoffk@apple.com>
495 * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
496 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
497 * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
499 * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
500 (SUBTARGET_EXTRA_SPECS): Always 'i386'.
502 * dwarf2out.c (output_line_info): Don't try to dereference
503 a NULL current_function_decl.
505 * config/t-slibgcc-darwin: Don't put shared libraries in
506 directories other than $(slibdir).
507 * config/rs6000/darwin.h: Find -m64 libgcc under the name the
510 2005-04-11 Diego Novillo <dnovillo@redhat.com>
512 PR tree-optimization/20933
513 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
514 logic to reject aliases between read-only and writable
516 (may_alias_p): ... here.
517 (get_tmt_for): Do not associate read-only tags to pointers
518 whose pointed-to type is not read-only.
519 * tree-ssa.c (verify_ssa): Check that memory stores have at
520 least one V_MAY_DEF or V_MUST_DEF.
522 2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
525 * configure.ac (gcc_UNLOCKED_FUNCS): New.
526 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
527 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
528 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
530 (fwrite_unlocked): Fix prototype.
532 * configure, config.in: Regenerate.
534 2005-04-11 David Edelsohn <edelsohn@gnu.org>
536 * tree-ssa-loop-im.c: Include real.h.
537 (determine_invariantness_stmt): If real division divisor is
538 invariant and flag_unsafe_math_optimizations enabled, generate
539 invariant reciprocal for hoisting.
540 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
542 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
544 Fix PR tree-optimization/20926
546 * tree-ssa-alias.c (add_type_alias): Handle subvars.
548 2005-04-11 Devang Patel <dpatel@apple.com>
550 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
553 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
555 * fold-const.c (fold_binary_op_with_conditional_arg):
556 use fold_buildN instead of "fold (buildN" in some
558 (fold_unary): Likewise.
559 (fold_binary): Likewise.
561 2005-04-11 Daniel Berlin <dberlin@dberlin.org>
563 Fix PR tree-optimization/20612
564 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
566 (perfect_nestify): preheaderbb is *not* part of loop of the
569 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
571 * tree-ssa-alias.c (may_alias_p): If the variable
572 is a global variable and the pointer is parameter
573 and -fargument-noalias-global is used, then
574 the pointer cannot alias the variable.
576 2005-04-11 James A. Morrison <phython@gcc.gnu.org>
578 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
579 * config/sparc/sparc.h: Likewise.
580 * config/sparc/sparc.md: Likewise.
582 2005-04-11 Kazu Hirata <kazu@cs.umass.edu>
584 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
586 * tree-vrp.c: Fix a comment typo.
588 2005-04-11 Diego Novillo <dnovillo@redhat.com>
590 PR tree-optimization/20920
591 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
592 SSA_NAME flows through an abnormal edge.
593 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
594 through abnormal edges.
595 (maybe_add_assert_expr): Likewise.
597 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
599 * config/s390/s390.h (s390_tune_string, s390_arch_string)
600 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
601 (s390_stack_size_string, s390_stack_guard_string, target_flags)
602 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
603 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
604 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
605 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
606 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
607 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
608 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
609 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
610 (TARGET_HANDLE_OPTION): Likewise.
611 (s390_tune): Initialize to PROCESSOR_max.
612 (s390_arch_string): Make static.
613 (s390_tune_string, s390_warn_framesize_string): Delete.
614 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
615 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
616 (s390_handle_arch_option, s390_handle_option): New functions.
617 (override_options): Remove parsing of option strings.
618 * config/s390/s390.opt: New file.
620 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
622 * tree-complex.c (expand_vector_operations): Call
623 update_stmt_if_modified.
625 2005-04-11 Paolo Bonzini <bonzini@gnu.org>
627 * tree-vect-analyze (vect_determine_vectorization_factor):
628 Do not use GET_MODE_NUNITS.
629 * tree-vect-transform.c (vect_get_vec_def_for_operand,
630 (vectorizable_load, vect_transform_loop): Likewise.
632 2005-04-11 Uros Bizjak <uros@kss-loka.si>
634 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
635 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
636 * optabs.h (enum optab_index): Add new OTI_lceil.
637 (lceil_optab): Define corresponding macro.
638 * optabs.c (init_optabs): Initialize lceil_optab.
639 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
640 and lceildi2 patterns.
641 * builtins.c (expand_builtin_int_roundingfn): Handle
642 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
643 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
644 BUILT_IN_LLCEIL{,F,L}.
645 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
646 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
647 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
648 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
649 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
650 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
651 into lceil built-in function and (long long int)ceil{,f,l} into
652 llceil built-in function.
653 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
656 2005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
658 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
661 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
663 * config/arm/arm.c: Fix a comment typo.
664 * doc/tree-ssa.texi: Fix a typo.
666 2005-04-10 Steven Bosscher <stevenb@suse.de>
668 * cselib.c (clear_table): Rename to cselib_clear_table.
669 * cselib.h (cselib_clear_table): Add prototype.
670 * gcse.c (gcse_main): Make 'f' argument unused.
671 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
672 of each basic block instead.
673 (compute_sets, compute_hash_table_work): Likewise.
674 (constprop_register): Change int 'alter_jumps' argument to bool.
675 (do_local_cprop): Likewise.
676 (local_cprop_pass): Likewise. Also walk basic blocks instead of
677 the insn chain. Explicitly clear the cselib tables after finishing
678 one basic block. Make sure there are no unterminated libcall blocks.
679 Update compute_sets call.
680 (cprop): Walk basic blocks instead of the insn chain.
681 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
683 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
684 one_cprop_pass calls.
686 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
688 * combine.c (combine_simplify_rtx): Remove a transformation that
689 relies on an invalid assumption about rtl sign-extension semantics.
691 2005-04-10 Richard Sandiford <rsandifo@redhat.com>
693 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
694 to build_int_cst_wide.
696 2005-04-09 Alexandre Oliva <aoliva@redhat.com>
699 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
700 set the original address pseudo to the correct value before the
701 original insn, if possible, and leave the insn alone, otherwise
702 create a new pseudo, set it and replace it in the insn.
703 * recog.c (validate_change_maybe_volatile): New.
704 * recog.h (validate_change_maybe_volatile): Declare.
706 2005-04-09 Caroline Tice <ctice@apple.com>
708 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
709 Remove targetm.have_named_sections test.
710 (fix_edges_for_rarely_executed_code): Likewise.
711 (insert_section_boundary_note): Likewise.
712 (reorder_basic_blocks): Check partitioning flag before calling
713 verify_hot_cold_block_grouping.
714 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
715 the function struct rather than global variables.
716 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
717 (COLD_END_LABEL): Likewise
718 (cold_text_section_label): New static global variable.
719 (cold_end_label): Likewise.
720 (dwarf2out_switch_text_section): Get hot/cold section labels from
721 the function struct rather than global variables.
722 (output_aranges): Use cold_text_section_label and cold_end_label;
723 check partitioning flag before putting out delta.
724 (output_ranges): Remove incorrect code attempting to use
726 (output_line_info): Get cold section label from function struct.
727 (add_location_or_const_value_attribute): Likewise.
728 (get_subprogram_die): Get hot/cold section labels from function struct.
729 (dwarf2out_var_location): Likewise.
730 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
731 write out cold_text_section_label if partition flag is set.
732 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
733 * function.h (struct function): Add new fields to point to hot/cold
734 section labels: hot_section_label, cold_section_label,
735 hot_section_end_label and cold_section_end_label; also add new field
736 for cold text section name, unlikely_text_section_name.
737 * opts.c (decode_options): Turn off partitioning flag if
738 !targetm.have_named_sections.
739 * output.h (hot_section_label): Remove.
740 (hot_section_end_label): Remove.
741 (cold_section_end_label): Remove.
742 (unlikely_section_label): Remove.
743 (unlikely_text_section_name): Remove.
744 * passes.c (rest_of_handle_final): Remove code that frees
745 unlikely_text_section_name.
746 * varasm.c (unlikely_section_label): Remove.
747 (hot_section_label): Remove.
748 (hot_section_end_label): Remove.
749 (cold_section_end_label): Remove.
750 (unlikely_text_section_name): Remove.
751 (initialize_cold_section_name): Modify to call
752 targetm.strip_name_encoding; to store cold section name in current
753 function struct, if it exists; and to only use the decl_section_name
754 if flag_named_sections is true.
755 (unlikely_text_section): Modify to get section name out of current
756 function struct, if there is one; otherwise build it from
757 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
758 (in_unlikely_text_section): Likewise.
759 (named_section): Modify to get/put cold section name in current function
760 struct, if there is one.
761 (function_section): Change 'bool unlikely' to 'int reloc'; check
762 targetm.have_named_sections before calling named_section.
763 (current_function_section): Likewise.
764 (assemble_start_function): Modify to get/put unlikely_text_section_name
765 in current function struct; modify to get hot/cold section labels
766 from function struct; initialize labels using
767 ASM_GENERATE_INTERNAL_LABEL;
768 test partitioning flag before writing out hot section label.
769 (assemble_end_function): Test partitioning flag before writing out
770 hot/cold section labels.
771 (default_section_type_flags_1): Modify to use array instead of
772 char* for unlikely_text_section_name; set flags correctly for
773 cold text section if there is not a current function decl.
775 2005-04-09 Jakub Jelinek <jakub@redhat.com>
777 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
778 and TI_VA_LIST_FPR_COUNTER_FIELD.
779 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
780 * tree-pass.h (pass_stdarg): Add.
781 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
782 * tree-stdarg.c: New file.
783 * tree-stdarg.h: New file.
784 * Makefile.in (OBJS-common): Add tree-stdarg.o.
785 (tree-stdarg.o): Add dependencies.
786 * function.h (struct function): Add va_list_gpr_size and
787 va_list_fpr_size fields.
788 * function.c (allocate_struct_function): Initialize them.
789 * target.h (struct gcc_target): Add stdarg_optimize_hook.
790 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
791 (TARGET_INITIALIZER): Add it.
793 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
794 va_list_{g,f}pr_counter_field.
795 (ix86_setup_incoming_varargs): Don't do anything if reg_save
796 area will not be used. Only save registers that tree-stdarg.c
797 detected they need saving.
798 (ix86_va_start): Don't set up fields that won't be used.
800 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
801 va_list_{g,f}pr_counter_field.
802 (setup_incoming_varargs): Don't do anything if reg_save
803 area will not be used. Only save registers that tree-stdarg.c
804 detected they need saving.
805 (rs6000_va_start): Don't set up fields that won't be used.
807 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
808 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
809 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
810 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
812 2005-04-09 Jakub Jelinek <jakub@redhat.com>
815 * config/i386/i386.c (construct_container): Pass empty aligned
816 struct, union or class in memory.
818 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
820 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
821 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
822 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
823 config/rs6000/predicates.md: Fix comment typos.
825 * sched-int.h (haifa_insn_data): Remove blockage and units.
826 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
827 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
828 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
830 2005-04-09 Jan Hubicka <jh@suse.cz>
831 Steven Bosscher <stevenb@suse.de>
833 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
834 * cfgloop.c (get_loop_exit_edges): Likewise.
835 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
837 * loop-unroll.c (analyze_insns_in_loop): Likewise.
838 * tree-cfg.c (dump_cfg_status): Likewise.
840 2005-04-09 David Edelsohn <edelsohn@gnu.org>
842 * config/rs6000/predicates.md (altivec_register_operand): Remove
843 redundant match_code test.
844 (gpc_reg_operand): Same.
845 (cc_reg_operand): Same.
846 (cc_reg_not_cr0_operand): Same.
848 2005-04-09 Jan Hubicka <jh@suse.cz>
850 Forgotten hunk from my last merge patch:
851 * final.c (output_addr_const): Do not call mark_referenced.
853 2005-04-09 Andrew MacLeod <amacleod@redhat.com>
855 * doc/tree-ssa.texi: Add immediate use documentation.
857 2005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
859 * arm.c (FL_WBUF): Define.
860 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
861 (arm_is_6_or_7): Delete.
862 (arm_tune_wbuf): New.
863 (arm_override_options): Set arm_tune_wbuf.
864 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
865 (arm_is_6_or_7): Delete declaration.
866 (arm_tune_wbuf): New declartion.
867 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
868 (model_wbuf): Derive from arm_tune_wbuf.
869 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
870 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
871 (arm740t): Mark CPUs as having a write buffer.
873 2005-04-09 Uros Bizjak <uros@kss-loka.si>
875 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
876 of 'const_double_operand' in operand 2 constraints. Update enable
879 2005-04-09 Uros Bizjak <uros@kss-loka.si>
881 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
882 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
883 * optabs.h (enum optab_index): Add new OTI_lfloor.
884 (lfloor_optab): Define corresponding macro.
885 * optabs.c (init_optabs): Initialize lfloor_optab.
886 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
887 and lfloordi2 patterns.
888 * builtins.c (expand_builtin_int_roundingfn): New prototype.
889 (expand_builtin_int_roundingfn): New function.
890 (fold_builtin_int_roundingfn): New prototype.
891 (fold_builtin_int_roundingfn): New function, renamed from
893 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
894 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
895 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
896 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
897 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
898 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
899 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
900 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
901 into lfloor built-in function and (long long int)floor{,f,l} into
902 llfloor built-in function.
903 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
906 2005-04-08 Ian Lance Taylor <ian@airs.com>
908 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
909 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
910 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
911 (DO_COND, DO_BODY): Likewise.
912 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
913 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
914 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
915 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
916 (build_continue_stmt, build_break_stmt): Don't declare.
917 (c_do_switch_warnings): Update declaration.
918 * c-gimplify.c (enum bc_t): Remove.
919 (struct c_gimplify_ctx, ctxp): Remove.
920 (push_context, pop_context): Remove static functions.
921 (c_genericize): Don't call push_context or pop_context.
922 (begin_bc_block, finish_bc_block): Remove static functions.
923 (build_bc_goto): Likewise.
924 (gimplify_c_loop): Likewise.
925 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
926 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
927 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
928 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
929 * c-common.c (c_do_switch_warnings): Rename from
930 c_do_switch_warnings_1.
931 (c_do_switch_warnings) [old version]: Remove.
932 (c_do_switch_expr_warnings): Remove.
933 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
934 function instead of c_do_switch_expr_warnings.
935 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
936 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
937 * c-pretty-print.c (pp_c_statement): Likewise.
938 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
940 2005-04-08 Devang Patel <dpatel@apple.com>
942 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
943 While selecting replacement condition pay attention to loop header.
945 2005-04-08 Diego Novillo <dnovillo@redhat.com>
947 Merge from tree-cleanup-branch: VRP, store CCP, store
948 copy-prop, incremental SSA updating of FUD chains and
949 newly exposed symbols.
951 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
952 (OBJS-common): Add tree-vrp.o.
953 (tree-vrp.o): New rule.
954 * basic-block.h (nearest_common_dominator_for_set): Declare.
955 * common.opt (ftree-store-ccp): New flag.
956 (ftree-copy-prop): New flag.
957 (ftree-vrp): New flag.
958 (ftree-store-copy-prop): New flag.
959 * dominance.c (nearest_common_dominator_for_set): New.
960 * domwalk.c (walk_dominator_tree): Only traverse
961 statements in blocks marked in walk_data->interesting_blocks.
962 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
963 * fold-const.c (fold): Handle ASSERT_EXPR.
964 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
965 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
966 flag_tree_vrp at -O2.
967 * timevar.def (TV_TREE_VRP): Define.
968 (TV_TREE_COPY_PROP): Define.
969 (TV_TREE_STORE_COPY_PROP): Define.
970 (TV_TREE_SSA_INCREMENTAL): Define.
971 (TV_TREE_STORE_CCP): Define.
972 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
973 to kill_redundant_phi_nodes from comment.
974 (verify_expr): Handle ASSERT_EXPR.
975 * tree-dfa.c (mark_new_vars_to_rename): Remove second
976 argument. Update all users.
977 (mark_call_clobbered_vars_to_rename): Remove. Update all
979 * tree-flow-inline.h (unmodifiable_var_p): New.
980 * tree-flow.h (enum value_range_type): Declare.
981 (struct value_range_def): Declare.
982 (value_range): Declare.
983 (remove_all_phi_nodes_for): Remove. Update all users.
984 (find_phi_node_for): Declare.
985 (add_type_alias): Declare.
986 (count_uses_and_derefs): Declare.
987 (kill_redundant_phi_nodes): Remove.
988 (rewrite_into_ssa): Remove.
989 (rewrite_def_def_chains): Remove.
990 (update_ssa, register_new_name_mapping, create_new_def_for,
991 need_ssa_update_p, name_registered_for_update_p,
992 release_ssa_name_after_update_ssa, dump_repl_tbl,
993 debug_repl_tbl, dump_names_replaced_by,
994 debug_names_replaced_by, mark_sym_for_renaming,
995 mark_set_for_renaming, get_current_def, set_current_def,
996 get_value_range, dump_value_range, debug_value_range,
997 dump_all_value_ranges, debug_all_value_ranges,
998 expr_computes_nonzero, loop_depth_of_name,
999 unmodifiable_var_p): Declare.
1000 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
1002 * tree-into-ssa.c (block_defs_stack): Update comment.
1003 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
1004 syms_to_rename, names_to_release, repl_tbl,
1005 need_to_initialize_update_ssa_p, need_to_update_vops_p,
1006 need_to_replace_names_p): New locals.
1007 (NAME_SETS_GROWTH_FACTOR): Define.
1008 (struct repl_map_d): Declare.
1009 (struct mark_def_sites_global_data): Add field
1011 (enum rewrite_mode): Declare.
1012 (REGISTER_DEFS_IN_THIS_STMT): Define.
1013 (compute_global_livein): Use last_basic_block instead of
1015 (set_def_block): Remove last argument. Update all callers.
1016 (prepare_use_operand_for_rename): Remove. Update all callers.
1017 (prepare_def_operand_for_rename): Remove. Update all callers.
1018 (symbol_marked_for_renaming): New.
1021 (repl_map_hash): New.
1023 (repl_map_free): New.
1024 (names_replaced_by): New.
1025 (add_to_repl_tbl): New.
1026 (add_new_name_mapping): New.
1027 (mark_def_sites): Assume that all the operands in the
1028 statement are in normal form.
1029 (find_idf): Assert that the block in the stack is valid.
1030 (get_default_def_for): New.
1031 (insert_phi_nodes_for): Add new argument 'update_p'.
1033 If update_p is true, add a new mapping between the LHS of
1034 each new PHI and the name that it replaces.
1035 (insert_phi_nodes_1): Only call find_idf if needed.
1036 (get_reaching_def): Call get_default_def_for.
1037 (rewrite_operand): Remove.
1038 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
1039 and REWRITE_THIS_STMT are false.
1040 Assume that all the operands in the statement are in
1042 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
1043 (rewrite_virtual_phi_arguments): Remove.
1044 (invalidate_name_tags): Remove.
1045 (register_new_update_single, register_new_update_set,
1046 rewrite_update_init_block, replace_use,
1047 rewrite_update_fini_block, rewrite_update_stmt,
1048 rewrite_update_phi_arguments): New.
1049 rewrite_blocks): Remove argument 'fix_virtual_phis'.
1050 Add arguments 'entry', 'what' and 'blocks'.
1051 Initialize the dominator walker according to 'what' and
1053 Start the dominator walk at 'entry'.
1054 (mark_def_site_blocks): Add argument 'interesting_blocks'.
1055 Use it to configure the dominator walker.
1056 (rewrite_into_ssa): Remove argument 'all'.
1058 (rewrite_all_into_ssa): Remove.
1059 (rewrite_def_def_chains): Remove.
1060 (mark_def_interesting, mark_use_interesting,
1061 prepare_phi_args_for_update, prepare_block_for_update,
1062 prepare_def_site_for, prepare_def_sites,
1063 dump_names_replaced_by, debug_names_replaced_by,
1064 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
1065 delete_update_ssa, create_new_def_for,
1066 register_new_name_mapping, mark_sym_for_renaming,
1067 mark_set_for_renaming, need_ssa_update_p,
1068 name_registered_for_update_p, ssa_names_to_replace,
1069 release_ssa_name_after_update_ssa,
1070 insert_updated_phi_nodes_for, update_ssa): New.
1071 * tree-loop-linear.c (linear_transform_loops): Call
1072 update_ssa instead of rewrite_into_ssa.
1073 * tree-optimize.c (vars_to_rename): Remove.
1075 (init_tree_optimization_passes): Replace
1076 pass_redundant_phi with pass_copy_prop.
1078 Replace pass_ccp with pass_store_ccp.
1079 Add pass_store_copy_prop after pass_store_ccp.
1080 (execute_todo): If the TODO_ flags don't include updating
1081 the SSA form, assert that it does not need to be updated.
1082 Call update_ssa instead of rewrite_into_ssa and
1083 rewrite_def_def_chains.
1084 If TODO_verify_loops is set, call verify_loop_closed_ssa.
1085 (tree_rest_of_compilation):
1086 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
1087 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
1088 TODO_cleanup_cfg): Renumber.
1089 (TODO_verify_loops, TODO_update_ssa,
1090 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
1091 TODO_update_ssa_only_virtuals): Define.
1092 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
1094 * tree-phinodes.c (make_phi_node): Update documentation.
1095 (remove_all_phi_nodes_for): Remove.
1096 (find_phi_node_for): New.
1097 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
1098 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
1099 (interpret_rhs_modify_expr): Likewise.
1100 * tree-sra.c (decide_instantiations): Mark all symbols in
1101 SRA_CANDIDATES for renaming.
1102 (mark_all_v_defs_1): Rename from mark_all_v_defs.
1103 (mark_all_v_defs): New function. Update all users to call it
1104 with the whole list of scalarized statements, not just the
1106 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
1107 (compute_flow_insensitive_aliasing): If the tag is
1108 unmodifiable and the variable isn't or vice-versa, don't
1109 make them alias of each other.
1110 (setup_pointers_and_addressables): If the type tag for
1111 VAR is about to change, mark the old one for renaming.
1112 (add_type_alias): New.
1113 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
1114 (ccp_lattice_t): Rename from latticevalue.
1115 (value): Remove. Update all users.
1116 (const_val): New local variable.
1117 (do_store_ccp): New local variable.
1118 (dump_lattice_value): Handle UNINITIALIZED.
1119 (debug_lattice_value): New.
1120 (get_default_value): Re-write.
1121 (set_lattice_value): Re-write.
1122 (def_to_varying): Remove. Update all users.
1123 (likely_value): Return VARYING for statements that make
1124 stores when STORE_CCP is false.
1125 Return VARYING for any statement other than MODIFY_EXPR,
1126 COND_EXPR and SWITCH_EXPR.
1127 (ccp_initialize): Re-write.
1128 (replace_uses_in, replace_vuse_in, substitute_and_fold):
1129 Move to tree-ssa-propagate.c.
1130 (ccp_lattice_meet): Handle memory stores when
1131 DO_STORE_CCP is true.
1132 (ccp_visit_phi_node): Likewise.
1133 (ccp_fold): Likewise.
1134 (evaluate_stmt): Likewise.
1135 (visit_assignment): Likewise.
1136 (ccp_visit_stmt): Likewise.
1137 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
1141 (do_ssa_store_ccp): New.
1142 (gate_store_ccp): New.
1143 (pass_store_ccp): Declare.
1144 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
1145 (may_propagate_copy): Reformat.
1146 Don't abort if ORIG is a virtual and DEST isn't.
1147 If NEW does not have alias information but DEST does,
1149 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
1150 copy_prop_kind, which_copy_prop): Declare.
1151 (stmt_may_generate_copy, get_copy_of_val,
1152 get_last_copy_of, set_copy_of_val, dump_copy_of,
1153 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
1154 copy_prop_visit_stmt, copy_prop_visit_phi_node,
1155 init_copy_prop, fini_copy_prop, execute_copy_prop,
1156 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
1157 store_copy_prop): New.
1158 (pass_copy_prop, pass_store_copy_prop): Declare.
1159 * tree-ssa-dom.c (struct opt_stats_d): Add fields
1160 'num_const_prop' and 'num_copy_prop'.
1161 (cprop_operand): Update them.
1162 (dump_dominator_optimization_stats): Dump them.
1163 (tree_ssa_dominator_optimize): Call update_ssa instead of
1165 (loop_depth_of_name): Declare extern.
1166 (simplify_cond_and_lookup_avail_expr): Guard against NULL
1167 values for LOW or HIGH.
1168 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
1169 (record_equivalences_from_stmt): Call expr_computes_nonzero.
1170 (cprop_operand): Only propagate if VAL != OP.
1171 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
1172 statement for renaming.
1173 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
1174 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
1175 add_type_alias if necessary.
1176 Call mark_new_vars_to_rename.
1177 (tree_ssa_iv_optimize): If new symbols need to be renamed,
1178 mark every statement updated, call update_ssa and
1179 rewrite_into_loop_closed_ssa.
1180 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
1181 from LIVEIN if VAR is a virtual.
1182 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
1183 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
1184 (get_call_expr_operands): Reformat statement.
1185 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
1187 * tree-ssa-propagate.c (ssa_prop_init): Initialize
1188 SSA_NAME_VALUE for every name.
1189 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
1190 get_value_loaded_by): New.
1191 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
1192 substitute_and_fold): Move from tree-ssa-ccp.c.
1193 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
1194 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
1195 get_value_loaded_by, replace_uses_in, substitute_and_fold):
1197 * tree-ssa.c (verify_use): Fix error message.
1198 (propagate_into_addr, replace_immediate_uses, get_eq_name,
1199 check_phi_redundancy, kill_redundant_phi_nodes,
1200 pass_redundant_phi): Remove. Update all users.
1201 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1202 add_type_alias, if necessary.
1203 * tree-vectorizer.h (struct _stmt_vect_info): Update
1204 documentation for field 'memtag'.
1205 * tree-vrp.c: New file.
1206 * tree.def (ASSERT_EXPR): Define.
1207 * tree.h (ASSERT_EXPR_VAR): Define.
1208 (ASSERT_EXPR_COND): Define.
1209 (SSA_NAME_VALUE_RANGE): Define.
1210 (struct tree_ssa_name): Add field 'value_range'.
1211 (PHI_REWRITTEN): Remove.
1212 (struct tree_phi_node): Remove field 'rewritten'.
1213 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
1214 -ftree-store-copy-prop): Document.
1215 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
1216 Document usage of update_ssa.
1218 2005-04-08 David Edelsohn <edelsohn@gnu.org>
1221 * config/rs6000/predicates.md (altivec_register_operand): Accept
1223 (and64_operand): Do not limit CONST_INT to mask64_operand.
1224 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
1225 (and_operand): Do not limit CONST_INT to mask_operand.
1227 2005-04-09 Hans-Peter Nilsson <hp@axis.com>
1229 PR rtl-optimization/20466
1230 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
1231 for overlap of the address of each list member.
1232 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
1234 2005-04-08 Mike Stump <mrs@apple.com>
1236 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
1238 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
1241 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
1243 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
1245 * function.c (push_function_context_to): Don't set
1247 * function.h (function): Remove contains_functions.
1248 (current_function_contains_functions): Remove.
1250 * function.h (function): Remove instrument_entry_exit.
1251 (current_function_instrument_entry_exit): Remove.
1253 * function.h (nonlocal_labels): Remove.
1255 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
1257 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
1258 (check_attr_value, write_attr_get, write_expr_attr_cache,
1259 find_attr, make_internal_attr): Don't reference negative_ok or
1261 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
1262 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
1263 (ATTR_STATIC): Adjust the value.
1265 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
1267 2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
1269 * config/s390/tpf.h (ASM_SPEC): Define.
1271 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
1273 * tree-flow.h: Remove the prototype for
1274 redirect_immediate_uses.
1275 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
1277 2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
1279 * arm.c (arm_const_double_by_parts): New function.
1280 * arm-protos.h (arm_const_double_by_parts): Add prototype.
1281 * arm.md (define_split for 64-bit constants): Add another one.
1283 2005-04-08 Andrew MacLeod <amacleod@redhat.com>
1285 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
1287 2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1289 * system.h: Revert last change.
1291 2005-04-08 Richard Sandiford <rsandifo@redhat.com>
1293 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
1294 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
1295 (TARGET_SWITCHES): Delete.
1296 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1297 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
1298 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
1299 * config/xtensa/xtensa.opt: New file.
1301 2005-04-08 Ben Elliston <bje@au.ibm.com>
1303 * config/fp-bit.c: Include L_mul_tf in #endif comment.
1304 * config/fp-bit.h: Tidy comments.
1306 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1308 * system.h: Poison PARAMS.
1310 2005-04-07 Richard Sandiford <rsandifo@redhat.com>
1312 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
1313 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
1314 (TARGET_SWITCHES): Delete.
1315 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
1316 * config/vax/vax.opt: New file.
1318 2005-04-07 Daniel Berlin <dberlin@dberlin.org>
1320 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
1322 2005-04-07 Ian Lance Taylor <ian@airs.com>
1324 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
1326 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
1327 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
1330 2005-04-07 Kazu Hirata <kazu@cs.umass.edu>
1332 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
1333 all immediate uses in PHI nodes.
1335 2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
1337 * arm.c (arm_const_double_inline_cost): Handle any constant by
1338 using gen_lowpart and gen_highpart_mode.
1339 (note_invalid_constants): All constants in an RTX with a constraint
1340 that permits memory are now pushed to the constant pool.
1341 (output_move_double): Delete code to handle reg to reg and
1342 constant to reg moves.
1343 (const_double_needs_minipool, output_mov_immediate): Delete.
1344 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
1345 CONST_INT and CONST_VECTOR.
1346 * arm.md (ANY64): New mode macro.
1347 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
1348 (movdf_soft_insn): Split reg-reg and const-reg moves.
1349 (split patterns for 64-bit constant and register moves): New.
1350 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
1351 (cirrus_movdf_hard_insn): Likewise.
1352 * fpa.md (movdf_fpa): Likewise.
1353 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
1354 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
1356 (movv2si_internal_2): Likewise.
1357 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
1358 (movdf_vfp): Likewise.
1359 * arm-protos.h (output_mov_immediate): Delete prototype.
1361 2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
1364 * simplify-rtx.c (simplify_unary_operation_1): Check
1365 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
1367 2005-04-06 James E Wilson <wilson@specifixinc.com>
1370 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
1373 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
1375 * coverage.h (GCOV_TYPE_NODE): Delete.
1376 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
1377 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
1378 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
1379 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
1380 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
1382 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
1385 * Makefile.in (gcc.pot): Remove options.c dependency.
1386 * optc-gen.awk: Don't quote help strings with N_().
1388 2005-04-06 James A. Morrison <phython@gcc.gnu.org>
1390 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
1391 the function returns a pointer type.
1393 2005-04-06 Daniel Berlin <dberlin@dberlin.org>
1395 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
1396 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
1397 * doc/invoke.texi: Documnet salias-max-implicit-fields.
1398 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
1399 explicit_uses members.
1400 (get_or_create_used_part_for): Initialize new fields.
1401 (fieldoff_compare): New function.
1402 (create_overlap_variables_for): Count number of fields, use
1403 heuristic to determine whether to create subvars for vars with
1405 Sort the field list by offset and avoid creating duplicate SFT's.
1407 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
1409 * c.opt (-F): Remove trailing whitespace from help string.
1410 (-finput-charset): Use a tab to separate the switch name and help
1412 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
1413 (-ftree-vectorizer-verbose): Likewise.
1415 2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
1417 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
1418 a PHI argument where a use occurs instead of all PHI arguments.
1420 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
1422 * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
1425 2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
1427 * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
1428 tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
1429 config/bfin/bfin.h: Fix comment typos.
1431 2005-04-06 Ranjit Mathew <rmathew@hotmail.com>
1433 * doc/install.texi: Update the URL for Jacks.
1434 * doc/sourcebuild.texi: Likewise.
1436 2005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
1439 * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
1440 Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
1442 2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
1444 * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
1446 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
1448 * config/v850/v850-protos.h (override_options): Delete.
1449 * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
1450 (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
1451 (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
1452 (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
1453 (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
1454 (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
1455 (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
1456 (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
1457 (OVERRIDE_OPTIONS): Delete.
1458 (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
1459 (small_memory_info): Remove the value field.
1460 (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
1462 * config/v850/v850.c (small_memory): Remove the value field.
1463 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1464 (override_options): Delete.
1465 (v850_handle_memory_option, v850_handle_option): New functions.
1466 * config/v850/v850.opt: New file.
1468 2005-04-06 Geoffrey Keating <geoffk@apple.com>
1470 * config.host: Add a section for generic hosts, and a subsection
1471 for Darwin. Add a case for x86-darwin. Update ppc-darwin case.
1472 * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
1473 * config/host-darwin.h: New.
1474 * config/x-darwin: New.
1475 * config/i386/host-i386-darwin.c: New.
1476 * config/i386/x-darwin: New.
1477 * config/rs6000/host-darwin.c: Include host-darwin.h.
1478 (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
1479 (darwin_rs6000_gt_pch_use_address): Likewise.
1480 * config/rs6000/x-darwin: Change name of .o built, update
1481 dependencies for changes to rs6000/host-darwin.c.
1483 2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
1486 * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
1488 2005-04-06 Dorit Naishlos <dorit@il.ibm.com>
1490 * tree-vect-analyze.c (vect_analyze_loop_form): Call
1491 split_loop_exit_edge instead of loop_split_edge_with.
1493 2005-04-06 Paolo Bonzini <bonzini@gnu.org>
1495 * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
1496 UNSPEC_SET_VSCR): New constants, used throughout.
1498 (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
1500 (altivec_vspltis<VI_char>): ... this pattern, using
1501 a QImode const_int_operand for the immediate.
1502 (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
1505 2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
1508 * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
1510 2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
1512 * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
1514 2005-04-06 Ben Elliston <bje@au.ibm.com>
1516 * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
1517 DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
1518 macros as living in "this file" and not gcc.h.
1520 2005-04-06 Ben Elliston <bje@au.ibm.com>
1522 * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
1523 -ftree-live_range_split. Perhaps renamed at some point?
1525 2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
1528 * tree-ssa-loop-ivopts.c (generic_type_for): New function.
1529 (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
1531 2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
1533 * tree-flow.h (number_of_iterations_cond): Declaration removed.
1534 * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
1535 (number_of_iterations_special): New function.
1536 (number_of_iterations_exit): Use number_of_iterations_special.
1537 Use simplify_using_outer_evolutions only at -O3.
1538 (number_of_iterations_cond, tree_simplify_using_condition,
1539 simplify_using_initial_conditions, loop_niter_by_eval,
1540 compare_trees, can_count_iv_in_wider_type_bound,
1541 simplify_using_outer_evolutions): Use fold_build.
1543 2005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
1545 * doc/install.texi (Configuration): Document --with-java-home.
1547 2005-04-05 Richard Henderson <rth@redhat.com>
1551 * config/i386/i386.c (print_operand): Handle vector zeros.
1552 (ix86_split_to_parts): Handle CONST_VECTOR.
1553 (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
1554 (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
1555 what modes to tie for MMX and SSE registers.
1556 * config/i386/i386.h (MMX_REG_MODE_P): Remove.
1557 * config/i386/i386.md: Extend move 0 -> xor peephole to apply
1558 to vector modes as well.
1559 * config/i386/predicates.md (const0_operand): Handle VOIDmode
1560 properly as an input mode.
1562 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
1564 * tree-ssa-operands.c (verify_abort): Use %p for pointers.
1566 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
1568 * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
1570 2005-04-05 Jakub Jelinek <jakub@redhat.com>
1572 * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
1573 and local functions, set sse_nregs to 8 and float_in_sse.
1574 (function_arg_advance, function_arg): If float_in_sse, pass
1575 SFmode and DFmode arguments in SSE registers.
1576 * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
1578 * config/i386/i386.c (ix86_value_regno): Only optimize local functions
1579 of -funit-at-a-time.
1581 2005-04-05 Paolo Bonzini <bonzini@gnu.org>
1583 * config/i386/i386-protos.h (ix86_function_value): Accept two
1584 arguments, like the target macro.
1585 * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
1586 * config/i386/i386.c (ix86_function_value): Accept the second
1587 argument of the target macro.
1588 (ix86_function_ok_for_sibcall): Pass a function pointer to
1589 ix86_function_value.
1590 (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
1591 call to ix86_value_regno).
1592 (ix86_value_regno): Add support for returning floating point values
1595 2005-04-05 Jakub Jelinek <jakub@redhat.com>
1597 PR tree-optimization/20076
1598 * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
1599 that call __builtin_return or __builtin_apply_args.
1601 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
1603 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
1604 Use immediate use iterator.
1605 (stmt_is_bumper_for_loop): Use immediate use iterator.
1606 * predict.c (strip_builtin_expect): Use update_stmt.
1607 * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
1608 on all elements of a STATEMENT_LIST.
1609 (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
1610 (bsi_remove): Remove imm_use links and mark the stmt as modified.
1611 (bsi_replace): Mark stmt as modified and the update it.
1612 * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
1613 (expand_complex_libcal): Call update_stmt.
1614 (expand_complex_comparison): Call mark_stmt_modified.
1615 (expand_complex_operations_1): Call update_stmt_if_modified.
1616 (expand_vector_operations_1): Call mark_stmt_modified.
1617 * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
1618 compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
1619 add_immediate_use, redirect_immediate_use,
1620 redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
1621 dump_immediate_uses_for, debug_immediate_uses_for): Delete.
1622 (mark_new_vars_to_rename): Call update_stmt.
1623 * tree-dump.c (dump_option_value_in): Add "stmtaddr".
1624 * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
1626 (unmodify_stmt): Delete.
1627 (update_stmt): New. Force an update of a stmt.
1628 (update_stmt_if_modified): update a stmt if it is out of date.
1629 (get_stmt_operands): Verify stmt is NOT modified.
1630 (stmt_modified_p): Update comment.
1631 (delink_imm_use): Remove a use node from its immuse list.
1632 (link_imm_use_to_list): Link a use node to a specific list.
1633 (link_imm_use): Link a node to the correct list.
1634 (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
1635 it in the correct list, if appropriate.
1636 (link_imm_use_stmt): Link a use node, and set the stmt pointer.
1637 (relink_imm_use): Link a use node in place of another node in a list.
1638 (relink_imm_use_stmt): LInk a node in place of another node, and set
1640 (end_safe_imm_use_traverse): New. Terminate a safe immuse iterator.
1641 (end_safe_imm_use_p): New. Check for the end of a safe immuse iterator.
1642 (first_safe_imm_use): New. Initialize a safe immuse iterator.
1643 (next_safe_imm_use): New. Proceed to next safe immuse iterator value.
1644 (end_readonly_imm_use_p): New. Check for end of a fast immuse iterator.
1645 (first_readonly_imm_use): New. Initialize a fast immuse iterator.
1646 (next_readonly_imm_use): New. Get the next fast immuse iterator value.
1647 (has_zero_uses): New. Return true if there are no uses of a var.
1648 (has_single_use): New. Return true if there is only a single use of a
1650 (single_imm_use): New. Return the simgle immediate use.
1651 (num_imm_uses): New. Return the number of immediate uses.
1652 (get_v_must_def_ops): Use is now a pointer.
1653 (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
1654 get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
1656 (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
1657 (delink_stmt_imm_use): Delink all immuses from a stmt.
1658 (phi_arg_index_from_use): New. Return a phi arg index for a use.
1659 * tree-flow.h (struct dataflow_d): Delete.
1660 (immediate_use_iterator_d): New. Immediate use iterator struct.
1661 (FOR_EACH_IMM_USE_FAST): New. Macro for read only immuse iteration.
1662 (FOR_EACH_IMM_USE_SAFE): New. Macro for write-safe immuse iteration.
1663 (BREAK_FROM_SAFE_IMM_USE): New. Macro for earlyu exit from write-safe
1665 (struct stmt_ann_d): Remove dataflow_t from struct.
1666 * tree-if-conv.c (tree_if_conversion). Don't call free_df.
1667 (if_convertible_phi_p): Use FAST immuse iterator.
1668 (if_convertible_loop_p): Don't call compute_immediate_uses.
1669 (replace_phi_with_cond_modify_expr): Call update_stmt.
1670 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
1671 update_stmt_if_modified.
1672 (rewrite_all_into_ssa): Initialize ssa operands.
1673 * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
1674 compute_immediate_uses.
1675 * tree-optimize.c (execute_todo): Call verify_ssa whenever the
1676 ssa_property is available.
1677 (execute_one_pass): Change parameters passed to execute_todo.
1678 * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
1679 (remove_ssa_form): Call fini_ssa_operands.
1680 (insert_backedge_copies): Delete call to modify_stmt.
1681 * tree-phinodes.c (make_phi_node): Initialize use nodes.
1682 (release_phi_node): Delink any use nodes before releasing.
1683 (resize_phi_node): Relink any use nodes.
1684 (remove_phi_arg_num): Delink the use node.
1685 (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
1686 (remove_all_phi_nodes_for): Release phi node first.
1687 * tree-pretty-print.c (dump_generic_node): Print stmt address.
1688 * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
1689 (scalarize_use, scalarize_copy): Call update_stmt.
1690 * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
1691 (compute_points_to_and_addr_escape): Call mark_stmt_modified.
1692 * tree-ssa-cpp.c (need_imm_uses_for): Delete.
1693 (ccp_initialize): Remove call to compute_immediate_uses.
1694 (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
1695 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
1697 (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
1698 (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
1699 (eliminate_redundant_computations): Call mark_stmt_modified.
1700 (cprop_operand): Call mark_stmt_modified.
1701 (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
1702 * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
1703 (dse_optimize_stmt): Use new immuse interface.
1704 (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
1705 * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
1706 (substitute_single_use_vars): Use new immuse interface.
1707 (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
1708 and compute_immediate_uses.
1709 * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
1711 (rewrite_mem_refs): Call update_stmt.
1712 (determine_lsm): Remove call to compute_imm_uses and free_df.
1713 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
1714 (try_unroll_loop_completely): Call update_stmt.
1715 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
1716 (rewrite_use_compare): Call update_stmt.
1717 (compute_phi_arg_on_exit): Insert each stmt before trying to process.
1718 (rewrite_use) : Call update_stmt.
1719 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
1720 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
1722 * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
1723 (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
1724 (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
1726 (initialize_vuse_operand): New. Initialize a vuse operand.
1727 (initialize_v_may_def_operand): New. Initialize a maydef operand.
1728 (initialize_v_must_def_operand): New. Initialize a mustdef operand.
1729 (finalize_ssa_defs): Use stmt parameter.
1730 (correct_use_link): Ensure a use node is in the correct list, and has
1731 the correct stmt pointer.
1732 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
1733 finalize_ssa_v_must_defs): Also initialize use nodes.
1734 (finalize_ssa_stmt_operands): Pass extra stmt operands.
1735 (build_ssa_operands): Seperate parsing from final operand construction.
1736 (parse_ssa_operands): New. Parse entry point for operand building.
1737 (swap_tree_operands): New. Swap 2 tree operands.
1738 (update_stmt_operands): Ranamed from get_stmt_operands. Always builds
1740 (get_expr_operands): Call swap_tree_operands when needed.
1741 (copy_virtual_operands): Use initialize routines for virtual use ops.
1742 (create_ssa_artficial_load_stmt): Add extra stmt parameter.
1743 (verify_abort): New. Issue imm_use error.
1744 (verify_imm_links): New Verify imm_use links for a var.
1745 (dump_immediate_uses_for): New. Dump imm_uses for a var to file.
1746 (dump_immediate_uses): New. Dump imm_uses for all vars to file.
1747 (debug_immediate_uses): New. Dump imm_uses for all vars to stderr.
1748 (debug_immediate_uses_for): New. Dump imm_uses for a var to stderr.
1749 * tree-ssa-operands.h (struct use_operand_ptr): Delete.
1750 (NULL_USE_OPERAND_P) Define.
1751 (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
1753 (struct vuse_operand_type): New struct.
1754 (SET_USE): Call set_ssa_use_from_ptr.
1756 (PHI_ARG_INDEX_FROM_USE): Define.
1757 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
1758 argument via SET_USE, not PHI_ARG_DEF_TREE.
1759 * tree-ssa-pre.c (eliminate): Call update_stmt.
1760 * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators. Don't
1762 * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
1763 (nearest_common_dominator_of_uses): Use imm_use iterator.
1764 (statement_sink_location): Use imm_use iterator and interface.
1765 (execute_sink_code): Don't call compute_immediate_uses or free-df.
1766 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
1767 PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
1768 * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
1769 (verify_ssa): Ensure no stmt is marked modify after optimization pass
1770 if new parameter is true.
1771 (init_tree_ssa): Don't initialize operand cache here.
1772 (delete_tree_ssa): Don't destroy operand cache here.
1773 (propagate_into_addr): Pass in a use pointer, return true if anything
1775 (replace_immediate_uses): Use imm_use iterator, call update_stmt.
1776 (check_phi_redundancy): Use imm_use iterator.
1777 (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
1779 * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
1780 (release_ssa_name): Delink node and all elements in its imm_use list.
1781 * tree-tailcall.c (adjust_return_value): Call update_stmt.
1782 * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
1783 * tree-vectorizer.c (need_imm_uses_for): Delete.
1784 (vectorize_loops): Dont call compute_immediate_uses or free_df.
1785 * tree.h (struct ssa_imm_use_d): Define.
1786 (SSA_NAME_IMM_USE_NODE): Define.
1787 (struct tree_ssa_name): Add imm_use node.
1789 (PHI_ARG_IMM_USE_NODE): Define.
1790 (struct phi_arg_d): Add imm_use node.
1791 (struct tree_phi_node): Remove struct dataflow_d element.
1792 (TDF_STMTADDR): Define.
1794 2005-04-05 Dale Johannesen <dalej@apple.com>
1796 * doc/invoke.texi (Optimization Options): Remove
1797 duplicate -fcse-follow-jumps. Add -fweb.
1798 (-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
1799 (-fivcanon): Fix spelling (-ftree-loop-ivcanon).
1801 2005-04-05 Per Bothner <per@bothner.com>
1803 * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
1804 to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
1805 (warn_uninit): Get EXPR_LOCUS from context now instead.
1806 This fixes a USE_MAPPED_LOCATION testsuite failure.
1808 * tree-ssa.c (warn_uninitialized_var): Remove useless local.
1810 2005-04-05 Per Bothner <per@bothner.com>
1812 * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
1813 of the artification 'return 0' in main() to BUILTINS_LOCATION.
1814 * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
1817 2004-04-05 Devang Patel <dpatel@apple.com>
1819 * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
1820 (lhsr<mode>3): ... new name.
1821 (altivec_vsra<VI_char>): Rename to ..
1822 (ashr<mode>3): ... new name.
1823 * config/rs6000/rs6000.c (builtin_description): Rename shift
1826 2004-04-05 Paolo Bonzini <bonzini@gnu.org>
1828 * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
1829 gen_lowpart_for_combine.
1830 * cse.c (gen_lowpart_if_possible): Move...
1831 * rtlhooks.c (gen_lowpart_if_possible): ... here. Also try
1833 (gen_lowpart_no_emit_general): Use it.
1835 2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
1837 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
1840 2005-04-05 Paolo Bonzini <bonzini@gnu.org>
1842 * system.h: Fix typo.
1844 2005-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
1846 * config/bfin/bfin-modes.def: New file.
1847 * config/bfin/bfin-protos.h: New file.
1848 * config/bfin/bfin.c: New file.
1849 * config/bfin/bfin.h: New file.
1850 * config/bfin/bfin.md: New file.
1851 * config/bfin/bfin.opt: New file.
1852 * config/bfin/crti.s: New file.
1853 * config/bfin/crtn.s: New file.
1854 * config/bfin/elf.h: New file.
1855 * config/bfin/lib1funcs.asm: New file.
1856 * config/bfin/predicates.md: New file.
1857 * config/bfin/t-bfin: New file.
1858 * config/bfin/t-bfin-elf: New file.
1859 * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
1860 Document new attributes.
1861 (interrupt, interrupt_handler, saveall): Update documentation for
1863 * doc/install.texi (Specific): Add entry for the Blackfin.
1864 * doc/invoke.texi (Blackfin Options): New section.
1865 * doc/md.texi (Blackfin family): New section to document constraints.
1866 * config.gcc: Add bfin*-* and bfin*-elf configurations.
1868 2005-04-05 Olivier Hainque <hainque@adacore.com>
1870 * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
1871 match what the system unwinder expects.
1872 * config/mips/mips.c (mips_frame_set): If we're saving the return
1873 address register and the dwarf return address column number differs
1874 from the hard register number, adjust the note reg to refer to the
1877 2004-04-05 Richard Sandiford <rsandifo@redhat.com>
1879 * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
1880 * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
1881 (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1882 (processor_type): New enum.
1883 (mn10300_processor): New variable.
1884 (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
1885 (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
1886 * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1887 (PROCESSOR_DEFAULT): New macro.
1888 * config/mn10300/mn10300.c (mn10300_processor): New variable.
1889 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1890 (mn10300_handle_option, mn10300_override_options): New functions.
1891 * config/mn10300/mn10300.opt: New file.
1893 2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
1894 Sebastian Pop <sebastian.pop@cri.ensmp.fr>
1896 PR tree-optimization/19903
1897 * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
1898 that don't fit in their type after conversion.
1900 2005-04-05 Uros Bizjak <uros@kss-loka.si>
1903 * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
1904 (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
1905 Allocate local stack slots here. Set ix86_optimize_mode_switching.
1906 flag here. Implement using define_insn_and_split.
1907 (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
1908 (frndintxf2_mask_pm_i387): New insn patterns.
1909 (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
1910 Do not set ix86_optimize_mode_switching flag.
1911 (ceilsf2, ceildf2, ceilxf2): Same.
1912 (btruncsf2, btruncdf2, btruncxf2): Same.
1913 (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
1915 2005-04-05 Ian Lance Taylor <ian@airs.com>
1918 * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
1919 i386_pe_record_external_function.
1920 (i386_pe_record_external_function): Update declaration.
1921 * config/i386/winnt.c (struct extern_list): Add decl field.
1922 (i386_pe_record_external_function): Add decl parameter.
1923 (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
1925 * config/i386/i386-protos.h (i386_pe_record_external_function):
1928 2005-04-05 Kazu Hirata <kazu@cs.umass.edu>
1930 * config/m68k/m68k-protos.h: Add a prototype for
1931 valid_dbcc_comparison_p_2.
1932 * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
1933 extend_operator, const_uint32_operand, const_sint32_operand,
1934 general_src_operand, nonimmediate_src_operand,
1935 memory_src_operand, post_inc_operand, pre_dec_operand,
1936 pcrel_address): Move to predicates to predicates.md.
1937 * config/m68k/m68k.h (PREDICATE_CODES): Remove.
1938 * config/m68k/m68k.md: Include predicates.md.
1939 * config/m68k/predicates.md: New.
1941 2005-04-04 Roger Sayle <roger@eyesopen.com>
1943 * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
1945 * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
1947 2005-04-04 Ian Lance Taylor <ian@airs.com>
1949 * c-typeck.c (struct c_switch): Rename switch_stmt field to
1951 (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
1952 (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
1953 (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
1954 Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
1955 * c-common.c (c_do_switch_warnings_1): New static function broken
1956 out of c_do_switch_warnings.
1957 (c_do_switch_warnings): Call c_do_switch_warnings_1.
1958 (c_do_switch_expr_warnings): New function.
1959 * c-common.h (c_do_switch_expr_warnings): Declare.
1961 2005-04-04 David Edelsohn <edelsohn@gnu.org>
1962 Daniel Jacobowitz <dan@codesourcery.com>
1964 * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
1966 * rtlanal.c (may_trap_p): Same.
1968 2005-04-04 Dale Johannesen <dalej@apple.com>
1970 * ChangeLog: remove reference to ChangeLog.12.
1972 2005-04-05 Hans-Peter Nilsson <hp@axis.com>
1974 CRIS epilogue as RTL.
1975 * config/cris/cris.md: Change all 0 in unspec 0 to
1977 (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
1978 ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
1980 ("return"): Change to define_expand. Call cris_expand_return for
1982 ("*return_expanded"): New pattern.
1983 ("epilogue"): New define_expand.
1984 * config/cris/cris.h (PREDICATE_CODES): Add
1985 cris_load_multiple_op.
1986 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
1988 (enum cris_retinsn_type): New.
1989 (struct machine_function): New member return_type.
1990 (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
1991 (cris_target_asm_function_epilogue): Remove, moving RTLified
1993 (cris_expand_epilogue): New function.
1994 (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
1995 (cris_gen_movem_load, cris_load_multiple_op)
1996 (cris_return_address_on_stack_for_return, cris_expand_return): New
1998 (cris_target_asm_function_prologue)
1999 (cris_initial_frame_pointer_offset): Call
2000 cris_reg_saved_in_regsave_area instead of complicated expression.
2001 Call cris_return_address_on_stack instead of an expression.
2002 (cris_print_operand) <case 'o', case 'O'>: New cases.
2003 (cris_return_address_on_stack): Change return-type to bool.
2004 (cris_simple_epilogue): Ditto. Return false if registers are
2006 * config/cris/cris-protos.h (cris_simple_epilogue)
2007 (cris_return_address_on_stack): Adjust prototype return type.
2008 (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
2009 (cris_return_address_on_stack_for_return): New prototypes.
2011 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
2013 * config/frv/frv.h (PREDICATE_CODES): Add CONST to
2014 gpr_or_int12_operand.
2016 * config/frv/frv-protos.h: Add a prototype to
2017 frv_legitimate_memory_operand and frv_const_unspec_p.
2018 (frv_unspec): Move from frv.c.
2019 * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
2020 (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
2021 (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
2022 gpr_or_fpr_operand, gpr_or_int12_operand,
2023 gpr_fpr_or_int12_operand, fpr_or_int6_operand,
2024 gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
2025 int6_operand, int5_operand, uint5_operand, uint4_operand,
2026 uint1_operand, int_2word_operand, uint16_operand,
2027 upper_int16_operand, integer_register_operand,
2028 gpr_no_subreg_operand, fpr_operand, even_reg_operand,
2029 odd_reg_operand, even_gpr_operand, odd_gpr_operand,
2030 quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
2031 dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
2032 move_destination_operand, movcc_fp_destination_operand,
2033 frv_function_symbol_referenced_p, move_source_operand,
2034 condexec_dest_operand, condexec_source_operand,
2035 reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
2036 const_unspec_operand, gpr_or_memory_operand,
2037 gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
2038 icc_operand, fcc_operand, cc_operand, icr_operand,
2039 fcr_operand, cr_operand, call_operand, sibcall_operand,
2040 symbolic_operand, relational_operator,
2041 integer_relational_operator, float_relational_operator,
2042 ccr_eqne_operator, minmax_operator,
2043 condexec_si_binary_operator, condexec_si_media_operator,
2044 condexec_si_divide_operator, condexec_si_unary_operator,
2045 condexec_sf_conv_operator, condexec_sf_add_operator,
2046 condexec_memory_operand, intop_compare_operator, acc_operand,
2047 even_acc_operand, quad_acc_operand, accg_operand: Move to
2049 * config/frv/frv.h (PREDICATE_CODES): Remove.
2050 * config/frv/frv.md: Include predicates.md.
2051 * config/frv/predicates.md: New.
2053 2004-04-04 Richard Sandiford <rsandifo@redhat.com>
2056 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
2057 * tree-ssa-loop-ivopts.c: Include langhooks.h.
2058 (add_standard_iv_candidates_for_size): New function, extracting code
2059 from add_standard_iv_candidates and parameterizing it by type size.
2060 (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
2062 2004-04-04 Richard Sandiford <rsandifo@redhat.com>
2064 * system.h (GCOV_SIZE_TYPE): Unposion.
2065 * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
2066 (GCOV_TYPE_SIZE): ...this new macro.
2067 * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
2068 * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
2069 (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
2070 (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
2071 (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
2072 instead of unsigned_intSI_type_node.
2073 * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
2074 (rtl_gen_one_value_profiler_no_edge_manipulation)
2075 (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
2076 * value-prof.c: Include coverage.h.
2078 2005-04-02 Daniel Berlin <dberlin@dberlin.org>
2079 Diego Novillo <dnovillo@redhat.com>
2081 Fix PR tree-optimization/20703
2082 Fix PR tree-optimization/20725
2084 * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
2085 (create_expression_by_pieces): Ditto.
2086 (valid_in_set): Ditto. Also handle tcc_declaration.
2087 (find_or_generate_expression): Handle comparison class.
2088 (insert_into_preds_of_block): Ditto.
2089 (insert_aux): Ditto.
2090 (create_value_expr_from): Handle comparison class, recursively
2091 handle reference nodes.
2092 (compute_avail): Handle comparison classes, rewrite a little cleaner.
2093 (execute_pre): Fix spacing.
2094 (do_fre): Renamed to execute_fre.
2096 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2098 * doc/invoke.texi (SPARC options): Document that
2099 -mlittle-endian is not supported on Linux either.
2101 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2105 * config.gcc (Obsolete configurations): Remove
2106 sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
2107 (sparclite-*-coff*): Delete.
2108 (sparclite-*-elf*): Likewise.
2109 (sparc86x-*-elf*): Likewise.
2110 (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
2111 * config/sparc/lite.h: Delete.
2112 * config/sparc/litecoff.h: Likewise.
2113 * config/sparc/liteelf.h: Likewise.
2114 * config/sparc/sp86x-elf.h: Likewise.
2115 * config/sparc/t-sparclite: Likewise.
2116 * config/sparc/t-sp86x: Likewise.
2118 2005-04-04 Adrian Straetling <straetling@de.ibm.com>
2120 * config/s390/s390-protos.h: (s390_comparison,
2121 s390_alc_comparison, s390_slb_comparison, const0_operand,
2122 consttable_operand, larl_operand, s_operand,
2123 shift_count_operand, bras_sym_operand, load_multiple_operation,
2124 store_multiple_operation, s390_plus_operand): Remove prototypes.
2125 (s390_legitimate_address_without_index_p): New prototype.
2126 * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
2128 (s390_comparison, s390_alc_comparison, s390_slb_comparison,
2129 const0_operand, consttable_operand, larl_operand, s_operand,
2130 shift_count_operand, bras_sym_operand, load_multiple_operation,
2131 store_multiple_operation, s390_plus_operand): Move to
2133 (check_mode): Remove.
2134 (s390_branch_condition_mask): Remove 'static'. Move prototype to
2136 (s390_legitimate_address_without_index_p): New.
2137 * config/s390/s390.h (PREDICATE_CODES): Remove.
2138 * config/s390/s390.md: Include predicates.md.
2139 * config/s390/predicates.md: New.
2141 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2144 * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
2145 * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
2146 (NEED_INDICATE_EXEC_STACK): Define to 1.
2147 * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
2148 (NEED_INDICATE_EXEC_STACK): Define to 1.
2149 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
2150 (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
2151 (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
2152 (pic_helper_emitted_p): New global.
2153 (emit_pic_helper): New function extracted from...
2154 (load_pic_register): ...here. Add 'delay_pic_helper' parameter.
2155 Do not call emit_pic_helper if delay_pic_helper is true.
2156 (sparc_expand_prologue): Pass 'false' to load_pic_register.
2157 (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
2158 (sparc_file_end): New function.
2160 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
2162 * config/mcore/mcore-protos.h: Remove the prototypes for
2163 mcore_arith_reg_operand, mcore_general_movsrc_operand,
2164 mcore_general_movdst_operand, mcore_reload_operand,
2165 mcore_arith_J_operand, mcore_arith_K_operand,
2166 mcore_arith_K_operand_not_0, mcore_arith_M_operand,
2167 mcore_arith_K_S_operand, mcore_arith_imm_operand,
2168 mcore_arith_any_imm_operand, mcore_arith_O_operand,
2169 mcore_literal_K_operand, mcore_addsub_operand,
2170 mcore_compare_operand, mcore_load_multiple_operation,
2171 mcore_store_multiple_operation, mcore_call_address_operand.
2172 Add a prototype for const_ok_for_mcore.
2173 * config/mcore/mcore.c (mcore_call_address_operand,
2174 mcore_general_movsrc_operand, mcore_general_movdst_operand,
2175 mcore_arith_reg_operand, mcore_reload_operand,
2176 mcore_arith_J_operand, mcore_arith_K_operand,
2177 mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
2178 mcore_arith_M_operand, mcore_arith_imm_operand,
2179 mcore_arith_any_imm_operand, mcore_arith_O_operand,
2180 mcore_literal_K_operand, mcore_addsub_operand,
2181 mcore_compare_operand, mcore_load_multiple_operation,
2182 mcore_store_multiple_operation): Move to predicates.md.
2183 (const_ok_for_mcore): Export.
2184 * config/mcore/mcore.h (PREDICATE_CODES): Remove.
2185 * config/mcore/mcore.md: Include predicates.md.
2186 * config/mcore/predicates.md: New.
2188 * config/mcore/predicates.md: Fix a comment typo.
2190 2005-04-04 Andreas Krebbel <krebbel1@de.ibm.com>
2191 Adrian Straetling <straetling@de.ibm.com>
2193 * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
2194 * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
2195 * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
2197 ("imul"): Removed from "type" attribute.
2198 ("*muldi3_sign", "muldi3"): Changed type to imuldi.
2199 ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
2200 Changed type to imulsi.
2201 ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
2203 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
2205 * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
2206 (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
2207 (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
2208 (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
2209 (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
2210 (TARGET_SWITCHES, mcore_stack_increment_string)
2211 (TARGET_OPTIONS): Delete.
2212 (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
2213 than *_BIT constants.
2214 (TARGET_8ALIGN): #undef old definition before redefining to 1.
2215 * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
2216 (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
2217 (mcore_override_options): Delete mcore_stack_increment code.
2218 Change use of M340_BIT to MASK_M340.
2219 * config/mcore/mcore.opt: New file.
2221 2005-04-04 Ian Lance Taylor <ian@airs.com>
2223 * config/arm/arm.c (replace_symbols_in_block): Remove static
2226 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
2228 * config/fr30/fr30-protos.h: Remove the prototypes for
2229 stack_add_operand, add_immediate_operand,
2230 high_register_operand, low_register_operand, call_operand,
2231 di_operand, and nonimmediate_di_operand.
2232 * config/fr30/fr30.c (stack_add_operand,
2233 add_immediate_operand, high_register_operand,
2234 low_register_operand, call_operand, di_operand,
2235 nonimmediate_di_operand): Move to predicates.md.
2236 * config/fr30/fr30.h (PREDICATE_CODES): Remove.
2237 * config/fr30/fr30.md: Include predicates.md.
2238 * config/fr30/predicates.md: New.
2240 * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
2241 LABEL_REF to mcore_general_movsrc_operand. Add SYMBOL_REF to
2242 mcore_call_address_operand.
2244 * config/sh/sh.h (PREDICATE_CODES): Add CONST to
2245 general_movsrc_operand.
2247 2005-04-04 Alan Modra <amodra@bigpond.net.au>
2249 * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
2252 2005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
2255 * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
2258 2005-04-04 Richard Henderson <rth@redhat.com>
2259 Jakub Jelinek <jakub@redhat.com>
2261 PR rtl-optimization/16104
2262 * fold-const.c (fold_unary): Fix folding of vector conversions.
2264 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
2266 * config.gcc (xstormy16-*-elf): Set extra_options.
2267 * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
2268 * config/stormy16/stormy16.opt: New file.
2270 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
2272 * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
2273 (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
2274 (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
2275 (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
2276 (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
2277 (TARGET_UNIX_ASM): Delete.
2278 (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
2279 * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
2280 * config/pdp11/pdp11.c (pdp11_handle_option): New function.
2281 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2282 * config/pdp11/pdp11.opt: New file.
2284 2005-04-03 Roger Sayle <roger@eyesopen.com>
2285 Alexandre Oliva <aoliva@redhat.com>
2288 * fold-const.c (non_lvalue): Split tests into...
2289 (maybe_lvalue_p): New function.
2290 (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
2291 C++ front-end prior to lowering into gimple form.
2293 2005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2295 * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
2296 BUILT_IN_STRNCASECMP): New.
2297 * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
2300 2005-04-03 Richard Earnshaw <richard.earnshaw@arm.com>
2303 * arm.md (addsi3_compare0_for_combiner): Delete.
2304 (addsi3_compare0_scratch_for_combiner): Delete.
2305 (cmpsi_neg_shiftsi): Delete.
2306 (compare_negsi_si): New pattern.
2307 (cmpsi_negshiftsi_si): New pattern.
2308 (negated_cbranchsi4): Restrict to equality_operator.
2310 * arm.md (movhi_insn_arch4): delete trailing white space from assembler
2313 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
2315 * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
2318 * doc/install.texi: Fix a typo.
2320 2005-04-03 Steven Bosscher <stevenb@suse.de>
2323 * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
2324 a computed goto if the edge to the computed goto block has
2325 incoming abnormal edges. Clarify how the function works.
2327 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
2329 * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
2330 * passes.c (open_dump_file, rest_of_handle_final): Likewise.
2331 * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
2332 hash_scan_set, reg_set_between_after_reload_p,
2333 reg_used_between_after_reload_p, get_avail_load_store_reg,
2334 eliminate_partially_redundant_load): Likewise.
2335 * postreload.c (reload_cse_simplify_set,
2336 reload_combine_note_use): Likewise.
2337 * predict.c (predict_insn, expected_value_to_br_prob,
2338 propagate_freq, expensive_function_p): Likewise.
2339 * print-rtl.c (print_rtx): Likewise.
2340 * profile.c (instrument_edges, instrument_values,
2341 compute_branch_probabilities, branch_prob, union_groups,
2342 tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
2343 * protoize.c (in_system_include_dir, file_could_be_converted,
2344 file_normally_convertible, gen_aux_info_file, seek_to_line,
2345 do_cleaning): Likewise.
2346 * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
2347 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
2348 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
2350 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
2352 * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
2353 * modulo-sched.c (undo_replace_buff_elem): New structure.
2354 (kernel_number_of_cycles, ps_unschedule_node,
2355 undo_generate_reg_moves,free_undo_replace_buff,
2356 undo_permute_partial_schedule, loop_single_full_bb_p,
2357 SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
2358 build_loops_structure, get_sched_window): New.
2359 (generate_reg_moves): Return undo_replace_buff_elem and other
2361 (generate_prolog_epilog): Remove old loop versioning.
2362 (sms_schedule): Use loop information and loop_version.
2363 (sms_schedule_by_order): Split part of it to get_sched_window.
2364 * passes.c (rest_of_handle_sms): call cfg_layout_initialize
2365 cfg_layout_finalize and free_dominance_info before/after SMS.
2367 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
2369 * cfghooks.c (lv_flush_pending_stmts,
2370 cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
2371 lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
2372 * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
2373 lv_add_condition_to_bb,
2374 lv_adjust_loop_header_phi, extract_cond_bb_edges,
2375 flush_pending_stmts): New in cfg_hooks structure.
2376 (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
2377 extract_cond_bb_edges, lv_adjust_loop_header_phi,
2378 lv_add_condition_to_bb): New declarations.
2379 * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
2381 (loop_version): Declare.
2382 * cfgloopmanip.c (cfghooks.h): Include.
2383 (duplicate_loop_to_header_edge): Change return type to bool.
2384 (loop_version, lv_adjust_loop_entry_edge): Move here.
2385 * cfgrtl.c (cfgloop.h): Include.
2386 (rtl_verify_flow_info_1): Fix.
2387 (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
2388 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
2390 * tree-cfg.c (tree_lv_adjust_loop_header_phi,
2391 tree_lv_add_condition_to_bb): New.
2392 (tree_cfg_hooks): Add new hooks to initialization.
2393 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
2394 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
2396 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
2398 * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
2399 xstormy16_below100_or_register,
2400 xstormy16_splittable_below100_or_register, and
2401 nonimmediate_nonstack_operand.
2403 * config/stormy16/stormy16-protos.h: Remove the prototypes for
2404 xstormy16_ineqsi_operator, equality_operator,
2405 inequality_operator, shift_operator,
2406 xstormy16_below100_operand, xstormy16_below100_or_register,
2407 xstormy16_splittable_below100_or_register,
2408 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
2409 * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
2410 equality_operator, inequality_operator,
2411 xstormy16_below100_operand, xstormy16_below100_or_register,
2412 xstormy16_splittable_below100_or_register,
2413 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
2414 nonimmediate_nonstack_operand, shift_operator): Move to
2416 * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
2417 * config/stormy16/stormy16.md: Include predicates.md.
2418 * config/stormy16/predicates.md: New.
2420 2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
2422 * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
2423 small_int, large_int, reg_or_0_operand, simple_memory_operand,
2424 equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
2425 move_operand, power_of_2_operand): Move to predicates.md.
2426 * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
2427 PREDICATE_CODE): Remove.
2428 * config/iq2000/iq2000.md: Include predicates.md.
2429 * config/iq2000/predicates.md: New.
2431 2005-04-02 Richard Sandiford <rsandifo@redhat.com>
2433 * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
2434 (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
2435 (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
2436 (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
2437 (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
2438 (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
2439 (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
2440 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
2441 (TARGET_M68HC11): Delete.
2442 (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
2443 * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
2444 * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
2445 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
2446 (nb_soft_regs): Delete.
2447 (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
2448 (m68hc11_override_options): Remove the code that caters for MASK_M6811
2449 and MASK_M6812 being set simultaneously. Change the code that sets
2450 the default m68hc11_soft_reg_count to use integers instead of strings.
2451 (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
2452 m68hc11_soft_reg_count (which now has an int type) as the number
2454 * config/m68hc11/m68hc11.opt: New file.
2456 2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
2458 * config/fr30/fr30.h (PREDICATE_CODES): Remove
2459 fp_displacement_operand, sp_displacement_operand.
2461 * config/m68hc11/m68hc11-protos.h: Add a prototype for
2463 Remove the prototypes for tst_operand, cmp_operand,
2464 stack_register_operand, d_register_operand,
2465 hard_addr_reg_operand, splitable_operand,
2466 m68hc11_logical_operator, m68hc11_arith_operator,
2467 m68hc11_non_shift_operator, m68hc11_shift_operator,
2468 m68hc11_unary_operator, m68hc11_eq_compare_operator,
2469 non_push_operand, hard_reg_operand, and
2470 reg_or_some_mem_operand.
2471 * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
2473 (tst_operand, cmp_operand, non_push_operand,
2474 splitable_operand, reg_or_some_mem_operand,
2475 stack_register_operand, d_register_operand,
2476 hard_addr_reg_operand, hard_reg_operand,
2477 m68hc11_eq_compare_operator, m68hc11_logical_operator,
2478 m68hc11_arith_operator, m68hc11_non_shift_operator,
2479 m68hc11_shift_operator, m68hc11_unary_operator): Move to
2481 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
2482 * config/m68hc11/m68hc11.md: Include predicates.md.
2483 * config/m68hc11/predicates.md: New.
2485 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
2488 * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
2489 change checked in along with 2005-03-03's patch for debug/20253.
2490 * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
2491 (remap_decl): Insert type decl in map earlier.
2493 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
2495 PR tree-optimization/20640
2496 * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
2497 post-dominator if it has phi nodes.
2498 (eliminate_unnecessary_stmts): Remove dead phis in all blocks
2499 before dead statements.
2501 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
2504 * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
2506 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
2508 PR rtl-optimization/20290
2509 * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
2510 in every iteration if the entry point is the exit test.
2512 2005-04-02 Hans-Peter Nilsson <hp@axis.com>
2514 * config/cris/cris.md (attribute "length"): Define.
2516 2005-04-02 Geoffrey Keating <geoffk@apple.com>
2518 * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
2519 (word_offset_memref_operand): New.
2520 * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
2521 (indexed_or_indirect_operand): Delete.
2522 * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
2523 (indexed_or_indirect_operand): Delete.
2525 * config/rs6000/t-darwin8: Comment out ppc64 multilib.
2528 * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
2531 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
2532 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
2534 2005-04-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2536 * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
2538 2005-04-01 Ian Lance Taylor <ian@airs.com>
2540 * gcc.c: Don't include <sys/resource.h> or declare getrusage.
2541 (rus, prus): Remove static variables.
2542 (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
2543 (process_command): Permit report_times and use_pipes together.
2545 2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
2547 * c-decl.c (validate_proto_after_old_defn): Look at
2548 TYPE_MAIN_VARIANT of argument types.
2550 2005-04-01 Paul Brook <paul@codesourcery.com>
2552 * config/arm/arm.c (thumb_call_via_label): Include space for SP.
2553 (arm_output_function_epilogue): Allow call_via_SP.
2554 (thumb_call_via_reg, arm_file_end): Ditto.
2555 * config/arm/arm.h (struct machine_function): Include space for SP.
2556 (thumb_call_via_label): Update declaration.
2558 2005-04-01 Ian Lance Taylor <ian@airs.com>
2560 * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
2561 doing a peephole optimization, once again put any notes in the
2564 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2566 * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
2568 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
2570 * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
2571 (block_alloc, find_free_reg): Likewise.
2572 * loop-doloop.c (doloop_modify): Likewise.
2573 * loop-invariant.c (record_use): Likewise.
2574 * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
2575 get_iv_value, canon_condition, eliminate_implied_condition,
2576 eliminate_implied_condition, simplify_using_initial_values,
2577 shorten_into_mode, canonicalize_iv_subregs,
2578 iv_number_of_iterations): Likewise.
2579 * loop-unroll.c (expand_var_during_unrolling): Likewise.
2580 * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
2581 unswitch_loop): Likewise.
2582 * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
2583 move_movables, replace_call_address, find_and_verify_loops,
2584 rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
2585 record_giv, final_giv_value, general_induction_var,
2586 simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
2587 loop_giv_dump): Likewise.
2589 * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
2590 GCOV_CHECK_WRITING): Remove.
2591 (gcov_position, gcov_rewrite): Use gcc_assert.
2592 * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
2593 gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
2594 * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
2597 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2599 * tree-inline.c: Fix a typo.
2601 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
2603 * configure.ac (enable-checking): Explicitly set all variables for
2604 collective switch values. Alphabetize variables. Rename
2605 ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as
2607 * doc/install.texi (enable-checking): Update documentation.
2608 * configure: Rebuilt.
2610 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2612 * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
2615 2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
2617 * arm.c (adjacent_mem_locations): Reject volatile memory refs.
2618 Also reject cases where this pattern will cause load delay stalls
2619 unless optimizing for size and it will produce a shorter sequence.
2620 * arm.md (arith_adjacent_mem): Make better use of ldm addressing
2621 variants to avoid pre-adjusting the base when possible.
2623 2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
2625 * arm.md (minmax_arithsi): Reject all eliminable registers, not just
2626 the frame and argument pointers.
2627 (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
2628 (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
2629 (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
2630 (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
2631 (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
2632 (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
2634 2005-04-01 Danny Smith <dannysmith@users.sourceforge.net>
2636 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
2637 with entry for selectany attribute.
2638 * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
2640 * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
2641 (i386_pe_asm_named_section): Handle sections generated by
2642 selectany attribute.
2643 * doc/extend.texi (selectany): Document attribute.
2645 2005-04-01 Paolo Bonzini <bonzini@gnu.org>
2646 Jan Hubicka <jh@suse.cz>
2648 * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
2649 to fix addresses involving EBP and ESP.
2650 (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
2651 for SUBREGed registers.
2652 (legitimate_address_p): Accept SUBREGed registers.
2654 2005-04-01 Jakub Jelinek <jakub@redhat.com>
2657 * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
2658 (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
2661 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2663 * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2665 2005-04-01 James E Wilson <wilson@specifixinc.com>
2668 * dwarf2out.c (rtl_for_decl_init): New function.
2669 (rtl_for_decl_location): Extracted from here.
2670 (tree_add_const_value_attribute): Call rtl_for_decl_init and
2671 add_const_value_attribute. Delete initializer_constant_valid_p call.
2673 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2675 * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
2676 lambda-code.c, loop.c, machmode.def, mips-tfile.c,
2677 modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
2678 tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
2679 config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
2680 config/i386/i386.md, config/rs6000/predicates.md,
2681 config/rs6000/rs6000.c, config/s390/fixdfdi.h,
2682 config/s390/s390.c, config/stormy16/stormy16.c,
2683 config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
2686 2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
2689 * gimplify.c (gimplify_expr): Create a temporary for lvalue
2690 COND_EXPR and CALL_EXPR.
2692 2005-03-31 Vladimir Makarov <vmakarov@redhat.com>
2695 * genautomata.c (first_cycle_unit_presence): Check all alternative
2696 states for unit presence.
2698 * doc/md.texi: Remove remark about impossibility to query unit
2699 presence in non nondeterministic automaton state.
2701 * config/ia64/ia64.c (get_template): Change order of unit querying.
2703 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2705 * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
2708 2005-03-31 Zdenek Dvorak <dvorakz@suse.cz>
2710 * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
2711 flag for edges outside any loops.
2713 2005-03-31 Janis Johnson <janis187@us.ibm.com>
2715 * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2717 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2719 * tree-ssa-alias.c: Follow spelling conventions.
2720 * doc/tree-ssa.texi: Fix a typo.
2722 2005-03-31 J"orn Rennecke <joern.rennecke@st.com>
2724 * postreload-gcse.c: Include target.h.
2725 (gcse_after_reload_main): Return early if we cannot modify jumps.
2726 * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2728 2005-03-31 David Edelsohn <edelsohn@gnu.org>
2730 * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
2731 expensive operations.
2733 2005-03-31 Ian Lance Taylor <ian@airs.com>
2735 * collect2.c (lderrout): New variable.
2736 (collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
2737 if it is set, to stderr.
2738 (handler): Unlink lderrout if it is set.
2739 (dump_file): Add "to" parameter. Change all callers.
2740 (main): Initialize lderrout.
2741 (collect_execute): Add errname parameter. Change all callers.
2742 Rename redir parameter to outname. Never pass
2743 PEX_STDERR_TO_STDOUT to pex_run.
2744 * collect2.h (collect_execute, dump_file): Update declarations.
2745 * tlink.c (tlink_execute): Add errname parameter. Change all
2747 (do_tlink): Check lderrout as well as ldout.
2749 2005-03-31 Caroline Tice <ctice@apple.com>
2751 * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
2752 (bb-reorder.o): Add errors.h to list of requirements.
2753 (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
2754 profiledbootstrap flags.
2755 * bb-reorder.c (errors.h): Add new include.
2756 (struct bbro_basic_block_data_def): Add new field, in_trace.
2757 (add_unlikely_executed_notes): Remove function.
2758 (mark_bb_for_unlikely_executed_section): Remove function.
2759 (insert_section_boundary_note): New function.
2760 (verify_hot_cold_block_grouping): New function.
2761 (push_to_next_round_p): Remove variables and tests that push all
2762 cold blocks to last round.
2763 (find_traces): Remove code that added extra round of trace finding
2764 when doing partitioning.
2765 (find_traces_1_round) : Remove variable last_round; add code to
2766 update new struct field, in_trace; correct trace_length where it was
2767 incorrect before (after call to copy_bb); change code that pushed all
2768 cold blocks to last round. Instead verify that all blocks going into
2769 a trace belong in the same partition.
2770 (connect_traces): Modify to connect the traces in two passes, if the
2771 function contains both hot and cold blocks. The first pass connects
2772 all the traces for blocks in the partition that the first block in
2773 the function belongs to; the second pass connnects all the traces
2774 containing blocks that belong in the other partition.
2775 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
2776 code that automatically put the first block in a function into the
2777 hot partition if the function had any hot blocks.
2778 (fix_crossing_unconditional_branches): Check number of succ edges
2779 before attempting to get one.
2780 (fix_edges_for_rarely_executed_code): Update comment describing
2782 (reorder_basic_blocks): Add code to initialize new field (in_trace);
2783 remove call to add_unlikely_executed_notes; add call to
2784 verify_hot_cold_block_grouping.
2785 (duplicate_computed_gotos): Don't change computed goto if it's a
2787 (partition_hot_cold_basic_blocks): Update function comment.
2788 * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
2790 (try_forward_edges): Likewise.
2791 (merge_blocks_move_predecessor_nojumps): Likewise.
2792 (merge_blocks_move_successor_nojumps): Likewise.
2793 (merge_blocks_move): Likewise.
2794 (try_crossjump_bb): Likewise.
2795 * cfglayout.c (update_unlikely_executed_notes): Remove function.
2796 (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
2797 notes to cold bb's; remove call to update_unlikely_executed_notes.
2798 (duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2799 NOTE_INSN_SWITCH_TEXT_SECTIONS.
2800 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
2801 function declaration.
2802 * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
2804 (rtl_can_merge_blocks): Remove redundancy from condition.
2805 (try_redirect_by_replacing_jump): Likewise.
2806 (force_nonfallthru_and_redirect): Remove code for adding
2807 UNLIKELY_EXECUTED_CODE notes to cold bb's.
2808 (commit_one_edge_insertion): Likewise.
2809 (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
2810 * dbxout.c (FORCE_TEXT): Replace function_section with
2811 current_function_section.
2812 (struct dbx_debug_h): Add do_nothing function for new debug_hooks
2813 function, switch_text_section.
2814 (struct xcoff_debug): Likewise.
2815 (dbxout_function_end): Add code to put out label diffs for both
2816 hot and cold sections.
2817 * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
2818 for new debug_hooks funciton, switch_text_section..
2819 * debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
2820 switch_text_section.
2821 * dwarf2out.c (struct dw_fde_struct): Add five new fields:
2822 dw_fde_hot_section_label, dw_fde_hot_section_end_label,
2823 dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
2824 dw_fde_switched_sections.
2825 (output_call_frame_info): Add test to see if function switches text
2826 sections in the middle; if so, use appropriate extra hot and cold
2827 section labels to compute size deltas for the hot and cold sections.
2828 (dwarf2out_begin_prologue): Add code to initialize new fields in
2830 (dwarf2out_switch_text_section): New function (invoked through
2831 debug_hook); updates new fields in dw_fde_struct appropriately and
2832 increments separate_line_info_table_in_use.
2833 (dwarf2_debug_hooks): Initialize switch_text_section function to be
2834 dwarf2out_switch_text_section.
2835 (struct var_loc_node): Add new field, section_label.
2836 (output_aranges): Add code to check whether in hot or cold section and
2837 use the appropriate label in calculating deltas.
2838 (output_ranges): Likewise.
2839 (output_line_info): Add code to check which section we're in and
2840 use appropriate hot/cold label.
2841 (add_location_or_constant_value_attribute): Likewise.
2842 (gen_subprogam_die): Modify arange attributes to use correct labels.
2843 (dwarf2out_begin_block): Change call to function_section into call to
2844 current_function_section.
2845 (dwarf2out_end_block): Likewise.
2846 (dwarf2out_source_line): Likewise.
2847 (dwarf2out_var_location): Add code to check whether in hot or cold
2848 section and use the appropriate label.
2849 * except.c (output_function_exception_table): Change call to
2850 function_section into call to current_function_section.
2851 * final.c (profile_function): Likewise.
2852 (scan_ahead_for_unlikely_executed_note): Remove function.
2853 (final_scan_insn): Remove calls to
2854 scan_ahead_for_unlikely_executed_note, and related code for switching
2855 to cold section, except for the single time
2856 NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered; add calls to
2857 debug_hooks->switch_text_sections; replace appropriate calls to
2858 function_section with calls to current_function_section.
2859 * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
2860 test_bb to condition.
2861 (find_if_case_2): Likewise.
2862 * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2863 NOTE_INSN_SWITCH_TEXT_SECTIONS. Update comment appropriately.
2864 * opts.c (decode_options): Change warning about hot/cold partitioning
2865 with exceptionss to inform (so as not to cause bootstrap failures);
2866 remove warning about partitioning with DWARF debug info.
2867 * output.h (current_function_section): Add new function decl.
2868 (insert_section_boundary_note): Likewise.
2869 (enum in_section): Move this declaration here from varasm.c.
2870 (unlikely_section_label): Likewise.
2871 (unlikely_text_section_name): Likewise.
2872 (last_text_section_name): New global variable.
2873 (last_text_section): Likewise.
2874 (hot_section_label): Likewise.
2875 (hot_section_end_label): Likewise.
2876 (cold_section_end_label): Likewise.
2877 * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
2878 * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
2879 to NOTE_INSN_SWITCH_TEXT_SECTIONS.
2880 * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
2881 insn from consideration.
2882 * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
2883 switch_text_section.
2884 * varasm.c (basic-block.h): Add new include.
2885 (unlikely_section_label_printed): Remove global variable.
2886 (unlikely_section_label): Make global variable not be static any more.
2887 (unlikely_text_section_name): Likewise.
2888 (hot_section_end_label): New global variable (not static)
2889 (first_function_block_is_cold): Likewise.
2890 (hot_section_label): Likewise.
2891 (cold_section_end_label): Likewise..
2892 (last_text_section): New global variable, not static.
2893 (last_text_section_name): New global variable, not static.
2894 (initialize_cold_section_name): New function.
2895 (enum in_section): Move declaration to output.h.
2896 (text_section): Update last_text_section.
2897 (unlikely_text_section): Replace code to determine cold section name
2898 with call to initialize_cold_section_name; Add code to update
2899 last_text_section; remove code for printing out label.
2900 (named_section_real): Add code to update last_text_section and
2901 last_text_section_name as appropriate.
2902 (function_section): Change test for 'unlikely' to depend on
2903 first_function_block_is_cold (moved old test to
2904 current_function_section).
2905 (current_function_section): New function.
2906 (assemble_start_function): Move code that frees
2907 unlikely_text_section_name; initialize hot_section_end_label;
2908 print hot and cold section labels at the start of the function;
2909 set first_function_block_is_cold, if appropriate; initialize l
2910 ast_text_section; add call to insert_section_boundary_note.
2911 (assemble_end_function): Add code to write out hot and cold section
2913 *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
2914 switch_text_section.
2915 * config/darwin.c (machopic_select_section): Replace incorrect
2916 function in base_funs; update reloc for cold sections if necessary.
2917 * config/darwin.h (SECTION_FUNCTION): Add code to update
2918 last_text_section if appropriate.
2919 (text_unlikely_section): Remove.
2920 * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
2921 * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
2922 * config/xtensa/xtensa.c (override_options): Turn off hot/cold
2923 partitioning for this architecture.
2925 2005-03-31 Olivier Hainque <hainque@adacore.com>
2927 * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
2928 defined and non-zero.
2930 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2933 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
2936 2005-03-31 Alan Modra <amodra@bigpond.net.au>
2939 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
2940 label operand. Remove (use (unspec..)). Don't emit a label on
2942 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
2943 generate inline label for load_toc_v4_PIC_1b.
2944 (rs6000_emit_load_toc_table): Likewise.
2946 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2948 * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
2949 ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2951 2005-03-29 Devang Patel <dpatel@apple.com>
2953 * tree-sra.c (decide_block_copy): Disable scalarization of
2956 2005-03-30 Stuart Hastings <stuart@apple.com>
2957 Dale Johannesen <dalej@apple.com>
2959 * Makefile.in (print-tree.o): Depend on tree-iterator.h.
2960 * print-tree.c (print_node): Add case STATEMENT_LIST.
2962 2005-03-31 Alan Modra <amodra@bigpond.net.au>
2964 * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
2965 (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
2966 (powerpc-*-linux*): Build a biarch compiler when --enable-targets
2967 is given with "powerpc64*" or "all", or when --with-cpu chooses
2970 2005-03-30 James E. Wilson <wilson@specifixinc.com>
2973 * dwarf2out.c (add_high_low_attributes): New function, extracted from
2974 gen_lexical_block_die.
2975 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2977 2005-03-31 Jan Hubicka <jh@suse.cz>
2979 2004-11-02 Jan Hubicka <jh@suse.cz>
2981 * cgraph.c (cgraph_varpool_node_name): New function.
2982 (dump_cgraph_varpool_node): New function.
2983 (dump_varpool): New function.
2984 * cgraphunit.c (cgraph_optimize): Dump varpool.
2986 2004-10-16 Jan Hubicka <jh@suse.cz>
2988 * cgraph.c (decide_is_variable_needed): New function.
2989 (cgraph_varpool_finalize_decl): Use it.
2990 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
2992 * final.c (output_addr_const): Do not call mark_referenced.
2993 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
2994 always go via cgraph.
2995 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
2996 (check_global_declarations): Ifdef out code clearing DECL_RTL.
2997 * tree-optimize.c (execute_inline): Mark functions called.
2998 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
3000 2004-10-11 Jan Hubicka <jh@suse.cz>
3002 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
3003 (cgraph_varpool_last_needed_node): New static variable.
3004 (enqueue_needed_varpool_node): Break out from ...; add items to the
3005 end of queue; update first pointers.
3006 (cgraph_varpool_mark_needed_node): ... here.
3007 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
3008 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
3009 * cgraph.h (cgraph_varpool_node): Add analyzed field.
3010 (cgraph_varpool_first_unanalyzed_node): Declare.
3011 * cgraphunit.c: Include output.h.
3012 (cgraph_varpool_analyze_pending_decls): New function.
3013 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
3014 for errors, analyze pending decls.
3015 (cgraph_finalize_compilation_unit): Only analyze decls.
3016 (cgraph_optimize): Assemble the decls after expanding.
3018 2005-03-30 Daniel Berlin <dberlin@dberlin.org>
3020 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
3021 subvars get marked properly in tags for grouping.
3022 (add_pointed_to_var): Mark only actual pointed to
3023 variables/subvars in addresses needed.
3024 (create_overlap_variables_for): Clear call clobbered on original
3026 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
3027 addresable vars with subvars into list.
3028 * tree-ssa.c (verify_ssa_name): Verify original is not used where
3031 2005-03-30 Richard Henderson <rth@redhat.com>
3033 * cgraph.h (struct cgraph_node): Add alias.
3034 * varasm.c (assemble_alias): Set it.
3035 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
3036 avoid calling cgraph_expand_function.
3038 2005-03-30 Tom Tromey <tromey@redhat.com>
3040 * tree.def (FILE_TYPE): Removed.
3041 * typeclass.h (enum type_class): Removed file_type_class.
3042 * dwarf2out.c (is_base_type): Updated.
3043 (gen_type_die): Likewise.
3044 * dbxout.c (dbxout_type): Updated.
3045 * builtins.c (type_to_class): Updated.
3046 * tree.c (type_contains_placeholder_1): Updated.
3047 * config/sparc/sparc.c (sparc_type_code): Updated.
3048 * config/ia64/ia64.c (hfa_element_mode): Updated.
3049 * expr.c (count_type_elements): Updated.
3050 * stor-layout.c (layout_type): Updated.
3051 * tree-inline.c (remap_type): Updated.
3052 * tree-pretty-print.c (dump_generic_node): Updated.
3054 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
3056 * builtins.c (expand_builtin_powi): Fix mode of
3057 2nd argument to match int.
3058 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
3059 2nd argument type to int.
3060 * libgcc2.c: Change prototype of __powi* functions to use
3063 2005-03-30 Dale Johannesen <dalej@apple.com>
3066 * calls.c (expand_call): Flush pending deferrals before
3069 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
3073 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
3074 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
3075 c_label_context, label_context_stack): New.
3076 * c-decl.c (define_label): Check for jumps into statement
3077 expressions. Add label to list of defined labels.
3078 (start_function): Push context on label_context_stack.
3079 (finish_function): Pop context from label_context_stack.
3080 * c-typeck.c (label_context_stack): New.
3081 (c_finish_goto_label): Check for jumps into statement
3082 expressions. Add label to list of jumped to labels.
3083 (struct c_switch): Add blocked_stmt_expr.
3084 (c_start_case): Initialize it.
3085 (do_case): Check it.
3086 (c_finish_case): Verify !blocked_stmt_expr.
3087 (c_begin_stmt_expr): Push context on label_context_stack.
3088 Increment blocked_stmt_expr. Mark labels jumped to from outside
3090 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
3091 defined in the statement expression and no longer jumpable to.
3092 Mark labels jumped to from just outside the statement expression
3093 as again definable. Pop context from label_context_stack.
3094 * doc/extend.texi (Statement Exprs): Update.
3096 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
3099 * c-decl.c (start_function): Check for old_decl being
3102 2005-03-30 Ian Lance Taylor <ian@airs.com>
3104 * final.c (final): Remove prescan parameter. Change all callers.
3105 (final_scan_insn): Remove prescan parameter. Change all callers.
3107 2005-03-30 Kazu Hirata <kazu@cs.umass.edu>
3109 * tree-vectorizer.c: Fix comment typos.
3111 2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
3113 * tree-scalar-evolution.c (instantiate_parameters_1): Return
3114 as soon as a chrec_dont_know is detected.
3116 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
3118 Merge from csl-arm-branch.
3119 2004-02-12 Mark Mitchell <mark@codesourcery.com>
3121 * tlink.c (recompile_files): Do not assume that "rename" can
3122 overwrite an existing file.
3124 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
3126 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
3127 * gcc/configure: Regenerate.
3129 2005-03-30 Alan Modra <amodra@bigpond.net.au>
3131 * doc/install.texi: Update binutils requirement for powerpc*-linux.
3133 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
3135 * calls.c (struct arg_data): Update "partial" comment.
3136 (load_register_parameters): Update "nregs" comment.
3138 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
3140 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
3141 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
3142 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
3143 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
3144 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
3145 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
3146 than target_flags & 0.
3147 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
3148 (iq2000_arch, iq2000_parse_cpu): Delete.
3149 (TARGET_HANDLE_OPTION): Override default.
3150 (iq2000_handle_option): New function.
3151 (override_options): Remove -march= and -mcpu= handling.
3152 * config/iq2000/iq2000.opt: New file.
3154 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
3156 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
3157 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
3158 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
3159 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
3160 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
3161 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
3162 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
3163 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
3164 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
3165 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
3166 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
3167 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
3168 (c4x_rpts_cycles_string, c4x_cpu_version_string)
3169 (TARGET_OPTIONS): Delete.
3170 (c4x_rpts_cycles, c4x_cpu_version): Declare.
3171 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
3172 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
3173 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
3174 (c4x_cpu_version_string): Delete.
3175 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3176 (c4x_handle_option): New function. Map -m3x and -m4x options to the
3177 equivalent -mcpu= option.
3178 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
3179 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
3180 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
3181 or clearing the appropriate MASK_* bit.
3182 (c4x_file_start): Use c4x_cpu_version.
3183 * config/c4x/c4x.opt: New file.
3185 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
3187 * doc/options.texi: Document the new MaskExists flag.
3188 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
3189 if the option has the MaskExists flag.
3191 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
3193 * opt-functions.awk (flag_set_p, test_flag): New functions.
3194 (switch_flags): Use them.
3195 * opth-gen.awk: Use flag_set_p to check for flags.
3196 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
3198 2005-03-30 Ian Lance Taylor <ian@airs.com>
3200 * config.host (i[34567]86-*-mingw32*): Don't set
3201 host_can_use_collect2 to no.
3203 2005-03-30 Alan Modra <amodra@bigpond.net.au>
3206 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
3207 Remove convert_memory_address call duplicating that in memory_address.
3209 2005-03-29 Richard Henderson <rth@redhat.com>
3212 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
3213 (build_compound_literal): Likewise. Propagate decl type into the
3215 (finish_decl): Likewise. Use new return value from complete_array_type
3216 for zero sized arrays.
3217 (complete_array_type): Move ...
3218 * c-common.c (complete_array_type): ... here. Change first argument
3219 to pointer-to-type-node. Consistently use sizetype for the index
3220 except for zero sized arrays. Detect zero sized arrays for pedantic
3221 mode diagnostics. Create a new type node instead of modifying the
3223 * c-tree.h (complete_array_type): Move decl ...
3224 * c-common.h (complete_array_type): ... here.
3226 2005-03-29 Richard Henderson <rth@redhat.com>
3229 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
3231 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
3233 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
3234 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
3235 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
3236 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
3238 2005-03-29 Eric Christopher <echristo@redhat.com>
3240 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
3241 truthvalue conversion removal.
3243 2005-03-29 Ian Lance Taylor <ian@airs.com>
3246 * collect2.c: Never include <vfork.h>.
3247 (VFORK_STRING, vfork): Don't define.
3248 (pid): Remove global variable.
3249 (handler): Call raise instead of kill (getpid(), ...).
3250 (collect_wait): Add pex parameter. Change all callers. Use
3251 pex_get_status rather than pwait.
3252 (do_wait): Add pex parameter. Change all callers.
3253 (collect_execute): Return struct pex_obj * rather than void. Use
3254 pex routines rather than pexecute.
3255 (fork_execute): Get pex_obj from collect_execute, and pass it to
3257 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
3258 Only declare quit_handler if SIGQUIT is defined.
3259 (scan_libraries): Likewise.
3260 * collect2.h (collect_execute): Update declaration.
3261 (collect_wait): Update declaration.
3262 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
3263 pass it to collect_wait.
3265 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
3268 * c-parser.c (c_parser_compound_statement_nostart): Give error
3269 message for EOF instead of just setting parser->error.
3271 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
3273 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
3274 (slpeel_update_phi_nodes_for_guard1): New function.
3275 (slpeel_update_phi_nodes_for_guard2): New function.
3276 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
3277 of slpeel_update_phi_nodes_for_guard.
3278 (vectorize_loops): Remove call to loop_closed_rewrite.
3279 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
3282 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
3284 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
3285 (TARGET_LITTLE_ENDIAN): New macro.
3286 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
3287 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
3288 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
3289 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
3290 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
3291 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
3292 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
3293 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
3294 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
3295 (TARGET_OPTIONS): Delete.
3296 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
3297 (CACHE_FLUSH_TRAP): Turn into an integer.
3298 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
3299 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
3300 -mflush-trap is in use.
3301 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
3302 (m32r_cache_flush_trap_string): Delete.
3303 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
3304 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
3305 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
3306 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3307 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
3308 -mmodel= and -msdata= handling from...
3309 (m32r_init): ...here.
3310 * config/m32r/m32r.opt: New file.
3312 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
3314 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
3315 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
3316 * tree-vect-analyze.c (vect_object_analysis): additional parm
3317 pass back a "struct ptr_info_def *" with the points-to info.
3318 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
3319 statement using info returned from vect_object_analysis.
3320 * tree-vect-transform.c (update_vuses_to_preheader): New function.
3321 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
3322 for virtual uses and defs when creating a replacement vector
3323 reference. Call duplicate_ssa_name_ptr_info to define points-to
3324 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
3325 (vectorizable_store): copy_virtual_operands and update
3326 definition statements.
3327 (vectorizable_load): copy_virtual_operands. Remove call to
3328 mark_call_clobbered_vars_to_rename for call to "const" builtin.
3329 * tree-vectorizer.c (vectorize_loops): Remove calls to
3330 rewrite_into_ssa and bitmap_clear (vars_to_rename).
3331 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
3332 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
3333 define macro STMT_VINFO_PTR_INFO for use in accessing.
3334 * tree.h add export of duplicate_ssa_name_ptr_info.
3335 * rs6000.c (altivec_init_builtins): Declare builtin function
3336 __builtin_altivec_mask_for_load to be "const".
3338 2005-03-29 Jakub Jelinek <jakub@redhat.com>
3341 * cgraph.h (struct cgraph_varpool_node): Add alias field.
3342 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
3343 assemble_variable on aliases.
3344 * varasm.c (assemble_alias): Set node->alias.
3345 * toplev.c (wrapup_global_declarations): Don't call
3346 rest_of_decl_compilation on aliases again.
3348 2005-03-29 Paul Brook <paul@codesourcery.com>
3350 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
3351 * config/arm/arm.c (arm_dbx_register_number): New function.
3352 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
3354 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>