1 2006-05-21 Mike Stump <mrs@apple.com>
3 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
5 (darwin_pragma_options): Use BAD instead.
6 (darwin_pragma_unused): Likewise.
7 (darwin_pragma_ms_struct): Likewise.
9 2006-05-21 David Edelsohn <edelsohn@gnu.org>
11 * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
13 2006-05-21 Kazu Hirata <kazu@codesourcery.com>
15 PR rtl-optimization/27671
16 * simplify-rtx.c (simplify_relational_operation_1): Fix
17 simplifications of (eq/ne (xor x y) y) and
20 PR tree-optimization/26622.
21 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
24 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
26 * tree-cfg.c: Prune whitespace.
27 (debug_tree_cfg): Point to correct header containing the
30 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
33 * cgraphunit.c (verify_cgraph_node): Typo in error message.
35 2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
38 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
39 or sorry count is non zero.
41 2006-05-20 Andreas Schwab <schwab@suse.de>
43 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
45 2006-05-19 Daniel Berlin <dberlin@dberlin.org>
46 Kenneth Zadeck <zadeck@naturalbridge.com>
48 PR rtl-optimization/26855
50 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
52 (df_scan_alloc): Added code to properly handle multiword hard
53 registers and add all_blocks parameter.
54 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
55 code to properly handle multiword hard registers.
56 (df_rescan_blocks): Added code to remove deleted blocks from
58 (df_ref_create_structure, df_ref_record): Added code to properly
60 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
61 and set DF_REF_PARTIAL.
62 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
63 (df_uses_record): Added DF_REF_PARTIAL for subreg.
64 (df_scan_add_problem): Added flags parameter.
65 (df_ref_create_structure): Changed switching structure.
66 (df_bb_refs_record): Fixed case where duplicate artificial refs
67 were created. Changed location of flags.
68 (df_record_entry_block_defs): Added code to make stack pointer
69 live in entry block. Refined cases where frame pointer is needed.
70 Changed location of flags.
71 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
72 (df_set_state): Removed function.
73 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
74 df_insn_create_insn_record, df_insn_refs_delete,
75 df_ref_create_structure): Formatting changes.
76 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
77 df_delete_basic_block): New function.
78 (df_init): Changed location of flags.
79 (df_add_problem): Added flags parameter and the way flags are
81 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
82 debug_df_chain): Improved debugging output.
83 (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
84 (df_refs_chain_dump): Removed df parameter.
85 (df_iterative_dataflow): Added consistency check.
86 (df_prune_to_subcfg): Made public.
87 (df_analyze_problem): Added blocks_to_init parameter and made
89 (df_ref_record, df_bb_refs_record, df_mark_reg,
90 df_record_exit_block_uses): Whitespace changes.
91 (df_dump): Whitespace changes.
92 * df.h: Some reordering to remove forward references.
93 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
94 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
95 (df_ref_flags.DF_REF_CLOBBER): Deleted field.
96 (dataflow.flags): New field.
97 (df.flag): Deleted field.
98 (df_alloc_function): Added additional bitmap parameter.
99 (df_dependent_problem_function): New type.
100 (df_problem.changeable_flags): New field.
101 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
102 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
103 (df_mw_hardreg): New struct.
104 (DF_INSN_UID_MWS): New macro.
105 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
107 (df_add_problem, df_ru_add_problem, df_rd_add_problem,
108 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
109 df_ri_add_problem, df_scan_add_problem): Added flags parameter.
110 (df_set_state): Removed function.
111 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
112 * df-problems.c (df_chain_dump): Removed df parameter.
113 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
114 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
116 (df_ru_alloc, df_rd_alloc): Now resets all blocks.
117 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
118 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
119 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
120 DF_REF_MUST_CLOBBER cases.
121 (df_ru_bb_local_compute_process_def,
122 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
123 df_lr_bb_local_compute, df_ur_bb_local_compute,
124 df_chain_create_bb): Made subreg aware.
125 (df_ru_bb_local_compute, df_rd_bb_local_compute,
126 df_lr_bb_local_compute, df_lr_bb_local_compute,
127 df_chain_create_bb): Cleanup to use proper macros.
128 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
129 code to fixup bitvectors.
130 (df_ri_alloc): Cleared lifetime.
131 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
132 df_create_unused_note): New function.
133 (df_ri_bb_compute, df_ri_compute): Added code to create/update
134 REG_DEAD and REG_UNUSED notes as well as register information.
135 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
136 df_chains_dump): Fixed crash if problem was never run.
137 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
138 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
139 df_ri_add_problem): Processes flags in uniform manner.
140 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
141 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
142 df_rd_dump, df_urec_free_bb_info): Formatting changes.
143 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
144 df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
145 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
146 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
147 df_ur_dump, df_urec_free_bb_info, df_urec_dump,
148 df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
149 * modulo-sched.c (sms_schedule): Added flag parameter to calls.
150 * see.c (see_initialize_data): Ditto.
151 * final.c (rest_of_clean_state) Added regstack_completed.
152 * rtl.h (regstack_completed): Ditto.
153 * reg-stack.c (regstack_completed): Ditto.
155 2006-05-19 Mike Stump <mrs@apple.com>
157 * c-tree.h (default_conversion): Remove.
158 * c-common.h (default_conversion): Add.
160 2006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
162 * tree-vrp.c (valid_value_p): New function.
163 (adjust_range_with_scev): Fail if the value of bound is not
166 2006-05-19 Richard Sandiford <richard@codesourcery.com>
168 * config/mips/linux-unwind.h: Include <asm/unistd.h>
169 (mips_fallback_frame_state): Use syscall numbers to determine
170 the appropriate li instruction for the current ABI. Only use
171 __NR_sigreturn for o32.
173 2006-05-19 Nicolas Setton <setton@adacore.com>
175 * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
176 * langhooks.c (lhd_dwarf_name): New function.
177 * langhooks-def.h (lhd_dwarf_name): Declare.
178 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
179 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
180 * ada/misc.c (gnat_dwarf_name): New function.
181 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
183 2006-05-19 Richard Sandiford <richard@codesourcery.com>
185 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
187 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
188 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
189 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
190 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
191 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
192 determine the size of Wtype, etc.
193 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
194 (swfloatfuncs): New variable.
195 (dwfloatfuncs): Likewise.
196 (lib2funcs): Remove floating-point conversion functions from
197 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
198 the set of conversion routines needed. Allow entries to specify
199 an object name, filename and word size. Update users accordingly.
200 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
201 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
205 2006-02-08 Roger Sayle <roger@eyesopen.com>
208 * config/fixtfdi.c: New libgcc source file.
209 * config/fixunstfdi.c: New source file.
210 * config/floatditf.c: New source file.
211 * config/floatunditf.c: New souce file.
212 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
213 files above instead of config/mips/_tilib.c.
214 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
216 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
218 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
219 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
221 2006-05-18 Mike Stump <mrs@apple.com>
223 Fix up vla, vm and [*] sematics.
229 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
230 (c_vla_unspec_p): Add.
232 * c-decl.c (struct c_scope): Add had_vla_unspec.
233 (build_array_declarator): Add support for [*].
234 (grokdeclarator): Likewise.
235 (grokparms): Likewise.
236 (get_parm_info): Likewise.
237 * c-objc-common.c (c_vla_unspec_p): Likewise.
238 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
239 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
240 typeof when argument is a variably modified type not inside sizeof or alignof.
241 (c_parser_direct_declarator_inner): Propagate errors.
242 (c_parser_sizeof_expression): Add support for [*].
243 (c_parser_parms_declarator): Initialize had_vla_unspec.
244 (c_parser_parms_list_declarator): Likewise.
245 * c-typeck.c (c_vla_type_p): Add.
246 (composite_type): Add support for vla compositing.
247 (comptypes_internal): Add support for vla compatibility.
248 (c_expr_sizeof_expr): Evaluate vla arguments.
249 * tree.c (variably_modified_type_p): Update comment for [*].
251 2006-05-18 Michael Matz <matz@suse.de>
254 * config.host: Make assignments to host_xmake_file cumulative.
255 * config.host (*-darwin*): Test $host, not $target.
257 2006-05-12 Stuart Hastings <stuart@apple.com>
259 * config/i386/i386.opt (-mstackrealign): New flag.
260 * config/i386/i386.c (force_align_arg_pointer): New attribute.
261 (ix86_handle_cconv_attribute): Emit error when
262 force_align_arg_pointer attribute collides with too many regparms.
263 (ix86_function_regparm): Limit regparms when used with
264 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
265 Support stack-realigning prologue in non-main functions. Emit
266 warning for nested functions under -mstackrealign, emit error for
267 nested functions with force_align_arg_pointer attribute.
268 * doc/extend.texi (force_align_arg_pointer): Document it.
269 * doc/invoke.texi (-mstackrealign): Document it.
271 2006-05-17 Kazu Hirata <kazu@codesourcery.com>
273 PR rtl-optimization/27477
274 * combine.c (try_combine): Don't split a parallel consisting
275 of two sets into two individual sets if both sets reference
278 2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
280 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
281 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
283 * doc/options.texi (VarExists): Updated.
285 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
287 * unwind-dw2.c: Add declarations for uw_update_context and
289 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
290 detected, advance frame state and context once to skip over stub.
292 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
296 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
297 Call rewrite_into_loop_closed_ssa only when something changed.
298 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
299 * lambda-code.c (can_convert_to_perfect_nest): Declared.
300 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
301 Test for perfect_nest_p here. Fix formating.
302 (replace_uses_equiv_to_x_with_y): Fix formating.
303 (stmt_uses_op): Removed.
304 (can_convert_to_perfect_nest): Removed loopivs parameter.
305 Complete the test by checking the scalar dependences.
306 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
309 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
312 From Dan Kegel <dank@kegel.com>:
313 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
315 2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
317 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
318 if the element type is variably modified without recursing.
320 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
323 * tree-loop-linear.c (try_interchange_loops): Test for
326 2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
328 PR tree-optimization/27548
329 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
330 range of ssa names that appear on abnormal edges.
331 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
332 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
334 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
337 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
339 2006-05-17 Jakub Jelinek <jakub@redhat.com>
342 * tree.h (OMP_PARALLEL_COMBINED): Define.
343 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
344 (new_omp_context): Add is_combined_parallel argument.
345 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
346 new_omp_context caller.
347 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
348 Adjust gimplify_scan_omp_clauses callers.
349 (omp_is_private): Issue errors if iteration variable is firstprivate
350 or reduction in the current context.
351 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
352 on combined parallel workshare constructs.
354 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
356 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
357 (gcc-options.o): New rule.
359 * optc-gen.awk: Protect variables for gcc-options.o with
360 #ifdef GCC_DRIVER/#endif.
362 2006-05-16 Daniel Berlin <dberlin@dberlin.org>
364 Fix PR tree-optimization/27373
365 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
366 (forward_propagate_addr_expr): Update call.
368 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
370 * doc/options.texi: Move the Negative option.
372 2006-05-16 Richard Guenther <rguenther@suse.de>
374 PR tree-optimization/22303
375 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
377 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
378 ccp_fold did not simplify the statement.
380 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
383 * Makefile.in (GCC_OBJS): New.
384 (OBJS-common): Add opts-common.o.
385 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
386 (cpp$(exeext)): Likewise.
387 (gcc.o): Also depend on opts.h.
388 (opts-common.o): New.
390 * common.opt (gcoff): Add Negative(gdwarf-2).
391 (gdwarf-2): Add Negative(gstabs).
392 (gstabs): Add Negative(gstabs+).
393 (gstabs+): Add Negative(gvms).
394 (gvms): Add Negative(gxcoff).
395 (gxcoff): Add Negative(gxcoff+).
396 (gxcoff+): Add Negative(gcoff).
397 * config/i386/i386.opt (m32): Add Negative(m64).
398 (m64): Add Negative(m32).
400 * doc/options.texi: Document the Negative option.
402 * gcc.c: Include "opts.h".
403 (main): Call prune_options after expandargv.
405 * optc-gen.awk: Generate common declarations for all flag
406 variables in options.c. Output the neg_index field.
408 * opts.c (find_opt): Moved to ...
409 * opts-common.c: Here. New file.
411 * opts.h (cl_option): Add a neg_index field.
413 (prune_options): Likewise.
415 2006-05-16 Jakub Jelinek <jakub@redhat.com>
418 * omp-low.c (expand_omp_parallel): Don't assert
419 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
420 instead search for it.
423 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
426 2006-05-16 Andreas Schwab <schwab@suse.de>
428 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
431 2006-05-15 Roger Sayle <roger@eyesopen.com>
434 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
435 integer constants other than zero are only legitimate on TARGET_64BIT.
436 <CONST_VECTOR> Only zero vectors are legitimate.
437 (ix86_cannot_force_const_mem): Integral and vector constants can
438 always be put in the constant pool.
440 2006-05-16 DJ Delorie <dj@redhat.com>
442 * crtstuff.c (__dso_handle): Set section from
443 TARGET_LBIGCC_SDATA_SECTION if defined.
444 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
445 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
447 2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
450 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
453 2006-05-16 Ben Elliston <bje@au.ibm.com>
455 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
457 2006-05-15 Per Bothner <per@bothner.com>
459 * tree.c: (last_annotated_node): Use sources_locus typedef.
460 This permits bootstrapping with --enable-mapped-location.
462 2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
464 PR tree-optimization/26830
465 * tree-into-ssa.c (struct ssa_name_info): Add age field.
466 (info_for_ssa_name, current_info_for_ssa_name_age,
467 blocks_to_update): New variables.
468 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
469 (clear_ssa_name_info, initialize_flags_in_bb,
470 mark_block_for_update): New functions.
471 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
472 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
473 prepare_def_site_for): Use mark_block_for_update.
474 (mark_def_interesting): Assert that the processed block is marked in
475 blocks_to_update. Do not take blocks argument.
476 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
478 (rewrite_update_init_block, rewrite_update_stmt): Only process
479 blocks with statements to rewrite.
480 (delete_update_ssa): Do not clear SSA_NAME_AUX.
481 (update_ssa): Initialize and free blocks_to_update. Do not
482 clear flags on statements. Do not use blocks bitmap.
483 * tree.h (SSA_NAME_AUX): Removed.
484 (struct tree_ssa_name): Removed aux field.
485 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
487 2006-05-15 Richard Guenther <rguenther@suse.de>
489 PR tree-optimization/27603
490 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
491 Do computations in original type.
493 2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
495 * see.c: Code style changes such as redundant paranthesis,
496 redundant intialization of local variables etc.
497 (see_main): Declared now as static.
498 * doc/invoke.texi: Update that -fsee is not enabled by
501 2006-05-15 Jakub Jelinek <jakub@redhat.com>
503 * omp-low.c (check_omp_nesting_restrictions): New function.
504 (scan_omp_1): Call it.
507 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
508 construct, return *VAR.
510 2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
512 PR rtl-optimization/27406
513 * bt-load.c (migrate_btr_def): Skip the block having abnormal
516 2006-05-14 Roger Sayle <roger@eyesopen.com>
518 PR rtl-optimization/27538
519 * combine.c (expand_compound_operation): Call gen_lowpart
520 before calling simplify_shift_const.
522 2006-05-14 Roger Sayle <roger@eyesopen.com>
524 PR rtl-optimization/22563
525 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
526 a fixed width bitfield, always force the intermediates into psuedos.
528 2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
531 * mkconfig.sh: Use operator = instead of == for test.
533 2006-05-13 Nick Clifton <nickc@redhat.com>
535 * dwarf2out.c (dbx_reg_number): Check return value from
536 LEAF_REG_REMAP and only use it if it is valid.
537 (multiple_reg_loc_descriptor): Likewise.
539 2006-05-13 Richard Guenther <rguenther@suse.de>
541 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
544 2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
546 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
547 information attached to non-INSNs such as NOTEs.
548 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
550 2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
552 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
554 * config/s390/s390.md: Adjust comment describing On constraint.
556 2006-05-11 Jan Hubicka <jh@suse.cz>
558 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
561 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
564 * fold-const.c (size_binop): Move sanity check for arguments to
565 the beginning of the function.
568 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
571 2006-05-11 Richard Guenther <rguenther@suse.de>
574 * fold-const.c (fold_unary): Handle intermediate conversion
575 to a pointer type like intermediate conversion to an integer
576 type in folding of (T1)(T2)var to var.
577 Match the code to the comment in the final conversion for
578 (T1)(T2)var to (T1)var regarding to type precision. Rather
579 than disallow T1 being of pointer type, assert that both T1
580 and var are of pointer type or not. Make sure not to fall
581 over the frontends lazyness wrt array to pointer decay though.
583 2006-05-10 Richard Earnshaw <rearnsha@arm.com>
585 * arm.c (arm_struct_value_rtx): Delete.
586 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
587 (arm_init_cumulative_args): Always initialize nregs to zero.
589 2006-05-10 Richard Guenther <rguenther@suse.de>
591 PR tree-optimization/27532
592 * tree-object-size.c (plus_expr_object_size): Fix typo.
594 2006-05-10 Kazu Hirata <kazu@codesourcery.com>
597 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
598 ashrdi_const, ashrdi3): Use a scratch register.
600 2006-05-10 Richard Guenther <rguenther@suse.de>
602 PR tree-optimization/27302
603 * fold-const.c (operand_equal_p): For two comparisons,
604 try comparison of one comparison code swapped if that yields
607 2006-05-10 Ben Elliston <bje@au.ibm.com>
609 * tree-pretty-print.c (pretty_print_string): No need to handle
610 '\0' as a special character.
612 * tree.h: Include "hashtab.h".
613 (iterative_hash_expr): Use hashval_t in its prototype.
614 * Makefile.in (TREE_H): Add $(HASHTAB_H).
616 2006-05-09 Steve Ellcey <sje@cup.hp.com>
619 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
620 (hppa*64*-*-hpux11*): Ditto.
621 (hppa[12]*-*-hpux11*): Ditto.
623 2006-05-09 David Edelsohn <edelsohn@gnu.org>
626 * config/rs6000/aix41.h (TARGET_64BIT): Define.
628 2006-05-09 Michael Matz <matz@suse.de>
630 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
631 host_extra_gcc_objs and host_xmake_file.
632 (<*-*-linux*>): Don't overwrite host_xmake_file.
633 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
634 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
635 (host_detect_local_cpu): Declare.
636 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
637 * config/i386/i386.c (override_options): Handle -mtune=native
639 * config/i386/x-i386: New file.
640 * config/i386/driver-i386.c: New file.
641 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
644 2006-05-09 Dirk Mueller <dmueller@suse.de>
645 Richard Guenther <rguenther@suse.de>
648 * fold-const.c (fold_read_from_constant_string): Relax check
649 for matching types to matching modes.
651 2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
653 PR rtl-optimization/27335
654 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
657 2006-05-08 Chao-ying Fu <fu@mips.com>
658 Richard Sandiford <richard@codesourcery.com>
660 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
661 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
662 * config/mips/mips.md (UNSPEC_SCC): New constant.
663 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
664 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
665 (mips_emit_compare): Use it.
666 (mips_expand_vcondv2sf): New function.
668 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
670 Fix PR tree-optimization/27093
671 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
672 renaming when they become not-used_alone.
674 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
676 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
677 relocation and relocation stubs.
679 2006-05-08 Eric Christopher <echristo@apple.com>
681 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
684 2006-05-08 Jan Hubicka <jh@suse.cz>
687 * cgraphunit.c (decide_is_function_needed): When not optimizing even
688 unused static functions are needed.
690 2006-05-08 Roger Sayle <roger@eyesopen.com>
693 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
694 of a reg_equiv_constant if the result is a legitimate constant.
696 2006-05-08 Uros Bizjak <uros@kss-loka.si>
699 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
700 standard 80387 constants, raise the cost to prevent
701 compress_float_constant() to generate load from memory.
703 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
705 * config/arm/constraints.md (c): Fix a typo.
707 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
710 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
713 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
715 (_mm_mwait): Likewise.
717 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
719 (sse3_monitor): Make it 32bit only.
720 (sse3_monitor64): New. 64bit monitor.
722 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
725 * config/i386/i386.c (classify_argument): Skip fields with invalid
728 2006-05-07 Richard Guenther <rguenther@suse.de>
730 PR tree-optimization/27409
731 * tree-ssa-structalias.c (get_constraint_for_component_ref):
732 Do not try to find zero-sized subvars.
734 2006-05-07 Richard Guenther <rguenther@suse.de>
736 PR tree-optimization/27136
737 * tree-ssa-loop-niter.c (get_val_for): Correct function
738 comment, assert requirements.
739 (loop_niter_by_eval): Stop processing if the iterated
740 value did not simplify.
742 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
744 * opts.c (flag_see): remove its setting at -O3.
746 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
748 * genpeep.c (main): Make insn-peep.c depend on flags.h.
749 * arm/constraints.md: New file.
750 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
751 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
752 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
753 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
754 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
755 (EXTRA_MEMORY_CONSTRAINT): Likewise.
756 * arm.md: Include constraints.md.
757 (thumb_movsi_insn): Use satisfies_constraint_J.
758 (movhi, movqi): Use satisfies_constraint_I.
760 2006-04-29 Anatoly Sokolov <aesok@post.ru>
762 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
763 for atmeg a645 device.
765 2006-05-06 Richard Guenther <rguenther@suse.de>
767 PR tree-optimization/27151
768 * tree-vect-transform.c (vectorizable_condition): Punt on
769 values that have a different type than the condition.
771 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
774 * c-parser.c (c_parser_cast_expression): Only insert casts into
775 hash table if pointer.
776 * function.c (used_types_insert_helper): Rename from
778 (used_types_insert): Call used_types_insert_helper.
779 * function.h (used_types_insert): Accept only one argument.
781 2006-05-05 David Edelsohn <edesohn@gnu.org>
783 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
784 scratch with output modifier.
786 2006-05-04 David Edelsohn <edelsohn@gnu.org>
789 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
790 with output modifier.
792 2006-05-04 Richard Sandiford <richard@codesourcery.com>
795 * config/mips/mips.c (mips_symbolic_address_p): Return true
796 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
797 SYMBOL_GOTTPREL, and SYMBOL_TLS.
799 2006-05-04 Richard Guenther <rguenther@suse.de>
801 PR tree-optimization/14287
802 PR tree-optimization/14844
803 PR tree-optimization/19792
804 PR tree-optimization/21608
805 PR tree-optimization/27090
806 * tree-ssa-pre.c (try_combine_conversion): New function.
807 (compute_avail): After constructing the value-handle
808 expression, use try_combine_conversion to combine NOP_EXPRs
809 with previous value-handle expressions and use the result if it
812 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
814 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
816 2006-05-04 Jan Hubicka <jh@suse.cz>
819 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
821 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
823 * config/bfin/predicates.md (const01_rtx): Tell generator programs
824 that this only matches CONST_INTs. All users changed to VOIDmode
827 * config/bfin/bfin.c: Include "optabs.h".
828 (bfin_rtx_costs): Some costs for vector operations, to allow combine
830 (enum bfin_builtins): Add a number of fractional and vector builtins.
831 (bfin_init_builtins): Likewise.
832 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
833 (safe_vector_operand, bfin_expand_binop_builtin,
834 bfin_expand_unop_builtin): New functions.
835 (bfin_expand_builtin): Handle the new builtins.
836 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
839 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
842 * Makefile.in (OBJS-common): Add see.o.
843 (see.o): Add dependencies.
844 * common.opt (fsee): New flag for the see optimization was added.
845 * opts.c (flag_see): Initialized.
846 * passes.c (init_optimization_passes, pass_see): New pass.
847 * rtl.h (see_main): Declaration as extern.
848 * timevar.def (TV_SEE): New.
849 * tree-pass.h (pass_see): Declaration as extern.
850 * invoke.texi (-fsee): Document.
851 * recog.c (validate_simplify_insn): New function.
852 * recog.h (validate_simplify_insn): Declaration as extern.
853 * df-problems.c (df_chain_dump): Check for NULL.
855 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
856 Daniel Berlin <dberlin@dberlin.org>
858 * cfgrtl.c (insert_insn_bb_end_new): New function.
859 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
861 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
863 * df.h (struct web_entry): Moved from web.c.
864 (union_defs): Declaration as extern.
865 (unionfind_root): Likewise.
866 (unionfind_union): Likewise.
867 * web.c (struct web_entry): Moved to df.h.
868 (unionfind_root): Remove static declaration.
869 (unionfind_union): Likewise.
870 (union_defs): Likewise and generalize to use callback function.
871 (web_main): Update arguments for union_defs function call.
873 2006-05-04 Richard Guenther <rguenther@suse.de>
875 PR tree-optimization/26447
876 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
877 produce SSA_NAME copies before the store stmt to avoid
878 breaking exception handling.
880 2006-05-04 Jakub Jelinek <jakub@redhat.com>
883 * gimplify.c (omp_is_private): If var is shared in some outer context,
884 return false instead of true. Stop searching on parallel context
887 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
890 * coverage.c: Use get_gcov_unsigned_t() instead of
891 unsigned_type_node all over.
893 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
895 PR tree-optimization/27381
896 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
897 maintain the same immediate_use links.
898 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
899 node rather than segfaulting.
901 2006-05-03 Jakub Jelinek <jakub@redhat.com>
904 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
905 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
906 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
908 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
910 Fix PR tree-optimization/26626
911 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
913 * tree-ssa-operands.c (access_can_touch_variable): Allow
914 typecasting through union pointers.
916 2006-05-02 Jakub Jelinek <jakub@redhat.com>
919 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
920 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
921 to find if var will be a global variable even in the nested context.
922 (omp_copy_decl): Only check for global variable at the end, it might
923 be overridden in outer contexts.
924 (scan_sharing_clauses): For global variables don't create a field.
925 (lower_rec_input_clauses): Do nothing for global shared variables.
926 Emit a barrier at the end of ILIST if there were any decls in both
927 firstprivate and lastprivate clauses.
928 (lower_send_clauses): Do nothing for global variables except for
931 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
933 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
934 of the correct signedness is returned.
936 2006-05-02 Jeff Law <law@redhat.com>
938 PR tree-optimization/27364
939 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
940 multiply expressions.
942 2006-05-02 Tom Tromey <tromey@redhat.com>
944 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
946 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
949 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
950 -mthumb -fPIC are used.
952 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
953 Joshua Kinard <kumba@gentoo.org>
956 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
957 with 64-bit pointers.
959 2006-05-02 Paul Brook <paul@codesourcery.com>
961 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
963 (create_fix_barrier): Check that a suitable barrier location is
965 (arm_reorg): Include ftmp->address in allowable range of addresses.
967 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
970 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
973 2006-05-02 Jakub Jelinek <jakub@redhat.com>
976 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
977 around RESULT_DECL for result passed by reference.
978 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
979 * omp-low.c (use_pointer_for_field): Don't look at
980 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
981 (scan_omp_1): Call remap_decl on RESULT_DECLs.
982 (lower_rec_input_clauses): Don't allocate VLA memory for the second
983 time or var for passing by reference for
984 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
985 TREE_ADDRESSABLE variables when passing by reference.
987 * omp-low.c (dump_omp_region): Fix output formatting.
990 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
991 (expand_omp_parallel): Likewise.
992 * tree-cfg.c (move_sese_region_to_fn): Likewise.
995 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
996 on statement list containing also constructors and destructors.
997 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
1000 * except.c (duplicate_eh_regions): Fix clearing of
1001 cfun->eh->region_array entries.
1003 2006-05-01 DJ Delorie <dj@redhat.com>
1005 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
1007 (gcc_cv_objdump): Likewise.
1008 * configure: Regenerated.
1010 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
1013 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
1014 templates for case 3 and 4.
1016 2006-05-01 DJ Delorie <dj@redhat.com>
1018 * vec.c: Include bconfig.h when appropriate.
1019 * Makefile.in (build/vec.o): Adjust dependencies.
1020 * mkconfig.sh: Make sure config.h isn't used for build machine
1023 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1025 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
1027 (mark_phi_for_rewrite): New function.
1028 (insert_phi_nodes_for, mark_use_interesting): Call
1029 mark_phi_for_rewrite.
1030 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
1031 (update_ssa): Initialize and free phis_to_rewrite.
1033 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1035 PR rtl-optimization/27291
1036 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
1037 folded to a constant.
1039 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1041 PR tree-optimization/27283
1042 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
1043 not whole # of iteration descriptions.
1044 (niter_for_exit): Return just # of iterations. Fail if # of iterations
1045 uses abnormal ssa name.
1046 (niter_for_single_dom_exit): Ditto.
1047 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
1048 return just the number of iterations.
1050 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
1052 PR tree-optimization/27144
1053 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
1054 (record_estimate): Only record constant upper bound.
1055 (infer_loop_bounds_from_undefined): Call
1056 compute_estimated_nb_iterations just once.
1057 (proved_non_wrapping_p): Renamed to ...
1058 (n_of_executions_at_most): ... this. Expect bound to be a constant.
1059 (convert_step_widening, scev_probably_wraps_p): Call
1060 n_of_executions_at_most instead of proved_non_wrapping_p.
1061 (substitute_in_loop_info): Do not replace values in bounds.
1062 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
1065 2006-05-01 Richard Henderson <rth@redhat.com>
1068 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
1069 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
1072 2006-05-01 Roger Sayle <roger@eyesopen.com>
1074 * c-typeck.c (parser_build_binary_op): Don't call the function
1075 unsigned_conversion_warning to spot operand/result type overflow.
1076 (build_binary_op): Instead, call convert_and_check instead of
1077 convert to report the problem when the operands are promoted.
1078 * c-common.c (unsigned_conversion_warning): Make static.
1079 * c-common.h (unsigned_conversion_warning): Delete prototype.
1081 2006-05-01 Richard Guenther <rguenther@suse.de>
1083 PR tree-optimization/26726
1084 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
1086 (find_interesting_uses_address): ... we work around here
1087 by folding INDIRECT_REFs in the substituted base.
1089 2006-05-01 Diego Novillo <dnovillo@redhat.com>
1091 * omp-low.c (dump_omp_region): Add newlines.
1093 2006-04-30 Roger Sayle <roger@eyesopen.com>
1095 * common.opt (Woverflow): New command line option.
1096 * c-common.c (constant_expression_warning): Check warn_overflow.
1097 (overflow_waring): Pass OPT_Woverflow to warning.
1098 (unsigned_conversion_warning): Likewise.
1099 (convert_and_check): Likewise.
1100 * doc/invoke.texi: Document new command line option.
1102 2006-04-30 David Edelsohn <edelsohn@gnu.org>
1104 * config/rs6000/rs6000.c (rs6000_override_options): Enable
1105 TARGET_NO_FP_IN_TOC for section anchors.
1106 (optimization_options): Enable section anchors for all
1107 non-"Objective" languages.
1109 2006-04-28 Eric Christopher <echristo@apple.com>
1111 * config/darwin-c.c (darwin_ms_struct): Move this
1112 (darwin_set_default_type_attributes): and this...
1113 * config/darwin.c: ... here.
1114 * config/darwin.h (darwin_ms_struct): Declare.
1116 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
1118 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
1120 2006-04-28 Roger Sayle <roger@eyesopen.com>
1123 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
1124 (push_array_bounds): Delete prototype. Change BOUNDS argument to
1125 an unsigned HOST_WIDE_INT.
1126 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
1128 (really_start_incremental_init): No need to call convert because
1129 bitsize_zero_node is already of type bitsizetype.
1130 (push_init_level): Extract the value of constructor_index as an
1131 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
1132 (process_init_element): Likewise.
1134 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
1136 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
1137 value before passing to make_relative_prefix.
1139 2006-04-28 Alan Modra <amodra@bigpond.net.au>
1142 * builtins.c (expand_builtin_memset): Expand val in original mode.
1144 2006-04-27 Eric Christopher <echristo@apple.com>
1146 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
1147 with #ifndef/#endif.
1148 * config/darwin-c.c (darwin_ms_struct): New.
1149 (darwin_pragma_ms_struct): Ditto.
1150 (darwin_set_default_type_attributes): Ditto.
1151 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
1152 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
1153 Register ms_struct pragma.
1154 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
1155 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
1156 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
1157 darwin_set_default_type_attributes if TARGET_MACHO.
1159 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
1161 PR tree-optimization/26854
1162 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
1163 * doc/tree-ssa.texi: Update immuse iterator documentation.
1164 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
1165 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
1166 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
1167 first_safe_imm_use, next_safe_imm_use): Remove.
1168 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
1169 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
1170 (move_use_after_head): New. Helper function to sort immuses in a stmt.
1171 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
1172 (first_imm_use_stmt): New. Get first stmt in an immuse list.
1173 (next_imm_use_stmt): New. Get next stmt in an immuse list.
1174 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
1175 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
1176 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
1177 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
1178 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
1179 (perfect_nestify): Use new iterator.
1180 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
1182 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
1183 (next_imm_name): New field in struct immediate_use_iterator_d.
1184 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
1185 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
1186 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
1187 * tree-cfg.c (replace_uses_by): Use new iterator.
1188 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
1189 * tree-ssa-operands.c (correct_use_link): Remove.
1190 (finalize_ssa_use_ops): No longer call correct_use_link.
1192 2006-04-27 Stuart Hastings <stuart@apple.com>
1194 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
1195 * config/t-darwin (crt3.o): Use it.
1196 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
1197 'pmode', use Pmode instead of SImode for SYMBOL_REF.
1198 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
1199 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
1200 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
1203 2006-04-27 Roger Sayle <roger@eyesopen.com>
1205 * expmed.c (store_fixed_bit_field): If we're not optimizing for
1206 size, force the intermediate into a new pseudo rather instead of
1207 performing both a bitwise AND and a bitwise IOR in memory.
1209 2006-04-27 Richard Guenther <rguenther@suse.de>
1211 PR rtl-optimization/26685
1212 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
1213 this one "max-flow-memory-locations".
1215 2006-04-27 Richard Guenther <rguenther@suse.de>
1217 PR tree-optimization/25148
1218 * tree-vrp.c (compare_values): Remove code dealing with
1219 comparisons against type min/max value. Honour overflow
1220 and negative constants in code dealing with comparisons
1221 of plus and minus expressions.
1222 (value_inside_range): Use fold_binary with LE_EXPR and
1223 GE_EXPR rather than compare_values.
1225 2006-04-27 Dirk Mueller <dmueller@suse.de>
1227 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
1230 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
1232 * basic-block.h (safe_insert_insn_on_edge): Removed.
1233 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
1235 2006-04-26 David Edelsohn <edelsohn@gnu.org>
1236 Paolo Bonzini <bonzini@gnu.org>
1239 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
1240 (simplify_and_const_int): Same.
1242 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
1244 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
1246 2006-04-26 Jakub Jelinek <jakub@redhat.com>
1249 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
1250 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
1251 cgraph_global_info_ready.
1254 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
1257 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
1258 either decl or init is error_mark_node.
1261 * tree-flow.h (struct omp_region): Add sched_kind.
1262 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
1263 instead of extracting omp for data.
1264 (expand_omp_for): Save extracted sched_kind.
1266 2006-04-25 Roger Sayle <roger@eyesopen.com>
1268 * expmed.c (store_bit_field): Also check whether the bitsize is
1269 valid for the machine's "insv" instruction before moving the
1270 target into a pseudo for use with the insv.
1271 * config/i386/predicates.md (const8_operand): New predicate.
1272 * config/i386/i386.md (extv, extzv, insv): Use the new
1273 const8_operand predicate where appropriate.
1275 2006-04-25 DJ Delorie <dj@redhat.com>
1277 * doc/install.texi (Specific): Clarify that this is not a list of
1278 supported hosts or targets.
1280 2006-04-25 Richard Sandiford <richard@codesourcery.com>
1282 PR rtl-optimization/26725
1283 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
1284 block's BB_DIRTY flag.
1286 2006-04-25 Geoffrey Keating <geoffk@apple.com>
1288 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
1291 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
1292 to print an integer.
1294 2006-04-25 David Edelsohn <edelsohn@gnu.org>
1296 * varasm.c (align_variable): New function.
1297 (get_block_for_decl): Apply align_variable to DECL before
1298 calculating section information.
1299 (assemble_variable): Split out alignment computation.
1301 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
1303 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
1306 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
1308 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
1309 MODE_PARTIAL_INT mode.
1310 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
1311 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
1313 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
1314 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
1316 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
1318 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
1320 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
1321 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
1322 MACFLAG_IH): Likewise.
1323 (movstricthi_1): Renamed from "*movstricthi".
1324 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
1325 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
1326 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
1327 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
1328 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
1329 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
1330 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
1331 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
1332 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
1333 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
1334 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
1335 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
1336 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
1337 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
1338 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
1340 * doc/rtl.texi (ss_ashift): Improve wording.
1342 2006-04-24 Geoffrey Keating <geoffk@apple.com>
1344 * dwarf2out.c (verify_marks_clear): New.
1345 (prune_unused_types): Call verify_marks_clear initially, not
1348 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1350 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
1351 * doc/rtl.texi: Document them.
1352 * simplify-rtx.c (simplify_unary_operation,
1353 simplify_binary_operation_1): Don't abort when we see them.
1355 2006-04-24 Mark Mitchell <mark@codesourcery.com>
1358 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1359 * configure.ac: Completely disregard languages that are not
1361 * configure: Regenerated.
1363 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1364 Richard Guenther <rguenther@suse.de>
1366 PR tree-optimization/27236
1367 * tree-inline.c (copy_body_r): Make sure to copy
1368 TREE_THIS_VOLATILE flag.
1370 2006-04-24 Richard Guenther <rguenther@suse.de>
1373 * tree-complex.c (update_parameter_components): Don't handle
1374 unused parameters which have no default def.
1376 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1377 Richard Guenther <rguenther@suse.de>
1379 PR tree-optimization/27218
1380 * tree-inline.c (expand_call_inline): Strip useless type
1381 conversions for the return slot address.
1383 2006-04-24 Richard Guenther <rguenther@suse.de>
1385 * cfgloop.h (struct loops): Remove unused field array. Reorder
1387 (LOOP_PREFETCH): Remove.
1389 2006-04-24 Richard Guenther <rguenther@suse.de>
1391 PR tree-optimization/22525
1392 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
1393 variable, adjust types of generated expressions.
1395 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
1397 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
1398 (tree-vect-patterns.o): Likewise.
1400 (cselib.o): Likewise.
1401 (loop-doloop.o): Likewise.
1402 (regclass.o): Likewise.
1403 (reload1.o): Likewise.
1404 (explow.o): Replace target.h with $(TARGET_H).
1405 (ipa-prop.o): Likewise.
1406 (ipa-cp.o): Likewise.
1407 (ipa-inline.o): Likewise.
1408 (reorg.o): Likewise.
1409 (reg-stack.o): Likewise.
1411 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1413 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
1415 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1417 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
1419 * configure.ac: Completely disregard languages that are not
1421 * configure: Regenerated.
1424 * c-common.h (c_build_bitfield_integer_type): Declare.
1425 * c-decl.c (c_build_bitfield_integer_type): Move to ...
1426 * c-common.c (c_build_bitfield_integer_type): ... here.
1428 2006-04-23 Roger Sayle <roger@eyesopen.com>
1431 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
1432 a SImode SUBREG of a floating point register after no_new_pseudos.
1434 2006-04-23 Roger Sayle <roger@eyesopen.com>
1436 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
1437 identify potentially eliminable registers to additionally catch
1438 VIRTUAL_INCOMING_ARGS_REGNUM.
1439 (addsi3): Update the conditions on when to use addsi_small_int.
1441 2006-04-23 Roger Sayle <roger@eyesopen.com>
1444 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
1445 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
1446 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
1448 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1450 * fold-const.c (range_predecessor): Use operand_equal_p
1451 as the predicate for equality.
1452 (range_successor): Likewise.
1454 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
1457 * config/soft-fp/op-common.h: Fix a typo.
1459 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
1462 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
1463 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
1465 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
1467 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
1469 * doc/tm.texi: Fix a typo.
1471 2006-04-21 Geoffrey Keating <geoffk@apple.com>
1473 * dwarf2out.c (struct die_struct): Document that die_sib makes
1474 a circular linked list.
1475 (FOR_EACH_CHILD): New.
1476 (reverse_die_lists): Delete.
1477 (reverse_all_dies): Delete.
1478 (add_dwarf_attr): Correct documentation.
1479 (remove_child_with_prev): New.
1480 (remove_child_TAG): Update for change to die_struct, use
1481 remove_child_with_prev.
1482 (add_child_die): Update for change to die_struct.
1483 (splice_child_die): Use remove_child_with_prev and add_child_die.
1484 (print_die): Use FOR_EACH_CHILD.
1485 (die_checksum): Likewise.
1486 (assign_symbol_names): Likewise.
1487 (output_location_lists): Likewise.
1488 (build_abbrev_table): Likewise.
1489 (calc_die_sizes): Likewise.
1490 (mark_dies): Likewise.
1491 (unmark_dies): Likewise.
1492 (unmark_all_dies): Likewise.
1493 (output_die): Likewise.
1494 (prune_unused_types_mark): Likewise.
1495 (prune_unused_types_walk): Likewise.
1496 (same_die_p): Update for change to die_struct.
1497 (break_out_includes): Likewise.
1498 (prune_unused_types_prune): Likewise.
1499 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
1500 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
1502 (dwarf2out_finish): Don't call reverse_all_dies.
1504 2006-04-21 Eric Christopher <echristo@apple.com>
1506 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
1507 in comments and function names.
1509 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1512 * c-typeck.c (digest_init): Robustify.
1514 * c-typeck.c (pop_init_level): Simplify.
1516 2006-04-21 Steve Ellcey <sje@cup.hp.com>
1518 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
1520 2006-04-21 Paul Brook <paul@codesourcery.com>
1522 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
1523 hardware floating point.
1525 2006-04-21 David Edelsohn <edelsohn@gnu.org>
1527 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
1530 2006-04-21 Nick Clifton <nickc@redhat.com>
1532 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
1535 2006-04-21 Alan Modra <amodra@bigpond.net.au>
1538 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
1539 C++ lang type in traceback table for Objective-C++.
1541 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
1543 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
1545 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
1547 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1550 * tree-mudflap.c (mudflap_finish_file): Skip function when there
1551 were errors. Remove check for erroneous objects.
1553 2006-04-20 Jeff Law <law@redhat.com>
1555 PR tree-optimization/26854
1556 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
1557 checking for zero or one use.
1558 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
1559 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
1560 * tree-ssa-reassoc.c (negate_value): Similarly.
1561 (reassociate_bb): Similarly.
1563 2006-04-20 Jakub Jelinek <jakub@redhat.com>
1565 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
1566 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
1567 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
1569 2006-04-20 Alan Modra <amodra@bigpond.net.au>
1571 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
1572 fp regs if the last fp arg doesn't fit in regs.
1574 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
1577 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
1578 that the last insn has the REG_INC note.
1580 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
1581 Nathan Sidwell <nathan@codesourcery.com>
1584 * stor-layout.c (update_alignment_for_field): Do not align
1586 (place_union_field): Place union field at the start of the union.
1587 (place_field): Move ERROR_MARK check later, and use the current
1588 allocation position to maintain monotonicity.
1590 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
1592 * dominance.c: Include timevar.h.
1593 (calculate_dominance_info): Use TV_DOMINANCE.
1594 * timevar.def (TV_DOMINANCE): New timevar.
1595 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
1597 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1599 PR rtl-optimization/14261
1600 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
1601 move would be an INSV insn.
1602 (noce_process_if_block): Don't optimize if the destination is a
1603 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
1605 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1607 * config/s390/s390.md: Add comments with the instructions emitted
1608 by an insn pattern if macros are used.
1610 2006-04-19 Alan Modra <amodra@bigpond.net.au>
1612 PR rtl-optimization/26026
1613 * fold-const.c (fold_binary): Optimize div and mod where the divisor
1614 is a known power of two shifted left a variable amount.
1616 2006-04-18 Geoffrey Keating <geoffk@apple.com>
1618 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
1619 to hash table twice when the debug_str section has SECTION_MERGE.
1621 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
1623 * config/soft-fp: New directory. From glibc.
1624 * config/soft-fp/t-softfp: New.
1625 * config/soft-fp/README: New.
1626 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
1627 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
1628 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
1629 (LIBGCC_DEPS): Add $(SFP_MACHINE).
1630 * config.gcc: Use rs6000/t-fprules-fpbit or
1631 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
1633 * config/rs6000/sfp-machine.h: New. Based on glibc.
1634 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
1636 * config/rs6000/t-fprules: Remove fp-bit rules.
1637 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
1638 * config/rs6000/t-linux64: Likewise. Remove duplicates from
1639 LIB2FUNCS_EXTRA. Remove fp-bit rules.
1640 (softfp_wrap_start, softfp_wrap_end): New.
1642 2006-04-18 DJ Delorie <dj@redhat.com>
1644 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
1646 2006-04-18 Devang Patel <dpatel@apple.com>
1648 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
1650 2006-04-18 Nick Clifton <nickc@redhat.com>
1652 * config/sh/t-symbian: Add rule to build sh-c.o
1653 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
1654 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
1655 (sh_symbian_encode_section_info): Likewise.
1657 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
1659 * builtins.c (expand_builtin_strcmp): Cover label definition of
1660 do_libcall with HAVE_cmpstrnsi.
1662 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
1664 * function.c (temp_slots_at_level, max_slot_level): Use VEC
1666 * function.h (temp_slot_p): New.
1667 (function): Change the type of x_used_temp_slots to
1668 VEC(temp_slot_p,gc) *.
1670 2006-04-18 Nick Clifton <nickc@redhat.com>
1672 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1673 flag_strength_reduce.
1675 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1677 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1681 Partial revert of revision 112637
1682 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1683 Dale Johannesen <dalej@apple.com>
1686 * regclass.c (struct reg_pref): Update documentation.
1687 (regclass): Set prefclass to NO_REGS if memory is the best option.
1688 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1690 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1692 PR tree-optimization/26821
1693 * tree-ssa-math-opts.c (get_constant_one): New.
1694 (insert_reciprocals): Use it.
1696 2006-04-17 Geoffrey Keating <geoffk@apple.com>
1698 * dwarf2out.c (free_AT): Delete.
1699 (remove_AT): Update string ref counts.
1700 (remove_child_TAG): Don't call free_die.
1702 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1703 or DW_TAG_GNU_EINCL.
1704 (prune_unused_types_walk_attribs): Reset string refcounts.
1705 (prune_unused_types_update_strings): New.
1706 (prune_unused_types_prune): Don't make unnecessary stores. Don't
1707 call free_die. Do call prune_unused_types_update_strings.
1708 (prune_unused_types): Empty debug_str_hash.
1710 2006-04-17 Roger Sayle <roger@eyesopen.com>
1712 * expr.c (expand_assignment): Optimize away no-op moves where the
1713 source and destination are equal and have no side-effects.
1715 2006-04-17 Richard Guenther <rguenther@suse.de>
1718 * reload.c (push_reload): Guard calls to get_secondary_mem
1721 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
1723 * alias.c (reg_base_value, old_reg_base_value): Change the
1724 type to VEC(rtx,gc) *.
1725 (REG_BASE_VALUE, find_base_value, record_set,
1726 init_alias_analysis): Use VEC instead of VARRAY.
1728 * alias.c (alias_sets): Change the type to
1729 VEC(alias_set_entry,gc) *.
1730 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1731 VEC instead of VARRAY.
1732 (last_alias_set): Remove.
1734 * cgraph.h (cgraph_edge_p): New.
1735 Update the prototype of cgraph_function_versioning.
1736 * cgraphunit.c (cgraph_copy_node_for_versioning,
1737 cgraph_function_versioning): Use VEC instead of VARRAY.
1738 * ipa-cp.c (ipcp_insert_stage): Likewise.
1740 2006-04-16 Roger Sayle <roger@eyesopen.com>
1743 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1744 "A op B" or "A op C", we may need to convert A to the type of B and C.
1746 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
1748 * target.h (struct gcc_target): Add mode_rep_extended.
1749 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1750 (init_num_sign_bit_copies_in_rep): Initialize it using
1752 (truncate_to_mode): Use it.
1753 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1754 * targhooks.h (default_mode_rep_extended): Declare it.
1755 * targhooks.c (default_mode_rep_extended): Define it.
1756 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
1757 default_mode_rep_extended.
1758 (TARGET_INITIALIZER): Include it.
1759 * doc/tm.texi (Misc): Document it.
1760 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1761 (mips_truncated_to_mode): New function.
1763 2006-04-16 Roger Sayle <roger@eyesopen.com>
1766 * expr.c (compress_float_constant): Copy the narrow constant into
1767 a new pseudo before extending it to its final width.
1769 2006-04-16 Roger Sayle <roger@eyesopen.com>
1770 Andrew Pinski <pinskia@gcc.gnu.org>
1771 Dale Johannesen <dalej@apple.com>
1774 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1775 special case code to implement V8HImode and V16QImode with SSE2.
1777 2006-04-15 Roger Sayle <roger@eyesopen.com>
1779 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1780 trees are constructed with a suitable tree type.
1782 2006-04-15 Roger Sayle <roger@eyesopen.com>
1784 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1785 (integer_onep): Likewise.
1786 (integer_all_onesp): Likewise.
1787 (integer_pow2p): Likewise.
1788 (integer_nonzerop): Likewise.
1789 (real_zerop): Likewise.
1790 (real_onep): Likewise.
1791 (real_twop): Likewise.
1792 (real_minus_onep): Likewise.
1793 (int_size_in_bytes): Likewise.
1794 (host_integerp): Likewise.
1796 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
1798 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1799 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1800 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1802 * tree-ssa-structalias.h (alias_info): Remove num_references.
1804 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1806 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1807 (output_bvb patterns): Likewise.
1808 * pa.c (output_bb): Use 'bb' insn for long branch case.
1809 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1810 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1811 1. Correct length operand for alternatives 1 and 2.
1812 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1813 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
1815 2006-04-14 Roger Sayle <roger@eyesopen.com>
1817 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1818 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1819 were accidentally reverted by r112959.
1821 2006-04-15 Jakub Jelinek <jakub@redhat.com>
1824 * except.h (eh_region_outermost): New prototype.
1825 * except.c (eh_region_outermost): New function.
1826 * tree-cfg.c (find_outermost_region_in_block): Use it.
1828 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1830 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1832 * reload1.c (reg_equiv_memory_loc_varray): Rename to
1833 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
1834 (init_reload, reload): Use VEC instead of VARRAY.
1835 * reload.h: Update the prototype for
1836 reg_equiv_memory_loc_varray.
1838 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
1839 Eric Botcazou <ebotcazou@libertysurf.fr>
1841 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1844 2005-04-13 Uros Bizjak <uros@kss-loka.si>
1847 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1848 to expand fallback builtin function call.
1850 2006-04-14 Alan Modra <amodra@bigpond.net.au>
1853 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1854 and emit libcall here in case the builtin fails.
1855 (expand_builtin_strcmp): Always emit the libcall here on failure.
1857 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1859 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1860 * flow.c (reg_n_info): Change the type to
1861 VEC(reg_info_p,heap) *.
1862 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1864 * regs.h (reg_info_p): New.
1865 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1866 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1867 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1870 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
1872 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1874 * params.h (MAX_SCHED_READY_INSNS): New macro.
1875 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1876 past MAX_SCHED_READY_INSNS during the first scheduling pass.
1877 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1878 the ready list for 1 cycle during the first scheduling pass.
1879 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1881 2006-04-13 Richard Henderson <rth@redhat.com>
1884 * gimple-low.c (lower_omp_directive): Remove dead code.
1885 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1886 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1887 * omp-low.c (struct omp_region): Move to tree-flow.h.
1888 (root_omp_region): Export.
1889 (omp_regions, lookup_omp_region): Remove.
1890 (determine_parallel_type): Update for struct omp_region changes.
1891 (dump_omp_region): Dump regions with block numbers.
1892 (new_omp_region): Take type and block instead of stmt; malloc
1894 (free_omp_region_1, free_omp_regions): New.
1895 (expand_parallel_call): Take entry_stmt as argument; update for
1896 changes to omp_region.
1897 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1898 (remove_exit_barriers): New.
1899 (expand_omp_parallel): Update for struct omp_region changes.
1900 (expand_omp_synch): Likewise.
1901 (expand_omp): Likewise.
1902 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1903 (expand_omp_for_static_chunk): Likewise.
1904 (expand_omp_for): Likewise.
1905 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1906 (expand_omp_sections): Similarly, with GOMP_sections_end.
1907 (expand_omp_single): New.
1908 (build_omp_regions_1): Update for OMP_CONTINUE.
1909 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1910 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1911 OMP_SECTIONS_SECTIONS.
1912 (lower_omp_single_simple): Don't emit barrier here.
1913 (lower_omp_single_copy): Likewise.
1914 (lower_omp_single): Fix bindings, and lower to straightline now.
1915 (lower_omp_master, lower_omp_ordered): Likewise.
1916 (lower_omp_critical): Likewise.
1917 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
1918 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1919 omp edges, free it afterward.
1920 (make_omp_sections_edges): Remove.
1921 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1922 (move_stmt_r): Handle OMP_CONTINUE.
1923 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
1924 statement pointers to basic blocks. Add type member.
1925 (root_omp_region, new_omp_region, free_omp_regions): Declare.
1926 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1927 * tree-inline.c (estimate_num_insns_1): Likewise.
1928 * tree-pretty-print.c (dump_generic_node): Likewise.
1929 * tree-ssa-operands.c (get_expr_operands): Likewise.
1930 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1931 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1932 (OMP_CONTINUE): New.
1933 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1934 (OMP_SECTIONS_SECTIONS): Remove.
1935 (OMP_SECTION_LAST): New.
1936 (OMP_RETURN_NOWAIT): New.
1938 2006-04-13 Roger Sayle <roger@eyesopen.com>
1940 * fold-const.c (native_encode_vector, native_interpret_real):
1941 Correct obvious mistakes in the previous check-in.
1943 2006-04-13 Roger Sayle <roger@eyesopen.com>
1945 * fold-const.c (native_encode_expr): New function to encode
1946 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1947 or VECTOR_CST into a specified buffer.
1948 (native_encode_int): New function.
1949 (native_encode_real): New function.
1950 (native_encode_complex): New function.
1951 (native_encode_vector): New function.
1952 (native_interpret_expr): Inverse of native_encode_expr to convert
1953 a target representation into an INTEGER_CST, REAL_CST etc...
1954 (native_interpret_int): New function.
1955 (native_interpret_real): New function.
1956 (native_interpret_complex): New function.
1957 (native_interpret_vector): New function.
1958 (fold_view_convert_expr): New function to constant fold/evaluate
1959 a VIEW_CONVERT_EXPR of a suitable constant expression.
1960 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1961 Change call of build1 to fold_build1 when constructing a
1964 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
1965 Ulrich Weigand <uweigand@de.ibm.com>
1968 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1971 2006-04-13 Alan Modra <amodra@bigpond.net.au>
1974 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1975 optimize to lo_sum for DFmode if !TARGET_FPRS.
1977 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1979 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1980 delete_alias_info, compute_flow_sensitive_aliasing,
1981 group_aliases): Use VEC instead of VARRAY.
1982 * tree-ssa-structalias.c (update_alias_info): Likewise.
1983 * tree-ssa-structalias.h (alias_info): Change the type of
1984 processed_ptrs to VEC(tree,heap) *.
1986 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
1989 * config/sh/lib1funcs.h: New file, broken out of:
1990 * config/sh/lib1funcs.asm.
1991 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1993 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1994 * config/sh/lib1funcs-Os-4-200.asm: New file.
1995 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1996 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1997 (EXTRA_MULTILIB_PARTS): Include it.
1998 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1999 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
2000 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
2001 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
2004 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
2006 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
2007 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
2008 tpa_compact, root_var_init, type_var_init): Use VEC instead of
2010 * tree-ssa-live.h: Include vecprim.h.
2011 (tree_partition_associator_d): Change the type of
2012 first_partition to VEC(int,heap) *.
2013 (tpa_first_partition): Use VEC instead of VARRAY.
2015 * Makefile.in (GTFILES): Move functions.h after tree.h.
2016 * function.c (reset_block_changes, record_block_change,
2017 check_block_change, free_block_changes): Use VEC instead of
2019 * function.h (function): Change the type of
2020 ib_boundaries_block to VEC(tree,gc) *.
2021 * tree-inline.c (copy_cfg_body): Initialize
2022 ib_boundaries_block to NULL instead of (varray_type) 0.
2024 2006-04-12 Roger Sayle <roger@eyesopen.com>
2026 * expr.c (emit_group_store): Correct operand order in call to
2027 subreg_lowpart_offset. Always create paradoxical SUBREGs with
2028 a SUBREG_BYTE of zero.
2030 2006-04-12 Richard Guenther <rguenther@suse.de>
2032 * profile.c (compute_branch_probabilities): Remove code
2033 encapsulated in !ir_type (), which are remanents of the
2034 removed RTL profiling code.
2035 * rtl-profile.c: Remove.
2037 2006-04-12 Alan Modra <amodra@bigpond.net.au>
2039 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
2040 magic NULL_RTX comment.
2041 (function_arg): Store entire fp arg to mem if any part should go
2043 (rs6000_arg_partial_bytes): Adjust for above change.
2045 2006-04-11 Roger Sayle <roger@eyesopen.com>
2047 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
2048 if it hasn't been initialized by dwarf2out_init.
2050 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
2052 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
2053 symbolic constants in branch patterns.
2055 2006-04-11 Roger Sayle <roger@eyesopen.com>
2057 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
2059 2006-04-11 Richard Sandiford <richard@codesourcery.com>
2061 PR rtl-optimization/27073
2062 * gcse.c (try_replace_reg): Revert last change. Continue to search
2063 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
2066 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2068 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
2069 aggregate types other than record and union types.
2070 (function_arg): Likewise.
2071 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
2073 (function_value): In 64-bit mode, return objects that require it
2076 2006-04-11 Roger Sayle <roger@eyesopen.com>
2078 * dwarf2out.c (premark_used_types): Remove problematic prototype.
2080 2006-04-11 Jakub Jelinek <jakub@redhat.com>
2082 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
2084 2006-04-03 Jeff Law <law@redhat.com>
2087 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
2088 alias information too.
2090 2006-04-10 Mike Frysinger <vapier@gentoo.org>
2092 * Makefile.in (gcc-cross): Add $(exeext) to target name.
2094 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
2097 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
2098 (premark_used_types_helper): New.
2099 (premark_used_types): New.
2100 (gen_subprogram_die): Call premark_used_types.
2101 (prune_unused_types_walk): Do not prune perennial dies.
2102 * function.c (used_types_insert): New.
2103 * function.h (struct function): Add used_types_hash field.
2104 (used_types_insert): Add prototype.
2105 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
2106 * c-parser.c (c_parser_cast_expression): Save casted types in used
2109 2006-04-11 Mark Mitchell <mark@codesourcery.com>
2112 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
2113 rs6000_explicit_options.float_gprs.
2115 2006-04-10 Roger Sayle <roger@eyesopen.com>
2117 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
2118 from ix86_expand_vector_init_low_nonzero. Take an additional
2119 one_var argument indicating which element is non-zero. Support
2120 one_var != 0 for V4SFmode and V4SImode by permuting the result.
2121 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
2122 with one_var instead of ix86_expand_vector_init_low_nonzero.
2124 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
2126 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
2127 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
2128 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
2129 build/genextract.o): Depend on vecprim.h.
2130 * cfglayout.c, df-problems.c, function.c, genextract.c,
2131 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
2132 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
2136 2006-04-10 Geoffrey Keating <geoffk@apple.com>
2138 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
2139 Declare VECs of this type.
2140 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
2141 (remove_children): Delete.
2142 (add_dwarf_attr): Use VEC routines.
2143 (add_AT_flag): Update for changes to add_dwarf_attr.
2144 (add_AT_int): Likewise.
2145 (add_AT_unsigned): Likewise.
2146 (add_AT_long_long): Likewise.
2147 (add_AT_vec): Likewise.
2148 (add_AT_string): Likewise.
2149 (add_AT_die_ref): Likewise.
2150 (add_AT_fde_ref): Likewise.
2151 (add_AT_loc): Likewise.
2152 (add_AT_loc_list): Likewise.
2153 (add_AT_addr): Likewise.
2154 (add_AT_lbl_id): Likewise.
2155 (add_AT_lineptr): Likewise.
2156 (add_AT_macptr): Likewise.
2157 (add_AT_offset): Likewise.
2158 (add_AT_range_list): Likewise.
2159 (get_AT): Use VEC_iterate.
2160 (remove_AT): Use VEC_ordered_remove.
2161 (free_die): Fold remove_children into here; have it use VEC_iterate.
2162 (print_die): Use VEC_iterate on attrs.
2163 (reverse_die_lists): Don't reverse attr lists.
2164 (die_checksum): Use VEC_iterate on attrs.
2165 (same_die_p): Likewise.
2166 (output_location_lists): Likewise.
2167 (build_abbrev_table): Likewise.
2168 (size_of_die): Likewise.
2169 (unmark_all_dies): Likewise.
2170 (output_abbrev_section): Likewise.
2171 (output_die): Likewise.
2172 (prune_unused_types_walk_attribs): Likewise.
2174 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2176 * doc/install.texi (*-*-solaris2*): Point to the configure page.
2178 2006-04-10 Jakub Jelinek <jakub@redhat.com>
2181 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
2183 2006-04-09 Roger Sayle <roger@eyesopen.com>
2185 * expr.c (store_constructor): Don't bother clearing target if
2186 we're about to assign a vector to it using vec_init_optab.
2188 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
2190 * tree-ssa-alias.c (lhs_may_store_to): New function.
2191 (recalculate_used_alone): Handle LHS of calls.
2193 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2197 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
2198 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
2199 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
2200 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
2201 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
2202 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
2203 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
2204 stubs. Add ".align 8" directives before all ".dword" directives.
2205 (GTHREAD_USE_WEAK): Revise comment.
2206 (TARGET_ATTRIBUTE_WEAK): Define.
2207 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
2208 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
2209 * stublib.c: New file.
2214 * pa.md (cbranch patterns): Revise arguments used in calls to
2215 output_cbranch, output_bb and output_bvd. Add long branch length
2217 (fbranch patterns): Handle long branches.
2218 (jump): Revise length check. Revise arguments for output_lbranch call.
2219 Add long branch length attributes.
2220 (decrement_and_branch_until_zero): Add long branch length attributes.
2221 (output_movb, output_parallel_addb and output_parallel_movb patterns):
2222 Likewise. Revise arguments for output_parallel_addb and
2223 output_parallel_movb calls.
2224 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
2225 output_parallel_movb and output_parallel_addb): Update prototypes.
2226 * pa.c (output_cbranch): Revise arguments. Correct handling of
2227 nullification in long branches.
2228 (output_lbranch): Add new argument to control extraction of delay
2230 (output_bb): Handle long branches.
2231 (output_bvb, output_dbra, output_movb, output_parallel_movb,
2232 output_parallel_addb): Likewise.
2234 2006-04-09 Richard Sandiford <richard@codesourcery.com>
2236 PR rtl-optimization/27073
2237 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
2240 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
2242 * tree.h (tree_memory_tag): Add old_used_alone.
2243 (SMT_OLD_USED_ALONE): New macro.
2244 * tree-ssa-alias.c (recalculate_used_alone): Stop
2245 marking things for renaming unnecessarily.
2247 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2249 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
2250 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
2251 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
2252 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
2253 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
2254 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
2255 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
2256 spelling convensions.
2257 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
2258 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
2259 typos. Follow spelling conventions.
2261 2006-04-07 DJ Delorie <dj@redhat.com>
2263 * config/m32c/m32c.c (m32c_function_arg): Structures are always
2264 passed on the stack.
2265 (m32c_init_cumulative_args): When a function returns a structure,
2266 always pass the pointer to that return area on the stack.
2267 (m32c_function_arg_advance): Don't increment the parameter number
2268 if we're processing the returned structure pointer.
2269 (pushm_info): Reverse order of registers.
2271 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
2273 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
2274 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
2275 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
2276 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
2278 * tree-chrec.c (chrec_fold_multiply_poly_poly,
2279 chrec_fold_multiply): Same.
2280 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
2281 force_expr_to_var_cost): Same.
2282 * tree-mudflap.c (mf_xform_derefs_1): Same.
2283 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
2285 2006-04-07 David Edelsohn <edelsohn@gnu.org>
2287 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
2288 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
2291 2006-04-07 Jan Hubicka <jh@suse.cz>
2293 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
2295 2006-04-07 Richard Guenther <rguenther@suse.de>
2297 PR tree-optimization/26135
2298 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
2299 loads for store copy-prop.
2300 (copy_prop_visit_stmt): Likewise.
2302 2006-04-05 Robert Millan <robertmh@gnu.org>
2304 * config/i386/linux.h: Add a comment to mark macros that are
2305 being overriden in config/k*bsd-gnu.h.
2306 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
2308 * config/knetbsd-gnu.h: Ditto.
2310 2006-04-06 Jan Hubicka <jh@suse.cz>
2314 * coverage.c (coverage_checksum_string): Reorganize loop to not read
2317 2006-04-06 Mike Stump <mrs@apple.com>
2319 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
2320 for HAVE_nonlocal_goto to be consistent.
2321 (expand_builtin_nonlocal_goto): Likewise.
2322 (expand_builtin_strcmp): Use #ifdef instead of #if
2323 for HAVE_cmpstrnsi to be consistent.
2325 2006-04-05 DJ Delorie <dj@redhat.com>
2327 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
2330 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
2332 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
2333 got-relative addressing for anything but SImode.
2335 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
2336 even if the calling function doesn't modify them.
2338 2006-04-05 Richard Guenther <rguenther@suse.de>
2340 PR tree-optimization/26919
2341 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
2342 to cgraph_estimate_size_after_inlining.
2344 2006-04-05 Alan Modra <amodra@bigpond.net.au>
2346 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
2348 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
2350 PR tree-optimization/26996
2351 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
2352 VECTOR_TYPE variables.
2354 2006-04-05 Richard Guenther <rguenther@suse.de>
2356 PR tree-optimization/26763
2357 * fold-const.c (fold_comparison): Move folding of
2358 PTR + CST CMP PTR + CST ...
2359 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
2361 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
2363 * doc/install.texi (Prerequisites): Refine some wording on
2364 bootstrapping and ksh.
2365 Move the version numbers of DejaGnu here from the testing section
2366 and fix casing of names.
2367 Fix markup and clarify wording for autogen requirements.
2368 Refer to GCJ instead of just java.
2369 Refer to SVN instead of CVS.
2370 Describe diffutils as useful instead of necessary.
2371 (Downloading the source): Refer to SVN instead of CVS.
2372 Adjust a link to our web site accordingly.
2373 (Configuration): Fix casing of Bison.
2374 (Building): Refer to SVN instead of CVS.
2375 Fix a sentence on the use of Bison and remove duplicate (and
2376 incorrect) version number of Bison requirement.
2377 Remove one redundant list of packages needed for building.
2378 (Specific): Avoid reference to CVS.
2380 2006-04-04 Eric Christopher <echristo@apple.com>
2382 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
2383 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
2384 (rs6000_handle_struct_attribute): New.
2385 (rs6000_ms_bitfield_layout_p): Ditto.
2387 2006-04-04 Geoffrey Keating <geoffk@apple.com>
2389 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
2390 NULL for dso parameter to atexit_common.
2392 2006-04-04 Eric Christopher <echristo@apple.com>
2394 * config/i386/i386.c (machopic_output_stub): Output \t
2395 between instructions and operands.
2397 2006-04-04 David Edelsohn <edelsohn@gnu.org>
2399 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
2400 satisfies_constraint_[IL] to explicit tests on value.
2402 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
2404 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2405 set_nb_iterations_in_loop): Use build_int_cst instead of
2407 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
2408 build_int_cst instead of convert.
2410 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
2412 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
2413 new value 2 for incoming.
2414 * function.c (expand_function_start): Call struct_value_rtx
2416 * config/sparc/sparc.md: Comment updated_return.
2417 * config/sparc/sparc.opt: Add -mstd-struct-return option.
2418 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
2419 struct return if sparc_std_struct_return and incoming is 2.
2420 (print_operand): Do not adjust return if
2421 sparc_std_struct_return.
2423 2006-04-04 Roger Sayle <roger@eyesopen.com>
2425 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
2426 convert in the middle-end.
2427 * expr.c (store_expr, store_constructor, get_inner_reference,
2428 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
2430 * tree.c (build_range_type): Likewise.
2432 2006-04-04 Tom Tromey <tromey@redhat.com>
2434 * doc/install.texi (Prerequisites): Mention jar.
2436 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
2438 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
2441 2006-04-04 Matthias Klose <doko@debian.org>
2443 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
2444 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
2447 2006-04-03 Geoffrey Keating <geoffk@apple.com>
2449 * doc/extend.texi (Function Attributes): Rewrite visibility
2450 attribute documentation.
2451 * doc/invoke.texi (C++ Dialect Options): Rewrite
2452 -fvisibility-inlines-hidden documentation to describe something
2453 entirely different, although in practise compatible.
2454 (Code Gen Options): Warn about system headers in -fvisibiltity=
2457 * doc/extend.texi (Other Builtins): Document that
2458 __builtin_nan is a compile-time constant only when its argument
2461 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
2463 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
2464 trying to remove TRUNCATE check if all bits outside the new mode
2465 are identical to the sign bit.
2467 2006-04-03 Jeff Law <law@redhat.com>
2469 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
2470 and operand scanning in some common cases.
2472 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
2473 Dale Johannesen <dalej@apple.com>
2476 * regclass.c (struct reg_pref): Update documentation.
2477 (regclass): Set prefclass to NO_REGS if memory is the best option.
2478 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2479 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
2480 into account. For non-registers, equate an empty preferred
2481 reload class to a `!' in the constraint; move the if clause to
2482 do so after those that reject the insn.
2483 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
2485 (find_dummy_reload): Likewise.
2486 * doc/tm.texi (Register Classes): Document what it means
2487 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
2488 * config/i386/i386.c (ix86_preferred_reload_class): Force
2489 using SSE registers (and return NO_REGS for floating-point
2490 constants) if math is done with SSE.
2491 (ix86_preferred_output_reload_class): New.
2492 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
2493 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
2494 * config/i386/i386.md: Remove # register preferences.
2496 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2499 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2500 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
2501 the type of nb_iter.
2502 (instantiate_parameters_1): Convert the operands before calling
2503 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
2504 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
2506 2006-04-02 Roger Sayle <roger@eyesopen.com>
2508 * builtins.c (dummy_object): Use build_int_cst instead of convert.
2509 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
2511 * dojump.c (do_jump): Likewise.
2512 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
2513 * gimplify.c (gimple_boolify, gimplify_init_constructor,
2514 gimplify_boolean_expr): Likewise.
2515 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2516 * varasm.c (array_size_for_constructor): Likewise.
2517 * tree-object-size.c (compute_object_offset): Likewise.
2519 2006-04-02 Roger Sayle <roger@eyesopen.com>
2522 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
2523 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
2525 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2527 PR tree-optimization/26939
2528 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
2530 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2532 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
2533 at_stmt. Convert the type of operands before calling
2534 build_polynomial_chrec.
2535 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
2537 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
2538 (instantiate_parameters_1): Convert the type of operands before calling
2539 build_polynomial_chrec.
2540 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2541 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
2542 reset_evolution_in_loop): Insert asserts to check the types of the
2544 (chrec_type): Moved...
2545 (eq_evolutions_p): Use operand_equal_p.
2546 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
2547 the types of the operands.
2548 (chrec_type): ...here.
2549 * tree-data-ref.c (create_data_ref): Convert the operands before
2550 calling chrec_replace_initial_condition.
2551 (same_access_functions, analyze_subscript_affine_affine,
2552 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
2553 (compute_subscript_distance, analyze_ziv_subscript,
2554 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
2555 analyze_miv_subscript): Convert the operands before calling
2556 chrec_fold_minus or chrec_fold_plus.
2558 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2560 * tree-data-ref.c (compute_all_dependences): Use a pointer to
2561 the dependence_relations vector.
2562 (compute_data_dependences_for_loop): Adjust call to
2563 compute_all_dependences.
2565 2006-04-01 Roger Sayle <roger@eyesopen.com>
2566 Richard Henderson <rth@redhat.com>
2568 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
2569 gimple_boolify on the condition before calling gimplify_expr.
2571 2006-03-31 Bob Wilson <bob.wilson@acm.org>
2573 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
2574 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
2575 the frame size. Update to use the new macros.
2576 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
2577 * config/xtensa/ieee754-df.S: Likewise.
2579 2006-03-31 Richard Henderson <rth@redhat.com>
2581 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
2582 (make_edges): ... here. Control fallthru creation with a local
2583 variable. Do not play with fake edges.
2584 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
2585 (make_goto_expr_edges): Don't play with fake edges. Make for_call
2588 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
2590 * dwarf2.h (DW64_CIE_ID): Define.
2591 * dwarf2out.c (DWARF_CIE_ID): Define.
2592 (output_call_frame_info): Output 0xffffffff before standard 8-byte
2593 length header. Use DWARF_CIE_ID.
2594 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
2595 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
2597 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
2599 * config/sh/linux-atomic.asm: New file.
2600 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
2602 2006-03-31 DJ Delorie <dj@redhat.com>
2604 * config/m32c/cond.md: Set condition flags properly throughout.
2605 * config/m32c/minmax.md: Likewise.
2606 * config/m32c/prologue.md: Likewise.
2607 * config/m32c/bitops.md: Likewise.
2608 * config/m32c/muldiv.md: Likewise.
2609 * config/m32c/mov.md: Likewise.
2610 * config/m32c/addsub.md: Likewise.
2611 * config/m32c/m32c.md: Likewise.
2612 * config/m32c/jump.md: Likewise.
2613 * config/m32c/shift.md: Likewise.
2615 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
2616 conditionally output the pattern for this.
2617 * config/m32c/m32c.c (flags_needed_for_conditional): New.
2618 (m32c_compare_redundant): New.
2619 (m32c_output_compare): New.
2620 * config/m32c/m32c-protos.h (m32c_output_compare): New.
2622 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
2623 dest, not src. Allow other 4-byte modes.
2625 2006-03-30 Denis Chertykov <denisc@overta.ru>
2627 * doc/md.texi: Refer to avr/constraints.md instead of
2630 2006-03-30 Roger Sayle <roger@eyesopen.com>
2632 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
2633 signed vs. unsigned comparison failures on some hosts.
2635 2006-03-31 Alan Modra <amodra@bigpond.net.au>
2638 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
2639 change to FLOAT_REGS.
2641 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
2642 (rs6000_override_options): Use it.
2643 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
2644 only for -mabi=spe/no-spe and -mabi=altivec.
2646 2006-03-30 Geoffrey Keating <geoffk@apple.com>
2648 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
2651 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2653 * Makefile.in: Rename docdir to gcc_docdir.
2655 2006-03-30 Roger Sayle <roger@eyesopen.com>
2658 * expr.c (emit_group_store): Optimize group stores into a pseudo
2659 register by using a paradoxical subreg to initialize the destination
2660 if the first or last member of the group specifies a "low part".
2662 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2665 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2666 * target.h (struct gcc_target.speculate_insn): Change type of the
2667 second parameter to 'int'.
2668 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
2669 the second operand of the DEPS_LIST.
2670 (copy_DEPS_LIST_list): Update reference to the second operand of the
2672 * rtl.h (alloc_DEPS_LIST): Update signature.
2673 * sched-int.h (ds_t): Change typedef to 'int'.
2674 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2676 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2678 * haifa-sched.c (try_ready): Change condition to restore
2679 non-speculative pattern of the instruction.
2680 (process_insn_depend_be_in_spec): Code to keep probability of the
2681 speculative dependence non-decreasing.
2683 2006-03-30 Jie Zhang <jie.zhang@analog.com>
2685 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2686 (single_move_for_movmem): ... this. Also change all uses.
2687 (bfin_expand_strmov): Renamed to...
2688 (bfin_expand_movmem): ... this. Also change all uses.
2689 * config/bfin/bfin.md (movstrsi): Renamed to...
2690 (movstrsi): ...this.
2692 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
2694 PR tree-optimization/26830
2696 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2697 (copy_prop_visit_stmt): Remove write-only variable ann.
2698 (init_copy_prop): Check variable loop depth here. Do not simulate
2699 memory-tag and virtual operand PHIs except for store copy prop.
2701 2006-03-30 Richard Guenther <rguenther@suse.de>
2703 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2704 variants with double arguments.
2706 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2708 * genpreds.c (write_tm_constrs_h): Delete variable p.
2709 * genconditions.c (write_header): Add tm-constrs.h to included
2711 * genpeep.c (main): Add toplev.h to included headers.
2712 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
2713 (build/genpeep.o): Add toplev.h dependency.
2714 * config/rs6000/constraints.md: Add "W" constraint.
2716 2006-03-29 Roger Sayle <roger@eyesopen.com>
2718 * stor-layout.c (mode_for_size_tree): Remove restiction on type
2719 sizes by correctly testing whether the size fits a host integer.
2720 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2721 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2722 SImode range for the default sizetype and bitsizetype.
2724 2006-03-29 Roger Sayle <roger@eyesopen.com>
2726 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2727 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
2728 quickly if the argument is already of the correct type.
2729 Call fold_build1 instead of build1. Tidy up blank lines.
2731 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2733 * genemit.c (main): Add tm-constrs.h to included headers.
2734 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2735 * genpeep.c (main): Add tm-constrs.h to included headers.
2736 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2737 (write_tm_constrs_h): this and write complete file.
2738 (write_tm_preds_h): Do not emit satisfies_constraint fns.
2739 (write_insn_preds_c): Add tm-constrs.h to included headers.
2740 (gen_constrs): New variable.
2741 (parse_option): Parse "-c".
2742 (main): Invoke write_tm_constrs_h.
2743 * genrecog.c (write_header): Add tm-constrs.h to included headers.
2744 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2745 (object_out_file): Add tm-constrs.h dependency.
2746 (insn-emit.o): Same.
2747 (insn-output.o): Same.
2748 (insn-peep.o): Same.
2749 (insn-preds.o): Same.
2750 (insn-recog.o): Same.
2751 (tm-constsr.h): New target.
2752 (s-constrs-h): New target.
2754 * config/rs6000/constraints.md: New file.
2755 * config/rs6000/rs6000.c: Include tm-constrs.h.
2756 (num_insn_constant_wide): Convert to satisfies_constraint.
2757 (rs6000_rtx_costs): Convert to satisfies_constraint.
2758 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2759 (CONST_OK_FOR_LETTER_P): Delete.
2760 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2761 (EXTRA_CONSTRAINT): Delete.
2762 (EXTRA_MEMORY_CONSTRAINT): Delete.
2763 (EXTRA_ADDRESS_CONSTRAINT): Delete.
2764 * config/rs6000/predicates.md: Convert to satisfies_constraint.
2765 * config/rs6000/rs6000.md: Include constraints.md. Convert to
2766 satisfies_constraint.
2768 * config/i386/i386.c: Include tm-constrs.h.
2770 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2772 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2773 * tree-data-ref.c (find_data_references_in_loop,
2774 compute_data_dependences_for_loop): Use pointers to VEC.
2775 (analyze_all_data_dependences): Adjust calls.
2776 * tree-data-ref.h (find_data_references_in_loop,
2777 compute_data_dependences_for_loop): Adjust declarations.
2778 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2779 compute_data_dependences_for_loop.
2781 2006-03-29 Paul Brook <paul@codesourcery.com>
2783 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2786 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2788 PR tree-optimization/26859
2789 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2791 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2792 for the step after fold_convert.
2794 2006-03-29 Paul Brook <paul@codesourcery.com>
2796 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2797 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2799 2006-03-29 Paul Brook <paul@codesourcery.com>
2802 * targhooks.c (default_narrow_bitfield): New fuction.
2803 * targhooks.h (default_narrow_bitfield): add prototype.
2804 * target.h (gcc_target): Add narrow_volatile_bitfield.
2805 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2806 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2807 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2808 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2810 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
2812 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2814 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2815 (NR_C_MODES): Add TDmode, DDmode and SDmode.
2816 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2817 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2818 (s390_function_arg_float): Allow SDmode and DDmode values to be
2819 passed in floating point registers.
2820 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2821 check with SCALAR_FLOAT_MODE_P.
2822 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2824 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2826 PR tree-optimization/25985
2827 * tree-ssa-loop-niter.c (number_of_iterations_le,
2828 number_of_iterations_ne): Make comments more precise.
2829 (number_of_iterations_cond): Add only_exit argument. Use the
2830 fact that signed variables do not overflow only when only_exit
2832 (loop_only_exit_p): New.
2833 (number_of_iterations_exit): Pass result of loop_only_exit_p to
2834 number_of_iterations_cond.
2836 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2838 PR tree-optimization/26643
2839 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2842 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
2844 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2845 (divsi3_i4_int): Likewise.
2847 2006-03-28 Roger Sayle <roger@eyesopen.com>
2849 * expr.c (emit_group_store): Only create a new pseudo reg if the
2850 quantity it needs to hold isn't already a suitable pseudo.
2852 2006-03-28 Jeff Law <law@redhat.com>
2854 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2855 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2857 2006-03-28 Roger Sayle <roger@eyesopen.com>
2859 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2860 the equivalent ~X & Y, and the symmetry related transformations.
2861 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2862 ~X & Y, and symmetry related transforms.
2864 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2866 Revert my 2006-03-27 patches.
2868 2006-03-28 Roger Sayle <roger@eyesopen.com>
2870 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2871 ~(T1)X, when T1 and T2 are integer types of the same precision
2872 and (T2)X isn't an extension.
2874 2006-03-28 Jeff Law <law@redhat.com>
2876 PR tree-optimization/26796
2877 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2878 need EH edge cleanups rather than purging them immediately.
2879 (eliminate_degenerate_phis): Handle queued EH cleanups.
2881 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
2883 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2886 2006-03-27 Roger Sayle <roger@eyesopen.com>
2889 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2890 cast BIT_NOT_EXPR operand to the correct type.
2892 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
2894 * tree-loop-linear.c: Don't include varray.h.
2895 (gather_interchange_stats, try_interchange_loops,
2896 linear_transform_loops): Use VEC instead of VARRAY.
2897 * lambda-mat.c: Don't include varray.h.
2898 * tree-chrec.c: Same.
2899 * lambda-trans.c: Same.
2900 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2901 VEC instead of VARRAY.
2902 * tree-vectorizer.h: Idem.
2903 * tree-data-ref.c (dump_data_references,
2904 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2905 initialize_data_dependence_relation, finalize_ddr_dependent,
2906 compute_all_dependences, find_data_references_in_loop,
2907 compute_data_dependences_for_loop, analyze_all_data_dependences,
2908 free_dependence_relation, free_dependence_relations,
2909 free_data_refs): Idem.
2910 * tree-data-ref.h (data_reference_p, subscript_p): New.
2911 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2912 VEC instead of VARRAY.
2913 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2914 (find_data_references_in_loop, compute_data_dependences_for_loop,
2915 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2916 dump_data_dependence_relations, free_dependence_relations,
2917 free_data_refs): Adjust declaration.
2918 (lambda_transform_legal_p): Move declaration here...
2919 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2920 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2921 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2922 vect_analyze_data_refs): Use VEC instead of VARRAY.
2923 * lambda.h (lambda_transform_legal_p): ...from here.
2924 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2925 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2926 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2927 tree-chrec.o): Don't depend on VARRAY_H.
2929 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2931 * rtl.def (Copyright): Update date.
2932 (DEPS_LIST): Change type of the second operand to 'int'.
2933 * target.h (Copyright): Update date.
2934 (struct gcc_target.speculate_insn): Change type of the second parameter
2936 * lists.c (Copyright): Update date.
2937 (alloc_DEPS_LIST): Change signature. Update reference to the second
2938 operand of the DEPS_LIST.
2939 (copy_DEPS_LIST_list): Update reference to the second operand of the
2941 * rtl.h (Copyright): Update date.
2942 (alloc_DEPS_LIST): Update signature.
2943 * sched-int.h (Copyright): Update date.
2944 (ds_t): Change typedef to 'int'.
2945 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2947 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2949 * haifa-sched.c (Copyright): Update date.
2950 (try_ready): Change condition to restore non-speculative pattern
2952 (process_insn_depend_be_in_spec): Code to keep probability of the
2953 speculative dependence non-decreasing.
2955 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
2957 * regrename.c (replace_oldest_value_addr): Initialize a variable to
2958 shut up the compiler.
2960 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
2962 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2963 to use lib prefix for target.
2964 ($(T)libic_invalidate_array_4-200.a): Likewise.
2965 ($(T)libic_invalidate_array_4a.a): Likewise.
2967 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
2968 J"orn Rennecke <joern.rennecke@st.com>
2970 * superh.opt: New file.
2971 * sh.c (boardtype, osruntime): Remove.
2972 * superh.h (SUBTARGET_OPTIONS): Remove.
2973 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2975 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
2976 arguments with ^ and/or [].
2978 * config.gcc (sh-*-*): Add quoting to account for quirk of
2980 Replace == with = in enable_incomplete_targets test.
2982 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2983 with MASK_LITTLE_ENDIAN.
2985 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2986 * config/sh/sh.opt: Added to some comments.
2987 * config/sh/superh.h: Removed some chaff.
2989 * config/sh/sh.opt: Add m4-[1234]00* options.
2990 * config/sh/sh.c (sh_handle_option): Likewise.
2991 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2992 (ic_invalidate_array_4-100.o): New rule.
2993 ($(T)libic_invalidate_array_4-100.a): Likewise.
2994 (ic_invalidate_array_4-200.o): Likewise.
2995 ($(T)libic_invalidate_array_4-200.a): Likewise.
2996 (ic_invalidate_array_4a.o): Likewise.
2997 ($(T)libic_invalidate_array_4a.a): Likewise.
2998 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2999 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
3001 * config/sh/crt1.asm: Merged in profiling code.
3002 * config/sh/superh.h (STARTFILE_SPEC): Override.
3003 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
3004 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
3005 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
3007 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
3008 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
3009 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
3011 * sh.opt (mpretend-cmove): New option.
3012 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
3013 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
3014 (movsicc): Add TARGET_PRETEND_CMOVE code.
3016 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
3018 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
3019 s390_class_max_nregs): New function prototypes.
3020 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
3021 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
3022 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
3023 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
3025 2006-03-26 Geoffrey Keating <geoffk@apple.com>
3027 * dwarf2out.c (add_location_or_const_value_attribute): Call
3028 tree_add_const_value_attribute if nothing else works.
3029 (reference_to_unused): New.
3030 (rtl_for_decl_init): Use reference_to_unused to decide whether
3031 to output an initializer.
3033 2006-03-27 Alan Modra <amodra@bigpond.net.au>
3036 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
3037 peephole removing spe frob_di_df_2.
3039 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
3041 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
3042 (subscript_dependence_tester_1): Declared.
3043 (print_dir_vectors, print_dist_vectors): New.
3044 (debug_data_dependence_relation): New.
3045 (dump_data_dependence_relation): Print more details.
3046 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
3047 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
3048 (save_dist_v, save_dir_v, add_outer_distances,
3049 build_classic_dist_vector_1): New.
3050 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
3051 Don't test for lambda_vector_lexico_pos.
3052 (same_access_functions, add_multivariate_self_dist,
3053 add_other_self_distances, dir_from_dist): New.
3054 (build_classic_dir_vector): Replace implementation almost identical to
3055 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
3057 (subscript_dependence_tester_1): New.
3058 (subscript_dependence_tester): Handle the lexicographically negative
3059 distance vectors by recomputing the dependence relation.
3060 (compute_affine_dependence): Remove parameter loop_nest_depth.
3061 (compute_self_dependence): Don't call compute_subscript_distance.
3062 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
3063 Add a parameter for the loop_nest.
3064 (find_loop_nest_1, find_loop_nest): New.
3065 (compute_data_dependences_for_loop): Compute the loop nest, and give
3066 up if the nest is not well formed.
3067 * tree-data-ref.h (loop_p): New.
3068 (struct data_dependence_relation): Replace size_vect field with
3069 loop_nest, a vec of loops.
3070 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
3071 (DDR_LOOP_NEST): New.
3072 (print_dir_vectors, print_dist_vectors,
3073 debug_data_dependence_relation): Declared.
3074 (index_in_loop_nest): New.
3075 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
3076 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
3079 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
3081 * simplify-rtx.c (simplify_relational_operation): Call
3082 simplify_relational_operation_1 even if mode is VOIDmode.
3084 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
3086 PR tree-optimization/26804
3087 * tree.h (DECL_CALL_CLOBBERED): New macro.
3088 (tree_decl_common): Add call_clobbered_flag.
3089 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
3090 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
3091 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
3092 (mark_non_addressable): Ditto.
3093 * tree-ssa.c (verify_call_clobbered): New function.
3094 (verify_alias_info): Use it.
3095 * tree-pass.h (pass_reset_cc_flags): New prototype.
3096 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
3097 (reset_cc_flags): New function.
3098 * passes.c (init_optimization_passes): Call reset_cc_flags after
3099 initializing referenced_vars.
3101 2006-03-25 Uros Bizjak <uros@kss-loka.si>
3102 Roger Sayle <roger@eyesopen.com>
3105 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
3106 to 1.0 for non-real operands. Implement A / A optimization for
3109 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
3111 * config/i386/i386.c (size_cost): Correct the comment for
3112 cost of storing fp registers.
3113 (i386_cost): Likewise.
3114 (i486_cost): Likewise.
3115 (pentium_cost): Likewise.
3116 (pentiumpro_cost): Likewise.
3117 (k6_cost): Likewise.
3118 (athlon_cost): Likewise.
3119 (k8_cost): Likewise.
3120 (pentium4_cost): Likewise.
3121 (nocona_cost): Likewise.
3122 (generic64_cost): Likewise.
3123 (generic32_cost): Likewise.
3125 2006-03-24 Denis Chertykov <denisc@overta.ru>
3127 * config/avr/avr-protos.h (extra_constraint): Delete.
3128 (extra_constraint_Q): New declaration.
3129 * config/avr/constraints.md: New file.
3130 * config/avr/avr.md: Include it.
3131 (REG_X, REG_Y, REG_Z, REG_W): New constants.
3132 (TMP_REGNO, ZERO_REGNO): Likewise.
3133 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
3134 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
3135 (extra_constraint): Delete.
3136 (extra_constraint_Q): Test for memory constraint 'Q'.
3137 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
3138 (REG_CLASS_FROM_LETTER): Delete.
3139 (CONST_OK_FOR_LETTER_P): Delete.
3140 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3141 (EXTRA_CONSTRAINT): Delete.
3142 (TMP_REGNO): Delete.
3143 (ZERO_REGNO): Delete.
3145 2006-03-24 Jeff Law <law@redhat.com>
3147 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
3148 directly. Call mark_new_vars_to_rename slightly earlier.
3150 2006-03-24 Geoffrey Keating <geoffk@apple.com>
3152 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
3154 (gen_compile_unit_die): Use new language types for Objective-C and
3156 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
3157 DW_LANG_C_plus_plus.
3160 * config/t-darwin (crt3.o): Work around bug 26840.
3161 * config/darwin-crt3.c: Rewrite.
3162 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
3164 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
3166 * doc/invoke.texi: Document -femit-class-debug-always
3167 * common.opt: Add -femit-class-debug-always.
3169 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
3171 * config/s390/s390.c (s390_decompose_address): Allow SImode for
3172 index and base register.
3173 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
3174 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
3175 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
3176 REGNO_OK_FOR_INDEX_P.
3177 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
3179 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
3180 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
3181 REG_OK_FOR_BASE_P): Definitions removed.
3183 2006-03-24 Jakub Jelinek <jakub@redhat.com>
3186 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
3187 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
3188 set yet or weren't marked as local yet.
3190 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
3192 * regrename.c (scan_rtx_address): Initialize a variable to shut up
3195 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
3197 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
3198 (rs6000_legitimate_small_data_p): Delete.
3199 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
3200 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
3201 and make static. Add forward declaration. Update uses.
3202 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
3203 of offsettable_memref_p.
3204 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
3205 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
3207 2006-03-24 Jeff Law <law@redhat.com>
3209 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
3210 around bug in immediate-use iterator.
3212 2006-03-24 Alan Modra <amodra@bigpond.net.au>
3215 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
3216 or __LITTLE_ENDIAN__.
3218 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
3220 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
3221 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
3222 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
3223 * config/sh/sh.opt (mdiv=): Amend description.
3224 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
3225 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
3226 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
3227 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
3228 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
3229 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
3230 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
3231 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
3232 TARGET_DIVIDE_CALL_FP.
3234 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3236 * haifa-sched.c (choose_ready): Fix type of the local variable.
3237 Move local variables. Add comment.
3238 (check_reg_live): Change signature. Make callable from debugger.
3239 * sched-int.h (check_reg_live): Update signature.
3240 * sched-ebb.c (check_reg_live): Update parameters.
3241 * sched-rgn.c (check_reg_live): Ditto.
3242 (region_head_or_leaf_p): Check pointer before dereferencing.
3243 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
3244 before reload on optimization levels below 1.
3246 2006-03-23 Richard Henderson <rth@redhat.com>
3248 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
3252 * config/alpha/predicates.md (local_symbolic_operand): Reject
3255 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
3258 * tree-ssa-pre.c (create_value_expr_from): Don't reject
3259 expressions which have overflowed constants.
3261 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3263 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
3265 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3267 * cfgloopmanip.c (create_loop_notes): Removed.
3268 * final.c (final_scan_insn): Do not handle loop notes.
3269 * jump.c (squeeze_notes): Ditto.
3270 * cfglayout.c (skip_insns_after_block,
3271 duplicate_insn_chain): Ditto.
3272 * cfgcleanup.c (rest_of_handle_jump2): Do not call
3274 * cfgloop.h (create_loop_notes): Declaration removed.
3276 2006-03-23 Richard Sandiford <richard@codesourcery.com>
3278 * varasm.c (output_constant_pool): Restore fnname and fndecl
3280 (assemble_start_function): Adjust call accordingly.
3281 (assemble_end_function): Likewise.
3283 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3286 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
3289 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
3291 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3294 * system.h (ICE_EXIT_CODE): New macro.
3295 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
3296 (diagnostic_action_after_output): Likewise.
3297 * gcc.c (fatal_ice): New function.
3298 (execute): Use it instead of fatal.
3299 (fancy_abort): Likewise.
3300 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
3302 2006-03-22 Jeff Law <law@redhat.com>
3304 * loop-unroll.c (analyze_iv_to_split_insn): Handle
3305 iv_analyze_result returning false.
3307 2006-03-22 Jie Zhang <jie.zhang@analog.com>
3309 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
3311 2006-03-22 Richard Henderson <rth@redhat.com>
3314 * except.c (duplicate_eh_regions_0): New.
3315 (duplicate_eh_region_1): Duplicate the children of the node as
3316 well as the node itself. Link them up properly.
3317 (duplicate_eh_region_2): Merge into ...
3318 (duplicate_eh_regions): ... here. Take copy_region argument, and
3319 copy only a sub-tree if asked. Simplify copying and fixup.
3320 (eh_region_outer_p): New.
3321 * except.h (duplicate_eh_regions): Update decl.
3322 (eh_region_outer_p): Declare.
3323 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
3324 (lower_omp_master): Likewise.
3325 (lower_omp_ordered): Likewise.
3326 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
3327 (move_stmt_r): Use it to remap labels. Handle recursion vs
3328 remap_decls_p properly.
3329 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
3330 (find_outermost_region_in_block): New.
3331 (new_label_mapper): New.
3332 (move_sese_region_to_fn): Copy eh information to the new function
3334 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
3336 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
3339 2006-03-22 Richard Sandiford <richard@codesourcery.com>
3341 * doc/md.texi (-mshared): Mention that -mshared code can be linked
3342 into shared libraries.
3344 2006-03-22 Richard Sandiford <richard@codesourcery.com>
3346 * doc/md.texi: Refer to i386/constraints.md instead of
3348 * config/i386/constraints.md: New file, extracted from...
3349 * config/i386/predicates.md: ...here.
3350 * config/i386/i386.md: Include constraints.md.
3352 2006-03-21 Jason Merrill <jason@redhat.com>
3354 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
3357 * expr.c (init_block_move_fn): Force default visibility.
3358 (init_block_clear_fn): Likewise.
3359 * builtins.c (expand_builtin_fork_or_exec): Likewise.
3360 * targhooks.c (default_external_stack_protect_fail): Likewise.
3362 2006-03-21 Richard Sandiford <richard@codesourcery.com>
3364 * config/mips/predicates.md (const_call_insn_operand): Allow direct
3365 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
3366 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
3367 Use TARGET_OLDABI instead of !TARGET_NEWABI.
3368 (loadgp): Use mips_current_loadgp_style.
3369 (loadgp_noshared): New pattern.
3370 (sibcall_internal): Use MIPS_CALL.
3371 (sibcall_value_internal): Likewise.
3372 (sibcall_value_multiple_internal): Likewise.
3373 (call_internal): Likewise.
3374 (call_value_internal): Likewise.
3375 (call_value_multiple_internal): Likewise.
3376 (call_split): Use MIPS_CALL and add an 'S' constraint.
3377 (call_value_split): Likewise.
3378 (call_value_multiple_split): Likewise.
3379 * config/mips/mips.opt (-mabicalls): Tweak docstring.
3380 (-mshared): New option.
3381 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
3382 (mips_current_loadgp_style): Declare.
3383 * config/mips/mips.c (mips_classify_symbol): Avoid using
3384 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
3385 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
3386 TARGET_ABSOLUTE_ABICALLS.
3387 (override_options): Adjust comments. Improve the warning that is
3388 issued when -mabicalls and -G are used together.
3389 (mips_file_start): Remove comment.
3390 (mips_current_loadgp_style): New function.
3391 (mips_gnu_local_gp): New variable.
3392 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
3394 (mips_output_function_prologue): Use mips_current_laodgp_style.
3395 (mips_expand_prologue): Call mips_emit_loadgp before emitting
3396 the cprestore instruction.
3397 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
3398 live for TARGET_ABSOLUTE_ABICALLS.
3399 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
3400 (ASM_SPEC): Pass down -mshared and -mno-shared.
3401 (MIPS_CALL): New macro.
3402 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
3404 * doc/invoke.texi (-mabicalls): Update documentation.
3405 (-mshared): Document.
3407 2006-03-21 Steve Ellcey <sje@cup.hp.com>
3409 * config/ia64/unwind-hpux.c: New file.
3410 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
3412 2006-03-21 Steve Ellcey <sje@cup.hp.com>
3415 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
3417 2006-03-21 Jeff Law <law@redhat.com>
3419 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
3420 type conversions of a VR_VARYING source to a wider type.
3422 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3424 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
3425 tm_file on Solaris 10 and later.
3426 (sparc64-*-solaris2*): Likewise.
3427 (sparc-*-solaris2*): Likewise.
3428 * config/sol26.h: Rename to config/sol2-6.h.
3429 * config/sol2-10.h: New file.
3431 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
3434 * tree-ssa-pre.c (create_component_ref_by_pieces):
3437 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3440 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
3441 return it immediately.
3443 2006-03-21 Michael Matz <matz@suse.de>
3445 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
3447 (remove_arc, add_arc): Update num_out_arcs member.
3448 (set_out_arc_insns_equiv_num): Returns nothing instead of number
3450 (cache_presence): New function.
3451 (compare_states_for_equiv): New function.
3452 (state_is_differed): Don't take number of outargs, adjust callers.
3453 Use new invariant for speeding up.
3454 (init_equiv_class): Create initial classes based on sorted
3456 (partition_equiv_class): Don't track out_arcs_num.
3457 (evaluate_equiv_classes): Call cache_presence on all states and
3460 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
3462 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
3463 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
3464 (bfin_valid_reg_p): Test for pseudos explicitly and use only
3465 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
3467 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
3468 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
3469 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
3470 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
3471 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
3473 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
3474 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
3475 (REGNO_REG_CLASS): ARGP is in PREGS.
3476 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
3478 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
3479 to deal with those addresses.
3480 * addresses.h: New file.
3481 * caller-save.c: Include "addresses.h".
3482 (init_caller_save): Use new base_reg_class function.
3483 * rtl-factoring.c: Include "addresses.h".
3484 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
3485 * recog.c: Include "addresses.h".
3486 (preprocess_constraints): Use new base_reg_class function.
3487 * regrename.c: Include "addresses.h".
3488 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
3489 functions. Keep track of a new var INDEX_CODE to compute valid
3491 (replace_oldest_value_addr): Likewise.
3492 (replace_oldest_value_mem): Use base_reg_class.
3493 * reload.c: Include "addresses.h".
3494 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
3495 (find_reloads): Use new base_reg_class function.
3496 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
3497 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
3498 all callers and prototype changed.
3499 * reload1.c: Include "addresses.h".
3500 (maybe_fix_stack_asms): Use base_reg_class.
3501 * regclass.c: Include "addresses.h".
3502 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
3503 (init_reg_autoinc): Use new base_reg_class function.
3504 (record_reg_classes): Likewise.
3505 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
3506 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
3507 Use new args to compute necessary class.
3509 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
3510 regrename.o, rtl-factoring.o): Update dependencies.
3511 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
3512 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3513 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
3514 REG_OK_FOR_INDEX_P): Delete documentation.
3516 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
3518 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
3519 from V7 to V9 for Solaris 7 and above.
3521 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
3523 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
3524 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
3525 argument pointers may not alias any other storage.
3526 * common.opt: Define option -fargument-noalias-anything.
3527 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
3528 alias semantics is specified by flag_argument_noalias > 2.
3530 2006-03-20 Jeff Law <law@redhat.com>
3532 * tree-pass.h (pass_phi_only_copy_prop): Delete.
3533 (pass_phi_only_cprop): Declare.
3534 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
3536 * tree-ssa-dom.c (degenerate_phi_result): New function.
3537 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
3538 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
3539 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
3540 (eliminate_degenerate_phis): Likewise.
3541 (pass_phi_only_cprop): New pass descriptor.
3542 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
3543 support code. Callers updated.
3544 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
3545 (store_copy_prop): Likewise.
3546 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
3548 2006-03-20 Jason Merrill <jason@redhat.com>
3551 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
3552 (push_visibility, pop_visibility): Likewise.
3553 * c-pragma.h: Declare them.
3555 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
3557 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
3559 * config/sh/sh.c (find_regmode_weight): Change the type of the first
3560 parameter and use get_ebb_head_tail.
3561 (sh_md_init_global): Adjust uses of find_regmode_weight.
3563 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
3565 * function.h (struct function) <x_tail_recursion_reentry>:
3566 Rename to x_stack_check_probe_note.
3567 (tail_recursion_reentry): Rename to stack_check_probe_note.
3568 * function.c: Replace tail_recursion_reentry with
3569 stack_check_probe_note everywhere.
3570 (expand_function_start): Only emit a note for
3571 stack_check_probe_note with -fstack-protect.
3572 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
3574 * emit-rtl.c (remove_unnecessary_notes): Remove.
3575 (pass_remove_unnecessary_notes): Remove.
3576 * rtl.h (remove_unnecessary_notes): Remove prototype.
3577 * final.c (final_start_function): Don't call remove_unnecessary_notes.
3578 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
3579 * passes.c (pass_remove_unnecessary_notes): Don't run it.
3581 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
3584 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
3585 (valid_in_set): Handle ARRAY_REF.
3586 Change "if min_variant or VH" to asserts.
3587 (create_component_ref_by_pieces): Handle ARRAY_REF.
3588 (create_expression_by_pieces): Likewise.
3589 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
3591 2006-03-20 David Edelsohn <edelsohn@gnu.org>
3593 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
3594 is operand of switch, not str[0].
3596 2006-03-20 Alan Modra <amodra@bigpond.net.au>
3598 * config/rs6000/rs6000.c (rs6000_handle_option): Use
3599 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
3601 2006-03-19 David Edelsohn <edelsohn@gnu.org>
3603 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
3604 end of insn_extra_address_constraint declaration.
3606 2006-03-19 David Edelsohn <edelsohn@gnu.org>
3608 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
3609 (no-sum-in-toc): Same.
3610 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
3612 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
3613 NO_FP_IN_TOC for -fPIC instead of mask.
3615 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
3616 (BOOT_LDFLAGS): Delete.
3618 * config/rs6000/t-aix52: Same.
3620 * config/rs6000/rs6000.md (store_multiple_power): Delete.
3621 (stmsi[345678]_power): New.
3623 2006-03-17 Steve Ellcey <sje@cup.hp.com>
3625 * config/ia64/ia64.opt: Add empty line to end of file.
3627 2006-03-17 Richard Guenther <rguenther@suse.de>
3630 * builtins.c (get_pointer_alignment): For component style references
3631 adjust alignment to the component type alignment. Make sure
3632 to adjust alignment for component access of constants.
3634 2006-03-17 David Edelsohn <edelsohn@gnu.org>
3636 * config/rs6000/rs6000.md (strlensi): Emit barrier after
3639 2006-03-17 Paul Brook <paul@codesourcery.com>
3641 * doc/install.texi: Docuemnt --with-mode.
3642 * config.gcc: Add --with-mode for arm*-*-*.
3643 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
3645 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
3647 * sh.c (max_labelno_before_reorg): New variable.
3648 (sh_reorg): Initialize it.
3649 (find_barrier): Check max_labelno_before_reorg before using
3650 label_to_alignment. Take length of explicit alignment insns
3651 into account. When seeing a UNSPECV_CONST_END, return it.
3653 * sh.c (fixup_mova): Set mode of affected label to QImode.
3654 (untangle_mova): New function.
3655 (find_barrier): Use it. Check mode of label before decrementing
3657 (sh_reorg): Likewise.
3658 Set mode of all insns back to VOIDmode.
3660 * sh.c (MOVA_LABELREF): New macro.
3661 (mova_p, fixup_mova, sh_reorg): Use it.
3662 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
3663 ADDR_DIFF_VEC matches mova.
3665 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
3667 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3668 with ATTRIBUTE_UNUSED.
3670 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3672 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3673 pointer, instead of assuming it is possible to derive the
3674 correct args size from a call insn.
3676 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3678 * rtl.h (CONST_INT_P): Define.
3679 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3680 instead of GET_CODE(x) == CONST_INT.
3681 (vax_rtx_costs): Likewise.
3682 (vax_output_int_move): Likewise.
3683 (vax_output_int_add): Likewise.
3684 (legitimate_constant_address_p): Likewise.
3685 (index_term_p): Likewise.
3686 * config/vax/vax.h (PRINT_OPERAND): Likewise.
3687 * config/vax/vax.md (and<mode>3): Likewise.
3688 (ashrsi3): Likewise.
3690 (movstricthi): Likewise.
3691 (movstrictqi): Likewise.
3692 (rotrsi3): Likewise.
3693 (five unnamed insns): Likewise.
3695 2006-03-16 Geoffrey Keating <geoffk@apple.com>
3697 * doc/tm.texi (SDB and DWARF): Add extra parameter to
3698 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
3699 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
3700 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
3701 Pass to ASM_OUTPUT_DWARF_OFFSET.
3702 * dwarf2out.c (debug_frame_section): New.
3703 (output_call_frame_info): Use debug_frame_section. Pass it to
3704 dw2_asm_output_offset.
3705 (output_die): Pass appropriate section to dw2_asm_output_offset.
3706 (output_compilation_unit_header): Likewise.
3707 (output_pubnames): Likewise.
3708 (output_aranges): Likewise.
3709 (enum dw_val_class): Break dw_val_class_lbl_offset into
3710 dw_val_class_lineptr and dw_val_class_macptr.
3711 (add_AT_lbl_offset): Delete.
3712 (add_AT_lineptr): New.
3713 (add_AT_macptr): New.
3714 (AT_lbl): Expect a lineptr or macptr.
3715 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
3716 (attr_checksum): Likewise.
3717 (same_dw_val_p): Likewise.
3718 (size_of_die): Likewise.
3719 (value_format): Likewise.
3720 (output_die): Likewise.
3721 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
3723 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3724 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
3725 * config/darwin-protos.h (darwin_file_start): New.
3726 (darwin_asm_output_dwarf_offset): New.
3727 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3728 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
3730 * config/darwin.c (darwin_emit_unwind_label): Don't output label
3731 if not EH section; simplify.
3732 (darwin_file_start): New.
3733 (darwin_asm_output_dwarf_offset): New.
3734 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
3736 (DEBUG_INFO_SECTION): Likewise.
3737 (DEBUG_ABBREV_SECTION): Likewise.
3738 (DEBUG_ARANGES_SECTION): Likewise.
3739 (DEBUG_MACINFO_SECTION): Likewise.
3740 (DEBUG_LINE_SECTION): Likewise.
3741 (DEBUG_LOC_SECTION): Likewise.
3742 (DEBUG_PUBNAMES_SECTION): Likewise.
3743 (DEBUG_STR_SECTION): Likewise.
3744 (DEBUG_RANGES_SECTION): Likewise.
3745 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
3746 (ASM_OUTPUT_DWARF_OFFSET): New.
3748 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
3750 * config.gcc (tm_defines): Always add to previous value rather
3753 2006-03-16 Richard Sandiford <richard@codesourcery.com>
3755 * config/mips/predicates.md (splittable_const_int_operand): New,
3756 split from move_operand.
3757 (splittable_symbolic_operand): New.
3758 (move_operand): Add commentary. Use splittable_const_int_operand.
3759 Inline mips_atomic_symbolic_constant_p.
3760 * config/mips/mips.md: Add combine splitters for handling moves
3761 of splittable_const_int_operands and splittable_symbolic_operands.
3762 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
3763 (mips_split_symbol): Declare.
3764 (mips_move_integer): Declare.
3765 * config/mips/mips.c (mips_split_p): Make global.
3766 (TARGET_MIN_ANCHOR_OFFSET): Override default.
3767 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3768 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3769 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
3770 (mips_offset_within_object_p): Handle block symbols.
3771 (mips_atomic_symbolic_constant_p): Delete.
3772 (mips_cannot_force_const_mem): Return false for constants that
3773 mips_legitimize_move can handle.
3774 (mips_use_blocks_for_constant_p): New function.
3775 (mips_split_symbol): Make global.
3776 (mips_move_integer): Likewise. Add a temporary register argument.
3777 (mips_legitimize_const_move): Use splittable_const_int_operand and
3778 splittable_symbolic_operand.
3779 (mips_use_anchors_for_symbol_p): New function.
3780 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
3781 (mips_split_p): Declare.
3783 2006-03-16 Richard Sandiford <richard@codesourcery.com>
3785 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3786 (mips*-*-linux*): Likewise.
3788 2006-03-16 Roger Sayle <roger@eyesopen.com>
3789 Daniel Speyer <dspeyer@wam.umd.edu>
3792 * tree-dump.c (dump_real): New function.
3793 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3794 * Makefile.in (REAL_H): New macro for dependencies on real.h.
3795 (tree-dump.o): Add $(REAL_H) to the dependencies.
3797 2006-03-16 Roger Sayle <roger@eyesopen.com>
3800 * real.c (real_from_string): If the mantissa is zero, don't bother
3801 parsing the exponent as the result should always be zero.
3803 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
3805 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3807 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3809 * config/ia64/ia64.c (stops_p): Added explicit initialization.
3810 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3811 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3812 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3813 ia64_sched_finish_global): New static functions to implement
3814 hooks from gcc_target.sched.
3815 (spec_check_no, max_uid, pending_data_specs): New static variables.
3816 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3817 ia64_spec_check_src_p): New static functions.
3818 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3819 (TARGET_SCHED_ADJUST_COST): Removed.
3820 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3821 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3822 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3823 TARGET_SCHED_GEN_CHECK,
3824 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3825 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3826 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3827 Fixed to handle speculation checks.
3828 (rtx_needs_barrier): Fixed to handle speculative loads and
3830 (ia64_variable_issue): Added code to count speculative loads and their
3832 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3834 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3836 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3838 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3839 (ia64_reorg): Reset stops_p to NULL after it is freed.
3840 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3841 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3842 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
3844 (data_speculative, control_speculative, check_load): New attributes.
3845 (mov<mode>_advanced, mov<mode>_speculative,
3846 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3847 zero_extend<mode>di2_speculative,
3848 zero_extend<mode>di2_speculative_advanced): New patterns for
3849 data and control speculative loads.
3850 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3852 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3853 New pattern for data and control speculation checks.
3854 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3855 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3856 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3857 Auxiliary definitions for the patterns.
3858 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3859 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3861 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3863 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3864 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3865 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3866 New resource constraints.
3867 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3869 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3870 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3871 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3872 msched-in-control-spec, msched-ldc, msched-control-ldc,
3873 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3874 msched-prefer-non-control-spec-insns,
3875 msched-count-spec-in-critical-path): New flags to tune speculative
3877 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3878 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3879 msched-in-control-spec, msched-ldc, msched-control-ldc,
3880 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3881 msched-prefer-non-control-spec-insns,
3882 msched-count-spec-in-critical-path): Document new flags.
3884 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3886 * target.h (struct spec_info_def): New opaque declaration.
3887 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3888 speculate_insn, needs_block_p, gen_check,
3889 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3890 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3891 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3892 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3893 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3894 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3896 (TARGET_SCHED): Use new macros.
3897 * rtl.h (copy_DEPS_LIST_list): New prototype.
3898 * sched-int.h (struct sched_info): Change signature of new_ready field,
3899 adjust all initializations. New fields: add_remove_insn,
3900 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3901 region_head_or_leaf_p.
3902 (struct spec_info_def): New structure declaration.
3903 (spec_info_t): New typedef.
3904 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3905 recovery_block, orig_pat.
3906 (glat_start, glat_end): New variables declaraions.
3907 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3909 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3910 DETACH_LIFE_INFO, USE_GLAT.
3911 (enum SPEC_SCHED_FLAGS): New enumeration.
3912 (NOTE_NOTE_BB_P): New macro.
3913 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3914 attach_life_info, debug_spec_status, check_reg_live): New functions.
3915 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3916 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3918 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3919 * ddg.c (get_block_head_tail): Adjust all uses.
3920 * modulo-sched.c (get_block_head_tail): Adjust all uses.
3921 (sms_sched_info): Initialize new fields.
3922 (contributes_to_priority): Removed.
3923 * haifa-sched.c (params.h): New include.
3924 (get_block_head_tail): Adjust all uses.
3925 (ISSUE_POINTS): New macro.
3926 (glat_start, glat_end): New global variables.
3927 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3928 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3929 old_last_basic_block, before_recovery, current_sched_info_var,
3930 rgn_n_insns, luid): New static variables.
3931 (insn_cost1): New function. Move logic from insn_cost to here.
3932 (find_insn_reg_weight1): New function. Move logic from
3933 find_insn_reg_weight to here.
3934 (reemit_notes, move_insn, max_issue): Change signature.
3935 (move_insn1): Removed.
3936 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3937 extend_bb): New static functions to support extension of scheduler's
3939 (generate_recovery_code, process_insn_depend_be_in_spec,
3940 begin_speculative_block, add_to_speculative_block,
3941 init_before_recovery, create_recovery_block, create_check_block_twin,
3942 fix_recovery_deps): New static functions to support
3943 generation of recovery code.
3944 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3945 restore_bb_notes, move_block_after_check, move_succs): New static
3946 functions to support ebb scheduling.
3947 (init_glat, init_glat1, attach_life_info1, free_glat): New static
3948 functions to support handling of register live information.
3949 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3950 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3951 add_jump_dependencies): New static functions.
3952 (check_cfg, has_edge_p, check_sched_flags): New static functions for
3953 consistancy checking.
3954 (debug_spec_status): New function to call from debugger.
3955 (priority): Added code to handle speculation checks.
3956 (rank_for_schedule): Added code to distinguish speculative instructions.
3957 (schedule_insn): Added code to handle speculation checks.
3958 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3959 Fixed to handle ebbs.
3960 (move_insn): Added code to handle ebb scheduling.
3961 (max_issue): Added code to use ISSUE_POINTS of instructions.
3962 (choose_ready): Added code to choose between speculative and
3963 non-speculative instructions.
3964 (schedule_block): Added code to handle ebb scheduling and scheduling of
3965 speculative instructions.
3966 (sched_init): Initialize new variables.
3967 (sched_finish): Free new variables. Print statistics.
3968 (try_ready): Added code to handle speculative instructions.
3969 * lists.c (copy_DEPS_LIST_list): New function.
3970 * sched-deps.c (extend_dependency_caches): New function. Move logic
3971 from create_dependency_caches to here.
3972 (get_dep_weak, ds_merge): Make global.
3973 * genattr.c (main): Code to output prototype for
3974 dfa_clear_single_insn_cache.
3975 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3976 (output_dfa_clean_insn_cache_func): Code to output
3977 dfa_clear_single_insn_cache function.
3978 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
3980 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3982 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3983 New static variables.
3984 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3985 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3987 (ebb_sched_info): Initialize new fields.
3988 (get_block_head_tail): Adjust all uses.
3989 (compute_jump_reg_dependencies): Fixed to use glat_start.
3990 (schedule_ebb): Code to remove unreachable last block.
3991 (schedule_ebbs): Added code to update register live information.
3992 * sched-rgn.c (region_sched_info): Initialize new fields.
3993 (get_block_head_tail): Adjust all uses.
3994 (last_was_jump): Removed. Adjust users.
3995 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3996 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3997 Implement new hooks.
3998 (check_dead_notes1): New static function.
3999 (struct region): New fields: dont_calc_deps, has_real_ebb.
4000 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
4001 (BB_TO_BLOCK): Fixed to handle EBBs.
4002 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
4003 (ebb_head): New static variable.
4004 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
4005 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
4007 (compute_dom_prob_ps): New assertion.
4008 (check_live_1, update_live_1): Fixed to work with glat_start instead of
4009 global_live_at_start.
4010 (init_ready_list): New assertions.
4011 (can_schedule_ready_p): Split update code to begin_schedule_ready.