OSDN Git Service

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