OSDN Git Service

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