OSDN Git Service

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