OSDN Git Service

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