1 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
4 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
6 2006-05-18 Mike Stump <mrs@apple.com>
8 Fix up vla, vm and [*] sematics.
13 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
14 (c_vla_unspec_p): Add.
16 * c-decl.c (struct c_scope): Add had_vla_unspec.
17 (build_array_declarator): Add support for [*].
18 (grokdeclarator): Likewise.
19 (grokparms): Likewise.
20 (get_parm_info): Likewise.
21 * c-objc-common.c (c_vla_unspec_p): Likewise.
22 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
23 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
24 typeof when argument is a variably modified type not inside sizeof or alignof.
25 (c_parser_direct_declarator_inner): Propagate errors.
26 (c_parser_sizeof_expression): Add support for [*].
27 * c-typeck.c (c_vla_type_p): Add.
28 (composite_type): Add support for vla compositing.
29 (comptypes_internal): Add support for vla compatibility.
30 (c_expr_sizeof_expr): Evaluate vla arguments.
31 * tree.c (variably_modified_type_p): Update comment for [*].
33 2006-05-18 Michael Matz <matz@suse.de>
36 * config.host: Make assignments to host_xmake_file cumulative.
37 * config.host (*-darwin*): Test $host, not $target.
39 2006-05-12 Stuart Hastings <stuart@apple.com>
41 * config/i386/i386.opt (-mstackrealign): New flag.
42 * config/i386/i386.c (force_align_arg_pointer): New attribute.
43 (ix86_handle_cconv_attribute): Emit error when
44 force_align_arg_pointer attribute collides with too many regparms.
45 (ix86_function_regparm): Limit regparms when used with
46 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
47 Support stack-realigning prologue in non-main functions. Emit
48 warning for nested functions under -mstackrealign, emit error for
49 nested functions with force_align_arg_pointer attribute.
50 * doc/extend.texi (force_align_arg_pointer): Document it.
51 * doc/invoke.texi (-mstackrealign): Document it.
53 2006-05-17 Kazu Hirata <kazu@codesourcery.com>
55 PR rtl-optimization/27477
56 * combine.c (try_combine): Don't split a parallel consisting
57 of two sets into two individual sets if both sets reference
60 2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
62 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
63 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
65 * doc/options.texi (VarExists): Updated.
67 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
69 * unwind-dw2.c: Add declarations for uw_update_context and
71 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
72 detected, advance frame state and context once to skip over stub.
74 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
78 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
79 Call rewrite_into_loop_closed_ssa only when something changed.
80 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
81 * lambda-code.c (can_convert_to_perfect_nest): Declared.
82 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
83 Test for perfect_nest_p here. Fix formating.
84 (replace_uses_equiv_to_x_with_y): Fix formating.
85 (stmt_uses_op): Removed.
86 (can_convert_to_perfect_nest): Removed loopivs parameter.
87 Complete the test by checking the scalar dependences.
88 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
91 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
94 From Dan Kegel <dank@kegel.com>:
95 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
97 2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
99 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
100 if the element type is variably modified without recursing.
102 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
105 * tree-loop-linear.c (try_interchange_loops): Test for
108 2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
110 PR tree-optimization/27548
111 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
112 range of ssa names that appear on abnormal edges.
113 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
114 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
116 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
119 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
121 2006-05-17 Jakub Jelinek <jakub@redhat.com>
124 * tree.h (OMP_PARALLEL_COMBINED): Define.
125 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
126 (new_omp_context): Add is_combined_parallel argument.
127 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
128 new_omp_context caller.
129 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
130 Adjust gimplify_scan_omp_clauses callers.
131 (omp_is_private): Issue errors if iteration variable is firstprivate
132 or reduction in the current context.
133 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
134 on combined parallel workshare constructs.
136 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
138 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
139 (gcc-options.o): New rule.
141 * optc-gen.awk: Protect variables for gcc-options.o with
142 #ifdef GCC_DRIVER/#endif.
144 2006-05-16 Daniel Berlin <dberlin@dberlin.org>
146 Fix PR tree-optimization/27373
147 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
148 (forward_propagate_addr_expr): Update call.
150 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
152 * doc/options.texi: Move the Negative option.
154 2006-05-16 Richard Guenther <rguenther@suse.de>
156 PR tree-optimization/22303
157 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
159 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
160 ccp_fold did not simplify the statement.
162 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
165 * Makefile.in (GCC_OBJS): New.
166 (OBJS-common): Add opts-common.o.
167 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
168 (cpp$(exeext)): Likewise.
169 (gcc.o): Also depend on opts.h.
170 (opts-common.o): New.
172 * common.opt (gcoff): Add Negative(gdwarf-2).
173 (gdwarf-2): Add Negative(gstabs).
174 (gstabs): Add Negative(gstabs+).
175 (gstabs+): Add Negative(gvms).
176 (gvms): Add Negative(gxcoff).
177 (gxcoff): Add Negative(gxcoff+).
178 (gxcoff+): Add Negative(gcoff).
179 * config/i386/i386.opt (m32): Add Negative(m64).
180 (m64): Add Negative(m32).
182 * doc/options.texi: Document the Negative option.
184 * gcc.c: Include "opts.h".
185 (main): Call prune_options after expandargv.
187 * optc-gen.awk: Generate common declarations for all flag
188 variables in options.c. Output the neg_index field.
190 * opts.c (find_opt): Moved to ...
191 * opts-common.c: Here. New file.
193 * opts.h (cl_option): Add a neg_index field.
195 (prune_options): Likewise.
197 2006-05-16 Jakub Jelinek <jakub@redhat.com>
200 * omp-low.c (expand_omp_parallel): Don't assert
201 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
202 instead search for it.
205 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
208 2006-05-16 Andreas Schwab <schwab@suse.de>
210 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
213 2006-05-15 Roger Sayle <roger@eyesopen.com>
216 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
217 integer constants other than zero are only legitimate on TARGET_64BIT.
218 <CONST_VECTOR> Only zero vectors are legitimate.
219 (ix86_cannot_force_const_mem): Integral and vector constants can
220 always be put in the constant pool.
222 2006-05-16 DJ Delorie <dj@redhat.com>
224 * crtstuff.c (__dso_handle): Set section from
225 TARGET_LBIGCC_SDATA_SECTION if defined.
226 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
227 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
229 2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
232 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
235 2006-05-16 Ben Elliston <bje@au.ibm.com>
237 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
239 2006-05-15 Per Bothner <per@bothner.com>
241 * tree.c: (last_annotated_node): Use sources_locus typedef.
242 This permits bootstrapping with --enable-mapped-location.
244 2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
246 PR tree-optimization/26830
247 * tree-into-ssa.c (struct ssa_name_info): Add age field.
248 (info_for_ssa_name, current_info_for_ssa_name_age,
249 blocks_to_update): New variables.
250 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
251 (clear_ssa_name_info, initialize_flags_in_bb,
252 mark_block_for_update): New functions.
253 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
254 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
255 prepare_def_site_for): Use mark_block_for_update.
256 (mark_def_interesting): Assert that the processed block is marked in
257 blocks_to_update. Do not take blocks argument.
258 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
260 (rewrite_update_init_block, rewrite_update_stmt): Only process
261 blocks with statements to rewrite.
262 (delete_update_ssa): Do not clear SSA_NAME_AUX.
263 (update_ssa): Initialize and free blocks_to_update. Do not
264 clear flags on statements. Do not use blocks bitmap.
265 * tree.h (SSA_NAME_AUX): Removed.
266 (struct tree_ssa_name): Removed aux field.
267 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
269 2006-05-15 Richard Guenther <rguenther@suse.de>
271 PR tree-optimization/27603
272 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
273 Do computations in original type.
275 2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
277 * see.c: Code style changes such as redundant paranthesis,
278 redundant intialization of local variables etc.
279 (see_main): Declared now as static.
280 * doc/invoke.texi: Update that -fsee is not enabled by
283 2006-05-15 Jakub Jelinek <jakub@redhat.com>
285 * omp-low.c (check_omp_nesting_restrictions): New function.
286 (scan_omp_1): Call it.
289 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
290 construct, return *VAR.
292 2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
294 PR rtl-optimization/27406
295 * bt-load.c (migrate_btr_def): Skip the block having abnormal
298 2006-05-14 Roger Sayle <roger@eyesopen.com>
300 PR rtl-optimization/27538
301 * combine.c (expand_compound_operation): Call gen_lowpart
302 before calling simplify_shift_const.
304 2006-05-14 Roger Sayle <roger@eyesopen.com>
306 PR rtl-optimization/22563
307 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
308 a fixed width bitfield, always force the intermediates into psuedos.
310 2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
313 * mkconfig.sh: Use operator = instead of == for test.
315 2006-05-13 Nick Clifton <nickc@redhat.com>
317 * dwarf2out.c (dbx_reg_number): Check return value from
318 LEAF_REG_REMAP and only use it if it is valid.
319 (multiple_reg_loc_descriptor): Likewise.
321 2006-05-13 Richard Guenther <rguenther@suse.de>
323 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
326 2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
328 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
329 information attached to non-INSNs such as NOTEs.
330 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
332 2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
334 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
336 * config/s390/s390.md: Adjust comment describing On constraint.
338 2006-05-11 Jan Hubicka <jh@suse.cz>
340 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
343 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
346 * fold-const.c (size_binop): Move sanity check for arguments to
347 the beginning of the function.
350 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
353 2006-05-11 Richard Guenther <rguenther@suse.de>
356 * fold-const.c (fold_unary): Handle intermediate conversion
357 to a pointer type like intermediate conversion to an integer
358 type in folding of (T1)(T2)var to var.
359 Match the code to the comment in the final conversion for
360 (T1)(T2)var to (T1)var regarding to type precision. Rather
361 than disallow T1 being of pointer type, assert that both T1
362 and var are of pointer type or not. Make sure not to fall
363 over the frontends lazyness wrt array to pointer decay though.
365 2006-05-10 Richard Earnshaw <rearnsha@arm.com>
367 * arm.c (arm_struct_value_rtx): Delete.
368 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
369 (arm_init_cumulative_args): Always initialize nregs to zero.
371 2006-05-10 Richard Guenther <rguenther@suse.de>
373 PR tree-optimization/27532
374 * tree-object-size.c (plus_expr_object_size): Fix typo.
376 2006-05-10 Kazu Hirata <kazu@codesourcery.com>
379 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
380 ashrdi_const, ashrdi3): Use a scratch register.
382 2006-05-10 Richard Guenther <rguenther@suse.de>
384 PR tree-optimization/27302
385 * fold-const.c (operand_equal_p): For two comparisons,
386 try comparison of one comparison code swapped if that yields
389 2006-05-10 Ben Elliston <bje@au.ibm.com>
391 * tree-pretty-print.c (pretty_print_string): No need to handle
392 '\0' as a special character.
394 * tree.h: Include "hashtab.h".
395 (iterative_hash_expr): Use hashval_t in its prototype.
396 * Makefile.in (TREE_H): Add $(HASHTAB_H).
398 2006-05-09 Steve Ellcey <sje@cup.hp.com>
401 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
402 (hppa*64*-*-hpux11*): Ditto.
403 (hppa[12]*-*-hpux11*): Ditto.
405 2006-05-09 David Edelsohn <edelsohn@gnu.org>
408 * config/rs6000/aix41.h (TARGET_64BIT): Define.
410 2006-05-09 Michael Matz <matz@suse.de>
412 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
413 host_extra_gcc_objs and host_xmake_file.
414 (<*-*-linux*>): Don't overwrite host_xmake_file.
415 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
416 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
417 (host_detect_local_cpu): Declare.
418 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
419 * config/i386/i386.c (override_options): Handle -mtune=native
421 * config/i386/x-i386: New file.
422 * config/i386/driver-i386.c: New file.
423 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
426 2006-05-09 Dirk Mueller <dmueller@suse.de>
427 Richard Guenther <rguenther@suse.de>
430 * fold-const.c (fold_read_from_constant_string): Relax check
431 for matching types to matching modes.
433 2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
435 PR rtl-optimization/27335
436 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
439 2006-05-08 Chao-ying Fu <fu@mips.com>
440 Richard Sandiford <richard@codesourcery.com>
442 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
443 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
444 * config/mips/mips.md (UNSPEC_SCC): New constant.
445 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
446 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
447 (mips_emit_compare): Use it.
448 (mips_expand_vcondv2sf): New function.
450 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
452 Fix PR tree-optimization/27093
453 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
454 renaming when they become not-used_alone.
456 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
458 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
459 relocation and relocation stubs.
461 2006-05-08 Eric Christopher <echristo@apple.com>
463 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
466 2006-05-08 Jan Hubicka <jh@suse.cz>
469 * cgraphunit.c (decide_is_function_needed): When not optimizing even
470 unused static functions are needed.
472 2006-05-08 Roger Sayle <roger@eyesopen.com>
475 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
476 of a reg_equiv_constant if the result is a legitimate constant.
478 2006-05-08 Uros Bizjak <uros@kss-loka.si>
481 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
482 standard 80387 constants, raise the cost to prevent
483 compress_float_constant() to generate load from memory.
485 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
487 * config/arm/constraints.md (c): Fix a typo.
489 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
492 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
495 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
497 (_mm_mwait): Likewise.
499 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
501 (sse3_monitor): Make it 32bit only.
502 (sse3_monitor64): New. 64bit monitor.
504 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
507 * config/i386/i386.c (classify_argument): Skip fields with invalid
510 2006-05-07 Richard Guenther <rguenther@suse.de>
512 PR tree-optimization/27409
513 * tree-ssa-structalias.c (get_constraint_for_component_ref):
514 Do not try to find zero-sized subvars.
516 2006-05-07 Richard Guenther <rguenther@suse.de>
518 PR tree-optimization/27136
519 * tree-ssa-loop-niter.c (get_val_for): Correct function
520 comment, assert requirements.
521 (loop_niter_by_eval): Stop processing if the iterated
522 value did not simplify.
524 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
526 * opts.c (flag_see): remove its setting at -O3.
528 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
530 * genpeep.c (main): Make insn-peep.c depend on flags.h.
531 * arm/constraints.md: New file.
532 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
533 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
534 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
535 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
536 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
537 (EXTRA_MEMORY_CONSTRAINT): Likewise.
538 * arm.md: Include constraints.md.
539 (thumb_movsi_insn): Use satisfies_constraint_J.
540 (movhi, movqi): Use satisfies_constraint_I.
542 2006-04-29 Anatoly Sokolov <aesok@post.ru>
544 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
545 for atmeg a645 device.
547 2006-05-06 Richard Guenther <rguenther@suse.de>
549 PR tree-optimization/27151
550 * tree-vect-transform.c (vectorizable_condition): Punt on
551 values that have a different type than the condition.
553 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
556 * c-parser.c (c_parser_cast_expression): Only insert casts into
557 hash table if pointer.
558 * function.c (used_types_insert_helper): Rename from
560 (used_types_insert): Call used_types_insert_helper.
561 * function.h (used_types_insert): Accept only one argument.
563 2006-05-05 David Edelsohn <edesohn@gnu.org>
565 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
566 scratch with output modifier.
568 2006-05-04 David Edelsohn <edelsohn@gnu.org>
571 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
572 with output modifier.
574 2006-05-04 Richard Sandiford <richard@codesourcery.com>
577 * config/mips/mips.c (mips_symbolic_address_p): Return true
578 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
579 SYMBOL_GOTTPREL, and SYMBOL_TLS.
581 2006-05-04 Richard Guenther <rguenther@suse.de>
583 PR tree-optimization/14287
584 PR tree-optimization/14844
585 PR tree-optimization/19792
586 PR tree-optimization/21608
587 PR tree-optimization/27090
588 * tree-ssa-pre.c (try_combine_conversion): New function.
589 (compute_avail): After constructing the value-handle
590 expression, use try_combine_conversion to combine NOP_EXPRs
591 with previous value-handle expressions and use the result if it
594 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
596 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
598 2006-05-04 Jan Hubicka <jh@suse.cz>
601 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
603 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
605 * config/bfin/predicates.md (const01_rtx): Tell generator programs
606 that this only matches CONST_INTs. All users changed to VOIDmode
609 * config/bfin/bfin.c: Include "optabs.h".
610 (bfin_rtx_costs): Some costs for vector operations, to allow combine
612 (enum bfin_builtins): Add a number of fractional and vector builtins.
613 (bfin_init_builtins): Likewise.
614 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
615 (safe_vector_operand, bfin_expand_binop_builtin,
616 bfin_expand_unop_builtin): New functions.
617 (bfin_expand_builtin): Handle the new builtins.
618 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
621 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
624 * Makefile.in (OBJS-common): Add see.o.
625 (see.o): Add dependencies.
626 * common.opt (fsee): New flag for the see optimization was added.
627 * opts.c (flag_see): Initialized.
628 * passes.c (init_optimization_passes, pass_see): New pass.
629 * rtl.h (see_main): Declaration as extern.
630 * timevar.def (TV_SEE): New.
631 * tree-pass.h (pass_see): Declaration as extern.
632 * invoke.texi (-fsee): Document.
633 * recog.c (validate_simplify_insn): New function.
634 * recog.h (validate_simplify_insn): Declaration as extern.
635 * df-problems.c (df_chain_dump): Check for NULL.
637 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
638 Daniel Berlin <dberlin@dberlin.org>
640 * cfgrtl.c (insert_insn_bb_end_new): New function.
641 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
643 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
645 * df.h (struct web_entry): Moved from web.c.
646 (union_defs): Declaration as extern.
647 (unionfind_root): Likewise.
648 (unionfind_union): Likewise.
649 * web.c (struct web_entry): Moved to df.h.
650 (unionfind_root): Remove static declaration.
651 (unionfind_union): Likewise.
652 (union_defs): Likewise and generalize to use callback function.
653 (web_main): Update arguments for union_defs function call.
655 2006-05-04 Richard Guenther <rguenther@suse.de>
657 PR tree-optimization/26447
658 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
659 produce SSA_NAME copies before the store stmt to avoid
660 breaking exception handling.
662 2006-05-04 Jakub Jelinek <jakub@redhat.com>
665 * gimplify.c (omp_is_private): If var is shared in some outer context,
666 return false instead of true. Stop searching on parallel context
669 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
672 * coverage.c: Use get_gcov_unsigned_t() instead of
673 unsigned_type_node all over.
675 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
677 PR tree-optimization/27381
678 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
679 maintain the same immediate_use links.
680 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
681 node rather than segfaulting.
683 2006-05-03 Jakub Jelinek <jakub@redhat.com>
686 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
687 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
688 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
690 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
692 Fix PR tree-optimization/26626
693 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
695 * tree-ssa-operands.c (access_can_touch_variable): Allow
696 typecasting through union pointers.
698 2006-05-02 Jakub Jelinek <jakub@redhat.com>
701 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
702 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
703 to find if var will be a global variable even in the nested context.
704 (omp_copy_decl): Only check for global variable at the end, it might
705 be overridden in outer contexts.
706 (scan_sharing_clauses): For global variables don't create a field.
707 (lower_rec_input_clauses): Do nothing for global shared variables.
708 Emit a barrier at the end of ILIST if there were any decls in both
709 firstprivate and lastprivate clauses.
710 (lower_send_clauses): Do nothing for global variables except for
713 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
715 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
716 of the correct signedness is returned.
718 2006-05-02 Jeff Law <law@redhat.com>
720 PR tree-optimization/27364
721 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
722 multiply expressions.
724 2006-05-02 Tom Tromey <tromey@redhat.com>
726 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
728 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
731 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
732 -mthumb -fPIC are used.
734 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
735 Joshua Kinard <kumba@gentoo.org>
738 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
739 with 64-bit pointers.
741 2006-05-02 Paul Brook <paul@codesourcery.com>
743 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
745 (create_fix_barrier): Check that a suitable barrier location is
747 (arm_reorg): Include ftmp->address in allowable range of addresses.
749 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
752 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
755 2006-05-02 Jakub Jelinek <jakub@redhat.com>
758 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
759 around RESULT_DECL for result passed by reference.
760 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
761 * omp-low.c (use_pointer_for_field): Don't look at
762 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
763 (scan_omp_1): Call remap_decl on RESULT_DECLs.
764 (lower_rec_input_clauses): Don't allocate VLA memory for the second
765 time or var for passing by reference for
766 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
767 TREE_ADDRESSABLE variables when passing by reference.
769 * omp-low.c (dump_omp_region): Fix output formatting.
772 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
773 (expand_omp_parallel): Likewise.
774 * tree-cfg.c (move_sese_region_to_fn): Likewise.
777 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
778 on statement list containing also constructors and destructors.
779 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
782 * except.c (duplicate_eh_regions): Fix clearing of
783 cfun->eh->region_array entries.
785 2006-05-01 DJ Delorie <dj@redhat.com>
787 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
789 (gcc_cv_objdump): Likewise.
790 * configure: Regenerated.
792 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
795 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
796 templates for case 3 and 4.
798 2006-05-01 DJ Delorie <dj@redhat.com>
800 * vec.c: Include bconfig.h when appropriate.
801 * Makefile.in (build/vec.o): Adjust dependencies.
802 * mkconfig.sh: Make sure config.h isn't used for build machine
805 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
807 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
809 (mark_phi_for_rewrite): New function.
810 (insert_phi_nodes_for, mark_use_interesting): Call
811 mark_phi_for_rewrite.
812 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
813 (update_ssa): Initialize and free phis_to_rewrite.
815 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
817 PR rtl-optimization/27291
818 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
819 folded to a constant.
821 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
823 PR tree-optimization/27283
824 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
825 not whole # of iteration descriptions.
826 (niter_for_exit): Return just # of iterations. Fail if # of iterations
827 uses abnormal ssa name.
828 (niter_for_single_dom_exit): Ditto.
829 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
830 return just the number of iterations.
832 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
834 PR tree-optimization/27144
835 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
836 (record_estimate): Only record constant upper bound.
837 (infer_loop_bounds_from_undefined): Call
838 compute_estimated_nb_iterations just once.
839 (proved_non_wrapping_p): Renamed to ...
840 (n_of_executions_at_most): ... this. Expect bound to be a constant.
841 (convert_step_widening, scev_probably_wraps_p): Call
842 n_of_executions_at_most instead of proved_non_wrapping_p.
843 (substitute_in_loop_info): Do not replace values in bounds.
844 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
847 2006-05-01 Richard Henderson <rth@redhat.com>
850 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
851 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
854 2006-05-01 Roger Sayle <roger@eyesopen.com>
856 * c-typeck.c (parser_build_binary_op): Don't call the function
857 unsigned_conversion_warning to spot operand/result type overflow.
858 (build_binary_op): Instead, call convert_and_check instead of
859 convert to report the problem when the operands are promoted.
860 * c-common.c (unsigned_conversion_warning): Make static.
861 * c-common.h (unsigned_conversion_warning): Delete prototype.
863 2006-05-01 Richard Guenther <rguenther@suse.de>
865 PR tree-optimization/26726
866 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
868 (find_interesting_uses_address): ... we work around here
869 by folding INDIRECT_REFs in the substituted base.
871 2006-05-01 Diego Novillo <dnovillo@redhat.com>
873 * omp-low.c (dump_omp_region): Add newlines.
875 2006-04-30 Roger Sayle <roger@eyesopen.com>
877 * common.opt (Woverflow): New command line option.
878 * c-common.c (constant_expression_warning): Check warn_overflow.
879 (overflow_waring): Pass OPT_Woverflow to warning.
880 (unsigned_conversion_warning): Likewise.
881 (convert_and_check): Likewise.
882 * doc/invoke.texi: Document new command line option.
884 2006-04-30 David Edelsohn <edelsohn@gnu.org>
886 * config/rs6000/rs6000.c (rs6000_override_options): Enable
887 TARGET_NO_FP_IN_TOC for section anchors.
888 (optimization_options): Enable section anchors for all
889 non-"Objective" languages.
891 2006-04-28 Eric Christopher <echristo@apple.com>
893 * config/darwin-c.c (darwin_ms_struct): Move this
894 (darwin_set_default_type_attributes): and this...
895 * config/darwin.c: ... here.
896 * config/darwin.h (darwin_ms_struct): Declare.
898 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
900 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
902 2006-04-28 Roger Sayle <roger@eyesopen.com>
905 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
906 (push_array_bounds): Delete prototype. Change BOUNDS argument to
907 an unsigned HOST_WIDE_INT.
908 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
910 (really_start_incremental_init): No need to call convert because
911 bitsize_zero_node is already of type bitsizetype.
912 (push_init_level): Extract the value of constructor_index as an
913 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
914 (process_init_element): Likewise.
916 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
918 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
919 value before passing to make_relative_prefix.
921 2006-04-28 Alan Modra <amodra@bigpond.net.au>
924 * builtins.c (expand_builtin_memset): Expand val in original mode.
926 2006-04-27 Eric Christopher <echristo@apple.com>
928 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
930 * config/darwin-c.c (darwin_ms_struct): New.
931 (darwin_pragma_ms_struct): Ditto.
932 (darwin_set_default_type_attributes): Ditto.
933 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
934 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
935 Register ms_struct pragma.
936 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
937 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
938 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
939 darwin_set_default_type_attributes if TARGET_MACHO.
941 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
943 PR tree-optimization/26854
944 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
945 * doc/tree-ssa.texi: Update immuse iterator documentation.
946 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
947 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
948 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
949 first_safe_imm_use, next_safe_imm_use): Remove.
950 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
951 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
952 (move_use_after_head): New. Helper function to sort immuses in a stmt.
953 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
954 (first_imm_use_stmt): New. Get first stmt in an immuse list.
955 (next_imm_use_stmt): New. Get next stmt in an immuse list.
956 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
957 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
958 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
959 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
960 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
961 (perfect_nestify): Use new iterator.
962 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
964 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
965 (next_imm_name): New field in struct immediate_use_iterator_d.
966 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
967 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
968 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
969 * tree-cfg.c (replace_uses_by): Use new iterator.
970 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
971 * tree-ssa-operands.c (correct_use_link): Remove.
972 (finalize_ssa_use_ops): No longer call correct_use_link.
974 2006-04-27 Stuart Hastings <stuart@apple.com>
976 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
977 * config/t-darwin (crt3.o): Use it.
978 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
979 'pmode', use Pmode instead of SImode for SYMBOL_REF.
980 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
981 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
982 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
985 2006-04-27 Roger Sayle <roger@eyesopen.com>
987 * expmed.c (store_fixed_bit_field): If we're not optimizing for
988 size, force the intermediate into a new pseudo rather instead of
989 performing both a bitwise AND and a bitwise IOR in memory.
991 2006-04-27 Richard Guenther <rguenther@suse.de>
993 PR rtl-optimization/26685
994 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
995 this one "max-flow-memory-locations".
997 2006-04-27 Richard Guenther <rguenther@suse.de>
999 PR tree-optimization/25148
1000 * tree-vrp.c (compare_values): Remove code dealing with
1001 comparisons against type min/max value. Honour overflow
1002 and negative constants in code dealing with comparisons
1003 of plus and minus expressions.
1004 (value_inside_range): Use fold_binary with LE_EXPR and
1005 GE_EXPR rather than compare_values.
1007 2006-04-27 Dirk Mueller <dmueller@suse.de>
1009 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
1012 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
1014 * basic-block.h (safe_insert_insn_on_edge): Removed.
1015 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
1017 2006-04-26 David Edelsohn <edelsohn@gnu.org>
1018 Paolo Bonzini <bonzini@gnu.org>
1021 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
1022 (simplify_and_const_int): Same.
1024 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
1026 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
1028 2006-04-26 Jakub Jelinek <jakub@redhat.com>
1031 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
1032 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
1033 cgraph_global_info_ready.
1036 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
1039 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
1040 either decl or init is error_mark_node.
1043 * tree-flow.h (struct omp_region): Add sched_kind.
1044 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
1045 instead of extracting omp for data.
1046 (expand_omp_for): Save extracted sched_kind.
1048 2006-04-25 Roger Sayle <roger@eyesopen.com>
1050 * expmed.c (store_bit_field): Also check whether the bitsize is
1051 valid for the machine's "insv" instruction before moving the
1052 target into a pseudo for use with the insv.
1053 * config/i386/predicates.md (const8_operand): New predicate.
1054 * config/i386/i386.md (extv, extzv, insv): Use the new
1055 const8_operand predicate where appropriate.
1057 2006-04-25 DJ Delorie <dj@redhat.com>
1059 * doc/install.texi (Specific): Clarify that this is not a list of
1060 supported hosts or targets.
1062 2006-04-25 Richard Sandiford <richard@codesourcery.com>
1064 PR rtl-optimization/26725
1065 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
1066 block's BB_DIRTY flag.
1068 2006-04-25 Geoffrey Keating <geoffk@apple.com>
1070 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
1073 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
1074 to print an integer.
1076 2006-04-25 David Edelsohn <edelsohn@gnu.org>
1078 * varasm.c (align_variable): New function.
1079 (get_block_for_decl): Apply align_variable to DECL before
1080 calculating section information.
1081 (assemble_variable): Split out alignment computation.
1083 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
1085 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
1088 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
1090 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
1091 MODE_PARTIAL_INT mode.
1092 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
1093 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
1095 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
1096 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
1098 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
1100 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
1102 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
1103 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
1104 MACFLAG_IH): Likewise.
1105 (movstricthi_1): Renamed from "*movstricthi".
1106 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
1107 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
1108 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
1109 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
1110 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
1111 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
1112 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
1113 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
1114 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
1115 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
1116 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
1117 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
1118 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
1119 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
1120 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
1122 * doc/rtl.texi (ss_ashift): Improve wording.
1124 2006-04-24 Geoffrey Keating <geoffk@apple.com>
1126 * dwarf2out.c (verify_marks_clear): New.
1127 (prune_unused_types): Call verify_marks_clear initially, not
1130 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1132 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
1133 * doc/rtl.texi: Document them.
1134 * simplify-rtx.c (simplify_unary_operation,
1135 simplify_binary_operation_1): Don't abort when we see them.
1137 2006-04-24 Mark Mitchell <mark@codesourcery.com>
1140 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1141 * configure.ac: Completely disregard languages that are not
1143 * configure: Regenerated.
1145 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1146 Richard Guenther <rguenther@suse.de>
1148 PR tree-optimization/27236
1149 * tree-inline.c (copy_body_r): Make sure to copy
1150 TREE_THIS_VOLATILE flag.
1152 2006-04-24 Richard Guenther <rguenther@suse.de>
1155 * tree-complex.c (update_parameter_components): Don't handle
1156 unused parameters which have no default def.
1158 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1159 Richard Guenther <rguenther@suse.de>
1161 PR tree-optimization/27218
1162 * tree-inline.c (expand_call_inline): Strip useless type
1163 conversions for the return slot address.
1165 2006-04-24 Richard Guenther <rguenther@suse.de>
1167 * cfgloop.h (struct loops): Remove unused field array. Reorder
1169 (LOOP_PREFETCH): Remove.
1171 2006-04-24 Richard Guenther <rguenther@suse.de>
1173 PR tree-optimization/22525
1174 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
1175 variable, adjust types of generated expressions.
1177 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
1179 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
1180 (tree-vect-patterns.o): Likewise.
1182 (cselib.o): Likewise.
1183 (loop-doloop.o): Likewise.
1184 (regclass.o): Likewise.
1185 (reload1.o): Likewise.
1186 (explow.o): Replace target.h with $(TARGET_H).
1187 (ipa-prop.o): Likewise.
1188 (ipa-cp.o): Likewise.
1189 (ipa-inline.o): Likewise.
1190 (reorg.o): Likewise.
1191 (reg-stack.o): Likewise.
1193 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1195 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
1197 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1199 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
1201 * configure.ac: Completely disregard languages that are not
1203 * configure: Regenerated.
1206 * c-common.h (c_build_bitfield_integer_type): Declare.
1207 * c-decl.c (c_build_bitfield_integer_type): Move to ...
1208 * c-common.c (c_build_bitfield_integer_type): ... here.
1210 2006-04-23 Roger Sayle <roger@eyesopen.com>
1213 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
1214 a SImode SUBREG of a floating point register after no_new_pseudos.
1216 2006-04-23 Roger Sayle <roger@eyesopen.com>
1218 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
1219 identify potentially eliminable registers to additionally catch
1220 VIRTUAL_INCOMING_ARGS_REGNUM.
1221 (addsi3): Update the conditions on when to use addsi_small_int.
1223 2006-04-23 Roger Sayle <roger@eyesopen.com>
1226 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
1227 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
1228 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
1230 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1232 * fold-const.c (range_predecessor): Use operand_equal_p
1233 as the predicate for equality.
1234 (range_successor): Likewise.
1236 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
1239 * config/soft-fp/op-common.h: Fix a typo.
1241 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
1244 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
1245 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
1247 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
1249 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
1251 * doc/tm.texi: Fix a typo.
1253 2006-04-21 Geoffrey Keating <geoffk@apple.com>
1255 * dwarf2out.c (struct die_struct): Document that die_sib makes
1256 a circular linked list.
1257 (FOR_EACH_CHILD): New.
1258 (reverse_die_lists): Delete.
1259 (reverse_all_dies): Delete.
1260 (add_dwarf_attr): Correct documentation.
1261 (remove_child_with_prev): New.
1262 (remove_child_TAG): Update for change to die_struct, use
1263 remove_child_with_prev.
1264 (add_child_die): Update for change to die_struct.
1265 (splice_child_die): Use remove_child_with_prev and add_child_die.
1266 (print_die): Use FOR_EACH_CHILD.
1267 (die_checksum): Likewise.
1268 (assign_symbol_names): Likewise.
1269 (output_location_lists): Likewise.
1270 (build_abbrev_table): Likewise.
1271 (calc_die_sizes): Likewise.
1272 (mark_dies): Likewise.
1273 (unmark_dies): Likewise.
1274 (unmark_all_dies): Likewise.
1275 (output_die): Likewise.
1276 (prune_unused_types_mark): Likewise.
1277 (prune_unused_types_walk): Likewise.
1278 (same_die_p): Update for change to die_struct.
1279 (break_out_includes): Likewise.
1280 (prune_unused_types_prune): Likewise.
1281 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
1282 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
1284 (dwarf2out_finish): Don't call reverse_all_dies.
1286 2006-04-21 Eric Christopher <echristo@apple.com>
1288 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
1289 in comments and function names.
1291 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1294 * c-typeck.c (digest_init): Robustify.
1296 * c-typeck.c (pop_init_level): Simplify.
1298 2006-04-21 Steve Ellcey <sje@cup.hp.com>
1300 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
1302 2006-04-21 Paul Brook <paul@codesourcery.com>
1304 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
1305 hardware floating point.
1307 2006-04-21 David Edelsohn <edelsohn@gnu.org>
1309 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
1312 2006-04-21 Nick Clifton <nickc@redhat.com>
1314 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
1317 2006-04-21 Alan Modra <amodra@bigpond.net.au>
1320 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
1321 C++ lang type in traceback table for Objective-C++.
1323 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
1325 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
1327 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
1329 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1332 * tree-mudflap.c (mudflap_finish_file): Skip function when there
1333 were errors. Remove check for erroneous objects.
1335 2006-04-20 Jeff Law <law@redhat.com>
1337 PR tree-optimization/26854
1338 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
1339 checking for zero or one use.
1340 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
1341 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
1342 * tree-ssa-reassoc.c (negate_value): Similarly.
1343 (reassociate_bb): Similarly.
1345 2006-04-20 Jakub Jelinek <jakub@redhat.com>
1347 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
1348 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
1349 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
1351 2006-04-20 Alan Modra <amodra@bigpond.net.au>
1353 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
1354 fp regs if the last fp arg doesn't fit in regs.
1356 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
1359 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
1360 that the last insn has the REG_INC note.
1362 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
1363 Nathan Sidwell <nathan@codesourcery.com>
1366 * stor-layout.c (update_alignment_for_field): Do not align
1368 (place_union_field): Place union field at the start of the union.
1369 (place_field): Move ERROR_MARK check later, and use the current
1370 allocation position to maintain monotonicity.
1372 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
1374 * dominance.c: Include timevar.h.
1375 (calculate_dominance_info): Use TV_DOMINANCE.
1376 * timevar.def (TV_DOMINANCE): New timevar.
1377 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
1379 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1381 PR rtl-optimization/14261
1382 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
1383 move would be an INSV insn.
1384 (noce_process_if_block): Don't optimize if the destination is a
1385 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
1387 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1389 * config/s390/s390.md: Add comments with the instructions emitted
1390 by an insn pattern if macros are used.
1392 2006-04-19 Alan Modra <amodra@bigpond.net.au>
1394 PR rtl-optimization/26026
1395 * fold-const.c (fold_binary): Optimize div and mod where the divisor
1396 is a known power of two shifted left a variable amount.
1398 2006-04-18 Geoffrey Keating <geoffk@apple.com>
1400 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
1401 to hash table twice when the debug_str section has SECTION_MERGE.
1403 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
1405 * config/soft-fp: New directory. From glibc.
1406 * config/soft-fp/t-softfp: New.
1407 * config/soft-fp/README: New.
1408 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
1409 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
1410 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
1411 (LIBGCC_DEPS): Add $(SFP_MACHINE).
1412 * config.gcc: Use rs6000/t-fprules-fpbit or
1413 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
1415 * config/rs6000/sfp-machine.h: New. Based on glibc.
1416 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
1418 * config/rs6000/t-fprules: Remove fp-bit rules.
1419 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
1420 * config/rs6000/t-linux64: Likewise. Remove duplicates from
1421 LIB2FUNCS_EXTRA. Remove fp-bit rules.
1422 (softfp_wrap_start, softfp_wrap_end): New.
1424 2006-04-18 DJ Delorie <dj@redhat.com>
1426 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
1428 2006-04-18 Devang Patel <dpatel@apple.com>
1430 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
1432 2006-04-18 Nick Clifton <nickc@redhat.com>
1434 * config/sh/t-symbian: Add rule to build sh-c.o
1435 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
1436 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
1437 (sh_symbian_encode_section_info): Likewise.
1439 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
1441 * builtins.c (expand_builtin_strcmp): Cover label definition of
1442 do_libcall with HAVE_cmpstrnsi.
1444 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
1446 * function.c (temp_slots_at_level, max_slot_level): Use VEC
1448 * function.h (temp_slot_p): New.
1449 (function): Change the type of x_used_temp_slots to
1450 VEC(temp_slot_p,gc) *.
1452 2006-04-18 Nick Clifton <nickc@redhat.com>
1454 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1455 flag_strength_reduce.
1457 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1459 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1463 Partial revert of revision 112637
1464 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1465 Dale Johannesen <dalej@apple.com>
1468 * regclass.c (struct reg_pref): Update documentation.
1469 (regclass): Set prefclass to NO_REGS if memory is the best option.
1470 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1472 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
1474 PR tree-optimization/26821
1475 * tree-ssa-math-opts.c (get_constant_one): New.
1476 (insert_reciprocals): Use it.
1478 2006-04-17 Geoffrey Keating <geoffk@apple.com>
1480 * dwarf2out.c (free_AT): Delete.
1481 (remove_AT): Update string ref counts.
1482 (remove_child_TAG): Don't call free_die.
1484 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1485 or DW_TAG_GNU_EINCL.
1486 (prune_unused_types_walk_attribs): Reset string refcounts.
1487 (prune_unused_types_update_strings): New.
1488 (prune_unused_types_prune): Don't make unnecessary stores. Don't
1489 call free_die. Do call prune_unused_types_update_strings.
1490 (prune_unused_types): Empty debug_str_hash.
1492 2006-04-17 Roger Sayle <roger@eyesopen.com>
1494 * expr.c (expand_assignment): Optimize away no-op moves where the
1495 source and destination are equal and have no side-effects.
1497 2006-04-17 Richard Guenther <rguenther@suse.de>
1500 * reload.c (push_reload): Guard calls to get_secondary_mem
1503 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
1505 * alias.c (reg_base_value, old_reg_base_value): Change the
1506 type to VEC(rtx,gc) *.
1507 (REG_BASE_VALUE, find_base_value, record_set,
1508 init_alias_analysis): Use VEC instead of VARRAY.
1510 * alias.c (alias_sets): Change the type to
1511 VEC(alias_set_entry,gc) *.
1512 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1513 VEC instead of VARRAY.
1514 (last_alias_set): Remove.
1516 * cgraph.h (cgraph_edge_p): New.
1517 Update the prototype of cgraph_function_versioning.
1518 * cgraphunit.c (cgraph_copy_node_for_versioning,
1519 cgraph_function_versioning): Use VEC instead of VARRAY.
1520 * ipa-cp.c (ipcp_insert_stage): Likewise.
1522 2006-04-16 Roger Sayle <roger@eyesopen.com>
1525 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1526 "A op B" or "A op C", we may need to convert A to the type of B and C.
1528 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
1530 * target.h (struct gcc_target): Add mode_rep_extended.
1531 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1532 (init_num_sign_bit_copies_in_rep): Initialize it using
1534 (truncate_to_mode): Use it.
1535 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1536 * targhooks.h (default_mode_rep_extended): Declare it.
1537 * targhooks.c (default_mode_rep_extended): Define it.
1538 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
1539 default_mode_rep_extended.
1540 (TARGET_INITIALIZER): Include it.
1541 * doc/tm.texi (Misc): Document it.
1542 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1543 (mips_truncated_to_mode): New function.
1545 2006-04-16 Roger Sayle <roger@eyesopen.com>
1548 * expr.c (compress_float_constant): Copy the narrow constant into
1549 a new pseudo before extending it to its final width.
1551 2006-04-16 Roger Sayle <roger@eyesopen.com>
1552 Andrew Pinski <pinskia@gcc.gnu.org>
1553 Dale Johannesen <dalej@apple.com>
1556 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1557 special case code to implement V8HImode and V16QImode with SSE2.
1559 2006-04-15 Roger Sayle <roger@eyesopen.com>
1561 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1562 trees are constructed with a suitable tree type.
1564 2006-04-15 Roger Sayle <roger@eyesopen.com>
1566 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1567 (integer_onep): Likewise.
1568 (integer_all_onesp): Likewise.
1569 (integer_pow2p): Likewise.
1570 (integer_nonzerop): Likewise.
1571 (real_zerop): Likewise.
1572 (real_onep): Likewise.
1573 (real_twop): Likewise.
1574 (real_minus_onep): Likewise.
1575 (int_size_in_bytes): Likewise.
1576 (host_integerp): Likewise.
1578 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
1580 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1581 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1582 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1584 * tree-ssa-structalias.h (alias_info): Remove num_references.
1586 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1588 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1589 (output_bvb patterns): Likewise.
1590 * pa.c (output_bb): Use 'bb' insn for long branch case.
1591 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1592 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1593 1. Correct length operand for alternatives 1 and 2.
1594 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1595 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
1597 2006-04-14 Roger Sayle <roger@eyesopen.com>
1599 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1600 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1601 were accidentally reverted by r112959.
1603 2006-04-15 Jakub Jelinek <jakub@redhat.com>
1606 * except.h (eh_region_outermost): New prototype.
1607 * except.c (eh_region_outermost): New function.
1608 * tree-cfg.c (find_outermost_region_in_block): Use it.
1610 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1612 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1614 * reload1.c (reg_equiv_memory_loc_varray): Rename to
1615 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
1616 (init_reload, reload): Use VEC instead of VARRAY.
1617 * reload.h: Update the prototype for
1618 reg_equiv_memory_loc_varray.
1620 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
1621 Eric Botcazou <ebotcazou@libertysurf.fr>
1623 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1626 2005-04-13 Uros Bizjak <uros@kss-loka.si>
1629 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1630 to expand fallback builtin function call.
1632 2006-04-14 Alan Modra <amodra@bigpond.net.au>
1635 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1636 and emit libcall here in case the builtin fails.
1637 (expand_builtin_strcmp): Always emit the libcall here on failure.
1639 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
1641 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1642 * flow.c (reg_n_info): Change the type to
1643 VEC(reg_info_p,heap) *.
1644 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1646 * regs.h (reg_info_p): New.
1647 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1648 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1649 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1652 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
1654 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1656 * params.h (MAX_SCHED_READY_INSNS): New macro.
1657 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1658 past MAX_SCHED_READY_INSNS during the first scheduling pass.
1659 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1660 the ready list for 1 cycle during the first scheduling pass.
1661 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1663 2006-04-13 Richard Henderson <rth@redhat.com>
1666 * gimple-low.c (lower_omp_directive): Remove dead code.
1667 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1668 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1669 * omp-low.c (struct omp_region): Move to tree-flow.h.
1670 (root_omp_region): Export.
1671 (omp_regions, lookup_omp_region): Remove.
1672 (determine_parallel_type): Update for struct omp_region changes.
1673 (dump_omp_region): Dump regions with block numbers.
1674 (new_omp_region): Take type and block instead of stmt; malloc
1676 (free_omp_region_1, free_omp_regions): New.
1677 (expand_parallel_call): Take entry_stmt as argument; update for
1678 changes to omp_region.
1679 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1680 (remove_exit_barriers): New.
1681 (expand_omp_parallel): Update for struct omp_region changes.
1682 (expand_omp_synch): Likewise.
1683 (expand_omp): Likewise.
1684 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1685 (expand_omp_for_static_chunk): Likewise.
1686 (expand_omp_for): Likewise.
1687 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1688 (expand_omp_sections): Similarly, with GOMP_sections_end.
1689 (expand_omp_single): New.
1690 (build_omp_regions_1): Update for OMP_CONTINUE.
1691 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1692 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1693 OMP_SECTIONS_SECTIONS.
1694 (lower_omp_single_simple): Don't emit barrier here.
1695 (lower_omp_single_copy): Likewise.
1696 (lower_omp_single): Fix bindings, and lower to straightline now.
1697 (lower_omp_master, lower_omp_ordered): Likewise.
1698 (lower_omp_critical): Likewise.
1699 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
1700 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1701 omp edges, free it afterward.
1702 (make_omp_sections_edges): Remove.
1703 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1704 (move_stmt_r): Handle OMP_CONTINUE.
1705 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
1706 statement pointers to basic blocks. Add type member.
1707 (root_omp_region, new_omp_region, free_omp_regions): Declare.
1708 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1709 * tree-inline.c (estimate_num_insns_1): Likewise.
1710 * tree-pretty-print.c (dump_generic_node): Likewise.
1711 * tree-ssa-operands.c (get_expr_operands): Likewise.
1712 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1713 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1714 (OMP_CONTINUE): New.
1715 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1716 (OMP_SECTIONS_SECTIONS): Remove.
1717 (OMP_SECTION_LAST): New.
1718 (OMP_RETURN_NOWAIT): New.
1720 2006-04-13 Roger Sayle <roger@eyesopen.com>
1722 * fold-const.c (native_encode_vector, native_interpret_real):
1723 Correct obvious mistakes in the previous check-in.
1725 2006-04-13 Roger Sayle <roger@eyesopen.com>
1727 * fold-const.c (native_encode_expr): New function to encode
1728 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1729 or VECTOR_CST into a specified buffer.
1730 (native_encode_int): New function.
1731 (native_encode_real): New function.
1732 (native_encode_complex): New function.
1733 (native_encode_vector): New function.
1734 (native_interpret_expr): Inverse of native_encode_expr to convert
1735 a target representation into an INTEGER_CST, REAL_CST etc...
1736 (native_interpret_int): New function.
1737 (native_interpret_real): New function.
1738 (native_interpret_complex): New function.
1739 (native_interpret_vector): New function.
1740 (fold_view_convert_expr): New function to constant fold/evaluate
1741 a VIEW_CONVERT_EXPR of a suitable constant expression.
1742 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1743 Change call of build1 to fold_build1 when constructing a
1746 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
1747 Ulrich Weigand <uweigand@de.ibm.com>
1750 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1753 2006-04-13 Alan Modra <amodra@bigpond.net.au>
1756 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1757 optimize to lo_sum for DFmode if !TARGET_FPRS.
1759 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1761 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1762 delete_alias_info, compute_flow_sensitive_aliasing,
1763 group_aliases): Use VEC instead of VARRAY.
1764 * tree-ssa-structalias.c (update_alias_info): Likewise.
1765 * tree-ssa-structalias.h (alias_info): Change the type of
1766 processed_ptrs to VEC(tree,heap) *.
1768 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
1771 * config/sh/lib1funcs.h: New file, broken out of:
1772 * config/sh/lib1funcs.asm.
1773 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1775 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1776 * config/sh/lib1funcs-Os-4-200.asm: New file.
1777 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1778 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1779 (EXTRA_MULTILIB_PARTS): Include it.
1780 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1781 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1782 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1783 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1786 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
1788 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1789 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1790 tpa_compact, root_var_init, type_var_init): Use VEC instead of
1792 * tree-ssa-live.h: Include vecprim.h.
1793 (tree_partition_associator_d): Change the type of
1794 first_partition to VEC(int,heap) *.
1795 (tpa_first_partition): Use VEC instead of VARRAY.
1797 * Makefile.in (GTFILES): Move functions.h after tree.h.
1798 * function.c (reset_block_changes, record_block_change,
1799 check_block_change, free_block_changes): Use VEC instead of
1801 * function.h (function): Change the type of
1802 ib_boundaries_block to VEC(tree,gc) *.
1803 * tree-inline.c (copy_cfg_body): Initialize
1804 ib_boundaries_block to NULL instead of (varray_type) 0.
1806 2006-04-12 Roger Sayle <roger@eyesopen.com>
1808 * expr.c (emit_group_store): Correct operand order in call to
1809 subreg_lowpart_offset. Always create paradoxical SUBREGs with
1810 a SUBREG_BYTE of zero.
1812 2006-04-12 Richard Guenther <rguenther@suse.de>
1814 * profile.c (compute_branch_probabilities): Remove code
1815 encapsulated in !ir_type (), which are remanents of the
1816 removed RTL profiling code.
1817 * rtl-profile.c: Remove.
1819 2006-04-12 Alan Modra <amodra@bigpond.net.au>
1821 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1822 magic NULL_RTX comment.
1823 (function_arg): Store entire fp arg to mem if any part should go
1825 (rs6000_arg_partial_bytes): Adjust for above change.
1827 2006-04-11 Roger Sayle <roger@eyesopen.com>
1829 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1830 if it hasn't been initialized by dwarf2out_init.
1832 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
1834 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1835 symbolic constants in branch patterns.
1837 2006-04-11 Roger Sayle <roger@eyesopen.com>
1839 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1841 2006-04-11 Richard Sandiford <richard@codesourcery.com>
1843 PR rtl-optimization/27073
1844 * gcse.c (try_replace_reg): Revert last change. Continue to search
1845 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1848 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1850 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1851 aggregate types other than record and union types.
1852 (function_arg): Likewise.
1853 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1855 (function_value): In 64-bit mode, return objects that require it
1858 2006-04-11 Roger Sayle <roger@eyesopen.com>
1860 * dwarf2out.c (premark_used_types): Remove problematic prototype.
1862 2006-04-11 Jakub Jelinek <jakub@redhat.com>
1864 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1866 2006-04-03 Jeff Law <law@redhat.com>
1869 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1870 alias information too.
1872 2006-04-10 Mike Frysinger <vapier@gentoo.org>
1874 * Makefile.in (gcc-cross): Add $(exeext) to target name.
1876 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
1879 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1880 (premark_used_types_helper): New.
1881 (premark_used_types): New.
1882 (gen_subprogram_die): Call premark_used_types.
1883 (prune_unused_types_walk): Do not prune perennial dies.
1884 * function.c (used_types_insert): New.
1885 * function.h (struct function): Add used_types_hash field.
1886 (used_types_insert): Add prototype.
1887 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1888 * c-parser.c (c_parser_cast_expression): Save casted types in used
1891 2006-04-11 Mark Mitchell <mark@codesourcery.com>
1894 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1895 rs6000_explicit_options.float_gprs.
1897 2006-04-10 Roger Sayle <roger@eyesopen.com>
1899 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1900 from ix86_expand_vector_init_low_nonzero. Take an additional
1901 one_var argument indicating which element is non-zero. Support
1902 one_var != 0 for V4SFmode and V4SImode by permuting the result.
1903 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1904 with one_var instead of ix86_expand_vector_init_low_nonzero.
1906 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
1908 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1909 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1910 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1911 build/genextract.o): Depend on vecprim.h.
1912 * cfglayout.c, df-problems.c, function.c, genextract.c,
1913 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1914 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1918 2006-04-10 Geoffrey Keating <geoffk@apple.com>
1920 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1921 Declare VECs of this type.
1922 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1923 (remove_children): Delete.
1924 (add_dwarf_attr): Use VEC routines.
1925 (add_AT_flag): Update for changes to add_dwarf_attr.
1926 (add_AT_int): Likewise.
1927 (add_AT_unsigned): Likewise.
1928 (add_AT_long_long): Likewise.
1929 (add_AT_vec): Likewise.
1930 (add_AT_string): Likewise.
1931 (add_AT_die_ref): Likewise.
1932 (add_AT_fde_ref): Likewise.
1933 (add_AT_loc): Likewise.
1934 (add_AT_loc_list): Likewise.
1935 (add_AT_addr): Likewise.
1936 (add_AT_lbl_id): Likewise.
1937 (add_AT_lineptr): Likewise.
1938 (add_AT_macptr): Likewise.
1939 (add_AT_offset): Likewise.
1940 (add_AT_range_list): Likewise.
1941 (get_AT): Use VEC_iterate.
1942 (remove_AT): Use VEC_ordered_remove.
1943 (free_die): Fold remove_children into here; have it use VEC_iterate.
1944 (print_die): Use VEC_iterate on attrs.
1945 (reverse_die_lists): Don't reverse attr lists.
1946 (die_checksum): Use VEC_iterate on attrs.
1947 (same_die_p): Likewise.
1948 (output_location_lists): Likewise.
1949 (build_abbrev_table): Likewise.
1950 (size_of_die): Likewise.
1951 (unmark_all_dies): Likewise.
1952 (output_abbrev_section): Likewise.
1953 (output_die): Likewise.
1954 (prune_unused_types_walk_attribs): Likewise.
1956 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1958 * doc/install.texi (*-*-solaris2*): Point to the configure page.
1960 2006-04-10 Jakub Jelinek <jakub@redhat.com>
1963 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1965 2006-04-09 Roger Sayle <roger@eyesopen.com>
1967 * expr.c (store_constructor): Don't bother clearing target if
1968 we're about to assign a vector to it using vec_init_optab.
1970 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
1972 * tree-ssa-alias.c (lhs_may_store_to): New function.
1973 (recalculate_used_alone): Handle LHS of calls.
1975 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1979 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1980 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
1981 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
1982 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1983 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1984 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1985 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1986 stubs. Add ".align 8" directives before all ".dword" directives.
1987 (GTHREAD_USE_WEAK): Revise comment.
1988 (TARGET_ATTRIBUTE_WEAK): Define.
1989 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1990 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1991 * stublib.c: New file.
1996 * pa.md (cbranch patterns): Revise arguments used in calls to
1997 output_cbranch, output_bb and output_bvd. Add long branch length
1999 (fbranch patterns): Handle long branches.
2000 (jump): Revise length check. Revise arguments for output_lbranch call.
2001 Add long branch length attributes.
2002 (decrement_and_branch_until_zero): Add long branch length attributes.
2003 (output_movb, output_parallel_addb and output_parallel_movb patterns):
2004 Likewise. Revise arguments for output_parallel_addb and
2005 output_parallel_movb calls.
2006 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
2007 output_parallel_movb and output_parallel_addb): Update prototypes.
2008 * pa.c (output_cbranch): Revise arguments. Correct handling of
2009 nullification in long branches.
2010 (output_lbranch): Add new argument to control extraction of delay
2012 (output_bb): Handle long branches.
2013 (output_bvb, output_dbra, output_movb, output_parallel_movb,
2014 output_parallel_addb): Likewise.
2016 2006-04-09 Richard Sandiford <richard@codesourcery.com>
2018 PR rtl-optimization/27073
2019 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
2022 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
2024 * tree.h (tree_memory_tag): Add old_used_alone.
2025 (SMT_OLD_USED_ALONE): New macro.
2026 * tree-ssa-alias.c (recalculate_used_alone): Stop
2027 marking things for renaming unnecessarily.
2029 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2031 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
2032 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
2033 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
2034 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
2035 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
2036 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
2037 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
2038 spelling convensions.
2039 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
2040 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
2041 typos. Follow spelling conventions.
2043 2006-04-07 DJ Delorie <dj@redhat.com>
2045 * config/m32c/m32c.c (m32c_function_arg): Structures are always
2046 passed on the stack.
2047 (m32c_init_cumulative_args): When a function returns a structure,
2048 always pass the pointer to that return area on the stack.
2049 (m32c_function_arg_advance): Don't increment the parameter number
2050 if we're processing the returned structure pointer.
2051 (pushm_info): Reverse order of registers.
2053 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
2055 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
2056 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
2057 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
2058 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
2060 * tree-chrec.c (chrec_fold_multiply_poly_poly,
2061 chrec_fold_multiply): Same.
2062 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
2063 force_expr_to_var_cost): Same.
2064 * tree-mudflap.c (mf_xform_derefs_1): Same.
2065 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
2067 2006-04-07 David Edelsohn <edelsohn@gnu.org>
2069 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
2070 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
2073 2006-04-07 Jan Hubicka <jh@suse.cz>
2075 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
2077 2006-04-07 Richard Guenther <rguenther@suse.de>
2079 PR tree-optimization/26135
2080 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
2081 loads for store copy-prop.
2082 (copy_prop_visit_stmt): Likewise.
2084 2006-04-05 Robert Millan <robertmh@gnu.org>
2086 * config/i386/linux.h: Add a comment to mark macros that are
2087 being overriden in config/k*bsd-gnu.h.
2088 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
2090 * config/knetbsd-gnu.h: Ditto.
2092 2006-04-06 Jan Hubicka <jh@suse.cz>
2096 * coverage.c (coverage_checksum_string): Reorganize loop to not read
2099 2006-04-06 Mike Stump <mrs@apple.com>
2101 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
2102 for HAVE_nonlocal_goto to be consistent.
2103 (expand_builtin_nonlocal_goto): Likewise.
2104 (expand_builtin_strcmp): Use #ifdef instead of #if
2105 for HAVE_cmpstrnsi to be consistent.
2107 2006-04-05 DJ Delorie <dj@redhat.com>
2109 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
2112 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
2114 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
2115 got-relative addressing for anything but SImode.
2117 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
2118 even if the calling function doesn't modify them.
2120 2006-04-05 Richard Guenther <rguenther@suse.de>
2122 PR tree-optimization/26919
2123 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
2124 to cgraph_estimate_size_after_inlining.
2126 2006-04-05 Alan Modra <amodra@bigpond.net.au>
2128 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
2130 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
2132 PR tree-optimization/26996
2133 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
2134 VECTOR_TYPE variables.
2136 2006-04-05 Richard Guenther <rguenther@suse.de>
2138 PR tree-optimization/26763
2139 * fold-const.c (fold_comparison): Move folding of
2140 PTR + CST CMP PTR + CST ...
2141 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
2143 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
2145 * doc/install.texi (Prerequisites): Refine some wording on
2146 bootstrapping and ksh.
2147 Move the version numbers of DejaGnu here from the testing section
2148 and fix casing of names.
2149 Fix markup and clarify wording for autogen requirements.
2150 Refer to GCJ instead of just java.
2151 Refer to SVN instead of CVS.
2152 Describe diffutils as useful instead of necessary.
2153 (Downloading the source): Refer to SVN instead of CVS.
2154 Adjust a link to our web site accordingly.
2155 (Configuration): Fix casing of Bison.
2156 (Building): Refer to SVN instead of CVS.
2157 Fix a sentence on the use of Bison and remove duplicate (and
2158 incorrect) version number of Bison requirement.
2159 Remove one redundant list of packages needed for building.
2160 (Specific): Avoid reference to CVS.
2162 2006-04-04 Eric Christopher <echristo@apple.com>
2164 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
2165 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
2166 (rs6000_handle_struct_attribute): New.
2167 (rs6000_ms_bitfield_layout_p): Ditto.
2169 2006-04-04 Geoffrey Keating <geoffk@apple.com>
2171 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
2172 NULL for dso parameter to atexit_common.
2174 2006-04-04 Eric Christopher <echristo@apple.com>
2176 * config/i386/i386.c (machopic_output_stub): Output \t
2177 between instructions and operands.
2179 2006-04-04 David Edelsohn <edelsohn@gnu.org>
2181 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
2182 satisfies_constraint_[IL] to explicit tests on value.
2184 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
2186 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2187 set_nb_iterations_in_loop): Use build_int_cst instead of
2189 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
2190 build_int_cst instead of convert.
2192 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
2194 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
2195 new value 2 for incoming.
2196 * function.c (expand_function_start): Call struct_value_rtx
2198 * config/sparc/sparc.md: Comment updated_return.
2199 * config/sparc/sparc.opt: Add -mstd-struct-return option.
2200 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
2201 struct return if sparc_std_struct_return and incoming is 2.
2202 (print_operand): Do not adjust return if
2203 sparc_std_struct_return.
2205 2006-04-04 Roger Sayle <roger@eyesopen.com>
2207 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
2208 convert in the middle-end.
2209 * expr.c (store_expr, store_constructor, get_inner_reference,
2210 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
2212 * tree.c (build_range_type): Likewise.
2214 2006-04-04 Tom Tromey <tromey@redhat.com>
2216 * doc/install.texi (Prerequisites): Mention jar.
2218 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
2220 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
2223 2006-04-04 Matthias Klose <doko@debian.org>
2225 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
2226 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
2229 2006-04-03 Geoffrey Keating <geoffk@apple.com>
2231 * doc/extend.texi (Function Attributes): Rewrite visibility
2232 attribute documentation.
2233 * doc/invoke.texi (C++ Dialect Options): Rewrite
2234 -fvisibility-inlines-hidden documentation to describe something
2235 entirely different, although in practise compatible.
2236 (Code Gen Options): Warn about system headers in -fvisibiltity=
2239 * doc/extend.texi (Other Builtins): Document that
2240 __builtin_nan is a compile-time constant only when its argument
2243 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
2245 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
2246 trying to remove TRUNCATE check if all bits outside the new mode
2247 are identical to the sign bit.
2249 2006-04-03 Jeff Law <law@redhat.com>
2251 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
2252 and operand scanning in some common cases.
2254 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
2255 Dale Johannesen <dalej@apple.com>
2258 * regclass.c (struct reg_pref): Update documentation.
2259 (regclass): Set prefclass to NO_REGS if memory is the best option.
2260 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2261 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
2262 into account. For non-registers, equate an empty preferred
2263 reload class to a `!' in the constraint; move the if clause to
2264 do so after those that reject the insn.
2265 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
2267 (find_dummy_reload): Likewise.
2268 * doc/tm.texi (Register Classes): Document what it means
2269 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
2270 * config/i386/i386.c (ix86_preferred_reload_class): Force
2271 using SSE registers (and return NO_REGS for floating-point
2272 constants) if math is done with SSE.
2273 (ix86_preferred_output_reload_class): New.
2274 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
2275 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
2276 * config/i386/i386.md: Remove # register preferences.
2278 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2281 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2282 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
2283 the type of nb_iter.
2284 (instantiate_parameters_1): Convert the operands before calling
2285 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
2286 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
2288 2006-04-02 Roger Sayle <roger@eyesopen.com>
2290 * builtins.c (dummy_object): Use build_int_cst instead of convert.
2291 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
2293 * dojump.c (do_jump): Likewise.
2294 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
2295 * gimplify.c (gimple_boolify, gimplify_init_constructor,
2296 gimplify_boolean_expr): Likewise.
2297 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2298 * varasm.c (array_size_for_constructor): Likewise.
2299 * tree-object-size.c (compute_object_offset): Likewise.
2301 2006-04-02 Roger Sayle <roger@eyesopen.com>
2304 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
2305 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
2307 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2309 PR tree-optimization/26939
2310 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
2312 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2314 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
2315 at_stmt. Convert the type of operands before calling
2316 build_polynomial_chrec.
2317 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
2319 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
2320 (instantiate_parameters_1): Convert the type of operands before calling
2321 build_polynomial_chrec.
2322 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2323 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
2324 reset_evolution_in_loop): Insert asserts to check the types of the
2326 (chrec_type): Moved...
2327 (eq_evolutions_p): Use operand_equal_p.
2328 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
2329 the types of the operands.
2330 (chrec_type): ...here.
2331 * tree-data-ref.c (create_data_ref): Convert the operands before
2332 calling chrec_replace_initial_condition.
2333 (same_access_functions, analyze_subscript_affine_affine,
2334 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
2335 (compute_subscript_distance, analyze_ziv_subscript,
2336 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
2337 analyze_miv_subscript): Convert the operands before calling
2338 chrec_fold_minus or chrec_fold_plus.
2340 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2342 * tree-data-ref.c (compute_all_dependences): Use a pointer to
2343 the dependence_relations vector.
2344 (compute_data_dependences_for_loop): Adjust call to
2345 compute_all_dependences.
2347 2006-04-01 Roger Sayle <roger@eyesopen.com>
2348 Richard Henderson <rth@redhat.com>
2350 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
2351 gimple_boolify on the condition before calling gimplify_expr.
2353 2006-03-31 Bob Wilson <bob.wilson@acm.org>
2355 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
2356 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
2357 the frame size. Update to use the new macros.
2358 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
2359 * config/xtensa/ieee754-df.S: Likewise.
2361 2006-03-31 Richard Henderson <rth@redhat.com>
2363 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
2364 (make_edges): ... here. Control fallthru creation with a local
2365 variable. Do not play with fake edges.
2366 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
2367 (make_goto_expr_edges): Don't play with fake edges. Make for_call
2370 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
2372 * dwarf2.h (DW64_CIE_ID): Define.
2373 * dwarf2out.c (DWARF_CIE_ID): Define.
2374 (output_call_frame_info): Output 0xffffffff before standard 8-byte
2375 length header. Use DWARF_CIE_ID.
2376 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
2377 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
2379 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
2381 * config/sh/linux-atomic.asm: New file.
2382 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
2384 2006-03-31 DJ Delorie <dj@redhat.com>
2386 * config/m32c/cond.md: Set condition flags properly throughout.
2387 * config/m32c/minmax.md: Likewise.
2388 * config/m32c/prologue.md: Likewise.
2389 * config/m32c/bitops.md: Likewise.
2390 * config/m32c/muldiv.md: Likewise.
2391 * config/m32c/mov.md: Likewise.
2392 * config/m32c/addsub.md: Likewise.
2393 * config/m32c/m32c.md: Likewise.
2394 * config/m32c/jump.md: Likewise.
2395 * config/m32c/shift.md: Likewise.
2397 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
2398 conditionally output the pattern for this.
2399 * config/m32c/m32c.c (flags_needed_for_conditional): New.
2400 (m32c_compare_redundant): New.
2401 (m32c_output_compare): New.
2402 * config/m32c/m32c-protos.h (m32c_output_compare): New.
2404 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
2405 dest, not src. Allow other 4-byte modes.
2407 2006-03-30 Denis Chertykov <denisc@overta.ru>
2409 * doc/md.texi: Refer to avr/constraints.md instead of
2412 2006-03-30 Roger Sayle <roger@eyesopen.com>
2414 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
2415 signed vs. unsigned comparison failures on some hosts.
2417 2006-03-31 Alan Modra <amodra@bigpond.net.au>
2420 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
2421 change to FLOAT_REGS.
2423 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
2424 (rs6000_override_options): Use it.
2425 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
2426 only for -mabi=spe/no-spe and -mabi=altivec.
2428 2006-03-30 Geoffrey Keating <geoffk@apple.com>
2430 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
2433 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2435 * Makefile.in: Rename docdir to gcc_docdir.
2437 2006-03-30 Roger Sayle <roger@eyesopen.com>
2440 * expr.c (emit_group_store): Optimize group stores into a pseudo
2441 register by using a paradoxical subreg to initialize the destination
2442 if the first or last member of the group specifies a "low part".
2444 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2447 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2448 * target.h (struct gcc_target.speculate_insn): Change type of the
2449 second parameter to 'int'.
2450 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
2451 the second operand of the DEPS_LIST.
2452 (copy_DEPS_LIST_list): Update reference to the second operand of the
2454 * rtl.h (alloc_DEPS_LIST): Update signature.
2455 * sched-int.h (ds_t): Change typedef to 'int'.
2456 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2458 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2460 * haifa-sched.c (try_ready): Change condition to restore
2461 non-speculative pattern of the instruction.
2462 (process_insn_depend_be_in_spec): Code to keep probability of the
2463 speculative dependence non-decreasing.
2465 2006-03-30 Jie Zhang <jie.zhang@analog.com>
2467 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2468 (single_move_for_movmem): ... this. Also change all uses.
2469 (bfin_expand_strmov): Renamed to...
2470 (bfin_expand_movmem): ... this. Also change all uses.
2471 * config/bfin/bfin.md (movstrsi): Renamed to...
2472 (movstrsi): ...this.
2474 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
2476 PR tree-optimization/26830
2478 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2479 (copy_prop_visit_stmt): Remove write-only variable ann.
2480 (init_copy_prop): Check variable loop depth here. Do not simulate
2481 memory-tag and virtual operand PHIs except for store copy prop.
2483 2006-03-30 Richard Guenther <rguenther@suse.de>
2485 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2486 variants with double arguments.
2488 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2490 * genpreds.c (write_tm_constrs_h): Delete variable p.
2491 * genconditions.c (write_header): Add tm-constrs.h to included
2493 * genpeep.c (main): Add toplev.h to included headers.
2494 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
2495 (build/genpeep.o): Add toplev.h dependency.
2496 * config/rs6000/constraints.md: Add "W" constraint.
2498 2006-03-29 Roger Sayle <roger@eyesopen.com>
2500 * stor-layout.c (mode_for_size_tree): Remove restiction on type
2501 sizes by correctly testing whether the size fits a host integer.
2502 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2503 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2504 SImode range for the default sizetype and bitsizetype.
2506 2006-03-29 Roger Sayle <roger@eyesopen.com>
2508 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2509 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
2510 quickly if the argument is already of the correct type.
2511 Call fold_build1 instead of build1. Tidy up blank lines.
2513 2006-03-29 David Edelsohn <edelsohn@gnu.org>
2515 * genemit.c (main): Add tm-constrs.h to included headers.
2516 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2517 * genpeep.c (main): Add tm-constrs.h to included headers.
2518 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2519 (write_tm_constrs_h): this and write complete file.
2520 (write_tm_preds_h): Do not emit satisfies_constraint fns.
2521 (write_insn_preds_c): Add tm-constrs.h to included headers.
2522 (gen_constrs): New variable.
2523 (parse_option): Parse "-c".
2524 (main): Invoke write_tm_constrs_h.
2525 * genrecog.c (write_header): Add tm-constrs.h to included headers.
2526 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2527 (object_out_file): Add tm-constrs.h dependency.
2528 (insn-emit.o): Same.
2529 (insn-output.o): Same.
2530 (insn-peep.o): Same.
2531 (insn-preds.o): Same.
2532 (insn-recog.o): Same.
2533 (tm-constsr.h): New target.
2534 (s-constrs-h): New target.
2536 * config/rs6000/constraints.md: New file.
2537 * config/rs6000/rs6000.c: Include tm-constrs.h.
2538 (num_insn_constant_wide): Convert to satisfies_constraint.
2539 (rs6000_rtx_costs): Convert to satisfies_constraint.
2540 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2541 (CONST_OK_FOR_LETTER_P): Delete.
2542 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2543 (EXTRA_CONSTRAINT): Delete.
2544 (EXTRA_MEMORY_CONSTRAINT): Delete.
2545 (EXTRA_ADDRESS_CONSTRAINT): Delete.
2546 * config/rs6000/predicates.md: Convert to satisfies_constraint.
2547 * config/rs6000/rs6000.md: Include constraints.md. Convert to
2548 satisfies_constraint.
2550 * config/i386/i386.c: Include tm-constrs.h.
2552 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2554 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2555 * tree-data-ref.c (find_data_references_in_loop,
2556 compute_data_dependences_for_loop): Use pointers to VEC.
2557 (analyze_all_data_dependences): Adjust calls.
2558 * tree-data-ref.h (find_data_references_in_loop,
2559 compute_data_dependences_for_loop): Adjust declarations.
2560 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2561 compute_data_dependences_for_loop.
2563 2006-03-29 Paul Brook <paul@codesourcery.com>
2565 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2568 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2570 PR tree-optimization/26859
2571 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2573 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2574 for the step after fold_convert.
2576 2006-03-29 Paul Brook <paul@codesourcery.com>
2578 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2579 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2581 2006-03-29 Paul Brook <paul@codesourcery.com>
2584 * targhooks.c (default_narrow_bitfield): New fuction.
2585 * targhooks.h (default_narrow_bitfield): add prototype.
2586 * target.h (gcc_target): Add narrow_volatile_bitfield.
2587 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2588 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2589 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2590 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2592 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
2594 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2596 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2597 (NR_C_MODES): Add TDmode, DDmode and SDmode.
2598 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2599 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2600 (s390_function_arg_float): Allow SDmode and DDmode values to be
2601 passed in floating point registers.
2602 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2603 check with SCALAR_FLOAT_MODE_P.
2604 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2606 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2608 PR tree-optimization/25985
2609 * tree-ssa-loop-niter.c (number_of_iterations_le,
2610 number_of_iterations_ne): Make comments more precise.
2611 (number_of_iterations_cond): Add only_exit argument. Use the
2612 fact that signed variables do not overflow only when only_exit
2614 (loop_only_exit_p): New.
2615 (number_of_iterations_exit): Pass result of loop_only_exit_p to
2616 number_of_iterations_cond.
2618 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2620 PR tree-optimization/26643
2621 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2624 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
2626 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2627 (divsi3_i4_int): Likewise.
2629 2006-03-28 Roger Sayle <roger@eyesopen.com>
2631 * expr.c (emit_group_store): Only create a new pseudo reg if the
2632 quantity it needs to hold isn't already a suitable pseudo.
2634 2006-03-28 Jeff Law <law@redhat.com>
2636 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2637 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2639 2006-03-28 Roger Sayle <roger@eyesopen.com>
2641 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2642 the equivalent ~X & Y, and the symmetry related transformations.
2643 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2644 ~X & Y, and symmetry related transforms.
2646 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2648 Revert my 2006-03-27 patches.
2650 2006-03-28 Roger Sayle <roger@eyesopen.com>
2652 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2653 ~(T1)X, when T1 and T2 are integer types of the same precision
2654 and (T2)X isn't an extension.
2656 2006-03-28 Jeff Law <law@redhat.com>
2658 PR tree-optimization/26796
2659 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2660 need EH edge cleanups rather than purging them immediately.
2661 (eliminate_degenerate_phis): Handle queued EH cleanups.
2663 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
2665 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2668 2006-03-27 Roger Sayle <roger@eyesopen.com>
2671 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2672 cast BIT_NOT_EXPR operand to the correct type.
2674 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
2676 * tree-loop-linear.c: Don't include varray.h.
2677 (gather_interchange_stats, try_interchange_loops,
2678 linear_transform_loops): Use VEC instead of VARRAY.
2679 * lambda-mat.c: Don't include varray.h.
2680 * tree-chrec.c: Same.
2681 * lambda-trans.c: Same.
2682 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2683 VEC instead of VARRAY.
2684 * tree-vectorizer.h: Idem.
2685 * tree-data-ref.c (dump_data_references,
2686 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2687 initialize_data_dependence_relation, finalize_ddr_dependent,
2688 compute_all_dependences, find_data_references_in_loop,
2689 compute_data_dependences_for_loop, analyze_all_data_dependences,
2690 free_dependence_relation, free_dependence_relations,
2691 free_data_refs): Idem.
2692 * tree-data-ref.h (data_reference_p, subscript_p): New.
2693 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2694 VEC instead of VARRAY.
2695 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2696 (find_data_references_in_loop, compute_data_dependences_for_loop,
2697 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2698 dump_data_dependence_relations, free_dependence_relations,
2699 free_data_refs): Adjust declaration.
2700 (lambda_transform_legal_p): Move declaration here...
2701 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2702 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2703 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2704 vect_analyze_data_refs): Use VEC instead of VARRAY.
2705 * lambda.h (lambda_transform_legal_p): ...from here.
2706 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2707 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2708 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2709 tree-chrec.o): Don't depend on VARRAY_H.
2711 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2713 * rtl.def (Copyright): Update date.
2714 (DEPS_LIST): Change type of the second operand to 'int'.
2715 * target.h (Copyright): Update date.
2716 (struct gcc_target.speculate_insn): Change type of the second parameter
2718 * lists.c (Copyright): Update date.
2719 (alloc_DEPS_LIST): Change signature. Update reference to the second
2720 operand of the DEPS_LIST.
2721 (copy_DEPS_LIST_list): Update reference to the second operand of the
2723 * rtl.h (Copyright): Update date.
2724 (alloc_DEPS_LIST): Update signature.
2725 * sched-int.h (Copyright): Update date.
2726 (ds_t): Change typedef to 'int'.
2727 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2729 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2731 * haifa-sched.c (Copyright): Update date.
2732 (try_ready): Change condition to restore non-speculative pattern
2734 (process_insn_depend_be_in_spec): Code to keep probability of the
2735 speculative dependence non-decreasing.
2737 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
2739 * regrename.c (replace_oldest_value_addr): Initialize a variable to
2740 shut up the compiler.
2742 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
2744 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2745 to use lib prefix for target.
2746 ($(T)libic_invalidate_array_4-200.a): Likewise.
2747 ($(T)libic_invalidate_array_4a.a): Likewise.
2749 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
2750 J"orn Rennecke <joern.rennecke@st.com>
2752 * superh.opt: New file.
2753 * sh.c (boardtype, osruntime): Remove.
2754 * superh.h (SUBTARGET_OPTIONS): Remove.
2755 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2757 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
2758 arguments with ^ and/or [].
2760 * config.gcc (sh-*-*): Add quoting to account for quirk of
2762 Replace == with = in enable_incomplete_targets test.
2764 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2765 with MASK_LITTLE_ENDIAN.
2767 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2768 * config/sh/sh.opt: Added to some comments.
2769 * config/sh/superh.h: Removed some chaff.
2771 * config/sh/sh.opt: Add m4-[1234]00* options.
2772 * config/sh/sh.c (sh_handle_option): Likewise.
2773 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2774 (ic_invalidate_array_4-100.o): New rule.
2775 ($(T)libic_invalidate_array_4-100.a): Likewise.
2776 (ic_invalidate_array_4-200.o): Likewise.
2777 ($(T)libic_invalidate_array_4-200.a): Likewise.
2778 (ic_invalidate_array_4a.o): Likewise.
2779 ($(T)libic_invalidate_array_4a.a): Likewise.
2780 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2781 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2783 * config/sh/crt1.asm: Merged in profiling code.
2784 * config/sh/superh.h (STARTFILE_SPEC): Override.
2785 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2786 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2787 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2789 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2790 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2791 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2793 * sh.opt (mpretend-cmove): New option.
2794 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2795 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2796 (movsicc): Add TARGET_PRETEND_CMOVE code.
2798 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
2800 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2801 s390_class_max_nregs): New function prototypes.
2802 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2803 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2804 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2805 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2807 2006-03-26 Geoffrey Keating <geoffk@apple.com>
2809 * dwarf2out.c (add_location_or_const_value_attribute): Call
2810 tree_add_const_value_attribute if nothing else works.
2811 (reference_to_unused): New.
2812 (rtl_for_decl_init): Use reference_to_unused to decide whether
2813 to output an initializer.
2815 2006-03-27 Alan Modra <amodra@bigpond.net.au>
2818 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2819 peephole removing spe frob_di_df_2.
2821 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
2823 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2824 (subscript_dependence_tester_1): Declared.
2825 (print_dir_vectors, print_dist_vectors): New.
2826 (debug_data_dependence_relation): New.
2827 (dump_data_dependence_relation): Print more details.
2828 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2829 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2830 (save_dist_v, save_dir_v, add_outer_distances,
2831 build_classic_dist_vector_1): New.
2832 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2833 Don't test for lambda_vector_lexico_pos.
2834 (same_access_functions, add_multivariate_self_dist,
2835 add_other_self_distances, dir_from_dist): New.
2836 (build_classic_dir_vector): Replace implementation almost identical to
2837 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2839 (subscript_dependence_tester_1): New.
2840 (subscript_dependence_tester): Handle the lexicographically negative
2841 distance vectors by recomputing the dependence relation.
2842 (compute_affine_dependence): Remove parameter loop_nest_depth.
2843 (compute_self_dependence): Don't call compute_subscript_distance.
2844 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2845 Add a parameter for the loop_nest.
2846 (find_loop_nest_1, find_loop_nest): New.
2847 (compute_data_dependences_for_loop): Compute the loop nest, and give
2848 up if the nest is not well formed.
2849 * tree-data-ref.h (loop_p): New.
2850 (struct data_dependence_relation): Replace size_vect field with
2851 loop_nest, a vec of loops.
2852 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2853 (DDR_LOOP_NEST): New.
2854 (print_dir_vectors, print_dist_vectors,
2855 debug_data_dependence_relation): Declared.
2856 (index_in_loop_nest): New.
2857 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2858 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2861 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
2863 * simplify-rtx.c (simplify_relational_operation): Call
2864 simplify_relational_operation_1 even if mode is VOIDmode.
2866 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
2868 PR tree-optimization/26804
2869 * tree.h (DECL_CALL_CLOBBERED): New macro.
2870 (tree_decl_common): Add call_clobbered_flag.
2871 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2872 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2873 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2874 (mark_non_addressable): Ditto.
2875 * tree-ssa.c (verify_call_clobbered): New function.
2876 (verify_alias_info): Use it.
2877 * tree-pass.h (pass_reset_cc_flags): New prototype.
2878 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2879 (reset_cc_flags): New function.
2880 * passes.c (init_optimization_passes): Call reset_cc_flags after
2881 initializing referenced_vars.
2883 2006-03-25 Uros Bizjak <uros@kss-loka.si>
2884 Roger Sayle <roger@eyesopen.com>
2887 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2888 to 1.0 for non-real operands. Implement A / A optimization for
2891 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
2893 * config/i386/i386.c (size_cost): Correct the comment for
2894 cost of storing fp registers.
2895 (i386_cost): Likewise.
2896 (i486_cost): Likewise.
2897 (pentium_cost): Likewise.
2898 (pentiumpro_cost): Likewise.
2899 (k6_cost): Likewise.
2900 (athlon_cost): Likewise.
2901 (k8_cost): Likewise.
2902 (pentium4_cost): Likewise.
2903 (nocona_cost): Likewise.
2904 (generic64_cost): Likewise.
2905 (generic32_cost): Likewise.
2907 2006-03-24 Denis Chertykov <denisc@overta.ru>
2909 * config/avr/avr-protos.h (extra_constraint): Delete.
2910 (extra_constraint_Q): New declaration.
2911 * config/avr/constraints.md: New file.
2912 * config/avr/avr.md: Include it.
2913 (REG_X, REG_Y, REG_Z, REG_W): New constants.
2914 (TMP_REGNO, ZERO_REGNO): Likewise.
2915 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2916 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2917 (extra_constraint): Delete.
2918 (extra_constraint_Q): Test for memory constraint 'Q'.
2919 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2920 (REG_CLASS_FROM_LETTER): Delete.
2921 (CONST_OK_FOR_LETTER_P): Delete.
2922 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2923 (EXTRA_CONSTRAINT): Delete.
2924 (TMP_REGNO): Delete.
2925 (ZERO_REGNO): Delete.
2927 2006-03-24 Jeff Law <law@redhat.com>
2929 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2930 directly. Call mark_new_vars_to_rename slightly earlier.
2932 2006-03-24 Geoffrey Keating <geoffk@apple.com>
2934 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2936 (gen_compile_unit_die): Use new language types for Objective-C and
2938 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2939 DW_LANG_C_plus_plus.
2942 * config/t-darwin (crt3.o): Work around bug 26840.
2943 * config/darwin-crt3.c: Rewrite.
2944 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2946 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2948 * doc/invoke.texi: Document -femit-class-debug-always
2949 * common.opt: Add -femit-class-debug-always.
2951 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
2953 * config/s390/s390.c (s390_decompose_address): Allow SImode for
2954 index and base register.
2955 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2956 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2957 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2958 REGNO_OK_FOR_INDEX_P.
2959 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2961 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2962 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2963 REG_OK_FOR_BASE_P): Definitions removed.
2965 2006-03-24 Jakub Jelinek <jakub@redhat.com>
2968 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2969 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2970 set yet or weren't marked as local yet.
2972 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
2974 * regrename.c (scan_rtx_address): Initialize a variable to shut up
2977 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
2979 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2980 (rs6000_legitimate_small_data_p): Delete.
2981 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2982 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2983 and make static. Add forward declaration. Update uses.
2984 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2985 of offsettable_memref_p.
2986 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2987 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2989 2006-03-24 Jeff Law <law@redhat.com>
2991 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2992 around bug in immediate-use iterator.
2994 2006-03-24 Alan Modra <amodra@bigpond.net.au>
2997 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2998 or __LITTLE_ENDIAN__.
3000 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
3002 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
3003 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
3004 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
3005 * config/sh/sh.opt (mdiv=): Amend description.
3006 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
3007 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
3008 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
3009 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
3010 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
3011 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
3012 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
3013 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
3014 TARGET_DIVIDE_CALL_FP.
3016 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3018 * haifa-sched.c (choose_ready): Fix type of the local variable.
3019 Move local variables. Add comment.
3020 (check_reg_live): Change signature. Make callable from debugger.
3021 * sched-int.h (check_reg_live): Update signature.
3022 * sched-ebb.c (check_reg_live): Update parameters.
3023 * sched-rgn.c (check_reg_live): Ditto.
3024 (region_head_or_leaf_p): Check pointer before dereferencing.
3025 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
3026 before reload on optimization levels below 1.
3028 2006-03-23 Richard Henderson <rth@redhat.com>
3030 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
3034 * config/alpha/predicates.md (local_symbolic_operand): Reject
3037 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
3040 * tree-ssa-pre.c (create_value_expr_from): Don't reject
3041 expressions which have overflowed constants.
3043 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3045 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
3047 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3049 * cfgloopmanip.c (create_loop_notes): Removed.
3050 * final.c (final_scan_insn): Do not handle loop notes.
3051 * jump.c (squeeze_notes): Ditto.
3052 * cfglayout.c (skip_insns_after_block,
3053 duplicate_insn_chain): Ditto.
3054 * cfgcleanup.c (rest_of_handle_jump2): Do not call
3056 * cfgloop.h (create_loop_notes): Declaration removed.
3058 2006-03-23 Richard Sandiford <richard@codesourcery.com>
3060 * varasm.c (output_constant_pool): Restore fnname and fndecl
3062 (assemble_start_function): Adjust call accordingly.
3063 (assemble_end_function): Likewise.
3065 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3068 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
3071 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
3073 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3076 * system.h (ICE_EXIT_CODE): New macro.
3077 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
3078 (diagnostic_action_after_output): Likewise.
3079 * gcc.c (fatal_ice): New function.
3080 (execute): Use it instead of fatal.
3081 (fancy_abort): Likewise.
3082 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
3084 2006-03-22 Jeff Law <law@redhat.com>
3086 * loop-unroll.c (analyze_iv_to_split_insn): Handle
3087 iv_analyze_result returning false.
3089 2006-03-22 Jie Zhang <jie.zhang@analog.com>
3091 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
3093 2006-03-22 Richard Henderson <rth@redhat.com>
3096 * except.c (duplicate_eh_regions_0): New.
3097 (duplicate_eh_region_1): Duplicate the children of the node as
3098 well as the node itself. Link them up properly.
3099 (duplicate_eh_region_2): Merge into ...
3100 (duplicate_eh_regions): ... here. Take copy_region argument, and
3101 copy only a sub-tree if asked. Simplify copying and fixup.
3102 (eh_region_outer_p): New.
3103 * except.h (duplicate_eh_regions): Update decl.
3104 (eh_region_outer_p): Declare.
3105 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
3106 (lower_omp_master): Likewise.
3107 (lower_omp_ordered): Likewise.
3108 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
3109 (move_stmt_r): Use it to remap labels. Handle recursion vs
3110 remap_decls_p properly.
3111 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
3112 (find_outermost_region_in_block): New.
3113 (new_label_mapper): New.
3114 (move_sese_region_to_fn): Copy eh information to the new function
3116 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
3118 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
3121 2006-03-22 Richard Sandiford <richard@codesourcery.com>
3123 * doc/md.texi (-mshared): Mention that -mshared code can be linked
3124 into shared libraries.
3126 2006-03-22 Richard Sandiford <richard@codesourcery.com>
3128 * doc/md.texi: Refer to i386/constraints.md instead of
3130 * config/i386/constraints.md: New file, extracted from...
3131 * config/i386/predicates.md: ...here.
3132 * config/i386/i386.md: Include constraints.md.
3134 2006-03-21 Jason Merrill <jason@redhat.com>
3136 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
3139 * expr.c (init_block_move_fn): Force default visibility.
3140 (init_block_clear_fn): Likewise.
3141 * builtins.c (expand_builtin_fork_or_exec): Likewise.
3142 * targhooks.c (default_external_stack_protect_fail): Likewise.
3144 2006-03-21 Richard Sandiford <richard@codesourcery.com>
3146 * config/mips/predicates.md (const_call_insn_operand): Allow direct
3147 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
3148 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
3149 Use TARGET_OLDABI instead of !TARGET_NEWABI.
3150 (loadgp): Use mips_current_loadgp_style.
3151 (loadgp_noshared): New pattern.
3152 (sibcall_internal): Use MIPS_CALL.
3153 (sibcall_value_internal): Likewise.
3154 (sibcall_value_multiple_internal): Likewise.
3155 (call_internal): Likewise.
3156 (call_value_internal): Likewise.
3157 (call_value_multiple_internal): Likewise.
3158 (call_split): Use MIPS_CALL and add an 'S' constraint.
3159 (call_value_split): Likewise.
3160 (call_value_multiple_split): Likewise.
3161 * config/mips/mips.opt (-mabicalls): Tweak docstring.
3162 (-mshared): New option.
3163 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
3164 (mips_current_loadgp_style): Declare.
3165 * config/mips/mips.c (mips_classify_symbol): Avoid using
3166 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
3167 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
3168 TARGET_ABSOLUTE_ABICALLS.
3169 (override_options): Adjust comments. Improve the warning that is
3170 issued when -mabicalls and -G are used together.
3171 (mips_file_start): Remove comment.
3172 (mips_current_loadgp_style): New function.
3173 (mips_gnu_local_gp): New variable.
3174 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
3176 (mips_output_function_prologue): Use mips_current_laodgp_style.
3177 (mips_expand_prologue): Call mips_emit_loadgp before emitting
3178 the cprestore instruction.
3179 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
3180 live for TARGET_ABSOLUTE_ABICALLS.
3181 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
3182 (ASM_SPEC): Pass down -mshared and -mno-shared.
3183 (MIPS_CALL): New macro.
3184 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
3186 * doc/invoke.texi (-mabicalls): Update documentation.
3187 (-mshared): Document.
3189 2006-03-21 Steve Ellcey <sje@cup.hp.com>
3191 * config/ia64/unwind-hpux.c: New file.
3192 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
3194 2006-03-21 Steve Ellcey <sje@cup.hp.com>
3197 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
3199 2006-03-21 Jeff Law <law@redhat.com>
3201 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
3202 type conversions of a VR_VARYING source to a wider type.
3204 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3206 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
3207 tm_file on Solaris 10 and later.
3208 (sparc64-*-solaris2*): Likewise.
3209 (sparc-*-solaris2*): Likewise.
3210 * config/sol26.h: Rename to config/sol2-6.h.
3211 * config/sol2-10.h: New file.
3213 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
3216 * tree-ssa-pre.c (create_component_ref_by_pieces):
3219 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3222 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
3223 return it immediately.
3225 2006-03-21 Michael Matz <matz@suse.de>
3227 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
3229 (remove_arc, add_arc): Update num_out_arcs member.
3230 (set_out_arc_insns_equiv_num): Returns nothing instead of number
3232 (cache_presence): New function.
3233 (compare_states_for_equiv): New function.
3234 (state_is_differed): Don't take number of outargs, adjust callers.
3235 Use new invariant for speeding up.
3236 (init_equiv_class): Create initial classes based on sorted
3238 (partition_equiv_class): Don't track out_arcs_num.
3239 (evaluate_equiv_classes): Call cache_presence on all states and
3242 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
3244 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
3245 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
3246 (bfin_valid_reg_p): Test for pseudos explicitly and use only
3247 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
3249 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
3250 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
3251 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
3252 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
3253 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
3255 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
3256 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
3257 (REGNO_REG_CLASS): ARGP is in PREGS.
3258 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
3260 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
3261 to deal with those addresses.
3262 * addresses.h: New file.
3263 * caller-save.c: Include "addresses.h".
3264 (init_caller_save): Use new base_reg_class function.
3265 * rtl-factoring.c: Include "addresses.h".
3266 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
3267 * recog.c: Include "addresses.h".
3268 (preprocess_constraints): Use new base_reg_class function.
3269 * regrename.c: Include "addresses.h".
3270 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
3271 functions. Keep track of a new var INDEX_CODE to compute valid
3273 (replace_oldest_value_addr): Likewise.
3274 (replace_oldest_value_mem): Use base_reg_class.
3275 * reload.c: Include "addresses.h".
3276 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
3277 (find_reloads): Use new base_reg_class function.
3278 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
3279 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
3280 all callers and prototype changed.
3281 * reload1.c: Include "addresses.h".
3282 (maybe_fix_stack_asms): Use base_reg_class.
3283 * regclass.c: Include "addresses.h".
3284 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
3285 (init_reg_autoinc): Use new base_reg_class function.
3286 (record_reg_classes): Likewise.
3287 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
3288 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
3289 Use new args to compute necessary class.
3291 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
3292 regrename.o, rtl-factoring.o): Update dependencies.
3293 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
3294 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3295 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
3296 REG_OK_FOR_INDEX_P): Delete documentation.
3298 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
3300 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
3301 from V7 to V9 for Solaris 7 and above.
3303 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
3305 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
3306 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
3307 argument pointers may not alias any other storage.
3308 * common.opt: Define option -fargument-noalias-anything.
3309 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
3310 alias semantics is specified by flag_argument_noalias > 2.
3312 2006-03-20 Jeff Law <law@redhat.com>
3314 * tree-pass.h (pass_phi_only_copy_prop): Delete.
3315 (pass_phi_only_cprop): Declare.
3316 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
3318 * tree-ssa-dom.c (degenerate_phi_result): New function.
3319 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
3320 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
3321 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
3322 (eliminate_degenerate_phis): Likewise.
3323 (pass_phi_only_cprop): New pass descriptor.
3324 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
3325 support code. Callers updated.
3326 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
3327 (store_copy_prop): Likewise.
3328 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
3330 2006-03-20 Jason Merrill <jason@redhat.com>
3333 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
3334 (push_visibility, pop_visibility): Likewise.
3335 * c-pragma.h: Declare them.
3337 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
3339 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
3341 * config/sh/sh.c (find_regmode_weight): Change the type of the first
3342 parameter and use get_ebb_head_tail.
3343 (sh_md_init_global): Adjust uses of find_regmode_weight.
3345 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
3347 * function.h (struct function) <x_tail_recursion_reentry>:
3348 Rename to x_stack_check_probe_note.
3349 (tail_recursion_reentry): Rename to stack_check_probe_note.
3350 * function.c: Replace tail_recursion_reentry with
3351 stack_check_probe_note everywhere.
3352 (expand_function_start): Only emit a note for
3353 stack_check_probe_note with -fstack-protect.
3354 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
3356 * emit-rtl.c (remove_unnecessary_notes): Remove.
3357 (pass_remove_unnecessary_notes): Remove.
3358 * rtl.h (remove_unnecessary_notes): Remove prototype.
3359 * final.c (final_start_function): Don't call remove_unnecessary_notes.
3360 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
3361 * passes.c (pass_remove_unnecessary_notes): Don't run it.
3363 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
3366 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
3367 (valid_in_set): Handle ARRAY_REF.
3368 Change "if min_variant or VH" to asserts.
3369 (create_component_ref_by_pieces): Handle ARRAY_REF.
3370 (create_expression_by_pieces): Likewise.
3371 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
3373 2006-03-20 David Edelsohn <edelsohn@gnu.org>
3375 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
3376 is operand of switch, not str[0].
3378 2006-03-20 Alan Modra <amodra@bigpond.net.au>
3380 * config/rs6000/rs6000.c (rs6000_handle_option): Use
3381 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
3383 2006-03-19 David Edelsohn <edelsohn@gnu.org>
3385 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
3386 end of insn_extra_address_constraint declaration.
3388 2006-03-19 David Edelsohn <edelsohn@gnu.org>
3390 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
3391 (no-sum-in-toc): Same.
3392 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
3394 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
3395 NO_FP_IN_TOC for -fPIC instead of mask.
3397 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
3398 (BOOT_LDFLAGS): Delete.
3400 * config/rs6000/t-aix52: Same.
3402 * config/rs6000/rs6000.md (store_multiple_power): Delete.
3403 (stmsi[345678]_power): New.
3405 2006-03-17 Steve Ellcey <sje@cup.hp.com>
3407 * config/ia64/ia64.opt: Add empty line to end of file.
3409 2006-03-17 Richard Guenther <rguenther@suse.de>
3412 * builtins.c (get_pointer_alignment): For component style references
3413 adjust alignment to the component type alignment. Make sure
3414 to adjust alignment for component access of constants.
3416 2006-03-17 David Edelsohn <edelsohn@gnu.org>
3418 * config/rs6000/rs6000.md (strlensi): Emit barrier after
3421 2006-03-17 Paul Brook <paul@codesourcery.com>
3423 * doc/install.texi: Docuemnt --with-mode.
3424 * config.gcc: Add --with-mode for arm*-*-*.
3425 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
3427 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
3429 * sh.c (max_labelno_before_reorg): New variable.
3430 (sh_reorg): Initialize it.
3431 (find_barrier): Check max_labelno_before_reorg before using
3432 label_to_alignment. Take length of explicit alignment insns
3433 into account. When seeing a UNSPECV_CONST_END, return it.
3435 * sh.c (fixup_mova): Set mode of affected label to QImode.
3436 (untangle_mova): New function.
3437 (find_barrier): Use it. Check mode of label before decrementing
3439 (sh_reorg): Likewise.
3440 Set mode of all insns back to VOIDmode.
3442 * sh.c (MOVA_LABELREF): New macro.
3443 (mova_p, fixup_mova, sh_reorg): Use it.
3444 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
3445 ADDR_DIFF_VEC matches mova.
3447 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
3449 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3450 with ATTRIBUTE_UNUSED.
3452 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3454 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3455 pointer, instead of assuming it is possible to derive the
3456 correct args size from a call insn.
3458 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3460 * rtl.h (CONST_INT_P): Define.
3461 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3462 instead of GET_CODE(x) == CONST_INT.
3463 (vax_rtx_costs): Likewise.
3464 (vax_output_int_move): Likewise.
3465 (vax_output_int_add): Likewise.
3466 (legitimate_constant_address_p): Likewise.
3467 (index_term_p): Likewise.
3468 * config/vax/vax.h (PRINT_OPERAND): Likewise.
3469 * config/vax/vax.md (and<mode>3): Likewise.
3470 (ashrsi3): Likewise.