OSDN Git Service

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