OSDN Git Service

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