OSDN Git Service

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