OSDN Git Service

* configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
2
3         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
4         style versions.
5         * configure: Rebuilt.
6
7 2006-11-13  Richard Guenther  <rguenther@suse.de>
8
9         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
10         return value.
11         (ix86_expand_lfloorceil): Likewise.
12         (ix86_expand_rint): Likewise.
13         (ix86_expand_floorceildf_32): Likewise.
14         (ix86_expand_floorceil): Likewise.
15         (ix86_expand_rounddf_32): Likewise.
16         (ix86_expand_truncdf_32): Likewise.
17         (ix86_expand_round): Likewise.
18
19 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
20             Mark Mitchell  <mark@codesourcery.com>
21
22         * gcc.c: Organize search path variables into $prefix relative,
23         and well-known native. Add comments.
24         (add_sysrooted_prefix): Add comment.
25         (process_command): If !gcc_exec_prefix add $prefix based paths.
26         If *cross_compile == '0', add native well-known paths.
27         Assert tooldir_base_prefix is always relative.
28         (main): If print_search_dirs, and if gcc_exec_prefix is set,
29         use this value for 'install:' path.
30         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
31
32 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
33
34         * config/i386/i386.c: Fix a typo in comment.
35
36 2006-11-13  Michael Matz  <matz@suse.de>
37
38         * genemit.c (gen_expand): Allocate enough memory.
39
40 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
41
42         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
43         __GXX_TYPEINFO_EQUALITY_INLINE but not
44         __GXX_MERGED_TYPEINFO_NAMES.
45         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
46         __GXX_MERGED_TYPEINFO_NAMES.
47         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
48         __GXX_TYPEINFO_EQUALITY_INLINE.
49
50 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
51             Zdenek Dvorak <dvorakz@suse.cz>
52
53         PR tree-optimization/29680
54         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
55         PR 14784.
56
57 2006-11-12  Jason Merrill  <jason@redhat.com>
58             Andrew Pinski <pinskia@physics.uc.edu>
59
60         PR middle-end/28915
61         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
62         vector ctors.
63         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
64         vector ctors.
65         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
66         * tree.c (build_vector): Handle non-_CST elements.
67
68 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
69
70         * genemit.c (gen_insn): Call gen_exp with a non-null used
71         when handling multiple insns.
72         (gen_expand): Likewise.
73         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
74         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
75         (movsi_const_16bit+1): Copy operands[1].
76         (call_pcrel): Copy the call_site pattern.
77         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
78
79 2006-11-12  Roger Sayle  <roger@eyesopen.com>
80
81         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
82         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
83         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
84         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
85
86 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
87
88         Fix PR tree-optimization/29587
89         * tree-ssa-structalias.c (process_constraint): Don't
90         mark address taken due only to escaped vars constraint.
91
92 2006-11-12  Michael Matz  <matz@suse.de>
93             Roger Sayle  <roger@eyesopen.com>
94
95         PR rtl-optimization/29797
96         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
97         BITS_BIG_ENDIAN targets.
98
99 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
100
101         * builtins.c (fold_builtin_cosh): New.
102         (fold_builtin_1): Use it.
103         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
104         trunc to the list of "odd" functions.  Also add llrint, lrint,
105         rint and nearbyint when flag_rounding_math is false.
106
107 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
108
109         * tree-flow.h (name_mappings_registered_p): Declare.
110         * tree-into-ssa.c (name_mappings_registered_p): New function.
111         * tree-cfg.c (tree_can_merge_blocks_p): Check
112         name_mappings_registered_p instead of need_ssa_update_p.
113
114 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
115
116         * tree-ssa-loop.c (tree_vectorize): Return the result of
117         vectorize_loops.
118         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
119         if anything changed.
120         * tree-vectorizer.h (vectorize_loops): Declaration removed.
121         * tree-flow.h (vectorize_loops): Declaration changed.
122
123 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
124
125         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
126         comments.
127         (issue_prefetch_ref): Move assignment to write_p out of loop.
128         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
129         SIMULTANEOUS_PREFETCHES into account.
130         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
131         * lambda-code.c (lcm): Renamed to ...
132         (least_common_multiple): ... and exported.
133         * tree-flow.h (least_common_multiple): Declare.
134
135 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
136
137         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
138         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
139         ud-chains.  Handle AND_EXPR.
140         (record_estimate): Record whether the estimate is realistic
141         and whether it is derived from a loop exit.
142         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
143         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
144         functions.
145         (compute_estimated_nb_iterations): Take only realistic bounds into
146         account.  Set estimate_state.  Use double_ints.
147         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
148         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
149         that do not have to be always executed.
150         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
151         to determine whether to call infer_loop_bounds_from_undefined
152         and compute_estimated_nb_iterations.
153         (n_of_executions_at_most): Use double_ints.
154         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
155         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
156         * double-int.c (double_int_to_tree): Improve comment.
157         (double_int_fits_to_tree_p): New function.
158         * double-int.h (double_int_fits_to_tree_p): Declare.
159         * tree-data-ref.c: Include langhooks.h.
160         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
161         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
162         (analyze_array): Do not pass estimate_only argument to
163         analyze_array_indexes.
164         (get_number_of_iters_for_loop): Build tree from the stored double_int
165         value.
166         (get_references_in_stmt, find_data_references_in_stmt): New functions.
167         (find_data_references_in_loop): Use find_data_references_in_stmt.
168         * tree-data-ref.h (struct data_ref_loc_d): New.
169         (get_references_in_stmt): Declare.
170         (estimate_iters_using_array): Declaration removed.
171         * cfgloop.h (struct nb_iter_bound): Change type of bound to
172         double_int.  Improve comments.  Add is_exit and realistic
173         fields.
174         (struct loop): Changed type of estimated_nb_iterations to double_int.
175         Added estimate_state field.
176         (record_estimate): Declaration removed.
177
178 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
179
180         * params.c (set_param_value): Initialize the "set" field.
181         * params.h (struct param_info): Add "set" field.
182         (PARAM_SET_P): New macro.
183         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
184         L1_CACHE_LINE_SIZE): New macros.
185         * toplev.c (DEFPARAM): Initialize the "set" field.
186         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
187         SIMULTANEOUS_PREFETCHES): Removed.
188         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
189         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
190         * config/sparc/sparc.c: Include params.h.
191         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
192         L1_CACHE_LINE_SIZE parameters.
193         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
194         Removed.
195         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
196         Removed.
197         * config/i386/i386.c: Include params.h.
198         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
199         (override_options): Set SIMULTANEOUS_PREFETCHES and
200         L1_CACHE_LINE_SIZE parameters.
201         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
202         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
203         L1_CACHE_LINE_SIZE parameters.
204         * config/ia64/ia64.c (ia64_optimization_options): Set
205         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
206         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
207         Removed.
208         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
209         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
210         * doc/invoke.texi: Document new params.
211
212 2006-11-12  Roger Sayle  <roger@eyesopen.com>
213
214         PR tree-optimization/13827
215         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
216         as ((X^Y)&C) op 0.
217
218 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
219
220         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
221         update_single_exit_for_duplicated_loops): New functions.
222         (duplicate_loop_to_header_edge): Use
223         update_single_exit_for_duplicated_loops.
224         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
225         functions only with ENABLE_CHECKING.
226
227 2006-11-12  Andreas Schwab  <schwab@suse.de>
228
229         * except.c (sjlj_emit_function_enter): Remove unused variable.
230
231 2006-11-11  Roger Sayle  <roger@eyesopen.com>
232
233         * fold-const.c (int_binop_types_match_p): New function.
234         (size_binop): Relax constraint that both arguments must both have
235         exactly the same sizetype type.  Instead use int_binop_types_match_p.
236         (size_diffop): Likewise.
237
238         (make_range): Use build_int_cst instead of fold_convert.
239         (fold_cond_expr_with_comparison): Use build_int_cst to construct
240         integer constants of the correct type.
241         (fold_div_compare): Likewise.
242         (fold_single_bit_test): Likewise.
243         (fold_binary): Likewise.
244         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
245         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
246
247 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
248
249         PR rtl-opt/28812
250         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
251         non null value if the struct memory access is in the 0th
252         aliasing set.
253
254 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
255
256         Revert
257         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
258         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
259         and __BFIN__.
260
261         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
262         instead of builtin_define for bfin and BFIN.
263
264 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
265
266         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
267         and __BFIN__.
268
269 2006-11-11  Jan Hubicka  <jh@suse.cz>
270
271         * extended.texi (__builtin_expect): We no longer require second argument
272         to be constant.
273         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
274         * builtins.c (expand_builtin_expect): Simplify.
275         (expand_builtin_expect_jump): Kill.
276         * final.c (final_scan_insn): Do not skip the removed notes.
277         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
278         EXPECTED_VALUE): Remove.
279         * dojump.c (do_jump): Do not care about __builtin_expect.
280         * predict.c (expected_value_to_br_prob): Kill.
281         * function.c (expand_function_end): Do not expand
282         NOTE_INSN_REPEATED_LINE_NUMBER.
283         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
284         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
285         * cfgexpand.c (add_reg_br_prob_note): Export.
286         * cfgcleanup.c (rest_of_handle_jump2): Do not call
287         expected_value_to_br_prob.
288         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
289         * rtl.h (add_reg_br_prob_note): Declare.
290
291 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
292
293         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
294
295 2006-11-11  Jan Hubicka  <jh@suse.cz>
296
297         * predict.c (predict_loops): Kill RTL variant.
298
299 2006-11-11  Jan Hubicka  <jh@suse.cz>
300
301         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
302         * modulo-sched.c (find_line_note): Remove.
303         (loop_canon_p): Do not worry about line number notes.
304         (sms_schedule): Likewise.
305         * cse.c (cse_main): Likewise.
306         * regmove.c (fixup_match_1): Likewise
307         * function.c (emit_return_info_block): Likewise.
308         (expand_function_end): Likewise.
309         (thread_prologue_an_epilogue_insns): Likewise.
310         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
311         Likewise.
312         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
313         emit_note_copy_after): Kill.
314         (emit_note_copy): Do not worry about line numbers.
315         * jump.c (purge_line_number_notes): Kill.
316         (pass_purge_lineno_notes): Kill.
317         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
318         call.
319         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
320         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
321         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
322         * tree-pass.h (pass_purge_lineno_notes): Kill.
323         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
324         rm_redundant_line_notes.
325         * sched-rgb.c (schedule_region): Don't rm_line_notes,
326         rm_redundant_line_notes.
327         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
328         * haifa-sched.c: Update comment about handling notes.
329         (unlink_line_notes): Kill.
330         (rm_line_notes): Kill.
331         (save_line_notes): Simplify.
332         (rm_redundant_line_notes): Kill.
333
334 2006-11-11  Richard Guenther  <rguenther@suse.de>
335
336         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
337         Remove unused tree codes.
338         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
339         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
340         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
341         * tree.c (stabilize_reference): Likewise.
342         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
343         fold_unary): Likewise.
344         * tree-gimple.c (is_gimple_cast): Likewise.
345         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
346         * expr.c (expand_expr_real_1): Likewise.
347         * tree-eh.c (tree_could_trap_p): Likewise.
348         * gimplify.c (gimplify_expr): Likewise.
349         * tree-inline.c (estimate_num_insns_1): Likewise.
350         * tree-cfg.c (verify_expr): Likewise.
351
352 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
353
354         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
355         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
356         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
357
358 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
359
360         PR middle-end/27528
361         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
362         constraints accept neither registers or memories.
363
364 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
365
366         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
367         (NO_PROFILE_COUNTERS): Define as 1.
368
369 2006-11-10  Roger Sayle  <roger@eyesopen.com>
370
371         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
372         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
373
374 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
375
376         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
377
378 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
379
380         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
381         (fold_builtin_hypot): Likewise.
382         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
383
384         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
385
386 2006-11-10  Roger Sayle  <roger@eyesopen.com>
387
388         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
389         when attempting to build INTEGER_CSTs of non-integral types.
390         * expmed.c (make_tree): Use the correct type, i.e. the inner
391         type, when constructing the individual elements of a CONST_VECTOR.
392
393 2006-11-10  Jan Hubicka  <jh@suse.cz>
394
395         * cse.c (cse_process_notes): Copy the propagated value.
396         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
397         in REG_EQUIV notes.
398         * gcse.c (try_replace_reg): Copy the replacement.
399         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
400         (assign_386_stack_local): Always return copied memory expression
401         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
402         duplicates.
403
404 2006-11-10  Jan Hubicka  <jh@suse.cz>
405
406         * final.c (final): Walk from first instruction.
407         * cfglayout.c (insn_locators_initialize): Remove line number notes.
408
409 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
410
411         PR target/29777
412         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
413         to define_expand.
414         (umulv8hi3_highpart): Ditto.
415         (vec_widen_smult_hi_v8hi): New expander.
416         (vec_widen_smult_lo_v8hi): Ditto.
417
418 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
419
420         PR middle-end/29335
421         * builtins.c (do_mpfr_arg3): New.
422         (fold_builtin_1): Handle builtins fma, fmin and fmax.
423
424 2006-11-09  Eric Christopher  <echristo@apple.com>
425
426         PR bootstrap/26892
427         PR bootstrap/27814
428         PR other/28994
429         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
430         * config.gcc (powerpc64-*-darwin*): New target.
431         * config.host: Ditto.
432         * config/rs6000/darwin64.h: New file.
433         * config/rs6000/x-darwin64: Ditto.
434         * config/rs6000/host-ppc64-darwin.c: Ditto.
435
436 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
437
438         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
439         routines for integer division.
440
441 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
442
443         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
444
445 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
446
447         PR middle-end/29726
448         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
449
450 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
451
452         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
453         simplify_subreg with BLKmode outer mode.
454
455 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
456
457         * doc/invoke.texi: Minor formatting fixes in option lists.
458
459 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
460
461         PR tree-optimization/29738
462         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
463         (ccp_lattice_t): Remove UNKNOWN_VAL.
464         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
465         Do not handle UNKNOWN_VAL.
466         (get_default_value): Set initial value of virtual operands to
467         VARYING.
468         (get_value): Always use get_default_value on uninitialized
469         operands.
470         (set_value_varying, surely_varying_stmt_p): New functions.
471         (set_lattice_value): Do not pass argument to get_value.
472         Do not handle UNKNOWN_VAL.
473         (likely_value): Follow the semantics described in the comment.
474         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
475         phi nodes DONT_SIMULATE_AGAIN.
476         (ccp_fold): Do not pass argument to get_value.
477         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
478         handle UNKNOWN_VAL.
479
480 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
481
482         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
483         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
484
485 2006-11-08  Roger Sayle  <roger@eyesopen.com>
486
487         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
488         test for inclusion rather than as a test for exclusion.
489         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
490         the condition after calling fold_binary.
491         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
492         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
493         * builtins.c (fold_builtin_isascii): Likewise.
494         (fold_builtin_isdigit): Likewise.
495
496 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
497
498         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
499         * configure: Regenerate.
500
501 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
502
503         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
504         enum argument instead of bool.
505         (vect_analyze_operations): Call vectorizable_type_promotion.
506         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
507         stmt_vec_info_type value.
508         (supportable_widening_operation, vectorizable_type_promotion): New
509         function declarations.
510         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
511         (vectorizable_type_promotion): New function.
512         (vect_transform_stmt): Call vectorizable_type_promotion.
513         * tree-vect-analyze.c (supportable_widening_operation): New function.
514         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
515         Add implementation.
516         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
517         mode.
518
519         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
520         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
521         * tree-inline.c (estimate_num_insns_1): Add cases for above new
522         tree-codes.
523         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
524         * expr.c (expand_expr_real_1): Likewise.
525         * optabs.c (optab_for_tree_code): Likewise.
526         (init_optabs): Initialize new optabs.
527         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
528         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
529         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
530         vec_unpacku_lo_optab): Initialize new optabs.
531         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
532         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
533         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
534         optab indices.
535         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
536         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
537         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
538         (vec_unpacku_lo_optab): New optabs.
539         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
540         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
541         (vec_widen_smult_hi, vec_widen_smult_lo): New.
542         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
543         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
544         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
545
546         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
547         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
548         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
549         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
550         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
551         implement the unsigned unpacking patterns.
552         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
553         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
554         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
555         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
556         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
557         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
558         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
559         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
560         multiplication patterns.
561
562         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
563         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
564         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
565         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
566         (rs6000_builtin_mul_widen_odd): New.
567         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
568         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
569         * tree-vectorizer.h (enum vect_relevant): New enum type.
570         (_stmt_vec_info): Field relevant chaned from bool to enum
571         vect_relevant.
572         (STMT_VINFO_RELEVANT_P): Updated.
573         (STMT_VINFO_RELEVANT): New.
574         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
575         instead of STMT_VINFO_RELEVANT_P.
576         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
577         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
578         and boolean variable with enum vect_relevant.
579         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
580         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
581         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
582
583         2006-11-08  Richard Henderson  <rth@redhat.com>
584
585         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
586         vec_widen_umult_lo_v8hi): New.
587         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
588         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
589
590         * config/i386/i386.c (ix86_expand_sse_unpack): New.
591         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
592         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
593         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
594         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
595         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
596         vec_unpacks_lo_v4si): New.
597
598         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
599
600         * tree-vect-transform.c (vectorizable_type_demotion): New function.
601         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
602         (vect_analyze_operations): Call vectorizable_type_demotion.
603         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
604         stmt_vec_info_type value.
605         (vectorizable_type_demotion): New function declaration.
606         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
607         mode.
608
609         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
610         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
611         VEC_PACK_SAT_EXPR.
612         * tree-iniline.c (estimate_num_insns_1): Likewise.
613         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
614         * optabs.c (optab_for_tree_code): Likewise.
615
616         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
617         compared against the predicate of the result is not 'mode' (the input
618         to the function) but a mode with half the size of 'mode'.
619         (init_optab): Initialize new optabs.
620         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
621         New optab indices.
622         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
623         optabs.
624         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
625         (vec_pack_usat_optab): Initialize new optabs.
626         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
627         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
628
629         2006-11-08  Richard Henderson  <rth@redehat.com>
630
631         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
632         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
633         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
634         (vec_interleave_highv4si, vec_interleave_lowv4si):
635         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
636
637         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
638
639         * tree-vect-transform.c (vectorizable_reduction): Support multiple
640         datatypes.
641         (vect_transform_stmt): Removed redundant code.
642
643         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
644
645         * tree-vect-transform.c (vectorizable_operation): Support multiple
646         datatypes.
647
648         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
649
650         * tree-vect-transform.c (vect_align_data_ref): Removed.
651         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
652         Updated function documentation. Return the increment stmt in ptr_incr.
653         (bump_vector_ptr): New function.
654         (vect_get_vec_def_for_stmt_copy): New function.
655         (vect_finish_stmt_generation): Create a stmt_info to newly created
656         vector stmts.
657         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
658         argument.
659         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
660         VF is greater than the number of elements that can fit in one vector
661         word.
662         (vectorizable_operation, vectorizable_condition): Likewise.
663         (vectorizable_store, vectorizable_load): Support the case that the VF
664         is greater than the number of elements that can fit in one vector word.
665         (vect_transform_loop): Don't fail in case of multiple data-types.
666         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
667         in case of multiple data-types; the smallest type determines the VF.
668         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
669         if they are of different sizes.
670         (vect_update_misalignment_for_peel): Compare misalignments in terms of
671         number of elements rather than number of bytes.
672         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
673         (vect_can_advance_ivs_p): Fix a dump printout
674
675 2006-11-07  Eric Christopher  <echristo@apple.com>
676
677         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
678         (__bswapsi2): Ditto.
679         * libgcc2.h: Remove transformation of bswap routines.
680         * config/i386/i386.md (bswapsi2): New.
681         (bswapdi2): Ditto.
682
683 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
684
685         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
686         (handle_gnu_inline_attribute): New function.
687         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
688         (merge_decls, start_decl, start_function): Likewise.
689         * doc/extend.texi: Document gnu_inline attribute.
690
691 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
692
693         PR other/25028
694         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
695         _fixunstfdi, and  _floatditf
696
697 2006-11-06  Anatoly Sokolov <aesok@post.ru>
698
699         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
700         prototype.
701         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
702         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
703         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
704         which start in an odd register.
705
706 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
707
708         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
709
710 2006-11-07  Josh Conner  <jconner@apple.com>
711
712         * doc/invoke.texi (fstrict-aliasing): Move implementation
713         details...
714         * doc/tree-ssa.texi (Alias analysis): ...here.
715
716 2006-11-07  Richard Guenther  <rguenther@suse.de>
717
718         PR tree-optimization/29610
719         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
720         of tree_purge_dead_eh_edges as it may free dominators.
721
722         * g++.dg/other/pr29610.C: New testcase.
723
724 2006-11-07  David Ung  <davidu@mips.com>
725
726         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
727         costs when optimizing for size.
728         (override_options): Use mips_rtx_cost_optimize_size table for cost
729         calculations.
730
731 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
732
733         * gcc.c (process_command): Treat -b as normal switch if its argument
734         has no dash.
735
736 2006-11-07  David Ung  <davidu@mips.com>
737
738         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
739         list.
740
741 2006-11-06  Eric Christopher  <echristo@apple.com>
742
743         * config.gcc: Add x86_64-darwin host support.
744         * config.host: Ditto.
745         * config/i386/darwin64.h: New file.
746         * config/i386/t-darwin64: Ditto.
747
748 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
749
750         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
751         and output-exists-not.
752
753 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
754
755         PR tree-opt/29439
756         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
757         checking for overflow.
758
759 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
760
761         * configure.ac: Fixed typo in case statement: :: changed to ;;
762
763 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
764
765         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
766         count_leading_zeros, and count_trailing_zeros.
767         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
768         (TARGET_FOLD_BUILTIN): Define.
769         (TARGET_EXPAND_BUILTIN): Define.
770         (xtensa_init_builtins): New.
771         (xtensa_fold_builtin): New.
772         (xtensa_expand_builtin): New.
773         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
774         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
775         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
776         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
777         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
778         (any_extend): New code macro.
779         (u, su): New code attributes.
780         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
781         (nsau): Remove; replaced by clzsi2.
782         (ffssi2): Use clzsi2.
783         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
784         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
785         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
786         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
787         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
788
789 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
790
791         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
792         set inhibit_libc.
793         * config/arm/t-strongarm-elf: Likewise.
794         * config/arm/t-pe: Likewise.
795         * config/arm/t-arm-elf: Likewise.
796         * config/arm/t-xscale-elf: Likewise.
797         * config/arm/t-arm-coff: Likewise.
798         * config/arm/t-xscale-coff: Likewise.
799         * config/arm/t-wince-pe: Likewise.
800
801 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
802
803         * config/sh/lib1funcs-4-300.asm: Guard entire file with
804         #if !__SHMEDIA__ .
805
806 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
807
808         PR middle-end/29695
809         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
810         simplification.
811
812 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
813
814         PR target/26915
815         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
816         as a valid 80387 constant.
817         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
818         * config/i386/i386.md (unnamed splitter): Split the load of
819         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
820         by negation.
821
822 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
823
824         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
825         from the soft-frame, argument and virtual registers.
826
827 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
828
829         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
830         patterns for standard 80387 constants.
831
832 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
833             Steven Bosscher  <steven@gcc.gnu.org>
834
835         * fwprop.c: New file.
836         * Makefile.in: Add fwprop.o.
837         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
838         * passes.c (init_optimization_passes): Schedule forward propagation.
839         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
840         parameter.
841         * timevar.def (TV_FWPROP): New.
842         * common.opt (-fforward-propagate): New.
843         * opts.c (decode_options): Enable forward propagation at -O2.
844         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
845         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
846         canon_for_address, table_size): Remove.
847         (new_basic_block, insert, remove_from_table): Remove references to
848         table_size.
849         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
850         simplification loop more straightforward by not calling fold_rtx
851         recursively.
852         (equiv_constant): Move here a small part of fold_rtx_subreg,
853         do not call fold_rtx.  Call avoid_constant_pool_reference
854         to process MEMs.
855         * recog.h (canonicalize_change_group): New.
856
857         * doc/invoke.texi (Optimization Options): Document fwprop.
858         * doc/passes.texi (RTL passes): Document fwprop.
859
860 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
861
862         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
863         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
864         (grokdeclarator): Likewise.
865
866 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
867
868         * tree-dump.c (dump_enable_all): Rename local variable
869         ir_type to avoid name conflicts.
870         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
871         instead of using ir_type().
872         * profile.c (tree_register_profile_hooks): Likewise.
873         * value-prof.c (tree_register_value_prof_hooks): Likewise.
874         * basic-block.h (struct edge_def): Likewise.
875         * config/arm/arm.c (legitimize_pic_address): Likewise.
876         * coretypes.h (ir_type): New enum of all intermediate languages
877         used in GCC.
878         * cfghooks.c (ir_type): Rename to...
879         (current_ir_type): ...this.  Distinguish between cfgrtl and
880         cfglayout mode when the current IR is RTL.  Return enum ir_type.
881         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
882
883 2006-11-03  Paul Brook  <paul@codesourcery.com>
884
885         * config/arm/arm.c (arm_file_start): New function.
886         (TARGET_ASM_FILE_START): Define.
887         (arm_default_cpu): New variable.
888         (arm_override_options): Set arm_default_cpu.
889
890 2006-11-03  David Ung  <davidu@mips.com>
891
892         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
893         PROCESSOR_24KC and PROCESSOR_24KF.
894         * config/mips/mips.c (mips_cpu_info_table): Add processor names
895         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
896         (mips_rtx_cost_data): Add costs for the 24kc.
897         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
898         * config/mips/24k.md: Remove references to 24k and replace with
899         uses of 24kc/24kf in the appropriate reservations.
900         * doc/invoke.texi (MIPS Options): Updated.
901
902 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
903
904         * config/sh/crt1.asm: Fix #ifdef indent.
905
906 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
907         Merged from STMicroelectronics sources:
908         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
909           * config/sh/crt1.asm (vbr_600): Add missing #if.
910         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
911           * sh.opt (mfused-madd): New option.
912           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
913         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
914           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
915           Remove pointless handler at VBR+0.
916           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
917           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
918           fr7. Make sure the timer handler is called with the correct FPU
919           precision setting, according to the ABI.
920         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
921           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
922           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
923           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
924         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
925           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
926           zero as second operand.
927         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
928           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
929           Fixed some bugs related to negative values, in particular -0
930           and overflow at -0x80000000.
931           * config/sh/divcost-analysis: Added sh4-300 figures.
932         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
933           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
934         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
935           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
936           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
937           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
938         New files.
939           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
940           -m4-340.
941         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
942           SH4-300 scheduling description & fixes to SH4-[12]00 description:
943           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
944           mac_mem, mem_mac, dfp_mul, fp_cmp.
945           (insn_class, dfp_comp, any_fp_comp): Update.
946           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
947           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
948           (muldf3_i): Likewise.
949           (movsi_i): Split rI08 alternative into two separate alternatives.
950           Update type.
951           (movsi_ie, movsi_i_lowpart): Likewise.
952           (movqi_i): Split ri alternative into two separate alternatives.
953           Update type.
954           * sh1.md (sh1_load_store, sh1_fp): Update.
955           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
956           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
957           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
958           (sh4a_fp_double_arith): Likewise.
959           * sh4-300.md: New file.
960           * sh.c (sh_handle_option): Handle m4-300* options.
961           (sh_adjust_cost): Fix latency of auto-increments.
962           Handle SH4-300 differently than other SH4s.  Check for new insn types.
963           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
964           been set by an option.
965           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
966           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
967           (mbranch-cost=): Likewise.
968           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
969
970           * sh.md (mulsf3): Remove special expansion code.
971           (mulsf3_ie): Now a define_insn_and_split.
972           (macsf3): Allow for TARGET_SH4.
973
974           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
975           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
976           (expand_cbranchdi4): Likewise.
977           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
978           CONST_DOUBLE if the outer code is COMPARE.
979           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
980           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
981           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
982           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
983           Remove redundant fp_{zero,one}_operand checks.
984           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
985           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
986           (expand_cbranchdi4): Likewise.
987         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
988           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
989
990 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
991
992         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
993         constraints.
994
995 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
996
997         * doc/invoke.texi: Fix mfp-trap-mode typo.
998
999 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
1000
1001         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
1002         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
1003         file_end_indicate_exec_stack.
1004         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
1005         Define as 0.
1006         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
1007         for a non-executable stack.
1008         * crti.asm: Likewise.
1009         * crtn.asm: Likewise.
1010         * libunwind.S: Likewise.
1011
1012 2006-11-02  Ben Elliston  <bje@au.ibm.com>
1013
1014         * tree-ssa.c (warn_uninit): Use expand_location variables for
1015         locus and declaration locus.
1016
1017 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1018
1019         PR target/27405
1020         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
1021         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
1022         cmp{eq,gt,gtu}{si,di}_media.
1023         (*cmpne0si_media): Remove.
1024         (*movsicc_umin): Adjust gen_cmp*_media call.
1025         (unordered): Change the mode of unordered and operands[1] to
1026         SImode.
1027         (seq): Adjust gen_cmp*_media calls.  Make the mode of
1028         a temporary result of compare SImode if needed.  If the mode
1029         of operands[0] is DImode, extend the temporary result to DImode.
1030         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
1031         (sunorderd): Change the mode of match_operand and unorderd to
1032         SImode.
1033         (cmpeq{sf,df}_media): Remove.
1034         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
1035         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
1036         and compare operation to SImode.
1037
1038 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1039
1040         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
1041         instructions.
1042         (sparc64-sun-solaris2*): Likewise.
1043
1044 2006-11-02  Paul Brook  <paul@codesourcery.com>
1045
1046         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
1047         from priority argument.  Use different section for non-default
1048         priority.
1049         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
1050
1051 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1052
1053         PR other/29639
1054         * except.c (switch_to_exception_section): Do not cache the section
1055         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1056         and flag_function_sections is set.
1057
1058 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1059
1060         PR middle-end/29335
1061         * builtins.c (do_mpfr_sincos): New.
1062         (fold_builtin_1): Use it to fold builtin sincos.
1063
1064 2006-11-01  Roger Sayle  <roger@eyesopen.com>
1065
1066         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1067         it into -D_REENTRANT.
1068
1069 2006-11-01  Roger Sayle  <roger@eyesopen.com>
1070
1071         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
1072         whether the assembler supports taking the difference of symbols in
1073         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
1074         * configure: Regenerate.
1075         * config.in: Regenerate.
1076         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
1077         the assembler doesn't support taking the difference of symbols in
1078         different sections, i.e. we're using the native solaris assembler.
1079
1080 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
1081             Peter Bergner  <bergner@vnet.ibm.com>
1082
1083         * doc/invoke.texi: Add cpu_type power6x
1084         (RS/6000 and PowerPC Options): Add -mmfpgpr.
1085         * config.gcc: Add cpu_type power6x.
1086         * configure.ac: Add test for mf{t,f}gpr instructions.
1087         (HAVE_AS_MFPGPR): New.
1088         * config.in: Regenerate.
1089         * configure: Regenerate.
1090         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
1091         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
1092         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
1093         and mftgpr attributes.
1094         (define_attr "cpu"): Add power6.
1095         Change instruction sequences to use new attributes.
1096         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
1097         (fix_truncdfsi2_mfpgpr): New.
1098         (floatsidf_ppc64_mfpgpr): New.
1099         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
1100         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
1101         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
1102         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
1103         (fix_truncdfsi2): Use gpc_reg_operand constraint.
1104         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
1105         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
1106         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
1107         cntlz,exts and var_delayed_compare.
1108         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1109         _ARCH_PWR6X, if features enabled.
1110         * config/rs6000/rs6000.opt (mmfpgpr): New.
1111         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
1112         (cached_can_issue_more): New variable.
1113         (processor_costs): Add power6_cost.
1114         (rs6000_sched_init): New function.
1115         (is_dispatch_slot_restricted): Deleted.
1116         (set_to_load_agen): New function.
1117         (is_load_insn,is_store_insn): New functions.
1118         (adjacent_mem_locations): New function.
1119         (insn_must_be_first_in_group): New function.
1120         (insn_must_be_last_in_group): New function.
1121         (rs6000_sched_reorder): New function.
1122         (rs6000_sched_reorder2): New function.
1123         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
1124         TARGET_SCHED_REORDER2): Define.
1125         (processor_target_table): Use PROCESSOR_POWER6 for power6.
1126         Add power6x. Add MASK_MFPGPR for power6x.
1127         (POWERPC_MASKS): Add MASK_MFPGPR.
1128         (rs6000_override_options): Set rs6000_always_hint to false
1129         for power6.  Set rs6000_align_branch_targets. Replace
1130         rs6000_sched_groups check with rs6000_align_branch_targets.
1131         Use PROCESSOR_POWER6.
1132         (last_scheduled_insn): New variable.
1133         (load_store_pendulum): New variable.
1134         (rs6000_variable_issue): Set last_scheduled_insn and
1135         cached_can_issue_more.
1136         (rs6000_adjust_cost): Add power6 cost adjustments.
1137         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
1138         with insn_must_be_first_in_group. Add power6 priority adjustments.
1139         (rs6000_issue_rate): Add CPU_POWER6.
1140         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
1141         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
1142         (TARGET_MFPGPR): New.
1143         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
1144         (ASM_CPU_SPEC): Add power6x.
1145         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
1146         conditions.
1147         * config/rs6000/power6.md: New file.
1148
1149 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
1150
1151         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1152         HOST_WIDE_INT_PRINT to print high and low parts.  Use
1153         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
1154         printing a hexadecimal number prefix it with 0x.
1155
1156 2006-11-01  Chris Johns <chris@contemporary.net.au>
1157
1158         PR bootstrap/28400
1159         * Makefile.in (install-driver): Use exeext when installing
1160         $target-gcc-$version.
1161
1162 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
1163
1164         * c-common.c (flag_cpp0x): New.
1165         * c-common.h (flag_cpp0x): New.
1166         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
1167         supported, define __GXX_EXPERIMENTAL_CPP0X__.
1168         * c-opts.c (set_std_cxx0x): New.
1169         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
1170         * c.opt (std=c++0x): Document.
1171         (std=gnu++0x): Ditto.
1172         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
1173         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
1174
1175 2006-11-01  Richard Guenther  <rguenther@suse.de>
1176
1177         * config/i386/i386.c (ix86_expand_rint): Fix issues with
1178         signed zeros.
1179         (ix86_expand_floorceildf_32): Likewise.
1180         (ix86_expand_floorceil): Likewise.
1181         (ix86_expand_trunc): Likewise.
1182
1183 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
1184
1185         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
1186         to "GNU C89".
1187
1188 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
1189
1190         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
1191         hook.
1192         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
1193         default.
1194         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
1195         Override default.
1196         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
1197         * configure.ac (use_cxa_atexit): As a special case, don't test
1198         for libc definition of __cxa_atexit on mingw32
1199         * configure: Regenerate.
1200         * config.gcc (i[34567]86-pc-mingw32): Default to
1201         enable__cxa_atexit=yes.
1202
1203 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1204
1205         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
1206
1207 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1208
1209         PR 23067
1210         * c-decl.c (start_struct): Don't create self-containing
1211         structures.
1212         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
1213         New.
1214         * config/rs6000/rs6000-protos.h
1215         (darwin_rs6000_special_round_type_align): New.
1216         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
1217         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
1218
1219 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1220
1221         * toplev.c (compile_file): Call final_write_globals
1222         even if there have been errors.
1223
1224 2006-10-31  Eric Christopher  <echristo@apple.com>
1225             Falk Hueffner  <falk@debian.org>
1226
1227         * doc/extend.texi (__builtin_bswap32): Document.
1228         (__builtin_bswap64): Ditto.
1229         * doc/libgcc.texi (bswapsi2): Document.
1230         (bswapdi2): Ditto.
1231         * doc/rtl.texi (bswap): Document.
1232         * optabs.c (expand_unop): Don't widen a bswap.
1233         (init_optabs): Init bswap. Set libfuncs explicitly
1234         for bswapsi2 and bswapdi2.
1235         * optabs.h (OTI_bswap): New.
1236         (bswap_optab): Ditto.
1237         * genopinit.c (optabs): Handle bswap_optab.
1238         * tree.h (tree_index): Add TI_UINT32_TYPE and
1239         TI_UINT64_TYPE.
1240         (uint32_type_node): New.
1241         (uint64_type_node): Ditto.
1242         * tree.c (build_common_tree_nodes_2): Initialize
1243         uint32_type_node and uint64_type_node.
1244         * builtins.c (expand_builtin_bswap): New.
1245         (expand_builtin): Call.
1246         (fold_builtin_bswap): New.
1247         (fold_builtin_1): Call.
1248         * fold-const.c (tree_expr_nonnegative_p): Return true
1249         for bswap.
1250         * builtin-types.def (BT_UINT32): New.
1251         (BT_UINT64): Ditto.
1252         (BT_FN_UINT32_UINT32): Ditto.
1253         (BT_FN_UINT64_UINT64): Ditto.
1254         * builtins.def (BUILT_IN_BSWAP32): New.
1255         (BUILT_IN_BSWAP64): Ditto.
1256         * rtl.def (BSWAP): New.
1257         * genattrtab.c (check_attr_value): New.
1258         * libgcc2.c (__bswapSI2): New.
1259         (__bswapDI2): Ditto.
1260         * libgcc2.h (__bswapSI2): Declare.
1261         (__bswapDI2): Ditto.
1262         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
1263         * simplify-rtx.c (simplify_const_unary_operation): Return
1264         0 for BSWAP.
1265         * libgcc-std.ver (__bwapsi2): Add.
1266         (__bswapdi2): Ditto.
1267         * reload1.c (eliminate_regs_1): Add bswap.
1268         (elimination_effects): Ditto.
1269         * config/i386/i386.h (x86_bswap): New.
1270         (TARGET_BSWAP): Use.
1271         * config/i386/i386.c (x86_bswap): Set.
1272
1273 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1274
1275         * coverage.c (coverage_checksum_string): Update comment.
1276         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
1277         of get_file_function_name.
1278         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
1279         of get_file_function_name_long.
1280         * tree.c (get_file_function_name): Rename from
1281         get_file_function_name_long; improve comment; handle 'I' and 'D'
1282         specially when the target has ctor/dtor support; remove special
1283         handling for 'F'.
1284         (get_file_function_name): Remove.
1285         * tree.h (get_file_function_name): Rename from
1286         get_file_function_name_long.
1287         (get_file_function_name): Remove prototype.
1288
1289 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1290
1291         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
1292         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1293
1294         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
1295         Call dsymutil when compiling and linking one or more source files
1296         in one step.
1297
1298 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1299
1300         PR 15834
1301         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
1302
1303 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1304
1305         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
1306         inline static functions in c99 mode.
1307
1308         PR 16622
1309         * doc/extend.texi (Inline): Update.
1310         * c-tree.h (struct language_function): Remove field 'extern_inline'.
1311         * c-decl.c (current_extern_inline): Delete.
1312         (pop_scope): Adjust test for an undefined nested function.
1313         Add warning about undeclared inline function.
1314         (diagnose_mismatched_decls): Update comments.  Disallow overriding
1315         of inline functions in a translation unit in C99.  Allow inline
1316         declarations in C99 at any time.
1317         (merge_decls): Boolize variables.  Handle C99 'extern inline'
1318         semantics.
1319         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
1320         C99 inline semantics.
1321         (start_function): Don't clear current_extern_inline.  Don't set
1322         DECL_EXTERNAL.
1323         (c_push_function_context): Don't push current_extern_inline.
1324         (c_pop_function_context): Don't restore current_extern_inline.
1325
1326         PR 11377
1327         * c-typeck.c (build_external_ref): Warn about static variables
1328         used in extern inline functions.
1329         * c-decl.c (start_decl): Warn about static variables declared
1330         in extern inline functions.
1331
1332 2006-10-31  Roger Sayle  <roger@eyesopen.com>
1333
1334         PR middle-end/23470
1335         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
1336         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
1337         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
1338         or y is an even integer.
1339
1340 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1341
1342         PR target/24071
1343         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
1344         * gthr-posix95.h (__gthread_active_p): Likewise.
1345
1346 2006-10-31  Richard Guenther  <rguenther@suse.de>
1347
1348         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1349         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
1350         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
1351         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
1352         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
1353         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
1354         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
1355         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
1356         !optimize_size.
1357
1358 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
1359
1360         * opts.c (decode_options): Disable CSE skip blocks.
1361
1362 2006-10-30  Dirk Mueller  <dmueller@suse.de>
1363
1364         * c-common.h (strict_aliasing_warning): Fix whitespace.
1365         * c-decl (start_function): Move code for main decl warning ..
1366         * c-common.c (check_main_parameter_types): .. here.
1367         * c-common.h (check_main_parameter_types): Declare.
1368
1369 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1370
1371         PR middle-end/29335
1372         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
1373
1374 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
1375
1376         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
1377         be a PARALLEL containing sets.  Return false when out_pat is not
1378         a PARALLEL insn.
1379
1380 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
1381
1382         * config/mips/mips.md (mul<mode>3): Split into...
1383         (mulsi3, muldi3): ...these separate patterns.
1384
1385 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
1386
1387         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
1388         but with each set of options separated by spaces.
1389
1390 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
1391
1392         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
1393         dwarf_reg_size_table has been initialized.
1394
1395 2006-10-30  Roger Sayle  <roger@eyesopen.com>
1396
1397         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
1398         * ddg.c (print_ddg_edge): Likewise.
1399         * dwarf2out.c (prune_unused_types_walk): Likewise.
1400         * ifcvt.c (noce_try_cmove_arith): Likewise.
1401         * langhooks.c (add_builtin_function): Likewise.
1402         * reg-stack.c (subst_stack_regs_pat): Likewise.
1403         * tree.c (expanded_location): Likewise.
1404         * tree-dump.c (dequeue_and_dump): Likewise.
1405
1406 2006-10-30  David Daney  <ddaney@avtrex.com>
1407
1408         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
1409
1410 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
1411
1412         PR tree-optimization/29637
1413         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
1414         of the innertype is the innertype itself.
1415
1416 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
1417
1418         * dwarf2out.c (file_name_acquire): Correct typo.
1419
1420 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
1421
1422         * tree.h (tree_value_handle): Remove struct value_set declaration.
1423         Change value_set to bitmap_set.
1424         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
1425         * tree-vn.c (get_value_handle): Made inline and moved to
1426         tree-flow-inline.h.
1427         * tree-flow-inline.h: (has_stmt_ann): New function.
1428         * tree-ssa-pre.c (expressions): New variable.
1429         (next_expression_id): Ditto.
1430         (alloc_expression_id): New function.
1431         (struct value_set): Remove.
1432         (get_expression_id): New function.
1433         (get_or_alloc_expression_id): Ditto.
1434         (expression_for_id): Ditto.
1435         (clear_expression_ids): Ditto.
1436         (FOR_EACH_EXPR_ID_IN_SET): New macro.
1437         (bb_value_sets): Renamed to bb_bitmap_sets.
1438         All value sets replaced with bitmap_sets.
1439         Add visited member.
1440         (BB_VISITED): New macro.
1441         (postorder): New variable.
1442         (add_to_value): Removed.
1443         (value_exists_in_set_bitmap): Ditto.
1444         (value_insert_into_set_bitmap): Ditto.
1445         (set_new): Ditto.
1446         (set_copy): Ditto.
1447         (set_remove): Ditto.
1448         (set_contains_value): Ditto.
1449         (insert_into_set): Ditto.
1450         (set_equal): Ditto.
1451         (find_leader): Ditto.
1452         (bitmap_set_subtract_from_value_set): Ditto.
1453         (value_insert_into_set): Ditto.
1454         (print_value_set): Ditto.
1455         (debug_value_set): Ditto.
1456         (constant_expr_p): New function.
1457         (bitmap_remove_from_set): Ditto.
1458         (bitmap_insert_into_set): Ditto.
1459         (bitmap_set_free): Ditto.
1460         (vh_compare): Ditto.
1461         (sorted_array_from_bitmap_set): Ditto.
1462         (bitmap_set_subtract): Ditto.
1463         (bitmap_set_equal): Ditto.
1464         (debug_bitmap_set): Ditto.
1465         (find_leader_in_sets): Ditto.
1466         (bitmap_set_replace_value): Modify for bitmapped sets.
1467         (phi_translate): Ditto.
1468         (phi_translate_set): Ditto.
1469         (bitmap_find_leader): Ditto.
1470         (valid_in_sets): Ditto.
1471         (union_contains_value): Ditto.
1472         (clean): Ditto.
1473         (compute_antic_aux): Ditto.  Mark changed blocks.
1474         (compute_antic): Ditto. Iterate in postorder and only over
1475         changing blocks.
1476         (compute_rvuse_and_antic_safe): Reuse postorder.
1477         (create_component_ref_by_pieces): Modify for bitmapped sets.
1478         (find_or_generate_expression): Ditto.
1479         (create_expression_by_pieces): Ditto.
1480         (insert_into_preds_of_block): Ditto.
1481         (changed_blocks): New variable.
1482         (do_regular_insertion): Broken out from insert_aux.
1483         (insert_aux): Modified for bitmapped sets.
1484         (find_existing_value_expr): New function.
1485         (create_value_expr_from): Use it.
1486         (insert_extra_phis): Removed.
1487         (print_bitmap_set): Renamed from bitmap_print_value_set.
1488         (compute_avail): Handle RETURN_EXPR.
1489         (init_pre): Modify for bitmapped sets.
1490         * tree-flow.h (has_stmt_ann): New function.
1491
1492 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1493
1494         * builtins.c (fold_builtin_floor): Check for the availability of
1495         the C99 trunc function before transforming floor into trunc.
1496
1497 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1498
1499         * builtins.c (fold_builtin_hypot): Rearrange recursive
1500         transformation before others, and also do ABS_EXPR.  When
1501         necessary, check flag_unsafe_math_optimizations.  When necessary,
1502         add fabs.
1503
1504 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1505
1506         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
1507         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
1508         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
1509         Fold -X eq/ne -Y as X eq/ne Y.
1510
1511 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1512
1513         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
1514         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
1515         rather than GENERATE_MULT3_SI in the various define_peephole2s.
1516         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
1517         Use an inclusive test for "mult" rather than "mul".
1518         (rotr<mode>3): Depend on ISA_HAS_ROR.
1519         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
1520         ISA_HAS_MUL3.
1521         (GENERATE_MULT3_DI): Delete.
1522         (ISA_HAS_64BIT_REGS): Use consistent formatting.
1523         (ISA_HAS_MUL3): New macro.
1524         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
1525         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
1526         (ISA_HAS_CLZ_CLO): Likewise.
1527         (ISA_HAS_DCLZ_DCLO): Delete.
1528         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
1529         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
1530         the VR4120 and VR4130.
1531         (ISA_HAS_MACCHI): Use consistent formatting.
1532         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
1533         (ISA_HAS_ROR): ...this new macro.
1534         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
1535         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
1536         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
1537
1538 2006-10-29  Roger Sayle  <roger@eyesopen.com>
1539
1540         PR tree-optimization/15458
1541         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
1542         is a constant.
1543
1544 2006-10-29  Richard Guenther  <rguenther@suse.de>
1545
1546         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
1547         (ix86_expand_truncdf_32): Likewise.
1548         * config/i386/i386.c (ix86_expand_trunc): New function expanding
1549         trunc inline for SSE math and -fno-trapping-math and if not
1550         optimizing for size.
1551         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
1552         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
1553         for expanding btrunc inline for SSE math.
1554
1555 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
1556
1557         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
1558         Handle tuning for bi-arch i[34567]86-*-linux* like that for
1559         i[34567]86-*-solaris2.1[0-9]*.
1560         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
1561         Define conditionally depending on TARGET_64BIT_DEFAULT.
1562         (SPEC_32, SPEC_64): Define.
1563         (LINK_SPEC): Use them.
1564         * doc/install.texi (--enable-targets=all): Document for x86-linux.
1565
1566 2006-10-29  Richard Guenther  <rguenther@suse.de>
1567
1568         * config/i386/i386-protos.h (ix86_expand_round): Declare.
1569         (ix86_expand_rounddf_32): Likewise.
1570         * config/i386/i386.c (ix86_expand_round): New function expanding
1571         round inline for SSE math and -fno-trapping-math and if not
1572         optimizing for size.
1573         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
1574         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
1575         round via ix86_expand_round.
1576
1577 2006-10-29  Richard Guenther  <rguenther@suse.de>
1578
1579         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
1580         (ix86_expand_floorceildf_32): Likewise.
1581         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
1582         static helper function.
1583         (ix86_expand_floorceil): Expander for floor and ceil to SSE
1584         math.
1585         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
1586         * config/i386/i386.md (floordf2): Adjust to enable floor
1587         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
1588         -fno-trapping-math is enabled and if not optimizing for size.
1589         (floorsf2, ceildf2, ceilsf2): Likewise.
1590         * config/i386/sse.md (sse_maskcmpsf3): New insn.
1591         (sse2_maskcmpdf3): Likewise.
1592
1593 2006-10-29  Richard Guenther  <rguenther@suse.de>
1594
1595         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
1596         rint in case -fno-trapping-math is enabled.
1597         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
1598         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
1599         (ix86_expand_sse_fabs): Likewise.
1600         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
1601         * config/i386/i386.md (rintdf2): Enable for SSE math if
1602         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
1603         (rintsf2): Likewise.
1604
1605 2006-10-29  Richard Guenther  <rguenther@suse.de>
1606
1607         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
1608         to conversion optabs.
1609         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
1610         as conversion optab.
1611         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
1612         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
1613         (lfloor_optab, lceil_optab): Adjust defines.
1614         * builtins.c (expand_builtin_int_roundingfn): Adjust for
1615         lfloor and lceil optabs now being conversion optabs.
1616         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
1617         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
1618         New static helper function.
1619         (ix86_expand_lfloorceil): New function to expand lfloor and
1620         lceil inline.
1621         * config/i386/i386.md (lfloor<mode>2): Split into ...
1622         (lfloorxf<mode>2): ... x87 variant
1623         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
1624         using ix86_expand_lfloorceil.
1625         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
1626         Likewise.
1627         * doc/md.texi (lfloorMN, lceilMN): Document.
1628
1629 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1630
1631         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
1632         -mno-shared assembler option on mips targets.
1633         * configure, config.in: Regenerate.
1634         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
1635         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
1636         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
1637
1638 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
1639
1640         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
1641         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
1642
1643 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
1644
1645         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
1646         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
1647         comment typos.
1648
1649 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1650
1651         PR middle-end/29335
1652         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
1653         (fold_builtin_pow): Evaluate constant arguments at compile-time
1654         using MPFR.
1655         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
1656         (do_mpfr_ckconv): New helper function.
1657         (do_mpfr_arg1): Use do_mpfr_ckconv.
1658         (do_mpfr_arg2): New.
1659
1660 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1661
1662         PR tree-opt/29271
1663         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
1664         (-fdump-rtl-sched): Rename to ..
1665         (-fdump-rtl-sched1): here.  Also fix file extension number.
1666
1667 2006-10-28  Richard Guenther  <rguenther@suse.de>
1668
1669         * fold-const.c (maybe_canonicalize_comparison): Fix code
1670         to match comment.
1671
1672 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
1673
1674         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
1675         (NON_QI_REG_P): Use IN_RANGE.
1676         (REX_INT_REGNO_P): Use IN_RANGE.
1677         (FP_REGNO_P): Use IN_RANGE.
1678         (SSE_REGNO_P): Use IN_RANGE.
1679         (REX_SSE_REGNO_P): Use IN_RANGE.
1680         (MMX_REGNO_P): Use IN_RANGE.
1681         (STACK_REGNO_P): New macro.
1682         (STACK_REG_P): Use STACK_REGNO_P.
1683         (NON_STACK_REG_P): Use STACK_REGNO_P.
1684         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
1685         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
1686         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
1687         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
1688         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
1689
1690 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
1691
1692         * except.h (output_function_exception_table): Add 'const char*' param.
1693         * except.c (switch_to_exception_section): Add 'const char*' param.
1694         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1695         and flag_function_sections is set, use a function-specific section.
1696         (output_function_exception_table): Add 'const char*' param.
1697         Adjust call to switch_to_exception_section.
1698         * final.c (rest_of_handle_final): Adjust calls to
1699         output_function_exception_table.
1700         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
1701         * config.in: Regenerate.
1702         * configure: Likewise.
1703
1704 2006-10-28  Richard Guenther  <rguenther@suse.de>
1705
1706         PR middle-end/26899
1707         * fold-const.c (maybe_canonicalize_comparison_1): Helper
1708         for maybe_canonicalize_comparison.
1709         (maybe_canonicalize_comparison): New function for canonicalizing
1710         comparison trees.
1711         (fold_comparison): Call it to canonicalize comparisons with
1712         constants involved.
1713
1714 2006-10-28  Richard Guenther  <rguenther@suse.de>
1715
1716         PR target/28806
1717         * builtins.c (expand_builtin_int_roundingfn_2): Expand
1718         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
1719         (expand_builtin): Adjust likewise.
1720         * genopinit.c (optabs[]): Add lround optab.
1721         * optabs.c (init_optabs): Initialize lround_optab.
1722         * optabs.h (enum convert_optab_index): Add COI_lround.
1723         (lround_optab): Define.
1724         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
1725         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
1726         static function.
1727         (ix86_expand_lround): New function.
1728         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1729         New expanders.
1730         * doc/md.texi (lroundMN2): Document.
1731
1732 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1733
1734         PR target/29377
1735         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1736         argument to HOST_WIDE_INT.  Update function prototype.
1737         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
1738         "size" argument to HOST_WIDE_INT.  Update function prototype.
1739
1740 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1741
1742         * config/i386/i386.c (output_387_ffreep): Create output from a
1743         template string for !HAVE_AS_IX86_FFREEP.
1744
1745 2006-10-27  Eric Christopher  <echristo@apple.com>
1746
1747         * config/darwin.c: Fix formatting and grammar.
1748
1749 2006-10-27  Jan Hubicka  <jh@suse.cz>
1750
1751         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1752         to be thrown away soon when IGNORE is set.
1753         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1754         indicating when return value shall not be computed.
1755         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1756
1757 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1758
1759         * config/i386/i386.h (TARGET_GEODE):
1760         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1761         (TARGET_CPU_DEFAULT_geode): New macro.
1762         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1763         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1764         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1765         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1766         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1767         the macro values.
1768         (TARGET_CPU_DEFAULT_NAMES): Add geode.
1769         (processor_type): Add PROCESSOR_GEODE.
1770
1771         * config/i386/i386.md: Include geode.md.
1772         (cpu): Add geode.
1773
1774         * config/i386/i386.c (geode_cost): New initialized global
1775         variable.
1776         (m_GEODE, m_K6_GEODE): New macros.
1777         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1778         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1779         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1780         x86_schedule): Use m_K6_GEODE instead of m_K6.
1781         (x86_movx, x86_cmove): Set up m_GEODE.
1782         (x86_integer_DFmode_moves): Clear m_GEODE.
1783         (processor_target_table): Add entry for geode.
1784         (processor_alias_table): Ditto.
1785
1786         * config/i386/geode.md: New file.
1787
1788         * doc/invoke.texi: Add entry about geode processor.
1789
1790 2006-10-27  Mike Stump  <mrs@apple.com>
1791
1792         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1793         __DYNAMIC__ from here back to ...
1794         * config/darwin.h (CPP_SPEC): ... here.
1795
1796 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
1797             Nathan Sidwell  <nathan@codesourcery.com>
1798
1799         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1800         when choosing the minimum heapsize.
1801
1802 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
1803
1804         * gcc/unwind-dw2.h: Move cfa-related variables into
1805         struct frame_state_reg_info to ensure that the CFA is properly
1806         handled when executing DW_CFA_{remember,restore}_state.
1807         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1808         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1809         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1810         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1811         gcc/config/rs6000/linux-unwind.h,
1812         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1813         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1814         Modify to use new cfa_* fields.
1815
1816 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1817
1818         * config/s390/s390.c (s390_init_frame_layout): Check positive
1819         frame_size.
1820
1821 2006-10-26  Ben Elliston  <bje@au.ibm.com>
1822
1823         * gimplify.c (get_name): Remove extraneous break.
1824         (gimplify_omp_for): Initialise ret with GS_OK.
1825
1826 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
1827
1828         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1829         Add unix98.o to link line.
1830
1831 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1832
1833         PR middle-end/29335
1834         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1835         Calculate compile-time constants using MPFR.
1836         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1837         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1838
1839 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
1840
1841         * config/xtensa/lib2funcs.S: Use C-style comments.
1842
1843 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
1844
1845         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1846         (file_table_relative_p): Likewise.
1847         (dwarf2out_finish): Likewise.
1848         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1849
1850 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
1851
1852         * tree-ssa-structalias.c (intra_create_variable_infos):
1853           Don't recreate nonlocal_all if it already exists.
1854
1855 2006-10-25  Richard Guenther  <rguenther@suse.de>
1856
1857         PR target/28803
1858         * optabs.h (enum optab_index): Remove OTI_lrint.
1859         (enum convert_optab_index): Add COI_lrint.
1860         (lrint_optab): Adjust.
1861         (expand_sfix_optab): Declare.
1862         * optabs.c (expand_sfix_optab): New function.
1863         (init_optabs): Init lrint_optab as conversion optab.
1864         * genopinit.c (lrint_optab): Change to a conversion optab.
1865         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1866         expansion via conversion optab.
1867         * config/i386/i386.md (*fistdi2_1): Remove
1868         flag_unsafe_math_optimizations guard.
1869         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1870         fist<mode>2_with_temp): Likewise.
1871         (lrint<mode>2): Split into...
1872         (lrintxf<mode>2): ... x87 part
1873         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1874         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1875         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1876         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1877         * doc/md.texi (lrintMN2): Document.
1878
1879 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1880
1881         PR target/28909
1882         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1883         Use inc and dec instructions for TARGET_USE_INCDEC.
1884         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1885         ("sync_double_compare_and_swap<mode>"): Likewise.
1886         ("*sync_double_compare_and_swapdi_pic"): Likewise.
1887         ("*sync_compare_and_swap_cc<mode>"): Likewise.
1888         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1889         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1890         ("sync_old_add<mode>"): Likewise.
1891         ("sync_lock_test_and_set<mode>"): Likewise.
1892         ("sync_lock_test_and_set<mode>"): Likewise.
1893         ("sync_add<mode>"): Likewise.
1894         ("sync_sub<mode>"): Likewise.
1895         ("sync_ior<mode>"): Likewise.
1896         ("sync_and<mode>"): Likewise.
1897         ("sync_xor<mode>"): Likewise.
1898
1899 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1900
1901         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1902         (remainder_optab): Define corresponding macro.
1903         (drem_optab): Remove.
1904         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
1905         drem_optab initialization.
1906         * genopinit.c (optabs): Implement remainder_optab using
1907         remainder?f3 patterns.  Remove drem_optab.
1908         * builtins.c (expand_builtin_mathfn_2): Handle
1909         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1910         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1911         expand_builtin_mathfn_2.
1912
1913         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1914         depend on flag_unsafe_math_optimizations.
1915
1916         * config/i386/i386.md ("remaindersf3", "remainderdf3")
1917         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1918         Do not depend on flag_unsafe_math_optimizations.  Use
1919         truncxf?f expander instead of truncxf?f_i387_noop.
1920
1921         ("fpremxf4", "fprem1xf4"): Do not depend on
1922         flag_unsafe_math_optimizations.
1923         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1924         flag_unsafe_math_optimizations.  Use truncxf?f expander
1925         instead of truncxf?f_i387_noop.
1926
1927         * doc/md.texi (fmod, remainder): Document standard named pattern.
1928
1929 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
1930             David Daney  <ddaney@avtrex.com>
1931
1932         PR middle-end/29519
1933         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
1934
1935 2006-10-25  Ben Elliston  <bje@au.ibm.com>
1936
1937         * doc/extend.texi (Variable Attributes): Typo fix.
1938
1939 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
1940
1941         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1942         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1943         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1944         (FRAME_POINTER_REGNUM): Update register number to 21.
1945         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1946         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1947
1948         * config/i386/i386.c (regclass_map): Add fpcr entry.
1949         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1950         Add fpcr entry.
1951         (print_reg): Assert REGNO (x) != FPCR_REG.
1952
1953         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1954         (DIRFLAG_REG): Renumber.
1955         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1956         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1957         (sse_prologue_save, *sse_prologue_save_insn): Renumber
1958         hardcoded SSE register numbers.
1959
1960         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1961         hardcoded MMX register numbers.
1962
1963 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1964
1965         PR middle-end/29335
1966         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1967         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1968         Update all callers.
1969         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1970         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1971         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1972         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1973
1974 2006-10-24  Richard Guenther  <rguenther@suse.de>
1975
1976         PR middle-end/28796
1977         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1978         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1979         for deciding optimizations in consistency with fold-const.c
1980         (fold_builtin_unordered_cmp): Likewise.
1981
1982 2006-10-24  Richard Guenther  <rguenther@suse.de>
1983
1984         * builtins.c (fold_builtin_floor): Fold floor (x) where
1985         x is nonnegative to trunc (x).
1986         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1987         nonnegative to FIX_TRUNC_EXPR.
1988
1989 2006-10-24  Richard Guenther  <rguenther@suse.de>
1990
1991         PR tree-optimization/29567
1992         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1993         for TRUTH_NOT_EXPR.  Clarify comments.
1994
1995 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1996
1997         PR middle-end/29335
1998         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1999         at compile-time using MPFR.  Change parameter VALUE to FUNC,
2000         update all callers.
2001         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
2002         for overflow and underflow at all times and avoid folding in
2003         those cases.
2004
2005 2006-10-24  Ben Elliston  <bje@au.ibm.com>
2006
2007         * reload1.c: Formatting fixes.
2008
2009 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
2010
2011         PR tree-optimization/14784
2012         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
2013         * tree-ssa-structalias.c (get_constraint_for,
2014         intra_create_variable_infos): Set is_heapvar.
2015         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
2016         non-heapvar pointer variables specially.
2017
2018 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2019
2020         PR middle-end/29335
2021         * builtins.c (fold_builtin_sin, fold_builtin_cos,
2022         fold_builtin_tan): Fold all constant arguments.  Take a "type"
2023         argument as necessary.
2024         (do_mpfr_arg1): New.
2025         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
2026
2027 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
2028
2029         * config/xtensa/lib1funcs.asm: Use C-style comments.
2030
2031 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2032
2033         * tree.c (local_define_builtin): Replace calls to
2034         lang_hooks.builtin_function with add_builtin_function.
2035         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2036         c_builtin_function.
2037         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
2038         the signature.
2039         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
2040         common code to add_builtin_function.
2041         * langhooks.c (add_builtin_function): New function.
2042         (lhd_builtin_function): New function.
2043         * langhooks.h (struct lang_hooks): Change the signature of
2044         builtin_function.
2045         (add_builtin_function): New function.
2046         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
2047         calls to lang_hooks.builtin_function with add_builtin_function.
2048         * c-common.c (decl_builtin_1): Replace calls to
2049         lang_hooks.builtin_function with add_builtin_function.
2050         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
2051         lang_hooks.builtin_function with add_builtin_function.
2052         * config/frv/frv.c (def_builtin): Replace calls to
2053         lang_hooks.builtin_function with add_builtin_function.
2054         * config/s390/s390.c (s390_init_builtins): Replace calls to
2055         lang_hooks.builtin_function with add_builtin_function.
2056         * config/sparc/sparc.c (def_builtin): Replace calls to
2057         lang_hooks.builtin_function with add_builtin_function.
2058         * config/i386/i386.c (def_builtin): Replace calls to
2059         lang_hooks.builtin_function with add_builtin_function.
2060         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
2061         lang_hooks.builtin_function with add_builtin_function.
2062         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
2063         lang_hooks.builtin_function with add_builtin_function.
2064         * config/stormy16/stormy16.c (xstormy16_init_builtins):
2065         Replace calls to lang_hooks.builtin_function with
2066         add_builtin_function.
2067         * config/iq2000/iq2000.c (def_builtin):
2068         Replace calls to lang_hooks.builtin_function with
2069         add_builtin_function.
2070         * config/ia64/ia64.c (def_builtin): Replace calls to
2071         lang_hooks.builtin_function with add_builtin_function.
2072         * config/rs6000/rs6000.c (def_builtin): Replace calls to
2073         lang_hooks.builtin_function with add_builtin_function.
2074         (altivec_init_builtins): Replace calls to
2075         lang_hooks.builtin_function with add_builtin_function.
2076         * config/arm/arm.c (def_mbuiltin): Replace calls to
2077         lang_hooks.builtin_function with add_builtin_function.
2078         (arm_init_tls_builtins): Replace calls to
2079         lang_hooks.builtin_function with add_builtin_function.
2080         * config/mips/mips.c (mips_init_builtins): Replace calls to
2081         lang_hooks.builtin_function with add_builtin_function.
2082         * config/bfin/bfin.c (def_builtin): Replace calls to
2083         lang_hooks.builtin_function with add_builtin_function.
2084         * langhooks-def.h (lhd_builtin_function): New function.
2085         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
2086
2087 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
2088
2089         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
2090         BUILT_IN_STRNCAT_CHK.
2091
2092 2006-10-23  Jan Hubicka  <jh@suse.cz>
2093
2094         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
2095         don't do conversion from memmove to memcpy here.
2096         (expand_builtin_bcopy, expand_builtin): Update call of
2097         expand_builtin_memmove.
2098         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
2099
2100 2006-10-23  Paul Brook  <paul@codesourcery.com>
2101
2102         * stor-layout.c (start_record_layout): maximum_field_alignment
2103         overrides STRUCTURE_SIZE_BOUNDARY.
2104
2105 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
2106
2107         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
2108         nonlocal function symbols if flag_pic.
2109
2110 2006-10-23  Richard Guenther  <rguenther@suse.de>
2111
2112         PR middle-end/27132
2113         PR middle-end/23295
2114         * builtins.c (fold_binary): Remove checks for flag_wrapv
2115         and flag_trapv where negate_expr_p covers these cases.
2116
2117 2006-10-23  Richard Guenther  <rguenther@suse.de>
2118
2119         PR middle-end/29548
2120         * fold-const.c (fold_plusminus_mult_expr): Check exact power
2121         of two on the absolute value.
2122         (fold_binary): Fold x * -C to -x * C if x is easily negatable
2123         and negating -C does not overflow.
2124
2125 2006-10-23  Richard Guenther  <rguenther@suse.de>
2126
2127         PR middle-end/21032
2128         * convert.c (convert_to_real): Fold (float)-x to -(float)x
2129         only if not flag_rounding_math.
2130
2131 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
2132             Kaz Kojima  <kkojima@gcc.gnu.org>
2133
2134         PR target/28232
2135         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
2136         SImode memory reference for the source of a movua.
2137         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
2138         (movua): Use an unspec instead of sign_extract.  Expect the source
2139         to have mode BLKmode.
2140         (extv, insv): Use a BLKmode rather than SImode memory reference
2141         for the source of a movua.
2142
2143 2006-10-22  Jeff Law  <law@redhat.com>
2144         Richard Guenther  <rguenther@suse.de>
2145
2146         PR tree-optimization/15911
2147         * tree-vrp.c (extract_code_and_val_from_cond): New function.
2148         (register_edge_assert_for_1): Likewise.
2149         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
2150         (find_conditional_asserts): Adjust for new function signature.
2151         (find_assert_locations): Likewise.
2152
2153 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
2154
2155         * config/i386/tmmintrin.h: Remove the duplicated content.
2156
2157 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
2158
2159         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
2160         (x86_64-*-*): Likewise.
2161
2162         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
2163         (override_options): Check SSSE3.
2164         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
2165         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
2166         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
2167         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
2168         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
2169         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
2170         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
2171         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
2172         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
2173         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
2174         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
2175         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
2176         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
2177         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
2178         IX86_BUILTIN_PABSD128.
2179         (bdesc_2arg): Add SSSE3.
2180         (bdesc_1arg): Likewise.
2181         (ix86_init_mmx_sse_builtins): Support SSSE3.
2182         (ix86_expand_builtin): Likewise.
2183         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2184
2185         * config/i386/i386.md (UNSPEC_PSHUFB): New.
2186         (UNSPEC_PSIGN): Likewise.
2187         (UNSPEC_PALIGNR): Likewise.
2188         Include mmx.md before sse.md.
2189
2190         * config/i386/i386.opt: Add -mssse3.
2191
2192         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
2193         (ssse3_phaddwv4hi3): Likewise.
2194         (ssse3_phadddv4si3): Likewise.
2195         (ssse3_phadddv2si3): Likewise.
2196         (ssse3_phaddswv8hi3): Likewise.
2197         (ssse3_phaddswv4hi3): Likewise.
2198         (ssse3_phsubwv8hi3): Likewise.
2199         (ssse3_phsubwv4hi3): Likewise.
2200         (ssse3_phsubdv4si3): Likewise.
2201         (ssse3_phsubdv2si3): Likewise.
2202         (ssse3_phsubswv8hi3): Likewise.
2203         (ssse3_phsubswv4hi3): Likewise.
2204         (ssse3_pmaddubswv8hi3): Likewise.
2205         (ssse3_pmaddubswv4hi3): Likewise.
2206         (ssse3_pmulhrswv8hi3): Likewise.
2207         (ssse3_pmulhrswv4hi3): Likewise.
2208         (ssse3_pshufbv16qi3): Likewise.
2209         (ssse3_pshufbv8qi3): Likewise.
2210         (ssse3_psign<mode>3): Likewise.
2211         (ssse3_psign<mode>3): Likewise.
2212         (ssse3_palignrti): Likewise.
2213         (ssse3_palignrdi): Likewise.
2214         (abs<mode>2): Likewise.
2215         (abs<mode>2): Likewise.
2216
2217         * config/i386/tmmintrin.h: New file.
2218
2219         * doc/extend.texi: Document SSSE3 built-in functions.
2220
2221         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
2222
2223 2006-10-22  Ira Rosen  <irar@il.ibm.com>
2224
2225         * tree-vect-transform.c (vectorizable_load): Use the type of the
2226         return value of the mask_for_load builtin to create realign_load
2227         stmt.
2228
2229 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
2230
2231         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
2232         expressions.
2233
2234 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2235
2236         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
2237         (UNSPEC_LDDQU): This.
2238         * config/i386/sse.md (sse3_lddqu): Updated.
2239
2240 2006-10-21  Richard Guenther  <rguenther@suse.de>
2241
2242         * builtins.c (expand_builtin_int_roundingfn_2): New function.
2243         (expand_builtin): Use it to expand lrint instead of
2244         expand_builtin_mathfn.
2245
2246 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2247
2248         PR middle-end/28252
2249         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
2250         flag_unsafe_math_optimizations is set.
2251
2252 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2253
2254         PR target/19398
2255         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
2256         patterns to use memory input operand in x87->mem->XMM
2257         reload sequences.  Skip transformation for TARGET_K8.
2258
2259 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
2260
2261         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
2262         force operand1 to register if both operands are memory operands.
2263         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
2264         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
2265         if both operands are memory operands.
2266         (truncdfsf2): Do not force operand1 to register if both operands
2267         are memory operands.
2268
2269 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2270
2271         * Makefile.in (LIBS): Add $(GMPLIBS).
2272         * doc/install.texi: Update GMP and MPFR requirements.
2273         * doc/sourcebuild.texi (need_gmp): Delete.
2274
2275 2006-10-21  Richard Guenther  <rguenther@suse.de>
2276
2277         PR tree-optimization/3511
2278         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
2279         got new invariant arguments during PHI translation.
2280
2281 2006-10-21  Richard Guenther  <rguenther@suse.de>
2282
2283         PR middle-end/26898
2284         * fold-const.c (fold_comparison): Fold signed comparisons
2285         of the form X +- C1 CMP Y +- C2.
2286
2287 2006-10-21  Richard Guenther  <rguenther@suse.de>
2288
2289         PR target/19116
2290         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
2291         if flag_unsafe_math_optimizations is specified.  We have
2292         flag_finite_math_only for that.
2293         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
2294         or flag_unsafe_math_optimizations.
2295
2296 2006-10-21  Richard Guenther  <rguenther@suse.de>
2297
2298         * builtins.c (fold_builtin_classify): Fix typo.
2299
2300 2006-10-21  Richard Guenther  <rguenther@suse.de>
2301
2302         PR middle-end/28796
2303         * simplify-rtx.c (simplify_const_relational_operation):
2304         Do not constant-fold ORDERED and UNORDERED for
2305         flag_unsafe_math_optimizations but only we do not need to
2306         honor NaNs for the given mode.
2307
2308 2006-10-21  Richard Guenther  <rguenther@suse.de>
2309
2310         PR target/29512
2311         * config/i386/i386.c (classify_argument): Remove redundant
2312         walking of the BINFOs.
2313         (contains_128bit_aligned_vector_p): Likewise.
2314
2315 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
2316
2317         * BASE-VER: Set to 4.3.0.
2318
2319 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
2320
2321         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
2322         (tree_decl_with_vis): Remove artificial_pta_var flag.
2323         * tree-flow.h (referenced_var_check_and_insert): Expose.
2324         (nonlocal_all): New prototype.
2325         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
2326         (nonlocal_all): Make global.
2327         (nonlocal_lookup): Remove.
2328         (nonlocal_insert): Ditto.
2329         (create_nonlocal_var): Do not call nonlocal_insert.
2330         (get_nonlocal_id_for_type): Remove.
2331         (find_global_initializers): Mark new vars we find for renaming.
2332         (intra_create_variable_infos): Only create one nonlocal.
2333         (expand_nonlocal_solutions): Remove.
2334         (compute_points_to_sets): Don't call it.
2335         (ipa_pta_execute): Ditto.
2336         (init_alias_heapvars): Don't create nonlocal_for_type.
2337         (delete_alias_heapvars): Don't remove it.
2338         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
2339         nonlocal_all.
2340
2341 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
2342
2343         * doc/install.texi (Downloading GCC): Clarify mention of
2344         Fortran in the "full distribution" description.
2345
2346 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
2347
2348         Fix PR tree-optimization/28778
2349         Fix PR tree-optimization/29156
2350         Fix PR tree-optimization/29415
2351         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
2352         (tree_decl_with_vis): Add artificial_pta_var flag.
2353         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
2354         pushed into callers.
2355         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
2356         (nonlocal_all): Ditto.
2357         (struct variable_info): Add directly_dereferenced member.
2358         (var_escaped_vars): New variable.
2359         (escaped_vars_tree): Ditto.
2360         (escaped_vars_id): Ditto.
2361         (nonlocal_vars_id): Ditto.
2362         (new_var_info): Set directly_dereferenced.
2363         (graph_size): New variable
2364         (build_constraint_graph): Use graph_size.
2365         (solve_graph): Don't process constraints that cannot change the
2366         solution, don't try to propagate an empty solution to our
2367         successors.
2368         (process_constraint): Set directly_dereferenced.
2369         (could_have_pointers): New function.
2370         (get_constraint_for_component_ref): Don't process STRING_CST.
2371         (nonlocal_lookup): New function.
2372         (nonlocal_insert): Ditto.
2373         (create_nonlocal_var): Ditto.
2374         (get_nonlocal_id_for_type): Ditto.
2375         (get_constraint_for): Allow results vector to be empty in the case
2376         of string constants.
2377         Handle results of calls properly.
2378         (update_alias_info): Update alias info stats on number and type of
2379         calls.
2380         (find_func_aliases): Use could_have_pointers.
2381         (make_constraint_from_escaped): Renamed from
2382         make_constraint_to_anything, and changed to make constraints from
2383         escape variable.
2384         (make_constraint_to_escaped): New function.
2385         (find_global_initializers): Ditto.
2386         (create_variable_info_for): Make constraint from escaped to any
2387         global variable, and from any global variable to the set of
2388         escaped vars.
2389         (intra_create_variable_infos): Deal with escaped instead of
2390         pointing to anything.
2391         (set_uids_in_ptset): Do type pruning on directly dereferenced
2392         variables.
2393         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
2394         (init_base_vars): Fix comment, and initialize escaped_vars.
2395         (need_to_solve): Removed.
2396         (find_escape_constraints): New function.
2397         (expand_nonlocal_solutions): Ditto.
2398         (compute_points_to_sets): Call find_escape_constraints and
2399         expand_nonlocal_solutions.
2400         (delete_points_to_sets): Don't fall off the end of the graph.
2401         (init_alias_heapvars): Initialize nonlocal_for_type and
2402         nonlocal_all.
2403         (delete_alias_heapvars): Free nonlocal_for_type and null out
2404         nonlocal_all.
2405
2406 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
2407
2408         * fold-const.c (add_double): Rename to add_double_with_sign.
2409         Add 'unsigned_p' parameter and take it into account for the overflow.
2410         (mul_double): Rename to mul_double_with_sign.
2411         Add 'unsigned_p' parameter and take it into account for the overflow.
2412         (fold_div_compare): Call add_double_with_sign instead of add_double
2413         and mul_double_with_sign instead of mul_double, passing them the
2414         unsignedness of the type.
2415         * tree.h (add_double): Macroize.
2416         (add_double_with_sign): New prototype.
2417         (mul_double): Macroize.
2418         (mul_double_with_sign): New prototype.
2419
2420 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
2421
2422         * config/score/crti.asm: New file.
2423         * config/score/crtn.asm: New file.
2424         * config/score/elf.h: New file.
2425         * config/score/mac.md: New file.
2426         * config/score/misc.md: New file.
2427         * config/score/mul-div.S: New file.
2428         * config/score/predicates.md: New file.
2429         * config/score/score7.md: New file.
2430         * config/score/score.c: New file.
2431         * config/score/score-conv.h: New file.
2432         * config/score/score.h: New file.
2433         * config/score/score.md: New file.
2434         * config/score/score-mdaux.c: New file.
2435         * config/score/score-mdaux.h: New file.
2436         * config/score/score-modes.def: New file.
2437         * config/score/score.opt: New file.
2438         * config/score/score-protos.h: New file.
2439         * config/score/score-version.h: New file.
2440         * config/score/t-score-elf: New file.
2441         * config.gcc: Add score*-*-* configurations(Update before).
2442         * doc/invoke.texi (Score Options): New section.
2443         * doc/md.texi (Score family): New section to document constraints.
2444
2445 2006-10-19  Nick Clifton  <nickc@redhat.com>
2446
2447         * config/arm/arm.c: Fix spelling typo.
2448
2449 2006-10-18  Tom Tromey  <tromey@redhat.com>
2450
2451         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2452
2453 2006-10-18  Jan Hubicka  <jh@suse.cz>
2454
2455         PR middle-end/29299
2456         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
2457         are used.
2458
2459 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
2460
2461         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
2462         TSI_SAME_STMT, since that's the desired entity.
2463
2464 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
2465
2466         * config/s390/contraints.md: New file.
2467         * config/s390/s390-protos.h (s390_mem_constraint,
2468         s390_O_constraint_str, s390_N_constraint_str,
2469         s390_float_const_zero_p): Function prototypes added.
2470         * config/s390/s390.c (s390_extra_constraint_str,
2471         s390_const_double_ok_for_constraint_p,
2472         s390_const_ok_for_constraint_p): Functions removed.
2473         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
2474         s390_float_const_zero_p): New functions.
2475         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
2476         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
2477         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
2478         Macro definitions removed.
2479         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
2480         s390_extra_constraint_str): Functions removed.
2481
2482 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
2483             Richard Sandiford  <richard@codesourcery.com>
2484
2485         PR target/29413
2486         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
2487         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
2488
2489 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
2490
2491         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
2492         (DWARF2_FRAME_REG_OUT): Likewise.
2493         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
2494         (DWARF2_FRAME_REG_OUT): Likewise.
2495
2496 2006-10-17  Paul Brook  <paul@codesourcery.com>
2497
2498         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
2499
2500 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2501
2502         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
2503         Standardize on "GNU Fortran" as the official name of the Fortran
2504         compiler.
2505
2506 2006-10-16  Mike Stump  <mrs@apple.com>
2507
2508         * doc/invoke.texi (Darwin Options): Document -mkernel.
2509         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
2510         -mkernel support.
2511         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
2512         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
2513         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
2514         (OS_MISSING_ALTIVEC): Add.
2515         * config/i386/i386.c (override_options): Add
2516         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
2517         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
2518         -mkernel, -static or -mdynamic-no-pic is given.
2519         (C_COMMON_OVERRIDE_OPTIONS): Add.
2520         * config/darwin.opt (fapple-kext): Add.
2521         (mkernel): Add.
2522         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
2523         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
2524         -mkernel support.
2525         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
2526         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
2527         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
2528         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
2529         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
2530         (flag_mkernel): Add.
2531         (flag_apple_kext): Add.
2532         (TARGET_KEXTABI): Add.
2533         * config/darwin.c (darwin_handle_kext_attribute): Add.
2534         (DARWIN_VTABLE_P): Add.
2535         (darwin_binds_local_p): Add partial support for rebinding vtables
2536         in kexts.
2537         (darwin_kextabi_p): Add.
2538         (darwin_override_options): Add.
2539         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
2540         (darwin_kextabi_p): Add.
2541         (darwin_override_options): Add.
2542         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
2543         __DYNAMIC__ and __STATIC__ here.
2544
2545 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2546
2547         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
2548         Added mention of "make pdf" target, and Texinfo requirements for
2549         same.
2550
2551 2006-10-16  DJ Delorie  <dj@redhat.com>
2552
2553         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
2554         into the GOT in case we need a subreg of the address.
2555
2556 2006-10-16  Richard Guenther  <rguenther@suse.de>
2557
2558         PR target/25519
2559         * doc/extend.texi (X86 Built-in Functions): Fix typos in
2560         SSE builtin documentation.  Document SSE2 builtins.
2561
2562 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2563
2564         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
2565         symbol in the output file for non-shared links when -nostdlib or
2566         -nodefaultlibs isn't specified.
2567
2568         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
2569         posix thread support.
2570
2571 2006-10-15  Jan Hubicka  <jh@suse.cz>
2572
2573         PR middle-end/29241
2574         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
2575         declared always_inline even when not inlining.
2576
2577 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2578             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2579             Andrew Pinski  <pinskia@gmail.com>
2580
2581         PR middle-end/29111
2582         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
2583
2584 2006-10-15  Jan Hubicka  <jh@suse.cz>
2585             Richard Guenther  <rguenther@suse.de>
2586
2587         PR middle-end/29299
2588         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2589         process_function_and_variable_attributes on all variables, including
2590         those discovered during cgraph construction phase.
2591
2592 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
2593
2594         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
2595
2596 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
2597
2598         * config/i386/athlon.md (athlon_fist): Add fisttp.
2599
2600 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
2601             Ian Lance Taylor  <ian@airs.com>
2602
2603         PR middle-end/29250
2604         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
2605         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
2606         recursing.
2607
2608 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
2609
2610         * config/score/score.c, config/score/score.h: Fix comment
2611         typos.
2612
2613 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2614
2615         PR bootstrap/29402
2616         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
2617         shell pipeline.
2618
2619 2006-10-13  Eric Christopher  <echristo@apple.com>
2620
2621         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2622
2623 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2624
2625         Revert this change:
2626         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2627         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2628         alignment supported by 32-bit ELF.
2629
2630 2006-10-13  Eric Christopher  <echristo@apple.com>
2631
2632         * config/darwin.c (darwin_emit_unwind_label): Strip
2633         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
2634
2635 2006-10-13  Richard Guenther  <rguenther@suse.de>
2636
2637         PR tree-optimization/29446
2638         * tree-vrp.c (fix_equivalence_set): Remove.
2639         (extract_range_from_assert): Do not call fix_equivalence_set.
2640         (debug_value_range): Print a newline.
2641         (compare_name_with_value): For equivalence sets with
2642         inconsistent value ranges conservatively bail out.
2643         (compare_names): Likewise.
2644
2645 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
2646
2647         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
2648         and MPFR for gfortran.
2649
2650 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
2651
2652         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
2653         alignment supported by 32-bit ELF.
2654
2655 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
2656
2657         PR c/29092
2658
2659         * c-typeck.c (digest_init): Always allow initializing vectors
2660         that have static storage duration with compound literals.
2661         * tree.c (build_type_attribute_qual_variant): New, based on
2662         build_type_attribute_variant.
2663         (build_type_attribute_variant): Rewrite using the former.
2664         (make_vector_type): Use build_type_attribute_qual_variant to build
2665         type variants.  Use type_hash_canon on the others.
2666
2667 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
2668             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
2669
2670         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
2671
2672 2006-10-12  Jan Hubicka  <jh@suse.cz>
2673
2674         PR c/28419
2675         * c-decl.c (c_make_fname_decl): Do not segfault in case where
2676         current_function_decl is set but current_function_scope is not.
2677
2678 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
2679
2680         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
2681         emit_insn to emit eh_return_internal instruction.
2682         (eh_return_internal): Explicitly set pc.
2683
2684 2006-10-11  Richard Guenther  <rguenther@suse.de>
2685
2686         PR tree-optimization/28230
2687         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
2688         to the correct place.
2689
2690 2006-10-11  Richard Guenther  <rguenther@suse.de>
2691
2692         PR inline-asm/29119
2693         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
2694         addressable.
2695
2696 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
2697
2698         * configure.ac: Added pdf to "Make-hooks"
2699         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
2700         targets and *.pdf file patterns in cleanup targets.
2701         * configure: Regenerated.
2702
2703 2006-10-10  Anatoly Sokolov <aesok@post.ru>
2704
2705         * config/avr/predicates.md: New file.
2706         * config/avr/avr.md: Include it.
2707         (REG_SP): New constant.
2708         (peepholes): Use predicates.
2709         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
2710         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
2711         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
2712
2713 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
2714
2715         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
2716         avoid alias set 0.
2717
2718 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
2719
2720         PR middle-end/29272
2721         * builtins.c (var_decl_component_p): New function.
2722         (fold_builtin_memset, fold_builtin_memory_op): Restrict
2723         single entry optimization to variables and components thereof.
2724
2725 2006-10-10  Richard Guenther  <rguenther@suse.de>
2726
2727         PR rtl-optimization/29323
2728         * except.c (set_nothrow_function_flags): For functions
2729         that do not bind local bail out early.
2730
2731 2006-10-10  Ben Elliston  <bje@au.ibm.com>
2732
2733         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2734         -mdlmzb option.
2735
2736 2006-10-09  Richard Henderson  <rth@redhat.com>
2737
2738         Revert emutls patch.
2739
2740 2006-10-09  Richard Guenther  <rguenther@suse.de>
2741
2742         PR middle-end/29254
2743         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2744         errors.
2745
2746 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
2747
2748         PR target/27880
2749         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2750         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2751         * configure: Regenerate.
2752         * config.in: Regenerate.
2753
2754 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
2755
2756         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2757
2758 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2759
2760         * config/mips/mips.c (mips_legitimize_tls_address): Implement
2761         all TLS models in the same way as local exec if !TARGET_ABICALLS.
2762         Remove stray newline.
2763
2764 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2765
2766         * config/mips/mips.c (mips_classify_symbol): Do not return
2767         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2768         (mips_in_small_data_p): Tweak comments.
2769
2770 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2771
2772         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2773
2774 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
2775
2776         * gimplify.c, sched-int.h: Fix comment typos.
2777
2778         * sched-int.h: Fix comment typos.
2779
2780 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2781
2782         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2783         New macros.
2784         * sched-ebb.c (begin_schedule_ready): Use them.
2785         * haifa-sched.c (schedule_insn, move_insn, try_ready,
2786         add_to_speculative_block, create_check_block_twin, speculate_insn,
2787         fix_jump_move, move_block_after_check): Ditto.
2788         * sched-rgn.c (new_ready): Ditto.
2789
2790 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2791
2792         PR rtl-optimization/29128
2793         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2794         * sched-ebb.c (advance_target_bb): Use it to fix condition to
2795         allow interblock movement of speculation checks.
2796
2797 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
2798
2799         PR middle-end/29256
2800         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2801         casted to integer type.
2802         (get_address_cost): Decrease cost of [symbol + index] addressing modes
2803         if they are significantly more expensive than [reg + index] ones.
2804
2805 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2806
2807         PR tree-optimization/29330
2808         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2809         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2810         on newly allocated ddrs.
2811         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2812         to VEC (loop_p, heap) pointer.
2813         (compute_data_dependences_for_loop): Adjust caller.
2814         (free_dependence_relations): Free DDR_LOOP_NEST.
2815
2816         * tree-loop-linear.c (linear_transform_loops): Don't forget to
2817         free DEPENDENCE_RELATIONS and DATAREFS.
2818
2819         PR target/28924
2820         * builtins.c (expand_builtin_sync_operation,
2821         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2822         Use convert_to_mode to handle promoted arguments.
2823
2824 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2825
2826         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2827
2828 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2829
2830         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2831
2832 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
2833
2834         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2835         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2836         Use <modeconstraint> instead of "r" as operand 1 constraint.
2837
2838 2006-10-06  Olivier Hainque  <hainque@adacore.com>
2839
2840         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2841         Don't recurse on the pointed-to type.
2842         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2843         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2844         types with components of variable size.
2845
2846 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2847
2848         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2849
2850 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2851
2852         PR tree-optimization/29290
2853         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2854         multiple exits.
2855
2856         PR target/29198
2857         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2858         * config/i386/predicates.md (local_symbolic_operand): Likewise.
2859
2860         PR c/29091
2861         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2862         the number of vector elements fill the rest with zeros.
2863
2864 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
2865
2866         * config/mips/mips.c (mips_pass_by_reference): Do not return false
2867         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
2868         instead.
2869
2870 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2871
2872         * config/bfin/bfin.md (subsi3): Lose expander, change previously
2873         unnamed pattern into subsi3.  Use correct constraints/predicates.
2874         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2875         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2876
2877 2006-10-05  Ira Rosen  <irar@il.ibm.com>
2878
2879         * doc/loop.texi: Add data references analysis description.
2880
2881 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
2882
2883         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2884
2885 2006-10-04  Richard Henderson  <rth@redhat.com>
2886             Jakub Jelinek  <jakub@redhat.com>
2887
2888         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2889         * builtin-types.def (BT_WORD): Make unsigned.
2890         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2891         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2892         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2893         * c-decl.c (grokdeclarator): Don't error if !have_tls.
2894         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2895         * cgraph.c (decide_is_variable_needed): Look at force_output.
2896         Recurse for emulated tls.
2897         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2898         checks redundant with decide_is_variable_needed.
2899         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2900         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2901         emulated tls.
2902         * expr.c (emutls_var_address): New.
2903         (expand_expr_real_1): Expand emulated tls.
2904         (expand_expr_addr_expr_1): Likewise.
2905         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2906         * output.h (emutls_finish): Declare.
2907         * toplev.c (compile_file): Call it.
2908         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2909         address before wrapping in CONST.
2910         * varasm.c (emutls_htab, emutls_object_type): New.
2911         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2912         (get_emutls_object_name, get_emutls_object_type): New.
2913         (get_emutls_init_templ_addr, emutls_decl): New.
2914         (emutls_common_1, emutls_finish): New.
2915         (assemble_variable): When emulating tls, swap decls; generate
2916         constructor for the emutls objects.
2917         (do_assemble_alias): When emulating tls, swap decl and target name.
2918         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2919         for emulated tls.
2920         * emutls.c: New file.
2921         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2922         tls_object for real tls.
2923
2924 2006-10-04  Zack Weinberg  <zackw@panix.com>
2925
2926         Fix bug in constraint-check generator, reported by Rask Ingemann
2927         Lambertsen:
2928         * genpreds.c (add_constraint): Don't remove anything from the
2929         expression here.
2930         (write_tm_constrs_h): Detect whether "op" argument is used, and
2931         mark it ARG_UNUSED if it isn't.
2932         (write_insn_const_int_ok_for_constraint): Skip the part of the
2933         expression that would test whether "op" (which is not available
2934         here) is a CONST_INT.
2935
2936 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
2937
2938         PR c++/28448
2939         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2940
2941 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
2942
2943         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2944         current Leopard versions.
2945         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2946
2947 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2948
2949         * doc/install.texi: Fix typos.
2950
2951 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2952
2953         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2954         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2955         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2956
2957 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
2958
2959         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2960         arg to be struct mach_header_64* instead.
2961
2962 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
2963
2964         PR c/29154
2965         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2966         side effects after the outer expression's post side effects.
2967
2968 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
2969
2970         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
2971         comments to reflect actual behavior and relationship between
2972         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2973
2974         * doc/c-tree.texi (Working with declarations): Fix documentation
2975         of FIELD_DECL likewise.
2976
2977 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
2978
2979         PR c/20533
2980         * doc/extend.texi: Add used variable attribute description.
2981
2982 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
2983
2984         PR c/24010
2985         * c.opt (Woverride-init): New.
2986         * c-opts.c (c_common_post_options): Default warn_override_init to
2987         extra_warnings.
2988         * c-typeck.c (add_pending_init, output_init_element): Warn for
2989         overriding initializers without side effects.
2990         * doc/invoke.texi (-Woverride-init): Document.
2991         (-Wextra): Update.
2992
2993 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2994
2995         PR rtl-optimization/28096
2996         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2997         assignment has already been used as a destination earlier in the block.
2998
2999 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3000
3001         * builtins.c (expand_builtin_setjmp): Delete.
3002         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
3003         <BUILT_IN_SETJMP_SETUP>: New case.
3004         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
3005         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
3006         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
3007         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
3008         (BUILT_IN_SETJMP_RECEIVER): Likewise.
3009         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
3010         (lower_function_body): Initialize it to false.  If it is set to true
3011         at the end of the processing, emit the setjmp dispatcher.
3012         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
3013         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
3014         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
3015         on the rhs of the assignment.
3016         (lower_builtin_setjmp): New function.
3017         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
3018         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
3019         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
3020         to detect calls that can go to non-local labels.  Use specific
3021         helper to create the abnormal edges associated with them.
3022         <MODIFY_EXPR>: Likewise.
3023         (make_abnormal_goto_edges): New function extracted from...
3024         (make_goto_expr_edges): ...here.  Call it for computed gotos.
3025         (simple_goto_p): Minor tweak.
3026         (tree_can_make_abnormal_goto): New predicate.
3027         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
3028         (tree_purge_dead_abnormal_call_edges): New function.
3029         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
3030         (tree_purge_dead_abnormal_call_edges): Likewise.
3031         (make_abnormal_goto_edges): Likewise.
3032         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
3033         Purge all dead abnormal edges if the call was in the last statement.
3034         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
3035         (execute_fixup_cfg): If there are non-local labels in the function,
3036         scan the basic blocks and split them at calls that can go to non-local
3037         labels or add missing abnormal call edges.  Write down the CFG in the
3038         dump file.
3039         (pass_fixup_cfg): Remove TODO_dump_func flag.
3040         * unwind-sjlj.c: Poison setjmp.
3041         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
3042         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
3043         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
3044         (DONT_USE_BUILTIN_SETJMP): Document it.
3045
3046 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
3047
3048         PR target/28617
3049         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
3050         to 1 when __ppc64__ is defined.
3051         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
3052         darwin-64.c.
3053         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
3054
3055 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
3056
3057         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
3058         * config/ia64/unwind-hpux.c: Delete.
3059
3060 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
3061
3062         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
3063         on the element before gimplifying it, instead of punting if it is of
3064         variable size.
3065
3066 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
3067
3068         * doc/loop.texi: New file.
3069         * doc/gccint.texi: Reference loop.texi.
3070         * Makefile.in (loop.texi): Add.
3071
3072 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
3073
3074         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
3075         __sysctl.
3076         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3077         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3078
3079 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3080
3081         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
3082
3083 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
3084
3085         * doc/install.texi: Document required versions of GMP and MPFR.
3086
3087 2006-09-27  Paul Brook  <paul@codesourcery.com>
3088
3089         PR target/29230
3090         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
3091
3092 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
3093
3094         * reload1.c (alter_reg): Require the alignment of the stack slot to
3095         be at least reg_max_ref_width bytes.
3096         (scan_paradoxical_subregs): Record the largest width in
3097         reg_max_ref_width.
3098
3099 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
3100
3101         PR middle-end/25261
3102         PR middle-end/28790
3103         * tree-nested.c (struct nesting_info): Added static_chain_added.
3104         (convert_call_expr): Set static_chain_added when adding static
3105         chain.  Handle OMP_PARALLEL and OMP_SECTION.
3106
3107 2006-09-25  Matthias Klose  <doko@debian.org>
3108
3109         * doc/invoke.texi: Add missing full stop.
3110
3111 2006-09-25  Richard Henderson  <rth@redhat.com>
3112
3113         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
3114         before cgraph_function_flags_ready.
3115
3116 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
3117             Adam Nemet  <anemet@caviumnetworks.com>
3118
3119         * tree-ssa-loop-ivopts.c (aff_combination_convert,
3120         determine_common_wider_type): New functions.
3121         (get_computation_aff): Use them to simplify arithmetic between
3122         UBASE and CBASE if they are shortened from the same type.
3123
3124 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
3125
3126         PR target/28911
3127         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
3128         -2147483647 - 1 instead of 0x80000000.
3129
3130 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
3131
3132         * flags.h (HONOR_NANS): Fix typo in comment.
3133
3134 2006-09-23  Uros Bizjak <uros@kss-loka.si>
3135
3136         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
3137
3138 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
3139
3140         PR c/28706
3141         PR c/28712
3142         * tree.c (merge_attributes, attribute_list_contained): If both
3143         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
3144         simple_cst_equal.
3145         * c-typeck.c (comptypes_internal): Don't consider aggregates
3146         in different TUs as compatible if there one set of attributes is
3147         not a subset of the other type's attributes.
3148         (composite_type): Try harder not to create a new aggregate type.
3149
3150 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
3151
3152         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
3153         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
3154         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
3155         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
3156         than replicating condition above.
3157         * config.host (i[34567]86-*-*): Always use driver-i386.o.
3158
3159         * config/darwin.h (LINK_SYSROOT_SPEC): New.
3160         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
3161         the linker by default.
3162
3163 2006-09-22  Mike Stump  <mrs@apple.com>
3164
3165         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
3166         code.
3167
3168 2006-09-22  Richard Guenther  <rguenther@suse.de>
3169
3170         PR middle-end/28964
3171         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
3172         sort of stack variables stable.
3173
3174 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
3175
3176         PR middle-end/28690
3177         * explow.c (force_reg): Set REG_POINTER flag according to
3178         MEM_POINTER flag.
3179
3180 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
3181
3182         PR tree-optimization/28888
3183         * tree-if-conv.c (combine_blocks): Rewritten.
3184         * tree-cfg.c (tree_verify_flow_info): Check that edges with
3185         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
3186
3187 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
3188
3189         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
3190         needed.
3191
3192 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
3193
3194         * varasm.c (copy_constant): Fix reversed gcc_assert check.
3195
3196 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
3197
3198         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
3199
3200 2006-09-21  Roger Sayle  <roger@eyesopen.com>
3201
3202         PR debug/29132
3203         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
3204         dw_fde_current_label, to be the start of the function, i.e. the same
3205         value as dw_fde_begin.
3206
3207 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
3208
3209         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
3210         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
3211         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
3212         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
3213         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
3214         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
3215         (abs<mode>2, neg<mode>2): Likewise.
3216         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
3217         (*mips_abs_ps): New define_insn.
3218
3219 2006-09-20  Josh Conner  <jconner@apple.com>
3220
3221         PR middle-end/25505
3222         * calls.c (expand_call): Allow reuse of structure return stack
3223         temp.
3224
3225 2006-09-20  Paul Brook  <paul@codesourcery.com>
3226
3227         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
3228         positive offsets.
3229
3230 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
3231
3232         * doc/extend.texi (Decimal Float): Update for latest draft TR,
3233         clean up terminology.
3234
3235 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
3236
3237         PR target/28574
3238         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
3239         with tablejumps in them.
3240
3241 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
3242
3243         PR middle-end/28046
3244         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
3245         wrap it into TARGET_EXPR.
3246
3247 2006-09-20  Eric Christopher  <echristo@apple.com>
3248
3249         * config/i386/i386.c (x86_fisttp): Remove.
3250         * config/i386/i386.h (x86_fisttp): Ditto.
3251         (TARGET_FISTTP): Ditto.
3252
3253 2006-09-19  Eric Christopher  <echristo@apple.com>
3254
3255         * doc/tm.texi (OBJC_JBLEN): Describe.
3256         * config/i386/darwin.h (OBJC_JBLEN): Define.
3257         * config/rs6000/darwin.h: Ditto.
3258
3259 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
3260
3261         PR rtl-optimization/21299
3262         * reload1.c (reload): Purge invalid ASMs in the final pass.
3263
3264 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
3265
3266         PR  28490
3267         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
3268         pointers as legitimate constants.
3269
3270 2006-09-19  Paul Brook  <paul@codesourcery.com>
3271
3272         PR target/28516
3273         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
3274
3275 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
3276
3277         PR tree-optimization/28887
3278         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
3279         component parts from the reference.
3280         (gather_memory_references_ref): Record the reference without the
3281         nonaddressable component parts.
3282
3283 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
3284
3285         PR c/25993
3286         * c-opts.c (c_common_handle_option): Ignore the -std options
3287         if the input language is assembly.
3288
3289 2006-09-17  Ira Rosen  <irar@il.ibm.com>
3290
3291         PR tree-opt/21591
3292         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
3293         tag first.
3294         (ptr_ptr_may_alias_p): Likewise.
3295         (record_record_differ_p): New function.
3296         (base_object_differ_p): Call record_record_differ_p.
3297
3298 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
3299
3300         PR tree-opt/29059
3301         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
3302         away for the expr argument.
3303
3304 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
3305
3306         PR tree-opt/27742
3307         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
3308         before using it for dumping after vectorizing loops.
3309
3310 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
3311             Jack Howarth  <howarth@bromo.med.uc.edu>
3312
3313         PR target/29030
3314         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
3315         skip on error_mark_node.
3316         (rs6000_darwin64_record_arg_recurse): Likewise.
3317
3318 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
3319
3320         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
3321         * doc/rtl.texi: Remove related documentation.
3322
3323 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3324
3325         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
3326         printf.
3327
3328 2006-09-15  Jim Wilson  <wilson@specifix.com>
3329
3330         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
3331         Handle symbol offsets same as they are handled in ia64_expand_move
3332         and move_operand.
3333
3334 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
3335
3336         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
3337         Add forgotten parameter to the fprintf call.
3338
3339 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
3340
3341         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
3342
3343 2006-09-15  Uros Bizjak <uros@kss-loka.si>
3344
3345         * doc/contrib.texi: Add my entry.
3346
3347 2006-09-15  Nick Clifton  <nickc@redhat.com>
3348
3349         * doc/md.texi (Processor pipeline description): Fix typo in
3350         example of how to use the absence_set directive and reword the
3351         description to make it slightly easier to read.
3352
3353 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3354
3355         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
3356         * loop-doloop.c (doloop_optimize): Use it to limit costs of
3357         expanding the number of iterations.
3358         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
3359
3360         * cfgrtl.c (emit_insn_at_entry): New function.
3361         * rtl.h (emit_insn_at_entry): Declare it.
3362         * integrate.c (emit_initial_value_sets): Use it.
3363
3364         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
3365
3366         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
3367         bad.
3368         (struct loop_work and related VEC declarations): Delete.
3369         (bfin_dump_loops): Print out new member bad.
3370         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
3371         (bfin_scan_loop): Don't recurse.
3372         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
3373         loops.  No longer need to update outer loops if the current one is
3374         found bad.  Move some validitiy checks to bfin_discover_loop.
3375         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
3376         but changed not to check for nesting.  Also changed to use the new bad
3377         flag.
3378         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
3379         time.  Use bitmap based test to discover loop nesting.
3380
3381 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
3382
3383         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
3384         one line.
3385
3386 2006-09-14  Richard Guenther  <rguenther@suse.de>
3387             Kazu Hirata  <kazu@codesourcery.com>
3388
3389         PR middle-end/28884.
3390         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
3391         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
3392         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
3393         with TARGET_FUNCTION_VALUE.
3394
3395 2006-09-14  Anatoly Sokolov <aesok@post.ru>
3396
3397         PR target/26504
3398         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
3399
3400 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
3401
3402         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
3403         of a RETURN_EXPR
3404
3405 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
3406
3407         PR debug/28980
3408         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
3409         FUNCTION_DECL.
3410
3411 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3412
3413         * basic_block.h (bb_has_eh_pred): Fix comment.
3414
3415 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3416
3417         * flow.c (calculate_global_regs_live): Invalidate eh registers
3418         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
3419         (propagate_block): Handle eh registers as if they were set at basic
3420         block start.
3421         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
3422         registers.
3423         * global.c (global_conflicts): Make eh registers to conflict with
3424         pseudos live at basic block begin.
3425         * basic_block.h (bb_has_eh_pred): New function.
3426
3427 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
3428
3429         PR rtl-optimization/28982
3430         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
3431         index of a PRE_MODIFY or POST_MODIFY address.
3432         * reload1.c (inc_for_reload): Use find_replacement on the original
3433         base and index registers.
3434
3435 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
3436
3437         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
3438         for -Os. Update __m128 alignment requirement.
3439
3440 2006-09-13  Jan Hubicka  <jh@suse.cz>
3441
3442         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
3443
3444 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>