OSDN Git Service

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