OSDN Git Service

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