OSDN Git Service

fcfffec4eddb61fe2c3b6c3077df938fcde7c2ec
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-27  Michael Matz  <matz@suse.de>
2             Andreas Krebbel  <krebbel1@de.ibm.com>
3
4         PR target/29319
5         * config/s390/predicates.md (larl_operand): Check addend of larl
6         operand to be in range of -/+2GB.
7         * config/s390/s390.c (legitimize_pic_address): Likewise.  
8         Changed type of variable even to HOST_WIDE_INT.
9
10 2006-11-27  Jan Hubicka  <jh@suse.cz>
11
12         * expr.c (emit_block_move_via_libcall): Export.
13         (clear_storage_via_libcall): Rename to ...
14         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
15         (clear_storage): Update to set_storage_via_libcall.
16         * expr.h (emit_block_move_via_libcall): Declare
17         * config/i386/i386.h (stringop_alg): New enum.
18         (MAX_STRINGOP_ALGS): New constant.
19         (stringop_algs): New struct.
20         (processor_costs): Add memcpy/memset descriptors.
21         (TARGET_REP_MOVEL_OPTIMAL): Remove.
22         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
23         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
24         for memset.
25         * config/i386/i386.opt (minline-stringops-dynamically,
26         mstringop-strategy): New
27         parameters.
28         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
29         (ix86_expand-clrmem): Rename to ...
30         (ix86_expand_setmem): ... this one; update prototype.
31         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
32         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
33         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
34         nocona_cost, core2_cost, generic_cost, generic64_cost,
35         generic32_cost): Add memcpy/memset descriptors.
36         (x86_rep_movl_optimal): Remove.
37         (stringop_alg): New static variable.
38         (ix86_expand_aligntest): Handle predictions.
39         (override_options): Add strgop_alg handling.
40         (predict_jump): New function.
41         (scale_counter): New function.
42         (expand_set_or_movmem_via_loop): New function.
43         (expand_movmem_via_rep_mov): New function.
44         (expand_setmem_via_rep_stots): New function.
45         (emit_strmov): New function.
46         (expand_movmem_epilogue): New function.
47         (expand_setmem_epilogue_via_loop): New function.
48         (expand_setmem_epilogue): New function.
49         (expand_movmem_prologue): New function.
50         (expand_setmem_prologue): New function.
51         (decide_alg): New function.
52         (decide_alignment): New function.
53         (ix86_exand_movmem): Rewrite.
54         (promote_duplicated_reg): New function.
55         (ix86_expand_clrmem): Rename to ...
56         (ix86_expand_setmem): ... this one. Rewrite.
57
58         * invoke.texi (minline-stringops-dynamically): New command line option.
59         (mstringop-strategy): Likewise.
60
61 2006-11-27  Jan Hubicka  <jh@suse.cz>
62
63         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
64         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
65         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
66         * insn-notes.def (FUNCTION_END): Remove.
67         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
68         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
69         note.
70         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
71         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
72         * cfglayout.c (duplicate_insn_chain): Don't worry about
73         NOTE_FUNCTION_END.
74
75 2006-11-27  Richard Guenther  <rguenther@suse.de>
76         Zdenek Dvorak <dvorakz@suse.cz>
77
78         * target.h (struct gcc_target): Add builtin_vectorized_function
79         target hook.
80         * target-def.h (TARGET_VECTORIZE): Likewise.
81         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
82         Document new target hook.
83         * targhooks.h (default_builtin_vectorized_function): Declare.
84         * targhooks.c (default_builtin_vectorized_function): Define.
85         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
86         (vectorizable_call): Declare.
87         * tree-vect-analyze.c (vect_analyze_operations): Call
88         vectorizable_call.
89         * tree-vect-transform.c (vectorizable_function): New static function.
90         (build_vectorized_function_call): Likewise.
91         (vectorizable_call): New function.
92         (vect_transform_stmt): Handle vectorizable calls.
93
94 2006-11-27  Richard Guenther  <rguenther@suse.de>
95
96         PR middle-end/25620
97         * builtins.c (expand_builtin_pow): Optimize non integer valued
98         constant exponents using sqrt or cbrt if possible.  Always fall back
99         to expanding via optabs.
100
101 2006-11-27  Ira Rosen  <irar@il.ibm.com>
102
103         PR tree-optimization/22372
104         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
105         the type of the base address.
106         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
107         it in the data-ref pointer creation.
108         (vect_init_vector): Add an argument, type of the init vector. Use it in
109         the stmt creation.
110         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
111         (get_initial_def_for_reduction): Likewise.
112         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
113         void_type_node.
114         (vectorizable_assignment, vect_permute_store_chain): Likewise.
115         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
116         correct type in stmt creation.
117         (vect_setup_realignment): Use the correct type in stmt creation.
118         (vect_permute_load_chain): Change type of MODIFY_EXPR to
119         void_type_node.
120         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
121         of MODIFY_EXPR to void_type_node.
122         (vectorizable_condition): Change type of MODIFY_EXPR to
123         void_type_node.
124         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
125         creation.
126
127 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
128
129         Revert:
130         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
131         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
132         standard 80387 constants, raise the cost to prevent
133         compress_float_constant() to generate load from memory.
134
135         * config/i386/i386.md: Add new splitter pattern to split
136         float_extended load of constant from constant pool into
137         pure constant load.
138
139 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
140
141         * doc/install.texi: Move GMP/MPFR configure options from Fortran
142         section to general section.  Remove documentation for
143         --with-mpfr-dir and --with-gmp-dir, add documentation for
144         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
145         --with-gmp-lib.
146
147         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
148
149 2006-11-26  Razya Ladklesky  <razya@il.ibm.com> 
150
151         * testsuite/gcc.dg/ipa/ipa-6.c: New.
152
153 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
154         
155         PR tree-optimization/29122
156         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME 
157         for the new version.  Assign NULL to DECL_RTL of the new version. 
158
159 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
160
161         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
162
163 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
164
165         * cse.c (cse_altered): Remove.
166         (record_jump_equiv): Make true/false argument a bool instead
167         of an int.
168         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
169         where appropriate.  Emit a new jump before the existing one
170         instead of after so that delete_insn_and_edges removes the
171         dead edges properly.  Check any_condjump_p before calling
172         record_jump_equiv.
173         (cse_basic_block): Check any_condjump_p before calling
174         record_jump_equiv.
175         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
176
177 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
178
179         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
180         -ffixed-line-length-* options.
181
182 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
183
184         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
185         (fprem1xf4): Rename to fprem1xf4_i387.
186
187         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
188         Rename patterns to fmod<mode>3.  Use general_operand operand
189         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
190         patterns for SSE math.
191         (remaindersf3, remainderdf3): Ditto.
192
193 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
194
195         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
196         inside start_sequence / end_sequence pair.
197
198 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
199
200         * jump.c (mark_all_labels): Work in cfglayout mode.
201         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
202         when in cfglayout mode, because there are no dead jumptables
203         visible.
204         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
205         in cfglayout mode.
206         (commit_edge_insertions): Do not allow insertion of instructions
207         with control flow insns when in cfglayout mode.
208
209 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
210
211         * tree-vrp.c (execute_vrp): Do not pass loops structure through
212         arguments.
213         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
214         unswitch_loop): Ditto.
215         * tree-loop-linear.c (linear_transform_loops): Ditto.
216         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
217         tree_ssa_lim): Ditto.
218         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
219         free_numbers_of_iterations_estimates): Ditto.
220         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
221         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
222         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
223         remove_path, add_loop, loopify, unloop, fix_loop_placements,
224         place_new_loop, duplicate_loop, duplicate_subloops,
225         update_single_exit_for_duplicated_loops, copy_loops_to,
226         duplicate_loop_to_header_edge, create_preheaders,
227         force_single_succ_latches, loop_version, fix_loop_structure):
228         Ditto.
229         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
230         tree_unroll_loop): Ditto.
231         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
232         * tree-scalar-evolution.c (select_loops_exit_conditions,
233         scev_initialize, scev_analysis): Ditto.
234         * tree-scalar-evolution.h (scev_initialize): Ditto.
235         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
236         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
237         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
238         * modulo-sched.c (sms_schedule): Ditto.
239         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
240         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
241         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
242         * ifcvt.c (if_convert): Ditto.
243         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
244         canonicalize_loop_induction_variables,
245         canonicalize_induction_variables,
246         tree_unroll_loops_completely, remove_empty_loops): Ditto.
247         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
248         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
249         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
250         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
251         tree_ssa_loop_done): Ditto.
252         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
253         estimate_bb_frequencies): Ditto.
254         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
255         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
256         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
257         decide_unrolling_and_peeling, peel_loop_completely,
258         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
259         peel_loop_simple, unroll_loop_stupid): Ditto.
260         * loop-doloop.c (doloop_optimize_loops): Ditto.
261         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
262         * loop-invariant.c (move_loop_invariants): Ditto.
263         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
264         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
265         tree_ssa_prefetch_arrays): Ditto.
266         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
267         Ditto.
268         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
269         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
270         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
271         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
272         verify_loop_structure): Ditto.
273         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
274         canonicalize_induction_variables, tree_unroll_loops_completely,
275         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
276         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
277         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
278         tree_unroll_loop, linear_transform_loops): Declaration changed.
279         * basic-block.h: Remove declaration of struct loops.
280         * cfghooks.h (struct cfg_hooks): Change type of
281         cfg_hook_duplicate_loop_to_header_edge.
282         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
283         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
284         vect_transform_loop): Declaration changed.
285         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
286         * cfgloop.h (flow_loops_dump, fix_loop_structure,
287         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
288         cancel_loop_tree, create_preheaders, force_single_succ_latches,
289         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
290         loopify, loop_version, remove_path, unswitch_loops,
291         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
292         Declaration changed.
293
294 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
295
296         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
297         (X87MODEF): New mode macro.
298         (ssemodefsuffix): New mode attribute.
299         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
300         (sqrt_extend<mode>xf2_i387): New insn pattern.
301         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
302         insn and truncate result back to original mode using
303         UNSPEC_TRUNC_NOOP truncation.
304         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
305         ssemodefsuffix mode attribute.
306         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
307         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
308         (*sqrtextenddfxf2_i387): Remove insn patterns.
309
310         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
311         truncation patterns.
312
313         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP. 
314         
315 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
316
317         PR c/29955
318         * c-tree.h (c_maybe_initialize_eh): New prototype.
319         * c-decl.c (finish_decl): Move EH initialization...
320         (c_maybe_initialize_eh): ... here.  New function.
321         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
322         if not #pragma omp atomic.
323
324         PR c/29736
325         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
326         or UNION_TYPE inner types.
327
328 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
329
330         PR tree-opt/29964
331         * ipa-pure-const.c (check_tree): If the original tree
332         is volatile return early and say the function is not pure
333         nor const.  Remove the volatile check for writes.  
334         (analyze_function): Print out the result of the local
335         analysis pass.
336
337 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
338
339         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
340         MASK_STRICT_ALIGN.
341         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
342         * config/rs6000/rs6000.c (rs6000_override_options): Use
343         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
344         POWERPC_MASKS.
345
346 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
347
348         * config/s390.c (s390_emit_compare_and_swap): New function.
349         (s390_expand_cs_hqi, s390_expand_atomic): Call 
350         s390_emit_compare_and_swap.
351
352 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
353
354         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
355
356 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
357
358         PR c/2707
359         PR c++/26167
360         * c-common.c (conversion_warning): New.
361         (convert_and_check): Call conversion_warning unless there is an
362         overflow warning.
363         * doc/invoke.texi (-Wconversion): Update description.
364
365 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
366
367         * tree-ssa-alias.c (tree_pointer_compare): New function.
368         (compact_name_tags): New function.
369         (group_aliases): Call compact_name_tags.
370
371 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
372
373         * real.h (real_isinteger): Declare.
374         * real.c (real_isinteger): Define.
375         * builtins.c (integer_valued_real_p): Use it.
376
377 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
378
379         PR c/9072 
380         * c.opt (Wtraditional-conversion): New.
381         (Wconversion): Update description.
382         * c-typeck.c (convert_arguments): Warnings for prototypes causing
383         type conversions different from what would happen in the absence
384         of prototype are now handled by Wtraditional-conversion.
385         * doc/invoke.texi (Wtraditional-conversion): New.
386         (Wconversion): Update description.
387         * doc/trouble.texi (Wconversion): Replace Wconversion by
388         Wtraditional-conversion.
389
390 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
391
392         * predict.c (tree_estimate_probability): Check to make
393         sure current_loops is non null before calling flow_loops_dump.
394
395 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
396
397         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
398
399 2006-11-23  David Ung  <davidu@mips.com>
400
401         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
402         combination.
403         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
404         (ASM_SPEC): Pass along -mfp32 and -mfp64.
405         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
406         high part of FP register when in 64-bit FP register mode.  Similarly
407         use gen_mfhc1 to load high part of FP register.
408         (override_options): Allow -mgp32 and -mfp64 combination if
409         ISA_HAS_MXHC1 (currently for O32 only).
410         (mips_cannot_change_mode_class): If floating-point registers are
411         bigger than word size. disallow conversion of float register from a
412         large integer mode to a float mode smaller than the float register
413         size.
414         (mips_class_max_nregs): Handle float registers case seperately.
415         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
416         UNSPEC_MTHC1.
417         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
418         (movdf_hardfloat_32bit): Similarly.
419         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
420         support a full 64-bit fpu.
421         (mthc1): New pattern to generate MTHC1 instruction.
422         (mfhc1): New pattern to generate MFHC1 instruction.
423         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
424         option for the MIPS32R2 and mention its use under O32 ABI.
425
426 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
427
428         * var-tracking.c (emit_note_insn_var_location): Take care not to
429         cause verify_flow_info failures.
430
431 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
432
433         * tree-ssa-structalias.c: Remove edge weights in favor of just
434         processing them as complex constraints.
435         (struct constraint_graph): Remove weighted succs and preds. Rename
436         nonweighted succs and preds.
437         (constraint_edge): Removed.
438         (constraint_edge_t): Ditto.
439         (constraint_edge_pool): Ditto.
440         (new_constraint_edge): Ditto.
441         (constraint_edge_equal): Ditto.
442         (constraint_edge_less): Ditto.
443         (constraint_edge_vec_find): Ditto.
444         (erase_self_graph_edge): Ditto.
445         (add_graph_edge): Removed.
446         (get_graph_weights): Ditto.
447         (allocate_graph_weights): Ditto.
448         (valid_weighted_graph_edge): Ditto
449         (bitmap_other_than_zero_bit_set): Ditto.
450         (int_add_graph_edge): Renamed to add_graph_edge.
451         (clear_edges_for_node): Remove support for weighted edges.
452         (merge_graph_nodes): Ditto.
453         (valid_graph_edge): Ditto.
454         (build_constraint_graph): Ditto.
455         (scc_visit): Ditto.
456         (collapse_nodes): Ditto.
457         (process_unification_queue): Ditto.
458         (topo_visit): Ditto.
459         (do_ds_constraint): Ditto.
460         (perform_var_subsitution): Ditto.
461         (solve_graph): Ditto.
462         (init_alias_vars): Ditto.
463         (delete_points_to_sets): Ditto.
464         (do_complex_constraint): Support offsetted copies here.
465
466 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
467
468         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
469         SPU_RdEventMask.
470         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
471
472         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
473         of size bitfield.
474
475 2006-11-23  Ben Elliston  <bje@au.ibm.com>
476
477         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
478
479 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
480
481         PR tree-optimization/29921
482         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
483         signed and unsigned zero equal.
484
485 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
486
487         * config/rs6000/rs6000.c (get_store_dest): New.
488         (adjacent_mem_locations): Use get_store_dest() to get
489         the rtl of the store destination.
490
491 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
492
493         * config/rs6000/spe.md (SPE64): New mode macro.
494         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
495         memory load.
496         (mov_si<mode>_e500_subreg0_2): New.
497         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
498         memory load.
499         (mov_si<mode>_e500_subreg4_2): New.
500         * config/rs6000/predicates.md (input_operand): Do not allow
501         invalid E500 subregs.
502         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
503         if TARGET_SPE.
504         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
505         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
506         involving vector modes if TARGET_SPE.
507
508 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
509
510         Revert
511         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
512         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
513
514 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
515
516         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
517         mem_i_address_operand): New predicates.
518         * config/bfin/bfin.c (bfin_issue_rate): New function.
519         (TARGET_SCHED_ISSUE_RATE): New macro.
520         * config/bfin/bfin.md (addrtype): New attribute.
521         (slot0, slot1, slot2, store, pregs): New cpu_units.
522         (core): Now a define_reservation.
523         (alu): Remove some insn types from this reservation.
524         (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
525         insn reservations.
526         (dummy reservation): Don't trigger for mcld insns.
527         (absence_sets): Two new absence sets to enforce slot ordering.
528         (popsi_insn): Set addrtype.
529
530 2006-11-22  Ira Rosen  <irar@il.ibm.com>
531
532         * doc/c-tree.texi: Document new tree codes.
533         * doc/md.texi: Document new optabs.
534         * tree-pretty-print.c (dump_generic_node): Handle print of new tree
535         codes.
536         * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
537         * optabs.h (optab_index): Add new.
538         (vec_extract_even_optab, vec_extract_odd_optab,
539         vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
540         * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
541         vec_interleave_high_optab, vec_interleave_low_optab): Initialize
542         new optabs.
543         * expr.c (expand_expr_real_1): Add implementation for new tree codes.
544         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
545         * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
546         along with macros for their access.
547         * tree-data-ref.h (first_location_in_loop, data_reference): Update
548         comment.
549         * tree-vect-analyze.c (toplev.h): Include.
550         (vect_determine_vectorization_factor): Fix indentation.
551         (vect_insert_into_interleaving_chain,
552         vect_update_interleaving_chain, vect_equal_offsets): New functions.
553         (vect_analyze_data_ref_dependence): Add argument for interleaving
554         check. Check for interleaving if it's true.
555         (vect_check_dependences): New function.
556         (vect_analyze_data_ref_dependences): Call vect_check_dependences for
557         every ddr. Call vect_analyze_data_ref_dependence with new argument.
558         (vect_update_misalignment_for_peel): Update for interleaving.
559         (vect_verify_datarefs_alignment): Check only first data-ref for
560         interleaving.
561         (vect_enhance_data_refs_alignment): Update for interleaving. Check
562         only first data-ref for interleaving.
563         (vect_analyze_data_ref_access): Check interleaving, update
564         interleaving data.
565         (vect_analyze_data_refs): Call compute_data_dependences_for_loop
566         with different parameters.
567         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
568         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
569         * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
570         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
571         Update step in case of interleaving.
572         (vect_strided_store_supported, vect_permute_store_chain): New
573         functions.
574         (vectorizable_store): Handle strided stores.
575         (vect_strided_load_supported, vect_permute_load_chain,
576         vect_transform_strided_load): New functions.
577         (vectorizable_load): Handle strided loads.
578         (vect_transform_stmt): Add argument. Handle strided stores. Check
579         that vectorized stmt exists for patterns.
580         (vect_gen_niters_for_prolog_loop): Update calculation for
581         interleaving.
582         (vect_transform_loop): Remove stmt_vec_info for strided stores after
583         whole chain vectorization.
584         * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
585         UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
586         (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
587         vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
588         vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
589
590 2006-11-22  Steven Bosscher  <steven@gcc.gnu.org>
591
592         * cse.c (enum taken): Remove PATH_AROUND.
593         (addr_affects_sp_p, invalidate_skipped_set,
594         invalidate_skipped_block): Remove.
595         (cse_end_of_basic_block): Remove skip_blocks and related code.
596         (cse_main): Don't test for flag_cse_skip_blocks.
597         Update cse_end_of_basic_block call.
598         (cse_basic_block): Likewise.  Remove PATH_AROUND case.  Remove
599         code to lengthen the path if a jump was simplified.
600
601 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
602
603         PR rtl-optimization/29924
604         * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
605         (unroll_loop_runtime_iterations): Assert that the argument passed to
606         split_edge_and_insert is not NULL.
607         * loop-doloop.c (add_test): Ditto.
608
609 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
610
611         * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
612         functions.
613         * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
614         * cfgloopmanip.c (update_single_exits_after_duplication,
615         update_single_exit_for_duplicated_loop, loop_version): Ditto.
616         * tree-scalar-evolution.c (get_loop_exit_condition,
617         get_exit_conditions_rec, loop_closed_phi_def,
618         number_of_iterations_in_loop, scev_const_prop): Ditto.
619         * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
620         * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
621         Ditto.
622         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
623         Ditto.
624         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
625         slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
626         slpeel_make_loop_iterate_ntimes,
627         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
628         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
629         Ditto.
630         * tree-if-conv.c (if_convertible_loop_p): Ditto.
631         * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
632         vect_analyze_loop_form): Ditto.
633         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
634         can_convert_to_perfect_nest, perfect_nestify): Ditto.
635         * tree-vect-transform.c (vect_create_epilog_for_reduction,
636         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
637         vect_transform_loop): Ditto.
638         * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
639         (single_exit, set_single_exit): New functions.
640         * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
641         (single_exit, set_single_exit): Declare.
642         * doc/loop.texi: Undocument single_exit field.  Document single_exit
643         accessor function.
644
645 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
646
647         PR tree-optimization/29902
648         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
649         any involved ssa name appears in abnormal phi node.
650
651 2006-11-21  Bob Wilson  <bob.wilson@acm.org>
652
653         * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
654         (xtensa_const_ok_for_letter_p): Delete.
655         (xtensa_extra_constraint): Delete.
656         (override_options): Delete xtensa_char_to_class initialization.
657         * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
658         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
659         (EXTRA_CONSTRAINT): Delete.
660         * config/xtensa/xtensa.md: Include constraints.md.
661         (call_internal): Combine alternatives.
662         (call_value_internal): Likewise, and remove invalid constraints.
663         * config/xtensa/constraints.md: New file.
664         * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
665         (xtensa_extra_constraint): Delete.
666         * doc/md.texi (Machine Constraints): Refer to constraints.md for
667         Xtensa constraints.
668
669 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
670
671         * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
672         of conversion that doesn't fit.
673
674         * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
675         * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
676         DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
677
678         * config/dfp-bit.c (dfp_binary_func): Fix typedef.
679
680 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
681
682         * c-common.h (enum rid): Add RID_STATIC_ASSERT.
683
684 2006-11-21  Richard Guenther  <rguenther@suse.de>
685
686         * tree-vectorizer.h (NUM_PATTERNS): Increase.
687         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
688         vect_recog_pow_pattern.
689         (vect_recog_pow_pattern): New function.
690
691 2006-11-21  Bernd Schmidt  <bernd.schmidt@analog.com>
692
693         * config/bfin/bfin.opt (mstack-check-l1): New.
694         * doc/invoke.texi (Blackfin Options): Document it.
695         * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
696         stack bounds in L1 memory if the new option is enabled.
697         (override_options): Don't allow combinations of -fstack-limit and
698         -mstack-check-l1.
699         (add_to_reg): Renamed from add_to_sp.  All callers changed.  Lose some
700         dead code.
701
702         * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
703         regs for DImode.
704         (bfin_register_move_cost): Bump costs if trying to move plain
705         integer values through accumulators.
706
707 2006-11-21  Ben Elliston  <bje@au.ibm.com>
708
709         * config/spu/spu.c (spu_expand_vector_init): Initialise x.
710
711 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
712             Russell Olsen <Russell_Olsen@playstation.sony.com>
713             Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
714             Yukishige Shibata <shibata@rd.scei.sony.co.jp>
715             Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
716             Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
717             Andrew Pinski <Andrew_Pinski@playstation.sony.com>
718
719         * config.gcc: Add target for SPU.
720         * config/spu/constraints.md: New file.
721         * config/spu/crt0.c: New file.
722         * config/spu/crtend.c: New file.
723         * config/spu/crti.asm: New file.
724         * config/spu/crtn.asm: New file.
725         * config/spu/float_unsdidf.c: New file.
726         * config/spu/float_unssidf.c: New file.
727         * config/spu/predicates.md: New file.
728         * config/spu/spu-builtins.def: New file.
729         * config/spu/spu-builtins.h: New file.
730         * config/spu/spu-builtins.md: New file.
731         * config/spu/spu-c.c: New file.
732         * config/spu/spu-elf.h: New file.
733         * config/spu/spu-modes.def: New file.
734         * config/spu/spu-protos.h: New file.
735         * config/spu/spu.c: New file.
736         * config/spu/spu.h: New file.
737         * config/spu/spu.md: New file.
738         * config/spu/spu.opt: New file.
739         * config/spu/spu_internals.h: New file.
740         * config/spu/spu_intrinsics.h: New file.
741         * config/spu/spu_mfcio.h: New file.
742         * config/spu/t-spu-elf: New file.
743         * config/spu/vec_types.h: New file.
744         * config/spu/vmx2spu.h: New file.
745         * doc/contrib.texi: Document SPU contributor.
746         * doc/extend.texi: Document SPU extensions.
747         * doc/invoke.texi: Document SPU options.
748         * doc/md.texi: Document SPU constraints.
749
750 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
751
752         * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
753         of the loop.
754         * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
755         Removed.
756         (flow_loop_dump): Do not dump loop level.
757         (flow_loops_find): Do not call flow_loops_level_compute.
758         * cfgloop.h (struct loop): Remove level field.
759
760 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
761
762         * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
763         hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
764         Use vector of edges instead of array.
765         * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
766         estimate_numbers_of_iterations_loop): Ditto.
767         * predict.c (predict_loops): Ditto.
768         * loop-unroll.c (analyze_insns_in_loop): Ditto.
769         * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
770         edge vectors.
771         * basic-block.h: Declare heap allocation for edge vectors.
772         * tree-outof-ssa.c: Ditto.
773         * cfgloop.c (get_loop_exit_edges): Return vector of edges.
774         * cfgloop.h (get_loop_exit_edges): Declaration changed.
775
776 2006-11-20  Zack Weinberg  <zackw@panix.com>
777
778         * gengtype.c (process_gc_options): Remove unnecessary forward decl.
779         Add another out parameter, "skip".
780         (set_gc_used_type): Adjust calls to process_gc_options.  If a field
781         is tagged "skip", do not mark its type used.
782
783 2006-11-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
784
785         PR tree-opt/25500
786         * tree-sra.c (single_scalar_field_in_record_p): New function.
787         (decide_block_copy): Use it.
788
789 2006-11-20  David Daney  <ddaney@avtrex.com>
790
791         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
792         PC to point to following instruction.
793
794 2006-11-20  Anatoly Sokolov <aesok@post.ru>
795
796         PR target/18553
797         PR target/29449
798         * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
799
800         * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
801
802 2006-11-20  J"orn Rennecke  <joern.rennecke@st.com>
803
804         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
805         Add sh/superh.h to tm_file.
806
807 2006-11-20  Carlos O'Donell  <carlos@codesourcery.com>
808             Mark Mitchell  <mark@codesourcery.com>
809
810         * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and 
811         gcc_exec_prefix.
812         (cpp_relocated): New function.
813         * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix 
814         and cpp_relocated. 
815         * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
816         * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
817         replace configured prefix with gcc_exec_prefix. 
818
819 2006-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
820
821         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
822         bfin_legitimate_constant_p.
823         * config/bfin/bfin.md (movsi expander): Check return value of
824         expand_mvoe.
825         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
826         (expand_move): Adjust prototype.
827         * config/bfin/bfin.c (expand_move): Now returns bool.  Handle
828         invalid constants specially.
829         (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
830         functions.
831         (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
832
833         * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
834         sibcall_value_symbol): Allow these patterns if
835         TARGET_LEAF_ID_SHARED_LIBRARY.
836         * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
837         (override_options): Turn on id shared library flags if -msep-data,
838         but disallow the combination of these options on the command line.
839         * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
840         MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
841         (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
842         -mid-shared-library.
843         (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
844         * doc/invoke.texi (Blackfin Options): Document new switches.
845
846         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
847         edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
848
849         * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
850         inflate costs for addresses with an out-of-bounds address.
851
852 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
853
854         PR rtl-opt/29879
855         * fwprop.c (loops): Remove.
856         (forward_propagate_into): Use current_loops instead of
857         loops.
858         (fwprop_init): Call loop_optimizer_init instead of
859         flow_loops_find.
860         (fwprop_done): Call loop_optimizer_finalize instead of
861         flow_loops_free.
862         (fwprop): Use current_loops instead of loops.
863
864 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
865
866         PR c++/8586
867         * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
868
869 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
870
871         PR target/29114
872         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
873         larger than BITS_PER_WORD.
874
875 2006-11-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
876
877         PR fortran/27885
878         PR middle-end/28176
879         * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
880         to MAX_FIXED_MODE_SIZE.
881
882 2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
883
884         * builtins.c (integer_valued_real_p): Handle fmin/fmax.
885         (fold_builtin_fmin_fmax): New.
886         (fold_builtin_1): Use it.
887
888         * fold-const.c (fold_strip_sign_ops): Handle copysign.
889
890 2006-11-18  Richard Guenther  <rguenther@suse.de>
891
892         * config/i386/i386.c (ix86_builtins): New array for ix86
893         builtin function decls.
894         (def_builtin): New function.
895         (def_builtin_const): Likewise.
896         (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
897
898 2006-11-18  Vladimir Makarov  <vmakarov@redhat.com>
899
900         * doc/invoke.texi (core2): Add item.
901
902         * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
903         macros.
904         (TARGET_CPU_CPP_BUILTINS): Add code for core2.
905         (TARGET_CPU_DEFAULT_generic): Change value.
906         (TARGET_CPU_DEFAULT_NAMES): Add core2.
907         (processor_type): Add new constant PROCESSOR_CORE2.
908
909         * config/i386/i386.md (cpu): Add core2.
910
911         * config/i386/i386.c (core2_cost): New initialized variable.
912         (m_CORE2): New macro.
913         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
914         x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
915         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
916         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
917         x86_partial_reg_dependency, x86_memory_mismatch_stall,
918         x86_accumulate_outgoing_args, x86_prologue_using_move,
919         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
920         x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
921         x86_use_incdec, x86_four_jump_limit, x86_schedule,
922         x86_pad_returns): Add m_CORE2.
923         (override_options): Add entries for Core2.
924         (ix86_issue_rate): Add case for Core2.
925         
926 2006-11-18  Aldy Hernandez  <aldyh@redhat.com>
927
928         * doc/invoke.texi: Fix mno-isel typo.
929
930 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
931
932         * config/rs6000/spe.md (movv4hi_internal): Add alternative for
933         easy vector constant loads.
934
935 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
936
937         * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
938         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
939         __NO_LWSYNC__ if TARGET_NO_LWSYNC.
940         * config/rs6000/sync.md (lwsync): Emit plain sync if
941         TARGET_NO_LWSYNC.
942
943 2006-11-17  DJ Delorie  <dj@redhat.com>
944
945         * reload1.c (reloads_unique_chain): New.
946         (reloads_conflict): Call it.
947
948 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
949
950         * config/xtensa/predicates.md (addsubx_operand): New.
951         * config/xtensa/xtensa.c (xtensa_emit_branch): New.
952         (xtensa_emit_bit_branch): New.
953         (xtensa_emit_movcc): New.
954         * config/xtensa/xtensa.md (any_minmax): New code macro.
955         (minmax): New code attribute.
956         (any_cond, any_scc, any_scc_sf): New code macros.
957         (*addx2, *addx4, *addx8): Delete.
958         (*addx): New.
959         (*subx2, *subx4, *subx8): Delete.
960         (*subx): New.
961         (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
962         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
963         (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
964         (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
965         (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
966         (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
967         (movsfcc_internal0, movsfcc_internal1): Likewise.
968         (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
969         * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
970         (xtensa_emit_bit_branch): New.
971         (xtensa_emit_movcc): New.
972         (function_arg_boundary): Add missing prototype.
973
974 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
975
976         * config/xtensa/xtensa.md (tstsi): Delete
977
978 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
979
980         * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
981
982 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
983
984         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
985
986 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
987
988         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
989
990 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
991
992         * tree-vrp.c (execute_vrp): Do not update current_loops.
993         * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
994         * doc/loop.texi: Remove documentation for cancelled functions.
995         * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
996         (move_computations, determine_lsm): Use bsi_commit_edge_inserts
997         instead.
998         * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
999         (remove_path): Ensure that in delete_basic_blocks, the loops
1000         are still allocated.
1001         (add_loop): Work on valid loop structures.
1002         (loopify): Modify call of add_loop.
1003         (mfb_update_loops): Removed.
1004         (create_preheader): Do not update loops explicitly.
1005         (force_single_succ_latches, loop_version): Do not use
1006         loop_split_edge_with.
1007         (loop_split_edge_with): Removed.
1008         * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
1009         Do not use bsi_insert_on_edge_immediate_loop.
1010         (split_loop_exit_edge, tree_unroll_loop): Do not use
1011         loop_split_edge_with.
1012         (bsi_insert_on_edge_immediate_loop): Removed.
1013         * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
1014         use loop_split_edge_with.
1015         * cfghooks.c: Include cfgloop.h.
1016         (verify_flow_info): Verify that loop_father is filled iff current_loops
1017         are available.
1018         (redirect_edge_and_branch_force, split_block, delete_basic_block,
1019         split_edge, merge_blocks, make_forwarder_block, duplicate_block):
1020         Update cfg.
1021         * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
1022         no loops.
1023         * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
1024         loop_split_edge_with.
1025         (sms_schedule): Use current_loops.
1026         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
1027         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
1028         current_loops.
1029         (rtl_loop_init, rtl_loop_done): Do not set current_loops.
1030         * tree-ssa-sink.c (execute_sink_code): Use current_loops.
1031         * ifcvt.c (if_convert): Ditto.
1032         * predict.c (predict_loops): Do not clear current_loops.
1033         (tree_estimate_probability): Use current_loops.
1034         (propagate_freq): Receive head of the region to propagate instead of
1035         loop.
1036         (estimate_loops_at_level): Do not use shared to_visit bitmap.
1037         (estimate_loops): New function.  Handle case current_loops == NULL.
1038         (estimate_bb_frequencies): Do not allocate tovisit.  Use
1039         estimate_loops.
1040         * tree-ssa-loop.c (current_loops): Removed.
1041         (tree_loop_optimizer_init): Do not return loops.
1042         (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
1043         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
1044         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
1045         Do not update loops explicitly.
1046         * function.h (struct function): Add x_current_loops field.
1047         (current_loops): New macro.
1048         * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
1049         * loop-unroll.c (split_edge_and_insert): New function.
1050         (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
1051         use loop_split_edge_with.
1052         * loop-doloop.c (add_test, doloop_modify): Ditto.
1053         * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
1054         * cfglayout.c (copy_bbs): Do not update loops explicitly.
1055         * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
1056         * tree-vect-transform.c (vect_transform_loop): Do not update loops
1057         explicitly.
1058         * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
1059         (flow_loops_free): Do not free dfs_order and rc_order.
1060         (flow_loops_find): Do not set dfs_order and rc_order in loops
1061         structure.  Do not call loops and flow info verification.
1062         (add_bb_to_loop, remove_bb_from_loops): Check whether the block
1063         already belongs to some loop.
1064         * cfgloop.h (struct loops): Remove struct cfg.
1065         (current_loops, loop_split_edge_with): Declaration removed.
1066         (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
1067         * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
1068         Declaration removed.
1069         * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
1070         * basic-block.h (split_edge_and_insert): Declare.
1071         * tree-cfg.c (remove_bb): Do not update loops explicitly.
1072
1073 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1074
1075         PR tree-optimization/29801
1076         * tree-ssa-ccp.c (get_symbol_constant_value): New function.
1077         (get_default_value): Use get_symbol_constant_value.
1078         (set_lattice_value): ICE when the value of the constant is
1079         changed.
1080         (visit_assignment): Ignore VDEFs of read-only variables.
1081
1082 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1083
1084         * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
1085         formating.
1086         (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1087         vect_gen_niters_for_prolog_loop): Fold the emited expressions.
1088
1089 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1090
1091         * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
1092         select subvars of var.
1093
1094 2006-11-17  Jakub Jelinek  <jakub@redhat.com>
1095
1096         PR middle-end/29584
1097         * tree-ssa-forwprop.c (simplify_switch_expr): Don't
1098         optimize if DEF doesn't have integral type.
1099
1100 2006-11-16  Mike Stump  <mrs@apple.com>
1101
1102         * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
1103         pre-darwin9 system, unless the user asks for it directly.
1104         (PREFERRED_DEBUGGING_TYPE): Likewise.
1105         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1106         * config.gcc: Add suppport for darwin9.h.
1107         * config/darwin9.h: Add.
1108         * doc/install.texi (Specific): Clarify darwin documentation.
1109         
1110 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1111
1112         * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
1113         optimizing for size.
1114
1115 2006-11-16  Mike Stump  <mrs@apple.com>
1116
1117         * Makefile.in (targhooks.o): Add $(OPTABS_H).
1118
1119 2006-11-16  Dirk Mueller  <dmueller@suse.de>
1120
1121         * tree-vrp.c (get_value_range): Use XCNEW instead
1122         of XNEW and memset.
1123         (insert_range_assertions): Use XCNEWVEC instead
1124         of XNEWVEC and memset.
1125         (vrp_initialize): Same.
1126         (vrp_finalize): Same.
1127         * tree-ssa-ccp.c (ccp_initialize): Same.
1128         * predict.c (tree_bb_level_predictions): Same.
1129         * calls.c (expand_call): Same.
1130         * tree-ssa-copy.c (init_copy_prop): Same.
1131         (fini_copy_prop): Same.
1132         * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
1133         of GGC_NEW and memset.
1134
1135 2006-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1136
1137         PR middle-end/26306
1138         * gimplify.c (gimplify_expr): Only force a load for references to
1139         non-BLKmode volatile values.
1140         * doc/implement-c.texi (Qualifiers implementation): Document the
1141         interpretation of what a volatile access is.
1142         * doc/extend.texi (C++ Extensions): Rework same documentation.
1143
1144 2006-11-16  Joseph Myers  <joseph@codesourcery.com>
1145
1146         * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
1147         memory operand.
1148
1149 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1150
1151         * arm.md (abssi2): Allow Thumb as well.  Use an SImode scratch for
1152         Thumb.
1153         (arm_neg_abssi2): Renamed from neg_abssi2.
1154         (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
1155
1156 2006-11-16  Uros Bizjak  <ubizjak@gmail.com>
1157
1158         * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
1159         number of arguments passed to local functions in SSE registers is 3.
1160
1161         * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
1162         number of arguments passed in SSE registers to 3.
1163
1164 2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1165
1166         PR target/29201
1167         * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
1168         bb to ...
1169         (get_last_bb_insn): ... new global function.
1170         (basic_block.h): Declare it.
1171         * haifa-sched.c (create_recovery_block): Use it.
1172
1173 2006-11-15  H.J. Lu  <hongjiu.lu@intel.com>
1174
1175         PR middle-end/29862
1176         * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
1177
1178 2006-11-15  Paul Brook  <paul@codesourcery.com>
1179
1180         * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
1181         _Unwind_GetTextRelBase): Move from here ...
1182         * config/arm/pr-support.c (_Unwind_GetDataRelBase,
1183         _Unwind_GetTextRelBase): ... To here.
1184
1185 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1186
1187         * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
1188         addresses we generate for testing are aligned.
1189
1190 2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1191
1192         PR tree-opt/29788
1193         * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
1194         to what is the const decl is a place holder for.
1195
1196 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
1197
1198         * config/i386/i386.opt: New target option -mx87regparm.
1199
1200         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
1201         and float_in_x87 variables. mmx_words, sse_words: Remove.
1202         (X87_REGPARM_MAX): Define.
1203
1204         * config/i386/i386.c (override_options): Error out for
1205         -mx87regparm but no 80387 support.
1206         (ix86_attribute_table): Add x87regparm.
1207         (ix86_handle_cconv_attribute): Update comments for x87regparm.
1208         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
1209         (ix86_function_x87regparm): New function.
1210         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
1211         point registers.
1212         (init_cumulative_args): Initialize x87_nregs and float_in_x87
1213         variables.
1214         (function_arg_advance): Process x87_nregs and x87_regno when
1215         floating point argument is to be passed in 80387 register.
1216         (function_arg): Pass XFmode arguments in 80387 registers for local
1217         functions.  Pass SFmode and DFmode arguments to local functions
1218         in 80387 registers when flag_unsafe_math_optimizations is set.
1219
1220         * reg-stack.c (convert_regs_entry): Disable NaN load for
1221         stack registers that are used for argument passing.
1222
1223         * doc/extend.texi: Document x87regparm function attribute.
1224         * doc/invoke.texi: Document -mx87regparm.
1225
1226 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1227
1228         * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
1229         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
1230         arg MODE; all callers changed.  Use it to determine validity per
1231         machine mode instead of using Pmode for all memory references.
1232         (get_address_cost): Likewise add and use new arg MEM_MODE.
1233
1234 2006-11-15  Rask Ingemann Lambertsen <rask@sygehus.dk>
1235             J"orn Rennecke <joern.rennecke@st.com>
1236
1237         * combine.c (likely_spilled_retval_1): Fix masking operation.
1238         (likely_spilled_retval_p): Use proper pattern for call to
1239         likely_spilled_retval_1.
1240
1241 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1242
1243         * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
1244
1245         * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
1246         that tests for CONSTANT_POOL_ADDRESS_P.
1247
1248 2006-11-15  Jakub Jelinek  <jakub@redhat.com>
1249
1250         PR tree-optimization/29581
1251         * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
1252         REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
1253         type is different between Y and USE, create a temporary
1254         variable, initialize it at the beginning of the body bb
1255         and use it as replacement instead of Y.
1256
1257 2006-11-15  Paolo Bonzini  <bonzini@gnu.org>
1258
1259         PR middle-end/29753
1260         * gimplify.c (fold_indirect_ref_rhs): Use
1261         STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
1262
1263 2006-11-14  Richard Earnshaw  <rearnsha@arm.com>
1264
1265         * expmed.c (emit_store_flag_1): New function.
1266         (emit_store_flag): Call it.  If we can't find a suitable scc insn,
1267         try a cstore insn.
1268         * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
1269         Use do_compare_rtx_and_jump.
1270         * arm.h (BRANCH_COST): Increase to 2 on Thumb.
1271         * arm.md (cstoresi4): New define_expand.
1272         (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
1273         (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
1274         (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
1275
1276 2006-11-14  Caroline Tice  <ctice@apple.com>
1277                 
1278         * dwarf2out.c (debug_pubtypes_section): New static global variable.
1279         (pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
1280         this type.
1281         (pubname_table):  Redefine as a vector.
1282         (pubtype_table):  New static global variable, defined as a vector.
1283         (pubname_table_allocated): Remove static global variable.
1284         (pubname_table_in_use): Remove static global variable.
1285         (PUBNAME_TABLE_INCREMENT): Remove constant.
1286         (size_of_pubnames): Add parameter to deal with either pubnames or 
1287         pubtypes, and change code to deal with table being a vector.
1288         (add_pubname):  Change to deal with table being a vector.
1289         (add_pubtype):  New function.
1290         (output_pubnames): Add parameter to deal with either pubnames or 
1291         pubtypes, and change code to deal with table being a vector.
1292         (gen_array_type_die):  Add call to add_pubtype.
1293         (gen_enumeration_type_die): Add call to add_pubtype.
1294         (gen_struct_or_union_type_die): Add call to add_pubtype.
1295         (gen_subroutine_type_die): Add call to add_pubtype.
1296         (gen_typedef_die):  Add call to add_pubtype.
1297         (dwarf2out_init): Add code to initialize pubname_table and 
1298         pubtype_table vectors; also initialize debug_pubtypes_section.
1299         (prune_unused_types):  Change to deal with pubnames being a vector.
1300         (dwarf2out_finish): Change to deal with pubnames being a vector; add 
1301         pubnames table to call to output_pubnames;  Add code to output pubtypes 
1302         table if DEBUG_PUBTYPES_SECTION is defined.
1303         * config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to 
1304         debugnames.
1305         * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
1306
1307 2006-11-14  Joseph Myers  <joseph@codesourcery.com>
1308
1309         * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
1310         iwmmxt_nregs if TARGET_IWMMXT_ABI.
1311         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1312         movv2si_internal): Support moves between core registers.
1313
1314 2006-11-14  Eric Christopher  <echristo@apple.com>
1315
1316         * configure: Regenerate with autoconf 2.59.
1317
1318 2006-11-14  Daniel Berlin  <dberlin@dberlin.org>
1319
1320         Fix PR tree-optimization/27755
1321
1322         * tree-ssa-pre.c: Update comments.
1323         (bb_bitmap_sets): Add pa_in and  deferred member.
1324         (BB_DEFERRED): New macro.
1325         (maximal_set): New variable.
1326         (pre_stats): Add pa_insert member.
1327         (bitmap_set_and): Short circuit orig == dest.
1328         (bitmap_set_subtract_values): New function.
1329         (bitmap_set_contains_expr): Ditto.
1330         (translate_vuses_through_block): Add phiblock argument.
1331         (dependent_clean): New function.
1332         (compute_antic_aux): Update for maximal_set changes.
1333         (compute_partial_antic_aux): New function.
1334         (compute_antic): Handle partial anticipation.
1335         (do_partial_partial_insertion): New function.
1336         (insert_aux): Handle partial anticipation.
1337         (add_to_sets): Add to maximal set.
1338         (compute_avail): Ditto.
1339         (init_pre): Initialize maximal_set.
1340         (execute_pre): Do partial anticipation if -O3+.
1341
1342 2006-11-14  Paolo Bonzini  <bonzini@gnu.org>
1343
1344         PR rtl-optimization/29798
1345
1346         * fwprop.c (use_killed_between): Check that DEF_INSN dominates
1347         TARGET_INSN before any other check.
1348         (fwprop_init): Always calculate dominators.
1349         (fwprop_done): Always free them.
1350
1351 2006-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1352
1353         * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
1354         COND_EXPR.
1355
1356 2006-11-13  DJ Delorie  <dj@redhat.com>
1357
1358         * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
1359         temporary for intermediates.
1360
1361 2006-11-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1362
1363         * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
1364         (sh_optimize_target_register_callee_saved): #if 0 the code
1365         using NOTE_INSN_LOOP_{BEG,END}.
1366
1367 2006-11-13  Roger Sayle  <roger@eyesopen.com>
1368
1369         * fold-const.c (optimize_bit_field_compare): Recursively call
1370         fold when simplifying non-constant comparisons between bit-fields.
1371
1372 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
1373
1374         * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
1375         test.
1376         * configure: Rebuilt.
1377
1378 2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1379
1380         * config/rs6000/cell.md: New file.
1381         * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
1382         variable.
1383         (ppccell_cost): New cost matrix.
1384         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
1385         (rs6000_override_options): Set rs6000_always_hint to false
1386         for cell. Also align functions/lables/loops to 8byte
1387         for the Cell. Use PROCESSOR_CELL.
1388         (rs6000_emit_epilogue): Rename using_mfcr_multiple to
1389         using_mtcr_multiple.
1390         (rs6000_variable_issue): If the insn is a nonpipelined instruction
1391         on the Cell, return 0.
1392         (rs6000_adjust_cost): Add Cell cost adjustments.
1393         (is_microcoded_insn): Return true for Cell microcoded
1394         instructions.
1395         (is_nonpipeline_insn): New function.
1396         (rs6000_issue_rate): Add PROCESSOR_CELL.
1397         (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
1398         instructions.
1399         (rs6000_use_sched_lookahead_guard): New function.
1400         (rs6000_sched_reorder):  Reorder the ready list, if the second
1401         to last ready insn is a nonepipeline insn on the Cell.
1402         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
1403         (ASM_CPU_SPEC): Add Cell.
1404         * config/rs6000/rs6000.md (cpu): Add Cell.
1405         (cell_micro): New Attr.
1406         Include cell.md
1407
1408 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
1409
1410         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
1411         style versions.
1412         * configure: Rebuilt.
1413
1414 2006-11-13  Richard Guenther  <rguenther@suse.de>
1415
1416         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
1417         return value.
1418         (ix86_expand_lfloorceil): Likewise.
1419         (ix86_expand_rint): Likewise.
1420         (ix86_expand_floorceildf_32): Likewise.
1421         (ix86_expand_floorceil): Likewise.
1422         (ix86_expand_rounddf_32): Likewise.
1423         (ix86_expand_truncdf_32): Likewise.
1424         (ix86_expand_round): Likewise.
1425
1426 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
1427             Mark Mitchell  <mark@codesourcery.com>
1428
1429         * gcc.c: Organize search path variables into $prefix relative,
1430         and well-known native. Add comments.
1431         (add_sysrooted_prefix): Add comment.
1432         (process_command): If !gcc_exec_prefix add $prefix based paths.
1433         If *cross_compile == '0', add native well-known paths.
1434         Assert tooldir_base_prefix is always relative.
1435         (main): If print_search_dirs, and if gcc_exec_prefix is set,
1436         use this value for 'install:' path.
1437         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
1438
1439 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
1440
1441         * config/i386/i386.c: Fix a typo in comment.
1442
1443 2006-11-13  Michael Matz  <matz@suse.de>
1444
1445         * genemit.c (gen_expand): Allocate enough memory.
1446
1447 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
1448
1449         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
1450         __GXX_TYPEINFO_EQUALITY_INLINE but not
1451         __GXX_MERGED_TYPEINFO_NAMES.
1452         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
1453         __GXX_MERGED_TYPEINFO_NAMES.
1454         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1455         __GXX_TYPEINFO_EQUALITY_INLINE.
1456
1457 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
1458             Zdenek Dvorak <dvorakz@suse.cz>
1459
1460         PR tree-optimization/29680
1461         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
1462         PR 14784.
1463
1464 2006-11-12  Jason Merrill  <jason@redhat.com>
1465             Andrew Pinski <pinskia@physics.uc.edu>
1466
1467         PR middle-end/28915
1468         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
1469         vector ctors.
1470         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
1471         vector ctors.
1472         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
1473         * tree.c (build_vector): Handle non-_CST elements.
1474
1475 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1476
1477         * genemit.c (gen_insn): Call gen_exp with a non-null used
1478         when handling multiple insns.
1479         (gen_expand): Likewise.
1480         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
1481         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
1482         (movsi_const_16bit+1): Copy operands[1].
1483         (call_pcrel): Copy the call_site pattern.
1484         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
1485
1486 2006-11-12  Roger Sayle  <roger@eyesopen.com>
1487
1488         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
1489         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
1490         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
1491         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
1492
1493 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
1494
1495         Fix PR tree-optimization/29587
1496         * tree-ssa-structalias.c (process_constraint): Don't
1497         mark address taken due only to escaped vars constraint.
1498
1499 2006-11-12  Michael Matz  <matz@suse.de>
1500             Roger Sayle  <roger@eyesopen.com>
1501
1502         PR rtl-optimization/29797
1503         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
1504         BITS_BIG_ENDIAN targets.
1505
1506 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1507
1508         * builtins.c (fold_builtin_cosh): New.
1509         (fold_builtin_1): Use it.
1510         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
1511         trunc to the list of "odd" functions.  Also add llrint, lrint,
1512         rint and nearbyint when flag_rounding_math is false.
1513
1514 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1515
1516         * tree-flow.h (name_mappings_registered_p): Declare.
1517         * tree-into-ssa.c (name_mappings_registered_p): New function.
1518         * tree-cfg.c (tree_can_merge_blocks_p): Check
1519         name_mappings_registered_p instead of need_ssa_update_p.
1520
1521 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1522
1523         * tree-ssa-loop.c (tree_vectorize): Return the result of
1524         vectorize_loops.
1525         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
1526         if anything changed.
1527         * tree-vectorizer.h (vectorize_loops): Declaration removed.
1528         * tree-flow.h (vectorize_loops): Declaration changed.
1529
1530 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1531
1532         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
1533         comments.
1534         (issue_prefetch_ref): Move assignment to write_p out of loop.
1535         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
1536         SIMULTANEOUS_PREFETCHES into account.
1537         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
1538         * lambda-code.c (lcm): Renamed to ...
1539         (least_common_multiple): ... and exported.
1540         * tree-flow.h (least_common_multiple): Declare.
1541
1542 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1543
1544         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
1545         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
1546         ud-chains.  Handle AND_EXPR.
1547         (record_estimate): Record whether the estimate is realistic
1548         and whether it is derived from a loop exit.
1549         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
1550         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
1551         functions.
1552         (compute_estimated_nb_iterations): Take only realistic bounds into
1553         account.  Set estimate_state.  Use double_ints.
1554         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
1555         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
1556         that do not have to be always executed.
1557         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
1558         to determine whether to call infer_loop_bounds_from_undefined
1559         and compute_estimated_nb_iterations.
1560         (n_of_executions_at_most): Use double_ints.
1561         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
1562         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
1563         * double-int.c (double_int_to_tree): Improve comment.
1564         (double_int_fits_to_tree_p): New function.
1565         * double-int.h (double_int_fits_to_tree_p): Declare.
1566         * tree-data-ref.c: Include langhooks.h.
1567         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
1568         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
1569         (analyze_array): Do not pass estimate_only argument to
1570         analyze_array_indexes.
1571         (get_number_of_iters_for_loop): Build tree from the stored double_int
1572         value.
1573         (get_references_in_stmt, find_data_references_in_stmt): New functions.
1574         (find_data_references_in_loop): Use find_data_references_in_stmt.
1575         * tree-data-ref.h (struct data_ref_loc_d): New.
1576         (get_references_in_stmt): Declare.
1577         (estimate_iters_using_array): Declaration removed.
1578         * cfgloop.h (struct nb_iter_bound): Change type of bound to
1579         double_int.  Improve comments.  Add is_exit and realistic
1580         fields.
1581         (struct loop): Changed type of estimated_nb_iterations to double_int.
1582         Added estimate_state field.
1583         (record_estimate): Declaration removed.
1584
1585 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1586
1587         * params.c (set_param_value): Initialize the "set" field.
1588         * params.h (struct param_info): Add "set" field.
1589         (PARAM_SET_P): New macro.
1590         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
1591         L1_CACHE_LINE_SIZE): New macros.
1592         * toplev.c (DEFPARAM): Initialize the "set" field.
1593         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
1594         SIMULTANEOUS_PREFETCHES): Removed.
1595         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
1596         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
1597         * config/sparc/sparc.c: Include params.h.
1598         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
1599         L1_CACHE_LINE_SIZE parameters.
1600         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1601         Removed.
1602         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1603         Removed.
1604         * config/i386/i386.c: Include params.h.
1605         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
1606         (override_options): Set SIMULTANEOUS_PREFETCHES and
1607         L1_CACHE_LINE_SIZE parameters.
1608         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
1609         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
1610         L1_CACHE_LINE_SIZE parameters.
1611         * config/ia64/ia64.c (ia64_optimization_options): Set
1612         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
1613         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
1614         Removed.
1615         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
1616         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
1617         * doc/invoke.texi: Document new params.
1618
1619 2006-11-12  Roger Sayle  <roger@eyesopen.com>
1620
1621         PR tree-optimization/13827
1622         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
1623         as ((X^Y)&C) op 0.
1624
1625 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1626
1627         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
1628         update_single_exit_for_duplicated_loops): New functions.
1629         (duplicate_loop_to_header_edge): Use
1630         update_single_exit_for_duplicated_loops.
1631         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
1632         functions only with ENABLE_CHECKING.
1633
1634 2006-11-12  Andreas Schwab  <schwab@suse.de>
1635
1636         * except.c (sjlj_emit_function_enter): Remove unused variable.
1637
1638 2006-11-11  Roger Sayle  <roger@eyesopen.com>
1639
1640         * fold-const.c (int_binop_types_match_p): New function.
1641         (size_binop): Relax constraint that both arguments must both have
1642         exactly the same sizetype type.  Instead use int_binop_types_match_p.
1643         (size_diffop): Likewise.
1644
1645         (make_range): Use build_int_cst instead of fold_convert.
1646         (fold_cond_expr_with_comparison): Use build_int_cst to construct
1647         integer constants of the correct type.
1648         (fold_div_compare): Likewise.
1649         (fold_single_bit_test): Likewise.
1650         (fold_binary): Likewise.
1651         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
1652         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
1653
1654 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1655
1656         PR rtl-opt/28812
1657         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
1658         non null value if the struct memory access is in the 0th
1659         aliasing set.
1660
1661 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
1662
1663         Revert
1664         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1665         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1666         and __BFIN__.
1667
1668         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
1669         instead of builtin_define for bfin and BFIN.
1670
1671 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1672
1673         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1674         and __BFIN__.
1675
1676 2006-11-11  Jan Hubicka  <jh@suse.cz>
1677
1678         * extend.texi (__builtin_expect): We no longer require second argument
1679         to be constant.
1680         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
1681         * builtins.c (expand_builtin_expect): Simplify.
1682         (expand_builtin_expect_jump): Kill.
1683         * final.c (final_scan_insn): Do not skip the removed notes.
1684         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
1685         EXPECTED_VALUE): Remove.
1686         * dojump.c (do_jump): Do not care about __builtin_expect.
1687         * predict.c (expected_value_to_br_prob): Kill.
1688         * function.c (expand_function_end): Do not expand
1689         NOTE_INSN_REPEATED_LINE_NUMBER.
1690         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
1691         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
1692         * cfgexpand.c (add_reg_br_prob_note): Export.
1693         * cfgcleanup.c (rest_of_handle_jump2): Do not call
1694         expected_value_to_br_prob.
1695         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
1696         * rtl.h (add_reg_br_prob_note): Declare.
1697
1698 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1699
1700         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
1701
1702 2006-11-11  Jan Hubicka  <jh@suse.cz>
1703
1704         * predict.c (predict_loops): Kill RTL variant.
1705
1706 2006-11-11  Jan Hubicka  <jh@suse.cz>
1707
1708         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
1709         * modulo-sched.c (find_line_note): Remove.
1710         (loop_canon_p): Do not worry about line number notes.
1711         (sms_schedule): Likewise.
1712         * cse.c (cse_main): Likewise.
1713         * regmove.c (fixup_match_1): Likewise
1714         * function.c (emit_return_info_block): Likewise.
1715         (expand_function_end): Likewise.
1716         (thread_prologue_an_epilogue_insns): Likewise.
1717         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
1718         Likewise.
1719         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
1720         emit_note_copy_after): Kill.
1721         (emit_note_copy): Do not worry about line numbers.
1722         * jump.c (purge_line_number_notes): Kill.
1723         (pass_purge_lineno_notes): Kill.
1724         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
1725         call.
1726         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
1727         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
1728         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
1729         * tree-pass.h (pass_purge_lineno_notes): Kill.
1730         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
1731         rm_redundant_line_notes.
1732         * sched-rgb.c (schedule_region): Don't rm_line_notes,
1733         rm_redundant_line_notes.
1734         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
1735         * haifa-sched.c: Update comment about handling notes.
1736         (unlink_line_notes): Kill.
1737         (rm_line_notes): Kill.
1738         (save_line_notes): Simplify.
1739         (rm_redundant_line_notes): Kill.
1740
1741 2006-11-11  Richard Guenther  <rguenther@suse.de>
1742
1743         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
1744         Remove unused tree codes.
1745         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
1746         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1747         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1748         * tree.c (stabilize_reference): Likewise.
1749         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
1750         fold_unary): Likewise.
1751         * tree-gimple.c (is_gimple_cast): Likewise.
1752         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
1753         * expr.c (expand_expr_real_1): Likewise.
1754         * tree-eh.c (tree_could_trap_p): Likewise.
1755         * gimplify.c (gimplify_expr): Likewise.
1756         * tree-inline.c (estimate_num_insns_1): Likewise.
1757         * tree-cfg.c (verify_expr): Likewise.
1758
1759 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
1760
1761         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
1762         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
1763         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
1764
1765 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
1766
1767         PR middle-end/27528
1768         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
1769         constraints accept neither registers or memories.
1770
1771 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1772
1773         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
1774         (NO_PROFILE_COUNTERS): Define as 1.
1775
1776 2006-11-10  Roger Sayle  <roger@eyesopen.com>
1777
1778         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
1779         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
1780
1781 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
1782
1783         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
1784
1785 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1786
1787         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
1788         (fold_builtin_hypot): Likewise.
1789         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
1790
1791         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
1792
1793 2006-11-10  Roger Sayle  <roger@eyesopen.com>
1794
1795         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
1796         when attempting to build INTEGER_CSTs of non-integral types.
1797         * expmed.c (make_tree): Use the correct type, i.e. the inner
1798         type, when constructing the individual elements of a CONST_VECTOR.
1799
1800 2006-11-10  Jan Hubicka  <jh@suse.cz>
1801
1802         * cse.c (cse_process_notes): Copy the propagated value.
1803         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
1804         in REG_EQUIV notes.
1805         * gcse.c (try_replace_reg): Copy the replacement.
1806         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
1807         (assign_386_stack_local): Always return copied memory expression
1808         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
1809         duplicates.
1810
1811 2006-11-10  Jan Hubicka  <jh@suse.cz>
1812
1813         * final.c (final): Walk from first instruction.
1814         * cfglayout.c (insn_locators_initialize): Remove line number notes.
1815
1816 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
1817
1818         PR target/29777
1819         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
1820         to define_expand.
1821         (umulv8hi3_highpart): Ditto.
1822         (vec_widen_smult_hi_v8hi): New expander.
1823         (vec_widen_smult_lo_v8hi): Ditto.
1824
1825 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1826
1827         PR middle-end/29335
1828         * builtins.c (do_mpfr_arg3): New.
1829         (fold_builtin_1): Handle builtins fma, fmin and fmax.
1830
1831 2006-11-09  Eric Christopher  <echristo@apple.com>
1832
1833         PR bootstrap/26892
1834         PR bootstrap/27814
1835         PR other/28994
1836         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
1837         * config.gcc (powerpc64-*-darwin*): New target.
1838         * config.host: Ditto.
1839         * config/rs6000/darwin64.h: New file.
1840         * config/rs6000/x-darwin64: Ditto.
1841         * config/rs6000/host-ppc64-darwin.c: Ditto.
1842
1843 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
1844
1845         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
1846         routines for integer division.
1847
1848 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
1849
1850         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
1851
1852 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
1853
1854         PR middle-end/29726
1855         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
1856
1857 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1858
1859         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
1860         simplify_subreg with BLKmode outer mode.
1861
1862 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
1863
1864         * doc/invoke.texi: Minor formatting fixes in option lists.
1865
1866 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
1867
1868         PR tree-optimization/29738
1869         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
1870         (ccp_lattice_t): Remove UNKNOWN_VAL.
1871         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
1872         Do not handle UNKNOWN_VAL.
1873         (get_default_value): Set initial value of virtual operands to
1874         VARYING.
1875         (get_value): Always use get_default_value on uninitialized
1876         operands.
1877         (set_value_varying, surely_varying_stmt_p): New functions.
1878         (set_lattice_value): Do not pass argument to get_value.
1879         Do not handle UNKNOWN_VAL.
1880         (likely_value): Follow the semantics described in the comment.
1881         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
1882         phi nodes DONT_SIMULATE_AGAIN.
1883         (ccp_fold): Do not pass argument to get_value.
1884         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
1885         handle UNKNOWN_VAL.
1886
1887 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
1888
1889         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1890         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
1891
1892 2006-11-08  Roger Sayle  <roger@eyesopen.com>
1893
1894         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
1895         test for inclusion rather than as a test for exclusion.
1896         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
1897         the condition after calling fold_binary.
1898         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
1899         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
1900         * builtins.c (fold_builtin_isascii): Likewise.
1901         (fold_builtin_isdigit): Likewise.
1902
1903 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
1904
1905         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
1906         * configure: Regenerate.
1907
1908 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
1909
1910         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
1911         enum argument instead of bool.
1912         (vect_analyze_operations): Call vectorizable_type_promotion.
1913         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
1914         stmt_vec_info_type value.
1915         (supportable_widening_operation, vectorizable_type_promotion): New
1916         function declarations.
1917         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
1918         (vectorizable_type_promotion): New function.
1919         (vect_transform_stmt): Call vectorizable_type_promotion.
1920         * tree-vect-analyze.c (supportable_widening_operation): New function.
1921         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1922         Add implementation.
1923         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1924         mode.
1925
1926         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
1927         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
1928         * tree-inline.c (estimate_num_insns_1): Add cases for above new
1929         tree-codes.
1930         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1931         * expr.c (expand_expr_real_1): Likewise.
1932         * optabs.c (optab_for_tree_code): Likewise.
1933         (init_optabs): Initialize new optabs.
1934         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
1935         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
1936         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
1937         vec_unpacku_lo_optab): Initialize new optabs.
1938         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
1939         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
1940         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
1941         optab indices.
1942         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
1943         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
1944         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
1945         (vec_unpacku_lo_optab): New optabs.
1946         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
1947         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
1948         (vec_widen_smult_hi, vec_widen_smult_lo): New.
1949         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
1950         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
1951         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
1952
1953         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
1954         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
1955         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
1956         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
1957         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
1958         implement the unsigned unpacking patterns.
1959         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
1960         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
1961         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
1962         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
1963         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
1964         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
1965         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
1966         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
1967         multiplication patterns.
1968
1969         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
1970         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
1971         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1972         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
1973         (rs6000_builtin_mul_widen_odd): New.
1974         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
1975         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
1976         * tree-vectorizer.h (enum vect_relevant): New enum type.
1977         (_stmt_vec_info): Field relevant chaned from bool to enum
1978         vect_relevant.
1979         (STMT_VINFO_RELEVANT_P): Updated.
1980         (STMT_VINFO_RELEVANT): New.
1981         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
1982         instead of STMT_VINFO_RELEVANT_P.
1983         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
1984         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
1985         and boolean variable with enum vect_relevant.
1986         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
1987         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
1988         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1989
1990         2006-11-08  Richard Henderson  <rth@redhat.com>
1991
1992         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
1993         vec_widen_umult_lo_v8hi): New.
1994         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
1995         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
1996
1997         * config/i386/i386.c (ix86_expand_sse_unpack): New.
1998         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
1999         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
2000         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
2001         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
2002         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
2003         vec_unpacks_lo_v4si): New.
2004
2005         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2006
2007         * tree-vect-transform.c (vectorizable_type_demotion): New function.
2008         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
2009         (vect_analyze_operations): Call vectorizable_type_demotion.
2010         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
2011         stmt_vec_info_type value.
2012         (vectorizable_type_demotion): New function declaration.
2013         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2014         mode.
2015
2016         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
2017         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
2018         VEC_PACK_SAT_EXPR.
2019         * tree-iniline.c (estimate_num_insns_1): Likewise.
2020         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2021         * optabs.c (optab_for_tree_code): Likewise.
2022
2023         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
2024         compared against the predicate of the result is not 'mode' (the input
2025         to the function) but a mode with half the size of 'mode'.
2026         (init_optab): Initialize new optabs.
2027         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
2028         New optab indices.
2029         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
2030         optabs.
2031         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
2032         (vec_pack_usat_optab): Initialize new optabs.
2033         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
2034         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
2035
2036         2006-11-08  Richard Henderson  <rth@redehat.com>
2037
2038         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
2039         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
2040         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
2041         (vec_interleave_highv4si, vec_interleave_lowv4si):
2042         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
2043
2044         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2045
2046         * tree-vect-transform.c (vectorizable_reduction): Support multiple
2047         datatypes.
2048         (vect_transform_stmt): Removed redundant code.
2049
2050         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2051
2052         * tree-vect-transform.c (vectorizable_operation): Support multiple
2053         datatypes.
2054
2055         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2056
2057         * tree-vect-transform.c (vect_align_data_ref): Removed.
2058         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
2059         Updated function documentation. Return the increment stmt in ptr_incr.
2060         (bump_vector_ptr): New function.
2061         (vect_get_vec_def_for_stmt_copy): New function.
2062         (vect_finish_stmt_generation): Create a stmt_info to newly created
2063         vector stmts.
2064         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
2065         argument.
2066         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
2067         VF is greater than the number of elements that can fit in one vector
2068         word.
2069         (vectorizable_operation, vectorizable_condition): Likewise.
2070         (vectorizable_store, vectorizable_load): Support the case that the VF
2071         is greater than the number of elements that can fit in one vector word.
2072         (vect_transform_loop): Don't fail in case of multiple data-types.
2073         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
2074         in case of multiple data-types; the smallest type determines the VF.
2075         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
2076         if they are of different sizes.
2077         (vect_update_misalignment_for_peel): Compare misalignments in terms of
2078         number of elements rather than number of bytes.
2079         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
2080         (vect_can_advance_ivs_p): Fix a dump printout
2081
2082 2006-11-07  Eric Christopher  <echristo@apple.com>
2083
2084         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
2085         (__bswapsi2): Ditto.
2086         * libgcc2.h: Remove transformation of bswap routines.
2087         * config/i386/i386.md (bswapsi2): New.
2088         (bswapdi2): Ditto.
2089
2090 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
2091
2092         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
2093         (handle_gnu_inline_attribute): New function.
2094         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
2095         (merge_decls, start_decl, start_function): Likewise.
2096         * doc/extend.texi: Document gnu_inline attribute.
2097
2098 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
2099
2100         PR other/25028
2101         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
2102         _fixunstfdi, and  _floatditf
2103
2104 2006-11-06  Anatoly Sokolov <aesok@post.ru>
2105
2106         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
2107         prototype.
2108         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
2109         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
2110         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
2111         which start in an odd register.
2112
2113 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
2114
2115         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
2116
2117 2006-11-07  Josh Conner  <jconner@apple.com>
2118
2119         * doc/invoke.texi (fstrict-aliasing): Move implementation
2120         details...
2121         * doc/tree-ssa.texi (Alias analysis): ...here.
2122
2123 2006-11-07  Richard Guenther  <rguenther@suse.de>
2124
2125         PR tree-optimization/29610
2126         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
2127         of tree_purge_dead_eh_edges as it may free dominators.
2128
2129         * g++.dg/other/pr29610.C: New testcase.
2130
2131 2006-11-07  David Ung  <davidu@mips.com>
2132
2133         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
2134         costs when optimizing for size.
2135         (override_options): Use mips_rtx_cost_optimize_size table for cost
2136         calculations.
2137
2138 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
2139
2140         * gcc.c (process_command): Treat -b as normal switch if its argument
2141         has no dash.
2142
2143 2006-11-07  David Ung  <davidu@mips.com>
2144
2145         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
2146         list.
2147
2148 2006-11-06  Eric Christopher  <echristo@apple.com>
2149
2150         * config.gcc: Add x86_64-darwin host support.
2151         * config.host: Ditto.
2152         * config/i386/darwin64.h: New file.
2153         * config/i386/t-darwin64: Ditto.
2154
2155 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
2156
2157         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
2158         and output-exists-not.
2159
2160 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2161
2162         PR tree-opt/29439
2163         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
2164         checking for overflow.
2165
2166 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
2167
2168         * configure.ac: Fixed typo in case statement: :: changed to ;;
2169
2170 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
2171
2172         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
2173         count_leading_zeros, and count_trailing_zeros.
2174         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
2175         (TARGET_FOLD_BUILTIN): Define.
2176         (TARGET_EXPAND_BUILTIN): Define.
2177         (xtensa_init_builtins): New.
2178         (xtensa_fold_builtin): New.
2179         (xtensa_expand_builtin): New.
2180         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
2181         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
2182         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2183         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
2184         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
2185         (any_extend): New code macro.
2186         (u, su): New code attributes.
2187         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
2188         (nsau): Remove; replaced by clzsi2.
2189         (ffssi2): Use clzsi2.
2190         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
2191         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
2192         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
2193         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
2194         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
2195
2196 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
2197
2198         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
2199         set inhibit_libc.
2200         * config/arm/t-strongarm-elf: Likewise.
2201         * config/arm/t-pe: Likewise.
2202         * config/arm/t-arm-elf: Likewise.
2203         * config/arm/t-xscale-elf: Likewise.
2204         * config/arm/t-arm-coff: Likewise.
2205         * config/arm/t-xscale-coff: Likewise.
2206         * config/arm/t-wince-pe: Likewise.
2207
2208 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2209
2210         * config/sh/lib1funcs-4-300.asm: Guard entire file with
2211         #if !__SHMEDIA__ .
2212
2213 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
2214
2215         PR middle-end/29695
2216         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
2217         simplification.
2218
2219 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2220
2221         PR target/26915
2222         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
2223         as a valid 80387 constant.
2224         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
2225         * config/i386/i386.md (unnamed splitter): Split the load of
2226         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
2227         by negation.
2228
2229 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
2230
2231         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
2232         from the soft-frame, argument and virtual registers.
2233
2234 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2235
2236         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
2237         patterns for standard 80387 constants.
2238
2239 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
2240             Steven Bosscher  <steven@gcc.gnu.org>
2241
2242         * fwprop.c: New file.
2243         * Makefile.in: Add fwprop.o.
2244         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
2245         * passes.c (init_optimization_passes): Schedule forward propagation.
2246         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
2247         parameter.
2248         * timevar.def (TV_FWPROP): New.
2249         * common.opt (-fforward-propagate): New.
2250         * opts.c (decode_options): Enable forward propagation at -O2.
2251         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
2252         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
2253         canon_for_address, table_size): Remove.
2254         (new_basic_block, insert, remove_from_table): Remove references to
2255         table_size.
2256         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
2257         simplification loop more straightforward by not calling fold_rtx
2258         recursively.
2259         (equiv_constant): Move here a small part of fold_rtx_subreg,
2260         do not call fold_rtx.  Call avoid_constant_pool_reference
2261         to process MEMs.
2262         * recog.h (canonicalize_change_group): New.
2263
2264         * doc/invoke.texi (Optimization Options): Document fwprop.
2265         * doc/passes.texi (RTL passes): Document fwprop.
2266
2267 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
2268
2269         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
2270         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
2271         (grokdeclarator): Likewise.
2272
2273 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
2274
2275         * tree-dump.c (dump_enable_all): Rename local variable
2276         ir_type to avoid name conflicts.
2277         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
2278         instead of using ir_type().
2279         * profile.c (tree_register_profile_hooks): Likewise.
2280         * value-prof.c (tree_register_value_prof_hooks): Likewise.
2281         * basic-block.h (struct edge_def): Likewise.
2282         * config/arm/arm.c (legitimize_pic_address): Likewise.
2283         * coretypes.h (ir_type): New enum of all intermediate languages
2284         used in GCC.
2285         * cfghooks.c (ir_type): Rename to...
2286         (current_ir_type): ...this.  Distinguish between cfgrtl and
2287         cfglayout mode when the current IR is RTL.  Return enum ir_type.
2288         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
2289
2290 2006-11-03  Paul Brook  <paul@codesourcery.com>
2291
2292         * config/arm/arm.c (arm_file_start): New function.
2293         (TARGET_ASM_FILE_START): Define.
2294         (arm_default_cpu): New variable.
2295         (arm_override_options): Set arm_default_cpu.
2296
2297 2006-11-03  David Ung  <davidu@mips.com>
2298
2299         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
2300         PROCESSOR_24KC and PROCESSOR_24KF.
2301         * config/mips/mips.c (mips_cpu_info_table): Add processor names
2302         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
2303         (mips_rtx_cost_data): Add costs for the 24kc.
2304         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
2305         * config/mips/24k.md: Remove references to 24k and replace with
2306         uses of 24kc/24kf in the appropriate reservations.
2307         * doc/invoke.texi (MIPS Options): Updated.
2308
2309 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
2310
2311         * config/sh/crt1.asm: Fix #ifdef indent.
2312
2313 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
2314         Merged from STMicroelectronics sources:
2315         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
2316           * config/sh/crt1.asm (vbr_600): Add missing #if.
2317         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
2318           * sh.opt (mfused-madd): New option.
2319           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
2320         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
2321           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
2322           Remove pointless handler at VBR+0.
2323           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
2324           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
2325           fr7. Make sure the timer handler is called with the correct FPU
2326           precision setting, according to the ABI.
2327         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
2328           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
2329           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
2330           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
2331         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
2332           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
2333           zero as second operand.
2334         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
2335           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2336           Fixed some bugs related to negative values, in particular -0
2337           and overflow at -0x80000000.
2338           * config/sh/divcost-analysis: Added sh4-300 figures.
2339         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
2340           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
2341         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
2342           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
2343           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
2344           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2345         New files.
2346           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
2347           -m4-340.
2348         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
2349           SH4-300 scheduling description & fixes to SH4-[12]00 description:
2350           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
2351           mac_mem, mem_mac, dfp_mul, fp_cmp.
2352           (insn_class, dfp_comp, any_fp_comp): Update.
2353           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
2354           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
2355           (muldf3_i): Likewise.
2356           (movsi_i): Split rI08 alternative into two separate alternatives.
2357           Update type.
2358           (movsi_ie, movsi_i_lowpart): Likewise.
2359           (movqi_i): Split ri alternative into two separate alternatives.
2360           Update type.
2361           * sh1.md (sh1_load_store, sh1_fp): Update.
2362           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
2363           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
2364           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
2365           (sh4a_fp_double_arith): Likewise.
2366           * sh4-300.md: New file.
2367           * sh.c (sh_handle_option): Handle m4-300* options.
2368           (sh_adjust_cost): Fix latency of auto-increments.
2369           Handle SH4-300 differently than other SH4s.  Check for new insn types.
2370           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
2371           been set by an option.
2372           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
2373           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
2374           (mbranch-cost=): Likewise.
2375           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
2376
2377           * sh.md (mulsf3): Remove special expansion code.
2378           (mulsf3_ie): Now a define_insn_and_split.
2379           (macsf3): Allow for TARGET_SH4.
2380
2381           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
2382           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
2383           (expand_cbranchdi4): Likewise.
2384           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
2385           CONST_DOUBLE if the outer code is COMPARE.
2386           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
2387           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
2388           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
2389           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
2390           Remove redundant fp_{zero,one}_operand checks.
2391           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
2392           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
2393           (expand_cbranchdi4): Likewise.
2394         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
2395           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
2396
2397 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2398
2399         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
2400         constraints.
2401
2402 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
2403
2404         * doc/invoke.texi: Fix mfp-trap-mode typo.
2405
2406 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
2407
2408         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
2409         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
2410         file_end_indicate_exec_stack.
2411         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
2412         Define as 0.
2413         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
2414         for a non-executable stack.
2415         * crti.asm: Likewise.
2416         * crtn.asm: Likewise.
2417         * libunwind.S: Likewise.
2418
2419 2006-11-02  Ben Elliston  <bje@au.ibm.com>
2420
2421         * tree-ssa.c (warn_uninit): Use expand_location variables for
2422         locus and declaration locus.
2423
2424 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2425
2426         PR target/27405
2427         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
2428         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
2429         cmp{eq,gt,gtu}{si,di}_media.
2430         (*cmpne0si_media): Remove.
2431         (*movsicc_umin): Adjust gen_cmp*_media call.
2432         (unordered): Change the mode of unordered and operands[1] to
2433         SImode.
2434         (seq): Adjust gen_cmp*_media calls.  Make the mode of
2435         a temporary result of compare SImode if needed.  If the mode
2436         of operands[0] is DImode, extend the temporary result to DImode.
2437         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
2438         (sunorderd): Change the mode of match_operand and unorderd to
2439         SImode.
2440         (cmpeq{sf,df}_media): Remove.
2441         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
2442         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
2443         and compare operation to SImode.
2444
2445 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
2446
2447         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
2448         instructions.
2449         (sparc64-sun-solaris2*): Likewise.
2450
2451 2006-11-02  Paul Brook  <paul@codesourcery.com>
2452
2453         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
2454         from priority argument.  Use different section for non-default
2455         priority.
2456         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
2457
2458 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2459
2460         PR other/29639
2461         * except.c (switch_to_exception_section): Do not cache the section
2462         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2463         and flag_function_sections is set.
2464
2465 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2466
2467         PR middle-end/29335
2468         * builtins.c (do_mpfr_sincos): New.
2469         (fold_builtin_1): Use it to fold builtin sincos.
2470
2471 2006-11-01  Roger Sayle  <roger@eyesopen.com>
2472
2473         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
2474         it into -D_REENTRANT.
2475
2476 2006-11-01  Roger Sayle  <roger@eyesopen.com>
2477
2478         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
2479         whether the assembler supports taking the difference of symbols in
2480         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
2481         * configure: Regenerate.
2482         * config.in: Regenerate.
2483         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
2484         the assembler doesn't support taking the difference of symbols in
2485         different sections, i.e. we're using the native solaris assembler.
2486
2487 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
2488             Peter Bergner  <bergner@vnet.ibm.com>
2489
2490         * doc/invoke.texi: Add cpu_type power6x
2491         (RS/6000 and PowerPC Options): Add -mmfpgpr.
2492         * config.gcc: Add cpu_type power6x.
2493         * configure.ac: Add test for mf{t,f}gpr instructions.
2494         (HAVE_AS_MFPGPR): New.
2495         * config.in: Regenerate.
2496         * configure: Regenerate.
2497         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
2498         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
2499         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
2500         and mftgpr attributes.
2501         (define_attr "cpu"): Add power6.
2502         Change instruction sequences to use new attributes.
2503         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
2504         (fix_truncdfsi2_mfpgpr): New.
2505         (floatsidf_ppc64_mfpgpr): New.
2506         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
2507         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
2508         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
2509         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
2510         (fix_truncdfsi2): Use gpc_reg_operand constraint.
2511         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
2512         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
2513         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
2514         cntlz,exts and var_delayed_compare.
2515         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2516         _ARCH_PWR6X, if features enabled.
2517         * config/rs6000/rs6000.opt (mmfpgpr): New.
2518         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
2519         (cached_can_issue_more): New variable.
2520         (processor_costs): Add power6_cost.
2521         (rs6000_sched_init): New function.
2522         (is_dispatch_slot_restricted): Deleted.
2523         (set_to_load_agen): New function.
2524         (is_load_insn,is_store_insn): New functions.
2525         (adjacent_mem_locations): New function.
2526         (insn_must_be_first_in_group): New function.
2527         (insn_must_be_last_in_group): New function.
2528         (rs6000_sched_reorder): New function.
2529         (rs6000_sched_reorder2): New function.
2530         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
2531         TARGET_SCHED_REORDER2): Define.
2532         (processor_target_table): Use PROCESSOR_POWER6 for power6.
2533         Add power6x. Add MASK_MFPGPR for power6x.
2534         (POWERPC_MASKS): Add MASK_MFPGPR.
2535         (rs6000_override_options): Set rs6000_always_hint to false
2536         for power6.  Set rs6000_align_branch_targets. Replace
2537         rs6000_sched_groups check with rs6000_align_branch_targets.
2538         Use PROCESSOR_POWER6.
2539         (last_scheduled_insn): New variable.
2540         (load_store_pendulum): New variable.
2541         (rs6000_variable_issue): Set last_scheduled_insn and
2542         cached_can_issue_more.
2543         (rs6000_adjust_cost): Add power6 cost adjustments.
2544         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
2545         with insn_must_be_first_in_group. Add power6 priority adjustments.
2546         (rs6000_issue_rate): Add CPU_POWER6.
2547         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
2548         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
2549         (TARGET_MFPGPR): New.
2550         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
2551         (ASM_CPU_SPEC): Add power6x.
2552         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
2553         conditions.
2554         * config/rs6000/power6.md: New file.
2555
2556 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
2557
2558         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2559         HOST_WIDE_INT_PRINT to print high and low parts.  Use
2560         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
2561         printing a hexadecimal number prefix it with 0x.
2562
2563 2006-11-01  Chris Johns <chris@contemporary.net.au>
2564
2565         PR bootstrap/28400
2566         * Makefile.in (install-driver): Use exeext when installing
2567         $target-gcc-$version.
2568
2569 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
2570
2571         * c-common.c (flag_cpp0x): New.
2572         * c-common.h (flag_cpp0x): New.
2573         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
2574         supported, define __GXX_EXPERIMENTAL_CPP0X__.
2575         * c-opts.c (set_std_cxx0x): New.
2576         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
2577         * c.opt (std=c++0x): Document.
2578         (std=gnu++0x): Ditto.
2579         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
2580         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
2581
2582 2006-11-01  Richard Guenther  <rguenther@suse.de>
2583
2584         * config/i386/i386.c (ix86_expand_rint): Fix issues with
2585         signed zeros.
2586         (ix86_expand_floorceildf_32): Likewise.
2587         (ix86_expand_floorceil): Likewise.
2588         (ix86_expand_trunc): Likewise.
2589
2590 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
2591
2592         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
2593         to "GNU C89".
2594
2595 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
2596
2597         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
2598         hook.
2599         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
2600         default.
2601         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
2602         Override default.
2603         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
2604         * configure.ac (use_cxa_atexit): As a special case, don't test
2605         for libc definition of __cxa_atexit on mingw32
2606         * configure: Regenerate.
2607         * config.gcc (i[34567]86-pc-mingw32): Default to
2608         enable__cxa_atexit=yes.
2609
2610 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2611
2612         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2613
2614 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2615
2616         PR 23067
2617         * c-decl.c (start_struct): Don't create self-containing
2618         structures.
2619         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
2620         New.
2621         * config/rs6000/rs6000-protos.h
2622         (darwin_rs6000_special_round_type_align): New.
2623         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
2624         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
2625
2626 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2627
2628         * toplev.c (compile_file): Call final_write_globals
2629         even if there have been errors.
2630
2631 2006-10-31  Eric Christopher  <echristo@apple.com>
2632             Falk Hueffner  <falk@debian.org>
2633
2634         * doc/extend.texi (__builtin_bswap32): Document.
2635         (__builtin_bswap64): Ditto.
2636         * doc/libgcc.texi (bswapsi2): Document.
2637         (bswapdi2): Ditto.
2638         * doc/rtl.texi (bswap): Document.
2639         * optabs.c (expand_unop): Don't widen a bswap.
2640         (init_optabs): Init bswap. Set libfuncs explicitly
2641         for bswapsi2 and bswapdi2.
2642         * optabs.h (OTI_bswap): New.
2643         (bswap_optab): Ditto.
2644         * genopinit.c (optabs): Handle bswap_optab.
2645         * tree.h (tree_index): Add TI_UINT32_TYPE and
2646         TI_UINT64_TYPE.
2647         (uint32_type_node): New.
2648         (uint64_type_node): Ditto.
2649         * tree.c (build_common_tree_nodes_2): Initialize
2650         uint32_type_node and uint64_type_node.
2651         * builtins.c (expand_builtin_bswap): New.
2652         (expand_builtin): Call.
2653         (fold_builtin_bswap): New.
2654         (fold_builtin_1): Call.
2655         * fold-const.c (tree_expr_nonnegative_p): Return true
2656         for bswap.
2657         * builtin-types.def (BT_UINT32): New.
2658         (BT_UINT64): Ditto.
2659         (BT_FN_UINT32_UINT32): Ditto.
2660         (BT_FN_UINT64_UINT64): Ditto.
2661         * builtins.def (BUILT_IN_BSWAP32): New.
2662         (BUILT_IN_BSWAP64): Ditto.
2663         * rtl.def (BSWAP): New.
2664         * genattrtab.c (check_attr_value): New.
2665         * libgcc2.c (__bswapSI2): New.
2666         (__bswapDI2): Ditto.
2667         * libgcc2.h (__bswapSI2): Declare.
2668         (__bswapDI2): Ditto.
2669         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
2670         * simplify-rtx.c (simplify_const_unary_operation): Return
2671         0 for BSWAP.
2672         * libgcc-std.ver (__bwapsi2): Add.
2673         (__bswapdi2): Ditto.
2674         * reload1.c (eliminate_regs_1): Add bswap.
2675         (elimination_effects): Ditto.
2676         * config/i386/i386.h (x86_bswap): New.
2677         (TARGET_BSWAP): Use.
2678         * config/i386/i386.c (x86_bswap): Set.
2679
2680 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2681
2682         * coverage.c (coverage_checksum_string): Update comment.
2683         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
2684         of get_file_function_name.
2685         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
2686         of get_file_function_name_long.
2687         * tree.c (get_file_function_name): Rename from
2688         get_file_function_name_long; improve comment; handle 'I' and 'D'
2689         specially when the target has ctor/dtor support; remove special
2690         handling for 'F'.
2691         (get_file_function_name): Remove.
2692         * tree.h (get_file_function_name): Rename from
2693         get_file_function_name_long.
2694         (get_file_function_name): Remove prototype.
2695
2696 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2697
2698         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
2699         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2700
2701         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
2702         Call dsymutil when compiling and linking one or more source files
2703         in one step.
2704
2705 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2706
2707         PR 15834
2708         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2709
2710 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2711
2712         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
2713         inline static functions in c99 mode.
2714
2715         PR 16622
2716         * doc/extend.texi (Inline): Update.
2717         * c-tree.h (struct language_function): Remove field 'extern_inline'.
2718         * c-decl.c (current_extern_inline): Delete.
2719         (pop_scope): Adjust test for an undefined nested function.
2720         Add warning about undeclared inline function.
2721         (diagnose_mismatched_decls): Update comments.  Disallow overriding
2722         of inline functions in a translation unit in C99.  Allow inline
2723         declarations in C99 at any time.
2724         (merge_decls): Boolize variables.  Handle C99 'extern inline'
2725         semantics.
2726         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
2727         C99 inline semantics.
2728         (start_function): Don't clear current_extern_inline.  Don't set
2729         DECL_EXTERNAL.
2730         (c_push_function_context): Don't push current_extern_inline.
2731         (c_pop_function_context): Don't restore current_extern_inline.
2732
2733         PR 11377
2734         * c-typeck.c (build_external_ref): Warn about static variables
2735         used in extern inline functions.
2736         * c-decl.c (start_decl): Warn about static variables declared
2737         in extern inline functions.
2738
2739 2006-10-31  Roger Sayle  <roger@eyesopen.com>
2740
2741         PR middle-end/23470
2742         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
2743         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
2744         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
2745         or y is an even integer.
2746
2747 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2748
2749         PR target/24071
2750         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
2751         * gthr-posix95.h (__gthread_active_p): Likewise.
2752
2753 2006-10-31  Richard Guenther  <rguenther@suse.de>
2754
2755         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2756         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
2757         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
2758         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
2759         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
2760         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
2761         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
2762         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
2763         !optimize_size.
2764
2765 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
2766
2767         * opts.c (decode_options): Disable CSE skip blocks.
2768
2769 2006-10-30  Dirk Mueller  <dmueller@suse.de>
2770
2771         * c-common.h (strict_aliasing_warning): Fix whitespace.
2772         * c-decl (start_function): Move code for main decl warning ..
2773         * c-common.c (check_main_parameter_types): .. here.
2774         * c-common.h (check_main_parameter_types): Declare.
2775
2776 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2777
2778         PR middle-end/29335
2779         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
2780
2781 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
2782
2783         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
2784         be a PARALLEL containing sets.  Return false when out_pat is not
2785         a PARALLEL insn.
2786
2787 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
2788
2789         * config/mips/mips.md (mul<mode>3): Split into...
2790         (mulsi3, muldi3): ...these separate patterns.
2791
2792 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
2793
2794         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
2795         but with each set of options separated by spaces.
2796
2797 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
2798
2799         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
2800         dwarf_reg_size_table has been initialized.
2801
2802 2006-10-30  Roger Sayle  <roger@eyesopen.com>
2803
2804         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
2805         * ddg.c (print_ddg_edge): Likewise.
2806         * dwarf2out.c (prune_unused_types_walk): Likewise.
2807         * ifcvt.c (noce_try_cmove_arith): Likewise.
2808         * langhooks.c (add_builtin_function): Likewise.
2809         * reg-stack.c (subst_stack_regs_pat): Likewise.
2810         * tree.c (expanded_location): Likewise.
2811         * tree-dump.c (dequeue_and_dump): Likewise.
2812
2813 2006-10-30  David Daney  <ddaney@avtrex.com>
2814
2815         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
2816
2817 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
2818
2819         PR tree-optimization/29637
2820         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
2821         of the innertype is the innertype itself.
2822
2823 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
2824
2825         * dwarf2out.c (file_name_acquire): Correct typo.
2826
2827 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
2828
2829         * tree.h (tree_value_handle): Remove struct value_set declaration.
2830         Change value_set to bitmap_set.
2831         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
2832         * tree-vn.c (get_value_handle): Made inline and moved to
2833         tree-flow-inline.h.
2834         * tree-flow-inline.h: (has_stmt_ann): New function.
2835         * tree-ssa-pre.c (expressions): New variable.
2836         (next_expression_id): Ditto.
2837         (alloc_expression_id): New function.
2838         (struct value_set): Remove.
2839         (get_expression_id): New function.
2840         (get_or_alloc_expression_id): Ditto.
2841         (expression_for_id): Ditto.
2842         (clear_expression_ids): Ditto.
2843         (FOR_EACH_EXPR_ID_IN_SET): New macro.
2844         (bb_value_sets): Renamed to bb_bitmap_sets.
2845         All value sets replaced with bitmap_sets.
2846         Add visited member.
2847         (BB_VISITED): New macro.
2848         (postorder): New variable.
2849         (add_to_value): Removed.
2850         (value_exists_in_set_bitmap): Ditto.
2851         (value_insert_into_set_bitmap): Ditto.
2852         (set_new): Ditto.
2853         (set_copy): Ditto.
2854         (set_remove): Ditto.
2855         (set_contains_value): Ditto.
2856         (insert_into_set): Ditto.
2857         (set_equal): Ditto.
2858         (find_leader): Ditto.
2859         (bitmap_set_subtract_from_value_set): Ditto.
2860         (value_insert_into_set): Ditto.
2861         (print_value_set): Ditto.
2862         (debug_value_set): Ditto.
2863         (constant_expr_p): New function.
2864         (bitmap_remove_from_set): Ditto.
2865         (bitmap_insert_into_set): Ditto.
2866         (bitmap_set_free): Ditto.
2867         (vh_compare): Ditto.
2868         (sorted_array_from_bitmap_set): Ditto.
2869         (bitmap_set_subtract): Ditto.
2870         (bitmap_set_equal): Ditto.
2871         (debug_bitmap_set): Ditto.
2872         (find_leader_in_sets): Ditto.
2873         (bitmap_set_replace_value): Modify for bitmapped sets.
2874         (phi_translate): Ditto.
2875         (phi_translate_set): Ditto.
2876         (bitmap_find_leader): Ditto.
2877         (valid_in_sets): Ditto.
2878         (union_contains_value): Ditto.
2879         (clean): Ditto.
2880         (compute_antic_aux): Ditto.  Mark changed blocks.
2881         (compute_antic): Ditto. Iterate in postorder and only over
2882         changing blocks.
2883         (compute_rvuse_and_antic_safe): Reuse postorder.
2884         (create_component_ref_by_pieces): Modify for bitmapped sets.
2885         (find_or_generate_expression): Ditto.
2886         (create_expression_by_pieces): Ditto.
2887         (insert_into_preds_of_block): Ditto.
2888         (changed_blocks): New variable.
2889         (do_regular_insertion): Broken out from insert_aux.
2890         (insert_aux): Modified for bitmapped sets.
2891         (find_existing_value_expr): New function.
2892         (create_value_expr_from): Use it.
2893         (insert_extra_phis): Removed.
2894         (print_bitmap_set): Renamed from bitmap_print_value_set.
2895         (compute_avail): Handle RETURN_EXPR.
2896         (init_pre): Modify for bitmapped sets.
2897         * tree-flow.h (has_stmt_ann): New function.
2898
2899 2006-10-29  Roger Sayle  <roger@eyesopen.com>
2900
2901         * builtins.c (fold_builtin_floor): Check for the availability of
2902         the C99 trunc function before transforming floor into trunc.
2903
2904 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2905
2906         * builtins.c (fold_builtin_hypot): Rearrange recursive
2907         transformation before others, and also do ABS_EXPR.  When
2908         necessary, check flag_unsafe_math_optimizations.  When necessary,
2909         add fabs.
2910
2911 2006-10-29  Roger Sayle  <roger@eyesopen.com>
2912
2913         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
2914         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
2915         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
2916         Fold -X eq/ne -Y as X eq/ne Y.
2917
2918 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
2919
2920         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
2921         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
2922         rather than GENERATE_MULT3_SI in the various define_peephole2s.
2923         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
2924         Use an inclusive test for "mult" rather than "mul".
2925         (rotr<mode>3): Depend on ISA_HAS_ROR.
2926         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
2927         ISA_HAS_MUL3.
2928         (GENERATE_MULT3_DI): Delete.
2929         (ISA_HAS_64BIT_REGS): Use consistent formatting.
2930         (ISA_HAS_MUL3): New macro.
2931         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
2932         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
2933         (ISA_HAS_CLZ_CLO): Likewise.
2934         (ISA_HAS_DCLZ_DCLO): Delete.
2935         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
2936         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
2937         the VR4120 and VR4130.
2938         (ISA_HAS_MACCHI): Use consistent formatting.
2939         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
2940         (ISA_HAS_ROR): ...this new macro.
2941         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
2942         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
2943         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
2944
2945 2006-10-29  Roger Sayle  <roger@eyesopen.com>
2946
2947         PR tree-optimization/15458
2948         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
2949         is a constant.
2950
2951 2006-10-29  Richard Guenther  <rguenther@suse.de>
2952
2953         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
2954         (ix86_expand_truncdf_32): Likewise.
2955         * config/i386/i386.c (ix86_expand_trunc): New function expanding
2956         trunc inline for SSE math and -fno-trapping-math and if not
2957         optimizing for size.
2958         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
2959         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
2960         for expanding btrunc inline for SSE math.
2961
2962 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
2963
2964         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
2965         Handle tuning for bi-arch i[34567]86-*-linux* like that for
2966         i[34567]86-*-solaris2.1[0-9]*.
2967         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
2968         Define conditionally depending on TARGET_64BIT_DEFAULT.
2969         (SPEC_32, SPEC_64): Define.
2970         (LINK_SPEC): Use them.
2971         * doc/install.texi (--enable-targets=all): Document for x86-linux.
2972
2973 2006-10-29  Richard Guenther  <rguenther@suse.de>
2974
2975         * config/i386/i386-protos.h (ix86_expand_round): Declare.
2976         (ix86_expand_rounddf_32): Likewise.
2977         * config/i386/i386.c (ix86_expand_round): New function expanding
2978         round inline for SSE math and -fno-trapping-math and if not
2979         optimizing for size.
2980         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
2981         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
2982         round via ix86_expand_round.
2983
2984 2006-10-29  Richard Guenther  <rguenther@suse.de>
2985
2986         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
2987         (ix86_expand_floorceildf_32): Likewise.
2988         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
2989         static helper function.
2990         (ix86_expand_floorceil): Expander for floor and ceil to SSE
2991         math.
2992         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
2993         * config/i386/i386.md (floordf2): Adjust to enable floor
2994         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
2995         -fno-trapping-math is enabled and if not optimizing for size.
2996         (floorsf2, ceildf2, ceilsf2): Likewise.
2997         * config/i386/sse.md (sse_maskcmpsf3): New insn.
2998         (sse2_maskcmpdf3): Likewise.
2999
3000 2006-10-29  Richard Guenther  <rguenther@suse.de>
3001
3002         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
3003         rint in case -fno-trapping-math is enabled.
3004         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
3005         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
3006         (ix86_expand_sse_fabs): Likewise.
3007         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
3008         * config/i386/i386.md (rintdf2): Enable for SSE math if
3009         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
3010         (rintsf2): Likewise.
3011
3012 2006-10-29  Richard Guenther  <rguenther@suse.de>
3013
3014         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
3015         to conversion optabs.
3016         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
3017         as conversion optab.
3018         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
3019         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
3020         (lfloor_optab, lceil_optab): Adjust defines.
3021         * builtins.c (expand_builtin_int_roundingfn): Adjust for
3022         lfloor and lceil optabs now being conversion optabs.
3023         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
3024         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
3025         New static helper function.
3026         (ix86_expand_lfloorceil): New function to expand lfloor and
3027         lceil inline.
3028         * config/i386/i386.md (lfloor<mode>2): Split into ...
3029         (lfloorxf<mode>2): ... x87 variant
3030         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
3031         using ix86_expand_lfloorceil.
3032         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
3033         Likewise.
3034         * doc/md.texi (lfloorMN, lceilMN): Document.
3035
3036 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3037
3038         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
3039         -mno-shared assembler option on mips targets.
3040         * configure, config.in: Regenerate.
3041         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
3042         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
3043         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
3044
3045 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3046
3047         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
3048         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
3049
3050 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
3051
3052         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
3053         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
3054         comment typos.
3055
3056 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3057
3058         PR middle-end/29335
3059         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
3060         (fold_builtin_pow): Evaluate constant arguments at compile-time
3061         using MPFR.
3062         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
3063         (do_mpfr_ckconv): New helper function.
3064         (do_mpfr_arg1): Use do_mpfr_ckconv.
3065         (do_mpfr_arg2): New.
3066
3067 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3068
3069         PR tree-opt/29271
3070         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
3071         (-fdump-rtl-sched): Rename to ..
3072         (-fdump-rtl-sched1): here.  Also fix file extension number.
3073
3074 2006-10-28  Richard Guenther  <rguenther@suse.de>
3075
3076         * fold-const.c (maybe_canonicalize_comparison): Fix code
3077         to match comment.
3078
3079 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
3080
3081         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
3082         (NON_QI_REG_P): Use IN_RANGE.
3083         (REX_INT_REGNO_P): Use IN_RANGE.
3084         (FP_REGNO_P): Use IN_RANGE.
3085         (SSE_REGNO_P): Use IN_RANGE.
3086         (REX_SSE_REGNO_P): Use IN_RANGE.
3087         (MMX_REGNO_P): Use IN_RANGE.
3088         (STACK_REGNO_P): New macro.
3089         (STACK_REG_P): Use STACK_REGNO_P.
3090         (NON_STACK_REG_P): Use STACK_REGNO_P.
3091         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
3092         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
3093         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
3094         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
3095         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
3096
3097 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3098
3099         * except.h (output_function_exception_table): Add 'const char*' param.
3100         * except.c (switch_to_exception_section): Add 'const char*' param.
3101         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3102         and flag_function_sections is set, use a function-specific section.
3103         (output_function_exception_table): Add 'const char*' param.
3104         Adjust call to switch_to_exception_section.
3105         * final.c (rest_of_handle_final): Adjust calls to
3106         output_function_exception_table.
3107         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
3108         * config.in: Regenerate.
3109         * configure: Likewise.
3110
3111 2006-10-28  Richard Guenther  <rguenther@suse.de>
3112
3113         PR middle-end/26899
3114         * fold-const.c (maybe_canonicalize_comparison_1): Helper
3115         for maybe_canonicalize_comparison.
3116         (maybe_canonicalize_comparison): New function for canonicalizing
3117         comparison trees.
3118         (fold_comparison): Call it to canonicalize comparisons with
3119         constants involved.
3120
3121 2006-10-28  Richard Guenther  <rguenther@suse.de>
3122
3123         PR target/28806
3124         * builtins.c (expand_builtin_int_roundingfn_2): Expand
3125         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
3126         (expand_builtin): Adjust likewise.
3127         * genopinit.c (optabs[]): Add lround optab.
3128         * optabs.c (init_optabs): Initialize lround_optab.
3129         * optabs.h (enum convert_optab_index): Add COI_lround.
3130         (lround_optab): Define.
3131         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
3132         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
3133         static function.
3134         (ix86_expand_lround): New function.
3135         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
3136         New expanders.
3137         * doc/md.texi (lroundMN2): Document.
3138
3139 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3140
3141         PR target/29377
3142         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
3143         argument to HOST_WIDE_INT.  Update function prototype.
3144         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
3145         "size" argument to HOST_WIDE_INT.  Update function prototype.
3146
3147 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3148
3149         * config/i386/i386.c (output_387_ffreep): Create output from a
3150         template string for !HAVE_AS_IX86_FFREEP.
3151
3152 2006-10-27  Eric Christopher  <echristo@apple.com>
3153
3154         * config/darwin.c: Fix formatting and grammar.
3155
3156 2006-10-27  Jan Hubicka  <jh@suse.cz>
3157
3158         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
3159         to be thrown away soon when IGNORE is set.
3160         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
3161         indicating when return value shall not be computed.
3162         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
3163
3164 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
3165
3166         * config/i386/i386.h (TARGET_GEODE):
3167         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
3168         (TARGET_CPU_DEFAULT_geode): New macro.
3169         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
3170         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
3171         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
3172         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
3173         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
3174         the macro values.
3175         (TARGET_CPU_DEFAULT_NAMES): Add geode.
3176         (processor_type): Add PROCESSOR_GEODE.
3177
3178         * config/i386/i386.md: Include geode.md.
3179         (cpu): Add geode.
3180
3181         * config/i386/i386.c (geode_cost): New initialized global
3182         variable.
3183         (m_GEODE, m_K6_GEODE): New macros.
3184         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
3185         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
3186         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
3187         x86_schedule): Use m_K6_GEODE instead of m_K6.
3188         (x86_movx, x86_cmove): Set up m_GEODE.
3189         (x86_integer_DFmode_moves): Clear m_GEODE.
3190         (processor_target_table): Add entry for geode.
3191         (processor_alias_table): Ditto.
3192
3193         * config/i386/geode.md: New file.
3194
3195         * doc/invoke.texi: Add entry about geode processor.
3196
3197 2006-10-27  Mike Stump  <mrs@apple.com>
3198
3199         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
3200         __DYNAMIC__ from here back to ...
3201         * config/darwin.h (CPP_SPEC): ... here.
3202
3203 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
3204             Nathan Sidwell  <nathan@codesourcery.com>
3205
3206         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
3207         when choosing the minimum heapsize.
3208
3209 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
3210
3211         * gcc/unwind-dw2.h: Move cfa-related variables into
3212         struct frame_state_reg_info to ensure that the CFA is properly
3213         handled when executing DW_CFA_{remember,restore}_state.
3214         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
3215         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
3216         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
3217         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
3218         gcc/config/rs6000/linux-unwind.h,
3219         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
3220         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
3221         Modify to use new cfa_* fields.
3222
3223 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
3224
3225         * config/s390/s390.c (s390_init_frame_layout): Check positive
3226         frame_size.
3227
3228 2006-10-26  Ben Elliston  <bje@au.ibm.com>
3229
3230         * gimplify.c (get_name): Remove extraneous break.
3231         (gimplify_omp_for): Initialise ret with GS_OK.
3232
3233 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
3234
3235         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
3236         Add unix98.o to link line.
3237
3238 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3239
3240         PR middle-end/29335
3241         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
3242         Calculate compile-time constants using MPFR.
3243         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
3244         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
3245
3246 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
3247
3248         * config/xtensa/lib2funcs.S: Use C-style comments.
3249
3250 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
3251
3252         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
3253         (file_table_relative_p): Likewise.
3254         (dwarf2out_finish): Likewise.
3255         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
3256
3257 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
3258
3259         * tree-ssa-structalias.c (intra_create_variable_infos):
3260           Don't recreate nonlocal_all if it already exists.
3261
3262 2006-10-25  Richard Guenther  <rguenther@suse.de>
3263
3264         PR target/28803
3265         * optabs.h (enum optab_index): Remove OTI_lrint.
3266         (enum convert_optab_index): Add COI_lrint.
3267         (lrint_optab): Adjust.
3268         (expand_sfix_optab): Declare.
3269         * optabs.c (expand_sfix_optab): New function.
3270         (init_optabs): Init lrint_optab as conversion optab.
3271         * genopinit.c (lrint_optab): Change to a conversion optab.
3272         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
3273         expansion via conversion optab.
3274         * config/i386/i386.md (*fistdi2_1): Remove
3275         flag_unsafe_math_optimizations guard.
3276         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
3277         fist<mode>2_with_temp): Likewise.
3278         (lrint<mode>2): Split into...
3279         (lrintxf<mode>2): ... x87 part
3280         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
3281         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
3282         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
3283         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
3284         * doc/md.texi (lrintMN2): Document.
3285
3286 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
3287
3288         PR target/28909
3289         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
3290         Use inc and dec instructions for TARGET_USE_INCDEC.
3291         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
3292         ("sync_double_compare_and_swap<mode>"): Likewise.
3293         ("*sync_double_compare_and_swapdi_pic"): Likewise.
3294         ("*sync_compare_and_swap_cc<mode>"): Likewise.
3295         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
3296         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
3297         ("sync_old_add<mode>"): Likewise.
3298         ("sync_lock_test_and_set<mode>"): Likewise.
3299         ("sync_lock_test_and_set<mode>"): Likewise.
3300         ("sync_add<mode>"): Likewise.
3301         ("sync_sub<mode>"): Likewise.
3302         ("sync_ior<mode>"): Likewise.
3303         ("sync_and<mode>"): Likewise.
3304         ("sync_xor<mode>"): Likewise.
3305
3306 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
3307
3308         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
3309         (remainder_optab): Define corresponding macro.
3310         (drem_optab): Remove.
3311         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
3312         drem_optab initialization.
3313         * genopinit.c (optabs): Implement remainder_optab using
3314         remainder?f3 patterns.  Remove drem_optab.
3315         * builtins.c (expand_builtin_mathfn_2): Handle
3316         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
3317         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
3318         expand_builtin_mathfn_2.
3319
3320         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
3321         depend on flag_unsafe_math_optimizations.
3322
3323         * config/i386/i386.md ("remaindersf3", "remainderdf3")
3324         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
3325         Do not depend on flag_unsafe_math_optimizations.  Use
3326         truncxf?f expander instead of truncxf?f_i387_noop.
3327
3328         ("fpremxf4", "fprem1xf4"): Do not depend on
3329         flag_unsafe_math_optimizations.
3330         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
3331         flag_unsafe_math_optimizations.  Use truncxf?f expander
3332         instead of truncxf?f_i387_noop.
3333
3334         * doc/md.texi (fmod, remainder): Document standard named pattern.
3335
3336 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
3337             David Daney  <ddaney@avtrex.com>
3338
3339         PR middle-end/29519
3340         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
3341
3342 2006-10-25  Ben Elliston  <bje@au.ibm.com>
3343
3344         * doc/extend.texi (Variable Attributes): Typo fix.
3345
3346 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
3347
3348         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
3349         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
3350         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
3351         (FRAME_POINTER_REGNUM): Update register number to 21.
3352         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
3353         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
3354
3355         * config/i386/i386.c (regclass_map): Add fpcr entry.
3356         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
3357         Add fpcr entry.
3358         (print_reg): Assert REGNO (x) != FPCR_REG.
3359
3360         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
3361         (DIRFLAG_REG): Renumber.
3362         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
3363         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
3364         (sse_prologue_save, *sse_prologue_save_insn): Renumber
3365         hardcoded SSE register numbers.
3366
3367         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
3368         hardcoded MMX register numbers.
3369
3370 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3371
3372         PR middle-end/29335
3373         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
3374         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
3375         Update all callers.
3376         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
3377         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
3378         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
3379         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
3380
3381 2006-10-24  Richard Guenther  <rguenther@suse.de>
3382
3383         PR middle-end/28796
3384         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
3385         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
3386         for deciding optimizations in consistency with fold-const.c
3387         (fold_builtin_unordered_cmp): Likewise.
3388
3389 2006-10-24  Richard Guenther  <rguenther@suse.de>
3390
3391         * builtins.c (fold_builtin_floor): Fold floor (x) where
3392         x is nonnegative to trunc (x).
3393         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
3394         nonnegative to FIX_TRUNC_EXPR.
3395
3396 2006-10-24  Richard Guenther  <rguenther@suse.de>
3397
3398         PR tree-optimization/29567
3399         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
3400         for TRUTH_NOT_EXPR.  Clarify comments.
3401
3402 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3403
3404         PR middle-end/29335
3405         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
3406         at compile-time using MPFR.  Change parameter VALUE to FUNC,
3407         update all callers.
3408         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
3409         for overflow and underflow at all times and avoid folding in
3410         those cases.
3411
3412 2006-10-24  Ben Elliston  <bje@au.ibm.com>
3413
3414         * reload1.c: Formatting fixes.
3415
3416 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
3417
3418         PR tree-optimization/14784
3419         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
3420         * tree-ssa-structalias.c (get_constraint_for,
3421         intra_create_variable_infos): Set is_heapvar.
3422         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
3423         non-heapvar pointer variables specially.
3424
3425 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3426
3427         PR middle-end/29335
3428         * builtins.c (fold_builtin_sin, fold_builtin_cos,
3429         fold_builtin_tan): Fold all constant arguments.  Take a "type"
3430         argument as necessary.
3431         (do_mpfr_arg1): New.
3432         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
3433
3434 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
3435
3436         * config/xtensa/lib1funcs.asm: Use C-style comments.
3437
3438 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
3439
3440         * tree.c (local_define_builtin): Replace calls to
3441         lang_hooks.builtin_function with add_builtin_function.
3442         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
3443         c_builtin_function.
3444         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
3445         the signature.
3446         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
3447         common code to add_builtin_function.
3448         * langhooks.c (add_builtin_function): New function.
3449         (lhd_builtin_function): New function.
3450         * langhooks.h (struct lang_hooks): Change the signature of
3451         builtin_function.
3452         (add_builtin_function): New function.
3453         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
3454         calls to lang_hooks.builtin_function with add_builtin_function.
3455         * c-common.c (decl_builtin_1): Replace calls to
3456         lang_hooks.builtin_function with add_builtin_function.
3457         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
3458         lang_hooks.builtin_function with add_builtin_function.
3459         * config/frv/frv.c (def_builtin): Replace calls to
3460         lang_hooks.builtin_function with add_builtin_function.
3461         * config/s390/s390.c (s390_init_builtins): Replace calls to
3462         lang_hooks.builtin_function with add_builtin_function.
3463         * config/sparc/sparc.c (def_builtin): Replace calls to
3464         lang_hooks.builtin_function with add_builtin_function.
3465         * config/i386/i386.c (def_builtin): Replace calls to
3466         lang_hooks.builtin_function with add_builtin_function.
3467         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
3468         lang_hooks.builtin_function with add_builtin_function.
3469         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
3470         lang_hooks.builtin_function with add_builtin_function.
3471         * config/stormy16/stormy16.c (xstormy16_init_builtins):
3472         Replace calls to lang_hooks.builtin_function with
3473         add_builtin_function.
3474         * config/iq2000/iq2000.c (def_builtin):
3475         Replace calls to lang_hooks.builtin_function with
3476         add_builtin_function.
3477         * config/ia64/ia64.c (def_builtin): Replace calls to
3478         lang_hooks.builtin_function with add_builtin_function.
3479         * config/rs6000/rs6000.c (def_builtin): Replace calls to
3480         lang_hooks.builtin_function with add_builtin_function.
3481         (altivec_init_builtins): Replace calls to
3482         lang_hooks.builtin_function with add_builtin_function.
3483         * config/arm/arm.c (def_mbuiltin): Replace calls to
3484         lang_hooks.builtin_function with add_builtin_function.
3485         (arm_init_tls_builtins): Replace calls to
3486         lang_hooks.builtin_function with add_builtin_function.
3487         * config/mips/mips.c (mips_init_builtins): Replace calls to
3488         lang_hooks.builtin_function with add_builtin_function.
3489         * config/bfin/bfin.c (def_builtin): Replace calls to
3490         lang_hooks.builtin_function with add_builtin_function.
3491         * langhooks-def.h (lhd_builtin_function): New function.
3492         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
3493
3494 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
3495
3496         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
3497         BUILT_IN_STRNCAT_CHK.
3498
3499 2006-10-23  Jan Hubicka  <jh@suse.cz>
3500
3501         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
3502         don't do conversion from memmove to memcpy here.
3503         (expand_builtin_bcopy, expand_builtin): Update call of
3504         expand_builtin_memmove.
3505         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
3506
3507 2006-10-23  Paul Brook  <paul@codesourcery.com>
3508
3509         * stor-layout.c (start_record_layout): maximum_field_alignment
3510         overrides STRUCTURE_SIZE_BOUNDARY.
3511
3512 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
3513
3514         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
3515         nonlocal function symbols if flag_pic.
3516
3517 2006-10-23  Richard Guenther  <rguenther@suse.de>
3518
3519         PR middle-end/27132
3520         PR middle-end/23295
3521         * builtins.c (fold_binary): Remove checks for flag_wrapv
3522         and flag_trapv where negate_expr_p covers these cases.
3523
3524 2006-10-23  Richard Guenther  <rguenther@suse.de>
3525
3526         PR middle-end/29548
3527         * fold-const.c (fold_plusminus_mult_expr): Check exact power
3528         of two on the absolute value.
3529         (fold_binary): Fold x * -C to -x * C if x is easily negatable
3530         and negating -C does not overflow.
3531
3532 2006-10-23  Richard Guenther  <rguenther@suse.de>
3533
3534         PR middle-end/21032
3535         * convert.c (convert_to_real): Fold (float)-x to -(float)x
3536         only if not flag_rounding_math.
3537
3538 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
3539             Kaz Kojima  <kkojima@gcc.gnu.org>
3540
3541         PR target/28232
3542         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
3543         SImode memory reference for the source of a movua.
3544         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
3545         (movua): Use an unspec instead of sign_extract.  Expect the source
3546         to have mode BLKmode.
3547         (extv, insv): Use a BLKmode rather than SImode memory reference
3548         for the source of a movua.
3549
3550 2006-10-22  Jeff Law  <law@redhat.com>
3551         Richard Guenther  <rguenther@suse.de>
3552
3553         PR tree-optimization/15911
3554         * tree-vrp.c (extract_code_and_val_from_cond): New function.
3555         (register_edge_assert_for_1): Likewise.
3556         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
3557         (find_conditional_asserts): Adjust for new function signature.
3558         (find_assert_locations): Likewise.
3559
3560 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
3561
3562         * config/i386/tmmintrin.h: Remove the duplicated content.
3563
3564 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
3565
3566         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
3567         (x86_64-*-*): Likewise.
3568
3569         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
3570         (override_options): Check SSSE3.
3571         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
3572         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
3573         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
3574         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
3575         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
3576         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
3577         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
3578         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
3579         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
3580         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
3581         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
3582         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
3583         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
3584         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
3585         IX86_BUILTIN_PABSD128.
3586         (bdesc_2arg): Add SSSE3.
3587         (bdesc_1arg): Likewise.
3588         (ix86_init_mmx_sse_builtins): Support SSSE3.
3589         (ix86_expand_builtin): Likewise.
3590         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3591
3592         * config/i386/i386.md (UNSPEC_PSHUFB): New.
3593         (UNSPEC_PSIGN): Likewise.
3594         (UNSPEC_PALIGNR): Likewise.
3595         Include mmx.md before sse.md.
3596
3597         * config/i386/i386.opt: Add -mssse3.
3598
3599         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
3600         (ssse3_phaddwv4hi3): Likewise.
3601         (ssse3_phadddv4si3): Likewise.
3602         (ssse3_phadddv2si3): Likewise.
3603         (ssse3_phaddswv8hi3): Likewise.
3604         (ssse3_phaddswv4hi3): Likewise.
3605         (ssse3_phsubwv8hi3): Likewise.
3606         (ssse3_phsubwv4hi3): Likewise.
3607         (ssse3_phsubdv4si3): Likewise.
3608         (ssse3_phsubdv2si3): Likewise.
3609         (ssse3_phsubswv8hi3): Likewise.
3610         (ssse3_phsubswv4hi3): Likewise.
3611         (ssse3_pmaddubswv8hi3): Likewise.
3612         (ssse3_pmaddubswv4hi3): Likewise.
3613         (ssse3_pmulhrswv8hi3): Likewise.
3614         (ssse3_pmulhrswv4hi3): Likewise.
3615         (ssse3_pshufbv16qi3): Likewise.
3616         (ssse3_pshufbv8qi3): Likewise.
3617         (ssse3_psign<mode>3): Likewise.
3618         (ssse3_psign<mode>3): Likewise.
3619         (ssse3_palignrti): Likewise.
3620         (ssse3_palignrdi): Likewise.
3621         (abs<mode>2): Likewise.
3622         (abs<mode>2): Likewise.
3623
3624         * config/i386/tmmintrin.h: New file.
3625
3626         * doc/extend.texi: Document SSSE3 built-in functions.
3627
3628         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
3629
3630 2006-10-22  Ira Rosen  <irar@il.ibm.com>
3631
3632         * tree-vect-transform.c (vectorizable_load): Use the type of the
3633         return value of the mask_for_load builtin to create realign_load
3634         stmt.
3635
3636 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
3637
3638         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
3639         expressions.
3640
3641 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
3642
3643         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
3644         (UNSPEC_LDDQU): This.
3645         * config/i386/sse.md (sse3_lddqu): Updated.
3646
3647 2006-10-21  Richard Guenther  <rguenther@suse.de>
3648
3649         * builtins.c (expand_builtin_int_roundingfn_2): New function.
3650         (expand_builtin): Use it to expand lrint instead of
3651         expand_builtin_mathfn.
3652
3653 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
3654
3655         PR middle-end/28252
3656         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
3657         flag_unsafe_math_optimizations is set.
3658
3659 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
3660
3661         PR target/19398
3662         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
3663         patterns to use memory input operand in x87->mem->XMM
3664         reload sequences.  Skip transformation for TARGET_K8.
3665
3666 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
3667
3668         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
3669         force operand1 to register if both operands are memory operands.
3670         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
3671         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
3672         if both operands are memory operands.
3673         (truncdfsf2): Do not force operand1 to register if both operands
3674         are memory operands.
3675
3676 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3677
3678         * Makefile.in (LIBS): Add $(GMPLIBS).
3679         * doc/install.texi: Update GMP and MPFR requirements.
3680         * doc/sourcebuild.texi (need_gmp): Delete.
3681
3682 2006-10-21  Richard Guenther  <rguenther@suse.de>
3683
3684         PR tree-optimization/3511
3685         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
3686         got new invariant arguments during PHI translation.
3687
3688 2006-10-21  Richard Guenther  <rguenther@suse.de>
3689
3690         PR middle-end/26898
3691         * fold-const.c (fold_comparison): Fold signed comparisons
3692         of the form X +- C1 CMP Y +- C2.
3693
3694 2006-10-21  Richard Guenther  <rguenther@suse.de>
3695
3696         PR target/19116
3697         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
3698         if flag_unsafe_math_optimizations is specified.  We have
3699         flag_finite_math_only for that.
3700         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
3701         or flag_unsafe_math_optimizations.
3702
3703 2006-10-21  Richard Guenther  <rguenther@suse.de>
3704
3705         * builtins.c (fold_builtin_classify): Fix typo.
3706
3707 2006-10-21  Richard Guenther  <rguenther@suse.de>
3708
3709         PR middle-end/28796
3710         * simplify-rtx.c (simplify_const_relational_operation):
3711         Do not constant-fold ORDERED and UNORDERED for
3712         flag_unsafe_math_optimizations but only we do not need to
3713         honor NaNs for the given mode.
3714
3715 2006-10-21  Richard Guenther  <rguenther@suse.de>
3716
3717         PR target/29512
3718         * config/i386/i386.c (classify_argument): Remove redundant
3719         walking of the BINFOs.
3720         (contains_128bit_aligned_vector_p): Likewise.
3721
3722 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
3723
3724         * BASE-VER: Set to 4.3.0.
3725
3726 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
3727
3728         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
3729         (tree_decl_with_vis): Remove artificial_pta_var flag.
3730         * tree-flow.h (referenced_var_check_and_insert): Expose.
3731         (nonlocal_all): New prototype.
3732         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
3733         (nonlocal_all): Make global.
3734         (nonlocal_lookup): Remove.
3735         (nonlocal_insert): Ditto.
3736         (create_nonlocal_var): Do not call nonlocal_insert.
3737         (get_nonlocal_id_for_type): Remove.
3738         (find_global_initializers): Mark new vars we find for renaming.
3739         (intra_create_variable_infos): Only create one nonlocal.
3740         (expand_nonlocal_solutions): Remove.
3741         (compute_points_to_sets): Don't call it.
3742         (ipa_pta_execute): Ditto.
3743         (init_alias_heapvars): Don't create nonlocal_for_type.
3744         (delete_alias_heapvars): Don't remove it.
3745         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
3746         nonlocal_all.
3747
3748 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
3749
3750         * doc/install.texi (Downloading GCC): Clarify mention of
3751         Fortran in the "full distribution" description.
3752
3753 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
3754
3755         Fix PR tree-optimization/28778
3756         Fix PR tree-optimization/29156
3757         Fix PR tree-optimization/29415
3758         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
3759         (tree_decl_with_vis): Add artificial_pta_var flag.
3760         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
3761         pushed into callers.
3762         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
3763         (nonlocal_all): Ditto.
3764         (struct variable_info): Add directly_dereferenced member.
3765         (var_escaped_vars): New variable.
3766         (escaped_vars_tree): Ditto.
3767         (escaped_vars_id): Ditto.
3768         (nonlocal_vars_id): Ditto.
3769         (new_var_info): Set directly_dereferenced.
3770         (graph_size): New variable
3771         (build_constraint_graph): Use graph_size.
3772         (solve_graph): Don't process constraints that cannot change the
3773         solution, don't try to propagate an empty solution to our
3774         successors.
3775         (process_constraint): Set directly_dereferenced.
3776         (could_have_pointers): New function.
3777         (get_constraint_for_component_ref): Don't process STRING_CST.
3778         (nonlocal_lookup): New function.
3779         (nonlocal_insert): Ditto.
3780         (create_nonlocal_var): Ditto.
3781         (get_nonlocal_id_for_type): Ditto.
3782         (get_constraint_for): Allow results vector to be empty in the case
3783         of string constants.
3784         Handle results of calls properly.
3785         (update_alias_info): Update alias info stats on number and type of
3786         calls.
3787         (find_func_aliases): Use could_have_pointers.
3788         (make_constraint_from_escaped): Renamed from
3789         make_constraint_to_anything, and changed to make constraints from
3790         escape variable.
3791         (make_constraint_to_escaped): New function.
3792         (find_global_initializers): Ditto.
3793         (create_variable_info_for): Make constraint from escaped to any
3794         global variable, and from any global variable to the set of
3795         escaped vars.
3796         (intra_create_variable_infos): Deal with escaped instead of
3797         pointing to anything.
3798         (set_uids_in_ptset): Do type pruning on directly dereferenced
3799         variables.
3800         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
3801         (init_base_vars): Fix comment, and initialize escaped_vars.
3802         (need_to_solve): Removed.
3803         (find_escape_constraints): New function.
3804         (expand_nonlocal_solutions): Ditto.
3805         (compute_points_to_sets): Call find_escape_constraints and
3806         expand_nonlocal_solutions.
3807         (delete_points_to_sets): Don't fall off the end of the graph.
3808         (init_alias_heapvars): Initialize nonlocal_for_type and
3809         nonlocal_all.
3810         (delete_alias_heapvars): Free nonlocal_for_type and null out
3811         nonlocal_all.
3812
3813 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
3814
3815         * fold-const.c (add_double): Rename to add_double_with_sign.
3816         Add 'unsigned_p' parameter and take it into account for the overflow.
3817         (mul_double): Rename to mul_double_with_sign.
3818         Add 'unsigned_p' parameter and take it into account for the overflow.
3819         (fold_div_compare): Call add_double_with_sign instead of add_double
3820         and mul_double_with_sign instead of mul_double, passing them the
3821         unsignedness of the type.
3822         * tree.h (add_double): Macroize.
3823         (add_double_with_sign): New prototype.
3824         (mul_double): Macroize.
3825         (mul_double_with_sign): New prototype.
3826
3827 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
3828
3829         * config/score/crti.asm: New file.
3830         * config/score/crtn.asm: New file.
3831         * config/score/elf.h: New file.
3832         * config/score/mac.md: New file.
3833         * config/score/misc.md: New file.
3834         * config/score/mul-div.S: New file.
3835         * config/score/predicates.md: New file.
3836         * config/score/score7.md: New file.
3837         * config/score/score.c: New file.
3838         * config/score/score-conv.h: New file.
3839         * config/score/score.h: New file.
3840         * config/score/score.md: New file.
3841         * config/score/score-mdaux.c: New file.
3842         * config/score/score-mdaux.h: New file.
3843         * config/score/score-modes.def: New file.
3844         * config/score/score.opt: New file.
3845         * config/score/score-protos.h: New file.
3846         * config/score/score-version.h: New file.
3847         * config/score/t-score-elf: New file.
3848         * config.gcc: Add score*-*-* configurations(Update before).
3849         * doc/invoke.texi (Score Options): New section.
3850         * doc/md.texi (Score family): New section to document constraints.
3851
3852 2006-10-19  Nick Clifton  <nickc@redhat.com>
3853
3854         * config/arm/arm.c: Fix spelling typo.
3855
3856 2006-10-18  Tom Tromey  <tromey@redhat.com>
3857
3858         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
3859
3860 2006-10-18  Jan Hubicka  <jh@suse.cz>
3861
3862         PR middle-end/29299
3863         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
3864         are used.
3865
3866 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
3867
3868         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
3869         TSI_SAME_STMT, since that's the desired entity.
3870
3871 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
3872
3873         * config/s390/contraints.md: New file.
3874         * config/s390/s390-protos.h (s390_mem_constraint,
3875         s390_O_constraint_str, s390_N_constraint_str,
3876         s390_float_const_zero_p): Function prototypes added.
3877         * config/s390/s390.c (s390_extra_constraint_str,
3878         s390_const_double_ok_for_constraint_p,
3879         s390_const_ok_for_constraint_p): Functions removed.
3880         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
3881         s390_float_const_zero_p): New functions.
3882         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
3883         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
3884         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
3885         Macro definitions removed.
3886         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
3887         s390_extra_constraint_str): Functions removed.
3888
3889 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
3890             Richard Sandiford  <richard@codesourcery.com>
3891
3892         PR target/29413
3893         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
3894         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
3895
3896 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
3897
3898         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
3899         (DWARF2_FRAME_REG_OUT): Likewise.
3900         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
3901         (DWARF2_FRAME_REG_OUT): Likewise.
3902
3903 2006-10-17  Paul Brook  <paul@codesourcery.com>
3904
3905         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
3906
3907 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
3908
3909         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
3910         Standardize on "GNU Fortran" as the official name of the Fortran
3911         compiler.
3912
3913 2006-10-16  Mike Stump  <mrs@apple.com>
3914
3915         * doc/invoke.texi (Darwin Options): Document -mkernel.
3916         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
3917         -mkernel support.
3918         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
3919         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
3920         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
3921         (OS_MISSING_ALTIVEC): Add.
3922         * config/i386/i386.c (override_options): Add
3923         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
3924         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
3925         -mkernel, -static or -mdynamic-no-pic is given.
3926         (C_COMMON_OVERRIDE_OPTIONS): Add.
3927         * config/darwin.opt (fapple-kext): Add.
3928         (mkernel): Add.
3929         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
3930         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
3931         -mkernel support.
3932         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
3933         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
3934         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
3935         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
3936         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
3937         (flag_mkernel): Add.
3938         (flag_apple_kext): Add.
3939         (TARGET_KEXTABI): Add.
3940         * config/darwin.c (darwin_handle_kext_attribute): Add.
3941         (DARWIN_VTABLE_P): Add.
3942         (darwin_binds_local_p): Add partial support for rebinding vtables
3943         in kexts.
3944         (darwin_kextabi_p): Add.
3945         (darwin_override_options): Add.
3946         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
3947         (darwin_kextabi_p): Add.
3948         (darwin_override_options): Add.
3949         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
3950         __DYNAMIC__ and __STATIC__ here.
3951
3952 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
3953
3954         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
3955         Added mention of "make pdf" target, and Texinfo requirements for
3956         same.
3957
3958 2006-10-16  DJ Delorie  <dj@redhat.com>
3959
3960         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
3961         into the GOT in case we need a subreg of the address.
3962
3963 2006-10-16  Richard Guenther  <rguenther@suse.de>
3964
3965         PR target/25519
3966         * doc/extend.texi (X86 Built-in Functions): Fix typos in
3967         SSE builtin documentation.  Document SSE2 builtins.
3968
3969 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3970
3971         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
3972         symbol in the output file for non-shared links when -nostdlib or
3973         -nodefaultlibs isn't specified.
3974
3975         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
3976         posix thread support.
3977
3978 2006-10-15  Jan Hubicka  <jh@suse.cz>