OSDN Git Service

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