OSDN Git Service

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