OSDN Git Service

Short term fix for PR 28490.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-09-15  Jim Wilson  <wilson@specifix.com>
2
3         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
4         Handle symbol offsets same as they are handled in ia64_expand_move
5         and move_operand.
6
7 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
8
9         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
10         Add forgotten parameter to the fprintf call.
11
12 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
13
14         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
15
16 2006-09-15  Uros Bizjak <uros@kss-loka.si>
17
18         * doc/contrib.texi: Add my entry.
19
20 2006-09-15  Nick Clifton  <nickc@redhat.com>
21
22         * doc/md.texi (Processor pipeline description): Fix typo in
23         example of how to use the absence_set directive and reword the
24         description to make it slightly easier to read.
25
26 2005-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
27
28         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
29         * loop-doloop.c (doloop_optimize): Use it to limit costs of
30         expanding the number of iterations.
31         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
32
33         * cfgrtl.c (emit_insn_at_entry): New function.
34         * rtl.h (emit_insn_at_entry): Declare it.
35         * integrate.c (emit_initial_value_sets): Use it.
36
37         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
38
39         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
40         bad.
41         (struct loop_work and related VEC declarations): Delete.
42         (bfin_dump_loops): Print out new member bad.
43         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
44         (bfin_scan_loop): Don't recurse.
45         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
46         loops.  No longer need to update outer loops if the current one is
47         found bad.  Move some validitiy checks to bfin_discover_loop.
48         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
49         but changed not to check for nesting.  Also changed to use the new bad
50         flag.
51         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
52         time.  Use bitmap based test to discover loop nesting.
53
54 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
55
56         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
57         one line.
58
59 2006-09-14  Richard Guenther  <rguenther@suse.de>
60             Kazu Hirata  <kazu@codesourcery.com>
61
62         PR middle-end/28884.
63         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
64         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
65         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
66         with TARGET_FUNCTION_VALUE.
67
68 2006-09-14  Anatoly Sokolov <aesok@post.ru>
69
70         PR target/26504
71         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
72
73 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
74
75         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
76         of a RETURN_EXPR
77
78 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
79
80         PR debug/28980
81         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
82         FUNCTION_DECL.
83
84 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
85
86         * basic_block.h (bb_has_eh_pred): Fix comment.
87
88 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
89
90         * flow.c (calculate_global_regs_live): Invalidate eh registers
91         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
92         (propagate_block): Handle eh registers as if they were set at basic
93         block start.
94         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
95         registers.
96         * global.c (global_conflicts): Make eh registers to conflict with
97         pseudos live at basic block begin.
98         * basic_block.h (bb_has_eh_pred): New function.
99
100 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
101
102         PR rtl-optimization/28982
103         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
104         index of a PRE_MODIFY or POST_MODIFY address.
105         * reload1.c (inc_for_reload): Use find_replacement on the original
106         base and index registers.
107
108 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
109
110         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
111         for -Os. Update __m128 alignment requirement.
112
113 2006-09-13  Jan Hubicka  <jh@suse.cz>
114
115         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
116
117 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
118
119         PR rtl-optimization/28243
120         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
121         the insn to which the note was originally attached.
122
123 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
124             Roger Sayle  <roger@eyesopen.com>
125
126         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
127         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
128         on platforms that don't use dwarf for debug info.
129
130 2006-09-12  Jason Merrill  <jason@redhat.com>
131
132         PR middle-end/28493
133         * builtins.c (expand_builtin_setjmp_receiver): Clobber
134         hard_frame_pointer_rtx after using it to update the frame pointer.
135
136 2006-09-12  Roger Sayle  <roger@eyesopen.com>
137
138         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
139         (TARGET_ASM_CLOSE_PAREN): Likewise.
140         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
141         (TARGET_ASM_CLOSE_PAREN): Likewise.
142
143 2006-09-12  Roger Sayle  <roger@eyesopen.com>
144
145         PR target/22223
146         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
147         frame information for frames larger than 512 Kbytes on Tru64 when
148         using the native assembler.
149
150 2006-09-12  Roger Sayle  <roger@eyesopen.com>
151
152         PR middle-end/4520
153         PR bootstrap/28784
154         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
155         and symbols.  Instead use the implementation from cse.c's hash_rtx.
156
157 2006-09-12  Jan Hubicka  <jh@suse.cz>
158
159         PR rtl-optimization/28071
160         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
161         (vect_transform_loop): Likewise.
162         * tree-vectorizer.c (new_loop_vec_info): Likewise.
163         (new_loop_vec_info): Likewise.
164         (destroy_loop_vec_info): Likewise.
165         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
166         (create_stmt_ann): Likewise.
167         (create_tree_ann): Rename to ...
168         (create_tree_common_ann): ... this one; allocate only the common part
169         of annotations.
170         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
171         (get_value_handle): Likewise.
172         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
173         get_tree_common_ann.
174         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
175         (vinfo_for_stmt): Use stmt annotations.
176         * tree-flow.h (tree_ann_common_t): New type.
177         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
178         (tree_ann, get_tree_ann, create_tree_ann): New.
179         * tree-flow-inline.h (get_function_ann): Do more type checking.
180         (stmt_ann): Likewise.
181         (tree_ann): Rename to ...
182         (tree_common_ann): ... this one; return ony common_ann
183         (get_tree_ann): Rename to ...
184         (tree_common_ann): This one; return only common_ann.
185         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
186         of set_stmt_info.
187
188 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
189
190         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
191         with_cpu by default.
192
193         * dwarf2out.c (dwarf_file_data): New.
194         (enum dw_val_class): Add dw_val_class_file.
195         (struct dw_val_struct): Add val_file.
196         (file_table): Change to a hash table.
197         (file_table_emitted): Delete.
198         (file_table_last_lookup_index): Delete.
199         (emitcount): Delete.
200         (last_emitted_file): New.
201         (lookup_filename): Change prototype to return a struct dwarf_file_data.
202         (init_file_table): Delete.
203         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
204         (AT_addr): Add comment.
205         (add_AT_file): New.
206         (AT_file): New.
207         (get_AT_file): New.
208         (print_die): Handle dw_val_class_file.
209         (print_dwarf_line_table): Update for new file table structure.
210         (attr_checksum): Do checksum a filename.
211         (same_dw_val_p, same_attr_p): Do compare a filename.
212         (size_of_die): Handle dw_val_class_file.
213         (value_format): Likewise.
214         (output_die): Likewise.  Also, call maybe_emit_file here.
215         (struct file_info): Constify filenames.  Make file_idx a pointer
216         to a struct dwarf_file_data.
217         (struct dir_info): Constify directory names.  Remove 'used' field.
218         (struct file_name_acquire_data): New.
219         (file_name_acquire): New.
220         (output_file_names): Modify to handle new file data structures.
221         (add_src_coords_attributes): Use add_AT_file.
222         (add_call_src_coords_attributes): Likewise.
223         (dwarf2out_imported_module_or_decl): Likewise.
224         (gen_subprogram_die): Modify for new file data structures.
225         (gen_variable_die): Likewise.
226         (file_table_eq): New.
227         (file_table_hash): New.
228         (file_table_last_lookup): New.
229         (lookup_filename): Rewrite to handle new file data structures.
230         (maybe_emit_file): Rewrite to handle new file data structures.
231         (dwarf2out_source_line): Always call lookup_filename and
232         maybe_emit_file.
233         (dwarf2out_init): Create file_table here.
234         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
235         (file_table_relative_p): New.
236         (dwarf2out_finish): Change detection of relative filenames
237         to work with new file data structures.  Move output_line_info call
238         after debug_info output.
239
240 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
241
242         PR target/13685
243         PR target/27537
244         PR target/28621
245         * config/i386/i386.c (override_options): Always default to 16
246         byte stack boundary.
247
248 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
249
250         PR target/28672
251         * var-tracking.c (dump_dataflow_set): Start dumping at
252         register zero.
253         (clobber_variable_part): Kill only the variable part in
254         registers holding it, leaving other variables alone.
255
256 2006-09-11  Josh Triplett  <josh@freedesktop.org>
257
258         * doc/extend.texi (Other Builtins): Actually use the macro
259         argument in the documentation example for
260         __builtin_types_compatible_p.
261
262 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
263
264         PR rtl-optimization/28726
265         * sched-deps.c (sched_analyze_reg): New function extracted from...
266         (sched_analyze_1): ...here.  Call it to analyze references to
267         registers.  Treat again writes to a stack register as writing to the
268         register.
269         (sched_analyze_2): ...and here.  Call it to analyze references to
270         registers.  Treat again reads of a stack register as reading the
271         register.
272
273 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
274             David Edelsohn  <edelsohn@gnu.org>
275
276         PR target/27287
277         * config/rs6000/spe.md (frob_df_di): Remove %H.
278         (frob_di_df): Remove %H.  Change evmergelo to mr.
279         (frob_di_df_2): Remove %H.  Change evldd to two loads.
280
281 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
282
283         * doc/cpp.texi: Fix names of charset options.
284
285 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
286
287         PR target/29009
288         * config/i386/i386.c (override_options): Use 128-bit
289         stack boundary always for 64bits.
290
291 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
292
293         PR rtl-optimization/28636
294         * combine.c (force_to_mode): Test for side-effects before
295         substituting by zero.
296         (simplify_shift_const): Likewise for zero or other constants.
297
298 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
299
300         PR middle-end/26983
301         * builtins.c (expand_builtin_setjmp): Force next_lab to be
302         preserved.
303
304 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
305
306         PR target/29006
307         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
308         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
309         returned by mode_for_size, rather than the mode of src itself,
310         to choose between 32-bit and 64-bit patterns.
311         (mips_mem_fits_mode_p): New function.
312         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
313         that the size of the source matches the size of the destination.
314         (mov_<store>l, mov_<store>r): Likewise.
315
316 2006-09-10  Eric Christopher  <echristo@apple.com>
317
318         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
319         for literal16.
320
321 2006-09-09  Eric Christopher  <echristo@apple.com>
322
323         PR target/28995
324         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
325         for literal16.
326
327 2006-09-09  Roger Sayle  <roger@eyesopen.com>
328             Nicolas Setton <setton@adacore.com>
329
330         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
331
332 2006-09-10  Andreas Schwab  <schwab@suse.de>
333
334         * config/m68k/m68k.md (bungt_rev): New pattern.
335
336 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
337             Dale Johannesen  <dalej@apple.com>
338
339         PR target/26778
340         * regclass.c (struct reg_pref): Update documentation.
341         (regclass): Set prefclass to NO_REGS if memory is the best option.
342         (record_reg_classes): Cope with a prefclass set to NO_REGS.
343
344 2006-09-08  Eric Christopher  <echristo@apple.com>
345
346         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
347         * config/t-slibgcc-darwin: Support x86_64 multilib.
348         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
349         Return 1 for x86_64-darwin.
350         * config/i386/t-darwin: Add m64 multilib.
351         (LIB2_SIDITI_CONV_FUNCS): Use.
352         (LIB2FUNCS_EXTRA): Ditto.
353         * config/i386/darwin.h: Support x86_64.
354         * config/i386/i386.c (override_options): Turn on flag_pic
355         for x86_64-darwin. Disable flag_omit_pointer.
356         (get_pc_thunk_name): Assert !TARGET_64BIT.
357         (legitimate_address_p): Disable machopic addressing for
358         x86_64.
359         (legitimize_pic_address): Ditto.
360         (ix86_expand_move): Ditto.
361         (ix86_expand_call): Ditto.
362         (machopic_output_stub): Ditto.
363         * config/darwin.c (machopic_select_section): Support literal16.
364         (machopic_select_rtx_section): Ditto.
365         * config/darwin-sections.def: Ditto.
366         * config/darwin-64.c: New.
367
368 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
369
370         PR c/28504
371         * c-tree.h (struct c_arg_info): Add pending_sizes.
372         * c-parser.c (c_parser_parms_declarator,
373         c_parser_parms_list_declarator): Initialize pending_sizes.
374         * c-decl.c (get_parm_info): Initialize pending_sizes.
375         (get_parm_info): Set pending_sizes.
376         (grokdeclarator): Call put_pending_sizes for parameters for
377         function definition only.
378
379 2006-09-07  Jason Merrill  <jason@redhat.com>
380
381         PR middle-end/27724
382         * varasm.c (output_constant): Only strip actual no-op conversions.
383
384         PR target/13685
385         * config/i386/i386.c (override_options): Use 128-bit
386         stack boundary if -msse.
387
388 2006-09-07  Eric Christopher  <echristo@apple.com>
389
390         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
391         comment.
392         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
393         Redefine.
394
395 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
396
397         * dwarf2out.c: Remove strange characters from comment above
398         dwarf2out_frame_debug_expr.
399
400 2006-09-07  Eric Christopher  <echristo@apple.com>
401
402         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
403         * config/darwin.h: ... to here.
404
405 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
406
407         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
408
409         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
410         (TARGET_PARTIAL_FLAG_REG_STALL): New.
411
412         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
413         TARGET_PARTIAL_FLAG_REG_STALL.
414         (*ashldi3_cconly_rex64): Likewise.
415         (*ashlsi3_cmp): Likewise.
416         (*ashlsi3_cconly): Likewise.
417         (*ashlsi3_cmp_zext): Likewise.
418         (*ashlhi3_cmp): Likewise.
419         (*ashlhi3_cconly): Likewise.
420         (*ashlqi3_cmp): Likewise.
421         (*ashlqi3_cconly): Likewise.
422         (*ashrdi3_cmp_rex64): Likewise.
423         (*ashrdi3_cconly_rex64): Likewise.
424         (*ashrsi3_cmp): Likewise.
425         (*ashrsi3_cconly): Likewise.
426         (*ashrsi3_cmp_zext): Likewise.
427         (*ashrhi3_cmp): Likewise.
428         (*ashrhi3_cconly): Likewise.
429         (*ashrqi3_cmp): Likewise.
430         (*ashrqi3_cconly): Likewise.
431         (*lshrdi3_cmp_rex64): Likewise.
432         (*lshrdi3_cconly_rex64): Likewise.
433         (*lshrsi3_cmp): Likewise.
434         (*lshrsi3_cconly): Likewise.
435         (*lshrsi3_cmp_zext): Likewise.
436         (*lshrhi3_cmp): Likewise.
437         (*lshrhi3_cconly): Likewise.
438         (*lshrqi2_cmp): Likewise.
439         (*lshrqi2_cconly): Likewise.
440
441 2006-09-07 Uros Bizjak <uros@kss-loka.si>
442
443         PR target/28946
444         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
445         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
446         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
447         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
448         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
449         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
450         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
451         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
452         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
453         implement only CC setting effects of shift instructions.
454
455 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
456
457         * doc/contrib.texi: Add myself.
458
459 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
460
461         PR middle-end/28862
462         * stor-layout.c (relayout_decl): Don't zero the alignment if it
463         was set by the user.
464
465 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
466
467         PR target/27117
468         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
469         (divsi_inv_m1): Use them.
470         (UNSPEC_DIV_INV_TABLE): New constant.
471
472 2006-09-06  James E Wilson  <wilson@specifix.com>
473
474         PR rtl-opt/27883
475         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
476         then call count_or_remove_death_notes.
477
478 2006-09-06  Jason Merrill  <jason@redhat.com>
479
480         PR c++/27371
481         * tree-inline.c (copy_result_decl_to_var): New fn.
482         (declare_return_variable): Use it.  Call declare_inline_vars here.
483         (expand_call_inline): Not here.
484
485 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
486
487         * doc/contrib.texi: Update my entry.
488
489 2006-09-06  Nick Clifton  <nickc@redhat.com>
490
491         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
492
493 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
494
495         PR tree-opt/28937
496         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
497         (canonicalize_induction_variables): Likewise.
498         (tree_unroll_loops_completely): Likewise.
499         (tree_ssa_prefetch_arrays): Likewise.
500         (remove_empty_loops): Likewise.
501         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
502         TODO_cleanup_cfg instead of directly calling
503         cleanup_tree_cfg_loop.
504         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
505         Likewise.
506         (tree_unroll_loops_completely): Likewise.
507         (remove_empty_loops): Likewise.
508         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
509         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
510         of tree_ssa_unswitch_loops.
511         (tree_ssa_loop_ivcanon): Use the return value of
512         canonicalize_induction_variables.
513         (tree_ssa_empty_loop): Use the return value of
514         remove_empty_loops.
515         (tree_complete_unroll): Use the return value of
516         tree_unroll_loops_completely.
517         (tree_ssa_loop_prefetch): Use the return value of
518         tree_ssa_prefetch_arrays.
519         * passes.c (execute_todo): Before Cleanup CFG, set
520         updating_used_alone and after cleanup CFG, call
521         recalculate_used_alone.
522
523 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
524
525         PR tree-opt/28952
526         * tree-vect-transform.c (vectorizable_condition): Move the check
527         for the type after the check for simple condition.
528
529 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
530             Kaz Kojima  <kkojima@gcc.gnu.org>
531
532         PR target/28764
533         * mode-switching.c (optimize_mode_switching): Make the destination
534         block of an abnormal edge have no anticipatable mode.  Don't
535         insert mode switching code at the end of the source block of
536         an abnormal edge.
537
538 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
539
540         PR rtl-optimization/26847
541         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
542         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
543         (simplify_plus_minus): Count n_constants while filling ops.  Replace
544         qsort with insertion sort.  Before going through the array to simplify
545         pairs, sort it.  Delay early exit until after the first sort, exiting
546         only if no swaps occurred.  Simplify pairs in reversed order, without
547         special-casing the first iteration.  Pack ops after simplifying pairs.
548
549 2006-09-05  Anatoly Sokolov <aesok@post.ru>
550
551         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
552         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
553         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
554         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
555
556 2006-09-05  Richard Guenther  <rguenther@suse.de>
557
558         PR tree-optimization/28900
559         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
560         compound conditional before creating COND_EXPR condition.
561
562 2006-09-05  Richard Guenther  <rguenther@suse.de>
563
564         PR tree-optimization/28905
565         * tree-vrp.c (fix_equivalence_set): Manually implement
566         !value_ranges_intersect_p to also handle symbolic ranges.
567
568 2006-09-05  Richard Guenther  <rguenther@suse.de>
569
570         PR middle-end/28935
571         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
572         of a COND_EXPR.
573
574 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
575
576         PR rtl-optimization/27616
577         * cse.c (table_size): New static variable.
578         (new_basic_block): Initialize it to 0.
579         (remove_from_table): Decrement it.
580         (insert): Increment it.
581         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
582         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
583         fold_rtx_mem_1 if under the cap.
584         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
585         the lookup of the equivalent expression and test for equality of the
586         first operand of the equivalent expression before in turn looking up
587         an equivalent constant for the second operand.
588
589 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
590
591         Revert this change:
592         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
593         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
594         pointer, instead of assuming it is possible to derive the
595         correct args size from a call insn.
596
597 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
598
599         PR middle-end/27567
600         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
601         (fold_builtin_mempcpy): Rename to...
602         (fold_builtin_memory_op): ... this.  Optimize one element copy
603         into an assignment.
604         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
605         functions.
606         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
607         (expand_builtin_memcpy, expand_builtin_mempcpy,
608         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
609         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
610         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
611         BUILT_IN_MEM{CPY,PCPY,MOVE}.
612
613 2006-09-01  DJ Delorie  <dj@redhat.com>
614
615         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
616         (stzx_16): Likewise.
617         ("stzx_24_<mode>"): Likewise.
618         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
619         ("cmp<mode>_op"): New.
620         (cmp<mode>): Change to expander; just save operands.
621         (b<code>_op): New.
622         (b<code>): Change to expander, emit compare here.
623         (s<code>_op): Change to use split and expander.
624         (s<code>_24_op): Likewise.
625         (s<code>_<mode>): New.
626         (s<code>_<mode>_24): New.
627         (movqicc_<code>_<mode): New.
628         (movhicc_<code>_<mode>): New.
629         (s<code>): New.
630         (s<code>_24): New.
631         * config/m32c/m32c.c (compare_op0, compare_op1): New.
632         (m32c_pend_compare): New.
633         (m32c_unpend_compare): New.
634         (m32c_expand_scc): New.
635         (m32c_expand_movcc): Emit the compare also.
636         * config/m32c/predicates.md (mra_nopp_operand): New.
637
638 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
639         Richard Guenther  <rguenther@suse.de>
640         Adam Nemet  <anemet@caviumnetworks.com>
641
642         PR middle-end/27226
643         * builtins.c (get_pointer_alignment): Handle more forms
644         of base addresses that can be used to derive more precise
645         information about alignment.
646
647 2006-09-01  Jason Merrill  <jason@redhat.com>
648
649         PR c++/28899
650         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
651         want_value.
652
653         * gimplify.c (voidify_wrapper_expr): Handle null type.
654
655 2006-09-01  Josh Conner  <jconner@apple.com>
656
657         PR c++/25505
658         * tree-nrv.c (dest_safe_for_nrv_p): New function.
659         (execute_return_slot_opt): Use it.
660
661 2006-08-31  Josh Conner  <jconner@apple.com>
662
663         PR c++/25505
664         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
665         returning aggregates.
666
667 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
668
669         PR tree-optimization/28839
670         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
671         blocks in that phi arguments appear.
672
673 2006-08-31  Roger Sayle  <roger@eyesopen.com>
674
675         PR other/22313
676         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
677         NULL, otherwise use an advance_loc4 to adjust relative to the
678         current label.
679         (output_cfi) <DW_CFA_set_loc>: Update the current label.
680         (dwarf2out_switch_text_section): Reset the current label to avoid
681         using advance_loc4 over section boundaries.
682
683 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
684
685         PR target/24367
686         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
687         r12 + SYMBOLIC_CONST.
688
689 2006-08-30  Richard Guenther  <rguenther@suse.de>
690
691         * Makefile.in (see.o): Add $(EXPR_H) dependency.
692
693 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
694
695         PR rtl-optimization/27735
696         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
697         Add new argument to keep track of whether an irreducible region
698         was affected.  All callers changed.
699         (fix_irreducible_loops): Removed.
700         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
701         flags were invalidated.
702
703 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
704
705         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
706         instead of SF operands.
707         (*fop_df_comm_sse): Likewise.
708         (*fop_df_comm_i387): Likewise.
709         (*fop_df_1_mixed): Likewise.
710         (*fop_df_1_sse): Likewise.
711
712 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
713             J"orn Rennecke  <joern.rennecke@st.com>
714
715         PR tree-optimization/17506
716         * tree-ssa.c (warn_uninit): If warning about a location outside of
717         the current function, note where the variable was declared.
718
719 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
720
721         PR tree-optimization/28411
722         * double-int.c (double_int_div): Use double_int_divmod.
723         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
724         double_int_mod, double_int_smod, double_int_umod): New functions.
725         * double-int.h (double_int_divmod, double_int_sdivmod,
726         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
727         Declare.
728         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
729         in double_int.
730         (get_computation_aff, get_computation_cost_at): Handle double_int
731         return type of constant_multiple_of.
732
733 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
734
735         PR middle-end/26632
736         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
737         an implicit conversion.
738
739 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
740
741         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
742
743 2006-08-27  Roger Sayle  <roger@eyesopen.com>
744
745         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
746         x87 instructions.
747
748 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
749
750         * config/i386/crtfastmath.c: Fix a comment typo.
751
752 2006-08-26  Roger Sayle  <roger@eyesopen.com>
753
754         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
755         temporary visit flags on CASE_LABEL_EXPRs.
756         * c-common.c (match_case_to_enum): Add function comment.  Avoid
757         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
758         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
759         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
760         a constant, only warn if that constant value isn't handled.
761
762 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
763
764         PR c++/24009
765         * input.h (restore_input_file_stack): Declare.
766         (INPUT_FILE_STACK_BITS): Define.
767         * toplev.c (fs_p, input_file_stack_history,
768         input_file_stack_restored, restore_input_file_stack): New.
769         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
770         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
771         (pop_srcloc): Don't free old state of stack.
772
773 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
774
775         PR target/27544
776         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
777         (PowerPC Type Attributes): New.
778
779 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
780
781         * config/xtensa/xtensa.c (function_arg_boundary): New.
782         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
783         STACK_BOUNDARY.
784         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
785         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
786
787 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
788
789         PR middle-end/28683
790         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
791         3 following insns.
792
793 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
794
795         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
796         (verify_local_live_at_start): Likewise.
797
798 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
799
800         PR c/27893
801         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
802         omp_add_variable): Treat sizes as variable whenever not
803         INTEGER_CST.
804
805 2006-08-26  Richard Guenther  <rguenther@suse.de>
806
807         PR middle-end/28814
808         * fold-const.c (fold_binary): Fold temporary to correct
809         type before constructing new comparison.
810
811 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
812
813         PR c/28418
814         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
815         variable again if DECL_SEEN_IN_BIND_EXPR_P.
816
817 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
818
819         PR c/28299
820         * c-decl.c (start_function): Don't try to process prototype
821         information from old declaration that isn't a function.
822
823 2006-08-25  Jan Hubicka  <jh@suse.cz>
824
825         PR target/28621
826         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
827
828 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
829
830         PR target/27075
831         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
832         for 8 byte objects.
833
834 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
835
836         PR tree-optimization/16876
837         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
838         exit if PARM doesn't match VALUE.
839
840 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
841
842         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
843         literal_prefix directive.
844         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
845         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
846         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
847
848 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
849
850         PR target/28753
851         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
852         predicate to general_operand.  Add 0->y and I->r alternatives.
853
854 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
855
856         * doc/tm.texi: Fix a typo.
857         * predict.c: Fix comment typos.
858
859 2006-08-25  Nick Clifton  <nickc@redhat.com>
860
861         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
862         assertions of "cpu" and "machine".
863
864 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
865
866         PR tree-opt/28807
867         * tree-ssa-operands.c (access_can_touch_variable): Don't say
868         the access through a base which has an alias set of 0 cannot
869         touch the variable.
870
871 2006-08-24  Bill Wendling  <wendling@apple.com>
872
873         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
874
875 2006-08-24  Jan Hubicka  <jh@suse.cz>
876
877         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
878
879 2006-08-24  Jan Hubicka  <jh@suse.cz>
880
881         PR debug/26881
882         * cgraph.c: Fix comments.
883         (cgraph_varpool_mark_needed_node): Mark only variables not already
884         output to file.
885         * cgraphunit.c: Update comments; include gt-cgraphunit.h
886         (cgraph_varpool_assembled_nodes_queue): New static variable.
887         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
888         (cgraph_varpool_output_debug_info): New function.
889         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
890         * Makefile.in: Add gt-cgraphunit.h
891
892 2006-08-24  Jan Hubicka  <jh@suse.cz>
893
894         * predict.c (probability_reliable_p): New predicate.
895         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
896         (predict_loops): Do not predict loop exit with less than 2%
897         probability.
898         * basic-block.h (edge_probability_reliable_p,
899         br_prob_note_reliable_p): Declare.
900         * ia64.h (ia64_print_operand): Do not disable on-chip branch
901         prediction when static predictor is not reliable.
902         * rs6000.c (output_cbranch): Likewise.
903
904 2006-08-23  Stuart Hastings  <stuart@apple.com>
905
906         PR 28825
907         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
908         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
909
910 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
911
912         PR debug/28692
913         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
914         complex values, nor for generic vector values.
915
916 2006-08-22  Richard Guenther  <rguenther@suse.de>
917
918         PR middle-end/28776
919         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
920         parameter.  Convert arguments to arithmetic expression to the
921         chrecs type.
922         (analyze_scalar_evolution_1): Adjust caller.
923
924 2006-08-22  Jan Hubicka  <jh@suse.cz>
925
926         Patch by Paolo Bonzini
927         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
928         my previous patch.
929
930 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
931
932         PR tree-optimization/28003
933         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
934         before grouping aliases.
935
936 2006-08-22  Roger Sayle  <roger@eyesopen.com>
937
938         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
939         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
940
941 2006-08-21  Jason Merrill  <jason@redhat.com>
942
943         PR c++/27115
944         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
945         wrapper.  Loop to handle nested wrappers.
946         (gimplify_bind_expr): Remove temp parameter.
947         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
948         and STATEMENT_LIST on the rhs.
949         (gimplify_statement_list): Voidify the STATEMENT_LIST.
950         (gimplify_expr): Pass pre_p to gimplify_statement_list.
951         (gimplify_target_expr): Remove special BIND_EXPR handling.
952
953 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
954
955         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
956         #if !__SHMEDIA__ .
957
958 2006-08-21  Olivier Hainque  <hainque@adacore.com>
959
960         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
961         Arrange for the temporary captures of components overlapping the lhs
962         to happen before the lhs is possibly cleared.
963
964 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
965
966         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
967         necessary places to pass the correct "number of registers" values
968         to _Unwind_VRS_Pop.
969
970 2006-08-20  Jan Hubicka  <jh@suse.cz>
971
972         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
973         (create_name_tags): Instead of quadratic checking use hashtable.
974         * bitmap.h: Include hashtab.h.
975         (bitmap_hash): Declare.
976         * bitmap.c (bitmap_hash): New function.
977
978 2006-08-20  Jan Hubicka  <jh@suse.cz>
979
980         PR rtl-optimization/28071
981         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
982         twice.
983         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
984         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
985         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
986         cgraph_decide_inlining_incrementally): Update use of
987         cgraph_check_inline_limits.
988         * cgraph.c (edge_hash, edge_eq): New function.
989         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
990         cgraph_edge_remove_caller, cgraph_node_remove_callees,
991         cgraph_remove_node): Maintain call site hash.
992         * cgraph.h (struct cgraph_node): Add call_site_hash.
993         (cgraph_set_call_stmt): New function.
994
995 2006-08-20  Jan Hubicka  <jh@suse.cz>
996
997         PR rtl-optimization/28071
998         * reload1.c (reg_has_output_reload): Turn into regset.
999         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
1000         choose_reload_regs, emit_reload_insns): Update to new
1001         reg_has_output_reload.
1002
1003 2006-08-20  Jan Hubicka  <jh@suse.cz>
1004
1005         PR middle-end/28779
1006         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
1007         function body sizes.
1008         * cgraphunit.c (cgraph_analyze_function): Don't do so.
1009
1010 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
1011
1012         PR target/28648 c:
1013         * tree.c (handle_dll_attribute): Return early if not a
1014         var or function decl.
1015
1016 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
1017
1018         PR target/27565
1019         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
1020         alignment of SPE vector types.
1021
1022 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1023
1024         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
1025
1026 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
1027
1028         PR c/28744
1029         * cgraph.h (struct cgraph_node): Remove externally_visible
1030         bitfield.
1031         * cgraphunit.c (process_function_and_variable_attributes): Set
1032         local.externally_visible rather than externally_visible.
1033
1034         PR c/28744
1035         * c-common.c (handle_externally_visible_attribute): First look
1036         at TREE_CODE and only if it is function or var decl, check for
1037         non-public objects.  Don't warn for DECL_EXTERNAL.
1038         * cgraphunit.c (process_function_and_variable_attributes): Warn
1039         if externally_visible attribute is used on non-public object.
1040
1041 2006-08-17  Jan Hubicka  <jh@suse.cz>
1042
1043         PR tree-optimization/27865
1044         * reload1.c (forget_marked_reloads): New function.
1045         (forget_old_reloads_1): When data are passed, just mark the registers
1046         for later removal.
1047         (reload_as_needed): Use the new mechanizm.
1048
1049 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
1050
1051         PR target/28146
1052         * reload.h (reg_equiv_alt_mem_list): New declaration.
1053         * reload1.c (reg_equiv_alt_mem_list): New definition.
1054         (reload): Initialize it and release it.
1055         (delete_output_reload): Use it.
1056         * reload.c (push_reg_equiv_alt_mem): New function.
1057         (find_reloads_toplev): Call it.
1058         (find_reloads_address, find_reloads_address_1): Likewise.
1059         (find_reloads_subreg_address): Likewise.
1060
1061 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1062
1063         PR rtl-optimization/28489
1064         * sched-ebb.c (begin_schedule_ready): Create basic block
1065         at the right place.
1066         (advance_target_bb): Skip empty blocks.
1067         * haifa-sched.c (bb_note): Make global.
1068         * sched-int.h (bb_note): Add prototype.
1069
1070 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1071
1072         PR tree-optimization/27865
1073         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1074         for pointer types.
1075         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1076         fold_used_pointer, pointer_used_p): New functions.
1077         (analyze_scalar_evolution_1): Use fold_used_pointer.
1078         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1079         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1080         for pointers.
1081
1082 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
1083
1084         PR c++/28573
1085         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1086         or the INTEGER_CST.  Fail on a CALL_EXPR.
1087         (fold_offsetof): Pass new argument to fold_offsetof_1.
1088         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1089         operand into an INDIRECT_REF.
1090         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1091
1092 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1093
1094         PR gcov/profile/26570
1095         * value-prof.c (static_values): Removed.
1096         (tree_find_values_to_profile): Do not set static_values.
1097         (find_values_to_profile): Do not free static_values.
1098         * profile.c (instrument_values): Do not free the values.
1099         (branch_prob): Free the values.
1100
1101 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
1102
1103         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1104
1105 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
1106
1107         PR c/27697
1108         * c-typeck.c (build_component_ref): Combine qualifiers of
1109         structure or union and field.
1110
1111 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1112
1113         PR rtl-optimization/28071
1114         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1115         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1116         * tree-into-ssa.c (struct dom_dfsnum): New.
1117         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1118         functions.
1119         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1120         compute_global_livein.
1121         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1122         in phi nodes in the correct blocks.
1123
1124 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1125
1126         PR tree-optimization/28364
1127         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1128         correctly.
1129         (fold_affine_expr): New function.
1130         (may_eliminate_iv): Use fold_affine_expr.
1131
1132 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1133
1134         PR c/27489
1135         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1136         Clean up.
1137
1138 2006-08-16  Mike Stump  <mrs@apple.com>
1139
1140         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1141         * doc/cppopts.texi (-MD): Likewise.
1142
1143 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
1144
1145         PR c/28287
1146         * c-common.c (handle_weak_attribute): Ignore and warn if
1147         not a FUNCTION_ or VAR_DECL.
1148
1149 2006-07-15  Mike Stump  <mrs@apple.com>
1150
1151         PR c/28280
1152         * c-parser.c (c_parser_typeof_specifier): Don't use
1153         c_finish_expr_stmt, open code desired semantics instead.
1154
1155 2006-08-15  Nick Clifton  <nickc@redhat.com>
1156
1157         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1158         fragment to tmake_file only if threads are enabled.
1159         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1160         * config/i386/t-gthr-win32: New file. ... here.
1161
1162 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1163
1164         PR c/28649
1165         * c-parser.c (c_parser_compound_statement_nostart): Reset
1166         parser->error after each statement.
1167
1168 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
1169
1170         PR middle-end/28713
1171         * omp-low.c (lower_omp_parallel): Convert t to
1172         receiver_decl's type.
1173         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1174         source before comparison.
1175
1176         PR middle-end/28724
1177         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1178         to itype in assignment to oldival2.
1179
1180 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
1181
1182         PR c/27490
1183         PR c/27489
1184         * c-typeck.c (build_compound_expr): If the second expression
1185         is an error mark, then just return an error mark instead of
1186         creating a COMPOUND_EXPR.
1187
1188 2006-07-14  Mike Stump  <mrs@apple.com>
1189
1190         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1191
1192 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
1193
1194         * c-decl.c, var-tracking.c: Fix comment typos.
1195
1196 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
1197
1198         PR rtl-optimization/28634
1199         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1200         for floating-point modes unless flag_unsafe_math_optimizations.
1201
1202 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
1203             Andrew Pinski  <pinskia@physics.uc.edu>
1204
1205         PR c/27184
1206         * tree.c (build_array_type): Unify array types with
1207         unspecified index_type.
1208         * c-decl.c (grokdeclarator): Make sure we do not modify a
1209         unified incomplete array type.
1210         * c-typeck.c (store_init_value): Create distinct type before
1211         filling in the index type in an initializer from a compound
1212         literal.
1213
1214         * c-decl.c (grokdeclarator): Remove code where we copy the
1215         array type over.
1216
1217 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
1218
1219         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1220         into account for TODO_dump_cgraph.
1221         (TODO_update_ssa_no_phi): Likewise.
1222         (TODO_update_ssa_full_phi): Likewise.
1223         (TODO_update_ssa_only_virtuals): Likewise.
1224         (TODO_remove_unused_locals): Likewise.
1225         (TODO_set_props): Likewise.
1226         (TODO_update_stmt_usage): Likewise.
1227
1228 2006-08-13  Dirk Mueller  <dmueller@suse.de>
1229
1230         * c-common.c (strict_aliasing_warning): Fix formatting.
1231
1232 2006-08-13  Matthias Klose  <doko@debian.org>
1233
1234         * doc/invoke.texi: Fix spelling errors.
1235
1236 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1237
1238         PR rtl-optimization/23454
1239         * reorg.c (relax_delay_slots): Update comment.
1240
1241 2006-08-11  Richard Guenther  <rguenther@suse.de>
1242
1243         PR middle-end/28651
1244         * simplify-rtx.c (simplify_const_relational_operation):
1245         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1246         codes.
1247
1248 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
1249
1250         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1251         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1252
1253 2006-08-10  Paul Brook  <paul@codesourcery.com>
1254
1255         * final.c (final_scan_insn): Clear current_insn_predicate before
1256         outputting inline asm.
1257
1258 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
1259
1260         PR tree-optimization/26197
1261         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1262         get_ref_base_and_extent and overlap_subvar to add only relevant
1263         subvars as may-aliases.
1264         (add_may_alias_for_new_tag): New function, factored out of
1265         new_type_alias.
1266         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1267         with additional argument.
1268         * tree-flow.h (new_type_alias): Takes additional argument.
1269
1270 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
1271
1272         * gcov.c (no_data_file): New flag.
1273         (read_count_file): Set it if data file not present.  Assume counts
1274         zero if not found.
1275         (output_lines): Don't name the data file, if there wasn't one.
1276
1277 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
1278
1279         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1280         (rs6000_generate_compare): Tweak comments.
1281         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1282
1283 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
1284
1285         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1286         (var_debug_decl): New function.
1287         (var_reg_set): Follow debug decl link.  Add location even if
1288         reg is already known to hold some other variable.
1289         (var_mem_set): Follow debug decl link.
1290         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1291         decl link.  Delete other known locations of the variable part
1292         if requested.
1293         (var_reg_delete, var_mem_delete): Delete other known locations
1294         of the variable part if requested.
1295         (same_variable_part_p): New function.
1296         (add_stores): Select MO_COPY when appropriate.
1297         (vt_initialize): Handle it.
1298         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
1299         known locations for MO_SET and MO_CLOBBER.
1300         (find_variable_location_part): New function.
1301         (set_variable_part, delete_variable_part): Use it.
1302         (clobber_variable_part): New function.
1303         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1304         decl link.
1305
1306 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
1307
1308         PR tree-optimization/26969
1309         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1310         with an empty list of PHIs.
1311
1312 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
1313
1314         PR target/27827
1315
1316         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1317         instructions.
1318
1319 2006-08-06  Andreas Schwab  <schwab@suse.de>
1320
1321         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1322         string.  Whitespace and comment fixup.
1323
1324 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1325
1326         PR c/28502
1327         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1328         argument.
1329
1330         PR c/27721
1331         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1332
1333         PR c/28136
1334         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1335
1336 2006-08-04  Jan Hubicka  <jh@suse.cz>
1337
1338         PR target/26655
1339         PR target/28270
1340         * reload.c (push_reload): Patch out the mismatching instruction;
1341         return early.
1342         (find_reload): Bail out if the instruction was patched out.
1343
1344 2006-08-04  Jan Hubicka  <jh@suse.cz>
1345
1346         PR tree-optimization/24888
1347         * tree-inline.c (expand_call_inline): Do not re-record variables.
1348         (declare_inline_vars): Add variable to unexpanded_var_list.
1349
1350 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1351             Roger Sayle  <roger@eyesopen.com>
1352
1353         PR rtl-optimization/26244
1354         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
1355         inner_const are negative or greater than or equal to the bitsize of
1356         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
1357         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
1358         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
1359         CONST0_RTX (mode) when the new shift count is greater than or equal to
1360         to the bitsize of the object being shifted and XEXP (y, 0) has no side
1361         effects.
1362
1363 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
1364
1365         * tree-cfg.c: Fix a comment typo.
1366
1367 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
1368
1369         PR c++/28148
1370         * varasm.c (output_constant): Give the front end another chance to
1371         expand constants, after stripping NOPs.
1372
1373 2006-08-03  Jan Hubicka  <jh@suse.cz>
1374
1375         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
1376         implementation.
1377
1378 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
1379
1380         PR tree-optimization/27770
1381         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
1382         declaration removed (moved to tree-flow.h).
1383         (vect_can_force_dr_alignment_p): Likewise.
1384         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
1385         (moved from tree-vectorizer.h).
1386         (vect_can_force_dr_alignment_p): Likewise.
1387         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1388         from outside the vectorizer - in particular from cgraph stage.
1389         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1390         the alignment of global arrays when -fsection-anchors is enabled.
1391         * cgraphunit.c (cgraph_increase_alignment): New function.
1392         (cgraph_optimize): Call cgraph_increase_alignment.
1393
1394 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
1395
1396         PR target/27566
1397         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1398         not reload a SPE symbol_ref into a lo_sum address.
1399
1400 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
1401
1402         PR debug/28063
1403         * dwarf2out.c (prune_unused_types_prune): Move call to
1404         prune_unused_types_update_strings to cover the parent DIE also.
1405
1406 2006-08-02  Jan Hubicka  <jh@suse.cz>
1407
1408         PR gcov/profile/28480
1409         * tree-cfg.c (change_bb_for_stmt): New function.
1410         (tree_merge_blocks, tree_split_blocks): Use it.
1411
1412 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1413
1414         PR c++/28250
1415         PR c++/28257
1416         PR c++/28259
1417         PR c++/28267
1418         * toplev.c (compile_file): Return early on errorcount or sorrycount.
1419         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
1420         (cgraph_optimize): Likewise.
1421
1422 2006-08-01  Stuart Hastings  <stuart@apple.com>
1423
1424         * rtl.h (UINTVAL) New.
1425         * config/rs6000/rs6000.c (SMALL_INT) Use it.
1426         * testsuite/gcc.dg/20060801-1.c: New.
1427
1428 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1429
1430         PR debug/23336
1431         * c-typeck.c (build_external_type): Mark used enum types.
1432         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
1433         cfun also.
1434         (gen_subprogram_die): Whitespace fix.
1435
1436 2006-08-01  Jan Hubicka  <jh@suse.cz>
1437
1438         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
1439         bitmap when not needed.
1440         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
1441         bitmaps.
1442
1443 2006-08-01  Dirk Mueller  <dmueller@suse.de>
1444
1445         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
1446
1447 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1448
1449         * Makefile.in: Revert part of previous patch:
1450         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
1451         and REGS_H.
1452
1453 2006-07-30  Eric Christopher  <echristo@apple.com>
1454
1455         PR target/27543
1456         * doc/extend.texi (i386 Variable Attributes): Add anchor.
1457         (PowerPC Variable Attributes): New section.
1458
1459 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
1460
1461         PR target/28126 (partial fix)
1462         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
1463
1464 2006-07-28  Jan Hubicka  <jh@suse.cz>
1465
1466         PR rtl-optimization/28071
1467         * cfgrtl.c (rtl_delete_block): Free regsets.
1468         * flow.c (allocate_bb_life_data): Re-use regsets if available.
1469
1470 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1471
1472         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
1473         and variables used in dependencies.
1474
1475 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
1476
1477         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
1478         %fs for -mcmodel=kernel.
1479         (stack_tls_protect_test_di): Likewise.
1480
1481 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
1482
1483         * Makefile.in: Use mkinstalldirs.
1484
1485 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
1486
1487         PR driver/28437
1488         * opts-common.c (prune_options): Skip joined switches.
1489
1490 2006-07-27  Jan Hubicka  <jh@suse.cz>
1491
1492         PR rtl-optimization/28071
1493         * cselib.c (cselib_process_insn): Don't remove useless values too
1494         often for very large hashtables.
1495
1496 2006-07-27  Jan Hubicka  <jh@suse.cz>
1497
1498         PR rtl-optimization/28071
1499         * global.c (greg_obstack): New obstack.
1500         (allocate_bb_info): Use it.
1501         (free_bb_info): Likewise.
1502         (modify_reg_pav): Likewise.
1503
1504 2006-07-27  Roger Sayle  <roger@eyesopen.com>
1505
1506         * builtins.c (fold_fixed_mathfn): When long and long long are the
1507         same size, canonicalize llceil*, llfloor*, llround* and llrint*
1508         functions to their lceil*, lfloor*, lround* and lrint* forms.
1509
1510 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1511
1512         PR gcc/28508
1513         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1514         branch.
1515         (rev_branch_insn): Likewise.
1516
1517 2006-07-27  Jan Hubicka  <jh@suse.cz>
1518
1519         PR rtl-optimization/28071
1520         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1521         (reg_set_in_bb, max_reg_computed): New static variables.
1522         (regmove_optimize): Free the new array.
1523         (fixup_match_1): Update call of reg_is_remote_constant_p.
1524
1525 2006-07-26  Jan Hubicka  <jh@suse.cz>
1526
1527         PR tree-optimization/27882
1528         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1529         and decl fields.
1530         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1531         next pointer
1532         (cgraph_analyze_compilation_unit): Likewise.
1533         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1534         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1535         (cgraph_early_inlinine): Make order garbage collected.
1536         * Makefile.in (gt-ipa-inline): New garbagecollected file.
1537
1538 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1539
1540         * dbxout.c (output_types_sort): Add a comment.
1541         (output_used_types): Free the VEC.
1542
1543 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1544
1545         * function.c (reorder_fix_fragments): Delete.
1546         (reorder_blocks): Don't call it.
1547         (reorder_blocks_1): Put all subblocks under the origin block.
1548
1549 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
1550
1551         PR rtl-optimization/27907
1552         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1553         FLOAT_TRUNCATE.
1554
1555 2006-07-25  Roger Sayle  <roger@eyesopen.com>
1556
1557         PR middle-end/28473
1558         * convert.c (convert_to_integer): When transforming (T)foo(x) into
1559         bar(x) check that bar's result type can represent all the values of T.
1560
1561 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
1562
1563         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1564
1565 2006-07-25  Nick Clifton  <nickc@redhat.com>
1566
1567         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1568         size_lookup[] array.
1569         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1570         (ggc_pch_count_object): Likewise.
1571         (ggc_pch_alloc_object): Likewise.
1572         (ggc_pch_write_object): Likewise.
1573         (init_ggc): Do not attempt to initialize entries in the
1574         size_lookup[] array for objects whose size is greater than than
1575         the length of the array.
1576
1577 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
1578
1579         * dbxout.c (output_used_types_helper): Push queued types
1580         on a VEC.
1581         (output_types_sort): New.
1582         (output_used_types): Collect used types on a VEC and sort them
1583         before emission.
1584
1585 2006-07-24  Richard Guenther  <rguenther@suse.de>
1586
1587         PR middle-end/28463
1588         * cgraph.c (cgraph_remove_node): Do not check if dumps
1589         are enabled.
1590         * cgraphunit.c (cgraph_optimize): Likewise.
1591
1592 2006-07-24  Jan Hubicka  <jh@suse.cz>
1593
1594         PR rtl-optimization/28071
1595         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1596         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1597         splitting before first stmt.
1598
1599 2006-07-24  Jan Hubicka  <jh@suse.cz>
1600
1601         PR rtl-optimization/28071
1602         * ipa-inline.c (update_caller_keys): Remove edges that
1603         are no longer inline candidates.
1604
1605 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1606
1607         PR debug/27473
1608         * dbxout.c (output_used_types_helper, output_used_types): New.
1609         (dbxout_symbol): Call output_used_types.
1610
1611 2006-07-23  Jan Hubicka  <jh@suse.cz>
1612
1613         PR c/25795
1614         PR c++/27369
1615         * cgraph.c (cgraph_varpool_nodes): Export.
1616         (decide_is_variable_needed): Ignored "used" attribute in
1617         unit-at-a-time mode.
1618         * cgraph.h (cgraph_varpool_nodes): Declare.
1619         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1620         unit-at-a-time mode.
1621
1622 2006-07-23  Roger Sayle  <roger@eyesopen.com>
1623
1624         PR target/28247
1625         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1626         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
1627         the __gthrw form of thr_keycreate.
1628         (__gthread_key_delete): Silence the unused argument warning.
1629
1630 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
1631
1632         PR debug/25468
1633         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1634         Cache the last found '\0' marker to avoid quadratic behavior.
1635
1636 2006-07-23  Jan Hubicka  <jh@suse.cz>
1637
1638         * i386.md (subsi_3_zext): Fix output template.
1639
1640 2006-07-21  Mike Stump  <mrs@apple.com>
1641
1642         * doc/invoke.texi (C++ Dialect Options): Note that
1643         -fvisibility-inlines-hidden doesn't affect explicitly
1644         instantiationed inline methods.
1645
1646 2006-07-20  Roger Sayle  <roger@eyesopen.com>
1647
1648         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1649         if the target assembler is GNU binutils' gas.
1650         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1651         whether to pass GNU gas or native as command line options.
1652
1653 2006-07-20  Jason Merrill  <jason@redhat.com>
1654
1655         * tree.c (remove_attribute): New fn.
1656         * tree.h: Declare it.
1657
1658 2006-07-20  Paul Brook  <paul@codesourcery.com>
1659
1660         PR 27363
1661         * cse.c (cse_insn): Add destination addresses to hash table. Check if
1662         they are invalidated by this instruction.
1663
1664 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
1665
1666         PR target/28427
1667         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1668
1669 2006-07-20  Eric Christopher  <echristo@apple.com>
1670
1671         PR target/26877
1672         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1673
1674 2006-07-19  Eric Christopher  <echristo@apple.com>
1675
1676         * config/t-slibgcc-darwin (stmp-lipo): Remove.
1677         Rewrite dependencies for libgcc_s.1.dylib.
1678
1679 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
1680
1681         * except.c (duplicate_eh_regions_1): Clear next_peer.
1682
1683 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
1684
1685         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1686         -mlongcall does not guarantee all calls will be long.
1687         * doc/extend.texi (long_call/short_call): Document that longcall
1688         does not guarantee a long call will be used.
1689         (longcall/shortcall): Likewise.
1690
1691 2006-07-18  Roger Sayle  <roger@eyesopen.com>
1692
1693         PR middle-end/28283
1694         * expmed.c (expand_shift): Additionally check that the shift_cost
1695         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1696         before implementing a LSHIFT_EXPR as a sequence of additions.
1697         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1698         middle-end that DImode shifts need to be synthesized by expand.
1699
1700 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
1701
1702         PR 28410
1703         * tree-ssa-operands.c (access_can_touch_variable): Update
1704         comment.
1705         Return true if ALIAS is .GLOBAL_VAR.
1706
1707 2006-07-18  David Daney  <ddaney@avtrex.com>
1708
1709         * gcc.c (display_help): Fix typo in help text.
1710
1711 2006-07-18  Olivier Hainque  <hainque@adacore.com>
1712
1713         * tree.h (categorize_ctor_elements): Adjust prototype and add
1714         descriptive comment, both in accordance with the interface change
1715         described below.
1716         * varasm.c (constructor_static_from_elts_p): New function.
1717         Whether a constructor node is a valid static constant initializer
1718         if all its elements are.
1719         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1720         * output.h: Declare it.
1721         * expr.c (categorize_ctor_elements_1): Return whether the constructor
1722         is a valid constant initializer instead of computing the number of
1723         non-constant elements.  Use constructor_static_from_elts_p for this
1724         purpose.  Replace the head comment with an indication that this is a
1725         helper for categorize_ctor_elements.
1726         (categorize_ctor_elements): Same interface change as for the _1
1727         helper.  Former head comment from this helper moved here, adjusted to
1728         account for the interface changes.
1729         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1730         (all_zeros_p): Likewise.
1731         * gimplify.c (gimplify_init_constructor): Decide whether we can make
1732         static versions of the constructor from the categorize_ctor_elements
1733         return value instead of the formerly computed number of non-constant
1734         elements.
1735
1736 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
1737
1738         * configure: Regenerate.
1739         * Makefile.in (build_libsubdir): New configure substitution
1740         (build_libobjdir): New variable.
1741         (BUILD_LIBIBERTY): Use it.
1742
1743 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1744
1745         PR c/28286
1746         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1747
1748 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
1749
1750         PR c/26993
1751         * c-common.c (handle_weakref_attribute): Ignore attribute in
1752         the same conditions the alias attribute is ignored.
1753
1754 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
1755
1756         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1757         (dbxout_begin_prologue): Increment scope_labelno.
1758
1759 2006-07-17  Richard Henderson  <rth@redhat.com>
1760
1761         PR 27889
1762         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1763         if needed.
1764
1765 2006-07-17  Roger Sayle  <roger@eyesopen.com>
1766             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1767
1768         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1769         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
1770         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
1771         functions such as sbrk, write, etc..  Add function prototypes.
1772         Convert function declarations from K&R to ISO C.  Cast pointers
1773         to "long" and "unsigned long" instead of "int" and "unsigned int".
1774         Convert tokens following #endif into comments.
1775
1776 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
1777
1778         * invoke.texi: Remove mention of f77; Reformat table for
1779         inline parameter options correctly; mention that -malign-double
1780         is default on x86-64 targets.
1781
1782 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
1783
1784         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1785         (convert_affine_scev, chrec_convert_aggressive): Use
1786         avoid_arithmetics_in_type_p.  Do not check for the subtypes
1787         separately.
1788
1789 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1790
1791         PR middle-end/28403
1792         * optabs.c (expand_doubleword_shift): Wrap the call to
1793         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1794
1795 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1796
1797         PR middle-end/28402
1798         * optabs.c (expand_binop): Pass next_methods rather than methods
1799         to expand_doubleword_shift.
1800
1801 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
1802
1803         PR other/28251
1804         * tree.h (dump_addr): Declare.
1805         * print-tree.c (dump_addr): New function.
1806         (print_node_brief, print_node): Use it.
1807         * print-rtl.c (print_rtx): Likewise.
1808         * common.opt (-fdump-noaddr): New option.
1809         * doc/invoke.texi (-fdump-noaddr): Document.
1810         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1811         (ve_info_hash): Likewise.
1812
1813 2006-07-13  Andrew Haley  <aph@redhat.com>
1814
1815         PR tree-optimization/19505
1816         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1817         edge leaving this block, make sure that the destination of this
1818         block has only one predecessor.
1819
1820 2006-07-17  Richard Guenther  <rguenther@suse.de>
1821
1822         PR tree-optimization/28238
1823         * tree-inline.c (copy_bb): Check if we produced valid
1824         gimple copying and substituting a stmt.  If not, gimplify
1825         it.
1826
1827 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
1828
1829         * optabs.c (maybe_encapsulate_block): New function extracted from...
1830         (emit_libcall_block): ...here.  Invoke it on the block of insns to
1831         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
1832         (emit_no_conflict_block): Likewise.
1833
1834 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1835
1836         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
1837
1838 2006-07-15  Roger Sayle  <roger@eyesopen.com>
1839
1840         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
1841         a new NOP_EXPR case of the switch statement.
1842
1843 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1844
1845         PR middle-end/28160
1846         * stor-layout.c (place_field): Take the bit field with
1847         an excessive size into account in the ms-bitfiled case.
1848
1849         PR middle-end/28161
1850         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
1851         the previous bit field.
1852
1853 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
1854
1855         PR target/27287
1856         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
1857
1858 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
1859
1860         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
1861         signal frames correctly even when the signal was installed with
1862         sa_restorer set.
1863
1864 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
1865
1866         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
1867         (dbxout_function_end): Use local label LFBB. Remove hook
1868         DBX_OUTPUT_NFUN.
1869         (dbxout_source_line): Use local label LFBB.
1870         (dbxout_block): Likewise.
1871         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
1872         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
1873         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
1874         and DBX_OUTPUT_NFUN.
1875
1876 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
1877
1878         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
1879
1880 2006-07-13  Jan Hubicka  <jh@suse.cz>
1881
1882         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
1883         align_variable.
1884         * output.h (align_variable): Declare.
1885         * varasm.c (align_variable): Export.
1886         * value-prof.c (tree_value_profile_transformations): Recompute iterator
1887         when basic block changed.
1888
1889 2006-07-13  Nick Clifton  <nickc@redhat.com>
1890
1891         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
1892         walking the LOG_LINKS chain.
1893
1894 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
1895
1896         * doc/invoke.texi (C++ Dialect Options): Explain difference
1897         between -fvisibility-inlines-hidden and setting hidden
1898         visibility explicitly.
1899
1900 2006-07-12  Eric Christopher  <echristo@apple.com>
1901
1902         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
1903         (stmp-lipo): Depend on libgcc.a.
1904
1905 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
1906
1907         * tree.c: Fix a comment typo.
1908
1909 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
1910
1911         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
1912         dest.
1913         (umulhisi3_r): Likewise.
1914
1915 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
1916
1917         PR libstdc++/27878
1918         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
1919         x < 19, vs wchar_t support.
1920
1921 2006-07-12  Nick Clifton  <nickc@redhat.com>
1922
1923         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
1924         instead of -isa=sh4.
1925
1926 2006-07-12  Mike Stump  <mrs@apple.com>
1927
1928         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
1929
1930 2006-07-10  Eric Christopher  <echristo@apple.com>
1931
1932         * config/t-slibgcc-darwin: Rewrite.
1933
1934 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1935
1936         PR bootstrap/20437
1937         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
1938         dependencies.
1939
1940 2006-07-08  Matthias Klose  <doko@debian.org>
1941
1942         * doc/sourcebuild.texi: Fix typo.
1943
1944 2006-07-07  Mike Stump  <mrs@apple.com>
1945
1946         * toplev.c (process_options): Don't give -ffunction-sections may
1947         affect debugging warning for Mach-O.
1948
1949 2006-07-07  James E Wilson  <wilson@specifix.com>
1950
1951         * config/mips/mips.md (cpu): Add sb1a.
1952         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
1953         addition to sb1.  Adjust comments to clarify SB-1A differences from
1954         SB-1.
1955         (ir_sb1a_load): New.  Modify bypasses to use it.
1956         (ir_sb1a_simple_alu): Likewise.
1957         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1958         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1959         (mips_issue_rate): Add PROCESSOR_SB1A.
1960         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1961         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1962         (TARGET_SB1): Add PROCESSOR_SB1A check.
1963         (TUNE_SB1): Likewise.
1964
1965         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1966         * config/mips/mips.c (mips_store_data_bypass_p): New.
1967         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1968         store_data_bypass_p.
1969
1970 2006-07-08  Paul Brook  <paul@codesourcery.com>
1971
1972         PR target/27991
1973         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1974
1975 2006-07-07   Richard Guenther  <rguenther@suse.de>
1976
1977         PR middle-end/28268
1978         * tree.h (build_one_cst): Declare.
1979         * tree.c (build_one_cst): New function.
1980         * tree-ssa-math-opts.c (get_constant_one): Remove.
1981         (insert_reciprocals): Use build_one_cst.
1982         * fold-const.c (fold_plusminus_mult): Likewise.
1983
1984 2006-07-07  Roger Sayle  <roger@eyesopen.com>
1985
1986         * pointer-set.c (pointer_set_destroy): Correct whitespace.
1987         * cfgloopanal.c (dump_graph): Likewise.
1988         * dojump.c (discard_pending_stack_adjust): Likewise.
1989         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1990         Likewise.
1991         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1992         * function.c (finalize_block_changes): Likewise.
1993         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1994         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1995         * rtl.c (dump_rtx_statistics): Likewise.
1996         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1997         Likewise.
1998         * varray.c (dump_varray_statistics): Likewise.
1999         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2000         decode_decimal64, encode_decimal128, decode_decimal128,
2001         decimal_real_to_decimal): Likewise.
2002
2003 2006-07-07  Richard Guenther  <rguenther@suse.de>
2004
2005         PR tree-optimization/28187
2006         * tree-vrp.c (vrp_operand_equal_p): New function.
2007         (vrp_bitmap_equal_p): Likewise.
2008         (update_value_range): Use them to compare old and new
2009         max and min values.
2010
2011 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2012
2013         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
2014         a default case to switch statement to silence compiler warnings.
2015
2016 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2017
2018         PR target/27968
2019         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
2020         the configured assembler supports the x87's ffreep mnemonic.
2021         * configure: Regenerate.
2022         * config.in: Regenerate.
2023
2024         * config/i386/i386.c (output_387_ffreep): New function.
2025         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
2026         (output_387_reg_move): Likewise.
2027
2028 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
2029
2030         Port to hosts whose 'sort' and 'tail' implementations
2031         treat operands with leading '+' as file names, as POSIX
2032         has required since 2001.  However, make sure the code still
2033         works on pre-POSIX hosts.
2034         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
2035         which says you should use "tail -c +N" rather than "tail +Nc".
2036         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2037
2038 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
2039
2040         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
2041         argument name.
2042
2043 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2044
2045         PR target/28150
2046         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2047         PRE_{INC,DEC} of TFmode.
2048
2049 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2050             Alan Modra  <amodra@bigpond.net.au>
2051
2052         PR target/28170
2053         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2054         bounds. Simplify.
2055
2056 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2057
2058         PR target/28285
2059         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2060         Remove duplicate gtu.
2061
2062 2006-07-05  Jason Merrill  <jason@redhat.com>
2063
2064         PR c++/13983
2065         PR c++/17519
2066         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2067         * c-common.c (handle_packed_attribute): So don't copy it here.
2068         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2069
2070 2006-07-05  Mike Stump  <mrs@apple.com>
2071
2072         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2073
2074 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2075
2076         PR target/26146
2077         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2078
2079 2006-07-05  Richard Guenther  <rguenther@suse.de>
2080
2081         PR target/28158
2082         * config/i386/i386.md (*negdf2_1): Restrict pattern to
2083         TARGET_SSE2 targets if using SSE math.
2084         (*absdf2_1): Likewise.
2085
2086 2006-07-05  Richard Guenther  <rguenther@suse.de>
2087
2088         PR tree-optimization/28162
2089         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2090         make sure to convert the operands to the correct type.
2091
2092 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
2093
2094         PR tree-optimization/28218
2095
2096         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2097         to calculate and free the dominator information.
2098
2099 2006-07-04  Peter O'Gorman  <peter@pogma.com>
2100
2101         * mklibgcc.in: chmod 644 before ranlib during install.
2102
2103 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
2104             J"orn Rennecke <joern.rennecke@st.com>
2105
2106         * configure.ac (.eh_frame data check): Use diff -b.
2107
2108 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2109
2110         PR bootstrap/18058
2111         * Makefile.in (BUILD_RTL): Add build/vec.o.
2112         (build/gencondmd.o): Filter out -fkeep-inline-functions.
2113         (build/genextract): Delete.
2114         (build/genautomata): Likewise.
2115
2116 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
2117
2118         PR target/28207
2119         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2120         128-bit IBM long doubles for ABI_V4.
2121
2122 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2123
2124         * tree.c (range_in_array_bounds_p): New predicate.
2125         * tree.h (range_in_array_bounds_p): Declare it.
2126         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2127         return a less conservative answer.
2128         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2129         and flag 'is_group'.
2130         (IS_ELEMENT_FOR_GROUP): New macro.
2131         (FOR_EACH_ACTUAL_CHILD): Likewise.
2132         (next_child_for_group): New helper function.
2133         (can_completely_scalarize_p): Take into account groups.
2134         (sra_hash_tree): Handle RANGE_EXPR.
2135         (sra_elt_eq): Likewise.
2136         (lookup_element): Be prepared for handling groups.
2137         (is_valid_const_index): Delete.
2138         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2139         instead of is_valid_const_index.
2140         <ARRAY_RANGE_REF>: New case.
2141         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2142         is_valid_const_index.
2143         <ARRAY_RANGE_REF>: Do not unconditionally punt.
2144         (scan_dump): Dump info for groups too.
2145         (decide_instantiation_1): Likewise.
2146         (decide_block_copy): Assert that the element is not a group.
2147         Propagate decision to groups.
2148         (generate_one_element_ref): Handle RANGE_EXPR.
2149         (mark_no_warning): Iterate over actual childs.
2150         (generate_copy_inout): Likewise.
2151         (generate_element_copy): Likewise.
2152         (generate_element_zero): Likewise.
2153         (generate_element_init_1): Likewise.
2154         (dump_sra_elt_name): Handle RANGE_EXPR.
2155
2156 2006-07-03  Roger Sayle  <roger@eyesopen.com>
2157
2158         PR tree-optimization/26251
2159         * tree-ssa-threadupdate.c (redirection_block_p): New function.
2160         (thread_block): When optimizing for size refuse to thread jumps
2161         that would require duplication of blocks other than redirection
2162         blocks.
2163
2164 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2165
2166         * configure.ac: Fix thinko in previous check-in.
2167         * configure: Regenerate.
2168
2169 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2170
2171         PR other/27063
2172         * configure.ac (for lang...): Simplify nesting of conditionals.
2173         Test subdir_requires for non-enabled languages.  Move processing
2174         of lang_opt_files and lang_tree_fiels below that test.
2175         * configure: Regenerate.
2176         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2177
2178 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
2179
2180         * doc/gcov.texi (Invoking Gcov): Add a missing word.
2181
2182 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
2183
2184         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2185         comment typos.
2186
2187 2006-06-29  Jason Merrill  <jason@redhat.com>
2188
2189         PR c++/26905
2190         PR c++/26612
2191         PR c++/27000
2192         PR c++/26984
2193         PR c++/19134
2194         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2195         * c-common.c (c_determine_visibility): Handle it here.
2196         * c-decl.c (finish_decl): Call c_determine_visibility for
2197         functions, too.
2198         * flags.h (enum symbol_visibility): Sort from most to least visibility.
2199         * tree.h: Likewise.
2200         * varasm.c (default_assemble_visibility): Likewise.
2201         * c-common.c (handle_visibility_attribute): Complain about trying
2202         to give visibility to an already defined class, or trying to change
2203         declared visibility. Always attach the attribute.
2204
2205         PR c++/26905
2206         PR c++/21675
2207         PR c++/17470
2208         * attribs.c (decl_attributes): Ignore type-in-place attributes
2209         once the type has been defined.
2210
2211 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2212
2213         PR middle-end/27428
2214         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2215         to indicate the cpplib has issued an error message for us.
2216
2217 2006-06-29  Asher Langton  <langton2@llnl.gov>
2218
2219         PR target/25765
2220         * config/i386/i386.c (ix86_output_function_epilogue): Don't
2221         insert a label at the end of an function under Mach-O.
2222
2223 2006-06-29  Eric Christopher  <echristo@apple.com>
2224             Evan Cheng  <evan.cheng@apple.com>
2225
2226         * predicates.md (vector_all_ones_operand): New.
2227         (nonimmediate_or_sse_const_operand): Ditto.
2228         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2229         * config/i386/i386.c (standard_sse_constant_opcode): Define.
2230         (standard_sse_mode_p): Ditto.
2231         (standard_sse_constant_p): Add case for -1 vector.
2232         (ix86_expand_vector_move): Try to use.
2233         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2234         Call standard_sse_constant_opcode.
2235         (*movv4sf_internal): Ditto.
2236         (*movv2df_internal): Ditto.
2237
2238 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2239
2240         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2241         of XEXP to extract the operands of a MATCH_CODE rtx.
2242
2243 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
2244
2245         * tree.c (tree_size): Do not waste tail padding in
2246         struct tree_string and make the size be the same as
2247         build_string will generate.
2248
2249 2006-06-28  Jason Merrill  <jason@redhat.com>
2250
2251         PR c++/27768
2252         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2253         may_aliases already in the tag's annotations to the bitmap.
2254
2255 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2256
2257         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2258
2259 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2260
2261         * genpreds.c (generate_switch_p): New function.
2262         (add_mode_tests): Push the new mode test down inside an AND expr
2263         if this allows the switch-suitable MATCH_CODE to be near the root.
2264         (write_match_code_switch): New function to write a MATCH_CODE as
2265         a switch statement.
2266         (write_predicate_stmts): New function to write a predicate RTX
2267         expression as a sequence of statements.
2268         (write_one_predicate_function): Use write_predicate_stmts.
2269         (write_tm_constrs_h): Likewise.
2270
2271 2006-06-26  Fred Fish  <fnf@specifix.com>
2272
2273         * config/mips/t-sb1: New file.
2274         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2275         tmake_file list.
2276
2277 2006-06-26  DJ Delorie  <dj@redhat.com>
2278
2279         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2280
2281 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
2282             Jayant Sonar  <jayants@kpitcummins.com>
2283             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
2284
2285         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2286         (subsi3, subsi3_1, subsi3_2): New.
2287         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2288         * config/m32c/mov.md (SI mov peephole): New.
2289         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2290         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2291
2292 2006-06-26  Olivier Hainque  <hainque@adacore.com>
2293
2294         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2295         a CALL_EXPR target function declaration.
2296
2297 2006-06-26  Richard Guenther  <rguenther@suse.de>
2298
2299         * tree.c (build_string): Do not waste tail padding in
2300         struct tree_string.
2301
2302 2006-06-26  Richard Guenther  <rguenther@suse.de>
2303
2304         * ggc-page.c (init_ggc): Add missing element to size_lookup
2305         table.
2306
2307         Revert
2308         2006-06-23  Richard Guenther  <rguenther@suse.de>
2309
2310         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2311         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
2312         alignment requests instead.  Add verification code.
2313         Add struct tree_function_decl and struct tree_binfo size to
2314         extra_order_size_table.  Add missing element to size_lookup
2315         table.
2316
2317 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
2318
2319         PR middle-end/28151
2320         * fold-const.c (const_binop): Be prepared for self returning zero.
2321         Simplify code handling complex values.
2322
2323 2006-06-24  Olivier Hainque  <hainque@adacore.com>
2324
2325         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2326         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2327         aggregate types.
2328
2329 2006-06-24  Olivier Hainque  <hainque@adacore.com>
2330
2331         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2332         ARRAY_REF, so have the callback called for the low bound expression.
2333
2334 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
2335
2336         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2337         * c-typeck.c (c_common_type): Disallow operations on decimal float
2338         types and other float types.
2339         * convert.c (convert_to_real): Don't ignore conversions involving
2340         decimal float types.
2341
2342 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2343
2344         * tree.c (max_int_size_in_bytes): New function, inspired from
2345         code in function.c:assign_temp.
2346         * tree.h (max_int_size_in_bytes): Declare.
2347         * function.c (assign_temp): Use it.
2348         * gimplify.c (create_tmp_var): Relax the assertions on the type
2349         properties, not mandating constant size any more.
2350         (force_constant_size): New static function.
2351         (gimple_add_tmp_var): Use it, forcing variable size to a
2352         constant upper bound if it is not constant on entry.
2353
2354 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
2355
2356         PR target/27789
2357         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
2358         for initialization and setting of one_only flag to ...
2359         (i386_pe_encode_section_info): ...here.
2360         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
2361         Recheck that the symbol has not been defined.
2362
2363 2006-06-23  Richard Guenther  <rguenther@suse.de>
2364
2365         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2366         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
2367         alignment requests instead.  Add verification code.
2368         Add struct tree_function_decl and struct tree_binfo size to
2369         extra_order_size_table.  Add missing element to size_lookup
2370         table.
2371
2372 2006-06-22  Roger Sayle  <roger@eyesopen.com>
2373             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2374
2375         PR middle-end/28131
2376         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
2377         call to lang_hooks.types.type_for_mode returned NULL_TREE.
2378
2379 2006-06-23  Ben Elliston  <bje@au.ibm.com>
2380
2381         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
2382         negate dn -- manipulate it directly.
2383
2384 2006-06-22  Roger Sayle  <roger@eyesopen.com>
2385             Steven Bosscher  <stevenb.gcc@gmail.com>
2386
2387         PR target/27531
2388         * reload1.c (gen_reload): Call mark_jump_label on the new insns
2389         generated by gen_move_insn to add REG_LABEL notes if necessary.
2390
2391 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
2392
2393         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2394         (leaf_entry): Remove use of MIN_ESA.
2395
2396 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
2397
2398         PR rtl-optimization/28121
2399         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2400         the entry edge.
2401
2402 2006-06-21  DJ Delorie  <dj@redhat.com>
2403
2404         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2405         (TN-16C-A156A/E).
2406         (mulhisi3_r): Likewise.
2407
2408 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
2409
2410         PR middle-end/28034
2411         * coverage.c (coverage_counter_alloc): Leave the index type
2412         unspecified.
2413         (coverage_counter_alloc): Use null arguments for operands 2 and 3
2414         of the ARRAY_REF.
2415
2416 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
2417
2418         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
2419         section from the "Options for Code Generation Conventions".
2420
2421 2006-06-21  Richard Henderson  <rth@redhat.com>
2422
2423         PR target/26347
2424         PR target/27082
2425         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
2426         symbols.
2427         (global_symbolic_operand): Allow weak symbols, even if local_p.
2428
2429 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
2430
2431         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
2432         (find_interesting_uses_address): Punt if above function returns true.
2433
2434 2006-06-21  Richard Guenther  <rguenther@suse.de>
2435
2436         * configure: Regenerated.
2437
2438 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
2439
2440         * config/mips/mips.c (function_arg): Where one part of a
2441         complex argument is in registers and the other part in the stack,
2442         return a REG not a PARALLEL.
2443
2444 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
2445
2446         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
2447         when cross-compiling.  Do not substitute libstdcxx_incdir.
2448         * configure: Regenerated.
2449
2450 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
2451
2452         * varasm.c (mergeable_string_section): Check for embedded NULs and
2453         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
2454         rather than TREE_STRING_LENGTH bytes.
2455
2456 2006-06-21  Richard Guenther  <rguenther@suse.de>
2457
2458         * ggc-page.c (extra_order_size_table): Add var_ann_d,
2459         tree_ssa_name, bitmap_element and phi_node with 4 arguments
2460         sizes.
2461
2462 2006-06-21  Richrad Guenther  <rguenther@suse.de>
2463
2464         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2465         Limit iteration over the dominators.
2466
2467 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2468
2469         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
2470         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2471
2472 2006-06-20  Richard Guenther  <rguenther@suse.de>
2473         Michael Matz  <matz@suse.de>
2474
2475         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
2476         function.
2477         * alloc-pool.c (free_alloc_pool_if_empty): New function.
2478         * et-forest.h (et_free_pools): Prototype new function.
2479         * et-forest.c (et_free_tree_force): Free parent occurrence.
2480         (et_free_pools): New function.
2481         * dominance.c (free_dominance_info): Free et-forest alloc
2482         pools.
2483
2484 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2485
2486         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
2487         integer modes, attempt to directly construct an integer constant.
2488
2489         * fold-const.c (native_encode_vector): Determine the size of each
2490         element from the vector type instead of the first vector element.
2491
2492         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2493         if all of its elements/components are constant.
2494         (build_constructor_from_list): Likewise.
2495
2496 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
2497
2498         PR tree-optimization/27331
2499         * tree-data-ref.c (free_data_ref): New function.
2500         (create_data_ref): Fail if the data reference has unknown access
2501         function.
2502         (free_data_refs): Use free_data_ref.
2503
2504 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
2505
2506         PR middle-end/28075
2507         * tree-inline.c (setup_one_parameter): Strip useless
2508         type conversion before adding it to the IR.
2509         (declare_return_variable): Likewise.
2510
2511 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
2512
2513         PR c/27149
2514         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2515
2516 2006-06-19  Mike Stump  <mrs@apple.com>
2517
2518         * tree.c (variably_modified_type_p): VM arguments don't make the
2519         type a VM type.
2520
2521 2006-06-19  Richard Guenther  <rguenther@suse.de>
2522
2523         * tree-ssa-pre.c (try_combine_conversion): Strip useless
2524         type conversions after folding.
2525
2526 2006-06-19  Richard Guenther  <rguenther@suse.de>
2527
2528         * ggc-page.c (extra_order_size_tab): Add entries with
2529         size of struct function and basic_block.
2530         (size_lookup): Extend to cover sizes up to 511.
2531         (ggc_alloc_stat): Adjust user.
2532         (ggc_pch_count_object): Likewise.
2533         (ggc_pch_alloc_object): Likewise.
2534         (ggc_pch_write_object): Likewise.
2535
2536 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
2537
2538         * tree-ssa-loop-niter.c (implies_ge_p): New function.
2539         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2540         correctly.
2541
2542 2006-06-19  Denis Chertykov  <denisc@overta.ru>
2543
2544         * config/avr/libgcc.S : Correct my wrong previous commit.
2545
2546 2006-06-19  Roger Sayle  <roger@eyesopen.com>
2547
2548         PR target/27861
2549         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2550         have stripped a SUBREG from the shift count, so we may need to
2551         convert_to_mode back to the type's mode before calling make_tree.
2552         Use new_amount instead of amount to avoid expanding a tree twice.
2553
2554 2006-06-19  Richard Guenther  <rguenther@suse.de>
2555
2556         PR middle-end/28045
2557         * fold-const.c (operand_equal_p): Check if the argument types
2558         have the same precision before stripping NOPs.
2559
2560 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
2561
2562         Fix PR tree-optimization/27341
2563         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2564         statement we get.
2565         * tree-complex.c (pass_lower_complex): Update SMT usage.
2566
2567 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2568
2569         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2570         Add a new alternative to the constraint strings. Add move of
2571         operand 1 to 3 to the splitter definition.
2572         ("doloop_si_long"): Second contraint alternative removed.
2573
2574 2006-06-08  Anatoly Sokolov <aesok@post.ru>
2575
2576         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2577         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2578         __AVR_HAVE_LPMX__.
2579         (AVR_HAVE_MOVW) Define.
2580         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2581         (ASM_SPEC): Add avr25.
2582         (LINK_SPEC): Add avr25.
2583         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2584         (base_arch_s): Add new member 'have_movw_lpmx'.
2585         (avr_arch_types): Init 'have_movw_lpmx'.
2586         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2587         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2588         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2589         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2590         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2591         AVR_HAVE_MOVW.
2592         (avr_file_start): Do not output '.arh' derective.
2593         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2594         (__do_copy_data): Use __AVR_HAVE_LPMX__.
2595         * config/avr/avr.md (mcu_enhanced): Delete.
2596         (mcu_have_movw): Define.
2597         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2598         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2599         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2600         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2601         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2602         attiny861 and at86rf401 devices.
2603
2604 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
2605
2606         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2607         of 4096.
2608
2609 2006-06-17  Karl Berry  <karl@gnu.org>
2610
2611         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2612         doc/gccint.texi, doc/install.texi (@dircategory): Use
2613         "Software development" instead of "Programming", following
2614         the Free Software Directory.
2615
2616 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
2617
2618         * config/i386/i386.c (legitimate_tls_address)
2619         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2620         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2621         (*tls_dynamic_gnu2_combine_64): Likewise.
2622
2623 2006-06-16  Richard Guenther  <rguenther@suse.de>
2624
2625         PR middle-end/27116
2626         * fold-const.c (negate_expr_p): Do not introduce undefined
2627         overflow in negating INTEGER_CSTs.
2628         (fold_negate_expr): Rename from negate_expr.  Revert last
2629         change for folding BIT_NOT_EXPR.  Change semantics to
2630         return NULL_TREE for non-simplified negations.  Do not
2631         strip type conversions and unify type handling.
2632         (negate_expr): New function, wrap around fold_negate_expr
2633         but ensure building a tree always.  Strip type conversions
2634         here, fold to result type.
2635         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2636
2637 2006-06-16  Roger Sayle  <roger@eyesopen.com>
2638
2639         PR middle-end/27802
2640         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2641         that (would) return their results in stack registers.
2642
2643 2006-06-16  Michael Matz  <matz@suse.de>
2644         Richard Guenther  <rguenther@suse.de>
2645
2646         * fold-const.c (fold_truthop): Only return new tree node if
2647         we canonicalized something.
2648
2649 2006-06-16  Richard Guenther  <rguenther@suse.de>
2650
2651         * function.h (enum function_frequency): Move declaration
2652         out of struct function.
2653         (struct function): Move bool fields and the enum to the bitfield
2654         section.  Reorder elements to avoid padding.  Remove unused
2655         fields left over from the RTL inliner removal.
2656         * function.c (free_after_compilation): Do not zero removed fields.
2657         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2658         (ipa-type-escape.o): Likewise.
2659
2660 2006-06-16  Richard Guenther  <rguenther@suse.de>
2661
2662         * cgraph.h (struct cgraph_local_info): Turn bool elements
2663         into a bitfield.
2664         (struct cgraph_node): Likewise.
2665         (struct cgraph_varpool_node): Likewise.
2666
2667 2006-06-15  Richard Guenther  <rguenther@suse.de>
2668
2669         * fold-const.c (fold_truth_not_expr): Rename from
2670         invert_truthvalue.  Give it fold_* semantics to avoid
2671         generating garbage.
2672         (invert_truthvalue): New function.  Wrapper around
2673         fold_truth_not_expr.
2674         (optimize_minmax_comparison): Avoid creating garbage.
2675         (fold_unary): Use fold_truth_not_expr for folding
2676         TRUTH_NOT_EXPR.
2677         (fold_ternary): Replace uses of invert_truthvalue with
2678         fold_truth_not_expr where applicable.
2679         * tree.h (fold_truth_not_expr): Prototype.
2680
2681 2006-06-16  Richard Guenther  <rguenther@suse.de>
2682
2683         PR tree-optimization/27781
2684         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2685         * ipa-pure-const.c (target.h): Include.
2686         (analyze_function): Do not analyze functions that do not
2687         bind locally.
2688
2689 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
2690
2691         PR middle-end/27793
2692         * tree-dfa.c (referenced_vars_dup_list): Remove.
2693         (find_referenced_vars): Remove assert.
2694         (referenced_var_check_and_insert): Replace dup list with assert.
2695         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2696         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2697
2698 2006-06-15  Richard Guenther  <rguenther@suse.de>
2699
2700         * tree-ssa-structalias.c (alias_get_name): Avoid creating
2701         extra unused identifiers if not dumping.
2702         (create_variable_info_for): Likewise.
2703
2704 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
2705
2706         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2707         (derive_constant_upper_bound): Derive more precise upper bound in
2708         common cases.  Return type changed to double_int.
2709         (record_estimate): Reflect the changed return type of
2710         derive_constant_upper_bound.
2711         * double-int.c (double_int_zext, double_int_sext): Fix.
2712
2713 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
2714
2715         * configure.ac (CFLAGS): Get them from the toplevel or from the
2716         configure invocation.
2717         * configure: Regenerate.
2718         * Makefile.in (CFLAGS): Substitute value provided by configure.
2719
2720 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
2721
2722         PR c++/26559
2723         * c-common.h (c_finish_omp_atomic): Adjust declaration.
2724         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2725         rather than calling add_stmt on it.
2726         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2727
2728 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2729
2730         PR middle-end/27959
2731         * reload1.c (reload): Remove registers returned by update_eliminables
2732         from used_spill_regs.
2733
2734 2006-06-13  DJ Delorie  <dj@redhat.com>
2735
2736         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2737
2738 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
2739
2740         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2741         html__strip_dir, html__mkdir_p. Enhance install-html target.
2742         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2743         * configure: Regenerate.
2744
2745 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
2746
2747         * fold-const.c (fold_cond_expr_with_comparison): Check for
2748         Objective-C++ as language in deciding COND_EXPR transformation.
2749
2750 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
2751
2752         PR target/28014:
2753         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2754         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2755         * config/sh/lib1funcs.h (SL, SL1): Define.
2756         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2757         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2758         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2759         (OBJS_Os_4_200): New variable.
2760         ($(T)libgcc-Os-4-200.a): Use it.
2761         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2762         when dividing 1 and/or by 0.
2763
2764 2006-06-13  Roger Sayle  <roger@eyesopen.com>
2765
2766         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2767         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2768         * configure: Regenerate.
2769
2770 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
2771
2772         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2773         for real instruction.
2774
2775 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2776
2777         PR middle-end/26807
2778         * haifa-sched.c (check_cfg): Handle special case.
2779
2780 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2781
2782         PR debug/26754
2783         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2784         Add debug_info parameter.  Chain the vars to the BLOCK instead
2785         of the BIND_EXPR if debug info are requested for them.
2786         (pop_gimplify_context): Adjust for above change.
2787         (gimple_add_tmp_var): Likewise.
2788         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2789         Add bool parameter.
2790         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2791         (convert_local_reference): Likewise.
2792         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2793         (finalize_nesting_tree_1): Request that debug info be emitted
2794         for debug_var_chain.
2795
2796 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2797
2798         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2799         for PR target/27863.
2800
2801 2006-06-13  Richard Guenther  <rguenther@suse.de>
2802
2803         PR middle-end/27536
2804         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2805
2806 2006-06-13  Richard Guenther  <rguenther@suse.de>
2807
2808         PR tree-optimization/27830
2809         * tree-inline.c (copy_body_r): For copying the operand
2810         of an ADDR_EXPR make sure to fold &* afterwards.
2811
2812 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2813
2814         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2815         lvalues in the fb_none case with side-effects.
2816
2817 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
2818
2819         * tree-flow.h: Remove the prototype for
2820         compute_phi_arg_on_exit.
2821         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
2822         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
2823         Remove.
2824
2825 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
2826
2827         * builtins.c (expand_builtin_return_addr): Only use
2828         frame_pointer_rtx when count == 0 and we are expanding
2829         __builtin_return_address.
2830
2831 2006-06-12  Fred Fish  <fnf@specifix.com>
2832
2833         * config/mips/mips.c (mips_file_start): Create special section
2834         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2835
2836 2006-06-11  Eric Christopher  <echristo@apple.com>
2837
2838         PR middle-end/27948
2839         * stor-layout.c (place_field): Remove check for
2840         remaining_in_alignment when aligning at the end of a run.
2841
2842 2006-06-11  Eric Christopher  <echristo@apple.com>
2843
2844         PR 27542
2845         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
2846         pragma.
2847
2848 2006-06-11  Roger Sayle  <roger@eyesopen.com>
2849
2850         PR target/27858
2851         Revert incorrect fix for PR target/27158
2852         2006-05-08  Roger Sayle  <roger@eyesopen.com>
2853         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2854         of a reg_equiv_constant if the result is a legitimate constant.
2855
2856 2006-06-11  Roger Sayle  <roger@eyesopen.com>
2857
2858         PR target/27158
2859         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
2860         extract a CONST_VECTOR element and interpret it as an integer.
2861         (vspltis_constant): Use const_vector_elt_as_int instead of the
2862         macro CONST_VECTOR_ELT in order to handle FP vector modes.
2863         * config/rs6000/predicates.md (easy_vector_const): Consider
2864         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2865
2866 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2867
2868         PR middle-end/27942
2869         * stor-layout.c (update_alignment_for_field): Don't add extra
2870         alignment for packed non-bitfield fields in ms_bitfield_layout_p
2871         code.
2872
2873 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
2874
2875         * config/mips/t-rtems: Add EL/EB multilib variants.
2876
2877 2006-06-09  Mike Stump  <mrs@apple.com>
2878
2879         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2880
2881 2006-06-09  David Daney  <ddaney@avtrex.com>
2882
2883         * doc/install.texi: Add binutils version recommendation for mips-*-*.
2884
2885 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2886
2887         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2888
2889 2006-06-09  Richard Guenther  <rguenther@suse.de>
2890
2891         PR tree-optimization/26998
2892         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
2893         of signed types, only TYPE_MIN_VALUE is special, but for both,
2894         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
2895         in this case, as is -fwrapv.
2896
2897 2006-06-08  Mike Stump  <mrs@apple.com>
2898
2899         PR target/26427
2900         * config/darwin.c (darwin_asm_output_anchor): Disable
2901         -fsection-anchors on darwin for now.
2902         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
2903         * rs6000/rs6000.c (optimization_options): Likewise.
2904
2905 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2906
2907         PR target/27421
2908         * config/i386/i386.c (classify_argument): Skip fields with invalid
2909         types in unions.
2910
2911 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
2912
2913         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
2914         (cse_insn): Likewise for the stack_pointer_rtx.
2915
2916 2006-06-08  Roger Sayle  <roger@eyesopen.com>
2917
2918         * tree-ssa-dom.c (record_conditions): Only record "unordered"
2919         conditions from floating point comparisons.
2920
2921 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
2922
2923         PR middle-end/27733
2924         * expmed.c (struct alg_hash_entry): Fix type of field T
2925         to match synth_mult argument.
2926         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2927
2928 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2929
2930         PR target/27863
2931         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
2932         block boundaries.
2933
2934 2006-06-08  Richard Guenther  <rguenther@suse.de>
2935
2936         PR middle-end/27116
2937         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
2938         only, if overflow is defined and not trapping.
2939         (negate_expr): Likewise.
2940
2941 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
2942
2943         PR tree-optimization/27872
2944         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
2945         flag on the new exit edge of the unrolled loop.
2946
2947 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
2948
2949         PR rtl-optimization/26449
2950         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2951
2952 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
2953
2954         PR middle-end/27793
2955         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
2956         referenced_variables with matching DECL_UID's.
2957         (find_referenced_vars): Make sure duplicate list is empty to start.
2958         (referenced_var_p): Remove.
2959         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2960         Check if var is in the list, and add if needed.  Update the duplicate
2961         list if a different var is in the list with the same DECL_UID.
2962         (add_referenced_var): Call routine to check and insert.
2963         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2964         * tree-flow.h (referenced_vars_dup_list): External declaration.
2965
2966 2006-06-07  Fred Fish  <fnf@specifix.com>
2967
2968         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2969         into single entry.
2970
2971 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
2972
2973         PR target/27390
2974         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2975         the imaginary and real parts of a clobbered register.
2976         Emit insn to set the imaginary part.
2977
2978 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
2979
2980         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2981         in lieu of unwind-dw2-fde.c.
2982
2983 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2984
2985         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2986
2987 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
2988
2989         PR target/27842
2990         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2991         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2992         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2993         V4SImode temporaries and operations instead.
2994
2995 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
2996
2997         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2998         dp-bit.c.
2999
3000 2006-06-06  Mike Stump  <mrs@apple.com>
3001
3002         * Makefile.in: Rename to htmldir to build_htmldir to avoid
3003         installing during build.
3004
3005 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3006
3007         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
3008         value to 0.
3009         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3010         * config/ia64/ia64.c (params.h): New header.
3011         (ia64_optimization_options): New function to adjust parameters.
3012         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
3013         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
3014         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
3015
3016 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
3017
3018         * stor-layout.c (debug_rli): Fix a typo in a debug message.
3019
3020 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
3021
3022         PR target/27051
3023         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
3024
3025 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
3026             Victor Kaplansky  <victork@il.ibm.com>
3027
3028         PR tree-optimization/26360
3029         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
3030         stmts.
3031
3032 2006-06-04  Roger Sayle  <roger@eyesopen.com>
3033             Andrew Pinski  <pinskia@physics.uc.edu>
3034
3035         PR middle-end/27382
3036         * c-common.c (c_common_truthvalue_conversion): Explicitly check
3037         for LABEL_DECL before calling DECL_WEAK.
3038
3039         PR c/27150
3040         * c-typeck.c (build_binary_op): Likewise, explicitly check for
3041         LABEL_DECL and PARM_DECL.
3042
3043 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
3044
3045         PR c/25161
3046         PR c/27020
3047         * c-decl.c (grokdeclarator): Disallow variably modified types at
3048         file scope.  Avoid marking shared array type of constant size as
3049         VLA.
3050
3051 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3052
3053         PR c++/27601
3054         * c-common.c (fold_offsetof_1): Handle static members.
3055
3056 2006-06-04 Eric Christopher <echristo@apple.com>
3057
3058         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
3059         (debug_rli): Output value for remaining_in_alignment.
3060         (update_alignment_for_field): Unconditionalize
3061         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
3062         extra alignment code.
3063         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
3064         ms_bitfield_layout_p code. Rewrite handling of structure fields.
3065         * tree.h (record_layout_info_s): Remove prev_packed.
3066         * doc/extend.texi (ms_struct): Add documentation of format.
3067
3068 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
3069
3070         * tree.h: Declare folding_initializer.
3071         * builtins.c (fold_builtin_constant_p): Give definite answer
3072         if folding inside an initializer.
3073         * fold-const.c: Define folding_initializer.
3074         (START_FOLD_INIT): Save and then set folding_initializer.
3075         (END_FOLD_INIT): Restore folding_initializer.
3076
3077 2006-06-04  Richard Guenther  <rguenther@suse.de>
3078
3079         PR tree-optimization/27039
3080         * fold-const.c (fold_comparison): Handle pointer comparison
3081         again for all comparison codes.  Compare offsets in signed
3082         size type.
3083         (fold_binary): Move code from here.
3084
3085 2006-06-03  Roger Sayle  <roger@eyesopen.com>
3086
3087         PR target/26223
3088         * config/i386/i386.c (construct_container): Split static issued_error
3089         flag into issued_sse_arg_error, issued_sse_ret_error and
3090         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
3091         requires the use of x87 registers and the user explicitly
3092         specified the -mno-80387 command line option.
3093
3094 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
3095
3096         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
3097         HAVE_DECL_SIGALTSTACK.
3098         (MC_FLD): New.
3099         (segv_handler): Use MC_FLD.
3100         * configure.ac: Check for a sigaltstack declaration.
3101         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
3102         * configure: Regenerate.
3103         * config.in: Regenerate.
3104
3105 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
3106
3107         PR other/27850
3108         * Makefile.in (stmp-fixinc): Fix typo.
3109
3110 2006-06-02  Roger Sayle  <roger@eyesopen.com>
3111
3112         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
3113         are type correct.  Clean-up.
3114         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
3115         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
3116
3117 2006-06-01  DJ Delorie  <dj@redhat.com>
3118
3119         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
3120         shift, as we've disabled the "switch" insn that needs it.
3121
3122 2006-06-01  Per Bothner  <bothner@bothner.com>
3123
3124         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
3125         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
3126         * c-ppoutput.c (cb_define): Don't increment line 0.
3127
3128 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
3129
3130         * doc/invoke.texi: Add cpu_type power6.
3131         * config.gcc: Add cpu_type power6.
3132         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
3133         to power5+ with Altivec.
3134         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
3135         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
3136
3137 2006-05-30  Anatoly Sokolov <aesok@post.ru>
3138
3139         * config/avr/avr.h (SET_ASM_OP): Define.
3140
3141 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
3142
3143         * config/bfin/bfin.c: Fix comment typos.
3144
3145 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
3146
3147         PR 25453
3148         * doc/install.texi: Document --enable-bootstrap and
3149         --disable-bootstrap.
3150
3151 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
3152
3153         * doc/install.texi: Document that InfoZIP can replace jar.
3154
3155 2006-05-31  Roger Sayle  <roger@eyesopen.com>
3156
3157         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
3158         isn't available, directly generate the simpler x87 patterns without
3159         the (use (const_int 0)).
3160         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
3161         implementation isn't available.
3162         (*negdf2_1): Likewise.
3163         (*negxf2_1): XF mode negation is always done using the x87.
3164         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
3165
3166 2006-05-31  Roger Sayle  <roger@eyesopen.com>
3167
3168         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
3169         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
3170         cabs(z).
3171         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
3172
3173 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
3174
3175         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
3176         * config/bfin/bfin.c (basic-block.h): Include.
3177         (struct machine_function): New.
3178         (bfin_init_machine_status): New.
3179         (override_options): Initialize init_machine_status.
3180         (bfin_hardware_loop): New.
3181         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
3182         (DEF_VEC_P (loop_info)): New.
3183         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
3184         (struct loop_info): New.
3185         (loop_info): New typedef.
3186         (struct loop_work): New.
3187         (loop_work): New typedef.
3188         (DEF_VEC_O (loop_work)): New.
3189         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
3190         (bfin_dump_loops): New.
3191         (bfin_bb_in_loop): New.
3192         (bfin_scan_loop): New.
3193         (bfin_optimize_loop): New.
3194         (bfin_reorg_loops): New.
3195         (bfin_reorg): Use bfin_reorg_loops.
3196         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
3197         loop registers.
3198         (I_REGNO_P): Simplify.
3199         (DP_REGNO_P, DPREG_P): New macros.
3200         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3201         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
3202         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3203         Add LT_REGS, LC_REGS, LB_REGS.
3204         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
3205         'l' for LB_REGS.
3206         (REGNO_REG_CLASS): Deal with loop registers.
3207         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
3208         letters.
3209         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
3210         New constants for loop registers.
3211         (UNSPEC_LSETUP_END): New.
3212         (seq_insns): New define_attr. Set it for appropriate insns.
3213         (movsi_insn): Add alternatives for move from/to
3214         loop count registers.
3215         (doloop_end): New define_expand.
3216         (loop_end): New define_insn.
3217         (define_split for bad doloop_end): New.
3218         (lsetup_with_autoinit): New define_insn.
3219         (lsetup_without_autoinit): New define_insn.
3220         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
3221         * config/bfin/predicates.md (lc_register_operand): New.
3222         (lt_register_operand): New.
3223         (lb_register_operand): New.
3224         (nondp_register_operand): New.
3225         (nondp_reg_or_memory_operand): New.
3226         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
3227
3228 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
3229
3230         * config/bfin/bfin.c (bfin_delegitimize_address): New.
3231         (TARGET_DELEGITIMIZE_ADDRESS): Define.
3232
3233 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
3234
3235         * Makefile.in (CATALOGS): Add po/ prefix.
3236         * configure: Regenerated.
3237
3238 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
3239
3240         PR target/27829
3241         * arm.c (arm_print_operand case 'S'): Validate that the operand is
3242         a shift operand before calling shift_op.  Avoid redundant call of
3243         shift_op.
3244
3245 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
3246             DJ Delorie  <dj@redhat.com>
3247
3248         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
3249         we're inserting is a singlt-bit constant.
3250
3251 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3252
3253         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
3254         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
3255
3256 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3257
3258         PR tree-optimization/23452
3259         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
3260         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
3261         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
3262         complex values and with -ffast-math for FP complex values.
3263
3264 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
3265
3266         * c-common.h: Remove the prototype for yyparse.
3267         * rtl.h: Remove the prototype for init_loop.
3268
3269 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
3270
3271         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
3272         calling recog.
3273
3274 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3275
3276         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
3277         and rotate cases.
3278         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
3279         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
3280
3281 2006-05-30  Dirk Mueller  <dmueller@suse.de>
3282
3283         PR c/27273
3284         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
3285         for CONSTANT_CLASS_P expresisons.
3286
3287 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3288
3289         PR c/27718
3290         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
3291
3292 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
3293
3294         PR tree-optimization/27779
3295         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
3296         initial_condition instead of CHREC_LEFT.
3297
3298 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3299
3300         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
3301         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
3302         Make prototypes ISO C90.
3303
3304 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
3305             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
3306
3307         * see.c (see_analyze_one_def): Correct check.
3308         (see_get_extension_data): Check if extension is parallel.
3309         (see_get_extension_reg): Likewise.
3310
3311 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
3312
3313         PR target/27790
3314         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
3315         into register for (code == GTU).
3316
3317 2006-05-29  Roger Sayle  <roger@eyesopen.com>
3318
3319         PR tree-optimization/24964
3320         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
3321         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
3322         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
3323         abs(x)*abs(x) as x*x for scalar floating point modes.
3324
3325 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
3326
3327         PR middle-end/27745
3328         * lambda-code.c (perfect_nestify): Don't copy statements
3329         in the inner loop: move them to the inner loop header.
3330
3331 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
3332
3333         PR 26237
3334         * c-tree.texi: Document OpenMP directives and clauses.
3335
3336 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
3337
3338         * varasm.c (globalize_decl): Fix indentation.
3339
3340 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
3341
3342         PR 26242
3343         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
3344         pass_fre, pass_store_ccp, pass_copy_prop,
3345         pass_store_copy_prop, pass_merge_phi, pass_nrv,
3346         pass_return_slot, pass_object_size, pass_lim,
3347         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
3348         pass_loop_prefetch and pass_stdarg.
3349
3350 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
3351
3352         * config/bfin/bfin.opt (mfdpic): New option.
3353         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
3354         (EXTRA_MULTILIB_PARTS): Likewise.
3355         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
3356         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
3357         multilib.
3358         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
3359         (CRT_CALL_STATIC_FUNCTION): New.
3360         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
3361         -shared.
3362         (CRT_CALL_STATIC_FUNCTION): New.
3363         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
3364         FD-PIC moves.
3365         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
3366         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
3367         (initialize_trampoline): Changed to handle FD-PIC code generation.
3368         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
3369         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
3370         (override_options): Disallow -mid-shared-library -mfdpic combination.
3371         Can't do unaligned ops if FD-PIC.
3372         Turn off flag_pic if trying to generate non-id-shared-library
3373         non-fdpic code, since it's not supported.
3374         (bfin_assemble_integer): New function.
3375         (TARGET_ASM_INTEGER): Define.
3376         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
3377         __BFIN_FDPIC__.
3378         * config/bfin/crtn.s: Restore them.
3379         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
3380         if TARGET_FDPIC.
3381         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
3382         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
3383         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
3384         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
3385         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
3386         call-used.
3387         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3388         FDPIC_REGS and FDPIC_FPTR_REGS.
3389         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3390         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3391         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3392         (load_funcdescsi): New pattern.
3393         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3394         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3395         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3396
3397 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
3398
3399         * gcse.c, rtlanal.c: Remove obsolete comments associated with
3400         loop.c.
3401
3402         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3403
3404         * tree-flow.h: Remove the prototype for add_type_alias.
3405         * tree-ssa-alias.c (add_type_alias): Remove.
3406
3407 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
3408
3409         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
3410         config/fr30/fr30.md, config/i386/i386-interix.h,
3411         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
3412         config/sh/superh64.h, config/v850/v850.c, df-core.c,
3413         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
3414         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
3415         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
3416         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
3417         Follow spelling conventions.
3418         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
3419         Follow spelling conventions.
3420
3421 2006-05-27  Richard Guenther  <rguenther@suse.de>
3422
3423         PR middle-end/27773
3424         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
3425         to produce a constant of value 1 of generic type.
3426
3427 2006-05-27  Dirk Mueller  <dmueller@suse.de>
3428
3429         * cgraphunit.c (decide_is_function_needed): Fix wrong
3430         PR reference.
3431
3432 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
3433
3434         PR rtl-optimization/27661
3435         * reload.c (find_reloads): When reloading a VOIDmode constant
3436         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
3437         use Pmode as mode of the reload register.
3438
3439 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3440
3441         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
3442         is enabled at -O and above.
3443
3444 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3445
3446         PR target/27571
3447         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
3448         table data.
3449
3450 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
3451
3452         PR c++/20103
3453         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
3454         for anonymous variables explicitly declared by front ends.
3455
3456 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3457
3458         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
3459         (struct alias_info): Add new field ref_all_symbol_mem_tag.
3460         * tree-ssa-alias.c (compute_may_aliases): If the program contains
3461         ref-all pointers, run a finalization pass for them.
3462         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
3463         (finalize_ref_all_pointers): New function.
3464         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
3465         regular pointer type to a ref-all pointer type.
3466         (get_tmt_for): Return the special memory tag for ref-all pointers.
3467
3468 2006-05-25  Richard Guenther  <rguenther@suse.de>
3469
3470         PR middle-end/27743
3471         * fold-const.c (fold_binary): Do not look at the stripped
3472         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
3473
3474 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3475
3476         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
3477         for LT and GT if the computed range is effectively empty.
3478
3479 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3480
3481         PR target/27627
3482         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
3483         mips_quad_format formats instead of ieee_single_format,
3484         ieee_double_format and ieee_quad_format formats, respectively.
3485
3486 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
3487
3488         PR tree-optimization/27639
3489         PR tree-optimization/26719
3490         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
3491         call to scev_probably_wraps_p.
3492         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3493         used_in_pointer_arithmetic_p, convert_step): Removed.
3494         (nowrap_type_p): New function.
3495         (scev_probably_wraps_p): Rewritten.
3496         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3497         chrec_convert if chrec_convert_aggressive might have been used.
3498         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3499         scev_direction): New functions.
3500         (chrec_convert): Changed to a wrapper over chrec_convert_1.
3501         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3502         instead of convert_step.
3503         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3504         (convert_step): Declaration removed.
3505         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3506
3507 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3508
3509         * df-core.c: Added to header comments.
3510         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3511         df_ur_bb_info, df_urec_bb_info): Added comments.
3512         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3513         urec, ri problems): Fixed header comments.
3514         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3515         code from df_rd_transfer_function.
3516
3517 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3518
3519         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3520         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3521         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
3522
3523 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
3524
3525         * expr.c (undefined_operand_subword_p): New.
3526         (emit_move_multi_word): Do not generate move from undefined bits
3527         of a paradoxical subreg.
3528
3529 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3530
3531         PR rtl-optimization/27736
3532         * combine.c (replaced_rhs_value): New variable.
3533         (combine_instructions): Set it.
3534         (distribute_notes): When distributing a note in replaced_rhs_insn,
3535         check whether the value was used in replaced_rhs_value.
3536
3537 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
3538
3539         PR c++/26757
3540         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3541         add_referenced_var instead of add_referenced_tmp_var.
3542         * tree-complex.c (create_one_component_var): Use add_referenced_var.
3543         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3544         add_referenced_var.
3545         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3546         tree_optimize_tail_calls_1): Use add_referenced_var.
3547         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3548         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3549         Use add_referenced_var.
3550         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3551         * gimplify.c (force_gimple_operand): Use add_referenced_var.
3552         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3553         Use add_referenced_var.
3554         * tree-dfa.c (struct walk_state): Remove.
3555         (find_referenced_vars): Remove walk state and vars_found hash table.
3556         (make_rename_temp): Use add_referenced_var.
3557         (find_vars_r): Pass less parameters to add_referenced_var.
3558         (referenced_var_p): New.  Is var in referenced_var hash table.
3559         (referenced_var_insert): Assert var isn't already in hash table.
3560         (add_referenced_var): Don't need walk_state parameter.  Add var if it
3561         isn't already in the hash table.
3562         (add_referenced_tmp_var): Remove.
3563         (find_new_referenced_vars_1): Use add_referenced_var.
3564         * tree-ssa-pre.c (create_expression_by_pieces,
3565         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3566         Use add_referenced_var.
3567         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3568         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3569         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3570         add_referenced_var.
3571         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3572         vect_create_data_ref_ptr, vect_create_destination_var,
3573         vect_init_vector, vect_build_loop_niters,
3574         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3575         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3576         Use add_referenced_var.
3577         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3578         * tree-flow.h (add_referenced_tmp_var): Remove prototype
3579         (add_referenced_var): Add prototype.
3580         * tree-ssa-structalias.c (get_constraint_for,
3581         intra_create_variable_infos): Use add_referenced_var.
3582
3583 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
3584
3585         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3586         big-endian paradoxical subregs.
3587         * var-tracking.c (struct micro_operation_def): Document that,
3588         for modify micro operations, insn is the subsequent instruction.
3589         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3590         (var_reg_set, var_mem_set): ... new functions.
3591         (add_stores): Record subsequent insn.
3592         (compute_bb_dataflow): Use new functions for MO_USE.
3593         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
3594         notes after the insn, and modify notes before the insn known
3595         to be the subsequent one.
3596         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3597
3598 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
3599
3600         PR target/27696
3601         * config/i386/i386.c (ix86_expand_builtin): Use
3602         gen_sse3_monitor64 for TARGET_64BIT.
3603
3604 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
3605
3606         PR rtl-optimization/26375
3607         PR rtl-optimization/26855
3608         * df-problems (df_ru_bb_local_compute_process_def): Removed update
3609         to gen set.
3610         (df_ru_bb_local_compute): Reversed statements and removed bogus
3611         comment explaining why they should be in wrong order.
3612         (df_ru_dump, df_rd_dump): Enhanced debug info.
3613         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3614         debug info.
3615         * ddg.c (add_deps_for_def): Converted use of reaching defs to
3616         reaching uses and fixed space problem.
3617
3618 2006-05-23  Jan Hubicka  <jh@suse.cz>
3619
3620         * cgraphunit.c (decide_is_function_needed): Also nested functions
3621         and functions declared inline can be optimized out at -O0.
3622
3623 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
3624
3625         * doc/install.texi (Configuration): Remove reference to CrossGCC
3626         FAQ which was gone.
3627         (Building): Ditto.
3628
3629 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3630
3631         PR target/27266
3632         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3633         ix86_compare_emitted is non-NULL.
3634
3635 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3636
3637         PR c++/27451
3638         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3639         clobbers.
3640
3641 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3642
3643         PR rtl-optimization/25514
3644         * combine.c (replaced_rhs_insn): New variable.
3645         (combine_instructions): Set replaced_rhs_insn when trying to replace
3646         a SET_SRC with a REG_EQUAL note.
3647         (distribute_notes): Use replaced_rhs_insn when determining the live
3648         range of a REG_DEAD register.
3649
3650 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3651             Anatoly Sokolov <aesok@post.ru>
3652
3653         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3654         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3655         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3656         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3657         atmega3290, atmega649, atmega6490, atmega406, atmega640,
3658         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3659         at90usb647, at90usb1286 and at90usb1287 devices.
3660         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3661         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3662
3663 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3664
3665         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3666
3667 2006-05-22  Richard Guenther  <rguenther@suse.de>
3668
3669         Revert
3670         2006-01-31  Richard Guenther  <rguenther@suse.de>
3671         Paolo Bonzini  <bonzini@gnu.org>
3672
3673         * doc/install.texi (--disable-libgcc-math): Document.
3674
3675 2006-05-22  Richard Guenther  <rguenther@suse.de>
3676
3677         Revert
3678         2006-01-31  Richard Guenther  <rguenther@suse.de>
3679
3680         * doc/invoke.texi (-msselibm): Document.
3681         * target.h (expand_library_builtin): New target hook.
3682         * builtins.c (expand_builtin): Use expand_library_builtin.
3683         (default_expand_library_builtin): New function.
3684         * gcc.c (LINK_GCC_MATH_SPEC): Define.
3685         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3686         (link_gcc_math_spec): Declare.
3687         (static_specs): Add link_gcc_math_spec.
3688         * expr.h (default_expand_library_builtin): Declare.
3689         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3690         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3691         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3692         * config/i386/i386.opt (msselibm): New target option.
3693         * config/i386/i386.c (ix86_builtin_function_variants): New array.
3694         (ix86_init_sse_abi_builtins): New function.
3695         (ix86_expand_library_builtin): Likewise.
3696         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3697         (override_options): Handle error conditions wrt -msselibm.
3698         (ix86_builtins): Add function codes for SSE2 ABI builtins.
3699         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3700         * doc/extend.texi (__builtin_sse2_*): Document new target specific
3701         builtins.
3702
3703 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3704
3705         PR c/27420
3706         * c-common.c (self_promoting_args_p): Skip erroneous args.
3707
3708         PR c/26818
3709         * c-decl.c (finish_struct): Skip erroneous fields.
3710
3711 2006-05-22  Nick Clifton  <nickc@redhat.com>
3712
3713         * config/cris/cris.opt (march): Remove VarExists attribute.
3714         (max-stackframe=): Likewise.
3715
3716 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3717
3718         * doc/rtl.texi: Fix a typo.
3719         * see.c: Fix comment typos.
3720
3721         * tree-ssa-structalias.h (alias_info): Remove num_references.
3722
3723 2006-05-21  Mike Stump  <mrs@apple.com>
3724
3725         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3726         (BAD2): Add.
3727         (darwin_pragma_options): Use BAD instead.
3728         (darwin_pragma_unused): Likewise.
3729         (darwin_pragma_ms_struct): Likewise.
3730
3731 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
3732
3733         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3734
3735 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
3736
3737         PR rtl-optimization/27671
3738         * simplify-rtx.c (simplify_relational_operation_1): Fix
3739         simplifications of (eq/ne (xor x y) y) and
3740         (eq/ne (xor x y) x).
3741
3742         PR tree-optimization/26622.
3743         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3744         on arg1.
3745
3746 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3747
3748         * tree-cfg.c: Prune whitespace.
3749         (debug_tree_cfg): Point to correct header containing the
3750         TDF_* defines.
3751
3752 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3753
3754         PR middle-end/25776
3755         * cgraphunit.c (verify_cgraph_node): Typo in error message.
3756
3757 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3758
3759         PR middle-end/25776
3760         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3761         or sorry count is non zero.
3762
3763 2006-05-20  Andreas Schwab  <schwab@suse.de>
3764
3765         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3766
3767 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
3768             Kenneth Zadeck <zadeck@naturalbridge.com>
3769
3770         PR rtl-optimization/26855
3771
3772         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3773         multiword refs.
3774         (df_scan_alloc): Added code to properly handle multiword hard
3775         registers and add all_blocks parameter.
3776         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3777         code to properly handle multiword hard registers.
3778         (df_rescan_blocks): Added code to remove deleted blocks from
3779         bitmap.
3780         (df_ref_create_structure, df_ref_record): Added code to properly
3781         handle subregs.
3782         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3783         and set DF_REF_PARTIAL.
3784         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3785         (df_uses_record): Added DF_REF_PARTIAL for subreg.
3786         (df_scan_add_problem): Added flags parameter.
3787         (df_ref_create_structure): Changed switching structure.
3788         (df_bb_refs_record): Fixed case where duplicate artificial refs
3789         were created.  Changed location of flags.
3790         (df_record_entry_block_defs): Added code to make stack pointer
3791         live in entry block.  Refined cases where frame pointer is needed.
3792         Changed location of flags.
3793         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3794         (df_set_state): Removed function.
3795         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3796         df_insn_create_insn_record, df_insn_refs_delete,
3797         df_ref_create_structure): Formatting changes.
3798         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3799         df_delete_basic_block): New function.
3800         (df_init): Changed location of flags.
3801         (df_add_problem): Added flags parameter and the way flags are
3802         processed.
3803         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3804         debug_df_chain): Improved debugging output.
3805         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3806         (df_refs_chain_dump): Removed df parameter.
3807         (df_iterative_dataflow): Added consistency check.
3808         (df_prune_to_subcfg): Made public.
3809         (df_analyze_problem): Added blocks_to_init parameter and made
3810         public.
3811         (df_ref_record, df_bb_refs_record, df_mark_reg,
3812          df_record_exit_block_uses): Whitespace changes.
3813         (df_dump): Whitespace changes.
3814         * df.h: Some reordering to remove forward references.
3815         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3816         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3817         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3818         (dataflow.flags): New field.
3819         (df.flag): Deleted field.
3820         (df_alloc_function): Added additional bitmap parameter.
3821         (df_dependent_problem_function): New type.
3822         (df_problem.changeable_flags): New field.
3823         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
3824         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
3825         (df_mw_hardreg): New struct.
3826         (DF_INSN_UID_MWS): New macro.
3827         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
3828         parameter.
3829         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
3830         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
3831         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
3832         (df_set_state): Removed function.
3833         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
3834         * df-problems.c (df_chain_dump): Removed df parameter.
3835         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
3836         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
3837         parameter.
3838         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
3839         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
3840         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
3841         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
3842         DF_REF_MUST_CLOBBER cases.
3843         (df_ru_bb_local_compute_process_def,
3844         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
3845         df_lr_bb_local_compute, df_ur_bb_local_compute,
3846         df_chain_create_bb): Made subreg aware.
3847         (df_ru_bb_local_compute, df_rd_bb_local_compute,
3848         df_lr_bb_local_compute, df_lr_bb_local_compute,
3849         df_chain_create_bb): Cleanup to use proper macros.
3850         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
3851         code to fixup bitvectors.
3852         (df_ri_alloc): Cleared lifetime.
3853         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
3854         df_create_unused_note): New function.
3855         (df_ri_bb_compute, df_ri_compute): Added code to create/update
3856         REG_DEAD and REG_UNUSED notes as well as register information.
3857         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
3858         df_chains_dump): Fixed crash if problem was never run.
3859         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
3860         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
3861         df_ri_add_problem): Processes flags in uniform manner.
3862         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
3863         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
3864         df_rd_dump, df_urec_free_bb_info): Formatting changes.
3865         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
3866         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
3867         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
3868         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
3869         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
3870         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
3871         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
3872         * see.c (see_initialize_data): Ditto.
3873         * final.c (rest_of_clean_state) Added regstack_completed.
3874         * rtl.h (regstack_completed): Ditto.
3875         * reg-stack.c (regstack_completed): Ditto.
3876
3877 2006-05-19  Mike Stump  <mrs@apple.com>
3878
3879         * c-tree.h (default_conversion): Remove.
3880         * c-common.h (default_conversion): Add.
3881
3882 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
3883
3884         * tree-vrp.c (valid_value_p): New function.
3885         (adjust_range_with_scev): Fail if the value of bound is not
3886         simple.
3887
3888 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
3889
3890         * config/mips/linux-unwind.h: Include <asm/unistd.h>
3891         (mips_fallback_frame_state): Use syscall numbers to determine
3892         the appropriate li instruction for the current ABI.  Only use
3893         __NR_sigreturn for o32.
3894
3895 2006-05-19  Nicolas Setton  <setton@adacore.com>
3896
3897         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
3898         * langhooks.c (lhd_dwarf_name): New function.
3899         * langhooks-def.h (lhd_dwarf_name): Declare.
3900         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
3901         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
3902         * ada/misc.c (gnat_dwarf_name): New function.
3903         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
3904
3905 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
3906
3907         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
3908         libgcc2.h.
3909         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
3910         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
3911         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
3912         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
3913         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
3914         determine the size of Wtype, etc.
3915         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
3916         (swfloatfuncs): New variable.
3917         (dwfloatfuncs): Likewise.
3918         (lib2funcs): Remove floating-point conversion functions from
3919         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
3920         the set of conversion routines needed.  Allow entries to specify
3921         an object name, filename and word size.  Update users accordingly.
3922         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
3923         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
3924
3925         Revert:
3926
3927         2006-02-08  Roger Sayle  <roger@eyesopen.com>
3928
3929         PR target/22209
3930         * config/fixtfdi.c: New libgcc source file.
3931         * config/fixunstfdi.c: New source file.
3932         * config/floatditf.c: New source file.
3933         * config/floatunditf.c: New souce file.
3934         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3935         files above instead of config/mips/_tilib.c.
3936         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3937
3938 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3939
3940         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
3941         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
3942
3943 2006-05-18  Mike Stump  <mrs@apple.com>
3944
3945         Fix up vla, vm and [*] sematics.
3946
3947         PR c/18740
3948         PR c/7948
3949         PR c/25802
3950         PR c/27673
3951         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
3952         (c_vla_unspec_p): Add.
3953         (c_vla_type_p): Add.
3954         * c-decl.c (struct c_scope): Add had_vla_unspec.
3955         (build_array_declarator): Add support for [*].
3956         (grokdeclarator): Likewise.
3957         (grokparms): Likewise.
3958         (get_parm_info): Likewise.
3959         * c-objc-common.c (c_vla_unspec_p): Likewise.
3960         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3961         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3962         typeof when argument is a variably modified type not inside sizeof or alignof.
3963         (c_parser_direct_declarator_inner): Propagate errors.
3964         (c_parser_sizeof_expression): Add support for [*].
3965         (c_parser_parms_declarator): Initialize had_vla_unspec.
3966         (c_parser_parms_list_declarator): Likewise.
3967         * c-typeck.c (c_vla_type_p): Add.
3968         (composite_type): Add support for vla compositing.
3969         (comptypes_internal): Add support for vla compatibility.
3970         (c_expr_sizeof_expr): Evaluate vla arguments.
3971         * tree.c (variably_modified_type_p): Update comment for [*].
3972
3973 2006-05-18  Michael Matz  <matz@suse.de>
3974
3975         PR target/27599
3976         * config.host: Make assignments to host_xmake_file cumulative.
3977         * config.host (*-darwin*): Test $host, not $target.
3978
3979 2006-05-12  Stuart Hastings  <stuart@apple.com>
3980
3981         * config/i386/i386.opt (-mstackrealign): New flag.
3982         * config/i386/i386.c (force_align_arg_pointer): New attribute.
3983         (ix86_handle_cconv_attribute): Emit error when
3984         force_align_arg_pointer attribute collides with too many regparms.
3985         (ix86_function_regparm): Limit regparms when used with
3986         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
3987         Support stack-realigning prologue in non-main functions.  Emit
3988         warning for nested functions under -mstackrealign, emit error for
3989         nested functions with force_align_arg_pointer attribute.
3990         * doc/extend.texi (force_align_arg_pointer): Document it.
3991         * doc/invoke.texi (-mstackrealign): Document it.
3992
3993 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
3994
3995         PR rtl-optimization/27477
3996         * combine.c (try_combine): Don't split a parallel consisting
3997         of two sets into two individual sets if both sets reference
3998         cc0.
3999
4000 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
4001
4002         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
4003         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
4004
4005         * doc/options.texi (VarExists): Updated.
4006
4007 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4008
4009         * unwind-dw2.c: Add declarations for uw_update_context and
4010         uw_frame_state_for.
4011         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
4012         detected, advance frame state and context once to skip over stub.
4013
4014 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
4015
4016         PR middle-end/20256
4017         PR middle-end/26435
4018         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
4019         Call rewrite_into_loop_closed_ssa only when something changed.
4020         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
4021         * lambda-code.c (can_convert_to_perfect_nest): Declared.
4022         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
4023         Test for perfect_nest_p here.  Fix formating.
4024         (replace_uses_equiv_to_x_with_y): Fix formating.
4025         (stmt_uses_op): Removed.
4026         (can_convert_to_perfect_nest): Removed loopivs parameter.
4027         Complete the test by checking the scalar dependences.
4028         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
4029         Fix formating.
4030
4031 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4032
4033         PR bootstrap/22541
4034         From Dan Kegel <dank@kegel.com>:
4035         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
4036
4037 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4038
4039         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
4040         if the element type is variably modified without recursing.
4041
4042 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
4043
4044         PR middle-end/27332
4045         * tree-loop-linear.c (try_interchange_loops): Test for
4046         no data dependences.
4047
4048 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
4049
4050         PR tree-optimization/27548
4051         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
4052         range of ssa names that appear on abnormal edges.
4053         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
4054         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
4055
4056 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4057
4058         PR middle-end/27620
4059         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
4060
4061 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
4062
4063         PR middle-end/27415
4064         * tree.h (OMP_PARALLEL_COMBINED): Define.
4065         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
4066         (new_omp_context): Add is_combined_parallel argument.
4067         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
4068         new_omp_context caller.
4069         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4070         Adjust gimplify_scan_omp_clauses callers.
4071         (omp_is_private): Issue errors if iteration variable is firstprivate
4072         or reduction in the current context.
4073         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
4074         on combined parallel workshare constructs.
4075
4076 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4077
4078         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
4079         (gcc-options.o): New rule.
4080
4081         * optc-gen.awk: Protect variables for gcc-options.o with
4082         #ifdef GCC_DRIVER/#endif.
4083
4084 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
4085
4086         Fix PR tree-optimization/27373
4087         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
4088          (forward_propagate_addr_expr): Update call.
4089
4090 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4091
4092         * doc/options.texi: Move the Negative option.
4093
4094 2006-05-16  Richard Guenther  <rguenther@suse.de>
4095
4096         PR tree-optimization/22303
4097         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
4098         from STRING_CSTs.
4099         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
4100         ccp_fold did not simplify the statement.
4101
4102 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4103
4104         PR driver/26885
4105         * Makefile.in (GCC_OBJS): New.
4106         (OBJS-common): Add opts-common.o.
4107         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
4108         (cpp$(exeext)): Likewise.
4109         (gcc.o): Also depend on opts.h.
4110         (opts-common.o): New.
4111
4112         * common.opt (gcoff): Add Negative(gdwarf-2).
4113         (gdwarf-2): Add Negative(gstabs).
4114         (gstabs): Add Negative(gstabs+).
4115         (gstabs+): Add Negative(gvms).
4116         (gvms): Add Negative(gxcoff).
4117         (gxcoff): Add Negative(gxcoff+).
4118         (gxcoff+): Add Negative(gcoff).
4119         * config/i386/i386.opt (m32): Add Negative(m64).
4120         (m64): Add Negative(m32).
4121
4122         * doc/options.texi: Document the Negative option.
4123
4124         * gcc.c: Include "opts.h".
4125         (main): Call prune_options after expandargv.
4126
4127         * optc-gen.awk: Generate common declarations for all flag
4128         variables in options.c. Output the neg_index field.
4129
4130         * opts.c (find_opt): Moved to ...
4131         * opts-common.c: Here. New file.
4132
4133         * opts.h (cl_option): Add a neg_index field.
4134         (find_opt): New.
4135         (prune_options): Likewise.
4136
4137 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
4138
4139         PR middle-end/27573
4140         * omp-low.c (expand_omp_parallel): Don't assert
4141         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
4142         instead search for it.
4143
4144         PR c/27499
4145         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
4146         is signed.
4147
4148 2006-05-16  Andreas Schwab  <schwab@suse.de>
4149
4150         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
4151         defmac.
4152
4153 2006-05-15  Roger Sayle  <roger@eyesopen.com>
4154
4155         PR target/26600
4156         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
4157         integer constants other than zero are only legitimate on TARGET_64BIT.
4158         <CONST_VECTOR> Only zero vectors are legitimate.
4159         (ix86_cannot_force_const_mem): Integral and vector constants can
4160         always be put in the constant pool.
4161
4162 2006-05-16  DJ Delorie  <dj@redhat.com>
4163
4164         * crtstuff.c (__dso_handle): Set section from
4165         TARGET_LBIGCC_SDATA_SECTION if defined.
4166         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
4167         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
4168
4169 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
4170
4171         PR target/27599
4172         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
4173         host_xmake_file.
4174
4175 2006-05-16  Ben Elliston  <bje@au.ibm.com>
4176
4177         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
4178
4179 2006-05-15  Per Bothner  <per@bothner.com>
4180
4181         * tree.c: (last_annotated_node): Use source_locus typedef.
4182         This permits bootstrapping with --enable-mapped-location.
4183
4184 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
4185
4186         PR tree-optimization/26830
4187         * tree-into-ssa.c (struct ssa_name_info): Add age field.
4188         (info_for_ssa_name, current_info_for_ssa_name_age,
4189         blocks_to_update): New variables.
4190         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
4191         (clear_ssa_name_info, initialize_flags_in_bb,
4192         mark_block_for_update): New functions.
4193         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
4194         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
4195         prepare_def_site_for): Use mark_block_for_update.
4196         (mark_def_interesting): Assert that the processed block is marked in
4197         blocks_to_update.  Do not take blocks argument.
4198         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
4199         argument.
4200         (rewrite_update_init_block, rewrite_update_stmt): Only process
4201         blocks with statements to rewrite.
4202         (delete_update_ssa): Do not clear SSA_NAME_AUX.
4203         (update_ssa): Initialize and free blocks_to_update.  Do not
4204         clear flags on statements.  Do not use blocks bitmap.
4205         * tree.h (SSA_NAME_AUX): Removed.
4206         (struct tree_ssa_name): Removed aux field.
4207         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
4208
4209 2006-05-15  Richard Guenther  <rguenther@suse.de>
4210
4211         PR tree-optimization/27603
4212         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4213         Do computations in original type.
4214
4215 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
4216
4217         * see.c: Code style changes such as redundant paranthesis,
4218         redundant intialization of local variables etc.
4219         (see_main): Declared now as static.
4220         * doc/invoke.texi: Update that -fsee is not enabled by
4221         default at -O3.
4222
4223 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
4224
4225         * omp-low.c (check_omp_nesting_restrictions): New function.
4226         (scan_omp_1): Call it.
4227
4228         PR middle-end/27416
4229         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
4230         construct, return *VAR.
4231
4232 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
4233
4234         PR rtl-optimization/27406
4235         * bt-load.c (migrate_btr_def): Skip the block having abnormal
4236         edges.
4237
4238 2006-05-14  Roger Sayle  <roger@eyesopen.com>
4239
4240         PR rtl-optimization/27538
4241         * combine.c (expand_compound_operation): Call gen_lowpart
4242         before calling simplify_shift_const.
4243
4244 2006-05-14  Roger Sayle  <roger@eyesopen.com>
4245
4246         PR rtl-optimization/22563
4247         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
4248         a fixed width bitfield, always force the intermediates into psuedos.
4249
4250 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
4251
4252         PR 27501
4253         * mkconfig.sh: Use operator = instead of == for test.
4254
4255 2006-05-13  Nick Clifton  <nickc@redhat.com>
4256
4257         * dwarf2out.c (dbx_reg_number): Check return value from
4258         LEAF_REG_REMAP and only use it if it is valid.
4259         (multiple_reg_loc_descriptor): Likewise.
4260
4261 2006-05-13  Richard Guenther  <rguenther@suse.de>
4262
4263         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
4264         host_xmake_file.
4265
4266 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
4267
4268         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
4269         information attached to non-INSNs such as NOTEs.
4270         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
4271
4272 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4273
4274         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
4275         On contraint.
4276         * config/s390/s390.md: Adjust comment describing On constraint.
4277
4278 2006-05-11  Jan Hubicka  <jh@suse.cz>
4279
4280         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
4281         to be output at -O0.
4282
4283 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4284
4285         PR middle-end/27384
4286         * fold-const.c (size_binop): Move sanity check for arguments to
4287         the beginning of the function.
4288
4289         PR middle-end/27488
4290         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
4291         expression.
4292
4293 2006-05-11  Richard Guenther  <rguenther@suse.de>
4294
4295         PR middle-end/27529
4296         * fold-const.c (fold_unary): Handle intermediate conversion
4297         to a pointer type like intermediate conversion to an integer
4298         type in folding of (T1)(T2)var to var.
4299         Match the code to the comment in the final conversion for
4300         (T1)(T2)var to (T1)var regarding to type precision.  Rather
4301         than disallow T1 being of pointer type, assert that both T1
4302         and var are of pointer type or not.  Make sure not to fall
4303         over the frontends lazyness wrt array to pointer decay though.
4304
4305 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
4306
4307         * arm.c (arm_struct_value_rtx): Delete.
4308         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
4309         (arm_init_cumulative_args): Always initialize nregs to zero.
4310
4311 2006-05-10  Richard Guenther  <rguenther@suse.de>
4312
4313         PR tree-optimization/27532
4314         * tree-object-size.c (plus_expr_object_size): Fix typo.
4315
4316 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
4317
4318         PR target/24949
4319         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
4320         ashrdi_const, ashrdi3): Use a scratch register.
4321
4322 2006-05-10  Richard Guenther  <rguenther@suse.de>
4323
4324         PR tree-optimization/27302
4325         * fold-const.c (operand_equal_p): For two comparisons,
4326         try comparison of one comparison code swapped if that yields
4327         the same code.
4328
4329 2006-05-10  Ben Elliston  <bje@au.ibm.com>
4330
4331         * tree-pretty-print.c (pretty_print_string): No need to handle
4332         '\0' as a special character.
4333
4334         * tree.h: Include "hashtab.h".
4335         (iterative_hash_expr): Use hashval_t in its prototype.
4336         * Makefile.in (TREE_H): Add $(HASHTAB_H).
4337
4338 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
4339
4340         PR bootstrap/26872
4341         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
4342         (hppa*64*-*-hpux11*): Ditto.
4343         (hppa[12]*-*-hpux11*): Ditto.
4344
4345 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
4346
4347         PR target/26545
4348         * config/rs6000/aix41.h (TARGET_64BIT): Define.
4349
4350 2006-05-09  Michael Matz  <matz@suse.de>
4351
4352         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
4353         host_extra_gcc_objs and host_xmake_file.
4354         (<*-*-linux*>): Don't overwrite host_xmake_file.
4355         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
4356         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
4357         (host_detect_local_cpu): Declare.
4358         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
4359         * config/i386/i386.c (override_options): Handle -mtune=native
4360         as -mtune=generic.
4361         * config/i386/x-i386: New file.
4362         * config/i386/driver-i386.c: New file.
4363         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
4364         cpu-type "native".
4365
4366 2006-05-09  Dirk Mueller  <dmueller@suse.de>
4367         Richard Guenther  <rguenther@suse.de>
4368
4369         PR middle-end/27498
4370         * fold-const.c (fold_read_from_constant_string): Relax check
4371         for matching types to matching modes.
4372
4373 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
4374
4375         PR rtl-optimization/27335
4376         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
4377         loops.
4378
4379 2006-05-08  Chao-ying Fu  <fu@mips.com>
4380             Richard Sandiford  <richard@codesourcery.com>
4381
4382         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
4383         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
4384         * config/mips/mips.md (UNSPEC_SCC): New constant.
4385         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
4386         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4387         (mips_emit_compare): Use it.
4388         (mips_expand_vcondv2sf): New function.
4389
4390 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
4391
4392         Fix PR tree-optimization/27093
4393         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
4394         renaming when they become not-used_alone.
4395
4396 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4397
4398         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4399         relocation and relocation stubs.
4400
4401 2006-05-08  Eric Christopher  <echristo@apple.com>
4402
4403         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4404         section for ppc.
4405
4406 2006-05-08  Jan Hubicka  <jh@suse.cz>
4407
4408         PR middle-end/24561
4409         * cgraphunit.c (decide_is_function_needed): When not optimizing even
4410         unused static functions are needed.
4411
4412 2006-05-08  Roger Sayle  <roger@eyesopen.com>
4413
4414         PR target/27158
4415         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
4416         of a reg_equiv_constant if the result is a legitimate constant.
4417
4418 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
4419
4420         PR target/27277
4421         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
4422         standard 80387 constants, raise the cost to prevent
4423         compress_float_constant() to generate load from memory.
4424
4425 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
4426
4427         * config/arm/constraints.md (c): Fix a typo.
4428
4429         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
4430         typos.
4431
4432 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
4433
4434         PR target/24879
4435         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
4436         inline function.
4437         (_mm_mwait): Likewise.
4438
4439         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
4440         "mwait".
4441         (sse3_monitor): Make it 32bit only.
4442         (sse3_monitor64): New. 64bit monitor.
4443
4444 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4445
4446         PR target/27421
4447         * config/i386/i386.c (classify_argument): Skip fields with invalid
4448         types.
4449
4450 2006-05-07  Richard Guenther  <rguenther@suse.de>
4451
4452         PR tree-optimization/27409
4453         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4454         Do not try to find zero-sized subvars.
4455
4456 2006-05-07  Richard Guenther  <rguenther@suse.de>
4457
4458         PR tree-optimization/27136
4459         * tree-ssa-loop-niter.c (get_val_for): Correct function
4460         comment, assert requirements.
4461         (loop_niter_by_eval): Stop processing if the iterated
4462         value did not simplify.
4463
4464 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
4465
4466         * opts.c (flag_see): remove its setting at -O3.
4467
4468 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
4469
4470         * genpeep.c (main): Make insn-peep.c depend on flags.h.
4471         * arm/constraints.md: New file.
4472         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
4473         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
4474         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
4475         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
4476         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
4477         (EXTRA_MEMORY_CONSTRAINT): Likewise.
4478         * arm.md: Include constraints.md.
4479         (thumb_movsi_insn): Use satisfies_constraint_J.
4480         (movhi, movqi): Use satisfies_constraint_I.
4481
4482 2006-04-29 Anatoly Sokolov <aesok@post.ru>
4483
4484         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
4485         for atmeg a645 device.
4486
4487 2006-05-06   Richard Guenther  <rguenther@suse.de>
4488
4489         PR tree-optimization/27151
4490         * tree-vect-transform.c (vectorizable_condition): Punt on
4491         values that have a different type than the condition.
4492
4493 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
4494
4495         PR/21391
4496         * c-parser.c (c_parser_cast_expression): Only insert casts into
4497         hash table if pointer.
4498         * function.c (used_types_insert_helper): Rename from
4499         used_types_insert.
4500         (used_types_insert): Call used_types_insert_helper.
4501         * function.h (used_types_insert): Accept only one argument.
4502
4503 2006-05-05  David Edelsohn  <edesohn@gnu.org>
4504
4505         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4506         scratch with output modifier.
4507
4508 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
4509
4510         PR target/26481
4511         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4512         with output modifier.
4513
4514 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
4515
4516         PR target/26765
4517         * config/mips/mips.c (mips_symbolic_address_p): Return true
4518         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4519         SYMBOL_GOTTPREL, and SYMBOL_TLS.
4520
4521 2006-05-04  Richard Guenther  <rguenther@suse.de>
4522
4523         PR tree-optimization/14287
4524         PR tree-optimization/14844
4525         PR tree-optimization/19792
4526         PR tree-optimization/21608
4527         PR tree-optimization/27090
4528         * tree-ssa-pre.c (try_combine_conversion): New function.
4529         (compute_avail): After constructing the value-handle
4530         expression, use try_combine_conversion to combine NOP_EXPRs
4531         with previous value-handle expressions and use the result if it
4532         is available.
4533
4534 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
4535
4536         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4537
4538 2006-05-04  Jan Hubicka  <jh@suse.cz>
4539
4540         PR middle-end/25962
4541         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4542
4543 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4544
4545         * config/bfin/predicates.md (const01_rtx): Tell generator programs
4546         that this only matches CONST_INTs.  All users changed to VOIDmode
4547         operands.
4548
4549         * config/bfin/bfin.c: Include "optabs.h".
4550         (bfin_rtx_costs): Some costs for vector operations, to allow combine
4551         to do more work.
4552         (enum bfin_builtins): Add a number of fractional and vector builtins.
4553         (bfin_init_builtins): Likewise.
4554         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4555         (safe_vector_operand, bfin_expand_binop_builtin,
4556         bfin_expand_unop_builtin): New functions.
4557         (bfin_expand_builtin): Handle the new builtins.
4558         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4559         __ADSPBLACKFIN__.
4560
4561 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
4562
4563         * see.c: New file.
4564         * Makefile.in (OBJS-common): Add see.o.
4565         (see.o): Add dependencies.
4566         * common.opt (fsee): New flag for the see optimization was added.
4567         * opts.c (flag_see): Initialized.
4568         * passes.c (init_optimization_passes, pass_see): New pass.
4569         * rtl.h (see_main): Declaration as extern.
4570         * timevar.def (TV_SEE): New.
4571         * tree-pass.h (pass_see): Declaration as extern.
4572         * invoke.texi (-fsee): Document.
4573         * recog.c (validate_simplify_insn): New function.
4574         * recog.h (validate_simplify_insn): Declaration as extern.
4575         * df-problems.c (df_chain_dump): Check for NULL.
4576
4577 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
4578             Daniel Berlin  <dberlin@dberlin.org>
4579
4580         * cfgrtl.c (insert_insn_bb_end_new): New function.
4581         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4582
4583 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
4584
4585         * df.h (struct web_entry): Moved from web.c.
4586         (union_defs): Declaration as extern.
4587         (unionfind_root): Likewise.
4588         (unionfind_union): Likewise.
4589         * web.c (struct web_entry): Moved to df.h.
4590         (unionfind_root): Remove static declaration.
4591         (unionfind_union): Likewise.
4592         (union_defs): Likewise and generalize to use callback function.
4593         (web_main): Update arguments for union_defs function call.
4594
4595 2006-05-04  Richard Guenther  <rguenther@suse.de>
4596
4597         PR tree-optimization/26447
4598         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4599         produce SSA_NAME copies before the store stmt to avoid
4600         breaking exception handling.
4601
4602 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
4603
4604         PR middle-end/27388
4605         * gimplify.c (omp_is_private): If var is shared in some outer context,
4606         return false instead of true.  Stop searching on parallel context
4607         boundary.
4608
4609 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
4610
4611         PR java/8260
4612         * coverage.c: Use get_gcov_unsigned_t() instead of
4613         unsigned_type_node all over.
4614
4615 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
4616
4617         PR tree-optimization/27381
4618         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4619         maintain the same immediate_use links.
4620         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4621         node rather than segfaulting.
4622
4623 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
4624
4625         PR fortran/27395
4626         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4627         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
4628         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4629
4630 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
4631
4632         Fix PR tree-optimization/26626
4633         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4634         always.
4635         * tree-ssa-operands.c (access_can_touch_variable): Allow
4636         typecasting through union pointers.
4637
4638 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4639
4640         PR c++/26943
4641         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4642         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4643         to find if var will be a global variable even in the nested context.
4644         (omp_copy_decl): Only check for global variable at the end, it might
4645         be overridden in outer contexts.
4646         (scan_sharing_clauses): For global variables don't create a field.
4647         (lower_rec_input_clauses): Do nothing for global shared variables.
4648         Emit a barrier at the end of ILIST if there were any decls in both
4649         firstprivate and lastprivate clauses.
4650         (lower_send_clauses): Do nothing for global variables except for
4651         COPYIN.
4652
4653 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
4654
4655         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4656         of the correct signedness is returned.
4657
4658 2006-05-02  Jeff Law  <law@redhat.com>
4659
4660         PR tree-optimization/27364
4661         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4662         multiply expressions.
4663
4664 2006-05-02  Tom Tromey  <tromey@redhat.com>
4665
4666         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4667
4668 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
4669
4670         PR target/27387
4671         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4672         -mthumb -fPIC are used.
4673
4674 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
4675             Joshua Kinard  <kumba@gentoo.org>
4676
4677         PR target/25871
4678         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4679         with 64-bit pointers.
4680
4681 2006-05-02  Paul Brook  <paul@codesourcery.com>
4682
4683         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4684         and pool overlap.
4685         (create_fix_barrier): Check that a suitable barrier location is
4686         found.
4687         (arm_reorg): Include ftmp->address in allowable range of addresses.
4688
4689 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
4690
4691         PR ada/27366
4692         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4693         on Cygwin.
4694
4695 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4696
4697         PR middle-end/27337
4698         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4699         around RESULT_DECL for result passed by reference.
4700         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4701         * omp-low.c (use_pointer_for_field): Don't look at
4702         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4703         (scan_omp_1): Call remap_decl on RESULT_DECLs.
4704         (lower_rec_input_clauses): Don't allocate VLA memory for the second
4705         time or var for passing by reference for
4706         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
4707         TREE_ADDRESSABLE variables when passing by reference.
4708
4709         * omp-low.c (dump_omp_region): Fix output formatting.
4710
4711         PR middle-end/27328
4712         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4713         (expand_omp_parallel): Likewise.
4714         * tree-cfg.c (move_sese_region_to_fn): Likewise.
4715
4716         PR middle-end/27325
4717         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4718         on statement list containing also constructors and destructors.
4719         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4720
4721         PR middle-end/27310
4722         * except.c (duplicate_eh_regions): Fix clearing of
4723         cfun->eh->region_array entries.
4724
4725 2006-05-01  DJ Delorie  <dj@redhat.com>
4726
4727         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4728         build!=host.
4729         (gcc_cv_objdump): Likewise.
4730         * configure: Regenerated.
4731
4732 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
4733
4734         PR target/27374
4735         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4736         templates for case 3 and 4.
4737
4738 2006-05-01  DJ Delorie  <dj@redhat.com>
4739
4740         * vec.c: Include bconfig.h when appropriate.
4741         * Makefile.in (build/vec.o): Adjust dependencies.
4742         * mkconfig.sh: Make sure config.h isn't used for build machine
4743         compiles.
4744
4745 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4746
4747         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4748         variables.
4749         (mark_phi_for_rewrite): New function.
4750         (insert_phi_nodes_for, mark_use_interesting): Call
4751         mark_phi_for_rewrite.
4752         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4753         (update_ssa): Initialize and free phis_to_rewrite.
4754
4755 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4756
4757         PR rtl-optimization/27291
4758         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4759         folded to a constant.
4760
4761 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4762
4763         PR tree-optimization/27283
4764         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4765         not whole # of iteration descriptions.
4766         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
4767         uses abnormal ssa name.
4768         (niter_for_single_dom_exit): Ditto.
4769         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4770         return just the number of iterations.
4771
4772 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4773
4774         PR tree-optimization/27144
4775         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4776         (record_estimate): Only record constant upper bound.
4777         (infer_loop_bounds_from_undefined): Call
4778         compute_estimated_nb_iterations just once.
4779         (proved_non_wrapping_p): Renamed to ...
4780         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
4781         (convert_step_widening, scev_probably_wraps_p): Call
4782         n_of_executions_at_most instead of proved_non_wrapping_p.
4783         (substitute_in_loop_info): Do not replace values in bounds.
4784         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
4785         comments.
4786
4787 2006-05-01  Richard Henderson  <rth@redhat.com>
4788
4789         PR c/27358
4790         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4791         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
4792         CPP_PRAGMA.
4793
4794 2006-05-01  Roger Sayle  <roger@eyesopen.com>
4795
4796         * c-typeck.c (parser_build_binary_op): Don't call the function
4797         unsigned_conversion_warning to spot operand/result type overflow.
4798         (build_binary_op): Instead, call convert_and_check instead of
4799         convert to report the problem when the operands are promoted.
4800         * c-common.c (unsigned_conversion_warning): Make static.
4801         * c-common.h (unsigned_conversion_warning): Delete prototype.
4802
4803 2006-05-01  Richard Guenther  <rguenther@suse.de>
4804
4805         PR tree-optimization/26726
4806         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4807         problem ...
4808         (find_interesting_uses_address): ... we work around here
4809         by folding INDIRECT_REFs in the substituted base.
4810
4811 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
4812
4813         * omp-low.c (dump_omp_region): Add newlines.
4814
4815 2006-04-30  Roger Sayle  <roger@eyesopen.com>
4816
4817         * common.opt (Woverflow): New command line option.
4818         * c-common.c (constant_expression_warning): Check warn_overflow.
4819         (overflow_waring): Pass OPT_Woverflow to warning.
4820         (unsigned_conversion_warning): Likewise.
4821         (convert_and_check): Likewise.
4822         * doc/invoke.texi: Document new command line option.
4823
4824 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
4825
4826         * config/rs6000/rs6000.c (rs6000_override_options): Enable
4827         TARGET_NO_FP_IN_TOC for section anchors.
4828         (optimization_options): Enable section anchors for all
4829         non-"Objective" languages.
4830
4831 2006-04-28  Eric Christopher  <echristo@apple.com>
4832
4833         * config/darwin-c.c (darwin_ms_struct): Move this
4834         (darwin_set_default_type_attributes): and this...
4835         * config/darwin.c: ... here.
4836         * config/darwin.h (darwin_ms_struct): Declare.
4837
4838 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
4839
4840         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
4841
4842 2006-04-28  Roger Sayle  <roger@eyesopen.com>
4843
4844         PR c/25309
4845         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
4846         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
4847         an unsigned HOST_WIDE_INT.
4848         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
4849         array index.
4850         (really_start_incremental_init): No need to call convert because
4851         bitsize_zero_node is already of type bitsizetype.
4852         (push_init_level): Extract the value of constructor_index as an
4853         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
4854         (process_init_element): Likewise.
4855
4856 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
4857
4858         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
4859         value before passing to make_relative_prefix.
4860
4861 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
4862
4863         PR middle-end/27260
4864         * builtins.c (expand_builtin_memset): Expand val in original mode.
4865
4866 2006-04-27  Eric Christopher  <echristo@apple.com>
4867
4868         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
4869         with #ifndef/#endif.
4870         * config/darwin-c.c (darwin_ms_struct): New.
4871         (darwin_pragma_ms_struct): Ditto.
4872         (darwin_set_default_type_attributes): Ditto.
4873         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
4874         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
4875         Register ms_struct pragma.
4876         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
4877         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
4878         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
4879         darwin_set_default_type_attributes if TARGET_MACHO.
4880
4881 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
4882
4883         PR tree-optimization/26854
4884         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
4885         * doc/tree-ssa.texi: Update immuse iterator documentation.
4886         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
4887         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
4888         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
4889         first_safe_imm_use, next_safe_imm_use): Remove.
4890         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
4891         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
4892         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
4893         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
4894         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
4895         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
4896         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
4897         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
4898         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
4899         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
4900         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
4901         (perfect_nestify): Use new iterator.
4902         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
4903         iterator.
4904         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
4905         (next_imm_name): New field in struct immediate_use_iterator_d.
4906         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
4907         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
4908         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
4909         * tree-cfg.c (replace_uses_by): Use new iterator.
4910         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
4911         * tree-ssa-operands.c (correct_use_link): Remove.
4912         (finalize_ssa_use_ops): No longer call correct_use_link.
4913
4914 2006-04-27  Stuart Hastings  <stuart@apple.com>
4915
4916         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
4917         * config/t-darwin (crt3.o): Use it.
4918         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
4919         'pmode', use Pmode instead of SImode for SYMBOL_REF.
4920         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
4921         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
4922         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
4923         support.
4924
4925 2006-04-27  Roger Sayle  <roger@eyesopen.com>
4926
4927         * expmed.c (store_fixed_bit_field): If we're not optimizing for
4928         size, force the intermediate into a new pseudo rather instead of
4929         performing both a bitwise AND and a bitwise IOR in memory.
4930
4931 2006-04-27  Richard Guenther  <rguenther@suse.de>
4932
4933         PR rtl-optimization/26685
4934         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
4935         this one "max-flow-memory-locations".
4936
4937 2006-04-27  Richard Guenther  <rguenther@suse.de>
4938
4939         PR tree-optimization/25148
4940         * tree-vrp.c (compare_values): Remove code dealing with
4941         comparisons against type min/max value.  Honour overflow
4942         and negative constants in code dealing with comparisons
4943         of plus and minus expressions.
4944         (value_inside_range): Use fold_binary with LE_EXPR and
4945         GE_EXPR rather than compare_values.
4946
4947 2006-04-27  Dirk Mueller  <dmueller@suse.de>
4948
4949         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
4950         prototype for SSE.
4951
4952 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
4953
4954         * basic-block.h (safe_insert_insn_on_edge): Removed.
4955         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
4956
4957 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
4958             Paolo Bonzini  <bonzini@gnu.org>
4959
4960         PR middle-end/27282
4961         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
4962         (simplify_and_const_int): Same.
4963
4964 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
4965
4966         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
4967
4968 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
4969
4970         PR c/26171
4971         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
4972         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
4973         cgraph_global_info_ready.
4974
4975         PR middle-end/26913
4976         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
4977
4978         PR c/25996
4979         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
4980         either decl or init is error_mark_node.
4981
4982         PR middle-end/25989
4983         * tree-flow.h (struct omp_region): Add sched_kind.
4984         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
4985         instead of extracting omp for data.
4986         (expand_omp_for): Save extracted sched_kind.
4987
4988 2006-04-25  Roger Sayle  <roger@eyesopen.com>
4989
4990         * expmed.c (store_bit_field): Also check whether the bitsize is
4991         valid for the machine's "insv" instruction before moving the
4992         target into a pseudo for use with the insv.
4993         * config/i386/predicates.md (const8_operand): New predicate.
4994         * config/i386/i386.md (extv, extzv, insv): Use the new
4995         const8_operand predicate where appropriate.
4996
4997 2006-04-25  DJ Delorie  <dj@redhat.com>
4998
4999         * doc/install.texi (Specific): Clarify that this is not a list of
5000         supported hosts or targets.
5001
5002 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
5003
5004         PR rtl-optimization/26725
5005         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
5006         block's BB_DIRTY flag.
5007
5008 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
5009
5010         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
5011         are no branches.
5012
5013         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
5014         to print an integer.
5015
5016 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
5017
5018         * varasm.c (align_variable): New function.
5019         (get_block_for_decl): Apply align_variable to DECL before
5020         calculating section information.
5021         (assemble_variable): Split out alignment computation.
5022
5023 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5024
5025         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
5026         machines.
5027
5028 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
5029
5030         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
5031         MODE_PARTIAL_INT mode.
5032         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
5033         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
5034         for CONST_INTs.
5035         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
5036         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
5037         V2PDImode.
5038         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
5039         New predicates.
5040         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
5041         New constants.
5042         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
5043         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
5044         MACFLAG_IH): Likewise.
5045         (movstricthi_1): Renamed from "*movstricthi".
5046         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
5047         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
5048         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
5049         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
5050         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
5051         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
5052         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
5053         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
5054         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
5055         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
5056         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
5057         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
5058         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
5059         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
5060         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
5061
5062         * doc/rtl.texi (ss_ashift): Improve wording.
5063
5064 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
5065
5066         * dwarf2out.c (verify_marks_clear): New.
5067         (prune_unused_types): Call verify_marks_clear initially, not
5068         prune_unmark_dies.
5069
5070 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5071
5072         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
5073         * doc/rtl.texi: Document them.
5074         * simplify-rtx.c (simplify_unary_operation,
5075         simplify_binary_operation_1): Don't abort when we see them.
5076
5077 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
5078
5079         Revert:
5080         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
5081         * configure.ac: Completely disregard languages that are not
5082         enabled.
5083         * configure: Regenerated.
5084
5085 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
5086         Richard Guenther  <rguenther@suse.de>
5087
5088         PR tree-optimization/27236
5089         * tree-inline.c (copy_body_r): Make sure to copy
5090         TREE_THIS_VOLATILE flag.
5091
5092 2006-04-24  Richard Guenther  <rguenther@suse.de>
5093
5094         PR middle-end/26869
5095         * tree-complex.c (update_parameter_components): Don't handle
5096         unused parameters which have no default def.
5097
5098 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
5099         Richard Guenther  <rguenther@suse.de>
5100
5101         PR tree-optimization/27218
5102         * tree-inline.c (expand_call_inline): Strip useless type
5103         conversions for the return slot address.
5104
5105 2006-04-24  Richard Guenther  <rguenther@suse.de>
5106
5107         * cfgloop.h (struct loops): Remove unused field array.  Reorder
5108         state after num.
5109         (LOOP_PREFETCH): Remove.
5110
5111 2006-04-24  Richard Guenther  <rguenther@suse.de>
5112
5113         PR tree-optimization/22525
5114         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
5115         variable, adjust types of generated expressions.
5116
5117 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
5118
5119         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
5120         (tree-vect-patterns.o): Likewise.
5121         (jump.o): Likewise.
5122         (cselib.o): Likewise.
5123         (loop-doloop.o): Likewise.
5124         (regclass.o): Likewise.
5125         (reload1.o): Likewise.
5126         (explow.o): Replace target.h with $(TARGET_H).
5127         (ipa-prop.o): Likewise.
5128         (ipa-cp.o): Likewise.
5129         (ipa-inline.o): Likewise.
5130         (reorg.o): Likewise.
5131         (reg-stack.o): Likewise.
5132
5133 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5134
5135         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
5136
5137 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
5138
5139         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
5140
5141         * configure.ac: Completely disregard languages that are not
5142         enabled.
5143         * configure: Regenerated.
5144
5145         PR c++/26534
5146         * c-common.h (c_build_bitfield_integer_type): Declare.
5147         * c-decl.c (c_build_bitfield_integer_type): Move to ...
5148         * c-common.c (c_build_bitfield_integer_type): ... here.
5149
5150 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5151
5152         PR target/21283
5153         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
5154         a SImode SUBREG of a floating point register after no_new_pseudos.
5155
5156 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5157
5158         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
5159         identify potentially eliminable registers to additionally catch
5160         VIRTUAL_INCOMING_ARGS_REGNUM.
5161         (addsi3): Update the conditions on when to use addsi_small_int.
5162
5163 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5164
5165         PR target/16641
5166         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
5167         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
5168         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
5169
5170 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5171
5172         * fold-const.c (range_predecessor): Use operand_equal_p
5173         as the predicate for equality.
5174         (range_successor): Likewise.
5175
5176 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
5177
5178         Revert:
5179         * config/soft-fp/op-common.h: Fix a typo.
5180
5181 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
5182
5183         PR libmudflap/26864
5184         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
5185         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
5186
5187 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
5188
5189         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
5190         Fix comment typos.
5191         * doc/tm.texi: Fix a typo.
5192
5193 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
5194
5195         * dwarf2out.c (struct die_struct): Document that die_sib makes
5196         a circular linked list.
5197         (FOR_EACH_CHILD): New.
5198         (reverse_die_lists): Delete.
5199         (reverse_all_dies): Delete.
5200         (add_dwarf_attr): Correct documentation.
5201         (remove_child_with_prev): New.
5202         (remove_child_TAG): Update for change to die_struct, use
5203         remove_child_with_prev.
5204         (add_child_die): Update for change to die_struct.
5205         (splice_child_die): Use remove_child_with_prev and add_child_die.
5206         (print_die): Use FOR_EACH_CHILD.
5207         (die_checksum): Likewise.
5208         (assign_symbol_names): Likewise.
5209         (output_location_lists): Likewise.
5210         (build_abbrev_table): Likewise.
5211         (calc_die_sizes): Likewise.
5212         (mark_dies): Likewise.
5213         (unmark_dies): Likewise.
5214         (unmark_all_dies): Likewise.
5215         (output_die): Likewise.
5216         (prune_unused_types_mark): Likewise.
5217         (prune_unused_types_walk): Likewise.
5218         (same_die_p): Update for change to die_struct.
5219         (break_out_includes): Likewise.
5220         (prune_unused_types_prune): Likewise.
5221         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
5222         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
5223         it's already clear.
5224         (dwarf2out_finish): Don't call reverse_all_dies.
5225
5226 2006-04-21  Eric Christopher  <echristo@apple.com>
5227
5228         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
5229         in comments and function names.
5230
5231 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5232
5233         PR c/25875
5234         * c-typeck.c (digest_init): Robustify.
5235
5236         * c-typeck.c (pop_init_level): Simplify.
5237
5238 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
5239
5240         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
5241
5242 2006-04-21  Paul Brook  <paul@codesourcery.com>
5243
5244         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
5245         hardware floating point.
5246
5247 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
5248
5249         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
5250         NON_FLOAT_REGS.
5251
5252 2006-04-21  Nick Clifton  <nickc@redhat.com>
5253
5254         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
5255         OPT_EXTRA_PARTS.
5256
5257 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
5258
5259         PR target/27230
5260         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
5261         C++ lang type in traceback table for Objective-C++.
5262
5263         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
5264
5265 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
5266
5267         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
5268
5269 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5270
5271         PR mudflap/26789
5272         * tree-mudflap.c (mudflap_finish_file): Skip function when there
5273         were errors.  Remove check for erroneous objects.
5274
5275 2006-04-20  Jeff Law  <law@redhat.com>
5276
5277         PR tree-optimization/26854
5278         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
5279         checking for zero or one use.
5280         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
5281         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
5282         * tree-ssa-reassoc.c (negate_value): Similarly.
5283         (reassociate_bb): Similarly.
5284
5285 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
5286
5287         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
5288         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
5289         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
5290
5291 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
5292
5293         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
5294         fp regs if the last fp arg doesn't fit in regs.
5295
5296 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5297
5298         PR target/27182
5299         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
5300         that the last insn has the REG_INC note.
5301
5302 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
5303             Nathan Sidwell  <nathan@codesourcery.com>
5304
5305         PR c/26774
5306         * stor-layout.c (update_alignment_for_field): Do not align
5307         ERROR_MARK nodes.
5308         (place_union_field): Place union field at the start of the union.
5309         (place_field): Move ERROR_MARK check later, and use the current
5310         allocation position to maintain monotonicity.
5311
5312 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
5313
5314         * dominance.c: Include timevar.h.
5315         (calculate_dominance_info): Use TV_DOMINANCE.
5316         * timevar.def (TV_DOMINANCE): New timevar.
5317         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
5318
5319 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5320
5321         PR rtl-optimization/14261
5322         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
5323         move would be an INSV insn.
5324         (noce_process_if_block): Don't optimize if the destination is a
5325         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
5326
5327 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5328
5329         * config/s390/s390.md: Add comments with the instructions emitted
5330         by an insn pattern if macros are used.
5331
5332 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
5333
5334         PR rtl-optimization/26026
5335         * fold-const.c (fold_binary): Optimize div and mod where the divisor
5336         is a known power of two shifted left a variable amount.
5337
5338 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
5339
5340         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
5341         to hash table twice when the debug_str section has SECTION_MERGE.
5342
5343 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
5344
5345         * config/soft-fp: New directory.  From glibc.
5346         * config/soft-fp/t-softfp: New.
5347         * config/soft-fp/README: New.
5348         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
5349         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
5350         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
5351         (LIBGCC_DEPS): Add $(SFP_MACHINE).
5352         * config.gcc: Use rs6000/t-fprules-fpbit or
5353         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
5354         rs6000/t-fprules.
5355         * config/rs6000/sfp-machine.h: New.  Based on glibc.
5356         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
5357         New.
5358         * config/rs6000/t-fprules: Remove fp-bit rules.
5359         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
5360         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
5361         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
5362         (softfp_wrap_start, softfp_wrap_end): New.
5363
5364 2006-04-18  DJ Delorie  <dj@redhat.com>
5365
5366         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
5367
5368 2006-04-18  Devang Patel  <dpatel@apple.com>
5369
5370         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
5371
5372 2006-04-18  Nick Clifton  <nickc@redhat.com>
5373
5374         * config/sh/t-symbian: Add rule to build sh-c.o
5375         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
5376         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
5377         (sh_symbian_encode_section_info): Likewise.
5378
5379 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5380
5381         * builtins.c (expand_builtin_strcmp): Cover label definition of
5382         do_libcall with HAVE_cmpstrnsi.
5383
5384 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
5385
5386         * function.c (temp_slots_at_level, max_slot_level): Use VEC
5387         instead of VARRAY.
5388         * function.h (temp_slot_p): New.
5389         (function): Change the type of x_used_temp_slots to
5390         VEC(temp_slot_p,gc) *.
5391
5392 2006-04-18  Nick Clifton  <nickc@redhat.com>
5393
5394         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5395         flag_strength_reduce.
5396
5397         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5398
5399 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5400
5401         PR target/27117
5402
5403         Partial revert of revision 112637
5404         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
5405                     Dale Johannesen  <dalej@apple.com>
5406
5407         PR target/19653
5408         * regclass.c (struct reg_pref): Update documentation.
5409         (regclass): Set prefclass to NO_REGS if memory is the best option.
5410         (record_reg_classes): Cope with a prefclass set to NO_REGS.
5411
5412 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5413
5414         PR tree-optimization/26821
5415         * tree-ssa-math-opts.c (get_constant_one): New.
5416         (insert_reciprocals): Use it.
5417
5418 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
5419
5420         * dwarf2out.c (free_AT): Delete.
5421         (remove_AT): Update string ref counts.
5422         (remove_child_TAG): Don't call free_die.
5423         (free_die): Delete.
5424         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
5425         or DW_TAG_GNU_EINCL.
5426         (prune_unused_types_walk_attribs): Reset string refcounts.
5427         (prune_unused_types_update_strings): New.
5428         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
5429         call free_die.  Do call prune_unused_types_update_strings.
5430         (prune_unused_types): Empty debug_str_hash.
5431
5432 2006-04-17  Roger Sayle  <roger@eyesopen.com>
5433
5434         * expr.c (expand_assignment): Optimize away no-op moves where the
5435         source and destination are equal and have no side-effects.
5436
5437 2006-04-17  Richard Guenther  <rguenther@suse.de>
5438
5439         PR target/26826
5440         * reload.c (push_reload): Guard calls to get_secondary_mem
5441         for memory subregs.
5442
5443 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
5444
5445         * alias.c (reg_base_value, old_reg_base_value): Change the
5446         type to VEC(rtx,gc) *.
5447         (REG_BASE_VALUE, find_base_value, record_set,
5448         init_alias_analysis): Use VEC instead of VARRAY.
5449
5450         * alias.c (alias_sets): Change the type to
5451         VEC(alias_set_entry,gc) *.
5452         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
5453         VEC instead of VARRAY.
5454         (last_alias_set): Remove.
5455
5456         * cgraph.h (cgraph_edge_p): New.
5457         Update the prototype of cgraph_function_versioning.
5458         * cgraphunit.c (cgraph_copy_node_for_versioning,
5459         cgraph_function_versioning): Use VEC instead of VARRAY.
5460         * ipa-cp.c (ipcp_insert_stage): Likewise.
5461
5462 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5463
5464         PR target/26961
5465         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
5466         "A op B" or "A op C", we may need to convert A to the type of B and C.
5467
5468 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
5469
5470         * target.h (struct gcc_target): Add mode_rep_extended.
5471         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
5472         (init_num_sign_bit_copies_in_rep): Initialize it using
5473         mode_rep_extended.
5474         (truncate_to_mode): Use it.
5475         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
5476         * targhooks.h (default_mode_rep_extended): Declare it.
5477         * targhooks.c (default_mode_rep_extended): Define it.
5478         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
5479         default_mode_rep_extended.
5480         (TARGET_INITIALIZER): Include it.
5481         * doc/tm.texi (Misc): Document it.
5482         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
5483         (mips_truncated_to_mode): New function.
5484
5485 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5486
5487         PR middle-end/25474
5488         * expr.c (compress_float_constant): Copy the narrow constant into
5489         a new pseudo before extending it to its final width.
5490
5491 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5492             Andrew Pinski  <pinskia@gcc.gnu.org>
5493             Dale Johannesen  <dalej@apple.com>
5494
5495         PR target/24076
5496         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5497         special case code to implement V8HImode and V16QImode with SSE2.
5498
5499 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5500
5501         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5502         trees are constructed with a suitable tree type.
5503
5504 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5505
5506         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5507         (integer_onep): Likewise.
5508         (integer_all_onesp): Likewise.
5509         (integer_pow2p): Likewise.
5510         (integer_nonzerop): Likewise.
5511         (real_zerop): Likewise.
5512         (real_onep): Likewise.
5513         (real_twop): Likewise.
5514         (real_minus_onep): Likewise.
5515         (int_size_in_bytes): Likewise.
5516         (host_integerp): Likewise.
5517
5518 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
5519
5520         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5521         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5522         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5523
5524         * tree-ssa-structalias.h (alias_info): Remove num_references.
5525
5526 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5527
5528         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5529         (output_bvb patterns): Likewise.
5530         * pa.c (output_bb): Use 'bb' insn for long branch case.
5531         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5532         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5533         1.  Correct length operand for alternatives 1 and 2.
5534         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5535         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
5536
5537 2006-04-14  Roger Sayle  <roger@eyesopen.com>
5538
5539         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5540         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5541         were accidentally reverted by r112959.
5542
5543 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
5544
5545         PR middle-end/26823
5546         * except.h (eh_region_outermost): New prototype.
5547         * except.c (eh_region_outermost): New function.
5548         * tree-cfg.c (find_outermost_region_in_block): Use it.
5549
5550 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5551
5552         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5553         of VARRAY.
5554         * reload1.c (reg_equiv_memory_loc_varray): Rename to
5555         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
5556         (init_reload, reload): Use VEC instead of VARRAY.
5557         * reload.h: Update the prototype for
5558         reg_equiv_memory_loc_varray.
5559
5560 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5561             Eric Botcazou  <ebotcazou@libertysurf.fr>
5562
5563         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5564         register save area.
5565
5566 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
5567
5568         PR middle-end/27134
5569         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5570         to expand fallback builtin function call.
5571
5572 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
5573
5574         PR middle-end/27095
5575         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5576         and emit libcall here in case the builtin fails.
5577         (expand_builtin_strcmp): Always emit the libcall here on failure.
5578
5579 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5580
5581         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5582         * flow.c (reg_n_info): Change the type to
5583         VEC(reg_info_p,heap) *.
5584         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5585         instead of VARRAY.
5586         * regs.h (reg_info_p): New.
5587         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5588         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5589         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5590         instead of VARRAY.
5591
5592 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5593
5594         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5595         defaulting to 100.
5596         * params.h (MAX_SCHED_READY_INSNS): New macro.
5597         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5598         past MAX_SCHED_READY_INSNS during the first scheduling pass.
5599         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5600         the ready list for 1 cycle during the first scheduling pass.
5601         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5602
5603 2006-04-13  Richard Henderson  <rth@redhat.com>
5604
5605         PR libgomp/26651
5606         * gimple-low.c (lower_omp_directive): Remove dead code.
5607         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5608         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5609         * omp-low.c (struct omp_region): Move to tree-flow.h.
5610         (root_omp_region): Export.
5611         (omp_regions, lookup_omp_region): Remove.
5612         (determine_parallel_type): Update for struct omp_region changes.
5613         (dump_omp_region): Dump regions with block numbers.
5614         (new_omp_region): Take type and block instead of stmt; malloc
5615         instead of ggc.
5616         (free_omp_region_1, free_omp_regions): New.
5617         (expand_parallel_call): Take entry_stmt as argument; update for
5618         changes to omp_region.
5619         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5620         (remove_exit_barriers): New.
5621         (expand_omp_parallel): Update for struct omp_region changes.
5622         (expand_omp_synch): Likewise.
5623         (expand_omp): Likewise.
5624         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5625         (expand_omp_for_static_chunk): Likewise.
5626         (expand_omp_for): Likewise.
5627         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5628         (expand_omp_sections): Similarly, with GOMP_sections_end.
5629         (expand_omp_single): New.
5630         (build_omp_regions_1): Update for OMP_CONTINUE.
5631         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5632         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5633         OMP_SECTIONS_SECTIONS.
5634         (lower_omp_single_simple): Don't emit barrier here.
5635         (lower_omp_single_copy): Likewise.
5636         (lower_omp_single): Fix bindings, and lower to straightline now.
5637         (lower_omp_master, lower_omp_ordered): Likewise.
5638         (lower_omp_critical): Likewise.
5639         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
5640         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5641         omp edges, free it afterward.
5642         (make_omp_sections_edges): Remove.
5643         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5644         (move_stmt_r): Handle OMP_CONTINUE.
5645         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
5646         statement pointers to basic blocks.  Add type member.
5647         (root_omp_region, new_omp_region, free_omp_regions): Declare.
5648         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5649         * tree-inline.c (estimate_num_insns_1): Likewise.
5650         * tree-pretty-print.c (dump_generic_node): Likewise.
5651         * tree-ssa-operands.c (get_expr_operands): Likewise.
5652         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5653         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5654         (OMP_CONTINUE): New.
5655         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5656         (OMP_SECTIONS_SECTIONS): Remove.
5657         (OMP_SECTION_LAST): New.
5658         (OMP_RETURN_NOWAIT): New.
5659
5660 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5661
5662         * fold-const.c (native_encode_vector, native_interpret_real):
5663         Correct obvious mistakes in the previous check-in.
5664
5665 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5666
5667         * fold-const.c (native_encode_expr): New function to encode
5668         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5669         or VECTOR_CST into a specified buffer.
5670         (native_encode_int): New function.
5671         (native_encode_real): New function.
5672         (native_encode_complex): New function.
5673         (native_encode_vector): New function.
5674         (native_interpret_expr): Inverse of native_encode_expr to convert
5675         a target representation into an INTEGER_CST, REAL_CST etc...
5676         (native_interpret_int): New function.
5677         (native_interpret_real): New function.
5678         (native_interpret_complex): New function.
5679         (native_interpret_vector): New function.
5680         (fold_view_convert_expr): New function to constant fold/evaluate
5681         a VIEW_CONVERT_EXPR of a suitable constant expression.
5682         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5683         Change call of build1 to fold_build1 when constructing a
5684         VIEW_CONVERT_EXPR.
5685
5686 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
5687             Ulrich Weigand  <uweigand@de.ibm.com>
5688
5689         PR target/27006
5690         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5691         to be even.
5692
5693 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
5694
5695         PR target/26459
5696         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5697         optimize to lo_sum for DFmode if !TARGET_FPRS.
5698
5699 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5700
5701         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5702         delete_alias_info, compute_flow_sensitive_aliasing,
5703         group_aliases): Use VEC instead of VARRAY.
5704         * tree-ssa-structalias.c (update_alias_info): Likewise.
5705         * tree-ssa-structalias.h (alias_info): Change the type of
5706         processed_ptrs to VEC(tree,heap) *.
5707
5708 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
5709
5710         PR target/27060
5711         * config/sh/lib1funcs.h: New file, broken out of:
5712         * config/sh/lib1funcs.asm.
5713         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5714         New macros.
5715         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5716         * config/sh/lib1funcs-Os-4-200.asm: New file.
5717         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5718         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5719         (EXTRA_MULTILIB_PARTS): Include it.
5720         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5721         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5722         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5723         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5724         TARGET_SH2.
5725
5726 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5727
5728         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5729         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5730         tpa_compact, root_var_init, type_var_init): Use VEC instead of
5731         VARRAY.
5732         * tree-ssa-live.h: Include vecprim.h.
5733         (tree_partition_associator_d): Change the type of
5734         first_partition to VEC(int,heap) *.
5735         (tpa_first_partition): Use VEC instead of VARRAY.
5736
5737         * Makefile.in (GTFILES): Move functions.h after tree.h.
5738         * function.c (reset_block_changes, record_block_change,
5739         check_block_change, free_block_changes): Use VEC instead of
5740         VARRAY.
5741         * function.h (function): Change the type of
5742         ib_boundaries_block to VEC(tree,gc) *.
5743         * tree-inline.c (copy_cfg_body): Initialize
5744         ib_boundaries_block to NULL instead of (varray_type) 0.
5745
5746 2006-04-12  Roger Sayle  <roger@eyesopen.com>
5747
5748         * expr.c (emit_group_store): Correct operand order in call to
5749         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
5750         a SUBREG_BYTE of zero.
5751
5752 2006-04-12  Richard Guenther  <rguenther@suse.de>
5753
5754         * profile.c (compute_branch_probabilities): Remove code
5755         encapsulated in !ir_type (), which are remanents of the
5756         removed RTL profiling code.
5757         * rtl-profile.c: Remove.
5758
5759 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
5760
5761         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5762         magic NULL_RTX comment.
5763         (function_arg): Store entire fp arg to mem if any part should go
5764         on stack.
5765         (rs6000_arg_partial_bytes): Adjust for above change.
5766
5767 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5768
5769         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5770         if it hasn't been initialized by dwarf2out_init.
5771
5772 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
5773
5774         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5775         symbolic constants in branch patterns.
5776
5777 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5778
5779         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5780
5781 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
5782
5783         PR rtl-optimization/27073
5784         * gcse.c (try_replace_reg): Revert last change.  Continue to search
5785         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5786         on the former.
5787
5788 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5789
5790         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5791         aggregate types other than record and union types.
5792         (function_arg): Likewise.
5793         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5794         small arrays.
5795         (function_value): In 64-bit mode, return objects that require it
5796         in FP registers.
5797
5798 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5799
5800         * dwarf2out.c (premark_used_types): Remove problematic prototype.
5801
5802 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
5803
5804         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5805
5806 2006-04-03  Jeff Law  <law@redhat.com>
5807
5808         PR/27087
5809         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5810         alias information too.
5811
5812 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
5813
5814         * Makefile.in (gcc-cross): Add $(exeext) to target name.
5815
5816 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
5817
5818         PR/21391
5819         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5820         (premark_used_types_helper): New.
5821         (premark_used_types): New.
5822         (gen_subprogram_die): Call premark_used_types.
5823         (prune_unused_types_walk): Do not prune perennial dies.
5824         * function.c (used_types_insert): New.
5825         * function.h (struct function): Add used_types_hash field.
5826         (used_types_insert): Add prototype.
5827         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
5828         * c-parser.c (c_parser_cast_expression): Save casted types in used
5829         types hash table.
5830
5831 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
5832
5833         PR target/26459
5834         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
5835         rs6000_explicit_options.float_gprs.
5836
5837 2006-04-10  Roger Sayle  <roger@eyesopen.com>
5838
5839         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
5840         from ix86_expand_vector_init_low_nonzero.  Take an additional
5841         one_var argument indicating which element is non-zero.  Support
5842         one_var != 0 for V4SFmode and V4SImode by permuting the result.
5843         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
5844         with one_var instead of ix86_expand_vector_init_low_nonzero.
5845
5846 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
5847
5848         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
5849         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
5850         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
5851         build/genextract.o): Depend on vecprim.h.
5852         * cfglayout.c, df-problems.c, function.c, genextract.c,
5853         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
5854         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
5855         vecprim.h.
5856         * vecprim.h: New.
5857
5858 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
5859
5860         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
5861         Declare VECs of this type.
5862         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
5863         (remove_children): Delete.
5864         (add_dwarf_attr): Use VEC routines.
5865         (add_AT_flag): Update for changes to add_dwarf_attr.
5866         (add_AT_int): Likewise.
5867         (add_AT_unsigned): Likewise.
5868         (add_AT_long_long): Likewise.
5869         (add_AT_vec): Likewise.
5870         (add_AT_string): Likewise.
5871         (add_AT_die_ref): Likewise.
5872         (add_AT_fde_ref): Likewise.
5873         (add_AT_loc): Likewise.
5874         (add_AT_loc_list): Likewise.
5875         (add_AT_addr): Likewise.
5876         (add_AT_lbl_id): Likewise.
5877         (add_AT_lineptr): Likewise.
5878         (add_AT_macptr): Likewise.
5879         (add_AT_offset): Likewise.
5880         (add_AT_range_list): Likewise.
5881         (get_AT): Use VEC_iterate.
5882         (remove_AT): Use VEC_ordered_remove.
5883         (free_die): Fold remove_children into here; have it use VEC_iterate.
5884         (print_die): Use VEC_iterate on attrs.
5885         (reverse_die_lists): Don't reverse attr lists.
5886         (die_checksum): Use VEC_iterate on attrs.
5887         (same_die_p): Likewise.
5888         (output_location_lists): Likewise.
5889         (build_abbrev_table): Likewise.
5890         (size_of_die): Likewise.
5891         (unmark_all_dies): Likewise.
5892         (output_abbrev_section): Likewise.
5893         (output_die): Likewise.
5894         (prune_unused_types_walk_attribs): Likewise.
5895
5896 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5897
5898         * doc/install.texi (*-*-solaris2*): Point to the configure page.
5899
5900 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
5901
5902         PR debug/27057
5903         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
5904
5905 2006-04-09  Roger Sayle  <roger@eyesopen.com>
5906
5907         * expr.c (store_constructor): Don't bother clearing target if
5908         we're about to assign a vector to it using vec_init_optab.
5909
5910 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
5911
5912         * tree-ssa-alias.c (lhs_may_store_to): New function.
5913         (recalculate_used_alone): Handle LHS of calls.
5914
5915 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5916
5917         PR target/27034
5918         PR target/26508
5919         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
5920         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
5921         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
5922         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
5923         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
5924         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
5925         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
5926         stubs.  Add ".align 8" directives before all ".dword" directives.
5927         (GTHREAD_USE_WEAK): Revise comment.
5928         (TARGET_ATTRIBUTE_WEAK): Define.
5929         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
5930         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
5931         * stublib.c: New file.
5932
5933         PR target/26743
5934         PR target/11254
5935         PR target/10274
5936         * pa.md (cbranch patterns): Revise arguments used in calls to
5937         output_cbranch, output_bb and output_bvd.  Add long branch length
5938         attributes.
5939         (fbranch patterns): Handle long branches.
5940         (jump): Revise length check.  Revise arguments for output_lbranch call.
5941         Add long branch length attributes.
5942         (decrement_and_branch_until_zero): Add long branch length attributes.
5943         (output_movb, output_parallel_addb and output_parallel_movb patterns):
5944         Likewise.  Revise arguments for output_parallel_addb and
5945         output_parallel_movb calls.
5946         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
5947         output_parallel_movb and output_parallel_addb): Update prototypes.
5948         * pa.c (output_cbranch): Revise arguments.  Correct handling of
5949         nullification in long branches.
5950         (output_lbranch): Add new argument to control extraction of delay
5951         instruction.
5952         (output_bb): Handle long branches.
5953         (output_bvb, output_dbra, output_movb, output_parallel_movb,
5954         output_parallel_addb): Likewise.
5955
5956 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
5957
5958         PR rtl-optimization/27073
5959         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
5960         not REG_EQUIVs.
5961
5962 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
5963
5964         * tree.h (tree_memory_tag): Add old_used_alone.
5965         (SMT_OLD_USED_ALONE): New macro.
5966         * tree-ssa-alias.c (recalculate_used_alone): Stop
5967         marking things for renaming unnecessarily.
5968
5969 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
5970
5971         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
5972         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
5973         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
5974         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
5975         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
5976         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
5977         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
5978         spelling convensions.
5979         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
5980         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
5981         typos.  Follow spelling conventions.
5982
5983 2006-04-07  DJ Delorie  <dj@redhat.com>
5984
5985         * config/m32c/m32c.c (m32c_function_arg): Structures are always
5986         passed on the stack.
5987         (m32c_init_cumulative_args): When a function returns a structure,
5988         always pass the pointer to that return area on the stack.
5989         (m32c_function_arg_advance): Don't increment the parameter number
5990         if we're processing the returned structure pointer.
5991         (pushm_info): Reverse order of registers.
5992
5993 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
5994
5995         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
5996         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
5997         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
5998         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
5999         build_int_cst_type.
6000         * tree-chrec.c (chrec_fold_multiply_poly_poly,
6001         chrec_fold_multiply): Same.
6002         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
6003         force_expr_to_var_cost): Same.
6004         * tree-mudflap.c (mf_xform_derefs_1): Same.
6005         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
6006
6007 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
6008
6009         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
6010         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
6011         insn.
6012
6013 2006-04-07  Jan Hubicka  <jh@suse.cz>
6014
6015         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
6016
6017 2006-04-07  Richard Guenther  <rguenther@suse.de>
6018
6019         PR tree-optimization/26135
6020         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
6021         loads for store copy-prop.
6022         (copy_prop_visit_stmt): Likewise.
6023
6024 2006-04-05  Robert Millan  <robertmh@gnu.org>
6025
6026         * config/i386/linux.h: Add a comment to mark macros that are
6027         being overriden in config/k*bsd-gnu.h.
6028         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
6029         DYNAMIC_LINKER.
6030         * config/knetbsd-gnu.h: Ditto.
6031
6032 2006-04-06  Jan Hubicka  <jh@suse.cz>
6033
6034         PR profile/20815
6035         PR profile/26399
6036         * coverage.c (coverage_checksum_string): Reorganize loop to not read
6037         after buffer.
6038
6039 2006-04-06  Mike Stump  <mrs@apple.com>
6040
6041         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
6042         for HAVE_nonlocal_goto to be consistent.
6043         (expand_builtin_nonlocal_goto): Likewise.
6044         (expand_builtin_strcmp): Use #ifdef instead of #if
6045         for HAVE_cmpstrnsi to be consistent.
6046
6047 2006-04-05  DJ Delorie  <dj@redhat.com>
6048
6049         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
6050         vs m32c.
6051
6052 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
6053
6054         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
6055         got-relative addressing for anything but SImode.
6056
6057         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
6058         even if the calling function doesn't modify them.
6059
6060 2006-04-05  Richard Guenther  <rguenther@suse.de>
6061
6062         PR tree-optimization/26919
6063         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
6064         to cgraph_estimate_size_after_inlining.
6065
6066 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
6067
6068         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
6069
6070 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
6071
6072         PR tree-optimization/26996
6073         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
6074         VECTOR_TYPE variables.
6075
6076 2006-04-05  Richard Guenther  <rguenther@suse.de>
6077
6078         PR tree-optimization/26763
6079         * fold-const.c (fold_comparison): Move folding of
6080         PTR + CST CMP PTR + CST ...
6081         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
6082
6083 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
6084
6085         * doc/install.texi (Prerequisites): Refine some wording on
6086         bootstrapping and ksh.
6087         Move the version numbers of DejaGnu here from the testing section
6088         and fix casing of names.
6089         Fix markup and clarify wording for autogen requirements.
6090         Refer to GCJ instead of just java.
6091         Refer to SVN instead of CVS.
6092         Describe diffutils as useful instead of necessary.
6093         (Downloading the source): Refer to SVN instead of CVS.
6094         Adjust a link to our web site accordingly.
6095         (Configuration): Fix casing of Bison.
6096         (Building): Refer to SVN instead of CVS.
6097         Fix a sentence on the use of Bison and remove duplicate (and
6098         incorrect) version number of Bison requirement.
6099         Remove one redundant list of packages needed for building.
6100         (Specific): Avoid reference to CVS.
6101
6102 2006-04-04  Eric Christopher  <echristo@apple.com>
6103
6104         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
6105         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
6106         (rs6000_handle_struct_attribute): New.
6107         (rs6000_ms_bitfield_layout_p): Ditto.
6108
6109 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
6110
6111         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
6112         NULL for dso parameter to atexit_common.
6113
6114 2006-04-04  Eric Christopher  <echristo@apple.com>
6115
6116         * config/i386/i386.c (machopic_output_stub): Output \t
6117         between instructions and operands.
6118
6119 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
6120
6121         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
6122         satisfies_constraint_[IL] to explicit tests on value.
6123
6124 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
6125
6126         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6127         set_nb_iterations_in_loop): Use build_int_cst instead of
6128         build_int_cst_type.
6129         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
6130         build_int_cst instead of convert.
6131
6132 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
6133
6134         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
6135         new value 2 for incoming.
6136         * function.c (expand_function_start): Call struct_value_rtx
6137         with incoming as 2.
6138         * config/sparc/sparc.md: Comment updated_return.
6139         * config/sparc/sparc.opt: Add -mstd-struct-return option.
6140         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
6141         struct return if sparc_std_struct_return and incoming is 2.
6142         (print_operand): Do not adjust return if
6143         sparc_std_struct_return.
6144
6145 2006-04-04  Roger Sayle  <roger@eyesopen.com>
6146
6147         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
6148         convert in the middle-end.
6149         * expr.c (store_expr, store_constructor, get_inner_reference,
6150         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
6151         Likewise.
6152         * tree.c (build_range_type): Likewise.
6153
6154 2006-04-04  Tom Tromey  <tromey@redhat.com>
6155
6156         * doc/install.texi (Prerequisites): Mention jar.
6157
6158 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
6159
6160         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
6161         subsection.
6162
6163 2006-04-04  Matthias Klose  <doko@debian.org>
6164
6165         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
6166         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
6167         strings.
6168
6169 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
6170
6171         * doc/extend.texi (Function Attributes): Rewrite visibility
6172         attribute documentation.
6173         * doc/invoke.texi (C++ Dialect Options): Rewrite
6174         -fvisibility-inlines-hidden documentation to describe something
6175         entirely different, although in practise compatible.
6176         (Code Gen Options): Warn about system headers in -fvisibility=
6177         documentation.
6178
6179         * doc/extend.texi (Other Builtins): Document that
6180         __builtin_nan is a compile-time constant only when its argument
6181         is valid.
6182
6183 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6184
6185         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
6186         trying to remove TRUNCATE check if all bits outside the new mode
6187         are identical to the sign bit.
6188
6189 2006-04-03  Jeff Law  <law@redhat.com>
6190
6191         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
6192         and operand scanning in some common cases.
6193
6194 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
6195             Dale Johannesen  <dalej@apple.com>
6196
6197         PR target/19653
6198         * regclass.c (struct reg_pref): Update documentation.
6199         (regclass): Set prefclass to NO_REGS if memory is the best option.
6200         (record_reg_classes): Cope with a prefclass set to NO_REGS.
6201         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
6202         into account.  For non-registers, equate an empty preferred
6203         reload class to a `!' in the constraint; move the if clause to
6204         do so after those that reject the insn.
6205         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
6206         return NO_REGS.
6207         (find_dummy_reload): Likewise.
6208         * doc/tm.texi (Register Classes): Document what it means
6209         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
6210         * config/i386/i386.c (ix86_preferred_reload_class): Force
6211         using SSE registers (and return NO_REGS for floating-point
6212         constants) if math is done with SSE.
6213         (ix86_preferred_output_reload_class): New.
6214         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
6215         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
6216         * config/i386/i386.md: Remove # register preferences.
6217
6218 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6219
6220         PR bootstrap/26992
6221         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6222         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
6223         the type of nb_iter.
6224         (instantiate_parameters_1): Convert the operands before calling
6225         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
6226         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
6227
6228 2006-04-02  Roger Sayle  <roger@eyesopen.com>
6229
6230         * builtins.c (dummy_object): Use build_int_cst instead of convert.
6231         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
6232         instead of convert.
6233         * dojump.c (do_jump): Likewise.
6234         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
6235         * gimplify.c (gimple_boolify, gimplify_init_constructor,
6236         gimplify_boolean_expr): Likewise.
6237         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6238         * varasm.c (array_size_for_constructor): Likewise.
6239         * tree-object-size.c (compute_object_offset): Likewise.
6240
6241 2006-04-02  Roger Sayle  <roger@eyesopen.com>
6242
6243         PR middle-end/26977
6244         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
6245         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
6246
6247 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6248
6249         PR tree-optimization/26939
6250         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
6251
6252 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6253
6254         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
6255         at_stmt.  Convert the type of operands before calling
6256         build_polynomial_chrec.
6257         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
6258         add_to_evolution_1.
6259         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
6260         (instantiate_parameters_1): Convert the type of operands before calling
6261         build_polynomial_chrec.
6262         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6263         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
6264         reset_evolution_in_loop): Insert asserts to check the types of the
6265         operands.
6266         (chrec_type): Moved...
6267         (eq_evolutions_p): Use operand_equal_p.
6268         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
6269         the types of the operands.
6270         (chrec_type): ...here.
6271         * tree-data-ref.c (create_data_ref): Convert the operands before
6272         calling chrec_replace_initial_condition.
6273         (same_access_functions, analyze_subscript_affine_affine,
6274         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
6275         (compute_subscript_distance, analyze_ziv_subscript,
6276         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
6277         analyze_miv_subscript): Convert the operands before calling
6278         chrec_fold_minus or chrec_fold_plus.
6279
6280 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6281
6282         * tree-data-ref.c (compute_all_dependences): Use a pointer to
6283         the dependence_relations vector.
6284         (compute_data_dependences_for_loop): Adjust call to
6285         compute_all_dependences.
6286
6287 2006-04-01  Roger Sayle  <roger@eyesopen.com>
6288             Richard Henderson  <rth@redhat.com>
6289
6290         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
6291         gimple_boolify on the condition before calling gimplify_expr.
6292
6293 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
6294
6295         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
6296         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
6297         the frame size.  Update to use the new macros.
6298         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
6299         * config/xtensa/ieee754-df.S: Likewise.
6300
6301 2006-03-31  Richard Henderson  <rth@redhat.com>
6302
6303         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
6304         (make_edges): ... here.  Control fallthru creation with a local
6305         variable.  Do not play with fake edges.
6306         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
6307         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
6308         a boolean.
6309
6310 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
6311
6312         * dwarf2.h (DW64_CIE_ID): Define.
6313         * dwarf2out.c (DWARF_CIE_ID): Define.
6314         (output_call_frame_info): Output 0xffffffff before standard 8-byte
6315         length header.  Use DWARF_CIE_ID.
6316         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
6317         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
6318
6319 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6320
6321         * config/sh/linux-atomic.asm: New file.
6322         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
6323
6324 2006-03-31  DJ Delorie  <dj@redhat.com>
6325
6326         * config/m32c/cond.md: Set condition flags properly throughout.
6327         * config/m32c/minmax.md: Likewise.
6328         * config/m32c/prologue.md: Likewise.
6329         * config/m32c/bitops.md: Likewise.
6330         * config/m32c/muldiv.md: Likewise.
6331         * config/m32c/mov.md: Likewise.
6332         * config/m32c/addsub.md: Likewise.
6333         * config/m32c/m32c.md: Likewise.
6334         * config/m32c/jump.md: Likewise.
6335         * config/m32c/shift.md: Likewise.
6336
6337         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
6338         conditionally output the pattern for this.
6339         * config/m32c/m32c.c (flags_needed_for_conditional): New.
6340         (m32c_compare_redundant): New.
6341         (m32c_output_compare): New.
6342         * config/m32c/m32c-protos.h (m32c_output_compare): New.
6343
6344         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
6345         dest, not src.  Allow other 4-byte modes.
6346
6347 2006-03-30  Denis Chertykov  <denisc@overta.ru>
6348
6349         * doc/md.texi: Refer to avr/constraints.md instead of
6350         avr/avr.h.
6351
6352 2006-03-30  Roger Sayle  <roger@eyesopen.com>
6353
6354         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
6355         signed vs. unsigned comparison failures on some hosts.
6356
6357 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
6358
6359         PR target/26459
6360         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
6361         change to FLOAT_REGS.
6362
6363         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
6364         (rs6000_override_options): Use it.
6365         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
6366         only for -mabi=spe/no-spe and -mabi=altivec.
6367
6368 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
6369
6370         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
6371         !Zdynamiclib.
6372
6373 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
6374
6375         * Makefile.in: Rename docdir to gcc_docdir.
6376
6377 2006-03-30  Roger Sayle  <roger@eyesopen.com>
6378
6379         PR target/17959
6380         * expr.c (emit_group_store): Optimize group stores into a pseudo
6381         register by using a paradoxical subreg to initialize the destination
6382         if the first or last member of the group specifies a "low part".
6383
6384 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6385
6386         PR target/26734
6387         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6388         * target.h (struct gcc_target.speculate_insn): Change type of the
6389         second parameter to 'int'.
6390         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
6391         the second operand of the DEPS_LIST.
6392         (copy_DEPS_LIST_list): Update reference to the second operand of the
6393         DEPS_LIST.
6394         * rtl.h (alloc_DEPS_LIST): Update signature.
6395         * sched-int.h (ds_t): Change typedef to 'int'.
6396         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6397
6398 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6399
6400         * haifa-sched.c (try_ready): Change condition to restore
6401         non-speculative pattern of the instruction.
6402         (process_insn_depend_be_in_spec): Code to keep probability of the
6403         speculative dependence non-decreasing.
6404
6405 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
6406
6407         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
6408         (single_move_for_movmem): ... this. Also change all uses.
6409         (bfin_expand_strmov): Renamed to...
6410         (bfin_expand_movmem): ... this. Also change all uses.
6411         * config/bfin/bfin.md (movstrsi): Renamed to...
6412         (movstrsi): ...this.
6413
6414 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
6415
6416         PR tree-optimization/26830
6417
6418         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
6419         (copy_prop_visit_stmt): Remove write-only variable ann.
6420         (init_copy_prop): Check variable loop depth here.  Do not simulate
6421         memory-tag and virtual operand PHIs except for store copy prop.
6422
6423 2006-03-30  Richard Guenther  <rguenther@suse.de>
6424
6425         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
6426         variants with double arguments.
6427
6428 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6429
6430         * genpreds.c (write_tm_constrs_h): Delete variable p.
6431         * genconditions.c (write_header): Add tm-constrs.h to included
6432         headers.
6433         * genpeep.c (main): Add toplev.h to included headers.
6434         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
6435         (build/genpeep.o): Add toplev.h dependency.
6436         * config/rs6000/constraints.md: Add "W" constraint.
6437
6438 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6439
6440         * stor-layout.c (mode_for_size_tree): Remove restiction on type
6441         sizes by correctly testing whether the size fits a host integer.
6442         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
6443         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
6444         SImode range for the default sizetype and bitsizetype.
6445
6446 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6447
6448         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
6449         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
6450         quickly if the argument is already of the correct type.
6451         Call fold_build1 instead of build1.  Tidy up blank lines.
6452
6453 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6454
6455         * genemit.c (main): Add tm-constrs.h to included headers.
6456         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
6457         * genpeep.c (main): Add tm-constrs.h to included headers.
6458         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
6459         (write_tm_constrs_h): this and write complete file.
6460         (write_tm_preds_h): Do not emit satisfies_constraint fns.
6461         (write_insn_preds_c): Add tm-constrs.h to included headers.
6462         (gen_constrs): New variable.
6463         (parse_option): Parse "-c".
6464         (main): Invoke write_tm_constrs_h.
6465         * genrecog.c (write_header): Add tm-constrs.h to included headers.
6466         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
6467         (object_out_file): Add tm-constrs.h dependency.
6468         (insn-emit.o): Same.
6469         (insn-output.o): Same.
6470         (insn-peep.o): Same.
6471         (insn-preds.o): Same.
6472         (insn-recog.o): Same.
6473         (tm-constsr.h): New target.
6474         (s-constrs-h): New target.
6475
6476         * config/rs6000/constraints.md: New file.
6477         * config/rs6000/rs6000.c: Include tm-constrs.h.
6478         (num_insn_constant_wide): Convert to satisfies_constraint.
6479         (rs6000_rtx_costs): Convert to satisfies_constraint.
6480         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
6481         (CONST_OK_FOR_LETTER_P): Delete.
6482         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6483         (EXTRA_CONSTRAINT): Delete.
6484         (EXTRA_MEMORY_CONSTRAINT): Delete.
6485         (EXTRA_ADDRESS_CONSTRAINT): Delete.
6486         * config/rs6000/predicates.md: Convert to satisfies_constraint.
6487         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
6488         satisfies_constraint.
6489
6490         * config/i386/i386.c: Include tm-constrs.h.
6491
6492 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6493
6494         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6495         * tree-data-ref.c (find_data_references_in_loop,
6496         compute_data_dependences_for_loop): Use pointers to VEC.
6497         (analyze_all_data_dependences): Adjust calls.
6498         * tree-data-ref.h (find_data_references_in_loop,
6499         compute_data_dependences_for_loop): Adjust declarations.
6500         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6501         compute_data_dependences_for_loop.
6502
6503 2006-03-29  Paul Brook  <paul@codesourcery.com>
6504
6505         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6506         (movdf_vfp): Ditto.
6507
6508 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6509
6510         PR tree-optimization/26859
6511         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6512         division by zero.
6513         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6514         for the step after fold_convert.
6515
6516 2006-03-29  Paul Brook  <paul@codesourcery.com>
6517
6518         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6519         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6520
6521 2006-03-29  Paul Brook  <paul@codesourcery.com>
6522
6523         PR middle-end/23623
6524         * targhooks.c (default_narrow_bitfield): New fuction.
6525         * targhooks.h (default_narrow_bitfield): add prototype.
6526         * target.h (gcc_target): Add narrow_volatile_bitfield.
6527         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6528         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6529         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6530         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6531
6532 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6533
6534         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6535         tmake_file.
6536         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6537         (NR_C_MODES): Add TDmode, DDmode and SDmode.
6538         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6539         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6540         (s390_function_arg_float): Allow SDmode and DDmode values to be
6541         passed in floating point registers.
6542         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6543         check with SCALAR_FLOAT_MODE_P.
6544         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6545
6546 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6547
6548         PR tree-optimization/25985
6549         * tree-ssa-loop-niter.c (number_of_iterations_le,
6550         number_of_iterations_ne): Make comments more precise.
6551         (number_of_iterations_cond): Add only_exit argument.  Use the
6552         fact that signed variables do not overflow only when only_exit
6553         is true.
6554         (loop_only_exit_p): New.
6555         (number_of_iterations_exit): Pass result of loop_only_exit_p to
6556         number_of_iterations_cond.
6557
6558 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6559
6560         PR tree-optimization/26643
6561         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6562         bit_field_refs.
6563
6564 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6565
6566         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6567         (divsi3_i4_int): Likewise.
6568
6569 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6570
6571         * expr.c (emit_group_store): Only create a new pseudo reg if the
6572         quantity it needs to hold isn't already a suitable pseudo.
6573
6574 2006-03-28  Jeff Law  <law@redhat.com>
6575
6576         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6577         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6578
6579 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6580
6581         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6582         the equivalent ~X & Y, and the symmetry related transformations.
6583         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6584         ~X & Y, and symmetry related transforms.
6585
6586 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6587
6588         Revert my 2006-03-27 patches.
6589
6590 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6591
6592         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6593         ~(T1)X, when T1 and T2 are integer types of the same precision
6594         and (T2)X isn't an extension.
6595
6596 2006-03-28  Jeff Law  <law@redhat.com>
6597
6598         PR tree-optimization/26796
6599         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6600         need EH edge cleanups rather than purging them immediately.
6601         (eliminate_degenerate_phis): Handle queued EH cleanups.
6602
6603 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
6604
6605         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6606         from parent_var.
6607
6608 2006-03-27  Roger Sayle  <roger@eyesopen.com>
6609
6610         PR middle-end/22524
6611         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6612         cast BIT_NOT_EXPR operand to the correct type.
6613
6614 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
6615
6616         * tree-loop-linear.c: Don't include varray.h.
6617         (gather_interchange_stats, try_interchange_loops,
6618         linear_transform_loops): Use VEC instead of VARRAY.
6619         * lambda-mat.c: Don't include varray.h.
6620         * tree-chrec.c: Same.
6621         * lambda-trans.c: Same.
6622         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6623         VEC instead of VARRAY.
6624         * tree-vectorizer.h: Idem.
6625         * tree-data-ref.c (dump_data_references,
6626         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6627         initialize_data_dependence_relation, finalize_ddr_dependent,
6628         compute_all_dependences, find_data_references_in_loop,
6629         compute_data_dependences_for_loop, analyze_all_data_dependences,
6630         free_dependence_relation, free_dependence_relations,
6631         free_data_refs): Idem.
6632         * tree-data-ref.h (data_reference_p, subscript_p): New.
6633         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6634         VEC instead of VARRAY.
6635         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6636         (find_data_references_in_loop, compute_data_dependences_for_loop,
6637         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6638         dump_data_dependence_relations, free_dependence_relations,
6639         free_data_refs): Adjust declaration.
6640         (lambda_transform_legal_p): Move declaration here...
6641         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6642         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6643         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6644         vect_analyze_data_refs): Use VEC instead of VARRAY.
6645         * lambda.h (lambda_transform_legal_p): ...from here.
6646         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6647         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6648         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6649         tree-chrec.o): Don't depend on VARRAY_H.
6650
6651 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6652
6653         * rtl.def (Copyright): Update date.
6654         (DEPS_LIST): Change type of the second operand to 'int'.
6655         * target.h (Copyright): Update date.
6656         (struct gcc_target.speculate_insn): Change type of the second parameter
6657         to 'int'.
6658         * lists.c (Copyright): Update date.
6659         (alloc_DEPS_LIST): Change signature.  Update reference to the second
6660         operand of the DEPS_LIST.
6661         (copy_DEPS_LIST_list): Update reference to the second operand of the
6662         DEPS_LIST.
6663         * rtl.h (Copyright): Update date.
6664         (alloc_DEPS_LIST): Update signature.
6665         * sched-int.h (Copyright): Update date.
6666         (ds_t): Change typedef to 'int'.
6667         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6668
6669 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6670
6671         * haifa-sched.c (Copyright): Update date.
6672         (try_ready): Change condition to restore non-speculative pattern
6673         of the instruction.
6674         (process_insn_depend_be_in_spec): Code to keep probability of the
6675         speculative dependence non-decreasing.
6676
6677 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
6678
6679         * regrename.c (replace_oldest_value_addr): Initialize a variable to
6680         shut up the compiler.
6681
6682 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
6683
6684         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6685         to use lib prefix for target.
6686         ($(T)libic_invalidate_array_4-200.a): Likewise.
6687         ($(T)libic_invalidate_array_4a.a): Likewise.
6688
6689 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
6690             J"orn Rennecke <joern.rennecke@st.com>
6691
6692         * superh.opt: New file.
6693         * sh.c (boardtype, osruntime): Remove.
6694         * superh.h (SUBTARGET_OPTIONS): Remove.
6695         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6696
6697         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
6698         arguments with ^ and/or [].
6699
6700         * config.gcc (sh-*-*): Add quoting to account for quirk of
6701         Solaris /bin/sh.
6702         Replace == with = in enable_incomplete_targets test.
6703
6704         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6705         with MASK_LITTLE_ENDIAN.
6706
6707         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6708         * config/sh/sh.opt: Added to some comments.
6709         * config/sh/superh.h: Removed some chaff.
6710
6711         * config/sh/sh.opt: Add m4-[1234]00* options.
6712         * config/sh/sh.c (sh_handle_option): Likewise.
6713         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6714         (ic_invalidate_array_4-100.o): New rule.
6715         ($(T)libic_invalidate_array_4-100.a): Likewise.
6716         (ic_invalidate_array_4-200.o): Likewise.
6717         ($(T)libic_invalidate_array_4-200.a): Likewise.
6718         (ic_invalidate_array_4a.o): Likewise.
6719         ($(T)libic_invalidate_array_4a.a): Likewise.
6720         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6721         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6722         m4-200*, and m4a*.
6723         * config/sh/crt1.asm: Merged in profiling code.
6724         * config/sh/superh.h (STARTFILE_SPEC): Override.
6725         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6726         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6727         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6728
6729         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6730         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6731         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6732
6733         * sh.opt (mpretend-cmove): New option.
6734         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6735         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6736         (movsicc): Add TARGET_PRETEND_CMOVE code.
6737
6738 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6739
6740         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6741         s390_class_max_nregs): New function prototypes.
6742         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6743         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6744         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6745         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6746
6747 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
6748
6749         * dwarf2out.c (add_location_or_const_value_attribute): Call
6750         tree_add_const_value_attribute if nothing else works.
6751         (reference_to_unused): New.
6752         (rtl_for_decl_init): Use reference_to_unused to decide whether
6753         to output an initializer.
6754
6755 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
6756
6757         PR target/26459
6758         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6759         peephole removing spe frob_di_df_2.
6760
6761 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
6762
6763         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6764         (subscript_dependence_tester_1): Declared.
6765         (print_dir_vectors, print_dist_vectors): New.
6766         (debug_data_dependence_relation): New.
6767         (dump_data_dependence_relation): Print more details.
6768         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6769         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6770         (save_dist_v, save_dir_v, add_outer_distances,
6771         build_classic_dist_vector_1): New.
6772         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6773         Don't test for lambda_vector_lexico_pos.
6774         (same_access_functions, add_multivariate_self_dist,
6775         add_other_self_distances, dir_from_dist): New.
6776         (build_classic_dir_vector): Replace implementation almost identical to
6777         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6778         dir_from_dist.
6779         (subscript_dependence_tester_1): New.
6780         (subscript_dependence_tester): Handle the lexicographically negative
6781         distance vectors by recomputing the dependence relation.
6782         (compute_affine_dependence): Remove parameter loop_nest_depth.
6783         (compute_self_dependence): Don't call compute_subscript_distance.
6784         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6785         Add a parameter for the loop_nest.
6786         (find_loop_nest_1, find_loop_nest): New.
6787         (compute_data_dependences_for_loop): Compute the loop nest, and give
6788         up if the nest is not well formed.
6789         * tree-data-ref.h (loop_p): New.
6790         (struct data_dependence_relation): Replace size_vect field with
6791         loop_nest, a vec of loops.
6792         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6793         (DDR_LOOP_NEST): New.
6794         (print_dir_vectors, print_dist_vectors,
6795         debug_data_dependence_relation): Declared.
6796         (index_in_loop_nest): New.
6797         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6798         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6799         distance.
6800
6801 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
6802
6803         * simplify-rtx.c (simplify_relational_operation): Call
6804         simplify_relational_operation_1 even if mode is VOIDmode.
6805
6806 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
6807
6808         PR tree-optimization/26804
6809         * tree.h (DECL_CALL_CLOBBERED): New macro.
6810         (tree_decl_common): Add call_clobbered_flag.
6811         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6812         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6813         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6814         (mark_non_addressable): Ditto.
6815         * tree-ssa.c (verify_call_clobbered): New function.
6816         (verify_alias_info): Use it.
6817         * tree-pass.h (pass_reset_cc_flags): New prototype.
6818         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6819         (reset_cc_flags): New function.
6820         * passes.c (init_optimization_passes): Call reset_cc_flags after
6821         initializing referenced_vars.
6822
6823 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
6824             Roger Sayle  <roger@eyesopen.com>
6825
6826         PR middle-end/26717
6827         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
6828         to 1.0 for non-real operands. Implement A / A optimization for
6829         complex operands.
6830
6831 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
6832
6833         * config/i386/i386.c (size_cost): Correct the comment for
6834         cost of storing fp registers.
6835         (i386_cost): Likewise.
6836         (i486_cost): Likewise.
6837         (pentium_cost): Likewise.
6838         (pentiumpro_cost): Likewise.
6839         (k6_cost): Likewise.
6840         (athlon_cost): Likewise.
6841         (k8_cost): Likewise.
6842         (pentium4_cost): Likewise.
6843         (nocona_cost): Likewise.
6844         (generic64_cost): Likewise.
6845         (generic32_cost): Likewise.
6846
6847 2006-03-24  Denis Chertykov  <denisc@overta.ru>
6848
6849         * config/avr/avr-protos.h (extra_constraint): Delete.
6850         (extra_constraint_Q): New declaration.
6851         * config/avr/constraints.md: New file.
6852         * config/avr/avr.md: Include it.
6853         (REG_X, REG_Y, REG_Z, REG_W): New constants.
6854         (TMP_REGNO, ZERO_REGNO): Likewise.
6855         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
6856         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
6857         (extra_constraint): Delete.
6858         (extra_constraint_Q): Test for memory constraint 'Q'.
6859         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
6860         (REG_CLASS_FROM_LETTER): Delete.
6861         (CONST_OK_FOR_LETTER_P): Delete.
6862         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6863         (EXTRA_CONSTRAINT): Delete.
6864         (TMP_REGNO): Delete.
6865         (ZERO_REGNO): Delete.
6866
6867 2006-03-24  Jeff Law  <law@redhat.com>
6868
6869         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
6870         directly.  Call mark_new_vars_to_rename slightly earlier.
6871
6872 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
6873
6874         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
6875         (is_cxx): Likewise.
6876         (gen_compile_unit_die): Use new language types for Objective-C and
6877         Objective-C++.
6878         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
6879         DW_LANG_C_plus_plus.
6880
6881         PR 26793
6882         * config/t-darwin (crt3.o): Work around bug 26840.
6883         * config/darwin-crt3.c: Rewrite.
6884         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
6885
6886 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
6887
6888         * doc/invoke.texi: Document -femit-class-debug-always
6889         * common.opt: Add -femit-class-debug-always.
6890
6891 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6892
6893         * config/s390/s390.c (s390_decompose_address): Allow SImode for
6894         index and base register.
6895         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
6896         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
6897         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
6898         REGNO_OK_FOR_INDEX_P.
6899         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
6900         ADDR_REGNO_P.
6901         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
6902         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
6903         REG_OK_FOR_BASE_P): Definitions removed.
6904
6905 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
6906
6907         PR middle-end/26611
6908         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
6909         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
6910         set yet or weren't marked as local yet.
6911
6912 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
6913
6914         * regrename.c (scan_rtx_address): Initialize a variable to shut up
6915         the compiler.
6916
6917 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
6918
6919         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
6920         (rs6000_legitimate_small_data_p): Delete.
6921         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
6922         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
6923         and make static.  Add forward declaration.  Update uses.
6924         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
6925         of offsettable_memref_p.
6926         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
6927         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
6928
6929 2006-03-24  Jeff Law  <law@redhat.com>
6930
6931         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
6932         around bug in immediate-use iterator.
6933
6934 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
6935
6936         PR target/26607
6937         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
6938         or __LITTLE_ENDIAN__.
6939
6940 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
6941
6942         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
6943         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
6944         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
6945         * config/sh/sh.opt (mdiv=): Amend description.
6946         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
6947         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
6948         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
6949         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
6950         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
6951         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
6952         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
6953         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
6954         TARGET_DIVIDE_CALL_FP.
6955
6956 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6957
6958         * haifa-sched.c (choose_ready): Fix type of the local variable.
6959         Move local variables.  Add comment.
6960         (check_reg_live): Change signature.  Make callable from debugger.
6961         * sched-int.h (check_reg_live): Update signature.
6962         * sched-ebb.c (check_reg_live): Update parameters.
6963         * sched-rgn.c (check_reg_live): Ditto.
6964         (region_head_or_leaf_p): Check pointer before dereferencing.
6965         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
6966         before reload on optimization levels below 1.
6967
6968 2006-03-23  Richard Henderson  <rth@redhat.com>
6969
6970         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
6971         tls symbols.
6972
6973         PR target/26347
6974         * config/alpha/predicates.md (local_symbolic_operand): Reject
6975         weak symbols.
6976
6977 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
6978
6979         PR tree-opt/26795
6980         * tree-ssa-pre.c (create_value_expr_from): Don't reject
6981         expressions which have overflowed constants.
6982
6983 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
6984
6985         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
6986
6987 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
6988
6989         * cfgloopmanip.c (create_loop_notes): Removed.
6990         * final.c (final_scan_insn): Do not handle loop notes.
6991         * jump.c (squeeze_notes): Ditto.
6992         * cfglayout.c (skip_insns_after_block,
6993         duplicate_insn_chain): Ditto.
6994         * cfgcleanup.c (rest_of_handle_jump2): Do not call
6995         create_loop_notes.
6996         * cfgloop.h (create_loop_notes): Declaration removed.
6997
6998 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
6999
7000         * varasm.c (output_constant_pool): Restore fnname and fndecl
7001         arguments.
7002         (assemble_start_function): Adjust call accordingly.
7003         (assemble_end_function): Likewise.
7004
7005 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7006
7007         PR mudflap/26789
7008         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
7009
7010         PR mudflap/26790
7011         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
7012
7013 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7014
7015         PR driver/22600
7016         * system.h (ICE_EXIT_CODE): New macro.
7017         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
7018         (diagnostic_action_after_output): Likewise.
7019         * gcc.c (fatal_ice): New function.
7020         (execute): Use it instead of fatal.
7021         (fancy_abort): Likewise.
7022         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
7023
7024 2006-03-22  Jeff Law  <law@redhat.com>
7025
7026         * loop-unroll.c (analyze_iv_to_split_insn): Handle
7027         iv_analyze_result returning false.
7028
7029 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
7030
7031         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
7032
7033 2006-03-22  Richard Henderson  <rth@redhat.com>
7034
7035         PR middle-end/26084
7036         * except.c (duplicate_eh_regions_0): New.
7037         (duplicate_eh_region_1): Duplicate the children of the node as
7038         well as the node itself.  Link them up properly.
7039         (duplicate_eh_region_2): Merge into ...
7040         (duplicate_eh_regions): ... here.  Take copy_region argument, and
7041         copy only a sub-tree if asked.  Simplify copying and fixup.
7042         (eh_region_outer_p): New.
7043         * except.h (duplicate_eh_regions): Update decl.
7044         (eh_region_outer_p): Declare.
7045         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
7046         (lower_omp_master): Likewise.
7047         (lower_omp_ordered): Likewise.
7048         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
7049         (move_stmt_r): Use it to remap labels.  Handle recursion vs
7050         remap_decls_p properly.
7051         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
7052         (find_outermost_region_in_block): New.
7053         (new_label_mapper): New.
7054         (move_sese_region_to_fn): Copy eh information to the new function
7055         properly.
7056         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
7057         argument.
7058         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
7059         number.
7060
7061 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
7062
7063         * doc/md.texi (-mshared): Mention that -mshared code can be linked
7064         into shared libraries.
7065
7066 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
7067
7068         * doc/md.texi: Refer to i386/constraints.md instead of
7069         i386/predicates.md.
7070         * config/i386/constraints.md: New file, extracted from...
7071         * config/i386/predicates.md: ...here.
7072         * config/i386/i386.md: Include constraints.md.
7073
7074 2006-03-21  Jason Merrill  <jason@redhat.com>
7075
7076         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
7077
7078         PR middle-end/20297
7079         * expr.c (init_block_move_fn): Force default visibility.
7080         (init_block_clear_fn): Likewise.
7081         * builtins.c (expand_builtin_fork_or_exec): Likewise.
7082         * targhooks.c (default_external_stack_protect_fail): Likewise.
7083
7084 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
7085
7086         * config/mips/predicates.md (const_call_insn_operand): Allow direct
7087         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
7088         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
7089         Use TARGET_OLDABI instead of !TARGET_NEWABI.
7090         (loadgp): Use mips_current_loadgp_style.
7091         (loadgp_noshared): New pattern.
7092         (sibcall_internal): Use MIPS_CALL.
7093         (sibcall_value_internal): Likewise.
7094         (sibcall_value_multiple_internal): Likewise.
7095         (call_internal): Likewise.
7096         (call_value_internal): Likewise.
7097         (call_value_multiple_internal): Likewise.
7098         (call_split): Use MIPS_CALL and add an 'S' constraint.
7099         (call_value_split): Likewise.
7100         (call_value_multiple_split): Likewise.
7101         * config/mips/mips.opt (-mabicalls): Tweak docstring.
7102         (-mshared): New option.
7103         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
7104         (mips_current_loadgp_style): Declare.
7105         * config/mips/mips.c (mips_classify_symbol): Avoid using
7106         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
7107         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
7108         TARGET_ABSOLUTE_ABICALLS.
7109         (override_options): Adjust comments.  Improve the warning that is
7110         issued when -mabicalls and -G are used together.
7111         (mips_file_start): Remove comment.
7112         (mips_current_loadgp_style): New function.
7113         (mips_gnu_local_gp): New variable.
7114         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
7115         LOADGP_ABSOLUTE.
7116         (mips_output_function_prologue): Use mips_current_laodgp_style.
7117         (mips_expand_prologue): Call mips_emit_loadgp before emitting
7118         the cprestore instruction.
7119         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
7120         live for TARGET_ABSOLUTE_ABICALLS.
7121         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
7122         (ASM_SPEC): Pass down -mshared and -mno-shared.
7123         (MIPS_CALL): New macro.
7124         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
7125         definition.
7126         * doc/invoke.texi (-mabicalls): Update documentation.
7127         (-mshared): Document.
7128
7129 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
7130
7131         * config/ia64/unwind-hpux.c: New file.
7132         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
7133
7134 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
7135
7136         PR libgomp/26384
7137         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
7138
7139 2006-03-21  Jeff Law  <law@redhat.com>
7140
7141         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
7142         type conversions of a VR_VARYING source to a wider type.
7143
7144 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7145
7146         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
7147         tm_file on Solaris 10 and later.
7148         (sparc64-*-solaris2*): Likewise.
7149         (sparc-*-solaris2*): Likewise.
7150         * config/sol26.h: Rename to config/sol2-6.h.
7151         * config/sol2-10.h: New file.
7152
7153 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
7154
7155         PR tree-opt/26781
7156         * tree-ssa-pre.c (create_component_ref_by_pieces):
7157         Handle STRING_CST.
7158
7159 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
7160
7161         PR c++/26690
7162         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
7163         return it immediately.
7164
7165 2006-03-21  Michael Matz  <matz@suse.de>
7166
7167         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
7168         New members.
7169         (remove_arc, add_arc): Update num_out_arcs member.
7170         (set_out_arc_insns_equiv_num): Returns nothing instead of number
7171         of out arcs.
7172         (cache_presence): New function.
7173         (compare_states_for_equiv): New function.
7174         (state_is_differed): Don't take number of outargs, adjust callers.
7175         Use new invariant for speeding up.
7176         (init_equiv_class): Create initial classes based on sorted
7177         input.
7178         (partition_equiv_class): Don't track out_arcs_num.
7179         (evaluate_equiv_classes): Call cache_presence on all states and
7180         sort them.
7181
7182 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
7183
7184         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
7185         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
7186         (bfin_valid_reg_p): Test for pseudos explicitly and use only
7187         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
7188         callers changed.
7189         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
7190         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
7191         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
7192         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7193         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
7194         macros.
7195         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
7196         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
7197         (REGNO_REG_CLASS): ARGP is in PREGS.
7198         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
7199         IREGS.
7200         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
7201         to deal with those addresses.
7202         * addresses.h: New file.
7203         * caller-save.c: Include "addresses.h".
7204         (init_caller_save): Use new base_reg_class function.
7205         * rtl-factoring.c: Include "addresses.h".
7206         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
7207         * recog.c: Include "addresses.h".
7208         (preprocess_constraints): Use new base_reg_class function.
7209         * regrename.c: Include "addresses.h".
7210         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
7211         functions.  Keep track of a new var INDEX_CODE to compute valid
7212         classes.
7213         (replace_oldest_value_addr): Likewise.
7214         (replace_oldest_value_mem): Use base_reg_class.
7215         * reload.c: Include "addresses.h".
7216         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
7217         (find_reloads): Use new base_reg_class function.
7218         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
7219         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
7220         all callers and prototype changed.
7221         * reload1.c: Include "addresses.h".
7222         (maybe_fix_stack_asms): Use base_reg_class.
7223         * regclass.c: Include "addresses.h".
7224         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
7225         (init_reg_autoinc): Use new base_reg_class function.
7226         (record_reg_classes): Likewise.
7227         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
7228         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
7229         Use new args to compute necessary class.
7230
7231         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
7232         regrename.o, rtl-factoring.o): Update dependencies.
7233         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
7234         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
7235         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
7236         REG_OK_FOR_INDEX_P): Delete documentation.
7237
7238 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
7239
7240         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
7241         from V7 to V9 for Solaris 7 and above.
7242
7243 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
7244
7245         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
7246         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
7247         argument pointers may not alias any other storage.
7248         * common.opt: Define option -fargument-noalias-anything.
7249         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
7250         alias semantics is specified by flag_argument_noalias > 2.
7251
7252 2006-03-20  Jeff Law  <law@redhat.com>
7253
7254         * tree-pass.h (pass_phi_only_copy_prop): Delete.
7255         (pass_phi_only_cprop): Declare.
7256         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
7257         with phi_only_cprop
7258         * tree-ssa-dom.c (degenerate_phi_result): New function.
7259         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
7260         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
7261         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
7262         (eliminate_degenerate_phis): Likewise.
7263         (pass_phi_only_cprop): New pass descriptor.
7264         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
7265         support code.  Callers updated.
7266         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
7267         (store_copy_prop): Likewise.
7268         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
7269
7270 2006-03-20  Jason Merrill  <jason@redhat.com>
7271
7272         PR c++/21764
7273         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
7274         (push_visibility, pop_visibility): Likewise.
7275         * c-pragma.h: Declare them.
7276
7277 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7278
7279         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
7280
7281         * config/sh/sh.c (find_regmode_weight): Change the type of the first
7282         parameter and use get_ebb_head_tail.
7283         (sh_md_init_global): Adjust uses of find_regmode_weight.
7284
7285 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
7286
7287         * function.h (struct function) <x_tail_recursion_reentry>:
7288         Rename to x_stack_check_probe_note.
7289         (tail_recursion_reentry): Rename to stack_check_probe_note.
7290         * function.c: Replace tail_recursion_reentry with
7291         stack_check_probe_note everywhere.
7292         (expand_function_start): Only emit a note for
7293         stack_check_probe_note with -fstack-protect.
7294         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
7295
7296         * emit-rtl.c (remove_unnecessary_notes): Remove.
7297         (pass_remove_unnecessary_notes): Remove.
7298         * rtl.h (remove_unnecessary_notes): Remove prototype.
7299         * final.c (final_start_function): Don't call remove_unnecessary_notes.
7300         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
7301         * passes.c (pass_remove_unnecessary_notes): Don't run it.
7302
7303 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
7304
7305         PR tree-opt/26629
7306         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
7307         (valid_in_set): Handle ARRAY_REF.
7308         Change "if min_variant or VH" to asserts.
7309         (create_component_ref_by_pieces): Handle ARRAY_REF.
7310         (create_expression_by_pieces): Likewise.
7311         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
7312
7313 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
7314
7315         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
7316         is operand of switch, not str[0].
7317
7318 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
7319
7320         * config/rs6000/rs6000.c (rs6000_handle_option): Use
7321         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
7322
7323 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
7324
7325         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
7326         end of insn_extra_address_constraint declaration.
7327
7328 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
7329
7330         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
7331         (no-sum-in-toc): Same.
7332         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
7333         variables.
7334         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
7335         NO_FP_IN_TOC for -fPIC instead of mask.
7336
7337         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
7338         (BOOT_LDFLAGS): Delete.
7339         (LDFLAGS): Delete.
7340         * config/rs6000/t-aix52: Same.
7341
7342         * config/rs6000/rs6000.md (store_multiple_power): Delete.
7343         (stmsi[345678]_power): New.
7344
7345 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
7346
7347         * config/ia64/ia64.opt: Add empty line to end of file.
7348
7349 2006-03-17  Richard Guenther  <rguenther@suse.de>
7350
7351         PR middle-end/26721
7352         * builtins.c (get_pointer_alignment): For component style references
7353         adjust alignment to the component type alignment.  Make sure
7354         to adjust alignment for component access of constants.
7355
7356 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
7357
7358         * config/rs6000/rs6000.md (strlensi): Emit barrier after
7359         unconditional jump.
7360
7361 2006-03-17  Paul Brook  <paul@codesourcery.com>
7362
7363         * doc/install.texi: Docuemnt --with-mode.
7364         * config.gcc: Add --with-mode for arm*-*-*.
7365         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
7366
7367 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
7368
7369         * sh.c (max_labelno_before_reorg): New variable.
7370         (sh_reorg): Initialize it.
7371         (find_barrier): Check max_labelno_before_reorg before using
7372         label_to_alignment.  Take length of explicit alignment insns
7373         into account.  When seeing a UNSPECV_CONST_END, return it.
7374
7375         * sh.c (fixup_mova): Set mode of affected label to QImode.
7376         (untangle_mova): New function.
7377         (find_barrier): Use it.  Check mode of label before decrementing
7378         num_mova.
7379         (sh_reorg): Likewise.
7380         Set mode of all insns back to VOIDmode.
7381
7382         * sh.c (MOVA_LABELREF): New macro.
7383         (mova_p, fixup_mova, sh_reorg): Use it.
7384         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
7385         ADDR_DIFF_VEC matches mova.
7386
7387 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
7388
7389         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7390         with ATTRIBUTE_UNUSED.
7391
7392 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
7393
7394         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7395         pointer, instead of assuming it is possible to derive the
7396         correct args size from a call insn.
7397
7398 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7399
7400         * rtl.h (CONST_INT_P): Define.
7401         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7402         instead of GET_CODE(x) == CONST_INT.
7403         (vax_rtx_costs): Likewise.
7404         (vax_output_int_move): Likewise.
7405         (vax_output_int_add): Likewise.
7406         (legitimate_constant_address_p): Likewise.
7407         (index_term_p): Likewise.
7408         * config/vax/vax.h (PRINT_OPERAND): Likewise.
7409         * config/vax/vax.md (and<mode>3): Likewise.
7410         (ashrsi3): Likewise.
7411         (extv): Likewise.
7412         (movstricthi): Likewise.
7413         (movstrictqi): Likewise.
7414         (rotrsi3): Likewise.
7415         (five unnamed insns): Likewise.
7416
7417 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
7418
7419         * doc/tm.texi (SDB and DWARF): Add extra parameter to
7420         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
7421         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
7422         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
7423         Pass to ASM_OUTPUT_DWARF_OFFSET.
7424         * dwarf2out.c (debug_frame_section): New.
7425         (output_call_frame_info): Use debug_frame_section.  Pass it to
7426         dw2_asm_output_offset.
7427         (output_die): Pass appropriate section to dw2_asm_output_offset.
7428         (output_compilation_unit_header): Likewise.
7429         (output_pubnames): Likewise.
7430         (output_aranges): Likewise.
7431         (enum dw_val_class): Break dw_val_class_lbl_offset into
7432         dw_val_class_lineptr and dw_val_class_macptr.
7433         (add_AT_lbl_offset): Delete.
7434         (add_AT_lineptr): New.
7435         (add_AT_macptr): New.
7436         (AT_lbl): Expect a lineptr or macptr.
7437         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
7438         (attr_checksum): Likewise.
7439         (same_dw_val_p): Likewise.
7440         (size_of_die): Likewise.
7441         (value_format): Likewise.
7442         (output_die): Likewise.
7443         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
7444         add_AT_lbl_offset.
7445         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7446         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
7447         * config/darwin-protos.h (darwin_file_start): New.
7448         (darwin_asm_output_dwarf_offset): New.
7449         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7450         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
7451         darwin_file_start.
7452         * config/darwin.c (darwin_emit_unwind_label): Don't output label
7453         if not EH section; simplify.
7454         (darwin_file_start): New.
7455         (darwin_asm_output_dwarf_offset): New.
7456         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
7457         mark as 'debug'.
7458         (DEBUG_INFO_SECTION): Likewise.
7459         (DEBUG_ABBREV_SECTION): Likewise.
7460         (DEBUG_ARANGES_SECTION): Likewise.
7461         (DEBUG_MACINFO_SECTION): Likewise.
7462         (DEBUG_LINE_SECTION): Likewise.
7463         (DEBUG_LOC_SECTION): Likewise.
7464         (DEBUG_PUBNAMES_SECTION): Likewise.
7465         (DEBUG_STR_SECTION): Likewise.
7466         (DEBUG_RANGES_SECTION): Likewise.
7467         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
7468         (ASM_OUTPUT_DWARF_OFFSET): New.
7469
7470 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
7471
7472         * config.gcc (tm_defines): Always add to previous value rather
7473         than replacing it.
7474
7475 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7476
7477         * config/mips/predicates.md (splittable_const_int_operand): New,
7478         split from move_operand.
7479         (splittable_symbolic_operand): New.
7480         (move_operand): Add commentary.  Use splittable_const_int_operand.
7481         Inline mips_atomic_symbolic_constant_p.
7482         * config/mips/mips.md: Add combine splitters for handling moves
7483         of splittable_const_int_operands and splittable_symbolic_operands.
7484         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
7485         (mips_split_symbol): Declare.
7486         (mips_move_integer): Declare.
7487         * config/mips/mips.c (mips_split_p): Make global.
7488         (TARGET_MIN_ANCHOR_OFFSET): Override default.
7489         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
7490         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
7491         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7492         (mips_offset_within_object_p): Handle block symbols.
7493         (mips_atomic_symbolic_constant_p): Delete.
7494         (mips_cannot_force_const_mem): Return false for constants that
7495         mips_legitimize_move can handle.
7496         (mips_use_blocks_for_constant_p): New function.
7497         (mips_split_symbol): Make global.
7498         (mips_move_integer): Likewise.  Add a temporary register argument.
7499         (mips_legitimize_const_move): Use splittable_const_int_operand and
7500         splittable_symbolic_operand.
7501         (mips_use_anchors_for_symbol_p): New function.
7502         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7503         (mips_split_p): Declare.
7504
7505 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7506
7507         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7508         (mips*-*-linux*): Likewise.
7509
7510 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7511             Daniel Speyer  <dspeyer@wam.umd.edu>
7512
7513         PR middle-end/18259
7514         * tree-dump.c (dump_real): New function.
7515         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7516         * Makefile.in (REAL_H): New macro for dependencies on real.h.
7517         (tree-dump.o): Add $(REAL_H) to the dependencies.
7518
7519 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7520
7521         PR middle-end/21781
7522         * real.c (real_from_string): If the mantissa is zero, don't bother
7523         parsing the exponent as the result should always be zero.
7524
7525 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
7526
7527         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7528
7529 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7530
7531         * config/ia64/ia64.c (stops_p): Added explicit initialization.
7532         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7533         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7534         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7535         ia64_sched_finish_global): New static functions to implement
7536         hooks from gcc_target.sched.
7537         (spec_check_no, max_uid, pending_data_specs): New static variables.
7538         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7539         ia64_spec_check_src_p): New static functions.
7540         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7541         (TARGET_SCHED_ADJUST_COST): Removed.
7542         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7543         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7544         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7545         TARGET_SCHED_GEN_CHECK,
7546         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7547         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7548         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7549         Fixed to handle speculation checks.
7550         (rtx_needs_barrier): Fixed to handle speculative loads and
7551         their checks.
7552         (ia64_variable_issue): Added code to count speculative loads and their
7553         checks.
7554         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7555         speculative loads.
7556         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7557         New enumerations.
7558         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7559         New constants.
7560         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7561         (ia64_reorg): Reset stops_p to NULL after it is freed.
7562         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7563         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7564         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
7565         chk_a.
7566         (data_speculative, control_speculative, check_load): New attributes.
7567         (mov<mode>_advanced, mov<mode>_speculative,
7568         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7569         zero_extend<mode>di2_speculative,
7570         zero_extend<mode>di2_speculative_advanced): New patterns for
7571         data and control speculative loads.
7572         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7573         check loads.
7574         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7575         New pattern for data and control speculation checks.
7576         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7577         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7578         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7579         Auxiliary definitions for the patterns.
7580         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7581         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7582         constraints.
7583         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7584         for speculation.
7585         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7586         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7587         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7588         New resource constraints.
7589         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7590         for speculation.
7591         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7592         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7593         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7594         msched-in-control-spec, msched-ldc, msched-control-ldc,
7595         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7596         msched-prefer-non-control-spec-insns,
7597         msched-count-spec-in-critical-path): New flags to tune speculative
7598         scheduling.
7599         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7600         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7601         msched-in-control-spec, msched-ldc, msched-control-ldc,
7602         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7603         msched-prefer-non-control-spec-insns,
7604         msched-count-spec-in-critical-path): Document new flags.
7605
7606 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7607
7608         * target.h (struct spec_info_def): New opaque declaration.
7609         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7610         speculate_insn, needs_block_p, gen_check,
7611         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7612         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7613         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7614         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7615         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7616         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7617         gcc_target.sched.
7618         (TARGET_SCHED): Use new macros.
7619         * rtl.h (copy_DEPS_LIST_list): New prototype.
7620         * sched-int.h (struct sched_info): Change signature of new_ready field,
7621         adjust all initializations. New fields: add_remove_insn,
7622         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7623         region_head_or_leaf_p.
7624         (struct spec_info_def): New structure declaration.
7625         (spec_info_t): New typedef.
7626         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7627         recovery_block, orig_pat.
7628         (glat_start, glat_end): New variables declaraions.
7629         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7630         New access macros.
7631         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7632         DETACH_LIFE_INFO, USE_GLAT.
7633         (enum SPEC_SCHED_FLAGS): New enumeration.
7634         (NOTE_NOTE_BB_P): New macro.
7635         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7636         attach_life_info, debug_spec_status, check_reg_live): New functions.
7637         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7638         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7639         sched-ebb.c
7640         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7641         * ddg.c (get_block_head_tail): Adjust all uses.
7642         * modulo-sched.c (get_block_head_tail): Adjust all uses.
7643         (sms_sched_info): Initialize new fields.
7644         (contributes_to_priority): Removed.
7645         * haifa-sched.c (params.h): New include.
7646         (get_block_head_tail): Adjust all uses.
7647         (ISSUE_POINTS): New macro.
7648         (glat_start, glat_end): New global variables.
7649         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7650         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7651         old_last_basic_block, before_recovery, current_sched_info_var,
7652         rgn_n_insns, luid): New static variables.
7653         (insn_cost1): New function.  Move logic from insn_cost to here.
7654         (find_insn_reg_weight1): New function.  Move logic from
7655         find_insn_reg_weight to here.
7656         (reemit_notes, move_insn, max_issue): Change signature.
7657         (move_insn1): Removed.
7658         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7659         extend_bb): New static functions to support extension of scheduler's
7660         data structures.
7661         (generate_recovery_code, process_insn_depend_be_in_spec,
7662         begin_speculative_block, add_to_speculative_block,
7663         init_before_recovery, create_recovery_block, create_check_block_twin,
7664         fix_recovery_deps): New static functions to support
7665         generation of recovery code.
7666         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7667         restore_bb_notes, move_block_after_check, move_succs): New static
7668         functions to support ebb scheduling.
7669         (init_glat, init_glat1, attach_life_info1, free_glat): New static
7670         functions to support handling of register live information.
7671         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7672         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7673         add_jump_dependencies): New static functions.
7674         (check_cfg, has_edge_p, check_sched_flags): New static functions for
7675         consistancy checking.
7676         (debug_spec_status): New function to call from debugger.
7677         (priority): Added code to handle speculation checks.
7678         (rank_for_schedule): Added code to distinguish speculative instructions.
7679         (schedule_insn): Added code to handle speculation checks.
7680         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7681         Fixed to handle ebbs.
7682         (move_insn): Added code to handle ebb scheduling.
7683         (max_issue): Added code to use ISSUE_POINTS of instructions.
7684         (choose_ready): Added code to choose between speculative and
7685         non-speculative instructions.
7686         (schedule_block): Added code to handle ebb scheduling and scheduling of
7687         speculative instructions.
7688         (sched_init): Initialize new variables.
7689         (sched_finish): Free new variables.  Print statistics.
7690         (try_ready): Added code to handle speculative instructions.
7691         * lists.c (copy_DEPS_LIST_list): New function.
7692         * sched-deps.c (extend_dependency_caches): New function.  Move logic
7693         from create_dependency_caches to here.
7694         (get_dep_weak, ds_merge): Make global.
7695         * genattr.c (main): Code to output prototype for
7696         dfa_clear_single_insn_cache.
7697         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7698         (output_dfa_clean_insn_cache_func): Code to output
7699         dfa_clear_single_insn_cache function.
7700         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
7701         n_insns.
7702         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7703         Removed.
7704         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7705         New static variables.
7706         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7707         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7708         struct sched_info.
7709         (ebb_sched_info): Initialize new fields.
7710         (get_block_head_tail): Adjust all uses.
7711         (compute_jump_reg_dependencies): Fixed to use glat_start.
7712         (schedule_ebb): Code to remove unreachable last block.
7713         (schedule_ebbs): Added code to update register live information.
7714         * sched-rgn.c (region_sched_info): Initialize new fields.
7715         (get_block_head_tail): Adjust all uses.
7716         (last_was_jump): Removed.  Adjust users.
7717         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7718         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7719         Implement new hooks.
7720         (check_dead_notes1): New static function.
7721         (struct region): New fields: dont_calc_deps, has_real_ebb.
7722         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7723         (BB_TO_BLOCK): Fixed to handle EBBs.
7724         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7725         (ebb_head): New static variable.
7726         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7727         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7728         new fields.
7729         (compute_dom_prob_ps): New assertion.
7730         (check_live_1, update_live_1): Fixed to work with glat_start instead of
7731         global_live_at_start.
7732         (init_ready_list): New assertions.
7733         (can_schedule_ready_p): Split update code to begin_schedule_ready.
7734         (new_ready): Add support for BEGIN_CONTROL speculation.
7735         (schedule_insns): Fixed code that updates register live information
7736         to handle EBBs.
7737         (schedule_region): Fixed to handle EBBs.
7738         (init_regions): Use extend_regions and check_dead_notes1.
7739         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7740         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7741         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7742         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7743         TARGET_SCHED_GEN_CHECK,
7744         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7745         TARGET_SCHED_SET_SCHED_FLAGS): Document.
7746         * doc/invoke.texi (max-sched-insn-conflict-delay,
7747         sched-spec-prob-cutoff): Document.
7748
7749 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7750
7751         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7752         inter_tick, queue_index.
7753         (struct sched_info): Change signature of init_ready_list field.
7754         Adjust all initializations.
7755         (RESOLVED_DEPS): New access macro.
7756         (ready_add): Remove prototype.
7757         (try_ready): Add prototype.
7758         * sched-rgn.c (init_ready_list): Use try_ready.
7759         (schedule_region): Initialize
7760         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7761         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
7762         (init_ready_list): Use try_ready.
7763         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7764         * lists.c (remove_list_elem): Remove `static'.
7765         (remove_free_INSN_LIST_elem): New function.
7766         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7767         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7768         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7769         New constants.
7770         (readyp): New variable.
7771         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7772         change_queue_index, resolve_dep): New static functions.
7773         (try_ready): New function.  Adjust callers in sched-rgn.c and
7774         sched-ebb.c to use it instead of ready_add.
7775         (clock_var): Move at the begining of file.
7776         (rank_for_schedule): Fix typo.
7777         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
7778         (ready_lastpos): Enforce assertion.
7779         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
7780         update all callers.
7781         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7782         (schedule_insn): Rewrite to use try_ready and resolve_dep.
7783         (queue_to_ready): Use free_INSN_LIST_list.
7784         (early_queue_to_ready): Fix typo.
7785         (schedule_block): Init readyp.  Move init_ready_list call after the
7786         initialization of clock_var.  Fix error in rejecting insn by
7787         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
7788         that previously corrected INSN_TICKs.  Add code for handling
7789         QUEUE_INDEX.
7790         (set_priorities): Fix typo.
7791         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7792         Clarify comment and code that keeps current_sched_info->next_tail
7793         non-null.
7794
7795 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7796
7797         * sched-rgn.c (extend_rgns): New static function.
7798         (find_rgns): Use it.
7799         (gather_region_statistics, print_region_statistics): New static
7800         functions.
7801         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7802         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7803
7804 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7805             Andrey Belevantsev <abel@ispras.ru>
7806
7807         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7808         * lists.c (unused_deps_list): New variable.
7809         (free_list): Add assertions to verify the proper distinguishing
7810         between INSN_LISTs and DEPS_LISTs.
7811         (find_list_elem, remove_list_elem, remove_list_node): New static
7812         functions.
7813         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7814         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7815         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7816         (alloc_INSN_LIST): Assert that the list we're working on is indeed
7817         an INSN_LIST.
7818         (free_INSN_LIST_node): Likewise.
7819         * modulo-sched.c (current_sched_info): Initialize flags field.
7820         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7821         * rtl.def (DEPS_LIST): Define.
7822         * rtl.h: Declare new functions from lists.c.
7823         * sched-deps.c (spec_dependency_cache): New static variable.
7824         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
7825         (add_dependence): Change return type to void.  Move the logic to ...
7826         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
7827         (delete_all_dependences): Add comment about forward_dependency_cache.
7828         Handle spec_dependency_cache.  Handle DEPS_LISTs.
7829         (fixup_sched_groups): Clarify the change of priority of output
7830         and anti dependencies.
7831         (sched_analyze_2): Adjust add_dependence calls to create data
7832         speculative dependence.
7833         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
7834         Adjust all callers.  Handle DEPS_LISTS.
7835         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
7836         presence of speculation.
7837         (init_dependency_caches, free_dependency_caches):
7838         Handle spec_dependency_cache.
7839         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
7840         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
7841         New static functions.
7842         (add_or_update_back_dep, add_or_update_back_forw_dep,
7843         add_back_forw_dep, delete_back_forw_dep): New functions.
7844         * sched-int.h (ds_t, dw_t): New typedefs.
7845         (struct sched_info): Add new field flags.
7846         (struct haifa_insn_data): Add new bitfield has_internal_dep.
7847         Prototype new sched-deps.c functions.
7848         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
7849         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
7850         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
7851         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
7852         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
7853         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
7854         New constants.
7855         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
7856         New enums.
7857         * sched-rgn.c (current_sched_info): Initialize flags field.
7858         (schedule_insns): Initialize current_sched_info before the sched_init
7859         call.
7860         * sched-ebb.c (current_sched_info): Initialize flags field.
7861         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
7862         Call add_or_update_back_dep instead of add_dependence.
7863         Create control speculative dependencies.
7864         (schedule_insns): Initialize current_sched_info before the sched_init
7865         call.
7866
7867 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7868
7869         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
7870         fs->signal_frame.
7871         (sh_fallback_frame_state): Likewise.
7872
7873 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
7874
7875         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
7876         Do switch on default_use_cxa_atexit.
7877         (powerpc*-*-darwin*): Build crt2.o on powerpc.
7878         * config/darwin-crt3.o: New.
7879         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
7880         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
7881         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
7882         OS version.
7883         * config/rs6000/t-darwin: Move crt2.o building to here.
7884         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
7885         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
7886         of __cxa_atexit.
7887
7888 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7889
7890         * config/vax/vax.c (nonindexed_address_p): Change logical negation
7891         from '! xxx' to '!xxx' for coding-style conformance.
7892         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
7893         (EXTRA_CONSTRAINT): Likewise.
7894         * config/vax/vax.md (four unnamed insns): Likewise.
7895
7896 2006-03-15  Paul Brook  <paul@codesourcery.com>
7897
7898         * config/arm/arm.c (minipool_pad): New.
7899         (add_minipool_forward_ref): Include pool alignment padding in address
7900         calculation.
7901         (push_minipool_fix): Set minipool_pad.
7902         (minipool_pad): Ditto.
7903
7904 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7905
7906         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
7907         instead of GET_CODE() == MEM and REG_P() instead of
7908         GET_CODE() == REG.
7909         (print_operand_address): Likewise.
7910         (vax_address_cost): Likewise.
7911         (vax_rtx_costs): Likewise.
7912         (vax_notice_update_cc): Likewise.
7913         (vax_output_int_add): Likewise.
7914         (INDEX_REGISTER_P): Likewise.
7915         (BASE_REGISTER_P): Likewise.
7916         (nonindexed_address_p): Likewise.
7917         (vax_mode_dependent_address_p): Likewise.
7918         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
7919         (PRINT_OPERAND): Likewise.
7920         * config/vax/vax.md (ashlsi3): Likewise.
7921         (ashlsi3): Likewise.
7922         (some more unnamed insns): Likewise.
7923
7924 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
7925
7926         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
7927         iterator-style macro.
7928         (mark_control_dependent_edges_necessary): Update the use of
7929         EXECUTE_IF_CONTROL_DEPENDENT.
7930
7931 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
7932
7933         * config/sh/predicates.md (cache_address_operand): Special.
7934         (ua_address_operand): Likewise.
7935
7936 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
7937
7938         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
7939         loop notes.
7940         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
7941
7942 2006-03-15  Andreas Schwab  <schwab@suse.de>
7943
7944         * gensupport.c (identify_predicable_attribute): Don't free p_false
7945         when it is still in use.
7946
7947 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
7948
7949         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
7950         the default setting here.
7951
7952 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
7953
7954         * tree-pass.h (pass_cfg): Remove.
7955         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
7956         * passes.c (pass_cfg): Don't run it.
7957
7958 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
7959
7960         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
7961         * reg-stack.c (stack_regs_mentioned_data): Change the type to
7962         VEC(char,heap) *.
7963         (stack_regs_mentioned): Update the uses of
7964         stack_regs_mentioned_data.  Don't access the array beyond its
7965         end.
7966         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
7967         Don't include gt-reg-stack.h.
7968
7969         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
7970         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
7971
7972         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
7973
7974         PR middle-end/26684
7975         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
7976         STACK_REGS.
7977
7978 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7979
7980         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
7981
7982 2006-03-14  Richard Guenther  <rguenther@suse.de>
7983
7984         PR tree-optimization/26672
7985         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
7986         SSA form.
7987
7988 2006-03-14  Richard Guenther  <rguenther@suse.de>
7989
7990         PR tree-optimization/26667
7991         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
7992         node for the callees.  Always allow inlining if it will shrink
7993         the function size.
7994
7995 2006-03-14  Richard Guenther  <rguenther@suse.de>
7996
7997         PR middle-end/26659
7998         * builtins.c (get_pointer_alignment): Prefer alignment
7999         information from decls over that from types.
8000
8001 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
8002
8003         PR target/26657
8004         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
8005
8006 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
8007
8008         * config/rs6000/rs6000.opt (mdlmzb): New option.
8009         (msched-prolog, msched-epilog): Use Var not Mask.
8010         * doc/invoke.texi (-mdlmzb): Document.
8011         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
8012         MASK_SCHED_PROLOG.
8013         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
8014         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
8015
8016 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
8017
8018         PR rtl-optimization/25739
8019         * bt-load.c (augment_live_range): Free tos pointer.
8020
8021         * gensupport.c (identify_predicable_attribute): Free
8022         p_false pointer.
8023         * gcov.c (create_file_names): Free name pointer.
8024
8025 2006-03-13  Roger Sayle  <roger@eyesopen.com>
8026
8027         PR middle-end/26557
8028         * stmt.c (emit_case_nodes): Handle the case where the index is a
8029         CONST_INT, where the comparison mode is specified by the index type.
8030
8031 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8032
8033         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
8034         is defined.
8035
8036 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
8037
8038         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
8039         (*branch_fp_inverted): Likewise.
8040
8041 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
8042
8043         PR middle-end/25989
8044         * omp-low.c (expand_omp_for_generic): Mark istart0
8045         and iend0 as addressable.
8046
8047 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
8048
8049         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
8050
8051 2006-03-13  Jeff Law  <law@redhat.com>
8052
8053         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
8054         virtual operands are interesting.
8055         (vrp_visit_stmt): Corresponding changes.
8056
8057 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8058
8059         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
8060         of RETS.
8061         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
8062         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
8063         * config/bfin/crti.S: Use it instead of __PIC__.
8064         * config/bfin/crtn.S: Likewise.
8065
8066         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
8067         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
8068         not if flag_pic.
8069         Lose 'G' modifier for call operand.
8070         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
8071         recognize 'G' modifier.
8072
8073 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
8074
8075         PR middle-end/18859
8076         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
8077         * stmt.c (expand_case): Likewise.
8078
8079 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8080
8081         PR rtl-optimization/26254
8082         * loop-invariant.c (seq_insns_valid_p): New function.
8083         (move_invariant_reg): Only emit new code if it is valid.
8084
8085 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8086
8087         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
8088         Removed.
8089         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
8090         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
8091         (commit_one_edge_insertion): Do not look for loop notes.
8092
8093 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8094
8095         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
8096         flag_test_coverage out of loop.
8097
8098 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8099
8100         * final.c (shorten_branches): Remove outdated comment, and turn
8101         the if branch that guards it to continue.
8102
8103 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8104
8105         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
8106         * cfgloop.h (struct loop): Remove unused fields.
8107
8108 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
8109
8110         * doc/invoke.texi (-fdump-rtl-loop): Remove.
8111         (-dL, -fdump-rtl-loop2): Update the dump file names
8112
8113         * doc/invoke.texi: Update dump file names.
8114
8115 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
8116
8117         * predict.c (estimate_probability): Remove.
8118         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
8119         * basic-block.h (estimate_probability): Remove prototype.
8120         * passes.c (finish_optimization_passes): Dump branch prediction or
8121         profiling heuristics to the .profile tree dump.
8122         (init_optimization_passes): Unqueue pass_branch_prob.
8123
8124         * doc/invoke.texi (-fdump-rtl-bp): Remove.
8125
8126 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8127
8128         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
8129         * rtl.h (LABEL_NEXTREF): Remove field accessor.
8130
8131 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
8132
8133         * function.h (frame_offset_overflow): Declare.
8134         * function.c (frame_offset_overflow): New function.
8135         (assign_stack_local_1): Call it to detect that the offset overflows.
8136         * cfgexpand.c (alloc_stack_frame_space): Likewise.
8137
8138 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8139
8140         * config/sh/sh.c: Include alloc-pool.h.
8141         (label_ref_list_pool): New alloc pool.
8142         (label_ref_list_t): New type for lists of labels.
8143         (struct pool_node): Make wend a label_ref_list_t.
8144         (add_constant): Use the new type, eradicate LABEL_NEXTREF
8145         references.
8146         (dump_table): Likewise.
8147         (sh_reorg): Set up the alloc pool before using add_constant and
8148         dump_table, and destroy it when finishing.
8149
8150 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
8151
8152         * config/mips/mips.c: Remove redundant comment.
8153
8154 2006-03-10  Jason Merrill  <jason@redhat.com>
8155
8156         PR c/26004
8157         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
8158         the target was declared 'register'.
8159
8160 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
8161
8162         * genpreds.c (write_insn_constraint_len): Change definition of
8163         insn_constraint_len to return size_t to match the declaration.
8164
8165 2006-03-10  DJ Delorie  <dj@redhat.com>
8166
8167         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
8168         start at zero.
8169         (m32c_expand_insv): Fix test for an AND mask.
8170
8171 2006-03-10  Richard Guenther  <rguenther@suse.de>
8172
8173         PR middle-end/26565
8174         * builtins.c (get_pointer_alignment): Handle component
8175         references for field alignment.
8176
8177 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
8178
8179         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
8180         when building with libgloss.
8181         (sh*elf): Implement --without-fp option.
8182         (sh64-superh-linux*): Don't multilib.
8183
8184 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
8185
8186         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
8187
8188 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
8189
8190         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
8191         Set it when one of the replacement functions returned true.
8192         Return TODO_cleanup_cfg if cfgchanged is true.
8193         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
8194
8195 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
8196
8197         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
8198         instead of gen_lowpart.
8199
8200 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
8201
8202         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
8203         interface.
8204         (mips_output_order_conditional_branch): Declare.
8205         * config/mips/mips.h (MIPS_BRANCH): New macro.
8206         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
8207         for the comparison.  Use gen_condjump.
8208         (mips_output_conditional_branch): Rework interface to take the
8209         asm templates for a direct branch and the inverse of a direct branch.
8210         (mips_output_order_conditional_branch): New function.
8211         (mips_builtin_branch_and_move): New function.
8212         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
8213         branch condition.  Use gen_single_cc as the condition for
8214         __builtin_mips_upper_* or __builtin_mips_lower_*.
8215         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
8216         Use VOIDmode for the branch condition.
8217         * config/mips/predicates.md (order_operator): New predicate.
8218         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
8219         (branch_fp): Rename to...
8220         (*branch_fp): ...this.  Remove mode from comparison operator.
8221         Use new mips_output_conditional_branch interface.
8222         (branch_fp_inverted): Rename to...
8223         (*branch_fp_inverted): ...this and update as for *branch_fp.
8224         (*branch_zero<mode>): Rename to...
8225         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
8226         Use mips_output_order_conditional_branch.  Only accept ordered
8227         comparisons.
8228         (*branch_zero<mode>_inverted): Rename to...
8229         (*branch_order<mode>_inverted): ...this and update as for
8230         *branch_order<mode>.
8231         (*branch_equality<mode>): Accept zero as the second operand to
8232         the equality operator.  Use the new mips_output_conditional_branch
8233         interface.
8234         (*branch_equality<mode>_inverted): Likewise.
8235         (condjump): New expander.
8236         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
8237         operator.
8238         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
8239         (bc1any2t, bc1any2f): Likewise.
8240         (single_cc): New expander.
8241         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
8242
8243 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
8244
8245         * doc/md.texi: Update documentation of MIPS constraints.
8246         * config/mips/constraints.md: New file.
8247         * config/mips/mips.md: Include it.
8248         * config/mips/mips.c (mips_char_to_class): Delete.
8249         (override_options): Don't initialize mips_char_to_class.
8250         * config/mips/mips.h (mips_char_to_class): Delete.
8251         (REG_CLASS_FROM_LETTER): Delete.
8252         (CONST_OK_FOR_LETTER_P): Delete.
8253         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8254         (EXTRA_CONSTRAINT_Y): Delete.
8255         (EXTRA_CONSTRAINT_STR): Delete.
8256         (CONSTRAINT_LEN): Delete.
8257         (EXTRA_MEMORY_CONSTRAINT): Delete.
8258
8259 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
8260
8261         * tree-cfg.c (move_block_to_fn): Remove the statements from the
8262         original fn's eh regions.
8263
8264 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
8265
8266         * fold-const.c (build_range_check): Make sure to use a valid type to
8267         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
8268         transformation.
8269
8270         (range_predecessor): New static function.
8271         (range_successor): Likewise.
8272         (merge_ranges): Use them to compute predecessors and successors of
8273         range bounds.
8274
8275 2006-03-09  Roger Sayle  <roger@eyesopen.com>
8276
8277         PR middle-end/26561
8278         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
8279         X op C3, consider whether C3 overflows towards +Inf or -Inf.
8280
8281 2006-03-08  DJ Delorie  <dj@redhat.com>
8282
8283         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
8284         (addpsi3): Expand to include memory operands.  Remove
8285         reload-specific splits.
8286         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
8287         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
8288         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
8289         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
8290         (shift1_qi, shift1_hi, insv): New.
8291         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
8292         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
8293         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
8294         cond_to_int): New.
8295         * config/m32c/m32c-protos.h: Update as needed.
8296         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
8297         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
8298         Fail for unrecognized R* constraints.
8299         (m32c_cannot_change_mode_class): Be more picky about pseudos.
8300         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
8301         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
8302         Add Sp constraint.
8303         (m32c_init_libfuncs): New.
8304         (m32c_legitimate_address_p): Add debug wrapper.
8305         (m32c_rtx_costs): New.
8306         (m32c_address_cost): New.
8307         (conversions): Add 'B' prefix.
8308         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
8309         operands, or word regnames for QI operands.  'B' prints bit
8310         position.
8311         (m32c_expand_setmemhi): New.
8312         (m32c_expand_movmemhi): New.
8313         (m32c_expand_movstr): New.
8314         (m32c_expand_cmpstr): New.
8315         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
8316         (m32c_expand_neg_mulpsi3): Handle non-ints.
8317         (m32c_cmp_flg_0): New.
8318         (m32c_expand_movcc): New.
8319         (m32c_expand_insv): New.
8320         (m32c_scc_pattern): New.
8321         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
8322         a0/a1 out of SIregs.
8323         (STORE_FLAG_VALUE): New.
8324         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
8325         code macros.
8326         (no_insn): New.
8327         * config/m32c/mov.md: Make constraints more liberal.
8328         (zero_extendqihi2): Optimize r0/r1 case.
8329         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
8330         * config/m32c/predicates.md (m32c_any_operand): New.
8331         (m32c_nonimmediate_operand): New.
8332         (m32c_hl_operand): New.
8333         (m32c_r3_operand): New.
8334         (ap_operand): New.
8335         (ma_operand): New.
8336         (memsym_operand): New.
8337         (memimmed_operand): New.
8338         (a_qi_operand): New.
8339         (m32c_eqne_operator): New.
8340         (m32c_1bit8_operand): New.
8341         (m32c_1bit16_operand): New.
8342         (m32c_1mask8_operand): New.
8343         (m32c_1mask16_operand): New.
8344         * config/m32c/blkmov.md: New file.
8345         * config/m32c/t-m32c (MD_FILES): Add blkmov.
8346
8347 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
8348
8349         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
8350         unsigned to fix signed/unsigned comparison issue in
8351         DWARF2_FRAME_REG_OUT.
8352         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
8353         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
8354
8355         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
8356         of ptr into the ENABLE_CHECKING section.
8357
8358 2006-03-08  Jeff Law  <law@redhat.com>
8359
8360         * tree-vrp.c (infer_value_range): Only count pointer uses
8361         and dereferences if -fdelete-null-pointer-checks is enabled.
8362
8363         * tree-vrp.c (find_assert_locations): Infer value ranges for
8364         single use pointers, but do not create ASSERT_EXPRs for them.
8365         When a non-null range is inferred for a pointer, backwards
8366         propagate that range to other equivalent pointers through the
8367         use-def chain.
8368
8369 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
8370
8371         PR bootstrap/26500
8372         * Makefile.in (dvi, html, install-info): Invoke the corresponding
8373         language hook targets.
8374         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
8375         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
8376         if language hook targets were missing.
8377
8378 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
8379
8380         * tree-ssa-opfinalize.h: Removed.
8381         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
8382         dependency.
8383         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
8384         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
8385         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
8386         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8387         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8388         finalize_ssa_v_must_def_ops): New.
8389
8390 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
8391
8392         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8393         block as parameter.
8394
8395 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
8396
8397         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8398
8399         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8400         addresses with offsets; reorganize.
8401
8402         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8403         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8404         (expand_builtin_init_dwarf_reg_sizes): Likewise.
8405
8406 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
8407
8408         PR target/26588
8409         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
8410
8411 2006-03-08  Ben Elliston  <bje@au.ibm.com>
8412
8413         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
8414
8415 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
8416
8417         PR gomp/26238
8418         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
8419         expansion.
8420
8421 2006-03-07  Richard Guenther  <rguenther@suse.de>
8422
8423         PR tree-optimization/26587
8424         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
8425
8426 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8427
8428         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
8429
8430 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8431
8432         * hooks.c (hook_bool_mode_rtx_true): New function.
8433         * hooks.h (hook_bool_mode_rtx_true): Declare.
8434         * toplev.c (compile_file): Call output_shared_constant_pool.
8435         * varasm.c (shared_constant_pool): New variable.
8436         (assemble_start_function, assemble_end_function): Remove arguments
8437         from call to output_constant_pool.
8438         (create_constant_pool): New function, split out from...
8439         (init_varasm_status): ...here.
8440         (force_const_mem): Choose between the shared and per-function constant
8441         pools.  Set current_function_uses_const_pool when reusing old entries
8442         as well as when creating new ones.
8443         (mark_constant): Ignore data argument.
8444         (mark_constants): Remove pool argument.
8445         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
8446         to decide whether the function uses a constant pool.
8447         (output_constant_pool_contents): New function, split out from...
8448         (output_constant_pool): ...here.
8449         (output_shared_constant_pool): New function.
8450         (init_varasm_once): Initialize shared_constant_pool.
8451         * output.h (output_constant_pool): Delete.
8452         (output_shared_constant_pool): Declare.
8453         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
8454         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
8455
8456 2006-03-06  Nick Clifton  <nickc@redhat.com>
8457
8458         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
8459         flag_strength_reduce.
8460
8461 2006-03-06  Ben Elliston  <bje@au.ibm.com>
8462
8463         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
8464         x86_64-*-linux* configurations.
8465
8466         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
8467         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
8468
8469 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8470
8471         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
8472         Remove.
8473         * basic-block.h: Remove the extern for
8474         rediscover_loops_after_threading.
8475
8476         * cfgloop.c (cancel_loop): Make it static.
8477         * cfgloop.h: Remove the prototype for cancel_loop.
8478
8479         * flow.c (recompute_reg_usage): Make it static.
8480         * rtl.h: Remove the prototype for recompute_reg_usage.
8481
8482         * function.c (use_return_register): Make it static.
8483         * function.h: Remove the prototype.
8484
8485 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8486
8487         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
8488         Remove.
8489         * recog.h: Remove the prototype for
8490         validate_change_maybe_volatile.
8491
8492 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8493
8494         * rtlanal.c (replace_reg): Remove.
8495         * rtl.h: Remove the prototype for replace_reg.
8496
8497 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8498
8499         * regclass.c (reg_scan_update): Remove.
8500         (reg_scan_mark_refs): Remove the last argument.
8501         * rtl.h: Remove the prototype for reg_scan_update.
8502
8503 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8504
8505         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8506         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8507         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8508         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8509         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8510         loop-invariant.c, omp-low.c, opts.c, passes.c,
8511         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8512         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8513         tree-ssa-structalias.c, tree-ssa-threadedge.c,
8514         tree-ssa-threadupdate.c, tree-vect-patterns.c,
8515         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8516         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
8517
8518 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8519
8520         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8521         * dwarf2out.h: Remove the prototype for
8522         dwarf2out_add_library_unit_info.
8523
8524 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8525
8526         * tree.c (add_var_to_bind_expr): Remove.
8527         * tree.h: Remove the prototype for add_var_to_bind_expr.
8528
8529 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8530
8531         * regclass.c (n_non_fixed_regs): Remove.
8532         (init_reg_sets_1, globalize_reg): Remove all uses of
8533         n_non_fixed_regs.
8534         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8535
8536 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8537
8538         * rtlanal.c (insns_safe_to_move_p): Remove.
8539         * rtl.h: Remove the prototype for insns_safe_to_move_p.
8540
8541 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8542
8543         * expmed.c (expand_mult_add): Remove.
8544         * expr.h: Remove the prototype for expand_mult_add.
8545
8546 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
8547
8548         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8549         and REG_SAVED_VAL_EXP constants.
8550         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8551         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8552         Handle regs stored by value.
8553         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8554         (execute_cfa_program): Handle DW_CFA_val_offset,
8555         DW_CFA_val_offset_sf and DW_CFA_val_expression.
8556         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8557         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8558         (uw_install_context_1): Handle target regs stored by value.
8559
8560 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
8561
8562         * tree-sra.c (tree_sra): Return todoflags;
8563         (generate_one_element): Set TODO_update_smt_usage if needed.
8564         (pass_sra): Remove TODO_update_smt_usage.
8565         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8566         parameter.
8567         (tree_ssa_forward_propagate_single_use_vars): Return
8568         TODO_update_smt_usage if we need to update SMT usage.
8569         (pass_forwprop): Remove TODO_update_smt_usage.
8570
8571 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
8572
8573         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
8574         (correct_use_link): Remove reference to get_stmt_operands.
8575         (update_stmt_operands): Likewise.
8576         (get_modify_expr_operands): New function factored out of
8577         parse_ssa_operands and get_expr_operands.
8578         Try to create V_MUST_DEFs for LHS by default.
8579         (get_expr_operands) <case MODIFY_EXPR>: Call
8580         get_modify_expr_operands.
8581         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8582         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8583         (parse_ssa_operands) <case MODIFY_EXPR>: Call
8584         get_modify_expr_operands.
8585
8586 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
8587
8588         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8589         * tree-flow.h: Remove the prototype for
8590         referenced_var_lookup_if_exists.
8591
8592 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
8593
8594         PR rtl-optimization/26345
8595         PR target/19061
8596         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8597
8598 2006-03-03  Roger Sayle  <roger@eyesopen.com>
8599
8600         PR tree-optimization/26524
8601         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8602         fold_convert to create a constant of the appropriate type.
8603
8604 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
8605
8606         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8607         SYMBOL_REF_IN_BLOCK_P.
8608         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8609         of SYMBOL_FLAG_IN_BLOCK.
8610         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8611         instead of SYMBOL_REF_IN_BLOCK_P.
8612         * explow.c (use_anchored_address): Likewise.
8613         * rtl.c (rtx_size): Likewise.
8614         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8615         instead of SYMBOL_FLAG_IN_BLOCK.
8616         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8617         SYMBOL_REF_IN_BLOCK_P.
8618         (assemble_variable): Likewise.
8619         (output_constant_def_contents): Likewise.
8620         (output_constant_pool): Likewise.
8621         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8622         instead of SYMBOL_FLAG_IN_BLOCK.
8623         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8624         SYMBOL_REF_IN_BLOCK_P.
8625         (SYMBOL_REF_BLOCK): Likewise.
8626         (SYMBOL_REF_OFFSET): Likewise.
8627         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8628         SYMBOL_REF_IN_BLOCK_P.
8629         (SYMBOL_FLAG_IN_BLOCK): Replace with...
8630         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8631         (SYMBOL_REF_IN_BLOCK_P): Replace with...
8632         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8633
8634 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
8635
8636         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8637
8638 2006-03-02  Roger Sayle  <roger@eyesopen.com>
8639
8640         * simplify-rtx.c (simplify_unary_operation): When simplifying
8641         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8642         that we perform the right shift in the appropriate mode, and
8643         then extend or truncate the result to requested mode.
8644
8645 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
8646
8647         * gengtype.c (main): Handle double_int type.
8648         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8649         * double-int.c: New file.
8650         * double-int.h: New file.
8651         * system.h: Include doubleint.h.
8652         * Makefile.in (SYSTEM_H): Include double-int.h.
8653         (double-int.o): Add.
8654
8655 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
8656
8657         PR bootstrap/26478
8658         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8659         copying over it.
8660
8661 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8662
8663         * tree-vrp.c (remove_range_assertions): Do not update statements
8664         unnecessarily.
8665
8666 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8667
8668         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8669         cleanup.
8670         * gcse.c (rest_of_handle_gcse): Ditto.
8671         * except.c (gate_handle_eh): Ditto.
8672         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8673         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8674
8675 2006-03-02  Eric Christopher  <echristo@apple.com>
8676
8677         * config/i386/i386.c (machopic_output_stub): Add indirection to
8678         jump.
8679
8680 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8681
8682         * loop.c: Removed.
8683
8684 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
8685
8686         Sun Niagara specific optimizations.
8687         * config.gcc: Recognize niagara as target.
8688         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8689         (TARGET_CPU_niagara): Define.
8690         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8691         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8692         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8693         (ASM_CPU_SPEC): Likewise.
8694         (PROCESSOR_NIAGARA): New enum entry.
8695         (REGISTER_MOVE_COST): Handle Niagara.
8696         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8697         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8698         (sparc_override_options): Recognize "niagara", set appropriate
8699         default MASK_* values for it, and align functions to 32-bytes
8700         by default just like ULTRASPARC/ULTRASPARC3.
8701         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8702         (sparc64_initialize_trampoline): Likewise.
8703         (sparc_use_sched_lookahead): Use zero for niagara.
8704         (sparc_issue_rate): Use one for niagara.
8705         * config/sparc/niagara.md: New file.
8706         * config/sparc/sparc.md: Include it.
8707         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8708         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8709         when default cpu is niagara.
8710         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8711         (ASM_CPU_SPEC): Likewise.
8712         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8713         when default cpu is niagara.
8714         (ASM_CPU_SPEC): Handle -mcpu=niagara.
8715         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8716         just like v9/ultrasparc/ultrasparc3.
8717         * doc/invoke.texi: Add documentation for "niagara" and improve
8718         existing documentation for ultrasparc variants.
8719
8720 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
8721
8722         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8723
8724 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
8725
8726         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8727         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8728         and say that only one is needed.
8729         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8730         * target.h (have_switchable_bss_sections): New hook.
8731         * explow.c (use_anchored_address): Check that the symbol is in a block.
8732         * varasm.c (tls_comm_section, comm_section, lcomm_section)
8733         (bss_noswitch_section): New variables.
8734         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8735         (get_noswitch_section): New function.
8736         (get_block_for_section): Allow SECT to be null.
8737         (unlikely_text_section_p): Use SECTION_STYLE.
8738         (bss_initializer_p): New function.
8739         (get_variable_section): Move earlier in file.  Take a new argument,
8740         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
8741         Return one of the new *_sections in such cases.
8742         (get_block_for_decl): New function, extracting some logic from
8743         use_blocks_for_decl_p.
8744         (change_symbol_section): Remove in favor of...
8745         (change_symbol_block): ...this new function.
8746         (use_blocks_for_decl_p): Remove checks now performed by
8747         get_block_for_decl.
8748         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8749         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8750         (emit_local, emit_bss, emit_common): ...these new functions.
8751         Return true if the alignment was honored.
8752         (emit_tls_common): New function.
8753         (asm_emit_uninitialised): Delete.
8754         (assemble_variable_noswitch): New function, split out from...
8755         (assemble_variable): ...here.  Don't make decisions about common
8756         variables here.  Globalize all public decls that go into non-common
8757         sections.  Check whether SYMBOL_REF_BLOCK is null.
8758         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8759         (output_constant_pool): Likewise.
8760         (init_varasm_once): Initialize the new section variables.
8761         (have_global_bss_p): New function.
8762         (categorize_decl_for_section): Use bss_initializer_p.
8763         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
8764         (place_block_symbol): Assert that the symbol must be in a block.
8765         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8766         (TARGET_INITIALIZER): Include it.
8767         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8768         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8769         (SECTION_MACH_DEP): Bump by two.
8770         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8771         (unnamed_section): Mention SECTION_UNNAMED in comment.
8772         (named_section): Likewise SECTION_NAMED.
8773         (noswitch_section_callback): New type.
8774         (noswitch_section): New structure.
8775         (section): Add a noswitch_section alternative.
8776         (SECTION_STYLE): New macro.
8777         (tls_comm_section, comm_section, lcomm_section): Declare.
8778         (bss_noswitch_section, have_global_bss_p): Declare.
8779         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8780         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8781         Override.
8782         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8783         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8784         Override.
8785
8786 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
8787
8788         * tree-vrp.c (execute_vrp): Return value.
8789         * regrename.c (rest_of_handle_regrename): Ditto.
8790         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8791         * tree-complex.c (tree_lower_complex): Ditto.
8792         (tree_lower_complex_O0): Ditto.
8793         * tracer.c (rest_of_handle_tracer): Ditto.
8794         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8795         * postreload.c (rest_of_handle_postreload): Ditto.
8796         * tree-tailcall.c (execute_tail_recursion): Ditto.
8797         (execute_tail_calls): Ditto.
8798         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8799         * tree.h (init_function_for_compilation): Ditto.
8800         * ipa-cp.c (ipcp_driver): Ditto.
8801         * tree-scalar-evolution.c (scev_const_prop): Ditto.
8802         * tree-scalar-evolution.h (scev_const_prop): Ditto.
8803         * final.c (compute_alignments): Ditto.
8804         (rest_of_handle_final): Ditto.
8805         (rest_of_handle_shorten_branches): Ditto.
8806         (rest_of_clean_state): Ditto.
8807         * omp-low.c (execute_expand_omp): Ditto.
8808         (execute_lower_omp): Ditto.
8809         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8810         * ipa-reference.c (static_execute): Ditto.
8811         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8812         * reorg.c (rest_of_handle_delay_slots): Ditto.
8813         (rest_of_handle_machine_reorg): Ditto.
8814         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8815         * flow.c (recompute_reg_usage): Ditto.
8816         (rest_of_handle_remove_death_notes): Ditto.
8817         (rest_of_handle_life): Ditto.
8818         (rest_of_handle_flow2): Ditto.
8819         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8820         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8821         (do_ssa_store_ccp): Ditto.
8822         (execute_fold_all_builtins): Ditto.
8823         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
8824         * modulo-sched.c (rest_of_handle_sms): Ditto.
8825         * ipa-pure-const.c (static_execute): Ditto.
8826         * cse.c (rest_of_handle_cse): Ditto.
8827         (rest_of_handle_cse2): Ditto.
8828         * web.c (rest_of_handle_web): Ditto.
8829         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
8830         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
8831         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
8832         * tree-nrv.c (tree_nrv): Ditto.
8833         (execute_return_slot_opt): Ditto.
8834         * tree-ssa-alias.c (compute_may_aliases): Ditto.
8835         (create_structure_vars): Ditto.
8836         * loop-init.c (rtl_loop_init): Ditto.
8837         (rtl_loop_done): Ditto.
8838         (rtl_move_loop_invariants): Ditto.
8839         (rtl_unswitch): Ditto.
8840         (rtl_unroll_and_peel_loops): Ditto.
8841         (rtl_doloop): Ditto.
8842         * gimple-low.c (lower_function_body): Ditto.
8843         (mark_used_blocks): Ditto.
8844         * tree-ssa-sink.c (execute_sink_code): Ditto.
8845         * ipa-inline.c (cgraph_decide_inlining): Ditto.
8846         (cgraph_early_inlining): Ditto.
8847         * global.c (rest_of_handle_global_alloc): Ditto.
8848         * jump.c (cleanup_barriers): Ditto.
8849         (purge_line_number_notes): Ditto.
8850         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
8851         (rest_of_handle_if_after_reload): Ditto.
8852         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
8853         (tree_ssa_loop_im): Ditto.
8854         (tree_ssa_loop_unswitch): Ditto.
8855         (tree_vectorize): Ditto.
8856         (tree_linear_transform): Ditto.
8857         (tree_ssa_loop_ivcanon): Ditto.
8858         (tree_ssa_empty_loop): Ditto.
8859         (tree_ssa_loop_bounds): Ditto.
8860         (tree_complete_unroll): Ditto.
8861         (tree_ssa_loop_prefetch): Ditto.
8862         (tree_ssa_loop_ivopts): Ditto.
8863         (tree_ssa_loop_done): Ditto.
8864         * predict.c (tree_estimate_probability): Ditto.
8865         * recog.c (split_all_insns_noflow): Ditto.
8866         (rest_of_handle_peephole2): Ditto.
8867         (rest_of_handle_split_all_insns): Ditto.
8868         * tree-eh.c (lower_eh_constructs): Ditto.
8869         * regmove.c (rest_of_handle_regmove): Ditto.
8870         (rest_of_handle_stack_adjustments): Ditto.
8871         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
8872         * function.c (instantiate_virtual_regs): Ditto.
8873         (init_function_for_compilation): Ditto.
8874         (rest_of_handle_check_leaf_regs): Ditto.
8875         * gcse.c (rest_of_handle_jump_bypass): Ditto.
8876         (rest_of_handle_gcse): Ditto.
8877         * ipa-type-escape.c (type_escape_execute): Ditto.
8878         * alias.c (rest_of_handle_cfg): Ditto.
8879         * tree-if-conv.c (main_tree_if_conversion): Ditto.
8880         * profile.c (rest_of_handle_branch_prob): Ditto.
8881         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
8882         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
8883         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
8884         * tree-dfa.c (find_referenced_vars): Ditto.
8885         * except.c (set_nothrow_function_flags): Ditto.
8886         (convert_to_eh_region_ranges): Ditto.
8887         (rest_of_handle_eh): Ditto.
8888         * emit-rtl.c (unshare_all_rtl): Ditto.
8889         (remove_unnecessary_notes): Ditto.
8890         * except.h (set_nothrow_function_flags): Ditto.
8891         (convert_to_eh_region_ranges): Ditto.
8892         * cfgexpand.c (tree_expand_cfg): Ditto.
8893         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
8894         * tree-ssa-pre.c (do_pre): Ditto.
8895         (execute_fre): Ditto.
8896         * cfgcleanup.c (rest_of_handle_jump): Ditto.
8897         (rest_of_handle_jump2): Ditto.
8898         * tree-sra.c (tree_sra): Ditto.
8899         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
8900         (execute_mudflap_function_decls): Ditto.
8901         * tree-ssa-copy.c (do_copy_prop): Ditto.
8902         (do_store_copy_prop): Ditto.
8903         * ipa-prop.h (ipcp_driver): Ditto.
8904         * cfglayout.c (insn_locators_initialize): Ditto.
8905         * tree-ssa-forwprop.c
8906         (tree_ssa_forward_propagate_single_use_vars): Ditto.
8907         * cfglayout.h (insn_locators_initialize): Ditto.
8908         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
8909         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
8910         (execute_late_warn_uninitialized): Ditto.
8911         * rtl.h (cleanup_barriers): Ditto.
8912         (split_all_insns_noflow): Ditto.
8913         (purge_line_number_notes): Ditto.
8914         (unshare_all_rtl): Ditto.
8915         (remove_unnecessary_notes): Ditto.
8916         (recompute_reg_usage): Ditto.
8917         (variable_tracking_main): Ditto.
8918         * integrate.c (emit_initial_value_sets): Ditto.
8919         * integrate.h (emit_initial_value_sets): Ditto.
8920         * tree-optimize.c (execute_free_datastructures): Ditto
8921         (execute_free_cfg_annotations): Ditto.
8922         (execute_fixup_cfg): Ditto.
8923         (execute_cleanup_cfg_pre_ipa): Ditto.
8924         (execute_cleanup_cfg_post_optimizing): Ditto.
8925         (execute_init_datastructures): Ditto.
8926         * tree-object-size.c (compute_object_sizes): Ditto.
8927         * combine.c (rest_of_handle_combine): Ditto.
8928         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
8929         * bb-reorder.c (duplicate_computed_gotos): Ditto.
8930         (rest_of_handle_reorder_blocks): Ditto.
8931         (rest_of_handle_partition_blocks): Ditto.
8932         * var-tracking.c (variable_tracking_main): Ditto.
8933         * tree-profile.c (tree_profiling): Ditto.
8934         * tree-vect-generic.c (expand_vector_operations): Ditto.
8935         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
8936         * sched-rgn.c (rest_of_handle_sched): Ditto.
8937         (rest_of_handle_sched2): Ditto.
8938         * basic-block.h (free_bb_insn): Ditto.
8939         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
8940         * tree-cfg.c (execute_build_cfg): Ditto.
8941         (remove_useless_stmts): Ditto.
8942         (split_critical_edges): Ditto.
8943         (execute_warn_function_return): Ditto.
8944         (execute_warn_function_noreturn): Ditto.
8945         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
8946         * cfgrtl.c (free_bb_for_insn): Ditto.
8947         * passes.c (execute_one_pass): Run additional
8948         todos returned by execute function.
8949         * tree-pass.h (struct tree_opt_pass): Make execute
8950         return a value.
8951
8952 2006-03-02  Richard Guenther  <rguenther@suse.de>
8953
8954         * tree-ssa-alias.c (find_used_portions): Consider taking
8955         the address as making the variable not write-only.
8956
8957 2006-03-02  Nick Clifton  <nickc@redhat.com>
8958
8959         * config.gcc (default_use_cxa_atexit): Extend the description of
8960         this configure variable.  Set its default value to "yes" for
8961         Linux, NetBSD and ELF targets on the assumption that they will
8962         use C libraries with the __cxa_atexit function.
8963
8964 2006-03-02  Ben Elliston  <bje@au.ibm.com>
8965
8966         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
8967         parameter as unused to suppress a build warning.
8968
8969 2006-03-02  Ben Elliston  <bje@au.ibm.com>
8970
8971         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
8972         config/dfp-bit.c.
8973
8974 2006-03-01  Roger Sayle  <roger@eyesopen.com>
8975
8976         PR other/26489
8977         * gthr-posix.h (__gthrw2): Define to take three parameters, the
8978         declared name, the weak reference name, and the typeof name.
8979         (__gthrw): Avoid expanding the declared name suffix.
8980         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
8981
8982 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
8983
8984         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
8985         from DWARF 3.
8986         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
8987         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
8988         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
8989         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
8990         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
8991         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
8992         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
8993         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
8994         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
8995         DW_DS_leading_separate, DW_DS_trailing_separate): New.
8996         (DW_END_default, DW_END_big, DW_END_little): New.
8997         (DW_END_lo_user, DW_END_hi_user): Define.
8998         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
8999         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
9000         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
9001         DW_LANG_D): New.
9002
9003 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9004
9005         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
9006         Update all users.
9007         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
9008         Update all users.
9009         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
9010         Update all users.
9011         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
9012         Update all users.
9013         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
9014         to 'symbol_mem_tag'.
9015         Update all users.
9016         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
9017         rename.
9018
9019 2006-03-01  Roger Sayle  <roger@eyesopen.com>
9020
9021         * builtins.c (fold_builtin_copysign): Delete unreachable code.
9022
9023 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9024
9025         PR target/25761
9026         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
9027         MACHO_DYNAMIC_NO_PIC_P.
9028         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
9029
9030 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9031
9032         PR target/26389
9033         * config/darwin-protos.h (darwin_asm_output_anchor):
9034         Declare.
9035         * config/darwin-sections.def (cstring_section):
9036         Add SECTION_MERGE to the flags.
9037         (literal4_section): Likewise.
9038         (literal8_section): Likewise.
9039         (objc_selector_refs_section): Likewise.
9040         (objc_cls_refs_section): Likewise.
9041         * config/darwin.c (darwin_asm_output_anchor): New
9042         function.
9043         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9044
9045 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
9046
9047         Fix PR tree-optimization/26443
9048         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
9049         to todo and PROP_tmt_usage to properties_destroyed.
9050         * tree-ssa-ccp.c (pass_ccp): Ditto.
9051         (pass_store_ccp): Ditto.
9052         * tree-ssa-dom.c (pass_dominator): Ditto.
9053
9054 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9055
9056         * tree-ssa-operands.c: Cleanup whitespace.
9057         (get_asm_expr_operands): Move before first invocation.
9058         (get_indirect_ref_operands): Likewise.
9059         (get_tmr_operands): Likewise.
9060         (get_call_expr_operands): Likewise.
9061         (append_def): Likewise.
9062         (append_use): Likewise.
9063         (append_v_may_def): Likewise.
9064         (append_v_must_def): Likewise.
9065         (add_call_clobber_ops): Likewise.
9066         (add_call_read_ops): Likewise.
9067         (add_stmt_operand): Likewise.
9068         (add_virtual_operand): Likewise.
9069         (build_ssa_operands): Likewise.
9070
9071 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9072
9073         PR middle-end/26022
9074         Revert:
9075         PR middle-end/24437
9076         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
9077         with a call expr to ...
9078         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
9079
9080 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9081
9082         * tree-vrp.c (extract_range_from_assert): Remove special
9083         handling for types with super-types.
9084
9085 2006-03-01  Ben Elliston  <bje@au.ibm.com>
9086
9087         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
9088         and powerpc64-*-linux* configurations.
9089         * config/t-dfprules: New file.
9090
9091         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
9092         Compile dfp-bit.c from the source directory using -DWIDTH and
9093         $DFP_CFLAGS to control the compilation of that file, rather than
9094         generating width-specific versions in the build directory.
9095         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
9096         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
9097
9098 2006-02-28  Zack Weinberg  <zackw@panix.com>
9099
9100         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
9101         continues to work.
9102
9103 2006-02-28  Eric Christopher  <echristo@apple.com>
9104
9105         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
9106         Set up IN_LIBGCC definition of TARGET_64BIT.
9107         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
9108
9109 2006-02-28  Roger Sayle  <roger@eyesopen.com>
9110
9111         PR middle-end/14752
9112         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
9113         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
9114         cases via the construction of "expr != 0".
9115
9116 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9117
9118         * alias.c (alias_invariant, alias_invariant_size): Remove.
9119         (record_base_value): Remove.
9120         (memrefs_conflict_p): Don't look at alias_invariant.
9121         (end_alias_analysis): Don't free it.
9122         * alias.h (record_base_value): Remove prototype.
9123
9124 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
9125             Adam Nemet  <anemet@caviumnetworks.com>
9126
9127         * rtl.h (truncated_to_mode): Declare it.
9128         (struct rtl_hooks): Add reg_truncated_to_mode hook.
9129         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
9130         (RTL_HOOKS_INITIALIZER): Include it.
9131         * rtlhooks.c (reg_truncated_to_mode_general): New function.
9132         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
9133         reg_truncated_to_mode.
9134         * rtlanal.c (truncated_to_mode): Define it.
9135         * simplify-rtx.c (simplify_unary_operation_1): Use it.
9136
9137 2006-02-28  Jeff Law  <law@redhat.com>
9138
9139         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
9140         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
9141         the range allowed by TYPE_PRECISION.
9142
9143         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
9144
9145 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
9146
9147         PR tree-optimization/26419
9148         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
9149         values of n.
9150
9151 2006-02-27  Zack Weinberg  <zackw@panix.com>
9152
9153         * doc/md.texi: Fix typo in previous change.
9154
9155 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
9156
9157         * df.c: Remove.
9158
9159 2006-02-27  Zack Weinberg  <zackw@panix.com>
9160
9161         * rtl.def (define_constraint, define_register_constraint)
9162         (define_memory_constraint, define_address_constraint): New MD forms.
9163         * gensupport.c (process_rtx): Put define_constraint etc on the
9164         predicate queue.
9165         * genpreds.c (process_define_predicate): Adjust comment.  Validate
9166         the name, and call validate_exp to validate the expression.
9167         (mark_mode_tests, write_extract_subexp): Can assume correct input.
9168         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
9169         all callers changed.
9170         (validate_exp, needs_variable, struct constraint_data)
9171         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
9172         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
9173         (const_dbl_constraints, constraint_max_namelen)
9174         (have_register_constraints, have_memory_constraints)
9175         (have_address_constraints, have_address_constraints)
9176         (have_extra_constraints, have_const_int_constraints)
9177         (have_const_dbl_constraints, mangle, add_constraint)
9178         (process_define_constraint, process_define_register_constraint)
9179         (write_enum_constraint_num, write_lookup_constraint)
9180         (write_insn_constraint_len, write_regclass_for_constraint)
9181         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
9182         (write_insn_extra_memory_constraint)
9183         (write_insn_extra_address_constraint)
9184         (write_satisfies_constraint_fns): New.
9185         (write_tm_preds_h): If we have new-style constraint definitions,
9186         prototype the functions generated from them, and define the
9187         old constraint interface (still used by generic code) in terms of
9188         those functions.
9189         (write_insn_preds_c): If we have new-style constraint definitions,
9190         generate all relevant functions from those definitions.
9191         (main): Handle define_constraint etc.
9192         * genoutput.c (struct constraint_data, indep_constraints)
9193         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
9194         (mdep_constraint_len): New data structures and functions, defined
9195         #ifdef USE_MD_CONSTRAINTS.
9196         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
9197         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
9198         use new logic to validate operand constraints against constraint
9199         definitions.
9200         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
9201         defined.
9202         * defaults.h: If none of the old-style constraint macros are
9203         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
9204         old-style macros; and poison REG_CLASS_FROM_LETTER,
9205         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
9206         EXTRA_CONSTRAINT.
9207         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
9208         * doc/md.texi: Document new constraint-definition mechanism and the
9209         C interface it provides.  Remove references to old mechanism
9210         elsewhere in the document.
9211         (Machine Constraints): Use pathnames relative to gcc directory,
9212         i.e. config/ARCH/FILE.  Change i386 section to refer to
9213         config/i386/predicates.md; update that section to match docstrings.
9214         * doc/tm.texi: Move all documentation of the old constraint-
9215         definition macros to their own section, clearly mark as obsolete.
9216
9217         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
9218         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
9219         definitions.
9220         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
9221         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9222         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
9223         constraint strings.
9224         (splits and peepholes): Use satisfies_constraint_*.
9225         * config/i386/i386.c (memory_address_length)
9226         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
9227
9228 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
9229
9230         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
9231         scalar operation to be put back into the loop.
9232
9233 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
9234
9235         PR other/26208
9236         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
9237         (extract_cie_info): Handle S flag in augmentation string.
9238         (execute_cfa_program): If context->signal_frame, execute also
9239         fs->pc == context->ra instructions.
9240         (uw_frame_state_for): If context->signal_frame, don't subtract one
9241         from context->ra to find FDE.
9242         (uw_update_context_1): Set context->signal_frame to
9243         fs->signal_frame.
9244         (_Unwind_GetIPInfo): New function.
9245         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
9246         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
9247         of _Unwind_GetIP.
9248         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
9249         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
9250         * unwind-compat.c (_Unwind_GetIPInfo): New function.
9251         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
9252         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
9253         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
9254         * config/i386/linux-unwind.h (x86_fallback_frame_state,
9255         x86_64_fallback_frame_state): Set fs->signal_frame.
9256         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
9257         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
9258         (frob_update_context): Likewise.  Workaround missing S flag in
9259         Linux 2.6.12 - 2.6.16 kernel vDSOs.
9260         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
9261         Remove the psw_addr + 1 hack.
9262
9263 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
9264
9265         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
9266         with aggregates here.
9267         (find_func_aliases): Remove code for &<aggregate> from here.
9268
9269 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9270
9271         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
9272         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
9273         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
9274         as (X & C) ne/eq 0.
9275
9276 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9277
9278         PR middle-end/19983
9279         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
9280
9281 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
9282
9283         * opts.c (decode_options): Do not handle flag_strength_reduce.
9284         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
9285         and OPT_fstrength_reduce.
9286         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
9287         flag_prefetch_loop_arrays for being nonzero.
9288         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
9289         no-ops.
9290         (fprefetch-loop-arrays-rtl): Removed.
9291         (flag_prefetch_loop_arrays): Do not specify the value.
9292
9293         * doc/passes.texi: Update documentation of loop optimizer
9294         passes.
9295         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
9296         -frerun-loop-opt): Remove.
9297
9298 2006-02-26  Richard Guenther  <rguenther@suse.de>
9299
9300         PR tree-optimization/26421
9301         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
9302         in function calls that are ADDR_EXPRs as using the whole structure.
9303
9304 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9305
9306         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
9307         * tree-pass.h (pass_loop_optimize): Remove.
9308         * passes.c (pass_loop_optimize): Never run it.
9309         * toplev.c (backend_init): Don't call init_loop.
9310         * opts.c (flag_loop_optimize_set): Remove.
9311         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
9312         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
9313         the old RTL loop optimizer when profiling enabled.
9314         * predict.c (tree_estimate_probability): Always strip builtin_expect.
9315         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
9316         pre-headers for the sake of the old RTL loop optimizer.
9317         * Makefile.in: Remove all references to loop.o.
9318
9319         * doc/invoke.texi: Remove all references to -floop-optimize
9320         and -frerun-loop-opt.
9321
9322 2006-02-26  Zack Weinberg  <zackw@panix.com>
9323
9324         * doc/md.texi (Machine Constraints): Refer to all files with paths
9325         relative to gcc directory (i.e. config/CPU/file).  Add missing
9326         @table @code ... @end table to M32C subsection.
9327
9328 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9329
9330         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
9331         (X & 1) == 0.
9332         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
9333
9334 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9335             James A. Morrison  <phython@gcc.gnu.org>
9336
9337         PR middle-end/21137
9338         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
9339         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
9340         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
9341         signedness of the shift operation.
9342
9343 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
9344
9345         PR tree-optimization/26359
9346         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
9347
9348 2006-02-25  Roger Sayle  <roger@eyesopen.com>
9349
9350         * simplify-rtx.c (simplify_relational_operation_1): Simplify
9351         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
9352         as X == 0, and some symmetry related transformations.
9353         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
9354
9355 2006-02-25  Roger Sayle  <roger@eyesopen.com>
9356
9357         PR middle-end/23673
9358         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
9359         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
9360         symmetry related transformations.  Fold (X^C1) == C2 as
9361         X == (C1^C2).
9362
9363 2006-02-25  Juergen Weigert  <jw@suse.de>
9364         Richard Guenther  <rguenther@suse.de>
9365
9366         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
9367
9368 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
9369
9370         * combine.c (gen_lowpart_or_truncate): Call
9371         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
9372
9373 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
9374
9375         * doc/invoke.texi: Move -fopenmp description to "Options for
9376         Code Generation".
9377         Remove reference to -lgomp.
9378
9379 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
9380
9381         * doc/install.texi: Require GNU tar version 1.14.
9382
9383 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
9384
9385         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
9386         * doc/invoke.texi (C++ Dialect Options): Document
9387         -fno-use-cxa-get-exception-ptr.
9388         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9389         * configure: Regenerate.
9390         * c.opt (fuse-cxa-get-exception-ptr): New.
9391         * c-opts.c (c_common_handle_option): Handle
9392         OPT_fuse_cxa_get_exception_ptr.
9393         * c-common.c (flag_use_cxa_atexit): Update documentation.
9394         (flag_use_cxa_get_exception_ptr): New.
9395         * c-common.h (flag_use_cxa_get_exception_ptr): New.
9396         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9397         documentation.
9398         (C_COMMON_OVERRIDE_OPTIONS): New.
9399
9400 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9401
9402         PR middle-end/24952
9403         * combine.c (try_combine): Explicitly check whether GET_CODE is
9404         a SET or a CLOBBER, instead on checking that it isn't a USE.
9405
9406 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9407
9408         * fold-const.c (fold_comparison): New subroutine of fold_binary
9409         containing transformations common to both the equality and
9410         ordering relational operators, factored out of fold_binary.
9411         (fold_binary): Separate out the equality operators (EQ_EXPR
9412         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
9413         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
9414         transformations common to both.
9415         (fold_div_compare): Fix latent bugs in the previously unreachable
9416         LT_EXPR and GE_EXPR cases.
9417
9418 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
9419
9420         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
9421         decl libname for clog to __clog on AIX.
9422
9423         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
9424
9425 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
9426
9427         PR target/26453
9428         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
9429         output traceback table for thunks.  Localise rs6000_stack_info call.
9430
9431 2006-02-23  Roger Sayle  <roger@eyesopen.com>
9432             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9433
9434         * gthr-posix.h (__gthrw): Fix typo in comment.
9435
9436 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
9437
9438         * doc/cpp.texi (Character sets): Document that we do support
9439         input files to be in any character set.
9440
9441 2006-02-23  Jeff Law  <law@redhat.com>
9442
9443         * tree.h (PHI_ARG_NONZERO): Remove.
9444         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
9445         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
9446         node to the new node.
9447
9448         PR tree-optimization/26425
9449         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
9450         min/max, then assume its varying.
9451
9452 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9453
9454         PR rtl-optimization/26316
9455         * rtlanal.c (enum may_trap_p_flags): New.
9456         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
9457         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
9458         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
9459         (may_trap_after_code_motion_p): New function.
9460         * loop-invariant.c (find_identical_invariants): Fix dump formating.
9461         (find_invariant_insn): Use may_trap_after_code_motion_p.
9462         * rtl.h (may_trap_after_code_motion_p): Declare.
9463
9464 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9465
9466         * emit-rtl.c (immed_double_const): Cleanup.
9467
9468 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
9469
9470         Fix PR tree-optimization/26376
9471         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
9472         remove assert.
9473
9474 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9475
9476         PR middle-end/26412
9477         * gimplify.c (omp_add_variable): Guard variable size decl test with
9478         DECL_SIZE (decl) check.
9479
9480 2006-02-23  Richard Guenther  <rguenther@suse.de>
9481
9482         PR middle-end/26439
9483         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
9484         like aggregate types.
9485
9486 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9487
9488         * configure.ac: Add --with{,out}-long-double-128 configure option.
9489         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
9490         * configure: Rebuilt.
9491         * config.in: Rebuilt.
9492         * doc/install.texi (Options specification): Document
9493         --with-long-double-128.
9494
9495         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9496         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9497         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9498         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9499
9500 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
9501
9502         * config/s390/s390.c (override_options): Handle
9503         TARGET_DEFAULT_LONG_DOUBLE_128.
9504
9505         * config/alpha/alpha.c (override_options): Handle
9506         TARGET_DEFAULT_LONG_DOUBLE_128.
9507
9508         * config/sparc/sparc.c (sparc_override_options): Handle
9509         TARGET_DEFAULT_LONG_DOUBLE_128.
9510
9511 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
9512
9513         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9514         (real-install-headers-tar, real-install-headers-cpio)
9515         (real-install-headers-cp): New targets.
9516
9517 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
9518
9519         * tree.h (variable_section): Delete.
9520         * varasm.c (variable_section): Delete.
9521
9522 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
9523
9524         * install.texi: Add notes on install.texi2html.
9525         (Building in parallel): Do not use footnotes.
9526
9527 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
9528
9529         PR libgomp/26234
9530         * doc/install.texi (Configuration): Document --disable-libgomp.
9531
9532 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
9533
9534         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9535
9536 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9537
9538         * config/i386/sse.md (vec_extractv2df_1_sse): New.
9539         (vec_extractv2df_0_sse): New.
9540
9541 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9542
9543         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9544         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9545         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9546         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
9547         to the result of the expression.
9548         (def_cfa_1): Adjust.
9549         (frame_pointer_cfa_offset): Rename to...
9550         (frame_pointer_fb_offset): ... this.  Adjust all uses.
9551         (convert_cfa_to_loc_list): Rename to...
9552         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
9553         Pass it on to build_cfa_loc.
9554         (compute_frame_pointer_to_cfa_displacement): Rename to...
9555         (compute_frame_pointer_to_fb_displacement): ... this.  New
9556         offset parameter.  Use it in computation.
9557         (gen_subprogram_die): Compute cfa_fb_offset with the new
9558         macro, and use it to compute the fb loc list and the
9559         displacement.
9560
9561 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
9562
9563         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
9564         replaced with register_operand.
9565         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9566         non-DREG is expensive.
9567         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9568         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9569         involving memory.
9570
9571 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
9572
9573         * doc/install.texi2html: Use set -e.
9574
9575 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
9576
9577         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9578         (ASM_OUTPUT_SHARED_LOCAL): Delete.
9579         * doc/invoke.texi (-fshared-data): Delete.
9580         * common.opt (fshared-data): Delete.
9581         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9582         (assemble_static_space): Remove #if 0 code.
9583         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9584         (ASM_OUTPUT_SHARED_LOCAL): Poison.
9585         * config/cris/cris.h: Remove FIXME.
9586
9587 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
9588
9589         * doc/sourcebuild.texi (Front End Directory): No more double-colon
9590         hooks.
9591
9592 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
9593
9594         PR middle-end/26379
9595         * combine.c (simplify_shift_const_1): Disable nested shifts
9596         optimization for vector shifts.
9597
9598 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9599
9600         PR tree-optimization/26361
9601         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9602         of unsigned integer types.
9603
9604 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
9605
9606         * tree-chrec.c (eq_evolutions_p): New.
9607         * tree-chrec.h (eq_evolutions_p): Declared.
9608         * tree-data-ref.c: Fix formatting.
9609         (datadep_stats, dependence_stats): New.
9610         (gcd): Moved...
9611         (print_direction_vector): New.
9612         (dump_data_dependence_relation): Use print_direction_vector.
9613         (object_analysis, create_data_ref): Handle COMPONENT_REF.
9614         (compute_subscript_distance): Static.
9615         (initialize_data_dependence_relation): Static.  Get the number
9616         of loops surrounding the references from the callers, and initialize
9617         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
9618         base_object_differ_p analyzers.
9619         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9620         compute_overlap_steps_for_affine_1_2,
9621         analyze_subscript_affine_affine): Count the classified dependences.
9622         Print a message when a test failed.
9623         (can_use_analyze_subscript_affine_affine): New.
9624         (analyze_siv_subscript): Compute the data dependences on symbolic
9625         scevs that verify can_use_analyze_subscript_affine_affine.
9626         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9627         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9628         Handle symbolic scevs.
9629         (analyze_overlapping_iterations): Let symbolic affine scevs to be
9630         analyzed.
9631         (subscript_dependence_tester): Moved...
9632         (build_classic_dist_vector, build_classic_dir_vector): Don't use
9633         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
9634         DDR_SIZE_VECT instead of getting it in parameter.
9635         (subscript_dependence_tester): ... here.  Take as a parameter
9636         loop_nest_depth.  Call build_classic_dist_vector and
9637         build_classic_dir_vector.
9638         (compute_affine_dependence): Update subscript_dependence_tester
9639         parameters.  Update datadep_stats counters.  Call
9640         compute_subscript_distance.
9641         (compute_self_dependence): Save the dist and dir vectors.  Call
9642         compute_subscript_distance.
9643         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9644         (compute_all_dependences): Reorder parameters as they were before
9645         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
9646         compute_subscript_distance.  Update the use of
9647         compute_affine_dependence and initialize_data_dependence_relation.
9648         (find_data_references_in_loop): Handle COMPONENT_REF.
9649         (compute_data_dependences_for_loop): Initialize dependence_stats.
9650         Don't call build_classic_dist_vector and build_classic_dir_vector.
9651         Update the parameters of initialize_data_dependence_relation and
9652         compute_all_dependences.  Print the statistics from datadep_stats.
9653         (analyze_all_data_dependences): Static.  Not used until the pass for
9654         checking the data dependences is contributed.
9655         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9656         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9657         (initialize_data_dependence_relation, compute_affine_dependence,
9658         analyze_all_data_dependences, compute_subscript_distance): Removed.
9659         (print_direction_vector): New.
9660         * lambda.h (gcd): ... here.
9661         (lambda_vector_gcd): Moved here from gcd_vector.
9662         * lambda-code.c (gcd, gcd_vector): Removed.
9663         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
9664         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9665
9666 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
9667
9668         * ipa-type-escape.c: Tidy some comments and white space.
9669         * tree-ssa-operands.c: Likewise.
9670
9671 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
9672
9673         PR tree-opt/25879
9674         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9675         (dump_decl_name): Do not walk the decl tree chains.
9676         * tree-pass.h (TDF_CHAIN): Remove.
9677
9678 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
9679
9680         * Makefile.in (C): Remove
9681         (PROTO): Remove
9682         (.PHONY): Remove C and PROTO
9683
9684 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9685
9686         PR middle-end/26236
9687         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9688         deprecated CHAR_TYPE tree code.
9689
9690 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9691
9692         * configure.ac (target_list): Add install-info, dvi, html.
9693         * configure: Regenerate.
9694
9695         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9696         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9697         treelang/Make-lang.in: Do not use double-colon rules.
9698
9699 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
9700
9701         * tree.h (struct tree_memory_tag): Add is_used_alone member.
9702         (TMT_USED_ALONE): New macro.
9703         * tree-pass.h (PROP_tmt_usage): New property.
9704         (TODO_update_tmt_usage): New todo.
9705         * tree-ssa-alias.c (updating_used_alone): New variable.
9706         (recalculate_used_alone): New function.
9707         (compute_may_aliases): Set updating_used_alone, call
9708         recalculate_used_alone.
9709         * tree-sra.c (pass_sra): Note that this pass destroys
9710         PROP_tmt_usage, and add TODO_update_tmt_usage.
9711         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9712         * tree-flow.h (updating_used_alone): Prototype.
9713         (recalculate_used_alone): Ditto.
9714         * passes.c (execute_todo): Add code to set updating_used_alone,
9715         and call recalculate.
9716         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9717         for clobber if used alone, and add assert to verify used_alone
9718         status.
9719
9720 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
9721
9722         * config/s390/s390.c (legitimize_pic_address): Assertions checking
9723         for non tls symbols added.
9724         (legitimize_address): Do nothing for PLUS expressions if one of the
9725         addends is a tls symbol reference.
9726
9727 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9728
9729         PR bootstrap/25476
9730
9731         * Makefile.in (LDFLAGS): Define from autoconf substitution.
9732
9733         * Makefile.in (BOOTSTRAPPING): New.
9734         (quickstrap): New definition if BOOTSTRAPPING=yes.
9735
9736         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9737         * configure.ac: Substitute all_selected_languages with the languages
9738         that were configured.  For all the other variables except
9739         lang_specs_files, include all the languages in the tree.
9740         * configure: Regenerate.
9741
9742         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9743         if there is one.  Run the commands to run fixincludes in the same
9744         subshell.
9745
9746         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9747         * doc/install.texi: Document exact conventions for searching target tools.
9748         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
9749         something more about building an Ada cross-compiler.  Don't list GNU Make
9750         requirements which affect all platforms.
9751
9752 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9753
9754         PR middle-end/19543
9755         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9756         only equivalent if the have both the same mode and precision.
9757
9758 2006-02-20  Ben Elliston  <bje@au.ibm.com>
9759
9760         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9761
9762 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9763             Steven Bosscher  <stevenb.gcc@gmail.com>
9764
9765         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9766         constant pool references to identify stack mode constants.
9767         * rtlanal.c (constant_pool_constant_p): New predicate to check
9768         whether operand is a floating point constant in the pool.
9769         * rtl.h (constant_pool_constant_p): Prototype here.
9770         * loop.c (scan_loop): Avoid hoisting constants from the constant
9771         pool on STACK_REGS targets.
9772         (load_mems): Likewise.
9773         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9774         loads into x87 registers expensive in terms of register pressure.
9775
9776 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9777
9778         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9779         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9780
9781 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
9782
9783         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9784         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9785
9786 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
9787
9788         * doc/invoke.texi: Document -fipa-pta.
9789         * common.opt: Add ipa-pta option.
9790         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9791         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9792         (do_ds_constraint): Ditto.
9793         (get_constraint_for): Only add to referenced_vars if
9794         referenced_vars exists.
9795         (insert_into_field_list): Rewrite to do this unsorted.
9796         (insert_into_field_list_sorted): Rename old insert_into_field_list
9797         to this.
9798         (create_function_info_for): Use insert_into_field_list_sorted.
9799         (create_variable_info_for): Rewrite so it uses unsorted version,
9800         since the field list is sorted.
9801         (intra_create_variable_infos): Only add to referenced_vars if
9802         referenced_vars exists.
9803         (ipa_pta_execute): Init heapvars, and delete when done.
9804         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9805
9806 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9807
9808         * doc/install.texi: Add missing `@samp'.
9809
9810 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
9811
9812         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9813         Use the arguments.
9814
9815 2006-02-18  Mark Wielaard  <mark@klomp.org>
9816
9817         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9818         who added new 4.1 features, bug fixes and integration support.
9819
9820 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
9821
9822         PR target/26350
9823         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
9824         MEM for ABI_V4 pic.
9825
9826 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
9827
9828         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
9829         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
9830         (copy_insn_1): Likewise.  Don't copy each field individually.
9831         Reindent.
9832         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
9833         of RTX_SIZE.
9834         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
9835         * rtl.c (rtx_size): Rename variable to...
9836         (rtx_code_size): ...this.
9837         (rtx_size): New function.
9838         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
9839         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
9840         Reindent.
9841         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
9842         * rtl.h (rtx_code_size): New variable.
9843         (rtx_size): Change from a variable to a function.
9844         (RTX_SIZE): Rename to...
9845         (RTX_CODE_SIZE): ...this.
9846
9847         PR target/9703
9848         PR tree-optimization/17106
9849         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
9850         (Anchored Addresses): New section.
9851         * doc/invoke.texi (-fsection-anchors): Document.
9852         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
9853         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
9854         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
9855         * hooks.c (hook_bool_mode_rtx_false): New function.
9856         * hooks.h (hook_bool_mode_rtx_false): Declare.
9857         * gengtype.c (create_optional_field): New function.
9858         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
9859         SYMBOL_REF_IN_BLOCK_P is true.
9860         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
9861         (min_anchor_offset, max_anchor_offset): Likewise.
9862         (use_anchors_for_symbol_p): New hook.
9863         * toplev.c (compile_file): Call output_object_blocks.
9864         (target_supports_section_anchors_p): New function.
9865         (process_options): Check that -fsection-anchors is only used on
9866         targets that support it and when -funit-at-a-time is in effect.
9867         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
9868         if the decl doesn't have one.
9869         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
9870         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
9871         of force_const_mem through use_anchored_address.
9872         (expand_expr_constant): New function.
9873         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
9874         calling expand_expr for INDIRECT_REF.
9875         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
9876         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
9877         * expr.h (use_anchored_address): Declare.
9878         * loop-unroll.c: Don't declare rtx vectors here.
9879         * explow.c: Include output.h.
9880         (validize_mem): Call use_anchored_address.
9881         (use_anchored_address): New function.
9882         * common.opt (-fsection-anchors): New switch.
9883         * varasm.c (object_block_htab, anchor_labelno): New variables.
9884         (hash_section, object_block_entry_eq, object_block_entry_hash)
9885         (use_object_blocks_p, get_block_for_section, create_block_symbol)
9886         (use_blocks_for_decl_p, change_symbol_section): New functions.
9887         (get_variable_section): New function, split out from assemble_variable.
9888         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
9889         use_blocks_for_decl_p say so.  Use change_symbol_section if the
9890         symbol has already been created.
9891         (assemble_variable_contents): New function, split out from...
9892         (assemble_variable): ...here.  Don't output any code for
9893         block symbols; just pass them to place_block_symbol.
9894         Use get_variable_section and assemble_variable_contents.
9895         (get_constant_alignment, get_constant_section, get_constant_size): New
9896         functions, split from output_constant_def_contents.
9897         (build_constant_desc): Create a block symbol if use_object_blocks_p
9898         says so.  Or into SYMBOL_REF_FLAGS.
9899         (assemble_constant_contents): New function, split from...
9900         (output_constant_def_contents): ...here.  Don't output any code
9901         for block symbols; just pass them to place_section_symbol.
9902         Use get_constant_section and get_constant_alignment.
9903         (force_const_mem): Create a block symbol if use_object_blocks_p and
9904         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
9905         (output_constant_pool_1): Add an explicit alignment argument.
9906         Don't switch sections here.
9907         (output_constant_pool): Adjust call to output_constant_pool_1.
9908         Switch sections here instead.  Don't output anything for block symbols;
9909         just pass them to place_block_symbol.
9910         (init_varasm_once): Initialize object_block_htab.
9911         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
9912         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
9913         (place_block_symbol, get_section_anchor, output_object_block)
9914         (output_object_block_htab, output_object_blocks): New functions.
9915         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
9916         (TARGET_ASM_OUT): Include it.
9917         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
9918         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
9919         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
9920         (TARGET_INITIALIZER): Include them.
9921         * rtl.c (rtl_check_failed_block_symbol): New function.
9922         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
9923         (block_symbol, object_block): New structures.
9924         (rtx_def): Add a block_symbol field to the union.
9925         (BLOCK_SYMBOL_CHECK): New macro.
9926         (rtl_check_failed_block_symbol): Declare.
9927         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
9928         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
9929         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
9930         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
9931         * output.h (output_section_symbols): Declare.
9932         (object_block): Name structure.
9933         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
9934         (default_use_anchors_for_symbol_p): Declare.
9935         * Makefile.in (RTL_BASE_H): Add vec.h.
9936         (explow.o): Depend on output.h.
9937         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
9938         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
9939         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9940         (rs6000_use_blocks_for_constant_p): New function.
9941
9942 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9943
9944         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
9945
9946 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
9947
9948         PR tree-opt/25680
9949         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
9950         IMAGPART_EXPR.
9951
9952 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
9953
9954         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
9955         is_aliased.
9956         Update all users.
9957
9958 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
9959
9960         PR middle-end/26334
9961         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
9962         instead of DECL_REGISTER.
9963
9964 2006-02-18  Olivier Hainque  <hainque@adacore.com>
9965
9966         PR ada/13408
9967         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
9968
9969 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
9970
9971         PR target/24837
9972         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
9973         * opth-gen.awk: Handle Var and InverseMask together.
9974         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
9975         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
9976         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
9977         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
9978         used together.
9979         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9980         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9981         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
9982         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9983         LINUX_DYNAMIC_LINKER): Define.
9984         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
9985         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
9986         TARGET_GLIBC.
9987         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9988         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
9989         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9990         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9991         (TARGET_C99_FUNCTIONS): Don't define.
9992         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
9993         GLIBC_DYNAMIC_LINKER.
9994         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
9995         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
9996         GLIBC_DYNAMIC_LINKER64): Define.
9997         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9998         LINUX_DYNAMIC_LINKER64.
9999         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10000         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10001         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
10002         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10003         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10004         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10005         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
10006         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
10007         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
10008         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
10009         and LINUX_DYNAMIC_LINKER32.
10010         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10011         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10012         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
10013         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10014         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
10015         TARGET_GLIBC.
10016         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
10017         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
10018         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10019         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10020         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
10021         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
10022         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
10023         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
10024         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10025         LINUX_DYNAMIC_LINKER): Define.
10026         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
10027         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
10028         GLIBC_DYNAMIC_LINKER64): Define.
10029         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
10030         LINUX_DYNAMIC_LINKER64.
10031         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10032         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10033         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
10034         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10035         LINUX_DYNAMIC_LINKER): Define.
10036         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10037         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
10038         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
10039         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
10040         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
10041         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
10042         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
10043         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
10044         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
10045         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10046         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10047         * doc/invoke.texi (-muclibc): Remove caveat about supported
10048         targets.
10049
10050 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
10051
10052         * doc/cpp.texi (__TIMESTAMP__): Document.
10053
10054 2006-02-17  Roger Sayle  <roger@eyesopen.com>
10055
10056         PR middle-end/25600
10057         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
10058         C is one less than the width of X (and related transformations).
10059         * simplify-rtx.c (simplify_unary_operation_1): Transform
10060         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
10061         depending on STORE_FLAG_VALUE, were C is one less then the
10062         width of X.
10063
10064 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
10065
10066         Fix PR tree-optimization/26341
10067         * tree-ssa-operands.c (add_virtual_operand): Remove assert
10068         about NAME_MEMORY_TAG's.
10069
10070 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10071
10072         PR target/26255
10073         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
10074         with hardware float support, and software float support.  Add fcpy
10075         alternative to hardware patterns.  Add alternatives to copy between
10076         general and floating-point registers to the 32-bit pattern.
10077         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
10078         secondary reload to load a QI or HI mode constant into a floating
10079         point register.
10080         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
10081         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
10082
10083 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10084
10085         PR target/26272
10086         * config/rs6000/darwin.md (load_macho_picbase_si): Add
10087         pc to the pattern.
10088         (load_macho_picbase_di): Likewise.
10089
10090 2006-02-16  Jeff Law  <law@redhat.com>
10091
10092         * tree-vrp.c (set_value_range_to_nonnegative): New function.
10093         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
10094         (ssa_name_nonzero_p): Likewise.
10095         (get_value_range): Return NULL if VRP is not running.
10096         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
10097         VRP routines do not discover a range.
10098         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
10099         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
10100         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
10101         (tree_expr_nonnegative_p): Similarly.
10102         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
10103         (restore_nonzero_vars_to_original_value): Remove.
10104         (unsafe_associative_fp_binop): Remove.
10105         (tree_ssa_dominator_optimize): Remove initialization and
10106         finalization of nonzero_vars and nonzero_vars_stack.
10107         (dom_opt_initialize_block): No longer push marker on
10108         nonzero_vars_stack.
10109         (dom_opt_finalize_block): No longer call
10110         restore_nonzero_vars_to_original_value.
10111         (record_equivalences_from_phis): No longer look for
10112         nonzero PHI arguments.
10113         (cprop_into_successor_phis): No longer propagate nonzero
10114         property into PHI arguments.  Lose unused argument.  Caller
10115         updated.
10116         (record_equivalences_from_stmt): No longer record nonzero
10117         values for SSA_NAMEs.
10118         (lookup_avail_expr): No longer use nonzero_vars.
10119
10120         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
10121         for sizetype when sizetype is unsigned.
10122
10123 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
10124
10125         PR rtl-optimization/25603
10126         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
10127         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
10128         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
10129         with new meaning of SETS.
10130
10131 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
10132
10133         PR target/20353
10134         PR target/24578
10135         PR target/24837
10136         * config/linux.opt: New file.
10137         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10138         LINUX_DYNAMIC_LINKER): Define.
10139         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
10140         * config.gcc (*-*-linux*): Define extra_options.
10141         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
10142         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
10143         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
10144         GLIBC_DYNAMIC_LINKER.
10145         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
10146         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10147         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10148         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10149         * doc/invoke.texi (GNU/Linux Options): New section.
10150
10151 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10152
10153         * config/sparc/sparc.md (setjmp): Rewrite.
10154         (setjmp_32): Delete.
10155         (setjmp_64): Likewise.
10156
10157 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
10158
10159         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
10160          previous change.
10161
10162 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
10163
10164         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
10165         read-write uses.
10166
10167 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
10168
10169         PR rtl-optimization/26296
10170         * Makefile.in (loop-invariant.c): Add except.h dependency.
10171         * loop-invariant.c: Include except.h.
10172         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
10173
10174 2005-02-16  Paul Brook  <paul@codesourcery.com>
10175
10176         * reload1.c (emit_reload_insns): Invalidate dead input registers used
10177         for reloads.
10178
10179 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10180
10181         PR rtl-optimization/25636
10182         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
10183         when deciding whether an insn is an initializing insn.
10184
10185 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
10186
10187         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
10188         (tree_code_size): Ditto.
10189         * tree.h (struct tree_memory_tag): Remove parent_var.
10190         (struct tree_struct_field_tag): New.
10191         (SFT_OFFSET): New.
10192         (SFT_SIZE): New.
10193         (union tree_node): Add sft member.
10194         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
10195         specially here.
10196         (create_sft): Add size and offset argument, set SFT_OFFSET and
10197         SFT_SIZE.
10198         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
10199         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
10200         * tree-flow-inline.h (get_subvar_at): Update for
10201         SFT_OFFSET/SFT_SIZE.
10202         (var_can_have_subvars): Ditto.
10203         (overlap_subvar): Ditto.
10204         * print-tree.c (print_node): Print out interesting things for
10205         SFT's.
10206         * tree-flow.h (struct subvar): Remove offset and size members.
10207         * tree-ssa-operands.c (get_expr_operands): Update for
10208         get_indirect_ref_operands changes.
10209         (get_indirect_ref_operands): Call add_virtual_operand instead of
10210         add_stmt_operand.  Only recurse on base var if requested.
10211         (access_can_touch_variable): New function.
10212         (add_stmt_operand): Split virtual operand handling into ...
10213         (add_virtual_operand): Here.  Add offset, size, and for_clobber
10214         arguments.  Prune alias sets.
10215         (add_call_clobber_ops): Call add_virtual_operand.
10216
10217 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
10218
10219         PR middle-end/26300
10220         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
10221
10222         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
10223         than TREE_CODE as index into omp_clause_num_ops array.
10224
10225 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
10226
10227         PR rtl-optimization/26184
10228         * modulo-sched.c (generate_reg_moves): Free bitmap vector
10229         uses_of_defs.
10230         * modulo-sched.c (sms_schedule): Free g_arr pointer.
10231         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
10232         must_precede, must_follow and tobe_scheduled.
10233
10234         PR other/26147
10235         * opts.c (common_handle_option): Free new_option pointer.
10236         * df-core.c (df_analyze): Free postorder pointer.
10237
10238 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10239
10240         * Makefile.in: Fix the examples about the use of stamps
10241
10242 2006-02-15  Michael Matz  <matz@suse.de>
10243
10244         PR middle-end/22275
10245
10246         * stor-layout.c (layout_decl): Zero-width bitfields aren't
10247         influenced by maximum_field_alignment or DECL_PACKED.
10248         (update_alignment_for_field): Ditto.
10249         (place_field): Ditto.
10250         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
10251         this behaviour.
10252
10253 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
10254
10255         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
10256         (debug_flow_info): Pass it.
10257         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
10258         * bb-reorder.c (reorder_basic_blocks): Likewise.
10259         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
10260         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
10261         * flow.c (life_analysis, recompute_reg_usage): Likewise.
10262         * gcse.c (gcse_main, bypass_jumps): Likewise.
10263         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
10264         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
10265         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
10266         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
10267         * rtl.h (dump_flow_info): Adjust prototype.
10268         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
10269         * var-tracking.c (variable_tracking_main): Likewise.
10270         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
10271         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
10272         options.
10273
10274 2006-02-15  Marcin Dalecki <martin@dalecki.de>
10275
10276         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
10277         construction.
10278
10279 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
10280
10281         PR tree-optimization/26209
10282         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
10283         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
10284         eh edges.
10285         * tree-cfg.c (replace_uses_by): Do not alter cfg.
10286
10287 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10288
10289         PR middle-end/23670
10290         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
10291         (X,Y) and the corresponding symmetry related transformations.
10292         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
10293         (X,Y) and its symmetry related transformations.
10294
10295 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10296
10297         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
10298         and GEU.
10299
10300 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
10301
10302         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
10303
10304 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10305
10306         PR bootstrap/26053
10307         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
10308         support COMDAT group.
10309         * configure: Regenerate.
10310
10311 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10312
10313         PR middle-end/26279
10314         PR middle-end/26280
10315         PR middle-end/26283
10316         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
10317
10318 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
10319
10320         Fix PR tree-optimization/26260
10321
10322         * doc/invoke.texi (max-fields-for-field-sensitive): Document
10323         param.
10324         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
10325         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
10326         * tree-ssa-structalias.c (create_variable_info_for): Use
10327         MAX_FIELDS_FOR_FIELD_SENSITIVE.
10328
10329 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
10330
10331         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
10332         Document.
10333         * tree-ssa-loop-niter.c (number_of_iterations_ne,
10334         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
10335         of the ending condition.
10336         * tree-ssa-loop-manip.c: Include params.h.
10337         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
10338         tree_unroll_loop): New functions.
10339         * tree-pass.h (pass_loop_prefetch): Declare.
10340         * loop.c (rest_of_handle_loop_optimize): Test for
10341         -fprefetch-loop-arrays-rtl.
10342         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
10343         * timevar.def (TV_TREE_PREFETCH): New timevar.
10344         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
10345         pass_loop_prefetch): New.
10346         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
10347         (cleanup_tree_cfg_loop): Call scev_reset.
10348         * common.opt (fprefetch-loop-arrays-rtl): Add.
10349         * tree-ssa-loop-prefetch.c: New file.
10350         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
10351         (new_temp_expr_table): Initialize expr_vars.
10352         (free_temp_expr_table): Cleanup expr_vars.
10353         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
10354         expressions from being merged into one.
10355         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
10356         (struct tree_niter_desc): Add control, bound and cmp fields.
10357         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
10358         Declare.
10359         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
10360         (tree-cfgcleanup.o): Add SCEV_H dependency.
10361         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
10362         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
10363
10364 2006-02-14  Richard Guenther  <rguenther@suse.de>
10365
10366         PR tree-optimization/26258
10367         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
10368         in PHI argument processing.
10369
10370 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
10371
10372         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
10373         new expression in the requested machine mode.
10374
10375 2006-02-13  Roger Sayle  <roger@eyesopen.com>
10376
10377         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
10378         directly, instead let do_compare_rtx_and_jump handle this for us.
10379         * expr.c (expand_expr_real_1): Likewise.
10380         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
10381         before do_jump_by_parts_greater.
10382         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
10383         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
10384
10385 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10386
10387         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
10388
10389 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10390
10391         PR rtl-optimization/26235
10392         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
10393         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
10394         format.
10395
10396 2006-02-13  Jeff Law  <law@redhat.com>
10397
10398         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
10399         TRUTH_XOR_EPR.
10400
10401 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
10402
10403         PR middle-end/26092
10404         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
10405         twice if decl is a builtin.  When trying again, call get_callee_fndecl
10406         first to verify it is still a builtin.
10407
10408 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
10409
10410         * dwarf2out.c (base_type_die): Don't add AT_name here.
10411         (subrange_type_die): Don't add AT_name here.
10412         (modified_type_die): Rearrange code flow.  Do add AT_name here.
10413
10414 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10415
10416         PR rtl-optimization/26247
10417         PR rtl-optimization/26248
10418         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
10419
10420 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
10421
10422         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
10423         * config/fixtfdi.c: Likewise.
10424         * config/fixunstfdi.c: Likewise.
10425         * config/floatditf.c: Likewise.
10426
10427 2006-02-13  Roger Sayle  <roger@eyesopen.com>
10428
10429         PR middle-end/24427
10430         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
10431         into (X,C2) if C1 is a subset of the bits of C2.  Transform
10432         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
10433         (X&(C1&~C2))|C2.
10434         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
10435
10436 2006-02-13  Josh Conner  <jconner@apple.com>
10437
10438         PR target/25376
10439         * varasm.c (function_section): Check for section name before
10440         calling select_section on targets that define
10441         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
10442         unlikely_text_section instead of hot_function_section if
10443         first_function_block_is_cold.
10444
10445 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
10446
10447         PR middle-end/25335
10448         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
10449
10450 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10451
10452         PR rtl-optimization/26222
10453         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
10454         after tree->rtl expansion.
10455         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
10456         before passing it to emit_move_insn.
10457
10458 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10459
10460         * doc/invoke.texi (-Write-strings): Document that it is enabled by
10461         default.
10462         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
10463         Clarify documentation.
10464         * c-common.h (warn_write_strings): Remove.
10465         * c-common.c (warn_write_strings): Likewise.
10466         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
10467         default for C++.
10468
10469 2006-02-12  Roger Sayle  <roger@eyesopen.com>
10470
10471         PR middle-end/25724
10472         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
10473         (do_jump_parts_zero_rtx): New function renamed from
10474         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
10475         (do_jump_parts_equality_rtx): New function split out from
10476         do_jump_parts_equality.  Old implementation renamed as above.
10477         Call do_jump_parts_zero_rtx if either operand is zero.
10478         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
10479         do all of the heavy lifting.
10480         (do_compare_rtx_and_jump): Handle multi-word comparisons by
10481         calling either do_jump_by_parts_greater_rtx or
10482         do_jump_by_parts_equality_rtx.
10483         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
10484         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
10485         moved to do_compare_rtx_and_jump, call it directly.
10486         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
10487         mode argument.  Call do_compare_rtx_and_jump.
10488         (emit_case_nodes): Update calls to do_jump_if_equal.
10489
10490 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10491
10492         PR rtl-optimization/26225
10493         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10494
10495 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10496
10497         PR rtl-optimization/26232
10498         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10499
10500 2006-02-11  Jason Merrill  <jason@redhat.com>
10501
10502         PR tree-opt/24365
10503         * tree-inline.c (declare_return_variable): Just don't use the
10504         modify target if it's a gimple complex reg and the return slot
10505         isn't.
10506
10507 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10508
10509         * doc/contrib.texi: Update my entry.
10510
10511 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
10512
10513         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10514
10515 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
10516
10517         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10518         expensive.
10519
10520 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
10521
10522         * doc/invoke.texi (-floop-optimize2): Removed.
10523         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10524         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10525         Test flag_branch_on_count_reg only if HAVE_doloop_end.
10526         * common.opt (floop-optimize2): Removed.
10527         (fmove-loop-invariants): Enabled by default.
10528
10529 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
10530
10531         * tree-if-conv.c (combine_blocks): Free the result of
10532         get_loop_exit_edges.
10533
10534 2006-02-10  Jeff Law  <law@redhat.com>
10535
10536         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10537
10538         PR tree-optimization/26213
10539         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10540         loop trying to follow SSA_NAME_VALUE chains.
10541
10542 2006-02-10  Richard Guenther  <rguenther@suse.de>
10543
10544         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10545         deal with structures that end in implicitly variable sized arrays.
10546
10547 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10548
10549         PR rtl-optimization/24762
10550         * df-scan.c (df_bb_refs_record): Record correct registers defined on
10551         eh edges.
10552
10553 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10554
10555         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10556         (struct ivopts_data): Add regs_used field.
10557         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10558         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10559         instead of loop_data->regs_used;
10560         (free_loop_data): Do not free aux fields for loops.
10561         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10562         and tree_ssa_iv_optimize_finalize.
10563
10564 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10565
10566         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10567
10568 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10569
10570         PR target/26141
10571         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10572         computing the effective result type.
10573
10574 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10575
10576         PR inline-asm/16194
10577         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10578         (tree_overlaps_hard_reg_set): Declare.
10579         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
10580         type and signature to match function type expected by walk_tree.
10581         (tree_overlaps_hard_reg_set): New function.
10582         (decl_conflicts_with_clobbers_p): Rename to:
10583         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
10584         Use tree_overlaps_hard_reg_set.  Changed caller.
10585         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10586         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10587         * cris.c (cris_md_asm_clobbers): Likewise.
10588
10589 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
10590
10591         * reload1.c (emit_input_reload_insns): Delete code that tries to
10592         inherit using find_equiv_reg.
10593
10594 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10595
10596         * c-common.h (flag_const_strings): Don't declare.
10597         * c-common.c (flag_const_strings): Remove.
10598         * c.opt (fconst_strings): Remove.
10599         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10600         <OPT_Wwrite_strings>: Don't set flag_const_strings.
10601         (c_common_init_options): Don't set flag_const_strings.
10602         * doc/invoke.texi (-fno-const-strings): Remove documentation.
10603
10604 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
10605
10606         * arm.md (tlobits_cbranch): New pattern.
10607         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10608         testing a single bit.
10609
10610 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10611
10612         PR tree-opt/26179
10613         * tree-ssa-pre.c (create_component_ref_by_pieces):
10614         Handle RETURN_DECL like VAR_DECL.
10615
10616 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10617
10618         PR middle-end/26134
10619         * fold-const.c (fold_indirect_ref_1): Fold
10620         "*(foo *)&complexfoo" to "__real__ complexfoo"
10621         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10622
10623 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10624
10625         * tree-flow-inline.h (var_can_have_subvars):
10626         Volatile variables should not have subvariables.
10627
10628 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
10629
10630         PR 26180
10631         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10632         multiplying unsigned values.
10633         Tidy comments.
10634
10635 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10636
10637         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10638
10639 2006-02-08  Jason Merrill  <jason@redhat.com>
10640
10641         PR c++/25979
10642         * tree.def: Elaborate on difference from MODIFY_EXPR.
10643         * doc/c-tree.texi (INIT_EXPR): Likewise.
10644         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10645         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10646         (gimplify_target_expr): Likewise.
10647         (gimplify_cond_expr): Remove target handling.
10648         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10649         (gimplify_expr): Clobber it here.
10650         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10651         Do return slot optimization if we have an INIT_EXPR.
10652
10653         PR tree-opt/24365
10654         * tree-inline.c (declare_return_variable): Also clear
10655         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10656
10657         PR c++/16405
10658         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10659
10660         PR middle-end/22439
10661         * gimplify.c (gimplify_one_sizepos): Fix typo.
10662
10663 2006-02-08  Jeff Law  <law@redhat.com>
10664
10665         PR tree-optimization/21417
10666         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10667         across a backedge if the control statement at the end of the
10668         block is data dependent on other statements in the same block.
10669         (record_temporary_equivalences_from_stmts): Remove over-conservative
10670         test for threading across backedges.
10671
10672         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10673         control statement, handle all three special cases in the same
10674         manner as they all have the same desired solution.  No longer
10675         special case edge flag updating when the post dominator is
10676         the exit block.
10677
10678 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10679
10680         * tree.def (CHAR_TYPE): Remove.
10681         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10682         * dwarf2out.c (base_type_die, is_base_type): Likewise.
10683         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10684         (gen_string_type_die): Delete unreachable function.
10685
10686         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10687         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10688         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10689         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10690         * builtins.c (type_to_class): Likewise.
10691         * fold-const.c (fold_convert, build_range_check,
10692         merge_ranges): Likewise.
10693         * expr.c (count_type_elements): Likewise.
10694         * c-pretty-print.c (pp_c_type_specifier): Likewise.
10695         * stor-layout.c (layout_type): Likewise.
10696         * ipa-type-escape.c (type_to_consider): Likewise.
10697         * gimplify.c (omp_firstprivatize_type_sizes,
10698         gimplify_type_sizes): Likewise.
10699         * explow.c (promote_mode): Likewise.
10700         * tree-sra.c (is_sra_scalar_type): Likewise.
10701         * varasm.c (output_constant): Likewise.
10702         * tree-inline.c (remap_type_1): Likewise.
10703         * convert.c (convert_to_pointer, convert_to_real,
10704         convert_to_integer, convert_to_complex): Likewise.
10705
10706 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
10707
10708         * df-scan.c (df_def_record_1): A set destination may
10709         be a parallel regardless of mode.
10710
10711 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10712
10713         PR target/22209
10714         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10715         * config/mips/_tilib.c: Remove.
10716         * config/fixtfdi.c: New libgcc source file.
10717         * config/fixunstfdi.c: New source file.
10718         * config/floatditf.c: New source file.
10719         * config/floatunditf.c: New souce file.
10720         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10721         files above instead of config/mips/_tilib.c.
10722         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10723
10724 2006-02-08  Jeff Law  <law@redhat.com>
10725
10726         PR tree-optimization/26169
10727         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10728         threading jumps.
10729
10730 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
10731
10732         * df.h (DF_REG_SIZE): Return the length of the initialized
10733         part of the array.
10734
10735 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
10736
10737         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10738         __muldf3): Return a correctly signed zero.
10739
10740 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
10741
10742         * passes.c (register_one_dump_file): Accept the current properties
10743         instead of pass number.  Adjust call to dump_register.  Remove
10744         duplicated code.
10745         (register_dump_files): Now a wrapper around...
10746         (register_dump_files_1): ... this one.  Do not modify the pass
10747         structure.
10748         (next_pass_1): Cosmetic fix.
10749         (execute_todo): Keep second parameter only.  Use curr_properties
10750         instead of fetching it from the pass structure.  Check and set
10751         last_verified.
10752         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
10753         instead of fetching it from the pass structure.  Fix calls to
10754         execute_todo.  Update curr_properties and initialize .vcg RTL dump
10755         after running the pass.  Reset last_verified.
10756         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
10757         at the beginning.
10758         (FIRST_AUTO_NUMBERED_DUMP): New.
10759         (dump_register): Remove "num" parameter, assign it within the
10760         function.
10761         (get_dump_file_name): Modify template for dumps.
10762         * tree-dump.h (dump_register): Adjust prototype.
10763         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10764         (PROP_trees): Add PROP_gimple_lomp.
10765         (TODO_set_props): New.
10766         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10767         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10768         * cfgexpand.c (pass_expand): Destroy PROP_trees.
10769
10770 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
10771
10772         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10773         (sparc64-*-linux*): Likewise.
10774         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10775         * config/sparc/t-linux: New file.
10776         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10777         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10778         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10779         -m32 -mlong-double-128.
10780
10781         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10782         * config/alpha/t-linux: New file.
10783         * config/alpha/libgcc-alpha-ldbl.ver: New file.
10784
10785         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10786         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10787         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10788         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10789         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10790         (CPP_ARCH32_SPEC): Remove.
10791
10792 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
10793
10794         PR tree-optimization/26145
10795         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10796         bbs pointer.
10797
10798 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10799
10800         PR target/26109
10801         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10802         >= 240000 when generating code for SOM runtime.
10803         (output_indirect_call): Don't use "b,l" instruction for indirect calls
10804         to $$dyncall when generating code for SOM runtime..
10805
10806 2006-02-07  Dirk Mueller  <dmueller@suse.com>
10807
10808         PR c++/18150
10809         * doc/invoke.texi (-Wsequence-point): Update documentation
10810         that -Wsequence-point is implemented for C++ as well.
10811
10812 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10813
10814         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10815         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10816         (LIB_SPEC): Likewise.
10817         * doc/invoke.texi (SPARC options): Document -pthread.
10818
10819 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
10820
10821         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
10822         PIC addresses.
10823
10824 2006-02-07  Roger Sayle  <roger@eyesopen.com>
10825
10826         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
10827         Correct comment describing BOOLEAN_TYPE.
10828
10829 2006-02-07  Dirk Mueller  <dmueller@suse.com>
10830
10831         * c.opt: C++ frontend supports -Wdiv-by-zero.
10832         * c-opts.c (c_common_handle_option): Remove dead case.
10833
10834 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10835
10836         * configure.ac (TLS assembler check): Do not enable TLS by
10837         default on SPARC/Solaris before version 10.
10838         * configure: Regenerate.
10839
10840 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
10841
10842         * doc/invoke.texi (xl-compat): Document conversion and support
10843         routine names.
10844
10845 2006-02-07  Jeff Law  <law@redhat.com>
10846
10847         * tree-vrp.c (find_conditional_asserts): Update comments.
10848         (simplify_stmt_for_jump_threading): New.
10849         (identify_jump_threads, finalize_jump_threads): New.
10850         (vrp_finalize): Call identify_jump_threads.
10851         (execute_vrp): Call finalize_jump_threads.
10852         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
10853         (vrp_element, vrp_data, vrp_element_p): Remove.
10854         (vrp_hash_elt, vrp_variables_stack): Remove.
10855         (vrp_hash, vrp_eq, record_range): Remove.
10856         (simplify_cond_and_lookup_avail_expr): Remove.
10857         (extract_range_from_cond): Remove.
10858         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
10859         (simplify_stmt_for_jump_threading): New.
10860         (dom_thread_across_edge): New wrapper.
10861         (tree_ssa_dominator_optimize): No longer initialize or
10862         finalize any of the VRP datastructures.  Remove iteration
10863         step and simplify as a result of removal of iteration step.
10864         (pass_dominator): Perform a cfg cleanup after DOM.
10865         (dom_opt_finalize_block): Use the new common routines
10866         for threading jumps.  Simplify stack management slightly.
10867         No longer need to unwind VRP state.
10868         (record_equivalences_from_incoming_edge): No longer record
10869         VRP information.
10870         (eliminate_redundant_computations): No longer call
10871         simplify_cond_and_lookup_avail_expr.
10872         * tree-flow.h (potentially_threadable_block): Prototype.
10873         (thread_across_edge): Likewise.
10874         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
10875         (tree-ssa-threadedge.o): Add dependencies.
10876         * tree-ssa-threadedge.c: New file.
10877         * passes.c (init_optimization_passes): Merge PHIs before
10878         calling VRP.  Run VRP again late in the SSA optimization pipeline.
10879
10880 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10881
10882         * df-core.c (df_set_blocks): Do not dereference function pointers.
10883         (df_finish1): Likewise.
10884         (df_hybrid_search_forward): Likewise.
10885         (df_hybrid_search_backward): Likewise.
10886         (df_iterative_dataflow): Likewise.
10887         (df_analyze_problem): Likewise.
10888         (df_compact_blocks): Likewise.
10889         (df_dump): Likewise.
10890         * df-scan.c (df_rescan_blocks): Likewise.
10891         (df_record_entry_block_defs): Likewise.
10892
10893         * genconditions.c (write_conditions): Guard the definition of
10894         'insn_conditions' with the check on GCC version.
10895         (write_writer): Guard the traversal 'insn_conditions' with
10896         the check on GCC version.
10897
10898 2006-02-07  Richard Guenther  <rguenther@suse.de>
10899
10900         PR c++/26140
10901         Revert
10902         2006-01-30  Richard Guenther  <rguenther@suse.de>
10903         PR c++/23372
10904         * gimplify.c (gimplify_target_expr): Handle easy cases
10905         without creating a temporary.
10906
10907 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
10908
10909         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
10910         use of float in probability computations.  Use edge probabilities
10911         in place of statically computed probabilities.
10912         (min_spec_prob): New static variable.
10913         (schedule_insns): Initialize it.
10914         (GET_SRC_PROB): Removed.
10915         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
10916
10917 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
10918
10919         PR debug/24444
10920         * config/ia64/unwind-ia64.c: Revert last change.
10921         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
10922         (INCOMING_FRAME_SP_OFFSET): Define.
10923
10924 2006-02-06  Roger Sayle  <roger@eyesopen.com>
10925
10926         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
10927
10928 2006-02-07  Ben Elliston  <bje@au.ibm.com>
10929
10930         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
10931         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
10932         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
10933         (ix86_return_in_memory): Handle TDmode.
10934         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
10935         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
10936
10937 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
10938
10939         * reorg.c (dbr_schedule): Use dump_file instead of file.
10940
10941 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
10942
10943         PR target/25917
10944         * config/ia64/predicates.md (extr_len_operand): New predicate.
10945         * config/ia64/ia64.md (extv): Tighten constraints.
10946         (extzv): Ditto.
10947         (*tbit_and_2): Ditto.
10948         (*tbit_and_3): Ditto.
10949         (*tbit_or_2): Ditto.
10950         (*tbit_or_3): Ditto.
10951         (*bit_zero): Ditto.
10952         (*bit_one): Ditto.
10953
10954 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
10955
10956         PR target/23359
10957         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
10958
10959 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
10960
10961         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
10962         loop_optimizer_init and loop_optimizer_finalize
10963         * tree-ssa-sink.c (execute_sink_code): Ditto.
10964         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10965         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
10966         tree_ssa_loop_done): Ditto.
10967         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
10968         * sched-ebb.c: Include output.h.
10969         (schedule_ebbs): Do not use dump argument.
10970         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
10971         * loop.c (loop_dump_stream): Removed.
10972         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
10973         argument.
10974         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
10975         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
10976         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
10977         loop_iterations, strength_reduce, record_biv, record_giv,
10978         final_giv_value, check_final_value, check_ext_dependent_givs,
10979         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
10980         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
10981         dump_file instead of loop_dump_stream.
10982         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
10983         argument dump_file.
10984         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
10985         dump argument.
10986         * flow.c (life_analysis, rest_of_handle_life): Ditto.
10987         * haifa-sched.c: Include output.h
10988         (schedule_insns, sched_init): Do not use dump argument.
10989         * mode-switching.c (optimize_mode_switching): Ditto.
10990         * modulo-sched.c (stats_file): Removed.
10991         (print_node_sched_params): Do not call argument dump_file.
10992         (sms_schedule_by_order, loop_canon_p, sms_schedule,
10993         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
10994         of stats_file.
10995         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
10996         use dump argument.
10997         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
10998         rtl_loop_init, rtl_loop_done): Ditto.
10999         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
11000         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
11001         Ditto.
11002         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
11003         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
11004         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
11005         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
11006         * emit-rtl.c (renumber_insns): Ditto.
11007         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
11008         expand_gimple_basic_block, tree_expand_cfg): Ditto.
11009         * regclass.c (regclass): Ditto.
11010         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
11011         remove_ssa_form, rewrite_out_of_ssa): Ditto.
11012         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
11013         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
11014         Ditto.
11015         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
11016         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
11017         to regclass.
11018         * gcse.c (gcse_file, debug_stderr): Removed.
11019         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
11020         rest_of_handle_gcse): Do not use dump argument.
11021         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
11022         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
11023         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
11024         compute_code_hoist_vbeinout, compute_code_hoist_data,
11025         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
11026         compute_store_table, build_store_vectors, insert_insn_start_bb,
11027         insert_store, remove_reachable_equiv_notes, replace_store_insn,
11028         store_motion): Use dump_file instead of gcse_file.
11029         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
11030         * profile.c (profile_dump_file): Removed.
11031         (branch_prob): Use dump_file instead of profile_dump_file.
11032         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
11033         dump_file.
11034         * tree-ssa-copy.c (dump_copy_of): Ditto.
11035         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
11036         dump file to life_analysis.
11037         * bt-load.c (branch_target_load_optimize): Ditto.
11038         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
11039         renumber_insns.
11040         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
11041         regclass, dbr_schedule): Declaration changed.
11042         * sched-int.h (sched_init): Declaration changed.
11043         * tree-profile.c (tree_profile_dump_file): Removed.
11044         (tree_profile_hooks): Removed profile_dump_file hook.
11045         * rtl-profile (rtl_profile_dump_file): Removed.
11046         (rtl_profile_hooks): emoved profile_dump_file hook.
11047         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
11048         changed.
11049         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
11050         * tree-cfg.c (build_tree_cfg): Ditto.
11051         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
11052         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
11053         Declaration changed.
11054         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
11055         life_analysis and schedule_insns.
11056         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
11057         life_analysis.
11058         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
11059         dbr_schedule.
11060         * config/mips/mips.c (mips_reorg): Ditto.
11061         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
11062         schedule_ebbs.
11063
11064 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
11065
11066         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11067         (s390_mangle_fundamental_type): New.
11068         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11069         Define.
11070
11071         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11072         (alpha_mangle_fundamental_type): New.
11073         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11074         Define.
11075
11076         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11077         Define.
11078         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11079         Define.
11080         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11081         (sparc_mangle_fundamental_type): New.
11082
11083 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
11084
11085         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
11086         (s390x-*-linux*): Likewise.
11087         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
11088         * config/s390/t-linux: New file.
11089
11090 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
11091
11092         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
11093         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
11094
11095 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
11096
11097         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
11098         (ANTIC_SAFE_LOADS): New macro.
11099         (find_or_generate_expression): Add prototype.
11100         (set_contains_value): Allow null set for sake of not always having
11101         to allocate ANTIC_SAFE_LOADS.
11102         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
11103         Allow COMPONENT_REF too.
11104         (valid_in_set): Allow COMPONENT_REF.
11105         Check ANTIC_SAFE_LOADS too.
11106         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
11107         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
11108         rename.
11109         (can_PRE_operation): Add COMPONENT_REF.
11110         (create_component_ref_by_pieces): New function.
11111         (create_expression_by_pieces): Use create_component_ref_by_pieces.
11112         (insert_aux): Move AGGREGATE_TYPE_P check here.
11113         (compute_avail): Set bb local stmt uids.
11114         (pass_pre): Use TODO_update_ssa_only_virtuals.
11115
11116 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11117
11118         * configure.ac: Unconditionally disable decimal float by default.
11119         * configure: Regenerate.
11120
11121 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11122
11123         * read-rtl.c (read_name): Terminate reading on EOF.
11124
11125 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11126
11127         * dfp.c (decimal_real_arithmetic): Change second argument type
11128         from int to enum tree_code. Do not always return true, but now
11129         return result of any call to decimal_do helper functions.
11130         * dfp.h (decimal_real_arithmetic): Update prototype.
11131
11132 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
11133
11134         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
11135
11136 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
11137
11138         PR tree-opt/25251
11139         * tree-cfg.c (cleanup_dead_labels): Also don't remove
11140         forced labels.
11141
11142 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
11143
11144         * tree-vrp.c (cfg_loops): Removed.
11145         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
11146         Use current_loops instead of cfg_loops.  Pass flags to
11147         loop_optimizer_init.
11148         * cfgloopmanip.c (fix_loop_structure): Update only available
11149         information.
11150         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
11151         loop_optimizer_init.
11152         * modulo-sched.c (build_loops_structure): Removed.
11153         (sms_schedule): Use loop_optimizer_init.
11154         * loop-init.c (loop_optimizer_init): Use flags to determine
11155         which properties of loops to prepare.
11156         (rtl_loop_init): Pass flags to loop_optimizer_init.
11157         * tree-ssa-sink.c (execute_sink_code): Ditto.
11158         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
11159         * tree-ssa-pre.c (init_pre): Ditto.
11160         * cfgloop.h (LOOPS_NORMAL): New.
11161         (loop_optimizer_init): Declaration changed.
11162
11163 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11164
11165         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
11166         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
11167         pa/t-pa.
11168         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
11169         pa/t-pa.
11170         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
11171         pa/x-ada.
11172         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
11173         * pa/t-pa64: Delete quadlib.c rule.
11174         * pa/x-ada: Revert last change.
11175         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
11176
11177 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
11178
11179         PR rtl-optimization/26087
11180         * rtlanal.c (canonicalize_condition): Do not cross basic block
11181         boundaries.
11182
11183 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
11184
11185         PR debug/24444
11186         * config/ia64/ia64.c: Include debug.h.
11187         (MAX_ARTIFICIAL_LABEL_BYTES): New.
11188         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
11189         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
11190         (process_epilogue, process_set, process_for_unwind_directive):
11191         Output unwind info only if requested.  Add CFA info if requested.
11192         Add new arguments as needed.  Adjust callers.
11193         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
11194         incorrect default.
11195         (DWARF2_FRAME_INFO): Define to zero.
11196         * config/ia64/unwind-ia64.c: Remove code that compensated for
11197         the CFA offset error fixed above.
11198         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
11199         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
11200         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
11201         -funwind-tables and -fexceptions to enable frame info.
11202         (dwarf2out_frame_init): Define initial CFA even if
11203         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
11204         DWARF2_UNWIND_INFO is nonzero, not just defined.
11205         (dwarf2out_frame_finish): Output non-EH call frame info only
11206         if DWARF2_FRAME_INFO is nonzero.
11207         (convert_cfa_to_loc_list,
11208         compute_frame_pointer_to_cfa_displacement): Define even if
11209         unwind info is not supported.
11210         (gen_subprogram_die): Use the above unconditionally.  Remove
11211         legacy alternate code.
11212         * toplev.c (compile_file): Compile in call to
11213         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
11214         (lang_dependent_init): Ditto for dwarf2out_frame_init.
11215
11216 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
11217             Jakub Jelinek  <jakub@redhat.com>
11218
11219         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
11220         IBM extended float format long double as "g" on powerpc*-linux.
11221
11222 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11223
11224         PR target/25926
11225         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
11226         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
11227
11228 2006-02-03  Jason Merrill  <jason@redhat.com>
11229
11230         PR c++/25979
11231         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
11232
11233         PR middle-end/25977
11234         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
11235         on the return slot if it's an NRV.
11236
11237 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
11238
11239         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
11240         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
11241         rewrite_use): Do not handle USE_OUTER.
11242         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
11243         add_iv_outer_candidates, may_replace_final_value,
11244         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
11245         (find_interesting_uses_op): Functionality of
11246         find_interesting_uses_outer_or_nonlin moved here.
11247         (find_interesting_uses_outside): Use find_interesting_uses_op.
11248
11249 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
11250
11251         PR target/25960
11252         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
11253
11254 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
11255             Ulrich Weigand  <uweigand@de.ibm.com>
11256
11257         PR target/25864
11258         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
11259         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
11260         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
11261         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
11262         and dxr fields.
11263         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
11264         (s390_rtx_costs): Use the new fields to calculate rtx costs.
11265         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
11266         Define secondary reloads for TFmode moves.
11267         (constant_modes): Add TFmode.
11268         (NR_C_MODES): Set to 8.
11269         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
11270         builtin define.
11271         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
11272         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
11273         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
11274         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
11275         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
11276         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
11277         (FPR mode macro): Add TFmode.
11278         (DSF mode macro): New.
11279         (<de>, <dee> mode attributes): Removed.
11280         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
11281         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
11282         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
11283         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
11284         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
11285         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
11286         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
11287         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
11288         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
11289         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
11290         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
11291         "*negabs<mode>2", "sqrt<mode>2"):
11292         Changed <de> to <xde>. R constraint replaced by <Rf>.
11293         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
11294         <Rf>.
11295         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
11296         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
11297         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
11298         splitters.
11299         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
11300         "extenddftf2", "extendsftf2"): New expanders.
11301         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11302         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
11303         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
11304         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
11305         New options.
11306         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
11307         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
11308         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
11309         __floatditf): Add a GCC_4.1.0 symbol version tag.
11310         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
11311         the new options.
11312
11313 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
11314
11315         PR target/25377
11316         * config/i386/i386.c (ix86_function_ok_for_sibcall):
11317         Use targetm.binds_local_p instead of TREE_PUBLIC.
11318
11319 2006-02-02  Roger Sayle  <roger@eyesopen.com>
11320
11321         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
11322         on INTEGER_TYPEs to indicate that it denotes a character type.
11323         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
11324         signed_char_type_node, unsigned_char_type_node and char_type_node.
11325         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
11326         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
11327         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
11328
11329 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
11330             Daniel Berlin  <dberlin@dberlin.org>
11331
11332         * tree-tailcall.c (arg_needs_copy_p): New function.
11333         (eliminate_tail_call): Use arg_needs_copy_p.
11334         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
11335         (add_virtual_phis): New function.
11336
11337 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
11338
11339         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
11340         #ignore instead of #scratch for %g7 .register directive.
11341
11342 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
11343
11344         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
11345         object files.
11346
11347 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
11348
11349         * flow.c (calculate_global_regs_live): Assert that there aren't any
11350         EDGE_FAKE edges.
11351
11352 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
11353
11354         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
11355         what its name says.
11356         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
11357         bsi_after_labels iterator.
11358         * tree-if-conv.c (find_phi_replacement_condition,
11359         replace_phi_with_cond_modify_expr): Likewise.
11360         * tree-scalar-evolution.c (scev_const_prop): Likewise.
11361         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
11362
11363 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
11364
11365         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
11366
11367 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
11368
11369         PR 25990
11370         * tree-cfg.c (move_block_to_fn): Clear out the basic block
11371         array after growing it.
11372
11373 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
11374
11375         PR middle-end/24901
11376         * fold-const.c (fold_checksum_tree): Change type of buf.
11377
11378 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
11379
11380         * reload.c (push_secondary_reload): Initialize t_icode.
11381
11382 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
11383
11384         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
11385         -msoft-float -mlong-double-128 only issue a warning, but don't
11386         swich to DFmode long double.
11387
11388 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
11389
11390         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
11391         has a constant equivalent, iterate over equivalents for arg0,
11392         calling simplify_relational_operation and if there's a result
11393         cheaper than X, apply fold_rtx and return the result.
11394
11395 2006-02-01  Jan Hubicka  <jh@suse.cz>
11396
11397         * opts.c (no_unit_at_a_time_default): New global variable.
11398         (decode_options): Use it.
11399         * opts.h (no_unit_at_a_time_default): Declare.
11400
11401 2006-02-01  Paul Brook  <paul@codesourcery.com>
11402
11403         * function.c (assign_parm_setup_reg): Use function argument promotion
11404         rules.
11405         * expr.c (expand_expr_real_1): Use function argument promotion rules
11406         for PARM_DECLs.
11407
11408 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
11409
11410         * gcc.c (process_command): Change j to 'unsigned int'.
11411
11412 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11413
11414         PR middle-end/26001
11415         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
11416         Use the corrected index for the character
11417         out of the string constant.
11418
11419 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11420
11421         * mode-switching.c (optimize_mode_switching): Fix size
11422         allocated for bb_info[n_entities].
11423
11424 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11425
11426         * gcc.c (main): Correct type that is allocated for
11427         explicit_link_files.
11428
11429 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
11430
11431         * config/s390/s390.c (init_alignment_context): Set
11432         ALIAS_SET_MEMORY_BARRIER on the MEM.
11433         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
11434
11435 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
11436
11437         PR middle-end/25933
11438         * loop-unroll.c (unroll_loop_runtime_iterations): Free
11439         dom_bbs pointer.
11440         * tree-ssa-live.c (type_var_init): Allocate bitmap after
11441         call to tpa_init.
11442
11443 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
11444
11445         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
11446         * regrename.c: Ditto.
11447         * tree-ssa-loop-im.c: Ditto.
11448         * tree-dump.c: Ditto.
11449         * tree-complex.c: Ditto.
11450         * genrecog.c: Ditto.
11451         * tree-ssa-threadupdate.c: Ditto.
11452         * tracer.c: Ditto.
11453         * java/class.c: Ditto.
11454         * java/jcf-parse.c: Ditto.
11455         * java/resource.c: Ditto.
11456         * java/except.c: Ditto.
11457         * java/jvspec.c: Ditto.
11458         * java/jcf-write.c: Ditto.
11459         * java/jcf-path.c: Ditto.
11460         * java/gjavah.c: Ditto.
11461         * java/zextract.c: Ditto.
11462         * java/jcf-io.c: Ditto.
11463         * java/jcf.h: Ditto.
11464         * java/buffer.c: Ditto.
11465         * java/lang.c: Ditto.
11466         * java/parse-scan.y: Ditto.
11467         * java/lex.c: Ditto.
11468         * java/lex.h: Ditto.
11469         * cfgloopmanip.c: Ditto.
11470         * postreload-gcse.c: Ditto.
11471         * tree-ssa-loop-manip.c: Ditto.
11472         * postreload.c: Ditto.
11473         * tree-ssa-loop-ch.c: Ditto.
11474         * loop.c: Ditto.
11475         * ipa-cp.c: Ditto.
11476         * cppspec.c: Ditto.
11477         * diagnostic.c: Ditto.
11478         * final.c: Ditto.
11479         * genoutput.c: Ditto.
11480         * gcc.c: Ditto.
11481         * cfghooks.c: Ditto.
11482         * cfgloopanal.c: Ditto.
11483         * objc/objc-act.c: Ditto.
11484         * gcov.c: Ditto.
11485         * genextract.c: Ditto.
11486         * genautomata.c: Ditto.
11487         * pretty-print.c: Ditto.
11488         * genemit.c: Ditto.
11489         * cgraphunit.c: Ditto.
11490         * flow.c: Ditto.
11491         * df-scan.c: Ditto.
11492         * haifa-sched.c: Ditto.
11493         * dominance.c: Ditto.
11494         * dbxout.c: Ditto.
11495         * tree-ssa-loop-ivopts.c: Ditto.
11496         * df-core.c: Ditto.
11497         * mode-switching.c: Ditto.
11498         * modulo-sched.c: Ditto.
11499         * graph.c: Ditto.
11500         * ipa-pure-const.c: Ditto.
11501         * cse.c: Ditto.
11502         * fix-header.c: Ditto.
11503         * web.c: Ditto.
11504         * tree-stdarg.c: Ditto.
11505         * ipa-utils.c: Ditto.
11506         * loop-init.c: Ditto.
11507         * ipa-inline.c: Ditto.
11508         * cfganal.c: Ditto.
11509         * global.c: Ditto.
11510         * alloc-pool.c: Ditto.
11511         * dwarf2out.c: Ditto.
11512         * opts.c: Ditto.
11513         * genattrtab.c: Ditto.
11514         * tree-ssa-loop-ivcanon.c: Ditto.
11515         * predict.c: Ditto.
11516         * timevar.c: Ditto.
11517         * lcm.c: Ditto.
11518         * fortran/gfortranspec.c: Ditto.
11519         * regmove.c: Ditto.
11520         * local-alloc.c: Ditto.
11521         * langhooks.c: Ditto.
11522         * function.c: Ditto.
11523         * tree-vectorizer.c: Ditto.
11524         * gcse.c: Ditto.
11525         * ipa-type-escape.c: Ditto.
11526         * alias.c: Ditto.
11527         * tree-if-conv.c: Ditto.
11528         * profile.c: Ditto.
11529         * ipa.c: Ditto.
11530         * tree-data-ref.c: Ditto.
11531         * loop-unroll.c: Ditto.
11532         * treelang/treetree.c: Ditto.
11533         * calls.c: Ditto.
11534         * bt-load.c: Ditto.
11535         * ggc-common.c: Ditto.
11536         * except.c: Ditto.
11537         * coverage.c: Ditto.
11538         * cselib.c: Ditto.
11539         * tree-cfgcleanup.c: Ditto.
11540         * tree-ssa-pre.c: Ditto.
11541         * cfgcleanup.c: Ditto.
11542         * loop-invariant.c: Ditto.
11543         * loop-iv.c: Ditto.
11544         * ipa-prop.c: Ditto.
11545         * print-tree.c: Ditto.
11546         * conflict.c: Ditto.
11547         * ggc-page.c: Ditto.
11548         * sched-deps.c: Ditto.
11549         * regclass.c: Ditto.
11550         * tree-object-size.c: Ditto.
11551         * combine.c: Ditto.
11552         * bb-reorder.c: Ditto.
11553         * resource.c: Ditto.
11554         * var-tracking.c: Ditto.
11555         * cfgloop.c: Ditto.
11556         * df-problems.c: Ditto.
11557         * reg-stack.c: Ditto.
11558         * tlink.c: Ditto.
11559         * gccspec.c: Ditto.
11560         * sched-rgn.c: Ditto.
11561         * tree-ssa-structalias.c: Ditto.
11562         * tree-ssa-reassoc.c: Ditto.
11563         * config/darwin-c.c: Ditto.
11564         * config/darwin.c: Ditto.
11565         * config/arm/arm.c: Ditto.
11566         * cfgrtl.c: Ditto.
11567         * collect2.c: Ditto.
11568         * reload1.c: Ditto.
11569
11570 2006-01-31  Nicolas Pitre  <nico@cam.org>
11571
11572         * arm.md (smaxsi3): Make aware of smax_m1.
11573         (smax_m1): New.
11574
11575 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
11576
11577         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11578
11579 2006-01-31  Richard Guenther  <rguenther@suse.de>
11580
11581         * doc/invoke.texi (-msselibm): Document.
11582         * target.h (expand_library_builtin): New target hook.
11583         * builtins.c (expand_builtin): Use expand_library_builtin.
11584         (default_expand_library_builtin): New function.
11585         * gcc.c (LINK_GCC_MATH_SPEC): Define.
11586         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11587         (link_gcc_math_spec): Declare.
11588         (static_specs): Add link_gcc_math_spec.
11589         * expr.h (default_expand_library_builtin): Declare.
11590         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11591         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11592         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11593         * config/i386/i386.opt (msselibm): New target option.
11594         * config/i386/i386.c (ix86_builtin_function_variants): New array.
11595         (ix86_init_sse_abi_builtins): New function.
11596         (ix86_expand_library_builtin): Likewise.
11597         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11598         (override_options): Handle error conditions wrt -msselibm.
11599         (ix86_builtins): Add function codes for SSE2 ABI builtins.
11600         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11601         * doc/extend.texi (__builtin_sse2_*): Document new target specific
11602         builtins.
11603
11604 2006-01-31  Richard Guenther  <rguenther@suse.de>
11605         Paolo Bonzini  <bonzini@gnu.org>
11606
11607         * doc/install.texi (--disable-libgcc-math): Document.
11608
11609 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
11610
11611         * expr.h (expand_normal): new inline function.
11612         * builtins.c: use it, use EXPAND_NORMAL explicitely.
11613         * dojump.c: use it.
11614         * dwarf2out.c: use it.
11615         * expr.c: use it.
11616         * calls.c: use it.
11617         * expmed.c: use it.
11618         * except.c: use it.
11619         * config/sparc/sparc.c: use it.
11620         * config/i386/i386.c: use it.
11621         * config/rs6000/rs6000.c: use it.
11622         * config/arm/arm.c: use it.
11623         * config/mips/mips.c: use it.
11624         * stmt.c: use it, use EXPAND_NORMAL explicitely.
11625
11626 2006-01-30  Roger Sayle  <roger@eyesopen.com>
11627
11628         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11629         argv to the appropriate type.
11630
11631 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
11632
11633         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11634         unreachable code.
11635
11636 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11637
11638         PR target/26018
11639         * config/s390/s390.c (struct machine_function): New flag
11640         decomposed_literal_pool_addresses_ok_p.
11641         (s390_reorg): Set it before final stage of literal pool transforms.
11642         (s390_decompose_address): Only accept displacements of the form
11643         (minus (label_ref ...) (label_ref ...)) if that flag is set.
11644
11645 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
11646
11647         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11648         the comparison routine return.
11649
11650 2006-01-30  Michael Matz  <matz@suse.de>
11651
11652         * global.c (find_reg): Only evict for global regs.
11653         Take n_refs into account and dump more info.
11654
11655 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
11656
11657         PR target/14798:
11658         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11659         (pragma_trap, pragma_nosave_low_regs): Likewise.
11660         (current_function_anonymous_args): Likewise.
11661         (sh_deferred_function_attributes): New variable.
11662         (sh_deferred_function_attributes_tail): Likewise.
11663         (print_operand): For '@', look up trap_exit attribute.
11664         (calc_live_regs): Look up trapa_handler attribute.  For trapa
11665         handlers, save/restore fpscr, but don't do any other
11666         interrupt-specific saves.
11667         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11668         Fix check for partially saved registers to check for SHmedia.
11669         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11670         (sh_output_function_epilogue): Don't clear any of the removed
11671         variables.
11672         (sh_insert_attributes): Don't check pragma_interrupt.
11673         Insert deferred attributes.  Check that interrupt attribute is
11674         present for other attributes that require its presence.
11675         (sh_attribute_table): Add new attributes trapa_handler and
11676         nosave_low_regs.
11677         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11678         Don't check for pragma_interrupt.  Don't store argument.
11679         * sh.h (pragma_interrupt, sp_switch): Don't declare.
11680         (sh_deferred_function_attributes): Declare.
11681         (sh_deferred_function_attributes_tail): Likewise.
11682         * sh.md (sp_switch_1): Add operand.  Change generator caller.
11683         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11684         (*return_i): Don't use when trap_exit attribute is in effect.
11685         (*return_trapa): New insn pattern.
11686         * sh-c.c: New file.
11687         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11688         setting c_target_objs and cxx_target_objs.
11689         * t-sh: Add rule for sh-c.o.
11690
11691 2006-01-30  Richard Guenther  <rguenther@suse.de>
11692
11693         PR c++/23372
11694         * gimplify.c (gimplify_target_expr): Handle easy cases
11695         without creating a temporary.
11696
11697 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
11698
11699         * vec.h (safe_grow): Remove duplicated line.
11700
11701 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
11702
11703         PR 25874
11704         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11705         (expand_omp): ... here.
11706         (expand_omp_parallel): Only remove barriers for combined
11707         parallel+workshare constructs.
11708
11709 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
11710
11711         Revert
11712
11713         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
11714         * tree.c (build_qualified_type): Chain the new type to the original
11715         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11716         a POINTER_TYPE or a REFERENCE_TYPE respectively.
11717         (build_pointer_type_for_mode): Only return unqualified types.
11718         (build_reference_type_for_mode): Likewise.
11719
11720 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
11721
11722         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11723         * Makefile.in (CXX_COMPAT_WARN): Define.
11724         * configure: Regenerate.
11725
11726 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
11727
11728         PR tree-opt/25911
11729         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11730         to an if check.
11731
11732 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11733
11734         * toplev.c: Fix thinko.
11735
11736 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11737             Marcin Dalecki  <martin@dalecki.de>
11738
11739         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11740         (push_srcloc): Use XNEW.
11741         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11742
11743 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
11744
11745         * df-core.c (df_set_blocks): Deleted all variable.
11746
11747 2006-01-28  Ian Lance Taylor  <ian@airs.com>
11748
11749         * cgraphunit.c (cgraph_assemble_pending_functions): Call
11750         cgraph_output_pending_asms.
11751
11752 2006-01-28  Zack Weinberg  <zackw@panix.com>
11753
11754         * c.opt: Add -W(no-)overlength-strings.
11755         * doc/invoke.texi: Document it.
11756         * c-opts.c (c_common_handle_option): -pedantic implies
11757         -Woverlength-strings, if not explicitly disabled already.
11758         (c_common_post_options): -Woverlength-strings defaults to off, and
11759         is always off for C++.
11760         * c-common.c (fix_string_type): Issue warning about strings longer
11761         than is portable only if warn_overlength_strings.  Rearrange code
11762         a little for clarity.
11763         * configure.in: Check for -Wno-overlength-strings as well before
11764         enabling -pedantic in stage 1.
11765         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11766         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11767
11768         * genconditions.c (write_header, write_one_condition)
11769         (write_conditions, write_writer): Consolidate very long strings
11770         that were broken up to fit in C89 portable limit.  Don't use
11771         printf when fputs will do.
11772
11773 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
11774
11775         * combine.c (simplify_comparison <AND>): Check
11776         TRULY_NOOP_TRUNCATION before start using a subreg.
11777
11778         * config/mips/mips.md (*branch_zero<mode>,
11779         *branch_zero<mode>_inverted, *branch_equality<mode>,
11780         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11781         Remove mode check from comparisons.
11782
11783 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
11784
11785         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11786
11787 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11788
11789         * expmed.c (const_mult_add_overflow_p): Remove.
11790         * expr.h: Remove the prototype for const_mult_add_overflow_p.
11791
11792         * recog.c (validate_replace_rtx_subexp): Remove.
11793         * recog.h: Remove the prototype for
11794         validate_replace_rtx_subexp.
11795
11796         * integrate.h: Remove the prototype for
11797         copy_decl_for_inlining.
11798         * rtl.h: Remove the prototype for mark_constant_function.
11799         * tree-vectorizer.h: Remove the prototype for
11800         vect_strip_conversion.
11801
11802         * modulo-sched.c (create_partial_schedule,
11803         free_partial_schedule, reset_partial_schedule): Make them
11804         static.
11805
11806         * hooks.c (hook_bool_rtx_int_false): Remove.
11807         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11808
11809 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
11810
11811         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11812         and -mlong-double-128 are incompatible.
11813         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11814         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11815         (TARGET_LIBGCC2_CFLAGS): Define.
11816         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11817         (TARGET_LIBGCC2_CFLAGS): Same.
11818         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11819
11820 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11821
11822         PR c/19606.
11823         * c-typeck.c (build_binary_op): Perform implicit casts of
11824         operands before shortening them.
11825
11826         * cfgloopmanip.c (split_loop_bb): Remove.
11827         * cfgloop.h: Remove the prototype for split_loop_bb.
11828
11829         * cfgloop.c (flow_loop_outside_edge_p): Remove.
11830         * cfgloop.h: Remove the prototype for
11831         flow_loop_outside_edge_p.
11832
11833         * emit-rtl.c (init_virtual_regs): Make it static.
11834         * function.h: Remove the prototype for init_virtual_regs.
11835
11836         * recog.c (peephole2_optimize): Make it static.
11837         * recog.h: Remove the prototype for peephole2_optimize.
11838
11839 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11840
11841         * df-scan.c (df_record_entry_block_defs): Check if
11842         INCOMING_RETURN_ADDR_RTX is defined.
11843
11844 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
11845             Kenneth Zadeck <zadeck@naturalbridge.com>
11846
11847         PR rtl-optimization/24762
11848         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11849         * targhooks.c (hook_void_bitmap): New hook prototype.
11850         * targhoohs.h (hook_void_bitmap): Ditto.
11851         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
11852         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
11853         * target.h (live_on_entry): New function pointer.
11854         * df-scan.c (df_all_hard_regs): Removed.
11855         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
11856         (df_scan_free_internal): Added df->entry_block_defs.
11857         (df_scan_alloc): Ditto.
11858         (df_scan_dump): Ditto.
11859         (df_uses_record): Plumbed flag field properly thru calls.
11860         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
11861         This part fixes PR24762.
11862         (df_bb_refs_record): Added code to make the frame and arg
11863         pointers live in EH blocks.
11864         (df_refs_record): Added call to df_record_entry_block_defs.
11865         (df_record_entry_block_defs): New function.
11866         * df-core.c: Added comments to describe new artifical defs.
11867         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
11868         (entry_block_defs): New field in struct df.
11869         (df_all_hard_regs): Deleted.
11870         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11871         * df-problems.c (df_ru_bb_local_compute_process_def):
11872         Added code to handle artifical defs in the entry to a function.
11873         (df_ru_bb_local_compute): Ditto.
11874         (df_rd_bb_local_compute_process_def): Ditto.
11875         (df_rd_bb_local_compute): Ditto.
11876         (df_lr_bb_local_compute): Ditto.
11877         (df_ur_bb_local_compute): Ditto.
11878         (df_urec_bb_local_compute): Ditto.
11879         (df_chain_create_bb): Ditto.
11880         (df_ur_local_finalize): Removed entry.
11881         (df_urec_init): Ditto.
11882         (df_urec_local_finalize): Ditto.
11883         (df_ri_bb_compute): Added detection of last use of pseudos.
11884         * Makefile.in (df-scan.o): Updated dependencies.
11885         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
11886         * config/mips/mips.c (mips_set_live_on_entry): Added.
11887         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
11888         for target hook.
11889         * dce.c (marked_insn_p): Added code to handle artifical defs.
11890
11891 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11892
11893         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
11894         intrinsic.
11895         (_mm_cvtsi128_si64): Likewise.
11896         (_mm_cvtsd_si64): Likewise.
11897         (_mm_cvttsd_si64): Likewise.
11898         (_mm_cvtsi64_sd): Likewise.
11899         (_mm_cvtsi64_si128): Likewise.
11900         * config/i386/mmintrin.h (_m_from_int64): Likewise.
11901         (_mm_cvtsi64_m64): Likewise.
11902         (_m_to_int64): Likewise.
11903         (_mm_cvtm64_si64): Likewise.
11904         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
11905         (_mm_cvttss_si64): Likewise.
11906         (_mm_cvtsi64_ss): Likewise.
11907         (_mm_cvtss_f32): Likewise.
11908
11909 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
11910
11911         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
11912         for pragma redefine_extname.
11913
11914 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
11915
11916         PR target/25864
11917         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
11918         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
11919         -mno-minimal-toc to previous content.
11920         (bispecs): Remove goal.
11921         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
11922         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
11923         compatibility aliases on powerpc-*-*gnu*.
11924         * config/rs6000/libgcc-ppc-glibc.ver: New file.
11925         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
11926         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
11927         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
11928         (ldblspecs): New goal.
11929         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
11930         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
11931         _df_to_tf.
11932         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
11933         L_sf_to_tf or L_df_to_tf is defined.
11934
11935 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
11936             Alan Modra  <amodra@bigpond.net.au>
11937
11938         PR target/25864
11939         * config/rs6000/linux.h (POWERPC_LINUX): Define.
11940         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
11941         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
11942         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
11943         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
11944         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
11945         (rs6000_override_options): Initialize rs6000_ieeequad.
11946         Initialize TFmode format to ibm_extended_format if not
11947         TARGET_IEEEQUAD.
11948         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
11949         ieeelongdouble.
11950         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
11951         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
11952         (function_arg_advance): IBM long double passed in two FPRs, not
11953         split.
11954         (function_arg): IBM long double passed in FPRs.
11955         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
11956         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
11957         Only multireg GPR aligned.
11958         (rs6000_init_libfuncs): Enable IBM long double functions if not
11959         IEEEQUAD.
11960         (rs6000_generate_compare): Use IBM long double compare if not
11961         TARGET_IEEEQUAD.
11962         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
11963         (TARGET_IEEEQUAD): Define.
11964         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
11965         not TARGET_IEEEQUAD.
11966         * config/rs6000/rs6000.md: Enable TFmode patterns if
11967         !TARGET_IEEEQUAD.
11968         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11969         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11970         and -mlong-double-128 are incompatible.
11971         * doc/invoke.texi (-mabi): Collect options together.  Add
11972         ibmlongdouble and ieeelongdouble.
11973
11974 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
11975
11976         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
11977         opaque type.
11978         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
11979         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
11980         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
11981         * rtl.h (rtunion_def): Remove rt_ptr.
11982         (X0PTR): Delete.
11983         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
11984         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
11985         * config/i386/winnt.c (i386_pe_mark_dllexport)
11986         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
11987
11988 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
11989
11990         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
11991
11992 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
11993
11994         PR other/24829
11995         PR target/24831
11996         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
11997         pthread_key_delete.  From John David Anglin.  gthrw-ify
11998         pthread_getunique_np only if it it's not a macro.  Delete
11999         UNUSED macro.
12000         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
12001         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
12002         __gthread_objc_condition_signal, __gthread_key_delete): Add
12003         "__attribute__ ((__unused__))" to unused arguments.
12004         (__gthread_recursive_mutex_init_function): Add missing return.
12005         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
12006         gthr-posix95.h: Use macro-based approach for name redirection
12007         on targets missing weakref.
12008
12009 2006-01-26  Zack Weinberg  <zackw@panix.com>
12010
12011         * genconditions.c (write_header): In generated code, #ifdef out
12012         all includes and fake declarations, except includes of bconfig.h
12013         and system.h, unless GCC_VERSION >= 3001.  Do not include
12014         gensupport.h in any case.
12015         (write_conditions): Generate a definition of struct c_test.  Add
12016         a comment to the generated #endif.
12017         (write_one_condition): Escape backslashes in string too.
12018         (write_writer): Generated code must escape backslashes and quote
12019         marks (but not newlines) in the strings it writes.
12020         * Makefile.in (build/gencondmd.o): Update dependencies.
12021
12022 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
12023
12024         PR target/25961
12025         * Makefile.in (insn-automata.o): Add header file dependencies.
12026         * genautomata.c: Add includes.
12027
12028 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
12029
12030         PR target/25961
12031         * Makefile.in (insn-automata.o): Add -Wno-error flag.
12032
12033 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
12034
12035         * configure.ac: Expect target tools paths to be passed from the toplevel
12036         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
12037         AS_SET_VAR_IF.
12038         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
12039
12040 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
12041
12042         PR c/25892
12043         * c.opt (Wpointer-sign): Init to -1.
12044         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
12045         OPT_pedantic, to 0 otherwise.
12046         * doc/invoke.texi: Update.
12047
12048 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
12049
12050         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
12051         constants provided by 80387 instructions in the destination mode.
12052
12053 2006-01-26  Richard Guenther  <rguenther@suse.de>
12054             Andrew Pinski  <pinskia@physics.uc.edu>
12055
12056         PR tree-opt/21470
12057         partial PR tree-opt/17064
12058         * tree-ssa-structalias.c (intra_create_variable_infos):
12059         Create heap variables for incoming parameters if
12060         flag_argument_noalias > 1.
12061         (find_what_p_points_to): Look through default defs of
12062         parameter decls.
12063
12064 2006-01-26  Jeff Law  <law@redhat.com>
12065
12066         PR ada/25900
12067         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
12068         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
12069         within the VR_RANGE, use the VR_RANGE as the result, not the
12070         VR_ANTI_RANGE.
12071         (adjust_range_with_scev): Reject ranges from SCEV which are out of
12072         bounds for the type.
12073
12074 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
12075
12076         * tree-ssa-alias.c (maybe_create_global_var): Change
12077         subvar walking to an assertion that we don't have subvar'd variables.
12078
12079 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
12080
12081         PR C/25861
12082         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
12083         Use a new variable, inner.  PARM_DECLs are always non-weak.
12084
12085 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
12086
12087         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
12088         --disable-checking.
12089
12090 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
12091
12092         * config/mips/mips.md (*clear_upper32): New combiner pattern.
12093
12094 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
12095
12096         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
12097         (smax_insn, smin_insn, smax_0, smin_0): New.
12098
12099 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
12100
12101         PR target/25947
12102         * config/cris/cris.c (cris_order_for_addsi3): New function.
12103         * config/cris/cris-protos.h: Prototype it.
12104         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
12105         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
12106         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
12107         (split for "op.S1 [rx=rx+i],ry (swapped)")
12108         (split for "op(s|u).S1 [rx=rx+i],ry")
12109         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
12110         Apply cris_order_for_addsi3 when generating addsi3 insns.
12111
12112 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
12113
12114         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
12115         (TREE_BLOCK): Add call to EXPR_CHECK.
12116
12117 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
12118
12119         PR 25886
12120         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
12121         * tree-pretty-print.c (dump_omp_clause): Extract from ...
12122         (dump_omp_clauses): ... here.
12123         (dump_generic_node): Handle OMP_CLAUSE.
12124         * tree.c (omp_clause_num_ops): New.
12125         (omp_clause_code_name): New.
12126         (tree_code_size): Handle OMP_CLAUSE.
12127         (tree_size): Likewise.
12128         (make_node): Document handling of OMP_CLAUSE.
12129         (tree_node_structure): Handle OMP_CLAUSE.
12130         (omp_clause_check_failed): New.
12131         (omp_clause_range_check_failed): New.
12132         (omp_clause_operand_check_failed): New.
12133         (build_omp_clause): New.
12134         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
12135         * tree.h (enum omp_clause_code): Declare.
12136         (OMP_CLAUSE_SUBCODE_CHECK): Define.
12137         (OMP_CLAUSE_RANGE_CHECK): Define.
12138         (OMP_CLAUSE_ELT_CHECK): Define.
12139         (omp_clause_check_failed): Declare.
12140         (omp_clause_operand_check_failed): Declare.
12141         (omp_clause_range_check_failed): Declare.
12142         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
12143         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
12144         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
12145         (OMP_CLAUSE_LASTPRIVATE): Likewise.
12146         (OMP_CLAUSE_IF_EXPR): Likewise.
12147         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
12148         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
12149         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
12150         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
12151         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
12152         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
12153         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
12154         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
12155         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
12156         (OMP_CLAUSE_CODE): Define.
12157         (OMP_CLAUSE_SET_CODE): Define.
12158         (OMP_CLAUSE_CODE): Define.
12159         (OMP_CLAUSE_OPERAND): Define.
12160         (struct tree_omp_clause): Declare.
12161         (union tree_node): Add field 'omp_clause'.
12162         * treestruct.def (TS_OMP_CLAUSE): Define.
12163         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
12164         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
12165         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
12166         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
12167         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
12168         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
12169         (OMP_CLAUSE): Define.
12170         * print-tree.c (print_node): Handle OMP_CLAUSE.
12171         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
12172         * c-typeck.c: Likewise.
12173         * gimplify.c: Likewise.
12174         * c-omp.c: Likewise.
12175         * tree-nested.c: Likewise.
12176         * tree-inline.c: Likewise.
12177         * c-parser.c: Likewise.
12178         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
12179         clauses.
12180
12181 2006-01-25  Roger Sayle  <roger@eyesopen.com>
12182
12183         PR rtl-optimization/25703
12184         * combine.c (try_combine): Handle zero_extract and strict_low_part
12185         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
12186
12187 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
12188
12189         * global.c: Fix comment typos.
12190
12191 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
12192
12193         PR target/25758
12194         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
12195         Use output_addr_const instead of assemble_name.
12196
12197 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
12198
12199         * Makefile.in (sched-vis.o): Update dependencies.
12200         * haifa-sched.c (sched_finish): Clear current_sched_info.
12201         * cfg.c (dump_bb_info): New, split from dump_flow_info.
12202         (dump_flow_info): Call it.
12203         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
12204         a slim RTL dump.
12205         * basic-block.h (dump_bb_info): Declare.
12206         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
12207         option, and apply options only for dump files whose TDF_RTL,
12208         TDF_TREE, or TDF_IPA bits match.
12209         * rtl.h: Declare new functions exported from sched-vis.c.
12210         * sched-vis.c: Enable also if scheduling is not used.
12211         (print_value): Print the mode of registers if not inside scheduling.
12212         (print_insn): Make it work outside the scheduler.  Beautify the output
12213         a bit.
12214         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
12215
12216 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
12217
12218         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
12219         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
12220         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
12221         depending on the value of CONSTANT_POOL_ADDRESS_P.
12222         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
12223         SYMBOL_REF_DECL.
12224         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
12225         rather than SYMBOL_REF_DECL.
12226         (rtx_constant_pool): Remove const_rtx_sym_htab.
12227         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
12228         (init_varasm_status): Don't initialize const_rtx_sym_htab.
12229         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
12230         Remove handling of const_rtx_sym_htab.
12231         (find_pool_constant): Delete.
12232         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
12233         rather than find_pool_constant.
12234         (get_pool_constant_for_function): Delete.
12235         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
12236         find_pool_constant.
12237         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
12238         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
12239         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
12240         (SYMBOL_REF_CONSTANT): New macro.
12241         (get_pool_constant_for_function): Delete.
12242         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
12243         rather than SYMBOL_REF_DECL.
12244         (i386_pe_mark_dllimport): Likewise.
12245         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
12246         rather than SYMBOL_REF_DECL.
12247         * config/darwin.c (machopic_indirect_data_reference): Likewise.
12248         (machopic_indirect_call_target): Likewise.
12249
12250 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
12251
12252         * flow.c (delete_noop_moves): Add missing EOL to dump message.
12253
12254 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
12255
12256         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
12257
12258 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12259
12260         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
12261
12262 2006-01-24  David Daney  <ddaney@avtrex.com>
12263
12264         PR java/25816
12265         * configure.ac (enable_tls): New enable option.
12266         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
12267         * configure: Regenerate.
12268         * doc/install.texi (--enable-tls): Document new option.
12269         (--disable-tls): Ditto.
12270
12271 2006-01-24  Richard Henderson  <rth@redehat.com>
12272
12273         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
12274         * alias.c (true_dependence): Respect it.
12275         (canon_true_dependence, write_dependence_p): Likewise.
12276         * builtins.c (get_builtin_sync_mem): Set it.
12277
12278 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
12279
12280         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
12281         efficient way.
12282
12283 2006-01-24  DJ Delorie  <dj@redhat.com>
12284
12285         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
12286         for storing constants in single-bit bitfields.
12287
12288 2006-01-25  Ben Elliston  <bje@au.ibm.com>
12289
12290         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
12291
12292 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
12293
12294         PR tree-opt/25860
12295         * tree-ssa-pre.c (phi_translate): Return NULL
12296         for AGGREGATE_TYPE's.
12297
12298 2006-01-24  Zack Weinberg  <zackw@panix.com>
12299
12300         * genautomata.c (process_state_for_insn_equiv_partition):
12301         Use xcalloc for insn_arcs_array.
12302         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
12303         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
12304
12305 2006-01-24  Richard Henderson  <rth@redhat.com>
12306
12307         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
12308         update all callers.
12309
12310 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
12311
12312         PR rtl-optimization/25890
12313         PR rtl-optimization/25905
12314         * combine.c (expand_compound_operation, expand_field_assignment):
12315         Fail if the bitfield's final position is out of bounds.
12316
12317 2006-01-24  Ian Lance Taylor  <ian@airs.com>
12318
12319         PR middle-end/25930
12320         * cgraphunit.c (cgraph_output_in_order): Don't clear
12321         cgraph_asm_nodes until after asm strings have been output.
12322
12323 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
12324
12325         * fix-header.c (read_scan_file): Add new parameter imultilib when
12326         calling register_include_chains.
12327
12328 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
12329
12330         * omp-low.c: Update documentation.
12331
12332 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
12333             Daniel Berlin  <dberlin@dberlin.org>
12334
12335         PR tree-opt/25315
12336         PR tree-opt/25857
12337         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
12338         return from the function.
12339
12340 2006-01-22  Zack Weinberg  <zackw@panix.com>
12341
12342         * rtl.def (match_code): Add second argument.
12343         * genpreds.c (write_extract_subexp): New function.
12344         (write_match_code): Add path argument.  Use write_extract_subexp.
12345         (write_predicate_expr): Pass path to write_match_code.
12346         (mark_mode_tests): MATCH_CODE applied to a subexpression does
12347         not perform a mode test.
12348         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
12349         a subexpression does not constrain the top-level code set.
12350         * read-rtl.c (read_rtx_variadic): New function.
12351         (read_rtx_1): Use it; allow AND and IOR to be variadic.
12352         * doc/md.texi: Document new notation.
12353         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
12354         (cmpsi_operand): ... here, using new notation.
12355
12356 2006-01-22  Zack Weinberg  <zackw@panix.com>
12357
12358         * varray.c: Remove GENERATOR_FILE #ifdefs.
12359
12360 2006-01-22  Zack Weinberg  <zackw@panix.com>
12361
12362         * genautomata.c (output_reserved_units_table): Emit nothing if
12363         description->query_units_num is zero.  Remove extra blank line.
12364         (output_cpu_unit_reservation_p): Short circuit
12365         if description->query_units_num is zero.
12366
12367 2006-01-22  Zack Weinberg  <zackw@panix.com>
12368
12369         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
12370         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
12371         nor any of the random handful of variables that used to be necessary
12372         when this program was linked with rtlanal.o.  Prune set of forward
12373         function declarations.
12374         (struct attr_desc): Remove static_p field.
12375         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
12376         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
12377         (attr_string): Do not read the character one past the length of
12378         the string.
12379         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
12380         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
12381         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
12382         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
12383         (make_automaton_attrs): New.
12384         (main): Do not call into genautomata.  Call local gen_bypass
12385         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
12386         Remove special case for insn_alts.
12387         * genautomata.c: Include gensupport.h; not genattrtab.h nor
12388         varray.h (leftover from previous change).  Prune set of forward
12389         function declarations.  Remove state_alts fields from all
12390         structures.  Remove state_alts_table from struct automaton.
12391         Make everything except main static.  Do not maintain num_dfa_decls.
12392         Do not maintain state_alts fields of various structures.
12393         (process_decls): Don't validate condexp for dm_insn_reserv decls.
12394         (add_arc): Remove state_alts argument.  All callers updated.
12395         (output_reserved_units_table): Emit #ifdef here...
12396         (output_tables): ...not here.  Don't generate state_alts tables.
12397         (expand_automata): Don't generate attributes.
12398         (write_automata): Don't generate state_alts functions.
12399         (main): New function.
12400         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
12401         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
12402         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
12403         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
12404         (BYPASS_P_FUNC_NAME, output_state_alts_table)
12405         (output_automata_list_state_alts_code, output_internal_state_alts_func)
12406         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
12407         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
12408         Delete.
12409         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
12410         * genattrtab.h: Delete file.
12411         * Makefile.in (OBJS-common): Add insn-automata.o.
12412         (insn-automata.o): New rule.
12413         (simple_generated_c): Add insn-automata.c.
12414         (build/genattrtab.o, build/genautomata.o): Update dependencies.
12415         (genprogmd): Add automata.
12416         (build/genattrtab): Needs no extra objects nor libraries.
12417         (build/genautomata): Needs build/vec.o and -lm.
12418
12419 2006-01-22  Zack Weinberg  <zackw@panix.com>
12420
12421         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
12422         (output_dfa_max_issue_rate, locked_states_num): Delete.
12423         (struct automaton): Add locked_states field.
12424         (output_dead_lock_vect): Save number of locked states in
12425         automaton->locked_states.  If it is zero, don't print anything.
12426         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
12427         (output_internal_dead_lock_func): Only test the dead_lock_vect
12428         for automata that have locked states.
12429         (output_statistics): Always print the number of locked states for
12430         each automaton.  Calculate total number of locked states here.
12431         (write_automata): Don't call output_dfa_max_issue_rate.
12432         * genattrtab.c: Define length_unit_log as a const variable.
12433         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
12434         max_insn_queue_index const.
12435         * final.c (length_unit_log): Declare const.
12436         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
12437
12438 2006-01-22  Zack Weinberg  <zackw@panix.com>
12439
12440         * genautomata.c: Include vec.h, not varray.h.
12441         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
12442         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
12443         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
12444         VEC_* macros operating on appropriately typed vectors, or to
12445         malloced arrays when the size is known in advance.  Const-ify
12446         many char* variables and function arguments.  No functional changes.
12447         * Makefile.in (build/varray.o): Delete rule.
12448         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
12449         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
12450
12451 2006-01-22  Zack Weinberg  <zackw@panix.com>
12452
12453         * gensupport.c: Define get_insn_name and record_insn_name here.
12454         (read_md_rtx): Call record_insn_name as appropriate.
12455         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12456         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12457         * genpreds.c, genrecog.c: Don't define get_insn_name nor
12458         record_insn_name.
12459         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
12460         (BUILD_VARRAY): Delete.
12461         (genprognormal): Rename genprogmd.  Fold in all programs from
12462         genprognoprint; also attrtab.
12463         (build/genattrtab): Just mention genautomata.o and varray.o.
12464         Reorganize a bit, add comments to make the categories clearer.
12465
12466 2006-01-22  Zack Weinberg  <zackw@panix.com>
12467
12468         * genconditions.c (condition_table, add_condition): Delete.
12469         (write_conditions): Don't emit n_insn_conditions nor
12470         insn_elision_unavailable.  Issue the gcc version #ifdef here,
12471         inside the table, with no #else clause ...
12472         (write_header): ...not here.
12473         (write_writer): New function.
12474         (main): Don't initialize condition_table.  Use add_c_test.
12475         Call write_writer.
12476         * gensupport.c (init_md_reader_args_cb): Handle multiple input
12477         files on the command line.
12478         (maybe_eval_c_test): Don't check insn_elision_unavailable.
12479         Return -1 if there is no entry in the table, don't abort.
12480         (add_c_test, traverse_c_tests): New functions.
12481         * gensupport.h (insn_elision_unavailable, insn_conditions)
12482         (n_insn_conditions): Delete declarations.
12483         (add_c_test, traverse_c_tests): Declare.
12484         * read-rtl.c: Include gensupport.h.
12485         (read_conditions): New function.
12486         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
12487         (read_rtx_1): If we get EOF when we were looking for an initial
12488         open paren, return 0.  Call read_conditions when appropriate.
12489         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
12490         dummy-conditions.o.  Eliminate references to insn-conditions.o,
12491         or change them to build/gencondmd.o, as appropriate.  Remove
12492         insn-constants.h from $(simple_generated_h) and insn-conditions.c
12493         from $(simple_generated_c).  For all files remaining in those
12494         two lists, add insn-conditions.md to the generator command line.
12495         Give insn-constants.h/s-constants their own rules.  Add rules
12496         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12497         (build/read-rtl.o): Depend on gensupport.h.
12498         (genprognormal): Include preds.
12499         (genprogearly): Rename genprognoprint; only difference is now that
12500         they don't link with $(BUILD_PRINT).
12501         * dummy-conditions.c: Delete.
12502
12503 2006-01-22  Zack Weinberg  <zackw@panix.com>
12504
12505         * genextract.c: Don't include insn-config.h.  Do include vec.h.
12506         Declare vectors of int, char, and locstr.
12507         (locstr): New typedef.
12508         (struct extraction): Make all array fields into bare pointers.
12509         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12510         (insn_code_number): Delete.
12511         (accum_extract): New struct.
12512         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12513         (gen_insn): Take insn_code_number as an argument.  Use an
12514         accum_extract structure instead of loading data directly into
12515         a struct extraction, and having to know how big it might get.
12516         (walk_rtx): Operate entirely on an accum_extract structure.
12517         (print_path): Avoid unnecessary use of printf.
12518         (print_header): New function, split out of main.  Distinguish
12519         more carefully between an unrecognizable insn and an insn that
12520         has the code number of a define_expand.
12521         (main): Pass insn_code_number to gen_insn.  Call print_header
12522         only after parsing.  Avoid unnecessary use of printf.
12523         * Makefile.in (build/vec.o): New rule.
12524         (build/genextract): Depend on build/vec.o.
12525         (build/genextract.o): Don't depend on insn-config.h.
12526
12527 2006-01-22  Zack Weinberg  <zackw@panix.com>
12528
12529         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12530         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
12531         practical.  Eliminate per-generator-program link rules.
12532
12533 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
12534
12535         PR middle-end/24437
12536         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12537         with a call expr to ...
12538         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12539
12540 2006-01-23  Richard Guenther  <rguenther@suse.de>
12541
12542         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12543         before make_edge with conditional EDGE_TRUE_VALUE.
12544
12545 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
12546         Jan Hubicka  <jh@suse.cz>
12547         Richard Guenther  <rguenther@suse.de>
12548
12549         PR rtl-optimization/25654
12550         * cfgexpand.c (aggregate_contains_union_type): New function.
12551         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
12552         for structure variables that contain a union type.
12553
12554 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
12555
12556         * gengtype.c (new_structure): Return the structure.
12557         (create_option): Add an extra "next" argument.
12558         (create_field): New function.
12559         (adjust_field_rtx_def): Use create_option and create_field.
12560         Remove a now-unnecessary call to find_structure.
12561         (adjust_field_tree_def): Likewise.
12562         (note_yacc_type): Remove an unnecessary call to find_structure.
12563         * gengtype.h (new_structure): Return the structure.
12564         (create_option): Add an extra argument.
12565         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12566         (option): Adjust calls to create_option.
12567
12568 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
12569
12570         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12571
12572 2006-01-22  Paul Brook  <paul@codesourcery.com>
12573         Peter Barada  <peter@the-baradas.com>
12574
12575         * config/m68k/m68k.md: Add Coldfire FPU support.
12576         Define FP mode macro and associated attributes.
12577         Use it for float mode patterns.
12578         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12579         (LIBCALL_VALUE): Use m68k_libcall_value.
12580         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12581         (m68k_function_value): Ditto.
12582         (emit_move_sequence): Ditto.
12583         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12584         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12585         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12586         (MULTILIB_EXCEPTIONS): Ditto.
12587         * config/m68k/m68k.opt: Add mcfv4e.
12588         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12589         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12590         (m68k_output_function_prologue): Save ColdFire FPU registers.
12591         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12592         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12593         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12594         ColdFire FPU registers.
12595         (m68k_libcall_value, m68k_function_value): New functions.
12596         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12597         (LIBCALL_VALUE): Use m68k_libcall_value.
12598         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12599         (MASK_COLDFIRE): Add MASK_CFV4E.
12600         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12601         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12602         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12603         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12604         (GO_IF_LEGITIMATE_ADDRESS): Use it.
12605         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12606         * doc/invoke.tex: Document -mcfv4e on m68k.
12607
12608 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
12609
12610         * doc/contribute.texi: Change CVS to SVN and update the corresponding
12611         URL.
12612
12613 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12614
12615         PR c++/16190
12616         * c-opts.c (c_common_handle_option): Don't include
12617         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12618         * doc/invoke.texi (C++ Dialect Options): Document that
12619         -Wnon-virtual-dtor is no longer included in -Wall.
12620
12621 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
12622
12623         * gcov.c (print_version), gcov-dump.c (print_version),
12624         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12625         dates.
12626
12627 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
12628
12629         * df-scan.c (problem_SCAN): Added NULL reset function.
12630         (df_scan_reset_blocks): Added code to call reset block function
12631         (df_bb_refs_delete) Fixed comment.
12632         (df_insn_refs_delete): Made tolerant of deleting non existent info
12633         for dataflow problems that need to be reset.
12634         * df-core.c (df_set_blocks): Ditto.
12635         * df.h (struct df_problem): Added reset_fun.
12636         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12637         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12638         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12639         functions to clear out all references to def-use or use-def chains.
12640
12641 2006-01-21  Ben Elliston  <bje@au.ibm.com>
12642
12643         * varasm.c (assemble_real): Initialise data array.
12644
12645 2006-01-20  Paul Brook  <paul@codesourcery.com>
12646
12647         Merge from csl-arm-branch.
12648         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
12649         * config/arm/arm.md (movdi): Force operands[1] to a register
12650         if we have a non-register source.
12651         (*arm_movdi, *movdf_soft_insn): Require that one of the
12652         operands be a register.
12653         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12654         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12655
12656 2006-01-20  DJ Delorie  <dj@redhat.com>
12657
12658         * varasm.c (initializer_constant_valid_p): Allow pointers
12659         initialized from integer constants of lesser precision.
12660         (output_constant): Allow non-int-sized pointer modes to be
12661         initialized from integer constants.
12662
12663 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
12664
12665         PR libstdc++/25524
12666         * cppdefault.h (struct default_include): Add multilib flag.
12667         * cppdefault.c (cpp_include_defaults): Set it.
12668         * c.opt (-imultilib): New option.
12669         * c-opts.c (imultilib): New.
12670         (c_common_handle_option): Handle -imultilib.
12671         (c_common_post_options): Likewise.
12672         * c-incpath.c (add_standard_paths, register_include_chains):
12673         Likewise.
12674         * c-incpath.h (register_include_chains): Add extra parameter.
12675         * gcc.c (do_spec_1): Generate -imultilib option.
12676         (The Specs Language): Update %I description.
12677         (process_command): Update copyright notice.
12678         * doc/cppopts.texi (-imultilib): Document.
12679         * doc/invoke.texi (-imultilib): Include in option summary.
12680         (%I): Update specs documentation.
12681
12682 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12683
12684         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12685
12686 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
12687
12688         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12689         label numbers.
12690
12691 2006-01-20  Richard Guenther  <rguenther@suse.de>
12692         Steven Bosscher <stevenb.gcc@gmail.com>
12693
12694         PR rtl-optimization/24626
12695         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12696         EDGE_TRUE_VALUE if in RTL mode.
12697
12698         Revert
12699         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12700         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12701
12702 2006-01-20  Dirk Mueller  <dmueller@suse.com>
12703
12704         PR c++/5520
12705         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12706         instead of a special NOP marker.
12707         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12708         NOP marker handling.
12709         * c-common.h (empty_body_warning): Add forward declaration.
12710         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12711         Now uses IS_EMPTY_STMT() instead of special NOP markers.
12712
12713 2006-01-20  Paul Brook  <paul@codesourcery.com>
12714
12715         * Makefile.in (lang_checks): Keep going if mkdir fails.
12716
12717 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12718
12719         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12720         be able to clean out basic block when not necessary.
12721         (df_scan_free): Fixed to properly delete information if df is
12722         unused before calling df_finish.
12723         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12724         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12725         or comment typos.
12726         (df_bb_refs_delete): New function.
12727         (df_refs_delete): Moved per block code to df_bb_refs_delete.
12728         * df-core.c (df_set_blocks): Added code to properly clean out
12729         unused blocks if they are not part of the blocks to consider.
12730         Added additional null check.
12731         (df_compact_blocks): Added basic block parameter to free_bb_fun to
12732         be able to clean out basic block when not necessary
12733         * df.h (df_free_bb_function): Ditto.
12734         (df_bb_refs_delete): New function.
12735         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12736         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12737         basic block parameter to be able to clean out basic block when not
12738         necessary.
12739         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12740         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12741         Fixed to properly delete information if df is unused before
12742         calling df_finish.
12743
12744 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12745
12746         PR rtl-optimization/25799
12747         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12748         Corrected confluence operator to remove bits from op2 before oring
12749         with op1 rather than removing bits from op1.
12750         (df_ru_transfer_function): Corrected test on wrong bitmap which
12751         caused infinite loop.  Both of these problems were introduced in
12752         the dataflow rewrite.
12753
12754 2006-01-19  DJ Delorie  <dj@redhat.com>
12755
12756         * reload1.c (find_reload_regs): Note the details of reload
12757         failures in the dump file.
12758         (spill_failure): Likewise.
12759
12760 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12761
12762         * loop-iv.c: Include df.h and hashtab.h.
12763         (enum iv_grd_result): New enum.
12764         (DF_REF_IV, DF_REF_IV_SET): New macros.
12765         (struct biv_entry): New.
12766         (df, bivs): New global variables.
12767         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12768         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12769         Removed.
12770         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12771         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12772         analyzed_for_bivness_p, record_biv): New functions.
12773         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12774         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12775         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12776         UD chains.
12777         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12778         analysed.
12779         (iv_number_of_iterations): Use new interface to iv analysis.
12780         * loop-unroll.c: Do not include varray.h.
12781         (analyze_iv_to_split_insn): Use new interface to iv
12782         analysis.
12783         * loop-unswitch.c (may_unswitch_on): Ditto.
12784         * df.c (df_bitmaps_free): Only work for bbs for that structures are
12785         allocated.
12786         (df_bb_modify): Realloc tables to the new index.
12787         (df_find_use): New function.
12788         * df.h (df_find_use): Declare.
12789         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12790         outmode.
12791         * cfgloop.h (struct rtx_iv): Remove analysed field.
12792         (iv_get_reaching_def): Removed.
12793         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12794         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12795         (loop-iv.o): Add df.h and hashtab.h dependency.
12796         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12797
12798 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
12799
12800         PR target/25668
12801         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12802         Double TFmode.
12803         (__floatundisf, __floatundidf): Likewise.
12804         * libgcc2.h (IS_IBM_EXTENDED): Define.
12805
12806 2006-01-19  DJ Delorie  <dj@redhat.com>
12807
12808         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12809
12810 2006-01-19  Paul Brook  <paul@codesourcery.com>
12811
12812         * config/arm/arm.c (arm_compute_func_type): Treat all functions
12813         as nothrow when unwinding tables are disabled.
12814
12815 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12816
12817         PR testsuite/25171
12818         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12819         of bit-field" when in system header.
12820
12821 2006-01-19  DJ Delorie  <dj@redhat.com>
12822
12823         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
12824         the 16 bit shift limit of the m16c.
12825
12826 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
12827
12828         PR target/22099
12829         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
12830         * config/i386/i386.c (output_set_got): Output the label if we have one
12831         for the TARGET_DEEP_BRANCH_PREDICTION case.
12832
12833 2006-01-19  Jan Hubicka  <jh@suse.cz>
12834             H.J. Lu  <hongjiu.lu@intel.com>
12835             Evandro Menezes <evandro.menezes@amd.com>
12836
12837         * invoke.texi (generic): Document
12838         (i686) Update.
12839         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
12840         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
12841         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
12842         (x86_use_incdec, x86_pad_returns): New variables
12843         (TARGET_CPU_DEFAULT_generic): New constant
12844         (TARGET_CPU_DEFAULT_NAMES): Add generic.
12845         (enum processor_type): Add generic32 and generic64.
12846         * i386.md (cpu attribute): Add generic32/generic64
12847         (movhi splitter): Behave sanely when both partial_reg_dependency and
12848         partial_reg_stall are set.
12849         (K8 splitters): Enable for generic as well.
12850         * predicates.md (incdec_operand): Use TARGET_INCDEC
12851         (aligned_operand): Avoid memory mismatch stalls.
12852         * athlon.md: Enable for generic64, new patterns for 128bit moves.
12853         * ppro.md: Enable for generic32
12854         * i386.c (generic64_cost, generic32_cost): New.
12855         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
12856         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
12857         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
12858         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
12859         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
12860         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12861         x86_partial_reg_dependency, x86_memory_mismatch_stall,
12862         x86_accumulate_outgoing_args, x86_prologue_using_move,
12863         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
12864         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
12865         Enable for generic.
12866         (x86_use_incdec, x86_pad_returns): New.
12867         (override_options): Add generic32 and generic64, translate "generic"
12868         to generic32/generic64 and "i686" to "generic32", refuse
12869         "generic32"/"generic64" as arch target.
12870         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
12871         (ix86_reorg): Honor PAD_RETURNS.
12872
12873 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
12874
12875         * tree-pretty-print.c (dump_generic_node): Handle
12876         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
12877         * cgraph.c (cgraph_expand_queue): Rename from
12878         cgraph_analyze_queue.  Update all users.
12879         * cgraphunit.c (cgraph_assemble_pending_functions): Process
12880         cgraph_expand_queue.
12881         (cgraph_expand_all_functions): Likewise.
12882         (cgraph_finalize_pending_functions): Remove.  Update callers.
12883
12884         * tree.h (OMP_DIRECTIVE_P): Define.
12885         (OMP_PARALLEL_FN): Define.
12886         (OMP_PARALLEL_DATA_ARG): Define.
12887         (OMP_SECTIONS_SECTIONS): Define.
12888         * tree-pass.h (pass_expand_omp): Declare.
12889         * omp-low.c (struct omp_region): Declare.
12890         (struct omp_context): Remove fields 'parallel_type',
12891         'parallel_start_ix' and 'parallel_start_additional_args'.
12892         Update all users.
12893         (struct omp_for_data): Rename from struct expand_omp_for_data.
12894         (omp_regions): New static variable.
12895         (root_omp_region): New static variable.
12896         (find_omp_clause): Make static.
12897         (is_in_combined_parallel_ctx): Remove.
12898         (is_combined_parallel): New.
12899         (extract_omp_for_data): Move earlier in the file.
12900         (workshare_safe_to_combine_p): New.
12901         (get_ws_args_for): New.
12902         (determine_parallel_type): Move earlier in the file.
12903         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
12904         child function.
12905         (omp_copy_decl): Likewise.
12906         (create_omp_child_function): Likewise.
12907         (lookup_omp_region): New.
12908         (dump_omp_region): New.
12909         (debug_omp_region): New.
12910         (debug_all_omp_regions): New.
12911         (new_omp_region): New.
12912         (scan_omp_parallel): If parallel_nesting_level > 1, the
12913         directive is nested within another parallel directive.
12914         Set OMP_PARALLEL_FN.
12915         (scan_omp_for): Do not try to handle combined parallel+for
12916         cases.
12917         Remove FIXME comment.
12918         (scan_omp_nested): Remove.
12919         (scan_omp_1): Do not call scan_omp_nested when
12920         parallel_nesting_level is > 1.
12921         Do not change the DECL_CONTEXT of local variables found.
12922         (lookup_decl_in_outer_ctx): New.
12923         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
12924         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
12925         (lower_reduction_clauses): Rename from expand_reduction_clauses.
12926         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
12927         If CTX is nested, lookup VAR in the outer context when
12928         building copy assignment.
12929         (lower_send_clauses): Rename from expand_send_clauses.
12930         If CTX is nested, lookup VAR in the outer context when
12931         building copy assignments.
12932         (lower_send_shared_vars): Rename from expand_send_shared_vars.
12933         If CTX is nested, lookup VAR in the outer context when
12934         building copy assignments.
12935         (expand_parallel_call): Rename from build_parallel_call.
12936         Handle combined parallel+workshare cases.
12937         Re-implement to emit code into the CFG.
12938         (list2chain): New.
12939         (expand_omp_parallel): Re-implement to emit code into the CFG.
12940         Call move_sese_region_to_fn to outline the sub-graph
12941         containing the parallel region.
12942         (expand_omp_for_1): Remove.
12943         (expand_omp_for_generic): Re-implement to emit code into the
12944         CFG.
12945         (expand_omp_for_static_nochunk): Likewise.
12946         (expand_omp_for_static_chunk): Likewise.
12947         (expand_omp_for): Likewise.
12948         (expand_omp_sections): Likewise.
12949         (remove_exit_barriers): New.
12950         (expand_omp_synch): New.
12951         (expand_omp): New.
12952         (build_omp_regions_1): New.
12953         (build_omp_regions): New.
12954         (execute_expand_omp): New.
12955         (gate_expand_omp): New.
12956         (pass_expand_omp): Define.
12957         (lower_omp_sections): Rename from expand_omp_sections.
12958         Set OMP_SECTIONS_SECTIONS.
12959         (lower_omp_single_simple): Rename from expand_omp_single_simple.
12960         (lower_omp_single_copy): Rename from expand_omp_single_copy.
12961         (lower_omp_single): Rename from expand_omp_simple.
12962         (lower_omp_master): Rename from expand_omp_master.
12963         (lower_omp_ordered): Rename from expand_omp_ordered.
12964         (lower_omp_critical): Rename from expand_omp_critical.
12965         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
12966         (lower_omp_for): Re-implement.
12967         (lower_omp_parallel): Re-implement.
12968         (lower_regimplify): Rename from expand_regimplify.
12969         (lower_omp_1): Rename from expand_omp_1.
12970         If there are syntax errors in the program, replace every
12971         OpenMP directive with NOP.
12972         Call lower_omp_* instead of expand_omp_*.
12973         (lower_omp): Rename from expand_omp.
12974
12975         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
12976         * tree-gimple.h (enum omp_parallel_type): Remove.
12977         (gimple_boolify): Declare extern.
12978         (find_omp_clause, determine_parallel_type): Remove.
12979
12980         * gimple-low.c (lower_omp_directive): New.
12981         (lower_stmt): Call it.
12982         (record_vars_into): Move from ...
12983         (record_vars): ... here.
12984         Call record_vars_into with current_function_decl.
12985
12986         * gimplify.c (struct gimplify_ctx): Remove fields
12987         combined_pre_p and combined_ctxp.  Update users.
12988         (get_formal_tmp_var): Add documentation.
12989         (gimple_boolify): Make extern.
12990         (gimplify_expr_in_ctx): Remove.  Update callers.
12991         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
12992         will always be a BIND_EXPR.
12993         (gimplify_expr): Handle OMP_RETURN_EXPR.
12994         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
12995         (OMP_PARALLEL): Add 3 operands.
12996         (OMP_SECTIONS): Add 1 operand.
12997         (OMP_RETURN_EXPR): Define.
12998
12999         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
13000         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
13001         * tree-iterator.c (alloc_stmt_list): Assert that we are not
13002         creating a circular free list.
13003         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
13004
13005         * tree-flow.h (move_sese_region_to_fn): Declare.
13006         (record_vars_into): Declare.
13007         * tree-cfg.c (make_omp_sections_edges): New.
13008         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
13009         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
13010         OMP_SECTIONS and OMP_SECTION.
13011         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
13012         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
13013         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
13014         (gather_blocks_in_sese_region): New.
13015         (struct move_stmt_d): Declare.
13016         (move_stmt_r): New.
13017         (move_block_to_fn): New.
13018         (move_sese_region_to_fn): New.
13019
13020         * passes.c (init_optimization_passes): Schedule
13021         pass_expand_omp after pass_init_datastructures.
13022
13023         * tree-ssa-operands.c (get_expr_operands): Handle
13024         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
13025         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
13026
13027 2006-01-19  Jeff Law  <law@redhat.com>
13028
13029         * tree-vrp.c (extract_range_from_assert): Refine the result range
13030         if the variable referenced by the ASSERT_EXPR has a range and
13031         either the tentative result range or the previous range is a
13032         VR_ANTI_RANGE.
13033
13034 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
13035
13036         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
13037
13038 2006-01-19  Jan Hubicka  <jh@suse.cz>
13039
13040         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
13041
13042 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
13043
13044         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
13045         (expand_compound_operation, expand_field_assignment): Fail if the
13046         bit lengths of an extract operation are out of range.
13047         (make_extraction): Compute wanted_inner_mode based on the position
13048         and length of the extraction.  Make it extraction_mode for non-constant
13049         positions, and do not modify offset in that case.  When generating a
13050         new MEM, use a mode that can hold the extraction while keeping correct
13051         alignment.  Remove code that supported MEMs wrapped by USEs.
13052         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
13053
13054 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
13055
13056         * config/s390/s390.md ("Y", "y"): New mode attribute.
13057         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
13058         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
13059         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
13060         "*addsi3_imm_cc", "*addsi3_carry1_cc",
13061         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
13062         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
13063         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
13064         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
13065         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
13066         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
13067         "addsi3", "subsi3"): Insn patterns removed.
13068         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
13069         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
13070         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
13071         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
13072         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
13073         "*sub<mode>3_cconly2"): New insn patterns.
13074         ("addsi3", "subsi3"): New expanders.
13075
13076 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
13077
13078         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
13079         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
13080         existing STMT_VINFO_VECTYPE if available.
13081         (vect_mark_relevant): Add special handling for stmts that are
13082         marked as STMT_VINFO_IN_PATTERN_P.
13083         (vect_analyze_loop): Call vect_pattern_recog.
13084         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
13085         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
13086         stmt_info.
13087         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
13088         (vect_recog_func_ptr): New function-pointer type.
13089         * tree-vect-patterns.c: New file.
13090         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
13091         (vect_recog_dot_prod_pattern, vect_pattern_recog):
13092         (vect_pattern_recog_1): New functions.
13093         (vect_pattern_recog_funcs): New array of function pointers.
13094
13095         * tree-vectorizer.h (ternary_op): New enum value.
13096         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
13097         declaration. Revised documentation. Removed redundant dump prints.
13098         Removed redundant argument. Added support for reduction patterns.
13099         (vectorizable_reduction): Added support for reduction patterns.
13100         (vect_transform_stmt): Added support for patterns.
13101
13102         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
13103         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
13104         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
13105         (expand_widen_pattern_expr): New function.
13106         (init_optabs): Initialize new optabs udot_prod_optab,
13107         sdot_prod_optab.
13108         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
13109         (sdot_prod_optab, udot_prod_optab): Define new optabs.
13110         (expand_widen_pattern_expr): New function declaration.
13111         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
13112         tree-codes.
13113         * tree-inline.c (estimate_num_insns_1): Added cases for new
13114         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13115         * tree-pretty-print.c (dump_generic_node): Likewise.
13116         (op_prio): Likewise.
13117         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13118         * tree-ssa-operands.c (get_expr_operands): Added case for
13119         DOT_PROD_EXPR.
13120         * tree-vect-patterns.c (widened_name_p): New function.
13121         (vect_recog_dot_prod_pattern): Added function implementation.
13122         * tree-vect-transform.c (get_initial_def_for_reduction): Added
13123         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
13124         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
13125         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
13126
13127         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
13128         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
13129         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
13130         (init_optabs): Initialize new optabs widen_ssum_optab,
13131         widen_usum_optab.
13132         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
13133         (widen_ssum_optab, widen_usum_optab): Define new optabs.
13134         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
13135         use instead of type of def.
13136         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
13137         function implementation.
13138         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
13139         widen_ssumv8hi): New.
13140
13141         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
13142         patterns.
13143
13144 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
13145
13146         PR c/25805
13147         * c-decl.c (add_flexible_array_elts_to_size): New function.
13148         (finish_decl): Use it.
13149
13150 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13151
13152         * diagnostic.h: Include options.h.
13153         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
13154         dependancies for diagnostic.h.
13155         * Makefile.in (DIAGNOSTIC_H): Add options.h.
13156
13157 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
13158
13159         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
13160         (ssa_ro_call_cache_valid): Ditto.
13161         * tree-ssa-alias.c (sort_tags_by_id): New function.
13162         (init_transitive_clobber_worklist): Ditto.
13163         (add_to_worklist): Ditto.
13164         (mark_aliases_call_clobbered): Ditto.
13165         (compute_tag_properties): Ditto.
13166         (set_initial_properties): Ditto.
13167         (compute_call_clobbered): Ditto.
13168         (compute_may_aliases):  Call compute_call_clobbered and grouping.
13169         (compute_flow_sensitive_aliasing): Remove clobbering related code.
13170         (compute_flow_insensitive_aliasing): Grouping now happens in our
13171         caller.
13172         (setup_pointers_and_addressables): Remove clobbering related code.
13173         (add_may_alias): Ditto.
13174         (replace_may_alias): Ditto.
13175         (get_nmt_for): Ditto.
13176         (create_global_var):
13177         (is_escape_site): Return an escape_type enumeration.
13178         * tree-flow-inline.h (is_call_clobbered): Global var does not
13179         imply call clobbered.
13180         (mark_call_clobbered): Take a reason for marking this. Remove
13181         marking of globalness, and cache invalidation.
13182         (clear_call_clobbered): Remove cache invalidation code.
13183         * tree-dfa.c (dump_variable): If details is on, dump the reason
13184         for escaping.
13185         * tree-outof-ssa.c (create_temp): Copy escape mask from original
13186         variable.
13187         * tree-flow.h (struct ptr_info_def): Add escape mask member.
13188         (struct var_ann_d): Ditto.
13189         (enum escape_type): New.
13190         (mark_call_clobbered): Adjust prototype.
13191         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
13192         are never call clobbered.
13193         Record reasons for escaping.
13194         * tree-ssa-structalias.h (is_escape_site): Update prototype.
13195         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
13196         (ssa_ro_call_cache_valid): Ditto.
13197         (clobbered_v_may_defs): Ditto.
13198         (clobbered_vuses): Ditto.
13199         (ro_call_vuses): Ditto.
13200         (clobber_stats): New.
13201         (init_ssa_operands): Zero out clobber stats.
13202         (fini_ssa_operands): Print out clobber stats.
13203         (get_call_expr_operands): Pass callee fndecl to
13204         add_call_read_ops).
13205         (add_call_clobber_ops): Remove use of cache.
13206         Add use of PURE_CONST information.
13207         (add_call_read_ops): Remove use of cache.
13208         Add use of static not_read information.
13209
13210 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
13211
13212         Introduce TLS descriptors for i386 and x86_64.
13213         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
13214         (TARGET_ANY_GNU_TLS): New macro.
13215         (enum tls_dialect): Added TLS_DIALECT_GNU2.
13216         (struct machine_function): Add tls_descriptor_call_expanded_p.
13217         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
13218         (ix86_current_function_calls_tls_descriptor): Likewise.
13219         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
13220         (override_options): Introduce gnu2 tls dialect.
13221         (ix86_frame_pointer_required): Functions containing TLSCALLs are
13222         not leaves.
13223         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
13224         Likewise.
13225         (legitimize_tls_address): Adjust logic for GNU2 TLS.
13226         (ix86_init_machine_status): Initialize new field.
13227         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
13228         (ix86_tls_module_base): New.
13229         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
13230         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
13231         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
13232         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
13233         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
13234         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
13235         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
13236         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
13237         * config/i386/predicates.md (tls_modbase_operand): New.
13238         (tp_or_register_operand): New.
13239
13240 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
13241
13242         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
13243         (look_for_address_of): Ditto.
13244         (ipa_init): Walk the function decls.
13245         (static_execute): Don't set readonly on FUNCTION_DECL's.
13246
13247 2006-01-18  Roger Sayle  <roger@eyesopen.com>
13248
13249         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
13250         for shifts where the source and destination registers are different.
13251
13252 2006-01-18  Paul Brook  <paul@codesourcery.com>
13253
13254         Merge from csl-arm-branch.
13255         2005-03-14  Julian Brown  <julian@codesourcery.com>
13256         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
13257         (aeabi_llsl): Likewise.
13258         (ashrdi3): Likewise.
13259         (aeabi_lasr): Likewise.
13260         (lshrdi3): Likewise.
13261         (aeabi_llsr): Likewise.
13262         2005-03-10  Julian Brown  <julian@codesourcery.com>
13263         * config.gcc: Disable shared libgcc for SymbianOS.
13264         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
13265
13266 2006-01-18  DJ Delorie  <dj@redhat.com>
13267
13268         * c-pragma.c (handle_pragma_diagnostic): New.
13269         (init_pragma): Register it.
13270         * doc/extend.texi: Document it.
13271
13272         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
13273         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
13274         (diagnostic_context): Add classify_diagnostic[].
13275         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
13276         as errors if they're overridden to DK_WARNING.
13277         (diagnostic_initialize): Initialize classify_diagnostic[].
13278         (diagnostic_set_kind_override): New.
13279         (diagnostic_report_diagnostic): Check for kind changes.
13280         * opts.c (common_handle_option): Take lang_mask.  Update callers.
13281         Handle OPT_Werror_.
13282         * common.opt (Werror=): New.
13283         * doc/invoke.texi: Document -Werror=*
13284
13285 2006-01-18  Jeff Law  <law@redhat.com>
13286
13287         * tree-vrp.c (test_for_singularity): Correct test for new
13288         min limit.  Use operand_equal_p rather than pointer equality
13289         for testing if new min/max values are equal.
13290
13291         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
13292         using range information until after propagation and folding.
13293
13294 2006-01-18  Richard Henderson  <rth@redhat.com>
13295             Aldy Hernandez  <aldyh@redhat.com>
13296             Jakub Jelinek  <jakub@redhat.com>
13297             Diego Novillo  <dnovillo@redhat.com>
13298
13299         * omp-low.c: New file.
13300         * c-omp.c: New file.
13301
13302 2006-01-18  Richard Henderson  <rth@redhat.com>
13303             Jakub Jelinek  <jakub@redhat.com>
13304             Diego Novillo  <dnovillo@redhat.com>
13305
13306         * doc/invoke.texi: Document -fopenmp.
13307         * tree-dump.h (debug_function): Declare.
13308         * hooks.c (hook_bool_tree_bool_false): New function.
13309         (hook_tree_tree_null): Remove.
13310         (hook_tree_tree_tree_null): New.
13311         * hooks.h: Update to match.
13312         * tree-pretty-print.c (debug_tree_chain): New.
13313         (print_generic_expr): Handle TDF_CHAIN.
13314         (dump_generic_node): Handle BLOCK.
13315         Do not abort with incomplete SWITCH_EXPRs.
13316         Do not dump body of an OpenMP directive if TDF_SLIM is given.
13317         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
13318         print space after directive name.
13319         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
13320         Handle OMP_MASTER and OMP_ORDERED.
13321         Handle printing of OMP_BODY just in one place, goto
13322         dump_omp_body in the rest of OMP_* nodes that have
13323         OMP_BODY.
13324         Don't handle clause nodes here.  Update omp statements to
13325         use dump_omp_clauses.
13326         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
13327         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
13328         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
13329         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
13330         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
13331         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
13332         Adjust output for GOMP_PARALLEL.
13333         (dump_omp_clauses): New.
13334         (print_declaration): Dump DECL_VALUE_EXPR.
13335         (op_symbol_1): Split out of op_symbol.
13336         (dumping_stmts): Remove.  Update all users.
13337         * cgraph.c (cgraph_analyze_queue): New.
13338         (cgraph_add_new_function): New.
13339         * cgraph.h (cgraph_analyze_queue): Declare.
13340         (cgraph_add_new_function): Declare.
13341         (cgraph_lower_function): Remove.
13342         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
13343         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
13344         and TYPE_P nodes in its default clause.
13345         (empty_body_p): New.
13346         (tree_range_check_failed): New.
13347         (build5_stat): New.
13348         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
13349         OMP_CLAUSE_REDUCTION_MERGE,
13350         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
13351         OMP_CLAUSE_PRIVATE_DEBUG,
13352         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
13353         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
13354         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
13355         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
13356         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
13357         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
13358         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
13359         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
13360         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
13361         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
13362         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
13363         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
13364         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
13365         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
13366         (TREE_RANGE_CHECK): New.
13367         (empty_body_p): Declare.
13368         (enum omp_clause_default_kind): New.
13369         (build_string_literal): Declare.
13370         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
13371         (build5_stat, build5): Declare.
13372         * tree-pass.h (TDF_CHAIN): Define.
13373         * tree-pass.h (PROP_gimple_lomp): Define.
13374         (pass_lower_omp): Declare.
13375         * diagnostic.h (debug_tree_chain): Declare.
13376         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
13377         mode_for_size.
13378         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
13379         * builtins.c (build_string_literal): Make extern.
13380         * gcc.c (include_spec_function): New.
13381         (static_spec_functions): Add it.
13382         (main): Move load of libgomp.spec ...
13383         (LINK_COMMAND_SPEC): ... here.
13384         (link_gomp_spec): New.
13385         (static_specs): Include it.
13386         (LINK_COMMAND_SPEC): Add link_gomp.
13387         (GOMP_SELF_SPECS): New.
13388         (driver_self_specs): Include it.
13389         (switch_matches): Don't mark inline.
13390         (main): Load libgomp.spec.
13391         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
13392         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
13393         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
13394         * tree-gimple.h (enum omp_parallel): Declare.
13395         (determine_parallel_type): Declare.
13396         (omp_firstprivatize_variable): Declare.
13397         (omp_reduction_init): Declare.
13398         (diagnose_omp_structured_block_errors): Declare.
13399         (struct walk_stmt_info): Add want_return_expr.
13400         (struct walk_stmt_info): Add want_bind_expr, want_locations.
13401         (find_omp_clause): Declare.
13402         (insert_field_into_struct): Declare.
13403         (struct walk_stmt_info): Move from tree-nested.c
13404         (walk_stmts): Declare.
13405         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
13406         to 200505.
13407         * cgraphunit.c (cgraph_lower_function): Make static.
13408         (cgraph_finalize_pending_functions): New.
13409         (cgraph_finalize_function): Call it.
13410         (cgraph_finalize_compilation_unit): Likewise.
13411         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
13412         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
13413         (BT_FN_UINT_UINT): New.
13414         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
13415         DEF_FUNCTION_TYPE_VAR_4): Document.
13416         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
13417         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
13418         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
13419         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
13420         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
13421         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
13422         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
13423         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
13424         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
13425         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
13426         into separate files.
13427         (DEF_GOMP_BUILTIN): New.
13428         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
13429         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
13430         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
13431         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
13432         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
13433         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
13434         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
13435         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
13436         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
13437         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
13438         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
13439         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
13440         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
13441         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
13442         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
13443         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
13444         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
13445         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
13446         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
13447         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
13448         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
13449         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
13450         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
13451         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
13452         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
13453         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
13454         * sync-builtins.def: New file, moved from builtins.def.
13455         * omp-builtins.def: New file, moved from builtins.def.
13456         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
13457         * gimple-low.c (lower_function_body): Clear data.
13458         (lower_stmt): Do not handle COMPOUND_EXPR.
13459         Remove call to print_node_brief.
13460         * c-tree.h (c_finish_omp_clauses): New prototype.
13461         (C_DECL_THREADPRIVATE_P): Define.
13462         (lookup_name_no_remap, c_omp_remap_private): Remove
13463         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
13464         (check_for_loop_decls): Update decl.
13465         (lookup_name_no_remap, c_omp_remap_private): Declare.
13466         (build_indirect_ref, build_modify_expr, pushdecl,
13467         pushdecl_top_level): Move to c-common.h.
13468         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
13469         before the switch, but just in the 2 places that need it.
13470         * c-decl.c (diagnose_mismatched_decls): Do not check for
13471         mismatched thread-local attributes when OLDDECL is marked
13472         threadprivate and NEWDECL has no thread-local attributes.
13473         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
13474         (c_gimple_diagnostics_recursively): Rename from
13475         c_warn_unused_result_recursively.  Invoke
13476         diagnose_omp_structured_block_errors.
13477         (check_for_loop_decls): Return a singular decl found.
13478         * langhooks.c (lhd_omp_predetermined_sharing): Return
13479         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
13480         (lhd_omp_firstprivatize_type_sizes): New.
13481         (lhd_omp_assignment): New.
13482         (lhd_omp_predetermined_sharing): New.
13483         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
13484         (struct lang_hooks_for_types): Add
13485         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
13486         omp_predetermined_sharing, omp_disregard_value_expr,
13487         omp_private_debug_clause, omp_clause_default_ctor,
13488         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
13489         (c_finish_omp_clauses): New.
13490         (c_finish_bc_stmt): Diagnose break within omp for.
13491         (c_begin_omp_parallel, c_finish_omp_parallel): New.
13492         (build_unary_op): Return error_mark after reporting
13493         a readonly_error.
13494         (build_modify_expr): Likewise.
13495         * gimplify.c: Include optabs.h and pointer-set.h.
13496         (enum gimplify_omp_var_data): Declare.
13497         (struct gimplify_omp_ctx): Declare.
13498         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13499         and combined_ctxp.
13500         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13501         (push_gimplify_context, pop_gimplify_context): Allow nesting.
13502         (splay_tree_compare_decl_uid): New.
13503         (new_omp_context): New.
13504         (delete_omp_context): New.
13505         (gimple_add_tmp_var): Call omp_add_variable.
13506         (gimplify_bind_expr): Likewise.
13507         (gimplify_var_or_parm_decl): If omp_notice_variable returned
13508         true, disregard DECL_VALUE_EXPR on the decl if any.
13509         (gimplify_expr_in_ctx): New.
13510         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13511         omp_add_variable, omp_notice_variable, omp_is_private
13512         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13513         gimplify_adjust_omp_clauses, gimplify_omp_parallel
13514         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13515         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13516         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13517         gimplify_omp_atomic): New.
13518         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13519         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13520         OMP_CRITICAL and OMP_ATOMIC.
13521         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13522         * c-pragma.h (enum pragma_kind): Add
13523         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13524         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13525         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13526         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13527         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13528         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13529         PRAGMA_OMP_THREADPRIVATE.
13530         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13531         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13532         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13533         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13534         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13535         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13536         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13537         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13538         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13539         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13540         * tree-ssa-dce.c (find_control_dependence): Do not assume that
13541         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13542         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13543         OpenMP directives.
13544         (struct nesting_info): Add field_map,
13545         suppress_expansion, debug_var_chain.
13546         (create_nesting_tree): Initialize them.
13547         (lookup_field_for_decl): Use field_map.
13548         (get_nonlocal_debug_decl, get_local_debug_decl): New.
13549         (convert_local_omp_clauses): New.
13550         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13551         (walk_body): Split out of walk_function.
13552         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13553         (convert_nonlocal_reference): Handle omp statements.
13554         (convert_local_reference): Likewise.
13555         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13556         (unnest_nesting_tree): New.
13557         (lower_nested_functions): Call it.
13558         (insert_field_into_struct): Make extern.
13559         (struct walk_stmt_info): Move to tree-gimple.h.
13560         (walk_stmts): Make extern.
13561         * omp-builtins.def: New file.
13562         * tree-iterator.c (expr_only): Clarify comment.
13563         * c-common.h (pushdecl_top_level, pushdecl,
13564         build_modify_expr, build_indirect_ref,
13565         c_finish_omp_master, c_finish_omp_critical,
13566         c_finish_omp_ordered, c_finish_omp_barrier,
13567         c_finish_omp_atomic, c_finish_omp_flush,
13568         c_finish_omp_for, c_split_parallel_clauses,
13569         omp_clause_default_kind, c_omp_sharing_predetermined,
13570         c_omp_remap_decl): Declare.
13571         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13572         (OBJS-common): Add omp-low.o.
13573         (c-omp.o, omp-low.o): Add.
13574         (gimplify.o): Add dependency on $(OPTABS_H).
13575         (GTFILES): Add omp-low.c.
13576         (gt-stringpool.h): Add.
13577         * tree-cfg.c (set_bb_for_stmt): Do not update the
13578         block-to-labels map if we are currently expanding to RTL.
13579         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13580         checks.
13581         Handle IDENTIFIER_NODE.
13582         (tree_verify_flow_info): Do not ICE when emitting error
13583         messages about invalid labels.
13584         (dump_function_to_file): Reset CFUN before emitting the body
13585         of the function.
13586         (debug_function): New.
13587         * passes.c (init_optimization_passes): Schedule
13588         pass_lower_omp.
13589         * langhooks-def.h (lhd_omp_predetermined_sharing,
13590         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13591         Declare.
13592         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13593         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13594         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13595         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13596         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13597         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13598         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13599         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13600         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13601         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13602         (LANG_HOOK_DECLS): Use them.
13603
13604 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13605             Richard Henderson  <rth@redhat.com>
13606             Jakub Jelinek  <jakub@redhat.com>
13607             Diego Novillo  <dnovillo@redhat.com>
13608
13609         * c-parser.c (pragma_omp_clause): Define.
13610         (c_parser_declaration_or_fndef): Document OpenMP syntax.
13611         (c_parser_compound_statement): Likewise.
13612         (c_parser_statement): Likewise.
13613         (c_parser_pragma): Handle omp pragmas.
13614         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13615         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13616         (c_parser_omp_clause_name, check_no_duplicate_clause,
13617         c_parser_omp_variable_list,
13618         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13619         c_parser_omp_clause_copyprivate,
13620         c_parser_omp_clause_default,
13621         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13622         c_parser_omp_clause_lastprivate,
13623         c_parser_omp_clause_nowait,
13624         c_parser_omp_clause_num_threads,
13625         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13626         c_parser_omp_clause_reduction,
13627         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13628         c_parser_omp_all_clauses, c_parser_omp_structured_block,
13629         c_parser_omp_atomic, c_parser_omp_barrier,
13630         c_parser_omp_critical, c_parser_omp_flush,
13631         c_parser_omp_for_loop, c_parser_omp_for,
13632         c_parser_omp_master, c_parser_omp_ordered,
13633         c_parser_omp_sections_scope, c_parser_omp_sections,
13634         c_parser_omp_parallel, c_parser_omp_single,
13635         c_parser_omp_construct, c_parser_omp_threadprivate): New.
13636         * c-pragma.c (init_pragma): Do omp pragma registration here.
13637         * c.opt (fopenmp): New flag.
13638
13639 2006-01-18  Eric Christopher  <echristo@apple.com>
13640
13641         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13642         * config/darwin.h (GOMP_SELF_SPECS): Define.
13643
13644 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13645
13646         * rtl.h: Remove the prototype for reg_alloc.
13647
13648 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13649
13650         PR target/25731
13651         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13652         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13653         sjlj and dwarf2 exception handling.
13654         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13655         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13656         * pa/pa.c (function_value): Treat complex and vector types as
13657         aggregates.
13658         (function_arg): Likewise.  Only pass scalar floats in the floating
13659         point argument registers.
13660         * pa/t-slibgcc-dwarf-ver: New file.
13661         * pa/t-slibgcc-sjlj-ver: New file.
13662         * pa/t-slibgcc-elf-ver: Delete file.
13663
13664 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
13665
13666         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13667         unlikely_test_section_p test.
13668
13669 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13670
13671         * mode-switching.c (optimize_mode_switching): Make it static.
13672         * basic-block.h: Remove the prototype for
13673         optimize_mode_switching.
13674
13675         * modulo-sched.c (sms_schedule): Make it static.
13676         * rtl.h: Remove the prototype for sms_schedule.
13677
13678         * postreload-gcse.c (gcse_after_reload_main): Make it static.
13679         * rtl.h: Remove the prototype for gcse_after_reload_main.
13680
13681         * reg-stack.c (reg_to_stack): Make it static.
13682         * rtl.h: Remove the prototype for reg_to_stack.
13683
13684         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13685         Make them static.
13686         * rtl.h: Remove the prototypes for regrename_optimize and
13687         copyprop_hardreg_forward.
13688
13689 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13690
13691         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13692         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
13693         Test against the appropriate null constant for the mode.
13694         If 'fixup_overlap' is true, swap the operands if they overlap.
13695         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13696         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13697         alpha_split_tmode_pair and adjust for above change.
13698         * config/alpha/alpha.md (movtf_internal): Adjust call to
13699         alpha_split_tfmode_pair and rely on it to swap the operands.
13700         (movti_internal): New insn and post-reload splitter.
13701         (movti): New expander.
13702
13703 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
13704
13705         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13706         operands.
13707
13708 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13709
13710         * rtlanal.c (global_reg_mentioned_p_1,
13711         global_reg_mentioned_p): Remove.
13712         * rtl.h: Remove the prototype for global_reg_mentioned_p.
13713
13714         * flow.c (initialize_uninitialized_subregs): Make it static.
13715         * rtl.h: Remove the prototype for
13716         initialize_uninitialized_subregs.
13717
13718         * function.c (instantiate_virtual_regs): Make it static.
13719         * function.h: Remove the prototype for
13720         instantiate_virtual_regs.
13721
13722         * regmove.c (regmove_optimize, combine_stack_adjustments):
13723         Make them static.
13724         * rtl.h: Remove the prototypes for regmove_optimize and
13725         combine_stack_adjustments.
13726
13727 2006-01-17  Roger Sayle  <roger@eyesopen.com>
13728
13729         * config/i386/i386.c (COSTS_N_BYTES): New macro.
13730         (size_cost): Encode costs in bytes so that a reg-reg addition is
13731         equivalent to COSTS_N_INSNS(1).
13732         (override_options): Use the size_cost.branch_cost as the default
13733         ix86_branch_cost when optimizing for size.
13734
13735 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13736
13737         * Makefile.in (D32PBIT_FUNCS): New.
13738         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13739         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13740         D64PBIT_FUNCS and D128PBIT_FUNCS.
13741         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13742         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13743         D128PBIT are set.
13744         (decnumber_dep): Define.
13745         * doc/libgcc.texi (Decimal float library routines): New node.
13746         * config/dfp-bit.h, config/dfp-bit.c: New files.
13747
13748 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13749
13750         * expr.c (emit_move_change_mode): Always adjust addresses, not
13751         just during reload.  Copy replacements only during reload.
13752         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13753         emit_move_via_integer.
13754
13755 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
13756
13757         * Makefile.in (check-%, check-consistency): Use $${srcdir}
13758         instead of $(srcdir) and ${srcdir}.
13759
13760 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
13761
13762         PR target/592
13763         PR middle-end/11135
13764         * arm.h (struct machine_function): Add pic_reg.
13765         * arm.c (arm_pic_register): Make unsigned.
13766         (arm_override_options): Only set arm_pic_register if
13767         TARGET_SINGLE_PIC_BASE.
13768         (use_return_insn): Only test for a pic register if it is fixed.
13769         (arm_compute_save_reg0_reg12_mask): Likewise.
13770         (thumb_compute_save_reg_mask): Likewise.
13771         (legitimate_pic_operand): Factor out some known invariants.
13772         (legitimize_pic_address): If we don't have a fixed pic register,
13773         then set up a pseudo in the function entry sequence.  Handle the
13774         pic base being in a pseudo.
13775         (arm_load_pic_register): Handle the pic register being in a pseudo.
13776         (arm_expand_prologue): Only set up the pic register if it is fixed.
13777         (thumb_expand_prologue): Likewise.
13778         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13779         (pic_load_addr_based_insn): Likewise.
13780         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13781         fixed.
13782
13783 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13784
13785         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13786         decimal float modes for all floating point registers.
13787
13788         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13789         match_code "mem" with match_test "macho_lo_sum_memory_operand".
13790
13791 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
13792
13793         PR c/25682
13794         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13795         even when the pointer is not NULL.
13796
13797 2006-01-16  Ian Lance Taylor  <ian@airs.com>
13798
13799         * common.opt (ftoplevel-reorder): New option.
13800         * cgraph.c (cgraph_asm_nodes): New global variable.
13801         (cgraph_asm_last_node): New static variable.
13802         (cgraph_order): New global variable.
13803         (cgraph_create_node): Set new order field.
13804         (cgraph_varpool_node): Likewise.
13805         (decide_is_variable_needed): Return true if not
13806         flag_toplevel_reorder.
13807         (cgraph_add_asm_node): New function.
13808         * cgraph.h (struct cgraph_node): Add order field.
13809         (struct cgraph_varpool_node): Add order field.
13810         (struct cgraph_asm_node): Define.
13811         (cgraph_asm_nodes, cgraph_order): Declare.
13812         (cgraph_add_asm_node): Declare.
13813         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13814         function.
13815         (cgraph_varpool_assemble_pending_decls): Call it.
13816         (cgraph_output_pending_asms): New static function.
13817         (cgraph_finalize_compilation_unit): Call it.
13818         (struct cgraph_order_sort): Define.
13819         (cgraph_output_in_order): New static function.
13820         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
13821         !flag_toplevel_reorder case.
13822         * c-parser.c: Include "cgraph.h".
13823         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
13824         assemble_asm.
13825         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
13826         than -fno-unit-at-a-time.
13827         * doc/invoke.texi (Option Summary): Mention
13828         -fno-toplevel-reorder.
13829         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
13830         -funit-at-a-time documentation.
13831
13832 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
13833             Kazu Hirata  <kazu@codesourcery.com>
13834
13835         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
13836
13837 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
13838
13839         * Makefile.in (FUNCTION_H): New.  Use it instead of
13840         function.h throughout the file.
13841         * function.h: Include tree.h.
13842
13843 2006-01-17  Ben Elliston  <bje@au.ibm.com>
13844
13845         * recog.c: Separate some functions with whitespace.
13846
13847 2006-01-16  Richard Henderson  <rth@redhat.com>
13848
13849         Merge from gomp branch:
13850         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
13851         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
13852         and rename from struct inline_data.  Rename callee* to dst*;
13853         caller* to src*; add copy_decl hook, transform_call_graph_edges,
13854         transform_new_cfg, transform_return_to_modify, and
13855         transform_lang_insert_block flags; remove cloning_p, versioning_p,
13856         update_clones_p.
13857         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
13858         (copy_decl_for_dup): Remove.
13859         * tree-inline.c (struct inline_data): Move to header.
13860         (insert_decl_map): Export.
13861         (remap_decl): Update for member name changes.  Use copy_decl hook.
13862         Allow for replacement to be a non-decl.  Remove dead code.
13863         (remap_type_1): Check for existing mapping.
13864         (remap_type): Export.
13865         (remap_decls): Update for member name changes.
13866         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
13867         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
13868         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
13869         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
13870         (tree_function_versioning, build_duplicate_type): Likewise.
13871         (copy_body_r): Likewise.  Export.
13872         (copy_decl_for_dup): Split into ...
13873         (copy_decl_for_dup_finish, copy_decl_to_var,
13874         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
13875         (replace_ref_tree, inlining_p): Remove.
13876
13877 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13878
13879         * ifcvt.c (if_convert): Make it static.
13880         * rtl.h: Remove the prototype for if_convert.
13881
13882         * local-alloc.c (local_alloc): Make it static.
13883         * rtl.h: Remove the prototype for local_alloc.
13884
13885         * loop.c (loop_optimize): Make it static.
13886         * cfgloop.h: Remove the prototype for loop_optimize.
13887         * rtl.h: Likewise.
13888
13889 2006-01-16  DJ Delorie  <dj@redhat.com>
13890
13891         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
13892         mems.
13893
13894 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13895
13896         * pa.md: Disparage copies between general and floating-point registers
13897         in 32-bit move patterns.
13898
13899 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
13900
13901         PR testsuite/25741
13902         * Makefile.in (check-%): Depend on site.exp instead of
13903         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
13904         directories.
13905
13906 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13907
13908         * global.c (global_alloc): Make it static.
13909         * rtl.h: Remove the prototype for global_alloc.
13910
13911 2006-01-16  Richard Guenther  <rguenther@suse.de>
13912
13913         * tree-ssa-alias.c (struct used_part): Add write_only field.
13914         (get_or_create_used_part_for): Initialize it to true.
13915         (create_overlap_variables_for): Don't create structure variables
13916         for structures that only are written to.
13917         (find_used_portions): Handle MODIFY_EXPR to track whether a
13918         structure is only written to.
13919
13920 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13921
13922         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
13923         static.
13924         * basic-block.h: Remove the prototype for
13925         partition_hot_cold_basic_blocks.
13926
13927 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
13928
13929         * cppspec.c (lang_specific_spec_functions): Remove.
13930         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
13931         * gcc.h (lang_specific_spec_functions): Remove.
13932         * gccspec.c (lang_specific_spec_functions): Remove.
13933
13934 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
13935
13936         * combine.c (record_value_for_reg): Invalidate registers
13937         if INSN is null.
13938         (record_dead_and_set_regs_1): Likewise, by passing them to
13939         record_value_for_reg.
13940         (record_dead_and_set_regs): Invalidate stores made by a
13941         call.  We do not combine across a call, but we still
13942         relied on equivalences.
13943
13944 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13945
13946         * tree-vrp.c (extract_range_from_binary_expr): Cope with
13947         vrp_int_const_binop returning non-constant nodes.
13948
13949 2006-01-16  Paul Brook  <paul@codesourcery.com>
13950
13951         * config/m68k/m68k.c (output_move_const_into_data_reg):
13952         Output correct mnemonic for mvz and mvs.
13953
13954 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
13955
13956         * rtl-factoring.c: Add sequence abstraction algorithm.
13957         * cfgcleanup.c (outgoing_edges_match): Extra checks.
13958         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
13959         ABNORMAL edges.
13960         (block_has_preserve_label): New function.
13961         * common.opt: Register new pass.
13962         * Makefile.in: Ditto.
13963         * passes.c: Ditto.
13964         * timevar.def: Ditto.
13965         * tree-pass.h: Ditto.
13966         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
13967         * rtl.h (make_jump_insn_raw): Add forward decl.
13968         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
13969
13970 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13971             Roger Sayle  <roger@eyesopen.com>
13972
13973         * fold-const.c (fold_minmax): New static function.
13974         (fold_binary) <MIN_EXPR>: Call it.
13975         <MAX_EXPR>: Likewise.
13976         * stor-layout.c (place_field): Use DECL_SIZE consistently
13977         in the computation of the new record size.
13978
13979 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13980
13981         * cse.c (cse_condition_code_reg): Make it static.
13982         * rtl.h: Remove the prototype for cse_condition_code_reg.
13983
13984         * combine.c (combine_instructions): Make it static.
13985         * rtl.h: Remove the prototype for combine_instructions.
13986
13987 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13988
13989         PR target/25168
13990         * tree.c (get_file_function_name_long): Concatenate the first global
13991         object name with a string derived from the input filename of the object
13992         for type "F".
13993
13994 2006-01-16  Ben Elliston  <bje@au.ibm.com>
13995
13996         * config/i386/winnt-stubs.c: Update FSF address.
13997         * config/xtensa/ieee754-df.S: Ditto.
13998         * config/xtensa/ieee754-sf.S: Ditto.
13999
14000 2006-01-14  Ian Lance Taylor  <ian@airs.com>
14001
14002         * ifcvt.c (noce_init_if_info): New static function, broken out of
14003         noce_process_if_block.
14004         (noce_process_if_block): Call noce_init_if_info.
14005         (check_cond_move_block): New static function.
14006         (cond_move_process_if_block): New static function.
14007         (process_if_block): Call cond_move_process_if_block.
14008
14009 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
14010
14011         * cselib.c (hash_table): Rename to cselib_hash_table.
14012         (cselib_clear_table, discard_useless_values,
14013         remove_useless_values, cselib_lookup_mem, cselib_lookup,
14014         cselib_init, cselib_finish): Adjust uses of hash_table.
14015
14016 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
14017
14018         PR tree-optimization/25485
14019         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
14020         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
14021         is known to be false and true, respectively.
14022
14023 2006-01-14  Richard Guenther  <rguenther@suse.de>
14024
14025         PR tree-optimization/22548
14026         PR tree-optimization/22555
14027         PR tree-optimization/22501
14028         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
14029         * params.def (salias-max-array-elements): New parameter.
14030         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
14031         * doc/invoke.texi (salias-max-array-elements): Document.
14032         * tree-flow-inline.h (var_can_have_subvars): We also handle
14033         arrays now.
14034         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
14035         COMPONENT_REF.
14036         * tree-ssa-structalias.c (params.h): Include.
14037         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
14038         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
14039         (get_constraint_for): For ADDR_EXPR operating on something
14040         containing an ARRAY_REF, add all subvars to the solution.
14041         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
14042         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
14043         for creating MUST_DEFs.
14044         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
14045
14046 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
14047
14048         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
14049         functions.
14050         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
14051         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
14052         number_of_iterations_le): New functions.
14053         (number_of_iterations_special): Removed.
14054         (number_of_iterations_exit): Do not use number_of_iterations_special.
14055         * tree.c (unsigned_type_for): Always return integer type.
14056
14057 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
14058         Richard Guenther  <rguenther@suse.de>
14059
14060         PR rtl-optimization/24257
14061         * gcse.c (find_moveable_store): Only consider a store movable
14062         when the SET_SRC of the insn can be assigned to a register.
14063
14064 2006-01-14  Ian Lance Taylor  <ian@airs.com>
14065
14066         * tree.c (tree_not_class_check_failed): New function.
14067         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
14068         (tree_not_class_check_failed): Declare.
14069
14070 2006-01-13  Ian Lance Taylor  <ian@airs.com>
14071
14072         * reload1.c (do_output_reload): Add assertion rejecting a
14073         CALL_INSN.
14074
14075 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
14076
14077         * combine.c (struct reg_stat): Add new fields truncation_label and
14078         truncated_to_mode.
14079         (record_value_for_reg): Reset truncated_to_mode.
14080         (record_truncated_value): New function.
14081         (check_promoted_subreg): Call it.  Rename to check_conversions.
14082         (combine_instructions): Rename check_promoted_subreg to
14083         check_conversions.
14084         (reg_truncated_to_mode): New function.
14085         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
14086         (gen_lowpart_or_truncate): New function.
14087         (force_to_mode): Use it instead of gen_lowpart.
14088
14089 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
14090
14091         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
14092         VAR is a tag, not its type tag.
14093
14094 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
14095
14096         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
14097         alternatives to match style of other entries.
14098         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
14099
14100 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
14101
14102         PR tree-optimization/25771
14103         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
14104         SSA_NAMES.
14105
14106 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
14107
14108         PR tree-opt/24365
14109         * tree-inline.c (declare_return_variable): If the return variable
14110         was marked as a non gimple complex, set the return slot variable
14111         to be a non gimple comple variable.
14112
14113 2006-01-13  Richard Guenther  <rguenther@suse.de>
14114
14115         * builtins.c (expand_builtin_sincos): New function.
14116         (expand_builtin_mathfn_3): Remove dead code, sin and cos
14117         do not set errno.
14118         (expand_builtin): Expand sincos using expand_builtin_sincos.
14119
14120 2006-01-12  DJ Delorie  <dj@redhat.com>
14121
14122         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
14123         shift counts, separate SI shifts for m32c vs m16c, pass shift type
14124         so that constant shifts can be split.
14125         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
14126         (m32c_valid_pointer_mode): Make static.
14127         (shift_gen_func_for): New.
14128         (m32c_prepare_shift): Use it.  Split large const shifts into
14129         multiple shifts.
14130         * config/m32c/predicates.md (shiftcount_operand): Allow more
14131         general operands.
14132         (longshiftcount_operand): New.
14133         * doc/md.texi (Machine Constraints): Document In6.
14134
14135 2006-01-13  Ben Elliston  <bje@au.ibm.com>
14136
14137         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
14138         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
14139         documentation.
14140
14141 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
14142
14143         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
14144         to try to avoid clobbering pieces of structures when we know
14145         something about the whole structure.
14146         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
14147
14148 2006-01-13  Ben Elliston  <bje@au.ibm.com>
14149
14150         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
14151         return in memory, as this is no limitation is no longer present.
14152
14153 2006-01-12  DJ Delorie  <dj@redhat.com>
14154
14155         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
14156         mova with fb, and for fb+0 -> An.
14157
14158         * config/m32c/mov.md (peephole2): Fix enabling logic.
14159
14160         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
14161         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
14162         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
14163         FINI_ARRAY_SECTION_ASM_OP): Define.
14164
14165         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
14166         variable.
14167         (m32c_legitimize_reload_address): New logic to reload FB to An.
14168         (m32c_output_reg_push): Add newline.
14169         (m32c_output_reg_pop): Likewise.
14170
14171 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
14172
14173         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
14174
14175 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
14176
14177         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
14178
14179 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14180
14181         * config/sh/predicates.md (sh_rep_vec): Add parallel to
14182         match_code.
14183
14184 2006-01-11  Ben Elliston  <bje@au.ibm.com>
14185
14186         * rtlanal.c (find_reg_note): Assert insn is not null.
14187
14188 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
14189
14190         * df-scan.c (df_hard_reg_init): Move declaration of i outside
14191         ifdef.
14192
14193 2006-01-11  Jeff Law  <law@redhat.com>
14194
14195         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
14196         hold edge pairs.
14197         (mark_threaded_blocks, register_jump_thread): New functions.
14198         (thread_through_all_blocks): Remove unwanted argument.  No
14199         longer rely on e->aux to communicate thread target info.
14200         Call mark_threaded_blocks.  Release the threaded_blocks
14201         bitmap and threaded_edges vector when complete.
14202         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
14203         (threaded_blocks): Remove.
14204         (tree_ssa_dominator_optimize): Remove initialization and
14205         finalization of threaded_blocks.  Simplify call to
14206         thread_through_all_blocks.
14207         (thread_across_edge): Call register_jump_thread rather than
14208         storing thread information into e->aux.
14209         (free_all_edge_infos): Simplify now that e->aux is no longer
14210         used to communicate with thread_through_all_blocks.
14211         * tree-flow.h (thread_through_all_blocks): Update prototype.
14212         (register_jump_thread): Prototype.
14213
14214 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14215
14216         * df-core.c (df_compact_blocks, df_bb_replace): Use
14217         SET_BASIC_BLOCK instead of BASIC_BLOCK.
14218
14219 2006-01-11  Richard Guenther  <rguenther@suse.de>
14220
14221         PR tree-optimization/25734
14222         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
14223         stop propagation after successful propagation to the LHS.
14224
14225 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14226
14227         * basic-block.h (control_flow_graph): Change the type of
14228         x_basic_block_info to VEC(basic_block,gc) *.
14229         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
14230         basic_block_info.
14231         (SET_BASIC_BLOCK): New.
14232         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
14233         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
14234         * cfgbuild.c (find_basic_blocks): Likewise.
14235         * cfglayout.c (fixup_reorder_chain): Likewise.
14236         * cfgrtl.c (create_basic_block_structure,
14237         rtl_create_basic_block): Likewise.
14238         * ifcvt.c (find_if_case_1): Likewise.
14239         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
14240         Likewise.
14241
14242 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
14243
14244         * Makefile.in: Removed rotted odf.c entry.
14245
14246 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
14247
14248         PR target/25706
14249         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
14250         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
14251         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
14252         output pattern modifier, not %e.
14253         * config/cris/cris.c (cris_op_str): Update comment about pattern
14254         modifier.
14255         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
14256         before falling through into...
14257         <case 'E'>: Redefined from old 'e' case.
14258
14259 2006-01-11  Jan Hubicka  <jh@suse.cz>
14260
14261         PR target/25042
14262         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
14263
14264 2006-01-11  Jan Hubicka  <jh@suse.cz>
14265
14266         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
14267         * i386.c (x86_decompose_lea): Kill.
14268         (ix86_rtx_costs): Kill.
14269
14270 2006-01-11  Jan Hubicka  <jh@suse.cz>
14271
14272         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
14273         * cgraph.h (cgraph_node): Add inline_decl.
14274         (cgraph_insert_node_to_hashtable): Declare.
14275         (save_inline_function_body): Declare.
14276         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
14277         clones.
14278         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
14279         (cgraph_function_versioning): Update call of tree_function_versioning.
14280         (save_inline_function_body): New function.
14281         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
14282         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
14283         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
14284         (cgraph_default_inline_p): Likewise.
14285         (cgraph_decide_inlining_incrementally): Likewise.
14286         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
14287         (copy_bb): Kill saving; do updating of clones.
14288         (copy_cfg_body): Kill saving.
14289         (initialize_inlined-parameters): Likewise.
14290         (expand_call_inline): Likewise.
14291         (save_body): Kill.
14292         (tree_function_versioning): New parameter "update_clones".
14293         (inlining_p): Kill saving.
14294         * tree-inline.h (tree_function_versioning): Update prototype.
14295         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
14296         saving.
14297
14298 2006-01-11  Ian Lance Taylor <ian@airs.com>
14299
14300         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
14301         Allow undoing set of machine mode.
14302         (do_SUBST): Use enums instead of is_int.
14303         (do_SUBST_MODE): New function.
14304         (SUBST_MODE): New macro.
14305         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
14306         reg and trying to replace reg_regno_rtx with a new register.
14307         (undo_all): Use new enums, handle undoing a PUT_MODE change.
14308         (simplify_set): Use SUBST_MODE.
14309         (distribute_notes): Remove code that tried to update reg notes
14310         for regno_reg_rtx changes.
14311
14312 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
14313
14314         PR tree-optimization/23109
14315         PR tree-optimization/23948
14316         PR tree-optimization/24123
14317
14318         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
14319         * tree-cfg.c (single_noncomplex_succ): New.
14320         * tree-flow.h (single_noncomplex_succ): Declare it.
14321         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14322         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14323         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
14324         insert_bb, register_division_in, insert_reciprocals,
14325         replace_reciprocal, free_bb): New.
14326         (execute_cse_reciprocals_1): Rewritten.
14327         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
14328         Do not commit any edge insertion.  Always compute dominators and
14329         create the allocation pool.
14330         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
14331         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
14332         * targhooks.c (default_min_divistions_for_recip_mul): New.
14333         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
14334         * passes.c (init_optimization_passes): Run recip after tree loop
14335         optimizations.
14336         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
14337
14338 2006-01-11  Danny Berlin <dberlin@dberlin.org>
14339             Kenneth Zadeck <zadeck@naturalbridge.com>
14340
14341         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
14342         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
14343         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
14344         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
14345         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
14346         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
14347         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
14348         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
14349         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
14350         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
14351         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
14352         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
14353         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
14354         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
14355         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
14356         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
14357         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
14358         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
14359         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
14360         DF_SCAN_POST_ALLOC): New macros.
14361         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
14362         df_free_bb_function, df_local_compute_function, df_init_function,
14363         df_dataflow_function, df_confluence_function_0,
14364         df_confluence_function_n, df_transfer_function,
14365         df_finalizer_function, df_free_function, df_dump_problem_function,
14366         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
14367         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
14368         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
14369         df_urec_bb_info, ) New types.
14370         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
14371         variables.
14372         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
14373         df_analyze_simple_change_some_blocks,
14374         df_analyze_simple_change_one_block, df_compact_blocks,
14375         df_bb_replace, df_bb_regno_last_use_find,
14376         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
14377         df_insn_regno_def_p, df_find_def, df_find_use,
14378         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
14379         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
14380         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
14381         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
14382         debug_df_chain, df_get_dependent_problem, df_chain_create,
14383         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
14384         df_grow_bb_info, df_chain_dump, df_print_bb_index,
14385         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
14386         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
14387         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
14388         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
14389         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
14390         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
14391         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
14392         df_ref_remove, df_insn_refs_delete, df_refs_delete,
14393         df_reorganize_refs, df_set_state, df_hard_reg_init,
14394         df_read_modify_subreg_p) New public functions.
14395         * df-core.c: The core dataflow solver and glue routines for rtl
14396         dataflow.
14397         (df_init, df_add_problem, df_set_blocks, df_finish,
14398         df_hybrid_search_forward, df_hybrid_search_backward,
14399         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
14400         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
14401         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
14402         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
14403         df_reg_defined, df_find_use, df_reg_used, df_dump,
14404         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
14405         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
14406         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
14407         debug_df_useno, reset_df_after_reload): New functions.
14408         * df-scan.c: The scanning fuctions, once in df.c, completely
14409         rewritten so that they now fully model the functionality of
14410         register usage at the backend.
14411         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
14412         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
14413         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
14414         df_grow_insn_info, df_rescan_blocks, df_ref_create,
14415         df_get_artificial_defs, df_get_artificial_uses,
14416         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
14417         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
14418         df_refs_delete, df_reorganize_refs, df_set_state,
14419         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
14420         df_def_record_1, df_defs_record, df_uses_record,
14421         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
14422         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
14423         df_record_exit_block_uses, df_hard_reg_init): New functions.
14424
14425         * df-problems.c: Seven concrete dataflow problems that use the
14426         scanning in df-scan.c and are solved by the engine in df-core.c.
14427         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
14428         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
14429         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
14430         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
14431         df_ru_free_bb_info, df_ru_alloc,
14432         df_ru_bb_local_compute_process_def,
14433         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
14434         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
14435         df_ru_transfer_function, df_ru_free, df_ru_dump,
14436         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
14437         df_rd_free_bb_info, df_rd_alloc,
14438         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
14439         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
14440         df_rd_transfer_function, df_rd_free, df_rd_dump,
14441         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
14442         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
14443         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
14444         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
14445         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
14446         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
14447         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
14448         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
14449         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
14450         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
14451         df_urec_mark_reg_change, df_urec_check_earlyclobber,
14452         df_urec_mark_reg_use_for_earlyclobber,
14453         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
14454         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
14455         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
14456         df_urec_dump, df_urec_add_problem, df_chain_alloc,
14457         df_chain_create_bb_process_use, df_chain_create_bb,
14458         df_chain_finalize, df_chain_free, df_chains_dump,
14459         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
14460         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
14461         df_reg_lifetime): New functions.
14462         * df.c: Deleted file.
14463         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
14464         consistent with new df api.
14465         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
14466         rest_of_handle_sms): Ditto.
14467         * web.c (unionfind_union, union_defs, entry_register, web_main):
14468         Ditto.
14469         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
14470         invariant_expr_equal_p, find_defs, check_dependencies,
14471         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
14472         free_inv_motion_data, move_loop_invariants): Ditto.
14473         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
14474         Update dependencies.
14475         (odf.c): Added defective entry that was deleted later in day.
14476         * sched-deps.c (sched_analyze_1): Ditto.
14477
14478 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
14479
14480         * tree-ssa-operands.c (get_expr_operands): Record addressable
14481         variables directly.  Do not call add_stmt_operands for CONST_DECLs
14482         and ARRAY_DECLs.
14483         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
14484         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
14485
14486 2006-01-11  Ben Elliston  <bje@au.ibm.com>
14487
14488         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
14489         function returns true in the positive case.
14490
14491 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14492
14493         PR target/20754
14494         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14495         for SI, DI, SF and DF modes.  Add alternatives to copy between
14496         general and floating point registers to the 32-bit patterns.
14497         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14498         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14499         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14500         generating 64-bit code.
14501         * config/pa/pa.c (output_move_double): Handle copies between general
14502         and floating registers.
14503
14504 2006-01-10  Stuart Hastings  <stuart@apple.com>
14505
14506         * config/i386/i386.md (set_got): Update.
14507         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
14508         (builtin_setjmp_receiver): Mach-O support.
14509         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14510         (GOT_SYMBOL_NAME): Define.
14511         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14512         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14513         * config/i386/i386.c (override_options): Revise for Darwin.
14514         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
14515         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
14516         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
14517         * config/i386/i386-protos.h (output_set_got): Likewise.
14518         * config/darwin.c (machopic_legitimize_pic_address): Update
14519         regs_ever_live[].
14520
14521 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14522
14523         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14524         when MODE isn't BLKmode.
14525
14526 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
14527
14528         PR rtl-optimization/25367
14529         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14530
14531 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
14532
14533         PR target/25718
14534         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14535         for a negative bound.
14536
14537 2006-01-10  Richard Guenther  <rguenther@suse.de>
14538
14539         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14540         Never override with anything constraint.
14541
14542 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14543
14544         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14545         256 bits when optimize_size.
14546
14547 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14548
14549         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14550         MASK_ALIGN_DOUBLE.
14551         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14552         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14553         arguments.
14554
14555 2006-01-10  Ben Elliston  <bje@au.ibm.com>
14556
14557         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14558         float modes.
14559         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14560         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14561         (USE_FP_FOR_ARG): Reject decimal float modes.
14562         (function_arg_advance): Likewise.
14563         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14564         (rs6000_handle_altivec_attribute): Do not permit decimal floating
14565         point types in AltiVec vectors.
14566         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14567         (rs6000_libcall_value): Likewise.
14568
14569 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
14570
14571         * config/xtensa/ieee754-df.S: New file.
14572         * config/xtensa/ieee754-sf.S: New file.
14573         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14574         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14575         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14576
14577 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
14578
14579         * config/sh/predicates.md (binary_float_operator,
14580         binary_logical_operator, commutative_float_operator,
14581         equality_comparison_operator, greater_comparison_operator,
14582         less_comparison_operator, logical_operator,
14583         noncommutative_float_operator, shift_operator,
14584         symbol_ref_operand, unary_float_operator): Remove redundant
14585         conditionals.
14586
14587 2006-01-09  Jeff Law  <law@redhat.com>
14588
14589         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14590         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
14591         now unused arguments.  Callers updated.
14592         (eliminate_redundant_computations): Remove now unused arguments,
14593         callers updated.
14594         (local_fold): Remove, no longer used.
14595         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14596         and moved to...
14597         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14598         (simplify_cond): New function.
14599         (forward_propagate_into_cond): Call simplify_cond.
14600
14601 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
14602
14603         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14604         (*vec_extractv2di_1_sse): New.
14605
14606 2006-01-09  Ben Elliston  <bje@au.ibm.com>
14607
14608         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14609
14610 2006-01-08  Richard Guenther  <rguenther@suse.de>
14611
14612         * tree-ssa-structalias.c (get_constraint_for): Remove
14613         anyoffset argument.
14614         (get_constraint_for_component_ref): Likewise.
14615         (do_deref): Likewise.
14616         (get_constraint_for): Likewise.
14617         (do_structure_copy): Likewise.
14618         (handle_ptr_arith): Likewise.
14619         (find_func_aliases): Likewise.  Remove unused need_anyoffset
14620         variable.
14621
14622 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
14623             Kaz Kojima  <kkojima@gcc.gnu.org>
14624
14625         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14626         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14627         (EXTRA_CONSTRAINT_C16): Remove.
14628         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14629         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14630         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14631         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14632         constants of SHmedia.  Handle nested constant expressions of
14633         SHmedia correctly.
14634         (andcosts): Fix the costs for SHmedia constants.
14635         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14636         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14637         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14638         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14639         (movv4hi_i, movv2si_i): Likewise.
14640         (movsi_const): Adjust the second operand of ior so to match with
14641         the Csu constraint.
14642         (movdi_const, movdi_const_32bit): Likewise.
14643         (movdi_const_16bit+1): Don't sign-extend LOW.
14644         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
14645         step.
14646         (*double_shori): Fix the split condition.  Use GEN_INT instead
14647         of get_int_mode calls.  Mask lower 16-bit of the argument of
14648         the last GEN_INT.
14649         (sym2GOTPLT): Remove.
14650         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14651         gen_rtx_UNSPEC.
14652         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14653         instead of EXTRA_CONSTRAINT_C16.
14654
14655 2006-01-07  Ian Lance Taylor  <ian@airs.com>
14656             David Edelsohn  <edelsohn@gnu.org>
14657
14658         PR rtl-optimization/25662
14659         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14660         for constant operands instead of simplify_gen_binary.
14661         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14662         after trying simplify_binary_operation
14663
14664 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
14665
14666         * tree.c (iterative_hash_expr): Hash decls based on UID.
14667
14668 2006-01-06  Eric Christopher  <echristo@apple.com>
14669
14670         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14671         (TARGET_UNWIND_EMIT): Fix spelling.
14672         * target.h (gcc_target): Add except_table_label.
14673         * except.c (output_function_exception_table): Use.
14674         * varasm.c (default_emit_except_table_label): New.
14675         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14676         define.
14677         (asm_out): Add here.
14678         * output.h (default_emit_except_table_label): Prototype.
14679         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14680         * config/darwin.c (darwin_emit_except_table_label): Define.
14681         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14682
14683 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
14684
14685         PR tree-optimization/18527
14686         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14687         number_of_iterations_special, number_of_iterations_exit):
14688         Move base and step of an iv to a single structure.  Add
14689         no_overflow flag, and use it in # of iterations analysis.
14690         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14691         folded_casts argument.
14692         (simple_iv): Pass base and step in a structure.  Set no_overflow
14693         flag.
14694         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14695         Evaluate expensiveness of computing # of iterations instead of
14696         the final expression.
14697         * tree-scalar-evolution.h (affine_iv): New structure.
14698         (simple_iv): Declaration changed.
14699         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14700         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14701         find_givs_in_stmt): Changed due to simple_iv change.
14702
14703 2006-01-06  Jeff Law  <law@redhat.com>
14704
14705         PR ada/24994
14706         * tree-cfg.c (bsi_replace): Rename final argument from
14707         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
14708         change (stmt -> orig_stmt).
14709         * tree-eh.c (verify_eh_throw_stmt_node): New function.
14710         (bsi_remove): Add new argument.  Remove EH information
14711         if requested.
14712         (verify_eh_throw_table_statements): New function.
14713         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
14714         updated.
14715         * tree-optimize.c (execute_free_cfg_annotations): Verify
14716         the EH throw statement table after removing annotations.
14717         * except.h (verify_eh_throw_table_statements): Prototype.
14718         * tree-flow.h (bsi_remove): Update prototype.
14719         * tree-vrp.c (remove_range_assertions): Add new argument to
14720         bsi_remove call.
14721         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14722         * tree-complex.c (expand_complex_div_wide): Likewise.
14723         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14724         * tree-tailcall.c (eliminate_tailcall): Likewise.
14725         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14726         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14727         * tree-nrv.c (tree_nrv): Likewise.
14728         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14729         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14730         (combine_blocks): Likewise.
14731         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14732         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14733         (cleanup_control_flow): Likewise.
14734         (remove_forwarder_block): Likewise.
14735         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14736         * tree-sra.c (sra_replace): Likewise.
14737         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14738         (forward_propagate_single_use_vars): Likewise.
14739         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14740         * tree-inline.c (expand_call_inline): Likewise.
14741         * tree-vect-transform.c (vect_transform_loop): Likewise.
14742         * tree-outof-ssa.c (rewrite_trees): Likewise.
14743         * tree-cfg.c (make_goto_expr_edges): Likewise.
14744         (cleanup_dead_labels): Likewise.
14745         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14746         (bsi_move_before, bsi_move_after): Likewise.
14747         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14748         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14749
14750 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
14751
14752         PR tree-opt/25528
14753         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14754         and IMAGPART_EXPR.
14755         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14756         on non gimple variables.  Also add checks at the top for decls and
14757         mtags.
14758         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14759         complex types.
14760         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14761         and IMAGPART_EXPR for creating MUST_DEFs.
14762         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14763         and NAME_MEMORY_TAG separately from the DECLs.
14764
14765 2006-01-06  Richard Guenther  <rguenther@suse.de>
14766
14767         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14768         annotation, if necessary.
14769         * tree-ssa-pre.c (create_expression_by_pieces): Remove
14770         redundant calls to update_stmt.
14771         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14772         Likewise.
14773
14774 2006-01-05  Richard Henderson  <rth@redhat.com>
14775
14776         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14777
14778 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14779
14780         * c-typeck.c: Update copyright date.
14781
14782 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14783
14784         * c-typeck.c (build_c_cast): Always warn when casting
14785         from a pointer to an integer of different size, even if
14786         the node was constant.
14787
14788 2006-01-05  Richard Guenther  <rguenther@suse.de>
14789
14790         PR tree-optimization/22555
14791         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14792         if one structure field is an array.
14793         * tree-ssa-operands.c (get_expr_operands): Continue scanning
14794         operands even if we found a subvar, but ignore VOPs in this
14795         case.
14796         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14797         for renaming.
14798         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14799
14800 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
14801
14802         PR middle-end/24998
14803         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14804
14805 2006-01-05  Richard Guenther  <rguenther@suse.de>
14806             Diego Novillo  <dnovillo@redhat.com>
14807
14808         * tree-pass.h (TODO_remove_unused_locals): Define.
14809         * gimple-low.c (expand_var_p, remove_useless_vars,
14810         pass_remove_useless_vars): Remove.  Update all users.
14811         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14812         (remove_unused_locals): New function.
14813         * tree-flow.h (remove_unused_locals): Declare.
14814         * passes.c (execute_todo): Call remove_unused_locals if
14815         TODO_remove_unused_locals is set.
14816         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14817         * tree-ssa-dce.c (pass_dce): Likewise.
14818         * tree-outof-ssa.c (pass_del_ssa): Likewise.
14819
14820 2006-01-05  Richard Guenther  <rguenther@suse.de>
14821
14822         * tree-flow.h (struct fieldoff): Decompose field to
14823         type, size and decl.
14824         * tree-ssa-alias.c (create_sft): Take type as parameter.
14825         (create_overlap_variables_for): Store type, size and decl
14826         in the fieldoff structure.
14827         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
14828         of struct fieldoff.
14829         (push_fields_onto_fieldstack): Likewise.
14830         (create_variable_info_for): Likewise.  Use offset for the
14831         SFT name if the decl is not available.
14832
14833 2006-01-04  Paul Brook  <paul@codesourcery.com>
14834
14835         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
14836
14837 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
14838
14839         * lambda-code.c (can_put_in_inner_loop): Relax
14840         restrictions.
14841         (can_put_after_inner_loop): New function.
14842         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
14843         (perfect_nestify): Change to make copies and modify uses.
14844
14845 2006-01-04  Richard Henderson  <rth@redhat.com>
14846
14847         Merge from gomp branch:
14848         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
14849         via integer constant.
14850         (pragma_lex): Remove.
14851         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
14852         rather than parsing it.
14853         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
14854         handle_pragma_extern_prefix): Add %< %> quotes.
14855         (registered_pragmas): New.
14856         (c_register_pragma_1): New.
14857         (c_register_pragma): Use it.
14858         (c_register_pragma_with_expansion): Likewise.
14859         (c_invoke_pragma_handler): New.
14860         (init_pragma): Use cpp_register_deferred_pragma directly for
14861         pch_preprocess.
14862         * c-pragma.h (enum pragma_kind): New.
14863         (pragma_handler): New.
14864         (c_invoke_pragma_handler): Declare.
14865         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
14866         CPP_PRAGMA_EOL.
14867         * c-common.h (c_common_pch_pragma): Update decl.
14868         * Makefile.in (c-parser.o): Update dependencies.
14869         (GTFILES): Add c-pragma.h.
14870         * c-parser.c (struct c_token): Add pragma_kind.
14871         (struct c_parser): Add in_pragma.
14872         (c_lex_one_token): Always initialize keyword and pragma_kind.
14873         Extract data for CPP_PRAGMA.
14874         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
14875         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
14876         Don't allow CPP_PRAGMA_EOL if in_pragma.
14877         (c_parser_consume_pragma): New.
14878         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
14879         (c_parser_skip_to_end_of_parameter): Likewise.
14880         (c_parser_skip_to_end_of_block_or_statement): Likewise.
14881         (c_parser_skip_to_pragma_eol): New.
14882         (c_parser_external_declaration): Handle CPP_PRAGMA.
14883         (c_parser_compound_statement_nostart): Likewise.
14884         (c_parser_statement_after_labels): Likewise.
14885         (c_parser_pragma): New.
14886         (pragma_lex): Likewise.
14887         (c_parser_pragma_pch_preprocess): New.
14888         (c_parser_new): Merge into ...
14889         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
14890
14891 2006-01-04  Jeff Law  <law@redhat.com>
14892
14893         PR ada/24994
14894         * tree-cfg.c (bsi_replace): Remove the original statement
14895         from the EH throw statement table.
14896
14897 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
14898
14899         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
14900         make the prototype extern "C" and add throw ().
14901
14902         PR target/25554
14903         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
14904         and pos non-negative and pos + len <= 32.
14905         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
14906         drop pos + len < HOST_BITS_PER_WIDE_INT test.
14907         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
14908
14909         PR c/25559
14910         * c-common.c (handle_vector_size_attribute): Reject zero vector size
14911         as well as sizes not multiple of component size.
14912
14913         PR debug/25562
14914         * function.c (instantiate_expr): New function.
14915         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
14916         walk its DECL_VALUE_EXPR with instantiate_expr.
14917
14918         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
14919         DW_OP_deref{,_size} if address isn't going to be added.
14920
14921 2006-01-04  Ben Elliston  <bje@au.ibm.com>
14922
14923         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
14924         * config/fp-bit.c: Likewise.
14925
14926 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
14927
14928         * dominance.c: Add comment about why we use DFS numbering
14929         of dominance tree.
14930
14931 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
14932             Richard Henderson  <rth@redhat.com>
14933
14934         Merge from gomp-branch:
14935         * varasm.c (assemble_variable): Handle thread-local COMMON data.
14936         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
14937
14938 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
14939
14940         PR rtl-optimization/25578
14941         * combine.c (combine_simplify_rtx, force_to_mode): Don't
14942         pass a parameter to simplify_shift_const if changing ASHIFTRT
14943         to LSHIFTRT.
14944
14945 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
14946
14947         * builtins.c (get_builtin_sync_mem): New function.
14948         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
14949         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
14950         Call get_builtin_sync_mem to generate mem rtx.
14951
14952 2006-01-03  Richard Guenther  <rguenther@suse.de>
14953
14954         PR c/25183
14955         * stmt.c (add_case_node): Make sure to clear overflow flags
14956         from ranges.
14957
14958 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
14959
14960         Merge from gomp-branch.
14961         * config/sparc/sync.md: New file.
14962         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
14963         UNSPECV_LDSTUB): New constants.
14964         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
14965         * config/sparc/predicates.md (memory_reg_operand): New predicate.
14966         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
14967         prototype.
14968
14969 2006-01-03  Roger Sayle  <roger@eyesopen.com>
14970
14971         * combine.c (reg_subword_p): New predicate to test whether the
14972         destination of a set refers to a subword/piece of a register.
14973         (try_combine): Generalize the code to merge the setting of a
14974         pseudo to a constant followed by a set of a subword of that
14975         register to a constant.
14976
14977 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
14978
14979         * basic-block.h (control_flow_graph): Change the type of
14980         x_label_to_block_map to VEC(basic_block,gc) *.
14981         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
14982         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
14983
14984         * tree-ssa-propagate.c (cfg_blocks): Change the type to
14985         VEC(basic_block,heap) *.
14986         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
14987         ssa_prop_fini): Adjust the uses of cfg_blocks.
14988
14989 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
14990
14991         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
14992         COMPONENT_REFs.
14993         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
14994         hashing trees instead of a pointer hash.
14995         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
14996         compare for MEM_EXPR.
14997
14998         PR rtl-optimization/25130
14999         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
15000         when comparing MEMs for GCSE
15001
15002 2006-01-03  Ben Elliston  <bje@au.ibm.com>
15003
15004         * targhooks.h (default_decimal_float_supported_p): Declare.
15005         * targhooks.c (default_decimal_float_supported_p): Define.
15006         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
15007         `default_decimal_float_supported_p'.
15008         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
15009
15010 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
15011
15012         * combine.c (apply_distributive_law <SUBREG>): Check
15013         TRULY_NOOP_TRUNCATION.
15014
15015 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
15016
15017         * dwarf2out.c (have_switched_text_section): Delete.
15018         (have_multiple_function_sections): New.
15019         (have_location_lists): Make 'bool'.
15020         (add_AT_loc_list): Use 'true' not '1'.
15021         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
15022         (output_loc_list): Use have_multiple_function_sections.
15023         (output_ranges): Likewise.
15024         (dwarf2out_begin_function): Set have_multiple_function_sections if
15025         necessary.
15026         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
15027         Check function_section rather than DECL_SECTION_NAME.
15028         (dwarf2out_finish): Use have_multiple_function_sections.
15029         Don't clear have_location_lists.
15030
15031 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15032             Jan Hubicka  <jh@suse.cz>
15033
15034         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
15035         case of conditional jump jumping to the next instruction.
15036         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
15037         cases of conditional jump jumping to the next instruction.
15038
15039 2006-01-02  Jan Hubicka  <jh@suse.cz>
15040
15041         * i386.c (*_cost): Add COSTS_N_INSNS.
15042         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
15043
15044 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
15045
15046         PR target/25259
15047         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
15048
15049 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15050
15051         * config/arm/arm.c (all_fpus): Fix comment typo.
15052         * config/darwin.c: Likewise.
15053         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
15054         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
15055         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
15056
15057 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
15058
15059         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
15060         (rs6000_split_compare_and_swapqhi): New.
15061         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
15062         (sync_compare_and_swapqhi_internal): New.
15063         * config/rs6000/rs6000-protos.h: Declare.