OSDN Git Service

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