OSDN Git Service

* config/i386/driver-i386.c: Always define host_detect_local_cpu.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
2
3         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
4         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
5         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
6         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
7         than replicating condition above.
8         * config.host (i[34567]86-*-*): Always use driver-i386.o.
9
10         * config/darwin.h (LINK_SYSROOT_SPEC): New.
11         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
12         the linker by default.
13
14 2006-09-22  Mike Stump  <mrs@apple.com>
15
16         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
17         code.
18
19 2006-09-22  Richard Guenther  <rguenther@suse.de>
20
21         PR middle-end/28964
22         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
23         sort of stack variables stable.
24
25 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
26
27         PR middle-end/28690
28         * explow.c (force_reg): Set REG_POINTER flag according to
29         MEM_POINTER flag.
30
31 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
32
33         PR tree-optimization/28888
34         * tree-if-conv.c (combine_blocks): Rewritten.
35         * tree-cfg.c (tree_verify_flow_info): Check that edges with
36         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
37
38 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
39
40         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
41         needed.
42
43 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
44
45         * varasm.c (copy_constant): Fix reversed gcc_assert check.
46
47 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
48
49         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
50
51 2006-09-21  Roger Sayle  <roger@eyesopen.com>
52
53         PR debug/29132
54         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
55         dw_fde_current_label, to be the start of the function, i.e. the same
56         value as dw_fde_begin.
57
58 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
59
60         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
61         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
62         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
63         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
64         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
65         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
66         (abs<mode>2, neg<mode>2): Likewise.
67         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
68         (*mips_abs_ps): New define_insn.
69
70 2006-09-20  Josh Conner  <jconner@apple.com>
71
72         PR middle-end/25505
73         * calls.c (expand_call): Allow reuse of structure return stack
74         temp.
75
76 2006-09-20  Paul Brook  <paul@codesourcery.com>
77
78         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
79         positive offsets.
80
81 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
82
83         * doc/extend.texi (Decimal Float): Update for latest draft TR,
84         clean up terminology.
85
86 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
87
88         PR target/28574
89         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
90         with tablejumps in them.
91
92 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
93
94         PR middle-end/28046
95         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
96         wrap it into TARGET_EXPR.
97
98 2006-09-20  Eric Christopher  <echristo@apple.com>
99
100         * config/i386/i386.c (x86_fisttp): Remove.
101         * config/i386/i386.h (x86_fisttp): Ditto.
102         (TARGET_FISTTP): Ditto.
103
104 2006-09-19  Eric Christopher  <echristo@apple.com>
105
106         * doc/tm.texi (OBJC_JBLEN): Describe.
107         * config/i386/darwin.h (OBJC_JBLEN): Define.
108         * config/rs6000/darwin.h: Ditto.
109
110 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
111
112         PR rtl-optimization/21299
113         * reload1.c (reload): Purge invalid ASMs in the final pass.
114
115 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
116
117         PR  28490
118         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
119         pointers as legitimate constants.
120
121 2006-09-19  Paul Brook  <paul@codesourcery.com>
122
123         PR target/28516
124         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
125
126 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
127
128         PR tree-optimization/28887
129         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
130         component parts from the reference.
131         (gather_memory_references_ref): Record the reference without the
132         nonaddressable component parts.
133
134 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
135
136         PR c/25993
137         * c-opts.c (c_common_handle_option): Ignore the -std options
138         if the input language is assembly.
139
140 2006-09-17  Ira Rosen  <irar@il.ibm.com>
141
142         PR tree-opt/21591
143         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
144         tag first.
145         (ptr_ptr_may_alias_p): Likewise.
146         (record_record_differ_p): New function.
147         (base_object_differ_p): Call record_record_differ_p.
148
149 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
150
151         PR tree-opt/29059
152         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
153         away for the expr argument.
154
155 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
156
157         PR tree-opt/27742
158         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
159         before using it for dumping after vectorizing loops.
160
161 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
162             Jack Howarth  <howarth@bromo.med.uc.edu>
163
164         PR target/29030
165         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
166         skip on error_mark_node.
167         (rs6000_darwin64_record_arg_recurse): Likewise.
168
169 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
170
171         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
172         * doc/rtl.texi: Remove related documentation.
173
174 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
175
176         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
177         printf.
178
179 2006-09-15  Jim Wilson  <wilson@specifix.com>
180
181         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
182         Handle symbol offsets same as they are handled in ia64_expand_move
183         and move_operand.
184
185 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
186
187         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
188         Add forgotten parameter to the fprintf call.
189
190 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
191
192         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
193
194 2006-09-15  Uros Bizjak <uros@kss-loka.si>
195
196         * doc/contrib.texi: Add my entry.
197
198 2006-09-15  Nick Clifton  <nickc@redhat.com>
199
200         * doc/md.texi (Processor pipeline description): Fix typo in
201         example of how to use the absence_set directive and reword the
202         description to make it slightly easier to read.
203
204 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
205
206         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
207         * loop-doloop.c (doloop_optimize): Use it to limit costs of
208         expanding the number of iterations.
209         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
210
211         * cfgrtl.c (emit_insn_at_entry): New function.
212         * rtl.h (emit_insn_at_entry): Declare it.
213         * integrate.c (emit_initial_value_sets): Use it.
214
215         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
216
217         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
218         bad.
219         (struct loop_work and related VEC declarations): Delete.
220         (bfin_dump_loops): Print out new member bad.
221         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
222         (bfin_scan_loop): Don't recurse.
223         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
224         loops.  No longer need to update outer loops if the current one is
225         found bad.  Move some validitiy checks to bfin_discover_loop.
226         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
227         but changed not to check for nesting.  Also changed to use the new bad
228         flag.
229         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
230         time.  Use bitmap based test to discover loop nesting.
231
232 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
233
234         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
235         one line.
236
237 2006-09-14  Richard Guenther  <rguenther@suse.de>
238             Kazu Hirata  <kazu@codesourcery.com>
239
240         PR middle-end/28884.
241         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
242         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
243         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
244         with TARGET_FUNCTION_VALUE.
245
246 2006-09-14  Anatoly Sokolov <aesok@post.ru>
247
248         PR target/26504
249         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
250
251 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
252
253         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
254         of a RETURN_EXPR
255
256 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
257
258         PR debug/28980
259         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
260         FUNCTION_DECL.
261
262 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
263
264         * basic_block.h (bb_has_eh_pred): Fix comment.
265
266 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
267
268         * flow.c (calculate_global_regs_live): Invalidate eh registers
269         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
270         (propagate_block): Handle eh registers as if they were set at basic
271         block start.
272         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
273         registers.
274         * global.c (global_conflicts): Make eh registers to conflict with
275         pseudos live at basic block begin.
276         * basic_block.h (bb_has_eh_pred): New function.
277
278 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
279
280         PR rtl-optimization/28982
281         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
282         index of a PRE_MODIFY or POST_MODIFY address.
283         * reload1.c (inc_for_reload): Use find_replacement on the original
284         base and index registers.
285
286 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
287
288         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
289         for -Os. Update __m128 alignment requirement.
290
291 2006-09-13  Jan Hubicka  <jh@suse.cz>
292
293         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
294
295 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
296
297         PR rtl-optimization/28243
298         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
299         the insn to which the note was originally attached.
300
301 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
302             Roger Sayle  <roger@eyesopen.com>
303
304         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
305         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
306         on platforms that don't use dwarf for debug info.
307
308 2006-09-12  Jason Merrill  <jason@redhat.com>
309
310         PR middle-end/28493
311         * builtins.c (expand_builtin_setjmp_receiver): Clobber
312         hard_frame_pointer_rtx after using it to update the frame pointer.
313
314 2006-09-12  Roger Sayle  <roger@eyesopen.com>
315
316         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
317         (TARGET_ASM_CLOSE_PAREN): Likewise.
318         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
319         (TARGET_ASM_CLOSE_PAREN): Likewise.
320
321 2006-09-12  Roger Sayle  <roger@eyesopen.com>
322
323         PR target/22223
324         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
325         frame information for frames larger than 512 Kbytes on Tru64 when
326         using the native assembler.
327
328 2006-09-12  Roger Sayle  <roger@eyesopen.com>
329
330         PR middle-end/4520
331         PR bootstrap/28784
332         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
333         and symbols.  Instead use the implementation from cse.c's hash_rtx.
334
335 2006-09-12  Jan Hubicka  <jh@suse.cz>
336
337         PR rtl-optimization/28071
338         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
339         (vect_transform_loop): Likewise.
340         * tree-vectorizer.c (new_loop_vec_info): Likewise.
341         (new_loop_vec_info): Likewise.
342         (destroy_loop_vec_info): Likewise.
343         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
344         (create_stmt_ann): Likewise.
345         (create_tree_ann): Rename to ...
346         (create_tree_common_ann): ... this one; allocate only the common part
347         of annotations.
348         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
349         (get_value_handle): Likewise.
350         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
351         get_tree_common_ann.
352         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
353         (vinfo_for_stmt): Use stmt annotations.
354         * tree-flow.h (tree_ann_common_t): New type.
355         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
356         (tree_ann, get_tree_ann, create_tree_ann): New.
357         * tree-flow-inline.h (get_function_ann): Do more type checking.
358         (stmt_ann): Likewise.
359         (tree_ann): Rename to ...
360         (tree_common_ann): ... this one; return ony common_ann
361         (get_tree_ann): Rename to ...
362         (tree_common_ann): This one; return only common_ann.
363         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
364         of set_stmt_info.
365
366 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
367
368         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
369         with_cpu by default.
370
371         * dwarf2out.c (dwarf_file_data): New.
372         (enum dw_val_class): Add dw_val_class_file.
373         (struct dw_val_struct): Add val_file.
374         (file_table): Change to a hash table.
375         (file_table_emitted): Delete.
376         (file_table_last_lookup_index): Delete.
377         (emitcount): Delete.
378         (last_emitted_file): New.
379         (lookup_filename): Change prototype to return a struct dwarf_file_data.
380         (init_file_table): Delete.
381         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
382         (AT_addr): Add comment.
383         (add_AT_file): New.
384         (AT_file): New.
385         (get_AT_file): New.
386         (print_die): Handle dw_val_class_file.
387         (print_dwarf_line_table): Update for new file table structure.
388         (attr_checksum): Do checksum a filename.
389         (same_dw_val_p, same_attr_p): Do compare a filename.
390         (size_of_die): Handle dw_val_class_file.
391         (value_format): Likewise.
392         (output_die): Likewise.  Also, call maybe_emit_file here.
393         (struct file_info): Constify filenames.  Make file_idx a pointer
394         to a struct dwarf_file_data.
395         (struct dir_info): Constify directory names.  Remove 'used' field.
396         (struct file_name_acquire_data): New.
397         (file_name_acquire): New.
398         (output_file_names): Modify to handle new file data structures.
399         (add_src_coords_attributes): Use add_AT_file.
400         (add_call_src_coords_attributes): Likewise.
401         (dwarf2out_imported_module_or_decl): Likewise.
402         (gen_subprogram_die): Modify for new file data structures.
403         (gen_variable_die): Likewise.
404         (file_table_eq): New.
405         (file_table_hash): New.
406         (file_table_last_lookup): New.
407         (lookup_filename): Rewrite to handle new file data structures.
408         (maybe_emit_file): Rewrite to handle new file data structures.
409         (dwarf2out_source_line): Always call lookup_filename and
410         maybe_emit_file.
411         (dwarf2out_init): Create file_table here.
412         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
413         (file_table_relative_p): New.
414         (dwarf2out_finish): Change detection of relative filenames
415         to work with new file data structures.  Move output_line_info call
416         after debug_info output.
417
418 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
419
420         PR target/13685
421         PR target/27537
422         PR target/28621
423         * config/i386/i386.c (override_options): Always default to 16
424         byte stack boundary.
425
426 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
427
428         PR target/28672
429         * var-tracking.c (dump_dataflow_set): Start dumping at
430         register zero.
431         (clobber_variable_part): Kill only the variable part in
432         registers holding it, leaving other variables alone.
433
434 2006-09-11  Josh Triplett  <josh@freedesktop.org>
435
436         * doc/extend.texi (Other Builtins): Actually use the macro
437         argument in the documentation example for
438         __builtin_types_compatible_p.
439
440 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
441
442         PR rtl-optimization/28726
443         * sched-deps.c (sched_analyze_reg): New function extracted from...
444         (sched_analyze_1): ...here.  Call it to analyze references to
445         registers.  Treat again writes to a stack register as writing to the
446         register.
447         (sched_analyze_2): ...and here.  Call it to analyze references to
448         registers.  Treat again reads of a stack register as reading the
449         register.
450
451 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
452             David Edelsohn  <edelsohn@gnu.org>
453
454         PR target/27287
455         * config/rs6000/spe.md (frob_df_di): Remove %H.
456         (frob_di_df): Remove %H.  Change evmergelo to mr.
457         (frob_di_df_2): Remove %H.  Change evldd to two loads.
458
459 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
460
461         * doc/cpp.texi: Fix names of charset options.
462
463 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
464
465         PR target/29009
466         * config/i386/i386.c (override_options): Use 128-bit
467         stack boundary always for 64bits.
468
469 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
470
471         PR rtl-optimization/28636
472         * combine.c (force_to_mode): Test for side-effects before
473         substituting by zero.
474         (simplify_shift_const): Likewise for zero or other constants.
475
476 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
477
478         PR middle-end/26983
479         * builtins.c (expand_builtin_setjmp): Force next_lab to be
480         preserved.
481
482 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
483
484         PR target/29006
485         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
486         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
487         returned by mode_for_size, rather than the mode of src itself,
488         to choose between 32-bit and 64-bit patterns.
489         (mips_mem_fits_mode_p): New function.
490         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
491         that the size of the source matches the size of the destination.
492         (mov_<store>l, mov_<store>r): Likewise.
493
494 2006-09-10  Eric Christopher  <echristo@apple.com>
495
496         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
497         for literal16.
498
499 2006-09-09  Eric Christopher  <echristo@apple.com>
500
501         PR target/28995
502         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
503         for literal16.
504
505 2006-09-09  Roger Sayle  <roger@eyesopen.com>
506             Nicolas Setton <setton@adacore.com>
507
508         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
509
510 2006-09-10  Andreas Schwab  <schwab@suse.de>
511
512         * config/m68k/m68k.md (bungt_rev): New pattern.
513
514 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
515             Dale Johannesen  <dalej@apple.com>
516
517         PR target/26778
518         * regclass.c (struct reg_pref): Update documentation.
519         (regclass): Set prefclass to NO_REGS if memory is the best option.
520         (record_reg_classes): Cope with a prefclass set to NO_REGS.
521
522 2006-09-08  Eric Christopher  <echristo@apple.com>
523
524         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
525         * config/t-slibgcc-darwin: Support x86_64 multilib.
526         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
527         Return 1 for x86_64-darwin.
528         * config/i386/t-darwin: Add m64 multilib.
529         (LIB2_SIDITI_CONV_FUNCS): Use.
530         (LIB2FUNCS_EXTRA): Ditto.
531         * config/i386/darwin.h: Support x86_64.
532         * config/i386/i386.c (override_options): Turn on flag_pic
533         for x86_64-darwin. Disable flag_omit_pointer.
534         (get_pc_thunk_name): Assert !TARGET_64BIT.
535         (legitimate_address_p): Disable machopic addressing for
536         x86_64.
537         (legitimize_pic_address): Ditto.
538         (ix86_expand_move): Ditto.
539         (ix86_expand_call): Ditto.
540         (machopic_output_stub): Ditto.
541         * config/darwin.c (machopic_select_section): Support literal16.
542         (machopic_select_rtx_section): Ditto.
543         * config/darwin-sections.def: Ditto.
544         * config/darwin-64.c: New.
545
546 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
547
548         PR c/28504
549         * c-tree.h (struct c_arg_info): Add pending_sizes.
550         * c-parser.c (c_parser_parms_declarator,
551         c_parser_parms_list_declarator): Initialize pending_sizes.
552         * c-decl.c (get_parm_info): Initialize pending_sizes.
553         (get_parm_info): Set pending_sizes.
554         (grokdeclarator): Call put_pending_sizes for parameters for
555         function definition only.
556
557 2006-09-07  Jason Merrill  <jason@redhat.com>
558
559         PR middle-end/27724
560         * varasm.c (output_constant): Only strip actual no-op conversions.
561
562         PR target/13685
563         * config/i386/i386.c (override_options): Use 128-bit
564         stack boundary if -msse.
565
566 2006-09-07  Eric Christopher  <echristo@apple.com>
567
568         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
569         comment.
570         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
571         Redefine.
572
573 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
574
575         * dwarf2out.c: Remove strange characters from comment above
576         dwarf2out_frame_debug_expr.
577
578 2006-09-07  Eric Christopher  <echristo@apple.com>
579
580         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
581         * config/darwin.h: ... to here.
582
583 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
584
585         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
586
587         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
588         (TARGET_PARTIAL_FLAG_REG_STALL): New.
589
590         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
591         TARGET_PARTIAL_FLAG_REG_STALL.
592         (*ashldi3_cconly_rex64): Likewise.
593         (*ashlsi3_cmp): Likewise.
594         (*ashlsi3_cconly): Likewise.
595         (*ashlsi3_cmp_zext): Likewise.
596         (*ashlhi3_cmp): Likewise.
597         (*ashlhi3_cconly): Likewise.
598         (*ashlqi3_cmp): Likewise.
599         (*ashlqi3_cconly): Likewise.
600         (*ashrdi3_cmp_rex64): Likewise.
601         (*ashrdi3_cconly_rex64): Likewise.
602         (*ashrsi3_cmp): Likewise.
603         (*ashrsi3_cconly): Likewise.
604         (*ashrsi3_cmp_zext): Likewise.
605         (*ashrhi3_cmp): Likewise.
606         (*ashrhi3_cconly): Likewise.
607         (*ashrqi3_cmp): Likewise.
608         (*ashrqi3_cconly): Likewise.
609         (*lshrdi3_cmp_rex64): Likewise.
610         (*lshrdi3_cconly_rex64): Likewise.
611         (*lshrsi3_cmp): Likewise.
612         (*lshrsi3_cconly): Likewise.
613         (*lshrsi3_cmp_zext): Likewise.
614         (*lshrhi3_cmp): Likewise.
615         (*lshrhi3_cconly): Likewise.
616         (*lshrqi2_cmp): Likewise.
617         (*lshrqi2_cconly): Likewise.
618
619 2006-09-07 Uros Bizjak <uros@kss-loka.si>
620
621         PR target/28946
622         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
623         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
624         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
625         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
626         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
627         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
628         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
629         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
630         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
631         implement only CC setting effects of shift instructions.
632
633 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
634
635         * doc/contrib.texi: Add myself.
636
637 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
638
639         PR middle-end/28862
640         * stor-layout.c (relayout_decl): Don't zero the alignment if it
641         was set by the user.
642
643 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
644
645         PR target/27117
646         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
647         (divsi_inv_m1): Use them.
648         (UNSPEC_DIV_INV_TABLE): New constant.
649
650 2006-09-06  James E Wilson  <wilson@specifix.com>
651
652         PR rtl-opt/27883
653         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
654         then call count_or_remove_death_notes.
655
656 2006-09-06  Jason Merrill  <jason@redhat.com>
657
658         PR c++/27371
659         * tree-inline.c (copy_result_decl_to_var): New fn.
660         (declare_return_variable): Use it.  Call declare_inline_vars here.
661         (expand_call_inline): Not here.
662
663 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
664
665         * doc/contrib.texi: Update my entry.
666
667 2006-09-06  Nick Clifton  <nickc@redhat.com>
668
669         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
670
671 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
672
673         PR tree-opt/28937
674         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
675         (canonicalize_induction_variables): Likewise.
676         (tree_unroll_loops_completely): Likewise.
677         (tree_ssa_prefetch_arrays): Likewise.
678         (remove_empty_loops): Likewise.
679         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
680         TODO_cleanup_cfg instead of directly calling
681         cleanup_tree_cfg_loop.
682         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
683         Likewise.
684         (tree_unroll_loops_completely): Likewise.
685         (remove_empty_loops): Likewise.
686         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
687         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
688         of tree_ssa_unswitch_loops.
689         (tree_ssa_loop_ivcanon): Use the return value of
690         canonicalize_induction_variables.
691         (tree_ssa_empty_loop): Use the return value of
692         remove_empty_loops.
693         (tree_complete_unroll): Use the return value of
694         tree_unroll_loops_completely.
695         (tree_ssa_loop_prefetch): Use the return value of
696         tree_ssa_prefetch_arrays.
697         * passes.c (execute_todo): Before Cleanup CFG, set
698         updating_used_alone and after cleanup CFG, call
699         recalculate_used_alone.
700
701 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
702
703         PR tree-opt/28952
704         * tree-vect-transform.c (vectorizable_condition): Move the check
705         for the type after the check for simple condition.
706
707 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
708             Kaz Kojima  <kkojima@gcc.gnu.org>
709
710         PR target/28764
711         * mode-switching.c (optimize_mode_switching): Make the destination
712         block of an abnormal edge have no anticipatable mode.  Don't
713         insert mode switching code at the end of the source block of
714         an abnormal edge.
715
716 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
717
718         PR rtl-optimization/26847
719         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
720         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
721         (simplify_plus_minus): Count n_constants while filling ops.  Replace
722         qsort with insertion sort.  Before going through the array to simplify
723         pairs, sort it.  Delay early exit until after the first sort, exiting
724         only if no swaps occurred.  Simplify pairs in reversed order, without
725         special-casing the first iteration.  Pack ops after simplifying pairs.
726
727 2006-09-05  Anatoly Sokolov <aesok@post.ru>
728
729         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
730         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
731         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
732         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
733
734 2006-09-05  Richard Guenther  <rguenther@suse.de>
735
736         PR tree-optimization/28900
737         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
738         compound conditional before creating COND_EXPR condition.
739
740 2006-09-05  Richard Guenther  <rguenther@suse.de>
741
742         PR tree-optimization/28905
743         * tree-vrp.c (fix_equivalence_set): Manually implement
744         !value_ranges_intersect_p to also handle symbolic ranges.
745
746 2006-09-05  Richard Guenther  <rguenther@suse.de>
747
748         PR middle-end/28935
749         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
750         of a COND_EXPR.
751
752 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
753
754         PR rtl-optimization/27616
755         * cse.c (table_size): New static variable.
756         (new_basic_block): Initialize it to 0.
757         (remove_from_table): Decrement it.
758         (insert): Increment it.
759         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
760         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
761         fold_rtx_mem_1 if under the cap.
762         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
763         the lookup of the equivalent expression and test for equality of the
764         first operand of the equivalent expression before in turn looking up
765         an equivalent constant for the second operand.
766
767 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
768
769         Revert this change:
770         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
771         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
772         pointer, instead of assuming it is possible to derive the
773         correct args size from a call insn.
774
775 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
776
777         PR middle-end/27567
778         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
779         (fold_builtin_mempcpy): Rename to...
780         (fold_builtin_memory_op): ... this.  Optimize one element copy
781         into an assignment.
782         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
783         functions.
784         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
785         (expand_builtin_memcpy, expand_builtin_mempcpy,
786         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
787         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
788         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
789         BUILT_IN_MEM{CPY,PCPY,MOVE}.
790
791 2006-09-01  DJ Delorie  <dj@redhat.com>
792
793         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
794         (stzx_16): Likewise.
795         ("stzx_24_<mode>"): Likewise.
796         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
797         ("cmp<mode>_op"): New.
798         (cmp<mode>): Change to expander; just save operands.
799         (b<code>_op): New.
800         (b<code>): Change to expander, emit compare here.
801         (s<code>_op): Change to use split and expander.
802         (s<code>_24_op): Likewise.
803         (s<code>_<mode>): New.
804         (s<code>_<mode>_24): New.
805         (movqicc_<code>_<mode): New.
806         (movhicc_<code>_<mode>): New.
807         (s<code>): New.
808         (s<code>_24): New.
809         * config/m32c/m32c.c (compare_op0, compare_op1): New.
810         (m32c_pend_compare): New.
811         (m32c_unpend_compare): New.
812         (m32c_expand_scc): New.
813         (m32c_expand_movcc): Emit the compare also.
814         * config/m32c/predicates.md (mra_nopp_operand): New.
815
816 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
817         Richard Guenther  <rguenther@suse.de>
818         Adam Nemet  <anemet@caviumnetworks.com>
819
820         PR middle-end/27226
821         * builtins.c (get_pointer_alignment): Handle more forms
822         of base addresses that can be used to derive more precise
823         information about alignment.
824
825 2006-09-01  Jason Merrill  <jason@redhat.com>
826
827         PR c++/28899
828         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
829         want_value.
830
831         * gimplify.c (voidify_wrapper_expr): Handle null type.
832
833 2006-09-01  Josh Conner  <jconner@apple.com>
834
835         PR c++/25505
836         * tree-nrv.c (dest_safe_for_nrv_p): New function.
837         (execute_return_slot_opt): Use it.
838
839 2006-08-31  Josh Conner  <jconner@apple.com>
840
841         PR c++/25505
842         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
843         returning aggregates.
844
845 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
846
847         PR tree-optimization/28839
848         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
849         blocks in that phi arguments appear.
850
851 2006-08-31  Roger Sayle  <roger@eyesopen.com>
852
853         PR other/22313
854         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
855         NULL, otherwise use an advance_loc4 to adjust relative to the
856         current label.
857         (output_cfi) <DW_CFA_set_loc>: Update the current label.
858         (dwarf2out_switch_text_section): Reset the current label to avoid
859         using advance_loc4 over section boundaries.
860
861 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
862
863         PR target/24367
864         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
865         r12 + SYMBOLIC_CONST.
866
867 2006-08-30  Richard Guenther  <rguenther@suse.de>
868
869         * Makefile.in (see.o): Add $(EXPR_H) dependency.
870
871 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
872
873         PR rtl-optimization/27735
874         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
875         Add new argument to keep track of whether an irreducible region
876         was affected.  All callers changed.
877         (fix_irreducible_loops): Removed.
878         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
879         flags were invalidated.
880
881 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
882
883         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
884         instead of SF operands.
885         (*fop_df_comm_sse): Likewise.
886         (*fop_df_comm_i387): Likewise.
887         (*fop_df_1_mixed): Likewise.
888         (*fop_df_1_sse): Likewise.
889
890 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
891             J"orn Rennecke  <joern.rennecke@st.com>
892
893         PR tree-optimization/17506
894         * tree-ssa.c (warn_uninit): If warning about a location outside of
895         the current function, note where the variable was declared.
896
897 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
898
899         PR tree-optimization/28411
900         * double-int.c (double_int_div): Use double_int_divmod.
901         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
902         double_int_mod, double_int_smod, double_int_umod): New functions.
903         * double-int.h (double_int_divmod, double_int_sdivmod,
904         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
905         Declare.
906         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
907         in double_int.
908         (get_computation_aff, get_computation_cost_at): Handle double_int
909         return type of constant_multiple_of.
910
911 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
912
913         PR middle-end/26632
914         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
915         an implicit conversion.
916
917 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
918
919         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
920
921 2006-08-27  Roger Sayle  <roger@eyesopen.com>
922
923         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
924         x87 instructions.
925
926 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
927
928         * config/i386/crtfastmath.c: Fix a comment typo.
929
930 2006-08-26  Roger Sayle  <roger@eyesopen.com>
931
932         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
933         temporary visit flags on CASE_LABEL_EXPRs.
934         * c-common.c (match_case_to_enum): Add function comment.  Avoid
935         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
936         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
937         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
938         a constant, only warn if that constant value isn't handled.
939
940 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
941
942         PR c++/24009
943         * input.h (restore_input_file_stack): Declare.
944         (INPUT_FILE_STACK_BITS): Define.
945         * toplev.c (fs_p, input_file_stack_history,
946         input_file_stack_restored, restore_input_file_stack): New.
947         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
948         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
949         (pop_srcloc): Don't free old state of stack.
950
951 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
952
953         PR target/27544
954         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
955         (PowerPC Type Attributes): New.
956
957 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
958
959         * config/xtensa/xtensa.c (function_arg_boundary): New.
960         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
961         STACK_BOUNDARY.
962         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
963         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
964
965 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
966
967         PR middle-end/28683
968         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
969         3 following insns.
970
971 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
972
973         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
974         (verify_local_live_at_start): Likewise.
975
976 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
977
978         PR c/27893
979         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
980         omp_add_variable): Treat sizes as variable whenever not
981         INTEGER_CST.
982
983 2006-08-26  Richard Guenther  <rguenther@suse.de>
984
985         PR middle-end/28814
986         * fold-const.c (fold_binary): Fold temporary to correct
987         type before constructing new comparison.
988
989 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
990
991         PR c/28418
992         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
993         variable again if DECL_SEEN_IN_BIND_EXPR_P.
994
995 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
996
997         PR c/28299
998         * c-decl.c (start_function): Don't try to process prototype
999         information from old declaration that isn't a function.
1000
1001 2006-08-25  Jan Hubicka  <jh@suse.cz>
1002
1003         PR target/28621
1004         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
1005
1006 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
1007
1008         PR target/27075
1009         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
1010         for 8 byte objects.
1011
1012 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
1013
1014         PR tree-optimization/16876
1015         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
1016         exit if PARM doesn't match VALUE.
1017
1018 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
1019
1020         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
1021         literal_prefix directive.
1022         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
1023         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1024         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1025
1026 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
1027
1028         PR target/28753
1029         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
1030         predicate to general_operand.  Add 0->y and I->r alternatives.
1031
1032 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
1033
1034         * doc/tm.texi: Fix a typo.
1035         * predict.c: Fix comment typos.
1036
1037 2006-08-25  Nick Clifton  <nickc@redhat.com>
1038
1039         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1040         assertions of "cpu" and "machine".
1041
1042 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
1043
1044         PR tree-opt/28807
1045         * tree-ssa-operands.c (access_can_touch_variable): Don't say
1046         the access through a base which has an alias set of 0 cannot
1047         touch the variable.
1048
1049 2006-08-24  Bill Wendling  <wendling@apple.com>
1050
1051         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
1052
1053 2006-08-24  Jan Hubicka  <jh@suse.cz>
1054
1055         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
1056
1057 2006-08-24  Jan Hubicka  <jh@suse.cz>
1058
1059         PR debug/26881
1060         * cgraph.c: Fix comments.
1061         (cgraph_varpool_mark_needed_node): Mark only variables not already
1062         output to file.
1063         * cgraphunit.c: Update comments; include gt-cgraphunit.h
1064         (cgraph_varpool_assembled_nodes_queue): New static variable.
1065         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
1066         (cgraph_varpool_output_debug_info): New function.
1067         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
1068         * Makefile.in: Add gt-cgraphunit.h
1069
1070 2006-08-24  Jan Hubicka  <jh@suse.cz>
1071
1072         * predict.c (probability_reliable_p): New predicate.
1073         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
1074         (predict_loops): Do not predict loop exit with less than 2%
1075         probability.
1076         * basic-block.h (edge_probability_reliable_p,
1077         br_prob_note_reliable_p): Declare.
1078         * ia64.h (ia64_print_operand): Do not disable on-chip branch
1079         prediction when static predictor is not reliable.
1080         * rs6000.c (output_cbranch): Likewise.
1081
1082 2006-08-23  Stuart Hastings  <stuart@apple.com>
1083
1084         PR 28825
1085         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
1086         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
1087
1088 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
1089
1090         PR debug/28692
1091         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
1092         complex values, nor for generic vector values.
1093
1094 2006-08-22  Richard Guenther  <rguenther@suse.de>
1095
1096         PR middle-end/28776
1097         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
1098         parameter.  Convert arguments to arithmetic expression to the
1099         chrecs type.
1100         (analyze_scalar_evolution_1): Adjust caller.
1101
1102 2006-08-22  Jan Hubicka  <jh@suse.cz>
1103
1104         Patch by Paolo Bonzini
1105         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
1106         my previous patch.
1107
1108 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
1109
1110         PR tree-optimization/28003
1111         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
1112         before grouping aliases.
1113
1114 2006-08-22  Roger Sayle  <roger@eyesopen.com>
1115
1116         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
1117         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
1118
1119 2006-08-21  Jason Merrill  <jason@redhat.com>
1120
1121         PR c++/27115
1122         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
1123         wrapper.  Loop to handle nested wrappers.
1124         (gimplify_bind_expr): Remove temp parameter.
1125         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
1126         and STATEMENT_LIST on the rhs.
1127         (gimplify_statement_list): Voidify the STATEMENT_LIST.
1128         (gimplify_expr): Pass pre_p to gimplify_statement_list.
1129         (gimplify_target_expr): Remove special BIND_EXPR handling.
1130
1131 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
1132
1133         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
1134         #if !__SHMEDIA__ .
1135
1136 2006-08-21  Olivier Hainque  <hainque@adacore.com>
1137
1138         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
1139         Arrange for the temporary captures of components overlapping the lhs
1140         to happen before the lhs is possibly cleared.
1141
1142 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
1143
1144         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
1145         necessary places to pass the correct "number of registers" values
1146         to _Unwind_VRS_Pop.
1147
1148 2006-08-20  Jan Hubicka  <jh@suse.cz>
1149
1150         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
1151         (create_name_tags): Instead of quadratic checking use hashtable.
1152         * bitmap.h: Include hashtab.h.
1153         (bitmap_hash): Declare.
1154         * bitmap.c (bitmap_hash): New function.
1155
1156 2006-08-20  Jan Hubicka  <jh@suse.cz>
1157
1158         PR rtl-optimization/28071
1159         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
1160         twice.
1161         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
1162         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
1163         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
1164         cgraph_decide_inlining_incrementally): Update use of
1165         cgraph_check_inline_limits.
1166         * cgraph.c (edge_hash, edge_eq): New function.
1167         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
1168         cgraph_edge_remove_caller, cgraph_node_remove_callees,
1169         cgraph_remove_node): Maintain call site hash.
1170         * cgraph.h (struct cgraph_node): Add call_site_hash.
1171         (cgraph_set_call_stmt): New function.
1172
1173 2006-08-20  Jan Hubicka  <jh@suse.cz>
1174
1175         PR rtl-optimization/28071
1176         * reload1.c (reg_has_output_reload): Turn into regset.
1177         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
1178         choose_reload_regs, emit_reload_insns): Update to new
1179         reg_has_output_reload.
1180
1181 2006-08-20  Jan Hubicka  <jh@suse.cz>
1182
1183         PR middle-end/28779
1184         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
1185         function body sizes.
1186         * cgraphunit.c (cgraph_analyze_function): Don't do so.
1187
1188 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
1189
1190         PR target/28648 c:
1191         * tree.c (handle_dll_attribute): Return early if not a
1192         var or function decl.
1193
1194 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
1195
1196         PR target/27565
1197         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
1198         alignment of SPE vector types.
1199
1200 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1201
1202         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
1203
1204 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
1205
1206         PR c/28744
1207         * cgraph.h (struct cgraph_node): Remove externally_visible
1208         bitfield.
1209         * cgraphunit.c (process_function_and_variable_attributes): Set
1210         local.externally_visible rather than externally_visible.
1211
1212         PR c/28744
1213         * c-common.c (handle_externally_visible_attribute): First look
1214         at TREE_CODE and only if it is function or var decl, check for
1215         non-public objects.  Don't warn for DECL_EXTERNAL.
1216         * cgraphunit.c (process_function_and_variable_attributes): Warn
1217         if externally_visible attribute is used on non-public object.
1218
1219 2006-08-17  Jan Hubicka  <jh@suse.cz>
1220
1221         PR tree-optimization/27865
1222         * reload1.c (forget_marked_reloads): New function.
1223         (forget_old_reloads_1): When data are passed, just mark the registers
1224         for later removal.
1225         (reload_as_needed): Use the new mechanizm.
1226
1227 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
1228
1229         PR target/28146
1230         * reload.h (reg_equiv_alt_mem_list): New declaration.
1231         * reload1.c (reg_equiv_alt_mem_list): New definition.
1232         (reload): Initialize it and release it.
1233         (delete_output_reload): Use it.
1234         * reload.c (push_reg_equiv_alt_mem): New function.
1235         (find_reloads_toplev): Call it.
1236         (find_reloads_address, find_reloads_address_1): Likewise.
1237         (find_reloads_subreg_address): Likewise.
1238
1239 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1240
1241         PR rtl-optimization/28489
1242         * sched-ebb.c (begin_schedule_ready): Create basic block
1243         at the right place.
1244         (advance_target_bb): Skip empty blocks.
1245         * haifa-sched.c (bb_note): Make global.
1246         * sched-int.h (bb_note): Add prototype.
1247
1248 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1249
1250         PR tree-optimization/27865
1251         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1252         for pointer types.
1253         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1254         fold_used_pointer, pointer_used_p): New functions.
1255         (analyze_scalar_evolution_1): Use fold_used_pointer.
1256         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1257         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1258         for pointers.
1259
1260 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
1261
1262         PR c++/28573
1263         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1264         or the INTEGER_CST.  Fail on a CALL_EXPR.
1265         (fold_offsetof): Pass new argument to fold_offsetof_1.
1266         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1267         operand into an INDIRECT_REF.
1268         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1269
1270 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1271
1272         PR gcov/profile/26570
1273         * value-prof.c (static_values): Removed.
1274         (tree_find_values_to_profile): Do not set static_values.
1275         (find_values_to_profile): Do not free static_values.
1276         * profile.c (instrument_values): Do not free the values.
1277         (branch_prob): Free the values.
1278
1279 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
1280
1281         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1282
1283 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
1284
1285         PR c/27697
1286         * c-typeck.c (build_component_ref): Combine qualifiers of
1287         structure or union and field.
1288
1289 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1290
1291         PR rtl-optimization/28071
1292         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1293         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1294         * tree-into-ssa.c (struct dom_dfsnum): New.
1295         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1296         functions.
1297         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1298         compute_global_livein.
1299         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1300         in phi nodes in the correct blocks.
1301
1302 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
1303
1304         PR tree-optimization/28364
1305         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1306         correctly.
1307         (fold_affine_expr): New function.
1308         (may_eliminate_iv): Use fold_affine_expr.
1309
1310 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1311
1312         PR c/27489
1313         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1314         Clean up.
1315
1316 2006-08-16  Mike Stump  <mrs@apple.com>
1317
1318         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1319         * doc/cppopts.texi (-MD): Likewise.
1320
1321 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
1322
1323         PR c/28287
1324         * c-common.c (handle_weak_attribute): Ignore and warn if
1325         not a FUNCTION_ or VAR_DECL.
1326
1327 2006-07-15  Mike Stump  <mrs@apple.com>
1328
1329         PR c/28280
1330         * c-parser.c (c_parser_typeof_specifier): Don't use
1331         c_finish_expr_stmt, open code desired semantics instead.
1332
1333 2006-08-15  Nick Clifton  <nickc@redhat.com>
1334
1335         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1336         fragment to tmake_file only if threads are enabled.
1337         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1338         * config/i386/t-gthr-win32: New file. ... here.
1339
1340 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1341
1342         PR c/28649
1343         * c-parser.c (c_parser_compound_statement_nostart): Reset
1344         parser->error after each statement.
1345
1346 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
1347
1348         PR middle-end/28713
1349         * omp-low.c (lower_omp_parallel): Convert t to
1350         receiver_decl's type.
1351         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1352         source before comparison.
1353
1354         PR middle-end/28724
1355         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1356         to itype in assignment to oldival2.
1357
1358 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
1359
1360         PR c/27490
1361         PR c/27489
1362         * c-typeck.c (build_compound_expr): If the second expression
1363         is an error mark, then just return an error mark instead of
1364         creating a COMPOUND_EXPR.
1365
1366 2006-07-14  Mike Stump  <mrs@apple.com>
1367
1368         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1369
1370 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
1371
1372         * c-decl.c, var-tracking.c: Fix comment typos.
1373
1374 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
1375
1376         PR rtl-optimization/28634
1377         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1378         for floating-point modes unless flag_unsafe_math_optimizations.
1379
1380 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
1381             Andrew Pinski  <pinskia@physics.uc.edu>
1382
1383         PR c/27184
1384         * tree.c (build_array_type): Unify array types with
1385         unspecified index_type.
1386         * c-decl.c (grokdeclarator): Make sure we do not modify a
1387         unified incomplete array type.
1388         * c-typeck.c (store_init_value): Create distinct type before
1389         filling in the index type in an initializer from a compound
1390         literal.
1391
1392         * c-decl.c (grokdeclarator): Remove code where we copy the
1393         array type over.
1394
1395 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
1396
1397         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1398         into account for TODO_dump_cgraph.
1399         (TODO_update_ssa_no_phi): Likewise.
1400         (TODO_update_ssa_full_phi): Likewise.
1401         (TODO_update_ssa_only_virtuals): Likewise.
1402         (TODO_remove_unused_locals): Likewise.
1403         (TODO_set_props): Likewise.
1404         (TODO_update_stmt_usage): Likewise.
1405
1406 2006-08-13  Dirk Mueller  <dmueller@suse.de>
1407
1408         * c-common.c (strict_aliasing_warning): Fix formatting.
1409
1410 2006-08-13  Matthias Klose  <doko@debian.org>
1411
1412         * doc/invoke.texi: Fix spelling errors.
1413
1414 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1415
1416         PR rtl-optimization/23454
1417         * reorg.c (relax_delay_slots): Update comment.
1418
1419 2006-08-11  Richard Guenther  <rguenther@suse.de>
1420
1421         PR middle-end/28651
1422         * simplify-rtx.c (simplify_const_relational_operation):
1423         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1424         codes.
1425
1426 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
1427
1428         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1429         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1430
1431 2006-08-10  Paul Brook  <paul@codesourcery.com>
1432
1433         * final.c (final_scan_insn): Clear current_insn_predicate before
1434         outputting inline asm.
1435
1436 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
1437
1438         PR tree-optimization/26197
1439         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1440         get_ref_base_and_extent and overlap_subvar to add only relevant
1441         subvars as may-aliases.
1442         (add_may_alias_for_new_tag): New function, factored out of
1443         new_type_alias.
1444         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1445         with additional argument.
1446         * tree-flow.h (new_type_alias): Takes additional argument.
1447
1448 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
1449
1450         * gcov.c (no_data_file): New flag.
1451         (read_count_file): Set it if data file not present.  Assume counts
1452         zero if not found.
1453         (output_lines): Don't name the data file, if there wasn't one.
1454
1455 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
1456
1457         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1458         (rs6000_generate_compare): Tweak comments.
1459         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1460
1461 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
1462
1463         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1464         (var_debug_decl): New function.
1465         (var_reg_set): Follow debug decl link.  Add location even if
1466         reg is already known to hold some other variable.
1467         (var_mem_set): Follow debug decl link.
1468         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1469         decl link.  Delete other known locations of the variable part
1470         if requested.
1471         (var_reg_delete, var_mem_delete): Delete other known locations
1472         of the variable part if requested.
1473         (same_variable_part_p): New function.
1474         (add_stores): Select MO_COPY when appropriate.
1475         (vt_initialize): Handle it.
1476         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
1477         known locations for MO_SET and MO_CLOBBER.
1478         (find_variable_location_part): New function.
1479         (set_variable_part, delete_variable_part): Use it.
1480         (clobber_variable_part): New function.
1481         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1482         decl link.
1483
1484 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
1485
1486         PR tree-optimization/26969
1487         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1488         with an empty list of PHIs.
1489
1490 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
1491
1492         PR target/27827
1493
1494         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1495         instructions.
1496
1497 2006-08-06  Andreas Schwab  <schwab@suse.de>
1498
1499         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1500         string.  Whitespace and comment fixup.
1501
1502 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1503
1504         PR c/28502
1505         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1506         argument.
1507
1508         PR c/27721
1509         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1510
1511         PR c/28136
1512         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1513
1514 2006-08-04  Jan Hubicka  <jh@suse.cz>
1515
1516         PR target/26655
1517         PR target/28270
1518         * reload.c (push_reload): Patch out the mismatching instruction;
1519         return early.
1520         (find_reload): Bail out if the instruction was patched out.
1521
1522 2006-08-04  Jan Hubicka  <jh@suse.cz>
1523
1524         PR tree-optimization/24888
1525         * tree-inline.c (expand_call_inline): Do not re-record variables.
1526         (declare_inline_vars): Add variable to unexpanded_var_list.
1527
1528 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1529             Roger Sayle  <roger@eyesopen.com>
1530
1531         PR rtl-optimization/26244
1532         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
1533         inner_const are negative or greater than or equal to the bitsize of
1534         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
1535         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
1536         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
1537         CONST0_RTX (mode) when the new shift count is greater than or equal to
1538         to the bitsize of the object being shifted and XEXP (y, 0) has no side
1539         effects.
1540
1541 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
1542
1543         * tree-cfg.c: Fix a comment typo.
1544
1545 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
1546
1547         PR c++/28148
1548         * varasm.c (output_constant): Give the front end another chance to
1549         expand constants, after stripping NOPs.
1550
1551 2006-08-03  Jan Hubicka  <jh@suse.cz>
1552
1553         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
1554         implementation.
1555
1556 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
1557
1558         PR tree-optimization/27770
1559         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
1560         declaration removed (moved to tree-flow.h).
1561         (vect_can_force_dr_alignment_p): Likewise.
1562         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
1563         (moved from tree-vectorizer.h).
1564         (vect_can_force_dr_alignment_p): Likewise.
1565         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1566         from outside the vectorizer - in particular from cgraph stage.
1567         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1568         the alignment of global arrays when -fsection-anchors is enabled.
1569         * cgraphunit.c (cgraph_increase_alignment): New function.
1570         (cgraph_optimize): Call cgraph_increase_alignment.
1571
1572 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
1573
1574         PR target/27566
1575         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1576         not reload a SPE symbol_ref into a lo_sum address.
1577
1578 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
1579
1580         PR debug/28063
1581         * dwarf2out.c (prune_unused_types_prune): Move call to
1582         prune_unused_types_update_strings to cover the parent DIE also.
1583
1584 2006-08-02  Jan Hubicka  <jh@suse.cz>
1585
1586         PR gcov/profile/28480
1587         * tree-cfg.c (change_bb_for_stmt): New function.
1588         (tree_merge_blocks, tree_split_blocks): Use it.
1589
1590 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1591
1592         PR c++/28250
1593         PR c++/28257
1594         PR c++/28259
1595         PR c++/28267
1596         * toplev.c (compile_file): Return early on errorcount or sorrycount.
1597         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
1598         (cgraph_optimize): Likewise.
1599
1600 2006-08-01  Stuart Hastings  <stuart@apple.com>
1601
1602         * rtl.h (UINTVAL) New.
1603         * config/rs6000/rs6000.c (SMALL_INT) Use it.
1604         * testsuite/gcc.dg/20060801-1.c: New.
1605
1606 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1607
1608         PR debug/23336
1609         * c-typeck.c (build_external_type): Mark used enum types.
1610         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
1611         cfun also.
1612         (gen_subprogram_die): Whitespace fix.
1613
1614 2006-08-01  Jan Hubicka  <jh@suse.cz>
1615
1616         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
1617         bitmap when not needed.
1618         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
1619         bitmaps.
1620
1621 2006-08-01  Dirk Mueller  <dmueller@suse.de>
1622
1623         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
1624
1625 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1626
1627         * Makefile.in: Revert part of previous patch:
1628         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
1629         and REGS_H.
1630
1631 2006-07-30  Eric Christopher  <echristo@apple.com>
1632
1633         PR target/27543
1634         * doc/extend.texi (i386 Variable Attributes): Add anchor.
1635         (PowerPC Variable Attributes): New section.
1636
1637 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
1638
1639         PR target/28126 (partial fix)
1640         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
1641
1642 2006-07-28  Jan Hubicka  <jh@suse.cz>
1643
1644         PR rtl-optimization/28071
1645         * cfgrtl.c (rtl_delete_block): Free regsets.
1646         * flow.c (allocate_bb_life_data): Re-use regsets if available.
1647
1648 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1649
1650         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
1651         and variables used in dependencies.
1652
1653 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
1654
1655         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
1656         %fs for -mcmodel=kernel.
1657         (stack_tls_protect_test_di): Likewise.
1658
1659 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
1660
1661         * Makefile.in: Use mkinstalldirs.
1662
1663 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
1664
1665         PR driver/28437
1666         * opts-common.c (prune_options): Skip joined switches.
1667
1668 2006-07-27  Jan Hubicka  <jh@suse.cz>
1669
1670         PR rtl-optimization/28071
1671         * cselib.c (cselib_process_insn): Don't remove useless values too
1672         often for very large hashtables.
1673
1674 2006-07-27  Jan Hubicka  <jh@suse.cz>
1675
1676         PR rtl-optimization/28071
1677         * global.c (greg_obstack): New obstack.
1678         (allocate_bb_info): Use it.
1679         (free_bb_info): Likewise.
1680         (modify_reg_pav): Likewise.
1681
1682 2006-07-27  Roger Sayle  <roger@eyesopen.com>
1683
1684         * builtins.c (fold_fixed_mathfn): When long and long long are the
1685         same size, canonicalize llceil*, llfloor*, llround* and llrint*
1686         functions to their lceil*, lfloor*, lround* and lrint* forms.
1687
1688 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1689
1690         PR gcc/28508
1691         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1692         branch.
1693         (rev_branch_insn): Likewise.
1694
1695 2006-07-27  Jan Hubicka  <jh@suse.cz>
1696
1697         PR rtl-optimization/28071
1698         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1699         (reg_set_in_bb, max_reg_computed): New static variables.
1700         (regmove_optimize): Free the new array.
1701         (fixup_match_1): Update call of reg_is_remote_constant_p.
1702
1703 2006-07-26  Jan Hubicka  <jh@suse.cz>
1704
1705         PR tree-optimization/27882
1706         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1707         and decl fields.
1708         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1709         next pointer
1710         (cgraph_analyze_compilation_unit): Likewise.
1711         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1712         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1713         (cgraph_early_inlinine): Make order garbage collected.
1714         * Makefile.in (gt-ipa-inline): New garbagecollected file.
1715
1716 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1717
1718         * dbxout.c (output_types_sort): Add a comment.
1719         (output_used_types): Free the VEC.
1720
1721 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1722
1723         * function.c (reorder_fix_fragments): Delete.
1724         (reorder_blocks): Don't call it.
1725         (reorder_blocks_1): Put all subblocks under the origin block.
1726
1727 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
1728
1729         PR rtl-optimization/27907
1730         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1731         FLOAT_TRUNCATE.
1732
1733 2006-07-25  Roger Sayle  <roger@eyesopen.com>
1734
1735         PR middle-end/28473
1736         * convert.c (convert_to_integer): When transforming (T)foo(x) into
1737         bar(x) check that bar's result type can represent all the values of T.
1738
1739 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
1740
1741         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1742
1743 2006-07-25  Nick Clifton  <nickc@redhat.com>
1744
1745         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1746         size_lookup[] array.
1747         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1748         (ggc_pch_count_object): Likewise.
1749         (ggc_pch_alloc_object): Likewise.
1750         (ggc_pch_write_object): Likewise.
1751         (init_ggc): Do not attempt to initialize entries in the
1752         size_lookup[] array for objects whose size is greater than than
1753         the length of the array.
1754
1755 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
1756
1757         * dbxout.c (output_used_types_helper): Push queued types
1758         on a VEC.
1759         (output_types_sort): New.
1760         (output_used_types): Collect used types on a VEC and sort them
1761         before emission.
1762
1763 2006-07-24  Richard Guenther  <rguenther@suse.de>
1764
1765         PR middle-end/28463
1766         * cgraph.c (cgraph_remove_node): Do not check if dumps
1767         are enabled.
1768         * cgraphunit.c (cgraph_optimize): Likewise.
1769
1770 2006-07-24  Jan Hubicka  <jh@suse.cz>
1771
1772         PR rtl-optimization/28071
1773         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1774         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1775         splitting before first stmt.
1776
1777 2006-07-24  Jan Hubicka  <jh@suse.cz>
1778
1779         PR rtl-optimization/28071
1780         * ipa-inline.c (update_caller_keys): Remove edges that
1781         are no longer inline candidates.
1782
1783 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1784
1785         PR debug/27473
1786         * dbxout.c (output_used_types_helper, output_used_types): New.
1787         (dbxout_symbol): Call output_used_types.
1788
1789 2006-07-23  Jan Hubicka  <jh@suse.cz>
1790
1791         PR c/25795
1792         PR c++/27369
1793         * cgraph.c (cgraph_varpool_nodes): Export.
1794         (decide_is_variable_needed): Ignored "used" attribute in
1795         unit-at-a-time mode.
1796         * cgraph.h (cgraph_varpool_nodes): Declare.
1797         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1798         unit-at-a-time mode.
1799
1800 2006-07-23  Roger Sayle  <roger@eyesopen.com>
1801
1802         PR target/28247
1803         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1804         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
1805         the __gthrw form of thr_keycreate.
1806         (__gthread_key_delete): Silence the unused argument warning.
1807
1808 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
1809
1810         PR debug/25468
1811         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1812         Cache the last found '\0' marker to avoid quadratic behavior.
1813
1814 2006-07-23  Jan Hubicka  <jh@suse.cz>
1815
1816         * i386.md (subsi_3_zext): Fix output template.
1817
1818 2006-07-21  Mike Stump  <mrs@apple.com>
1819
1820         * doc/invoke.texi (C++ Dialect Options): Note that
1821         -fvisibility-inlines-hidden doesn't affect explicitly
1822         instantiationed inline methods.
1823
1824 2006-07-20  Roger Sayle  <roger@eyesopen.com>
1825
1826         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1827         if the target assembler is GNU binutils' gas.
1828         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1829         whether to pass GNU gas or native as command line options.
1830
1831 2006-07-20  Jason Merrill  <jason@redhat.com>
1832
1833         * tree.c (remove_attribute): New fn.
1834         * tree.h: Declare it.
1835
1836 2006-07-20  Paul Brook  <paul@codesourcery.com>
1837
1838         PR 27363
1839         * cse.c (cse_insn): Add destination addresses to hash table. Check if
1840         they are invalidated by this instruction.
1841
1842 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
1843
1844         PR target/28427
1845         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1846
1847 2006-07-20  Eric Christopher  <echristo@apple.com>
1848
1849         PR target/26877
1850         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1851
1852 2006-07-19  Eric Christopher  <echristo@apple.com>
1853
1854         * config/t-slibgcc-darwin (stmp-lipo): Remove.
1855         Rewrite dependencies for libgcc_s.1.dylib.
1856
1857 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
1858
1859         * except.c (duplicate_eh_regions_1): Clear next_peer.
1860
1861 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
1862
1863         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1864         -mlongcall does not guarantee all calls will be long.
1865         * doc/extend.texi (long_call/short_call): Document that longcall
1866         does not guarantee a long call will be used.
1867         (longcall/shortcall): Likewise.
1868
1869 2006-07-18  Roger Sayle  <roger@eyesopen.com>
1870
1871         PR middle-end/28283
1872         * expmed.c (expand_shift): Additionally check that the shift_cost
1873         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1874         before implementing a LSHIFT_EXPR as a sequence of additions.
1875         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1876         middle-end that DImode shifts need to be synthesized by expand.
1877
1878 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
1879
1880         PR 28410
1881         * tree-ssa-operands.c (access_can_touch_variable): Update
1882         comment.
1883         Return true if ALIAS is .GLOBAL_VAR.
1884
1885 2006-07-18  David Daney  <ddaney@avtrex.com>
1886
1887         * gcc.c (display_help): Fix typo in help text.
1888
1889 2006-07-18  Olivier Hainque  <hainque@adacore.com>
1890
1891         * tree.h (categorize_ctor_elements): Adjust prototype and add
1892         descriptive comment, both in accordance with the interface change
1893         described below.
1894         * varasm.c (constructor_static_from_elts_p): New function.
1895         Whether a constructor node is a valid static constant initializer
1896         if all its elements are.
1897         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1898         * output.h: Declare it.
1899         * expr.c (categorize_ctor_elements_1): Return whether the constructor
1900         is a valid constant initializer instead of computing the number of
1901         non-constant elements.  Use constructor_static_from_elts_p for this
1902         purpose.  Replace the head comment with an indication that this is a
1903         helper for categorize_ctor_elements.
1904         (categorize_ctor_elements): Same interface change as for the _1
1905         helper.  Former head comment from this helper moved here, adjusted to
1906         account for the interface changes.
1907         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1908         (all_zeros_p): Likewise.
1909         * gimplify.c (gimplify_init_constructor): Decide whether we can make
1910         static versions of the constructor from the categorize_ctor_elements
1911         return value instead of the formerly computed number of non-constant
1912         elements.
1913
1914 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
1915
1916         * configure: Regenerate.
1917         * Makefile.in (build_libsubdir): New configure substitution
1918         (build_libobjdir): New variable.
1919         (BUILD_LIBIBERTY): Use it.
1920
1921 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1922
1923         PR c/28286
1924         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1925
1926 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
1927
1928         PR c/26993
1929         * c-common.c (handle_weakref_attribute): Ignore attribute in
1930         the same conditions the alias attribute is ignored.
1931
1932 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
1933
1934         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1935         (dbxout_begin_prologue): Increment scope_labelno.
1936
1937 2006-07-17  Richard Henderson  <rth@redhat.com>
1938
1939         PR 27889
1940         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1941         if needed.
1942
1943 2006-07-17  Roger Sayle  <roger@eyesopen.com>
1944             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1945
1946         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1947         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
1948         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
1949         functions such as sbrk, write, etc..  Add function prototypes.
1950         Convert function declarations from K&R to ISO C.  Cast pointers
1951         to "long" and "unsigned long" instead of "int" and "unsigned int".
1952         Convert tokens following #endif into comments.
1953
1954 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
1955
1956         * invoke.texi: Remove mention of f77; Reformat table for
1957         inline parameter options correctly; mention that -malign-double
1958         is default on x86-64 targets.
1959
1960 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
1961
1962         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1963         (convert_affine_scev, chrec_convert_aggressive): Use
1964         avoid_arithmetics_in_type_p.  Do not check for the subtypes
1965         separately.
1966
1967 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1968
1969         PR middle-end/28403
1970         * optabs.c (expand_doubleword_shift): Wrap the call to
1971         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1972
1973 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1974
1975         PR middle-end/28402
1976         * optabs.c (expand_binop): Pass next_methods rather than methods
1977         to expand_doubleword_shift.
1978
1979 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
1980
1981         PR other/28251
1982         * tree.h (dump_addr): Declare.
1983         * print-tree.c (dump_addr): New function.
1984         (print_node_brief, print_node): Use it.
1985         * print-rtl.c (print_rtx): Likewise.
1986         * common.opt (-fdump-noaddr): New option.
1987         * doc/invoke.texi (-fdump-noaddr): Document.
1988         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1989         (ve_info_hash): Likewise.
1990
1991 2006-07-13  Andrew Haley  <aph@redhat.com>
1992
1993         PR tree-optimization/19505
1994         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1995         edge leaving this block, make sure that the destination of this
1996         block has only one predecessor.
1997
1998 2006-07-17  Richard Guenther  <rguenther@suse.de>
1999
2000         PR tree-optimization/28238
2001         * tree-inline.c (copy_bb): Check if we produced valid
2002         gimple copying and substituting a stmt.  If not, gimplify
2003         it.
2004
2005 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
2006
2007         * optabs.c (maybe_encapsulate_block): New function extracted from...
2008         (emit_libcall_block): ...here.  Invoke it on the block of insns to
2009         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
2010         (emit_no_conflict_block): Likewise.
2011
2012 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2013
2014         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
2015
2016 2006-07-15  Roger Sayle  <roger@eyesopen.com>
2017
2018         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
2019         a new NOP_EXPR case of the switch statement.
2020
2021 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2022
2023         PR middle-end/28160
2024         * stor-layout.c (place_field): Take the bit field with
2025         an excessive size into account in the ms-bitfiled case.
2026
2027         PR middle-end/28161
2028         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
2029         the previous bit field.
2030
2031 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
2032
2033         PR target/27287
2034         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2035
2036 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
2037
2038         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
2039         signal frames correctly even when the signal was installed with
2040         sa_restorer set.
2041
2042 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
2043
2044         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
2045         (dbxout_function_end): Use local label LFBB. Remove hook
2046         DBX_OUTPUT_NFUN.
2047         (dbxout_source_line): Use local label LFBB.
2048         (dbxout_block): Likewise.
2049         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
2050         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
2051         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
2052         and DBX_OUTPUT_NFUN.
2053
2054 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
2055
2056         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2057
2058 2006-07-13  Jan Hubicka  <jh@suse.cz>
2059
2060         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
2061         align_variable.
2062         * output.h (align_variable): Declare.
2063         * varasm.c (align_variable): Export.
2064         * value-prof.c (tree_value_profile_transformations): Recompute iterator
2065         when basic block changed.
2066
2067 2006-07-13  Nick Clifton  <nickc@redhat.com>
2068
2069         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
2070         walking the LOG_LINKS chain.
2071
2072 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
2073
2074         * doc/invoke.texi (C++ Dialect Options): Explain difference
2075         between -fvisibility-inlines-hidden and setting hidden
2076         visibility explicitly.
2077
2078 2006-07-12  Eric Christopher  <echristo@apple.com>
2079
2080         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
2081         (stmp-lipo): Depend on libgcc.a.
2082
2083 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
2084
2085         * tree.c: Fix a comment typo.
2086
2087 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
2088
2089         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
2090         dest.
2091         (umulhisi3_r): Likewise.
2092
2093 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
2094
2095         PR libstdc++/27878
2096         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
2097         x < 19, vs wchar_t support.
2098
2099 2006-07-12  Nick Clifton  <nickc@redhat.com>
2100
2101         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
2102         instead of -isa=sh4.
2103
2104 2006-07-12  Mike Stump  <mrs@apple.com>
2105
2106         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
2107
2108 2006-07-10  Eric Christopher  <echristo@apple.com>
2109
2110         * config/t-slibgcc-darwin: Rewrite.
2111
2112 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2113
2114         PR bootstrap/20437
2115         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
2116         dependencies.
2117
2118 2006-07-08  Matthias Klose  <doko@debian.org>
2119
2120         * doc/sourcebuild.texi: Fix typo.
2121
2122 2006-07-07  Mike Stump  <mrs@apple.com>
2123
2124         * toplev.c (process_options): Don't give -ffunction-sections may
2125         affect debugging warning for Mach-O.
2126
2127 2006-07-07  James E Wilson  <wilson@specifix.com>
2128
2129         * config/mips/mips.md (cpu): Add sb1a.
2130         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
2131         addition to sb1.  Adjust comments to clarify SB-1A differences from
2132         SB-1.
2133         (ir_sb1a_load): New.  Modify bypasses to use it.
2134         (ir_sb1a_simple_alu): Likewise.
2135         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
2136         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
2137         (mips_issue_rate): Add PROCESSOR_SB1A.
2138         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
2139         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
2140         (TARGET_SB1): Add PROCESSOR_SB1A check.
2141         (TUNE_SB1): Likewise.
2142
2143         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
2144         * config/mips/mips.c (mips_store_data_bypass_p): New.
2145         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
2146         store_data_bypass_p.
2147
2148 2006-07-08  Paul Brook  <paul@codesourcery.com>
2149
2150         PR target/27991
2151         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
2152
2153 2006-07-07   Richard Guenther  <rguenther@suse.de>
2154
2155         PR middle-end/28268
2156         * tree.h (build_one_cst): Declare.
2157         * tree.c (build_one_cst): New function.
2158         * tree-ssa-math-opts.c (get_constant_one): Remove.
2159         (insert_reciprocals): Use build_one_cst.
2160         * fold-const.c (fold_plusminus_mult): Likewise.
2161
2162 2006-07-07  Roger Sayle  <roger@eyesopen.com>
2163
2164         * pointer-set.c (pointer_set_destroy): Correct whitespace.
2165         * cfgloopanal.c (dump_graph): Likewise.
2166         * dojump.c (discard_pending_stack_adjust): Likewise.
2167         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
2168         Likewise.
2169         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
2170         * function.c (finalize_block_changes): Likewise.
2171         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
2172         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
2173         * rtl.c (dump_rtx_statistics): Likewise.
2174         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
2175         Likewise.
2176         * varray.c (dump_varray_statistics): Likewise.
2177         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2178         decode_decimal64, encode_decimal128, decode_decimal128,
2179         decimal_real_to_decimal): Likewise.
2180
2181 2006-07-07  Richard Guenther  <rguenther@suse.de>
2182
2183         PR tree-optimization/28187
2184         * tree-vrp.c (vrp_operand_equal_p): New function.
2185         (vrp_bitmap_equal_p): Likewise.
2186         (update_value_range): Use them to compare old and new
2187         max and min values.
2188
2189 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2190
2191         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
2192         a default case to switch statement to silence compiler warnings.
2193
2194 2006-07-06  Roger Sayle  <roger@eyesopen.com>
2195
2196         PR target/27968
2197         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
2198         the configured assembler supports the x87's ffreep mnemonic.
2199         * configure: Regenerate.
2200         * config.in: Regenerate.
2201
2202         * config/i386/i386.c (output_387_ffreep): New function.
2203         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
2204         (output_387_reg_move): Likewise.
2205
2206 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
2207
2208         Port to hosts whose 'sort' and 'tail' implementations
2209         treat operands with leading '+' as file names, as POSIX
2210         has required since 2001.  However, make sure the code still
2211         works on pre-POSIX hosts.
2212         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
2213         which says you should use "tail -c +N" rather than "tail +Nc".
2214         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2215
2216 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
2217
2218         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
2219         argument name.
2220
2221 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2222
2223         PR target/28150
2224         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2225         PRE_{INC,DEC} of TFmode.
2226
2227 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
2228             Alan Modra  <amodra@bigpond.net.au>
2229
2230         PR target/28170
2231         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2232         bounds. Simplify.
2233
2234 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2235
2236         PR target/28285
2237         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2238         Remove duplicate gtu.
2239
2240 2006-07-05  Jason Merrill  <jason@redhat.com>
2241
2242         PR c++/13983
2243         PR c++/17519
2244         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2245         * c-common.c (handle_packed_attribute): So don't copy it here.
2246         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2247
2248 2006-07-05  Mike Stump  <mrs@apple.com>
2249
2250         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2251
2252 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2253
2254         PR target/26146
2255         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2256
2257 2006-07-05  Richard Guenther  <rguenther@suse.de>
2258
2259         PR target/28158
2260         * config/i386/i386.md (*negdf2_1): Restrict pattern to
2261         TARGET_SSE2 targets if using SSE math.
2262         (*absdf2_1): Likewise.
2263
2264 2006-07-05  Richard Guenther  <rguenther@suse.de>
2265
2266         PR tree-optimization/28162
2267         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2268         make sure to convert the operands to the correct type.
2269
2270 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
2271
2272         PR tree-optimization/28218
2273
2274         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2275         to calculate and free the dominator information.
2276
2277 2006-07-04  Peter O'Gorman  <peter@pogma.com>
2278
2279         * mklibgcc.in: chmod 644 before ranlib during install.
2280
2281 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
2282             J"orn Rennecke <joern.rennecke@st.com>
2283
2284         * configure.ac (.eh_frame data check): Use diff -b.
2285
2286 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2287
2288         PR bootstrap/18058
2289         * Makefile.in (BUILD_RTL): Add build/vec.o.
2290         (build/gencondmd.o): Filter out -fkeep-inline-functions.
2291         (build/genextract): Delete.
2292         (build/genautomata): Likewise.
2293
2294 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
2295
2296         PR target/28207
2297         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2298         128-bit IBM long doubles for ABI_V4.
2299
2300 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2301
2302         * tree.c (range_in_array_bounds_p): New predicate.
2303         * tree.h (range_in_array_bounds_p): Declare it.
2304         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2305         return a less conservative answer.
2306         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2307         and flag 'is_group'.
2308         (IS_ELEMENT_FOR_GROUP): New macro.
2309         (FOR_EACH_ACTUAL_CHILD): Likewise.
2310         (next_child_for_group): New helper function.
2311         (can_completely_scalarize_p): Take into account groups.
2312         (sra_hash_tree): Handle RANGE_EXPR.
2313         (sra_elt_eq): Likewise.
2314         (lookup_element): Be prepared for handling groups.
2315         (is_valid_const_index): Delete.
2316         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2317         instead of is_valid_const_index.
2318         <ARRAY_RANGE_REF>: New case.
2319         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2320         is_valid_const_index.
2321         <ARRAY_RANGE_REF>: Do not unconditionally punt.
2322         (scan_dump): Dump info for groups too.
2323         (decide_instantiation_1): Likewise.
2324         (decide_block_copy): Assert that the element is not a group.
2325         Propagate decision to groups.
2326         (generate_one_element_ref): Handle RANGE_EXPR.
2327         (mark_no_warning): Iterate over actual childs.
2328         (generate_copy_inout): Likewise.
2329         (generate_element_copy): Likewise.
2330         (generate_element_zero): Likewise.
2331         (generate_element_init_1): Likewise.
2332         (dump_sra_elt_name): Handle RANGE_EXPR.
2333
2334 2006-07-03  Roger Sayle  <roger@eyesopen.com>
2335
2336         PR tree-optimization/26251
2337         * tree-ssa-threadupdate.c (redirection_block_p): New function.
2338         (thread_block): When optimizing for size refuse to thread jumps
2339         that would require duplication of blocks other than redirection
2340         blocks.
2341
2342 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2343
2344         * configure.ac: Fix thinko in previous check-in.
2345         * configure: Regenerate.
2346
2347 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
2348
2349         PR other/27063
2350         * configure.ac (for lang...): Simplify nesting of conditionals.
2351         Test subdir_requires for non-enabled languages.  Move processing
2352         of lang_opt_files and lang_tree_fiels below that test.
2353         * configure: Regenerate.
2354         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2355
2356 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
2357
2358         * doc/gcov.texi (Invoking Gcov): Add a missing word.
2359
2360 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
2361
2362         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2363         comment typos.
2364
2365 2006-06-29  Jason Merrill  <jason@redhat.com>
2366
2367         PR c++/26905
2368         PR c++/26612
2369         PR c++/27000
2370         PR c++/26984
2371         PR c++/19134
2372         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2373         * c-common.c (c_determine_visibility): Handle it here.
2374         * c-decl.c (finish_decl): Call c_determine_visibility for
2375         functions, too.
2376         * flags.h (enum symbol_visibility): Sort from most to least visibility.
2377         * tree.h: Likewise.
2378         * varasm.c (default_assemble_visibility): Likewise.
2379         * c-common.c (handle_visibility_attribute): Complain about trying
2380         to give visibility to an already defined class, or trying to change
2381         declared visibility. Always attach the attribute.
2382
2383         PR c++/26905
2384         PR c++/21675
2385         PR c++/17470
2386         * attribs.c (decl_attributes): Ignore type-in-place attributes
2387         once the type has been defined.
2388
2389 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2390
2391         PR middle-end/27428
2392         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2393         to indicate the cpplib has issued an error message for us.
2394
2395 2006-06-29  Asher Langton  <langton2@llnl.gov>
2396
2397         PR target/25765
2398         * config/i386/i386.c (ix86_output_function_epilogue): Don't
2399         insert a label at the end of an function under Mach-O.
2400
2401 2006-06-29  Eric Christopher  <echristo@apple.com>
2402             Evan Cheng  <evan.cheng@apple.com>
2403
2404         * predicates.md (vector_all_ones_operand): New.
2405         (nonimmediate_or_sse_const_operand): Ditto.
2406         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2407         * config/i386/i386.c (standard_sse_constant_opcode): Define.
2408         (standard_sse_mode_p): Ditto.
2409         (standard_sse_constant_p): Add case for -1 vector.
2410         (ix86_expand_vector_move): Try to use.
2411         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2412         Call standard_sse_constant_opcode.
2413         (*movv4sf_internal): Ditto.
2414         (*movv2df_internal): Ditto.
2415
2416 2006-06-29  Roger Sayle  <roger@eyesopen.com>
2417
2418         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2419         of XEXP to extract the operands of a MATCH_CODE rtx.
2420
2421 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
2422
2423         * tree.c (tree_size): Do not waste tail padding in
2424         struct tree_string and make the size be the same as
2425         build_string will generate.
2426
2427 2006-06-28  Jason Merrill  <jason@redhat.com>
2428
2429         PR c++/27768
2430         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2431         may_aliases already in the tag's annotations to the bitmap.
2432
2433 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2434
2435         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2436
2437 2006-06-28  Roger Sayle  <roger@eyesopen.com>
2438
2439         * genpreds.c (generate_switch_p): New function.
2440         (add_mode_tests): Push the new mode test down inside an AND expr
2441         if this allows the switch-suitable MATCH_CODE to be near the root.
2442         (write_match_code_switch): New function to write a MATCH_CODE as
2443         a switch statement.
2444         (write_predicate_stmts): New function to write a predicate RTX
2445         expression as a sequence of statements.
2446         (write_one_predicate_function): Use write_predicate_stmts.
2447         (write_tm_constrs_h): Likewise.
2448
2449 2006-06-26  Fred Fish  <fnf@specifix.com>
2450
2451         * config/mips/t-sb1: New file.
2452         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2453         tmake_file list.
2454
2455 2006-06-26  DJ Delorie  <dj@redhat.com>
2456
2457         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2458
2459 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
2460             Jayant Sonar  <jayants@kpitcummins.com>
2461             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
2462
2463         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2464         (subsi3, subsi3_1, subsi3_2): New.
2465         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2466         * config/m32c/mov.md (SI mov peephole): New.
2467         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2468         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2469
2470 2006-06-26  Olivier Hainque  <hainque@adacore.com>
2471
2472         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2473         a CALL_EXPR target function declaration.
2474
2475 2006-06-26  Richard Guenther  <rguenther@suse.de>
2476
2477         * tree.c (build_string): Do not waste tail padding in
2478         struct tree_string.
2479
2480 2006-06-26  Richard Guenther  <rguenther@suse.de>
2481
2482         * ggc-page.c (init_ggc): Add missing element to size_lookup
2483         table.
2484
2485         Revert
2486         2006-06-23  Richard Guenther  <rguenther@suse.de>
2487
2488         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2489         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
2490         alignment requests instead.  Add verification code.
2491         Add struct tree_function_decl and struct tree_binfo size to
2492         extra_order_size_table.  Add missing element to size_lookup
2493         table.
2494
2495 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
2496
2497         PR middle-end/28151
2498         * fold-const.c (const_binop): Be prepared for self returning zero.
2499         Simplify code handling complex values.
2500
2501 2006-06-24  Olivier Hainque  <hainque@adacore.com>
2502
2503         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2504         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2505         aggregate types.
2506
2507 2006-06-24  Olivier Hainque  <hainque@adacore.com>
2508
2509         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2510         ARRAY_REF, so have the callback called for the low bound expression.
2511
2512 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
2513
2514         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2515         * c-typeck.c (c_common_type): Disallow operations on decimal float
2516         types and other float types.
2517         * convert.c (convert_to_real): Don't ignore conversions involving
2518         decimal float types.
2519
2520 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2521
2522         * tree.c (max_int_size_in_bytes): New function, inspired from
2523         code in function.c:assign_temp.
2524         * tree.h (max_int_size_in_bytes): Declare.
2525         * function.c (assign_temp): Use it.
2526         * gimplify.c (create_tmp_var): Relax the assertions on the type
2527         properties, not mandating constant size any more.
2528         (force_constant_size): New static function.
2529         (gimple_add_tmp_var): Use it, forcing variable size to a
2530         constant upper bound if it is not constant on entry.
2531
2532 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
2533
2534         PR target/27789
2535         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
2536         for initialization and setting of one_only flag to ...
2537         (i386_pe_encode_section_info): ...here.
2538         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
2539         Recheck that the symbol has not been defined.
2540
2541 2006-06-23  Richard Guenther  <rguenther@suse.de>
2542
2543         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2544         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
2545         alignment requests instead.  Add verification code.
2546         Add struct tree_function_decl and struct tree_binfo size to
2547         extra_order_size_table.  Add missing element to size_lookup
2548         table.
2549
2550 2006-06-22  Roger Sayle  <roger@eyesopen.com>
2551             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2552
2553         PR middle-end/28131
2554         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
2555         call to lang_hooks.types.type_for_mode returned NULL_TREE.
2556
2557 2006-06-23  Ben Elliston  <bje@au.ibm.com>
2558
2559         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
2560         negate dn -- manipulate it directly.
2561
2562 2006-06-22  Roger Sayle  <roger@eyesopen.com>
2563             Steven Bosscher  <stevenb.gcc@gmail.com>
2564
2565         PR target/27531
2566         * reload1.c (gen_reload): Call mark_jump_label on the new insns
2567         generated by gen_move_insn to add REG_LABEL notes if necessary.
2568
2569 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
2570
2571         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2572         (leaf_entry): Remove use of MIN_ESA.
2573
2574 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
2575
2576         PR rtl-optimization/28121
2577         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2578         the entry edge.
2579
2580 2006-06-21  DJ Delorie  <dj@redhat.com>
2581
2582         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2583         (TN-16C-A156A/E).
2584         (mulhisi3_r): Likewise.
2585
2586 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
2587
2588         PR middle-end/28034
2589         * coverage.c (coverage_counter_alloc): Leave the index type
2590         unspecified.
2591         (coverage_counter_alloc): Use null arguments for operands 2 and 3
2592         of the ARRAY_REF.
2593
2594 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
2595
2596         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
2597         section from the "Options for Code Generation Conventions".
2598
2599 2006-06-21  Richard Henderson  <rth@redhat.com>
2600
2601         PR target/26347
2602         PR target/27082
2603         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
2604         symbols.
2605         (global_symbolic_operand): Allow weak symbols, even if local_p.
2606
2607 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
2608
2609         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
2610         (find_interesting_uses_address): Punt if above function returns true.
2611
2612 2006-06-21  Richard Guenther  <rguenther@suse.de>
2613
2614         * configure: Regenerated.
2615
2616 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
2617
2618         * config/mips/mips.c (function_arg): Where one part of a
2619         complex argument is in registers and the other part in the stack,
2620         return a REG not a PARALLEL.
2621
2622 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
2623
2624         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
2625         when cross-compiling.  Do not substitute libstdcxx_incdir.
2626         * configure: Regenerated.
2627
2628 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
2629
2630         * varasm.c (mergeable_string_section): Check for embedded NULs and
2631         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
2632         rather than TREE_STRING_LENGTH bytes.
2633
2634 2006-06-21  Richard Guenther  <rguenther@suse.de>
2635
2636         * ggc-page.c (extra_order_size_table): Add var_ann_d,
2637         tree_ssa_name, bitmap_element and phi_node with 4 arguments
2638         sizes.
2639
2640 2006-06-21  Richrad Guenther  <rguenther@suse.de>
2641
2642         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2643         Limit iteration over the dominators.
2644
2645 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2646
2647         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
2648         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2649
2650 2006-06-20  Richard Guenther  <rguenther@suse.de>
2651         Michael Matz  <matz@suse.de>
2652
2653         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
2654         function.
2655         * alloc-pool.c (free_alloc_pool_if_empty): New function.
2656         * et-forest.h (et_free_pools): Prototype new function.
2657         * et-forest.c (et_free_tree_force): Free parent occurrence.
2658         (et_free_pools): New function.
2659         * dominance.c (free_dominance_info): Free et-forest alloc
2660         pools.
2661
2662 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2663
2664         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
2665         integer modes, attempt to directly construct an integer constant.
2666
2667         * fold-const.c (native_encode_vector): Determine the size of each
2668         element from the vector type instead of the first vector element.
2669
2670         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2671         if all of its elements/components are constant.
2672         (build_constructor_from_list): Likewise.
2673
2674 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
2675
2676         PR tree-optimization/27331
2677         * tree-data-ref.c (free_data_ref): New function.
2678         (create_data_ref): Fail if the data reference has unknown access
2679         function.
2680         (free_data_refs): Use free_data_ref.
2681
2682 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
2683
2684         PR middle-end/28075
2685         * tree-inline.c (setup_one_parameter): Strip useless
2686         type conversion before adding it to the IR.
2687         (declare_return_variable): Likewise.
2688
2689 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
2690
2691         PR c/27149
2692         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2693
2694 2006-06-19  Mike Stump  <mrs@apple.com>
2695
2696         * tree.c (variably_modified_type_p): VM arguments don't make the
2697         type a VM type.
2698
2699 2006-06-19  Richard Guenther  <rguenther@suse.de>
2700
2701         * tree-ssa-pre.c (try_combine_conversion): Strip useless
2702         type conversions after folding.
2703
2704 2006-06-19  Richard Guenther  <rguenther@suse.de>
2705
2706         * ggc-page.c (extra_order_size_tab): Add entries with
2707         size of struct function and basic_block.
2708         (size_lookup): Extend to cover sizes up to 511.
2709         (ggc_alloc_stat): Adjust user.
2710         (ggc_pch_count_object): Likewise.
2711         (ggc_pch_alloc_object): Likewise.
2712         (ggc_pch_write_object): Likewise.
2713
2714 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
2715
2716         * tree-ssa-loop-niter.c (implies_ge_p): New function.
2717         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2718         correctly.
2719
2720 2006-06-19  Denis Chertykov  <denisc@overta.ru>
2721
2722         * config/avr/libgcc.S : Correct my wrong previous commit.
2723
2724 2006-06-19  Roger Sayle  <roger@eyesopen.com>
2725
2726         PR target/27861
2727         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2728         have stripped a SUBREG from the shift count, so we may need to
2729         convert_to_mode back to the type's mode before calling make_tree.
2730         Use new_amount instead of amount to avoid expanding a tree twice.
2731
2732 2006-06-19  Richard Guenther  <rguenther@suse.de>
2733
2734         PR middle-end/28045
2735         * fold-const.c (operand_equal_p): Check if the argument types
2736         have the same precision before stripping NOPs.
2737
2738 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
2739
2740         Fix PR tree-optimization/27341
2741         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2742         statement we get.
2743         * tree-complex.c (pass_lower_complex): Update SMT usage.
2744
2745 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2746
2747         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2748         Add a new alternative to the constraint strings. Add move of
2749         operand 1 to 3 to the splitter definition.
2750         ("doloop_si_long"): Second contraint alternative removed.
2751
2752 2006-06-08  Anatoly Sokolov <aesok@post.ru>
2753
2754         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2755         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2756         __AVR_HAVE_LPMX__.
2757         (AVR_HAVE_MOVW) Define.
2758         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2759         (ASM_SPEC): Add avr25.
2760         (LINK_SPEC): Add avr25.
2761         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2762         (base_arch_s): Add new member 'have_movw_lpmx'.
2763         (avr_arch_types): Init 'have_movw_lpmx'.
2764         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2765         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2766         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2767         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2768         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2769         AVR_HAVE_MOVW.
2770         (avr_file_start): Do not output '.arh' derective.
2771         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2772         (__do_copy_data): Use __AVR_HAVE_LPMX__.
2773         * config/avr/avr.md (mcu_enhanced): Delete.
2774         (mcu_have_movw): Define.
2775         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2776         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2777         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2778         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2779         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2780         attiny861 and at86rf401 devices.
2781
2782 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
2783
2784         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2785         of 4096.
2786
2787 2006-06-17  Karl Berry  <karl@gnu.org>
2788
2789         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2790         doc/gccint.texi, doc/install.texi (@dircategory): Use
2791         "Software development" instead of "Programming", following
2792         the Free Software Directory.
2793
2794 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
2795
2796         * config/i386/i386.c (legitimate_tls_address)
2797         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2798         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2799         (*tls_dynamic_gnu2_combine_64): Likewise.
2800
2801 2006-06-16  Richard Guenther  <rguenther@suse.de>
2802
2803         PR middle-end/27116
2804         * fold-const.c (negate_expr_p): Do not introduce undefined
2805         overflow in negating INTEGER_CSTs.
2806         (fold_negate_expr): Rename from negate_expr.  Revert last
2807         change for folding BIT_NOT_EXPR.  Change semantics to
2808         return NULL_TREE for non-simplified negations.  Do not
2809         strip type conversions and unify type handling.
2810         (negate_expr): New function, wrap around fold_negate_expr
2811         but ensure building a tree always.  Strip type conversions
2812         here, fold to result type.
2813         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2814
2815 2006-06-16  Roger Sayle  <roger@eyesopen.com>
2816
2817         PR middle-end/27802
2818         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2819         that (would) return their results in stack registers.
2820
2821 2006-06-16  Michael Matz  <matz@suse.de>
2822         Richard Guenther  <rguenther@suse.de>
2823
2824         * fold-const.c (fold_truthop): Only return new tree node if
2825         we canonicalized something.
2826
2827 2006-06-16  Richard Guenther  <rguenther@suse.de>
2828
2829         * function.h (enum function_frequency): Move declaration
2830         out of struct function.
2831         (struct function): Move bool fields and the enum to the bitfield
2832         section.  Reorder elements to avoid padding.  Remove unused
2833         fields left over from the RTL inliner removal.
2834         * function.c (free_after_compilation): Do not zero removed fields.
2835         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2836         (ipa-type-escape.o): Likewise.
2837
2838 2006-06-16  Richard Guenther  <rguenther@suse.de>
2839
2840         * cgraph.h (struct cgraph_local_info): Turn bool elements
2841         into a bitfield.
2842         (struct cgraph_node): Likewise.
2843         (struct cgraph_varpool_node): Likewise.
2844
2845 2006-06-15  Richard Guenther  <rguenther@suse.de>
2846
2847         * fold-const.c (fold_truth_not_expr): Rename from
2848         invert_truthvalue.  Give it fold_* semantics to avoid
2849         generating garbage.
2850         (invert_truthvalue): New function.  Wrapper around
2851         fold_truth_not_expr.
2852         (optimize_minmax_comparison): Avoid creating garbage.
2853         (fold_unary): Use fold_truth_not_expr for folding
2854         TRUTH_NOT_EXPR.
2855         (fold_ternary): Replace uses of invert_truthvalue with
2856         fold_truth_not_expr where applicable.
2857         * tree.h (fold_truth_not_expr): Prototype.
2858
2859 2006-06-16  Richard Guenther  <rguenther@suse.de>
2860
2861         PR tree-optimization/27781
2862         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2863         * ipa-pure-const.c (target.h): Include.
2864         (analyze_function): Do not analyze functions that do not
2865         bind locally.
2866
2867 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
2868
2869         PR middle-end/27793
2870         * tree-dfa.c (referenced_vars_dup_list): Remove.
2871         (find_referenced_vars): Remove assert.
2872         (referenced_var_check_and_insert): Replace dup list with assert.
2873         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2874         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2875
2876 2006-06-15  Richard Guenther  <rguenther@suse.de>
2877
2878         * tree-ssa-structalias.c (alias_get_name): Avoid creating
2879         extra unused identifiers if not dumping.
2880         (create_variable_info_for): Likewise.
2881
2882 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
2883
2884         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2885         (derive_constant_upper_bound): Derive more precise upper bound in
2886         common cases.  Return type changed to double_int.
2887         (record_estimate): Reflect the changed return type of
2888         derive_constant_upper_bound.
2889         * double-int.c (double_int_zext, double_int_sext): Fix.
2890
2891 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
2892
2893         * configure.ac (CFLAGS): Get them from the toplevel or from the
2894         configure invocation.
2895         * configure: Regenerate.
2896         * Makefile.in (CFLAGS): Substitute value provided by configure.
2897
2898 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
2899
2900         PR c++/26559
2901         * c-common.h (c_finish_omp_atomic): Adjust declaration.
2902         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2903         rather than calling add_stmt on it.
2904         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2905
2906 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2907
2908         PR middle-end/27959
2909         * reload1.c (reload): Remove registers returned by update_eliminables
2910         from used_spill_regs.
2911
2912 2006-06-13  DJ Delorie  <dj@redhat.com>
2913
2914         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2915
2916 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
2917
2918         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2919         html__strip_dir, html__mkdir_p. Enhance install-html target.
2920         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2921         * configure: Regenerate.
2922
2923 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
2924
2925         * fold-const.c (fold_cond_expr_with_comparison): Check for
2926         Objective-C++ as language in deciding COND_EXPR transformation.
2927
2928 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
2929
2930         PR target/28014:
2931         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2932         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2933         * config/sh/lib1funcs.h (SL, SL1): Define.
2934         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2935         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2936         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2937         (OBJS_Os_4_200): New variable.
2938         ($(T)libgcc-Os-4-200.a): Use it.
2939         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2940         when dividing 1 and/or by 0.
2941
2942 2006-06-13  Roger Sayle  <roger@eyesopen.com>
2943
2944         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2945         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2946         * configure: Regenerate.
2947
2948 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
2949
2950         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2951         for real instruction.
2952
2953 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2954
2955         PR middle-end/26807
2956         * haifa-sched.c (check_cfg): Handle special case.
2957
2958 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2959
2960         PR debug/26754
2961         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2962         Add debug_info parameter.  Chain the vars to the BLOCK instead
2963         of the BIND_EXPR if debug info are requested for them.
2964         (pop_gimplify_context): Adjust for above change.
2965         (gimple_add_tmp_var): Likewise.
2966         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2967         Add bool parameter.
2968         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2969         (convert_local_reference): Likewise.
2970         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2971         (finalize_nesting_tree_1): Request that debug info be emitted
2972         for debug_var_chain.
2973
2974 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2975
2976         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2977         for PR target/27863.
2978
2979 2006-06-13  Richard Guenther  <rguenther@suse.de>
2980
2981         PR middle-end/27536
2982         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2983
2984 2006-06-13  Richard Guenther  <rguenther@suse.de>
2985
2986         PR tree-optimization/27830
2987         * tree-inline.c (copy_body_r): For copying the operand
2988         of an ADDR_EXPR make sure to fold &* afterwards.
2989
2990 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2991
2992         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2993         lvalues in the fb_none case with side-effects.
2994
2995 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
2996
2997         * tree-flow.h: Remove the prototype for
2998         compute_phi_arg_on_exit.
2999         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
3000         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
3001         Remove.
3002
3003 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
3004
3005         * builtins.c (expand_builtin_return_addr): Only use
3006         frame_pointer_rtx when count == 0 and we are expanding
3007         __builtin_return_address.
3008
3009 2006-06-12  Fred Fish  <fnf@specifix.com>
3010
3011         * config/mips/mips.c (mips_file_start): Create special section
3012         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
3013
3014 2006-06-11  Eric Christopher  <echristo@apple.com>
3015
3016         PR middle-end/27948
3017         * stor-layout.c (place_field): Remove check for
3018         remaining_in_alignment when aligning at the end of a run.
3019
3020 2006-06-11  Eric Christopher  <echristo@apple.com>
3021
3022         PR 27542
3023         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
3024         pragma.
3025
3026 2006-06-11  Roger Sayle  <roger@eyesopen.com>
3027
3028         PR target/27858
3029         Revert incorrect fix for PR target/27158
3030         2006-05-08  Roger Sayle  <roger@eyesopen.com>
3031         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
3032         of a reg_equiv_constant if the result is a legitimate constant.
3033
3034 2006-06-11  Roger Sayle  <roger@eyesopen.com>
3035
3036         PR target/27158
3037         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
3038         extract a CONST_VECTOR element and interpret it as an integer.
3039         (vspltis_constant): Use const_vector_elt_as_int instead of the
3040         macro CONST_VECTOR_ELT in order to handle FP vector modes.
3041         * config/rs6000/predicates.md (easy_vector_const): Consider
3042         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
3043
3044 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3045
3046         PR middle-end/27942
3047         * stor-layout.c (update_alignment_for_field): Don't add extra
3048         alignment for packed non-bitfield fields in ms_bitfield_layout_p
3049         code.
3050
3051 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
3052
3053         * config/mips/t-rtems: Add EL/EB multilib variants.
3054
3055 2006-06-09  Mike Stump  <mrs@apple.com>
3056
3057         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
3058
3059 2006-06-09  David Daney  <ddaney@avtrex.com>
3060
3061         * doc/install.texi: Add binutils version recommendation for mips-*-*.
3062
3063 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3064
3065         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
3066
3067 2006-06-09  Richard Guenther  <rguenther@suse.de>
3068
3069         PR tree-optimization/26998
3070         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
3071         of signed types, only TYPE_MIN_VALUE is special, but for both,
3072         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
3073         in this case, as is -fwrapv.
3074
3075 2006-06-08  Mike Stump  <mrs@apple.com>
3076
3077         PR target/26427
3078         * config/darwin.c (darwin_asm_output_anchor): Disable
3079         -fsection-anchors on darwin for now.
3080         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
3081         * rs6000/rs6000.c (optimization_options): Likewise.
3082
3083 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3084
3085         PR target/27421
3086         * config/i386/i386.c (classify_argument): Skip fields with invalid
3087         types in unions.
3088
3089 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
3090
3091         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
3092         (cse_insn): Likewise for the stack_pointer_rtx.
3093
3094 2006-06-08  Roger Sayle  <roger@eyesopen.com>
3095
3096         * tree-ssa-dom.c (record_conditions): Only record "unordered"
3097         conditions from floating point comparisons.
3098
3099 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
3100
3101         PR middle-end/27733
3102         * expmed.c (struct alg_hash_entry): Fix type of field T
3103         to match synth_mult argument.
3104         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
3105
3106 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3107
3108         PR target/27863
3109         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
3110         block boundaries.
3111
3112 2006-06-08  Richard Guenther  <rguenther@suse.de>
3113
3114         PR middle-end/27116
3115         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
3116         only, if overflow is defined and not trapping.
3117         (negate_expr): Likewise.
3118
3119 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
3120
3121         PR tree-optimization/27872
3122         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
3123         flag on the new exit edge of the unrolled loop.
3124
3125 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
3126
3127         PR rtl-optimization/26449
3128         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
3129
3130 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
3131
3132         PR middle-end/27793
3133         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
3134         referenced_variables with matching DECL_UID's.
3135         (find_referenced_vars): Make sure duplicate list is empty to start.
3136         (referenced_var_p): Remove.
3137         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
3138         Check if var is in the list, and add if needed.  Update the duplicate
3139         list if a different var is in the list with the same DECL_UID.
3140         (add_referenced_var): Call routine to check and insert.
3141         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
3142         * tree-flow.h (referenced_vars_dup_list): External declaration.
3143
3144 2006-06-07  Fred Fish  <fnf@specifix.com>
3145
3146         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
3147         into single entry.
3148
3149 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
3150
3151         PR target/27390
3152         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
3153         the imaginary and real parts of a clobbered register.
3154         Emit insn to set the imaginary part.
3155
3156 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
3157
3158         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
3159         in lieu of unwind-dw2-fde.c.
3160
3161 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3162
3163         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
3164
3165 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
3166
3167         PR target/27842
3168         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
3169         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
3170         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
3171         V4SImode temporaries and operations instead.
3172
3173 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
3174
3175         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
3176         dp-bit.c.
3177
3178 2006-06-06  Mike Stump  <mrs@apple.com>
3179
3180         * Makefile.in: Rename to htmldir to build_htmldir to avoid
3181         installing during build.
3182
3183 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3184
3185         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
3186         value to 0.
3187         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3188         * config/ia64/ia64.c (params.h): New header.
3189         (ia64_optimization_options): New function to adjust parameters.
3190         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
3191         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
3192         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
3193
3194 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
3195
3196         * stor-layout.c (debug_rli): Fix a typo in a debug message.
3197
3198 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
3199
3200         PR target/27051
3201         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
3202
3203 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
3204             Victor Kaplansky  <victork@il.ibm.com>
3205
3206         PR tree-optimization/26360
3207         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
3208         stmts.
3209
3210 2006-06-04  Roger Sayle  <roger@eyesopen.com>
3211             Andrew Pinski  <pinskia@physics.uc.edu>
3212
3213         PR middle-end/27382
3214         * c-common.c (c_common_truthvalue_conversion): Explicitly check
3215         for LABEL_DECL before calling DECL_WEAK.
3216
3217         PR c/27150
3218         * c-typeck.c (build_binary_op): Likewise, explicitly check for
3219         LABEL_DECL and PARM_DECL.
3220
3221 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
3222
3223         PR c/25161
3224         PR c/27020
3225         * c-decl.c (grokdeclarator): Disallow variably modified types at
3226         file scope.  Avoid marking shared array type of constant size as
3227         VLA.
3228
3229 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3230
3231         PR c++/27601
3232         * c-common.c (fold_offsetof_1): Handle static members.
3233
3234 2006-06-04 Eric Christopher <echristo@apple.com>
3235
3236         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
3237         (debug_rli): Output value for remaining_in_alignment.
3238         (update_alignment_for_field): Unconditionalize
3239         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
3240         extra alignment code.
3241         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
3242         ms_bitfield_layout_p code. Rewrite handling of structure fields.
3243         * tree.h (record_layout_info_s): Remove prev_packed.
3244         * doc/extend.texi (ms_struct): Add documentation of format.
3245
3246 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
3247
3248         * tree.h: Declare folding_initializer.
3249         * builtins.c (fold_builtin_constant_p): Give definite answer
3250         if folding inside an initializer.
3251         * fold-const.c: Define folding_initializer.
3252         (START_FOLD_INIT): Save and then set folding_initializer.
3253         (END_FOLD_INIT): Restore folding_initializer.
3254
3255 2006-06-04  Richard Guenther  <rguenther@suse.de>
3256
3257         PR tree-optimization/27039
3258         * fold-const.c (fold_comparison): Handle pointer comparison
3259         again for all comparison codes.  Compare offsets in signed
3260         size type.
3261         (fold_binary): Move code from here.
3262
3263 2006-06-03  Roger Sayle  <roger@eyesopen.com>
3264
3265         PR target/26223
3266         * config/i386/i386.c (construct_container): Split static issued_error
3267         flag into issued_sse_arg_error, issued_sse_ret_error and
3268         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
3269         requires the use of x87 registers and the user explicitly
3270         specified the -mno-80387 command line option.
3271
3272 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
3273
3274         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
3275         HAVE_DECL_SIGALTSTACK.
3276         (MC_FLD): New.
3277         (segv_handler): Use MC_FLD.
3278         * configure.ac: Check for a sigaltstack declaration.
3279         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
3280         * configure: Regenerate.
3281         * config.in: Regenerate.
3282
3283 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
3284
3285         PR other/27850
3286         * Makefile.in (stmp-fixinc): Fix typo.
3287
3288 2006-06-02  Roger Sayle  <roger@eyesopen.com>
3289
3290         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
3291         are type correct.  Clean-up.
3292         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
3293         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
3294
3295 2006-06-01  DJ Delorie  <dj@redhat.com>
3296
3297         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
3298         shift, as we've disabled the "switch" insn that needs it.
3299
3300 2006-06-01  Per Bothner  <bothner@bothner.com>
3301
3302         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
3303         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
3304         * c-ppoutput.c (cb_define): Don't increment line 0.
3305
3306 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
3307
3308         * doc/invoke.texi: Add cpu_type power6.
3309         * config.gcc: Add cpu_type power6.
3310         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
3311         to power5+ with Altivec.
3312         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
3313         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
3314
3315 2006-05-30  Anatoly Sokolov <aesok@post.ru>
3316
3317         * config/avr/avr.h (SET_ASM_OP): Define.
3318
3319 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
3320
3321         * config/bfin/bfin.c: Fix comment typos.
3322
3323 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
3324
3325         PR 25453
3326         * doc/install.texi: Document --enable-bootstrap and
3327         --disable-bootstrap.
3328
3329 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
3330
3331         * doc/install.texi: Document that InfoZIP can replace jar.
3332
3333 2006-05-31  Roger Sayle  <roger@eyesopen.com>
3334
3335         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
3336         isn't available, directly generate the simpler x87 patterns without
3337         the (use (const_int 0)).
3338         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
3339         implementation isn't available.
3340         (*negdf2_1): Likewise.
3341         (*negxf2_1): XF mode negation is always done using the x87.
3342         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
3343
3344 2006-05-31  Roger Sayle  <roger@eyesopen.com>
3345
3346         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
3347         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
3348         cabs(z).
3349         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
3350
3351 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
3352
3353         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
3354         * config/bfin/bfin.c (basic-block.h): Include.
3355         (struct machine_function): New.
3356         (bfin_init_machine_status): New.
3357         (override_options): Initialize init_machine_status.
3358         (bfin_hardware_loop): New.
3359         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
3360         (DEF_VEC_P (loop_info)): New.
3361         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
3362         (struct loop_info): New.
3363         (loop_info): New typedef.
3364         (struct loop_work): New.
3365         (loop_work): New typedef.
3366         (DEF_VEC_O (loop_work)): New.
3367         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
3368         (bfin_dump_loops): New.
3369         (bfin_bb_in_loop): New.
3370         (bfin_scan_loop): New.
3371         (bfin_optimize_loop): New.
3372         (bfin_reorg_loops): New.
3373         (bfin_reorg): Use bfin_reorg_loops.
3374         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
3375         loop registers.
3376         (I_REGNO_P): Simplify.
3377         (DP_REGNO_P, DPREG_P): New macros.
3378         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3379         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
3380         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3381         Add LT_REGS, LC_REGS, LB_REGS.
3382         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
3383         'l' for LB_REGS.
3384         (REGNO_REG_CLASS): Deal with loop registers.
3385         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
3386         letters.
3387         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
3388         New constants for loop registers.
3389         (UNSPEC_LSETUP_END): New.
3390         (seq_insns): New define_attr. Set it for appropriate insns.
3391         (movsi_insn): Add alternatives for move from/to
3392         loop count registers.
3393         (doloop_end): New define_expand.
3394         (loop_end): New define_insn.
3395         (define_split for bad doloop_end): New.
3396         (lsetup_with_autoinit): New define_insn.
3397         (lsetup_without_autoinit): New define_insn.
3398         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
3399         * config/bfin/predicates.md (lc_register_operand): New.
3400         (lt_register_operand): New.
3401         (lb_register_operand): New.
3402         (nondp_register_operand): New.
3403         (nondp_reg_or_memory_operand): New.
3404         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
3405
3406 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
3407
3408         * config/bfin/bfin.c (bfin_delegitimize_address): New.
3409         (TARGET_DELEGITIMIZE_ADDRESS): Define.
3410
3411 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
3412
3413         * Makefile.in (CATALOGS): Add po/ prefix.
3414         * configure: Regenerated.
3415
3416 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
3417
3418         PR target/27829
3419         * arm.c (arm_print_operand case 'S'): Validate that the operand is
3420         a shift operand before calling shift_op.  Avoid redundant call of
3421         shift_op.
3422
3423 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
3424             DJ Delorie  <dj@redhat.com>
3425
3426         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
3427         we're inserting is a singlt-bit constant.
3428
3429 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3430
3431         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
3432         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
3433
3434 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3435
3436         PR tree-optimization/23452
3437         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
3438         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
3439         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
3440         complex values and with -ffast-math for FP complex values.
3441
3442 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
3443
3444         * c-common.h: Remove the prototype for yyparse.
3445         * rtl.h: Remove the prototype for init_loop.
3446
3447 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
3448
3449         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
3450         calling recog.
3451
3452 2006-05-30  Roger Sayle  <roger@eyesopen.com>
3453
3454         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
3455         and rotate cases.
3456         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
3457         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
3458
3459 2006-05-30  Dirk Mueller  <dmueller@suse.de>
3460
3461         PR c/27273
3462         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
3463         for CONSTANT_CLASS_P expresisons.
3464
3465 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3466
3467         PR c/27718
3468         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
3469
3470 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
3471
3472         PR tree-optimization/27779
3473         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
3474         initial_condition instead of CHREC_LEFT.
3475
3476 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3477
3478         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
3479         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
3480         Make prototypes ISO C90.
3481
3482 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
3483             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
3484
3485         * see.c (see_analyze_one_def): Correct check.
3486         (see_get_extension_data): Check if extension is parallel.
3487         (see_get_extension_reg): Likewise.
3488
3489 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
3490
3491         PR target/27790
3492         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
3493         into register for (code == GTU).
3494
3495 2006-05-29  Roger Sayle  <roger@eyesopen.com>
3496
3497         PR tree-optimization/24964
3498         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
3499         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
3500         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
3501         abs(x)*abs(x) as x*x for scalar floating point modes.
3502
3503 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
3504
3505         PR middle-end/27745
3506         * lambda-code.c (perfect_nestify): Don't copy statements
3507         in the inner loop: move them to the inner loop header.
3508
3509 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
3510
3511         PR 26237
3512         * c-tree.texi: Document OpenMP directives and clauses.
3513
3514 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
3515
3516         * varasm.c (globalize_decl): Fix indentation.
3517
3518 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
3519
3520         PR 26242
3521         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
3522         pass_fre, pass_store_ccp, pass_copy_prop,
3523         pass_store_copy_prop, pass_merge_phi, pass_nrv,
3524         pass_return_slot, pass_object_size, pass_lim,
3525         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
3526         pass_loop_prefetch and pass_stdarg.
3527
3528 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
3529
3530         * config/bfin/bfin.opt (mfdpic): New option.
3531         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
3532         (EXTRA_MULTILIB_PARTS): Likewise.
3533         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
3534         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
3535         multilib.
3536         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
3537         (CRT_CALL_STATIC_FUNCTION): New.
3538         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
3539         -shared.
3540         (CRT_CALL_STATIC_FUNCTION): New.
3541         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
3542         FD-PIC moves.
3543         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
3544         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
3545         (initialize_trampoline): Changed to handle FD-PIC code generation.
3546         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
3547         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
3548         (override_options): Disallow -mid-shared-library -mfdpic combination.
3549         Can't do unaligned ops if FD-PIC.
3550         Turn off flag_pic if trying to generate non-id-shared-library
3551         non-fdpic code, since it's not supported.
3552         (bfin_assemble_integer): New function.
3553         (TARGET_ASM_INTEGER): Define.
3554         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
3555         __BFIN_FDPIC__.
3556         * config/bfin/crtn.s: Restore them.
3557         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
3558         if TARGET_FDPIC.
3559         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
3560         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
3561         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
3562         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
3563         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
3564         call-used.
3565         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3566         FDPIC_REGS and FDPIC_FPTR_REGS.
3567         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3568         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3569         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3570         (load_funcdescsi): New pattern.
3571         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3572         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3573         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3574
3575 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
3576
3577         * gcse.c, rtlanal.c: Remove obsolete comments associated with
3578         loop.c.
3579
3580         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3581
3582         * tree-flow.h: Remove the prototype for add_type_alias.
3583         * tree-ssa-alias.c (add_type_alias): Remove.
3584
3585 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
3586
3587         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
3588         config/fr30/fr30.md, config/i386/i386-interix.h,
3589         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
3590         config/sh/superh64.h, config/v850/v850.c, df-core.c,
3591         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
3592         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
3593         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
3594         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
3595         Follow spelling conventions.
3596         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
3597         Follow spelling conventions.
3598
3599 2006-05-27  Richard Guenther  <rguenther@suse.de>
3600
3601         PR middle-end/27773
3602         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
3603         to produce a constant of value 1 of generic type.
3604
3605 2006-05-27  Dirk Mueller  <dmueller@suse.de>
3606
3607         * cgraphunit.c (decide_is_function_needed): Fix wrong
3608         PR reference.
3609
3610 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
3611
3612         PR rtl-optimization/27661
3613         * reload.c (find_reloads): When reloading a VOIDmode constant
3614         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
3615         use Pmode as mode of the reload register.
3616
3617 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3618
3619         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
3620         is enabled at -O and above.
3621
3622 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3623
3624         PR target/27571
3625         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
3626         table data.
3627
3628 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
3629
3630         PR c++/20103
3631         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
3632         for anonymous variables explicitly declared by front ends.
3633
3634 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3635
3636         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
3637         (struct alias_info): Add new field ref_all_symbol_mem_tag.
3638         * tree-ssa-alias.c (compute_may_aliases): If the program contains
3639         ref-all pointers, run a finalization pass for them.
3640         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
3641         (finalize_ref_all_pointers): New function.
3642         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
3643         regular pointer type to a ref-all pointer type.
3644         (get_tmt_for): Return the special memory tag for ref-all pointers.
3645
3646 2006-05-25  Richard Guenther  <rguenther@suse.de>
3647
3648         PR middle-end/27743
3649         * fold-const.c (fold_binary): Do not look at the stripped
3650         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
3651
3652 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3653
3654         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
3655         for LT and GT if the computed range is effectively empty.
3656
3657 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3658
3659         PR target/27627
3660         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
3661         mips_quad_format formats instead of ieee_single_format,
3662         ieee_double_format and ieee_quad_format formats, respectively.
3663
3664 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
3665
3666         PR tree-optimization/27639
3667         PR tree-optimization/26719
3668         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
3669         call to scev_probably_wraps_p.
3670         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3671         used_in_pointer_arithmetic_p, convert_step): Removed.
3672         (nowrap_type_p): New function.
3673         (scev_probably_wraps_p): Rewritten.
3674         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3675         chrec_convert if chrec_convert_aggressive might have been used.
3676         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3677         scev_direction): New functions.
3678         (chrec_convert): Changed to a wrapper over chrec_convert_1.
3679         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3680         instead of convert_step.
3681         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3682         (convert_step): Declaration removed.
3683         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3684
3685 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3686
3687         * df-core.c: Added to header comments.
3688         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3689         df_ur_bb_info, df_urec_bb_info): Added comments.
3690         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3691         urec, ri problems): Fixed header comments.
3692         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3693         code from df_rd_transfer_function.
3694
3695 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3696
3697         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3698         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3699         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
3700
3701 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
3702
3703         * expr.c (undefined_operand_subword_p): New.
3704         (emit_move_multi_word): Do not generate move from undefined bits
3705         of a paradoxical subreg.
3706
3707 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3708
3709         PR rtl-optimization/27736
3710         * combine.c (replaced_rhs_value): New variable.
3711         (combine_instructions): Set it.
3712         (distribute_notes): When distributing a note in replaced_rhs_insn,
3713         check whether the value was used in replaced_rhs_value.
3714
3715 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
3716
3717         PR c++/26757
3718         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3719         add_referenced_var instead of add_referenced_tmp_var.
3720         * tree-complex.c (create_one_component_var): Use add_referenced_var.
3721         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3722         add_referenced_var.
3723         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3724         tree_optimize_tail_calls_1): Use add_referenced_var.
3725         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3726         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3727         Use add_referenced_var.
3728         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3729         * gimplify.c (force_gimple_operand): Use add_referenced_var.
3730         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3731         Use add_referenced_var.
3732         * tree-dfa.c (struct walk_state): Remove.
3733         (find_referenced_vars): Remove walk state and vars_found hash table.
3734         (make_rename_temp): Use add_referenced_var.
3735         (find_vars_r): Pass less parameters to add_referenced_var.
3736         (referenced_var_p): New.  Is var in referenced_var hash table.
3737         (referenced_var_insert): Assert var isn't already in hash table.
3738         (add_referenced_var): Don't need walk_state parameter.  Add var if it
3739         isn't already in the hash table.
3740         (add_referenced_tmp_var): Remove.
3741         (find_new_referenced_vars_1): Use add_referenced_var.
3742         * tree-ssa-pre.c (create_expression_by_pieces,
3743         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3744         Use add_referenced_var.
3745         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3746         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3747         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3748         add_referenced_var.
3749         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3750         vect_create_data_ref_ptr, vect_create_destination_var,
3751         vect_init_vector, vect_build_loop_niters,
3752         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3753         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3754         Use add_referenced_var.
3755         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3756         * tree-flow.h (add_referenced_tmp_var): Remove prototype
3757         (add_referenced_var): Add prototype.
3758         * tree-ssa-structalias.c (get_constraint_for,
3759         intra_create_variable_infos): Use add_referenced_var.
3760
3761 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
3762
3763         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3764         big-endian paradoxical subregs.
3765         * var-tracking.c (struct micro_operation_def): Document that,
3766         for modify micro operations, insn is the subsequent instruction.
3767         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3768         (var_reg_set, var_mem_set): ... new functions.
3769         (add_stores): Record subsequent insn.
3770         (compute_bb_dataflow): Use new functions for MO_USE.
3771         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
3772         notes after the insn, and modify notes before the insn known
3773         to be the subsequent one.
3774         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3775
3776 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
3777
3778         PR target/27696
3779         * config/i386/i386.c (ix86_expand_builtin): Use
3780         gen_sse3_monitor64 for TARGET_64BIT.
3781
3782 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
3783
3784         PR rtl-optimization/26375
3785         PR rtl-optimization/26855
3786         * df-problems (df_ru_bb_local_compute_process_def): Removed update
3787         to gen set.
3788         (df_ru_bb_local_compute): Reversed statements and removed bogus
3789         comment explaining why they should be in wrong order.
3790         (df_ru_dump, df_rd_dump): Enhanced debug info.
3791         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3792         debug info.
3793         * ddg.c (add_deps_for_def): Converted use of reaching defs to
3794         reaching uses and fixed space problem.
3795
3796 2006-05-23  Jan Hubicka  <jh@suse.cz>
3797
3798         * cgraphunit.c (decide_is_function_needed): Also nested functions
3799         and functions declared inline can be optimized out at -O0.
3800
3801 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
3802
3803         * doc/install.texi (Configuration): Remove reference to CrossGCC
3804         FAQ which was gone.
3805         (Building): Ditto.
3806
3807 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3808
3809         PR target/27266
3810         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3811         ix86_compare_emitted is non-NULL.
3812
3813 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3814
3815         PR c++/27451
3816         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3817         clobbers.
3818
3819 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3820
3821         PR rtl-optimization/25514
3822         * combine.c (replaced_rhs_insn): New variable.
3823         (combine_instructions): Set replaced_rhs_insn when trying to replace
3824         a SET_SRC with a REG_EQUAL note.
3825         (distribute_notes): Use replaced_rhs_insn when determining the live
3826         range of a REG_DEAD register.
3827
3828 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3829             Anatoly Sokolov <aesok@post.ru>
3830
3831         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3832         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3833         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3834         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3835         atmega3290, atmega649, atmega6490, atmega406, atmega640,
3836         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3837         at90usb647, at90usb1286 and at90usb1287 devices.
3838         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3839         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3840
3841 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3842
3843         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3844
3845 2006-05-22  Richard Guenther  <rguenther@suse.de>
3846
3847         Revert
3848         2006-01-31  Richard Guenther  <rguenther@suse.de>
3849         Paolo Bonzini  <bonzini@gnu.org>
3850
3851         * doc/install.texi (--disable-libgcc-math): Document.
3852
3853 2006-05-22  Richard Guenther  <rguenther@suse.de>
3854
3855         Revert
3856         2006-01-31  Richard Guenther  <rguenther@suse.de>
3857
3858         * doc/invoke.texi (-msselibm): Document.
3859         * target.h (expand_library_builtin): New target hook.
3860         * builtins.c (expand_builtin): Use expand_library_builtin.
3861         (default_expand_library_builtin): New function.
3862         * gcc.c (LINK_GCC_MATH_SPEC): Define.
3863         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3864         (link_gcc_math_spec): Declare.
3865         (static_specs): Add link_gcc_math_spec.
3866         * expr.h (default_expand_library_builtin): Declare.
3867         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3868         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3869         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3870         * config/i386/i386.opt (msselibm): New target option.
3871         * config/i386/i386.c (ix86_builtin_function_variants): New array.
3872         (ix86_init_sse_abi_builtins): New function.
3873         (ix86_expand_library_builtin): Likewise.
3874         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3875         (override_options): Handle error conditions wrt -msselibm.
3876         (ix86_builtins): Add function codes for SSE2 ABI builtins.
3877         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3878         * doc/extend.texi (__builtin_sse2_*): Document new target specific
3879         builtins.
3880
3881 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3882
3883         PR c/27420
3884         * c-common.c (self_promoting_args_p): Skip erroneous args.
3885
3886         PR c/26818
3887         * c-decl.c (finish_struct): Skip erroneous fields.
3888
3889 2006-05-22  Nick Clifton  <nickc@redhat.com>
3890
3891         * config/cris/cris.opt (march): Remove VarExists attribute.
3892         (max-stackframe=): Likewise.
3893
3894 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3895
3896         * doc/rtl.texi: Fix a typo.
3897         * see.c: Fix comment typos.
3898
3899         * tree-ssa-structalias.h (alias_info): Remove num_references.
3900
3901 2006-05-21  Mike Stump  <mrs@apple.com>
3902
3903         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3904         (BAD2): Add.
3905         (darwin_pragma_options): Use BAD instead.
3906         (darwin_pragma_unused): Likewise.
3907         (darwin_pragma_ms_struct): Likewise.
3908
3909 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
3910
3911         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3912
3913 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
3914
3915         PR rtl-optimization/27671
3916         * simplify-rtx.c (simplify_relational_operation_1): Fix
3917         simplifications of (eq/ne (xor x y) y) and
3918         (eq/ne (xor x y) x).
3919
3920         PR tree-optimization/26622.
3921         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3922         on arg1.
3923
3924 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3925
3926         * tree-cfg.c: Prune whitespace.
3927         (debug_tree_cfg): Point to correct header containing the
3928         TDF_* defines.
3929
3930 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3931
3932         PR middle-end/25776
3933         * cgraphunit.c (verify_cgraph_node): Typo in error message.
3934
3935 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3936
3937         PR middle-end/25776
3938         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3939         or sorry count is non zero.
3940
3941 2006-05-20  Andreas Schwab  <schwab@suse.de>
3942
3943         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3944
3945 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
3946             Kenneth Zadeck <zadeck@naturalbridge.com>
3947
3948         PR rtl-optimization/26855
3949
3950         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3951         multiword refs.
3952         (df_scan_alloc): Added code to properly handle multiword hard
3953         registers and add all_blocks parameter.
3954         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3955         code to properly handle multiword hard registers.
3956         (df_rescan_blocks): Added code to remove deleted blocks from
3957         bitmap.
3958         (df_ref_create_structure, df_ref_record): Added code to properly
3959         handle subregs.
3960         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3961         and set DF_REF_PARTIAL.
3962         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3963         (df_uses_record): Added DF_REF_PARTIAL for subreg.
3964         (df_scan_add_problem): Added flags parameter.
3965         (df_ref_create_structure): Changed switching structure.
3966         (df_bb_refs_record): Fixed case where duplicate artificial refs
3967         were created.  Changed location of flags.
3968         (df_record_entry_block_defs): Added code to make stack pointer
3969         live in entry block.  Refined cases where frame pointer is needed.
3970         Changed location of flags.
3971         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3972         (df_set_state): Removed function.
3973         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3974         df_insn_create_insn_record, df_insn_refs_delete,
3975         df_ref_create_structure): Formatting changes.
3976         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3977         df_delete_basic_block): New function.
3978         (df_init): Changed location of flags.
3979         (df_add_problem): Added flags parameter and the way flags are
3980         processed.
3981         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3982         debug_df_chain): Improved debugging output.
3983         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3984         (df_refs_chain_dump): Removed df parameter.
3985         (df_iterative_dataflow): Added consistency check.
3986         (df_prune_to_subcfg): Made public.
3987         (df_analyze_problem): Added blocks_to_init parameter and made
3988         public.
3989         (df_ref_record, df_bb_refs_record, df_mark_reg,
3990          df_record_exit_block_uses): Whitespace changes.
3991         (df_dump): Whitespace changes.
3992         * df.h: Some reordering to remove forward references.
3993         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3994         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3995         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3996         (dataflow.flags): New field.
3997         (df.flag): Deleted field.
3998         (df_alloc_function): Added additional bitmap parameter.
3999         (df_dependent_problem_function): New type.
4000         (df_problem.changeable_flags): New field.
4001         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
4002         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
4003         (df_mw_hardreg): New struct.
4004         (DF_INSN_UID_MWS): New macro.
4005         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
4006         parameter.
4007         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
4008         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
4009         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
4010         (df_set_state): Removed function.
4011         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
4012         * df-problems.c (df_chain_dump): Removed df parameter.
4013         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
4014         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
4015         parameter.
4016         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
4017         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
4018         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
4019         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
4020         DF_REF_MUST_CLOBBER cases.
4021         (df_ru_bb_local_compute_process_def,
4022         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
4023         df_lr_bb_local_compute, df_ur_bb_local_compute,
4024         df_chain_create_bb): Made subreg aware.
4025         (df_ru_bb_local_compute, df_rd_bb_local_compute,
4026         df_lr_bb_local_compute, df_lr_bb_local_compute,
4027         df_chain_create_bb): Cleanup to use proper macros.
4028         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
4029         code to fixup bitvectors.
4030         (df_ri_alloc): Cleared lifetime.
4031         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
4032         df_create_unused_note): New function.
4033         (df_ri_bb_compute, df_ri_compute): Added code to create/update
4034         REG_DEAD and REG_UNUSED notes as well as register information.
4035         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
4036         df_chains_dump): Fixed crash if problem was never run.
4037         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
4038         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
4039         df_ri_add_problem): Processes flags in uniform manner.
4040         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
4041         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
4042         df_rd_dump, df_urec_free_bb_info): Formatting changes.
4043         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
4044         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
4045         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
4046         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
4047         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
4048         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
4049         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
4050         * see.c (see_initialize_data): Ditto.
4051         * final.c (rest_of_clean_state) Added regstack_completed.
4052         * rtl.h (regstack_completed): Ditto.
4053         * reg-stack.c (regstack_completed): Ditto.
4054
4055 2006-05-19  Mike Stump  <mrs@apple.com>
4056
4057         * c-tree.h (default_conversion): Remove.
4058         * c-common.h (default_conversion): Add.
4059
4060 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
4061
4062         * tree-vrp.c (valid_value_p): New function.
4063         (adjust_range_with_scev): Fail if the value of bound is not
4064         simple.
4065
4066 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
4067
4068         * config/mips/linux-unwind.h: Include <asm/unistd.h>
4069         (mips_fallback_frame_state): Use syscall numbers to determine
4070         the appropriate li instruction for the current ABI.  Only use
4071         __NR_sigreturn for o32.
4072
4073 2006-05-19  Nicolas Setton  <setton@adacore.com>
4074
4075         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
4076         * langhooks.c (lhd_dwarf_name): New function.
4077         * langhooks-def.h (lhd_dwarf_name): Declare.
4078         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
4079         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
4080         * ada/misc.c (gnat_dwarf_name): New function.
4081         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
4082
4083 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
4084
4085         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
4086         libgcc2.h.
4087         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
4088         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
4089         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
4090         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
4091         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
4092         determine the size of Wtype, etc.
4093         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
4094         (swfloatfuncs): New variable.
4095         (dwfloatfuncs): Likewise.
4096         (lib2funcs): Remove floating-point conversion functions from
4097         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
4098         the set of conversion routines needed.  Allow entries to specify
4099         an object name, filename and word size.  Update users accordingly.
4100         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
4101         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
4102
4103         Revert:
4104
4105         2006-02-08  Roger Sayle  <roger@eyesopen.com>
4106
4107         PR target/22209
4108         * config/fixtfdi.c: New libgcc source file.
4109         * config/fixunstfdi.c: New source file.
4110         * config/floatditf.c: New source file.
4111         * config/floatunditf.c: New souce file.
4112         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
4113         files above instead of config/mips/_tilib.c.
4114         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
4115
4116 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4117
4118         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
4119         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
4120
4121 2006-05-18  Mike Stump  <mrs@apple.com>
4122
4123         Fix up vla, vm and [*] sematics.
4124
4125         PR c/18740
4126         PR c/7948
4127         PR c/25802
4128         PR c/27673
4129         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
4130         (c_vla_unspec_p): Add.
4131         (c_vla_type_p): Add.
4132         * c-decl.c (struct c_scope): Add had_vla_unspec.
4133         (build_array_declarator): Add support for [*].
4134         (grokdeclarator): Likewise.
4135         (grokparms): Likewise.
4136         (get_parm_info): Likewise.
4137         * c-objc-common.c (c_vla_unspec_p): Likewise.
4138         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
4139         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
4140         typeof when argument is a variably modified type not inside sizeof or alignof.
4141         (c_parser_direct_declarator_inner): Propagate errors.
4142         (c_parser_sizeof_expression): Add support for [*].
4143         (c_parser_parms_declarator): Initialize had_vla_unspec.
4144         (c_parser_parms_list_declarator): Likewise.
4145         * c-typeck.c (c_vla_type_p): Add.
4146         (composite_type): Add support for vla compositing.
4147         (comptypes_internal): Add support for vla compatibility.
4148         (c_expr_sizeof_expr): Evaluate vla arguments.
4149         * tree.c (variably_modified_type_p): Update comment for [*].
4150
4151 2006-05-18  Michael Matz  <matz@suse.de>
4152
4153         PR target/27599
4154         * config.host: Make assignments to host_xmake_file cumulative.
4155         * config.host (*-darwin*): Test $host, not $target.
4156
4157 2006-05-12  Stuart Hastings  <stuart@apple.com>
4158
4159         * config/i386/i386.opt (-mstackrealign): New flag.
4160         * config/i386/i386.c (force_align_arg_pointer): New attribute.
4161         (ix86_handle_cconv_attribute): Emit error when
4162         force_align_arg_pointer attribute collides with too many regparms.
4163         (ix86_function_regparm): Limit regparms when used with
4164         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
4165         Support stack-realigning prologue in non-main functions.  Emit
4166         warning for nested functions under -mstackrealign, emit error for
4167         nested functions with force_align_arg_pointer attribute.
4168         * doc/extend.texi (force_align_arg_pointer): Document it.
4169         * doc/invoke.texi (-mstackrealign): Document it.
4170
4171 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
4172
4173         PR rtl-optimization/27477
4174         * combine.c (try_combine): Don't split a parallel consisting
4175         of two sets into two individual sets if both sets reference
4176         cc0.
4177
4178 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
4179
4180         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
4181         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
4182
4183         * doc/options.texi (VarExists): Updated.
4184
4185 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4186
4187         * unwind-dw2.c: Add declarations for uw_update_context and
4188         uw_frame_state_for.
4189         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
4190         detected, advance frame state and context once to skip over stub.
4191
4192 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
4193
4194         PR middle-end/20256
4195         PR middle-end/26435
4196         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
4197         Call rewrite_into_loop_closed_ssa only when something changed.
4198         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
4199         * lambda-code.c (can_convert_to_perfect_nest): Declared.
4200         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
4201         Test for perfect_nest_p here.  Fix formating.
4202         (replace_uses_equiv_to_x_with_y): Fix formating.
4203         (stmt_uses_op): Removed.
4204         (can_convert_to_perfect_nest): Removed loopivs parameter.
4205         Complete the test by checking the scalar dependences.
4206         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
4207         Fix formating.
4208
4209 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4210
4211         PR bootstrap/22541
4212         From Dan Kegel <dank@kegel.com>:
4213         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
4214
4215 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4216
4217         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
4218         if the element type is variably modified without recursing.
4219
4220 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
4221
4222         PR middle-end/27332
4223         * tree-loop-linear.c (try_interchange_loops): Test for
4224         no data dependences.
4225
4226 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
4227
4228         PR tree-optimization/27548
4229         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
4230         range of ssa names that appear on abnormal edges.
4231         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
4232         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
4233
4234 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4235
4236         PR middle-end/27620
4237         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
4238
4239 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
4240
4241         PR middle-end/27415
4242         * tree.h (OMP_PARALLEL_COMBINED): Define.
4243         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
4244         (new_omp_context): Add is_combined_parallel argument.
4245         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
4246         new_omp_context caller.
4247         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4248         Adjust gimplify_scan_omp_clauses callers.
4249         (omp_is_private): Issue errors if iteration variable is firstprivate
4250         or reduction in the current context.
4251         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
4252         on combined parallel workshare constructs.
4253
4254 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4255
4256         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
4257         (gcc-options.o): New rule.
4258
4259         * optc-gen.awk: Protect variables for gcc-options.o with
4260         #ifdef GCC_DRIVER/#endif.
4261
4262 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
4263
4264         Fix PR tree-optimization/27373
4265         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
4266          (forward_propagate_addr_expr): Update call.
4267
4268 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4269
4270         * doc/options.texi: Move the Negative option.
4271
4272 2006-05-16  Richard Guenther  <rguenther@suse.de>
4273
4274         PR tree-optimization/22303
4275         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
4276         from STRING_CSTs.
4277         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
4278         ccp_fold did not simplify the statement.
4279
4280 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
4281
4282         PR driver/26885
4283         * Makefile.in (GCC_OBJS): New.
4284         (OBJS-common): Add opts-common.o.
4285         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
4286         (cpp$(exeext)): Likewise.
4287         (gcc.o): Also depend on opts.h.
4288         (opts-common.o): New.
4289
4290         * common.opt (gcoff): Add Negative(gdwarf-2).
4291         (gdwarf-2): Add Negative(gstabs).
4292         (gstabs): Add Negative(gstabs+).
4293         (gstabs+): Add Negative(gvms).
4294         (gvms): Add Negative(gxcoff).
4295         (gxcoff): Add Negative(gxcoff+).
4296         (gxcoff+): Add Negative(gcoff).
4297         * config/i386/i386.opt (m32): Add Negative(m64).
4298         (m64): Add Negative(m32).
4299
4300         * doc/options.texi: Document the Negative option.
4301
4302         * gcc.c: Include "opts.h".
4303         (main): Call prune_options after expandargv.
4304
4305         * optc-gen.awk: Generate common declarations for all flag
4306         variables in options.c. Output the neg_index field.
4307
4308         * opts.c (find_opt): Moved to ...
4309         * opts-common.c: Here. New file.
4310
4311         * opts.h (cl_option): Add a neg_index field.
4312         (find_opt): New.
4313         (prune_options): Likewise.
4314
4315 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
4316
4317         PR middle-end/27573
4318         * omp-low.c (expand_omp_parallel): Don't assert
4319         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
4320         instead search for it.
4321
4322         PR c/27499
4323         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
4324         is signed.
4325
4326 2006-05-16  Andreas Schwab  <schwab@suse.de>
4327
4328         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
4329         defmac.
4330
4331 2006-05-15  Roger Sayle  <roger@eyesopen.com>
4332
4333         PR target/26600
4334         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
4335         integer constants other than zero are only legitimate on TARGET_64BIT.
4336         <CONST_VECTOR> Only zero vectors are legitimate.
4337         (ix86_cannot_force_const_mem): Integral and vector constants can
4338         always be put in the constant pool.
4339
4340 2006-05-16  DJ Delorie  <dj@redhat.com>
4341
4342         * crtstuff.c (__dso_handle): Set section from
4343         TARGET_LBIGCC_SDATA_SECTION if defined.
4344         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
4345         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
4346
4347 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
4348
4349         PR target/27599
4350         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
4351         host_xmake_file.
4352
4353 2006-05-16  Ben Elliston  <bje@au.ibm.com>
4354
4355         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
4356
4357 2006-05-15  Per Bothner  <per@bothner.com>
4358
4359         * tree.c: (last_annotated_node): Use source_locus typedef.
4360         This permits bootstrapping with --enable-mapped-location.
4361
4362 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
4363
4364         PR tree-optimization/26830
4365         * tree-into-ssa.c (struct ssa_name_info): Add age field.
4366         (info_for_ssa_name, current_info_for_ssa_name_age,
4367         blocks_to_update): New variables.
4368         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
4369         (clear_ssa_name_info, initialize_flags_in_bb,
4370         mark_block_for_update): New functions.
4371         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
4372         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
4373         prepare_def_site_for): Use mark_block_for_update.
4374         (mark_def_interesting): Assert that the processed block is marked in
4375         blocks_to_update.  Do not take blocks argument.
4376         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
4377         argument.
4378         (rewrite_update_init_block, rewrite_update_stmt): Only process
4379         blocks with statements to rewrite.
4380         (delete_update_ssa): Do not clear SSA_NAME_AUX.
4381         (update_ssa): Initialize and free blocks_to_update.  Do not
4382         clear flags on statements.  Do not use blocks bitmap.
4383         * tree.h (SSA_NAME_AUX): Removed.
4384         (struct tree_ssa_name): Removed aux field.
4385         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
4386
4387 2006-05-15  Richard Guenther  <rguenther@suse.de>
4388
4389         PR tree-optimization/27603
4390         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4391         Do computations in original type.
4392
4393 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
4394
4395         * see.c: Code style changes such as redundant paranthesis,
4396         redundant intialization of local variables etc.
4397         (see_main): Declared now as static.
4398         * doc/invoke.texi: Update that -fsee is not enabled by
4399         default at -O3.
4400
4401 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
4402
4403         * omp-low.c (check_omp_nesting_restrictions): New function.
4404         (scan_omp_1): Call it.
4405
4406         PR middle-end/27416
4407         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
4408         construct, return *VAR.
4409
4410 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
4411
4412         PR rtl-optimization/27406
4413         * bt-load.c (migrate_btr_def): Skip the block having abnormal
4414         edges.
4415
4416 2006-05-14  Roger Sayle  <roger@eyesopen.com>
4417
4418         PR rtl-optimization/27538
4419         * combine.c (expand_compound_operation): Call gen_lowpart
4420         before calling simplify_shift_const.
4421
4422 2006-05-14  Roger Sayle  <roger@eyesopen.com>
4423
4424         PR rtl-optimization/22563
4425         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
4426         a fixed width bitfield, always force the intermediates into psuedos.
4427
4428 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
4429
4430         PR 27501
4431         * mkconfig.sh: Use operator = instead of == for test.
4432
4433 2006-05-13  Nick Clifton  <nickc@redhat.com>
4434
4435         * dwarf2out.c (dbx_reg_number): Check return value from
4436         LEAF_REG_REMAP and only use it if it is valid.
4437         (multiple_reg_loc_descriptor): Likewise.
4438
4439 2006-05-13  Richard Guenther  <rguenther@suse.de>
4440
4441         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
4442         host_xmake_file.
4443
4444 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
4445
4446         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
4447         information attached to non-INSNs such as NOTEs.
4448         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
4449
4450 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4451
4452         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
4453         On contraint.
4454         * config/s390/s390.md: Adjust comment describing On constraint.
4455
4456 2006-05-11  Jan Hubicka  <jh@suse.cz>
4457
4458         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
4459         to be output at -O0.
4460
4461 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4462
4463         PR middle-end/27384
4464         * fold-const.c (size_binop): Move sanity check for arguments to
4465         the beginning of the function.
4466
4467         PR middle-end/27488
4468         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
4469         expression.
4470
4471 2006-05-11  Richard Guenther  <rguenther@suse.de>
4472
4473         PR middle-end/27529
4474         * fold-const.c (fold_unary): Handle intermediate conversion
4475         to a pointer type like intermediate conversion to an integer
4476         type in folding of (T1)(T2)var to var.
4477         Match the code to the comment in the final conversion for
4478         (T1)(T2)var to (T1)var regarding to type precision.  Rather
4479         than disallow T1 being of pointer type, assert that both T1
4480         and var are of pointer type or not.  Make sure not to fall
4481         over the frontends lazyness wrt array to pointer decay though.
4482
4483 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
4484
4485         * arm.c (arm_struct_value_rtx): Delete.
4486         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
4487         (arm_init_cumulative_args): Always initialize nregs to zero.
4488
4489 2006-05-10  Richard Guenther  <rguenther@suse.de>
4490
4491         PR tree-optimization/27532
4492         * tree-object-size.c (plus_expr_object_size): Fix typo.
4493
4494 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
4495
4496         PR target/24949
4497         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
4498         ashrdi_const, ashrdi3): Use a scratch register.
4499
4500 2006-05-10  Richard Guenther  <rguenther@suse.de>
4501
4502         PR tree-optimization/27302
4503         * fold-const.c (operand_equal_p): For two comparisons,
4504         try comparison of one comparison code swapped if that yields
4505         the same code.
4506
4507 2006-05-10  Ben Elliston  <bje@au.ibm.com>
4508
4509         * tree-pretty-print.c (pretty_print_string): No need to handle
4510         '\0' as a special character.
4511
4512         * tree.h: Include "hashtab.h".
4513         (iterative_hash_expr): Use hashval_t in its prototype.
4514         * Makefile.in (TREE_H): Add $(HASHTAB_H).
4515
4516 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
4517
4518         PR bootstrap/26872
4519         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
4520         (hppa*64*-*-hpux11*): Ditto.
4521         (hppa[12]*-*-hpux11*): Ditto.
4522
4523 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
4524
4525         PR target/26545
4526         * config/rs6000/aix41.h (TARGET_64BIT): Define.
4527
4528 2006-05-09  Michael Matz  <matz@suse.de>
4529
4530         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
4531         host_extra_gcc_objs and host_xmake_file.
4532         (<*-*-linux*>): Don't overwrite host_xmake_file.
4533         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
4534         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
4535         (host_detect_local_cpu): Declare.
4536         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
4537         * config/i386/i386.c (override_options): Handle -mtune=native
4538         as -mtune=generic.
4539         * config/i386/x-i386: New file.
4540         * config/i386/driver-i386.c: New file.
4541         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
4542         cpu-type "native".
4543
4544 2006-05-09  Dirk Mueller  <dmueller@suse.de>
4545         Richard Guenther  <rguenther@suse.de>
4546
4547         PR middle-end/27498
4548         * fold-const.c (fold_read_from_constant_string): Relax check
4549         for matching types to matching modes.
4550
4551 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
4552
4553         PR rtl-optimization/27335
4554         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
4555         loops.
4556
4557 2006-05-08  Chao-ying Fu  <fu@mips.com>
4558             Richard Sandiford  <richard@codesourcery.com>
4559
4560         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
4561         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
4562         * config/mips/mips.md (UNSPEC_SCC): New constant.
4563         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
4564         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4565         (mips_emit_compare): Use it.
4566         (mips_expand_vcondv2sf): New function.
4567
4568 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
4569
4570         Fix PR tree-optimization/27093
4571         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
4572         renaming when they become not-used_alone.
4573
4574 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4575
4576         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4577         relocation and relocation stubs.
4578
4579 2006-05-08  Eric Christopher  <echristo@apple.com>
4580
4581         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4582         section for ppc.
4583
4584 2006-05-08  Jan Hubicka  <jh@suse.cz>
4585
4586         PR middle-end/24561
4587         * cgraphunit.c (decide_is_function_needed): When not optimizing even
4588         unused static functions are needed.
4589
4590 2006-05-08  Roger Sayle  <roger@eyesopen.com>
4591
4592         PR target/27158
4593         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
4594         of a reg_equiv_constant if the result is a legitimate constant.
4595
4596 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
4597
4598         PR target/27277
4599         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
4600         standard 80387 constants, raise the cost to prevent
4601         compress_float_constant() to generate load from memory.
4602
4603 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
4604
4605         * config/arm/constraints.md (c): Fix a typo.
4606
4607         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
4608         typos.
4609
4610 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
4611
4612         PR target/24879
4613         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
4614         inline function.
4615         (_mm_mwait): Likewise.
4616
4617         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
4618         "mwait".
4619         (sse3_monitor): Make it 32bit only.
4620         (sse3_monitor64): New. 64bit monitor.
4621
4622 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4623
4624         PR target/27421
4625         * config/i386/i386.c (classify_argument): Skip fields with invalid
4626         types.
4627
4628 2006-05-07  Richard Guenther  <rguenther@suse.de>
4629
4630         PR tree-optimization/27409
4631         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4632         Do not try to find zero-sized subvars.
4633
4634 2006-05-07  Richard Guenther  <rguenther@suse.de>
4635
4636         PR tree-optimization/27136
4637         * tree-ssa-loop-niter.c (get_val_for): Correct function
4638         comment, assert requirements.
4639         (loop_niter_by_eval): Stop processing if the iterated
4640         value did not simplify.
4641
4642 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
4643
4644         * opts.c (flag_see): remove its setting at -O3.
4645
4646 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
4647
4648         * genpeep.c (main): Make insn-peep.c depend on flags.h.
4649         * arm/constraints.md: New file.
4650         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
4651         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
4652         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
4653         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
4654         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
4655         (EXTRA_MEMORY_CONSTRAINT): Likewise.
4656         * arm.md: Include constraints.md.
4657         (thumb_movsi_insn): Use satisfies_constraint_J.
4658         (movhi, movqi): Use satisfies_constraint_I.
4659
4660 2006-04-29 Anatoly Sokolov <aesok@post.ru>
4661
4662         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
4663         for atmeg a645 device.
4664
4665 2006-05-06   Richard Guenther  <rguenther@suse.de>
4666
4667         PR tree-optimization/27151
4668         * tree-vect-transform.c (vectorizable_condition): Punt on
4669         values that have a different type than the condition.
4670
4671 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
4672
4673         PR/21391
4674         * c-parser.c (c_parser_cast_expression): Only insert casts into
4675         hash table if pointer.
4676         * function.c (used_types_insert_helper): Rename from
4677         used_types_insert.
4678         (used_types_insert): Call used_types_insert_helper.
4679         * function.h (used_types_insert): Accept only one argument.
4680
4681 2006-05-05  David Edelsohn  <edesohn@gnu.org>
4682
4683         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4684         scratch with output modifier.
4685
4686 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
4687
4688         PR target/26481
4689         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4690         with output modifier.
4691
4692 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
4693
4694         PR target/26765
4695         * config/mips/mips.c (mips_symbolic_address_p): Return true
4696         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4697         SYMBOL_GOTTPREL, and SYMBOL_TLS.
4698
4699 2006-05-04  Richard Guenther  <rguenther@suse.de>
4700
4701         PR tree-optimization/14287
4702         PR tree-optimization/14844
4703         PR tree-optimization/19792
4704         PR tree-optimization/21608
4705         PR tree-optimization/27090
4706         * tree-ssa-pre.c (try_combine_conversion): New function.
4707         (compute_avail): After constructing the value-handle
4708         expression, use try_combine_conversion to combine NOP_EXPRs
4709         with previous value-handle expressions and use the result if it
4710         is available.
4711
4712 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
4713
4714         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4715
4716 2006-05-04  Jan Hubicka  <jh@suse.cz>
4717
4718         PR middle-end/25962
4719         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4720
4721 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4722
4723         * config/bfin/predicates.md (const01_rtx): Tell generator programs
4724         that this only matches CONST_INTs.  All users changed to VOIDmode
4725         operands.
4726
4727         * config/bfin/bfin.c: Include "optabs.h".
4728         (bfin_rtx_costs): Some costs for vector operations, to allow combine
4729         to do more work.
4730         (enum bfin_builtins): Add a number of fractional and vector builtins.
4731         (bfin_init_builtins): Likewise.
4732         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4733         (safe_vector_operand, bfin_expand_binop_builtin,
4734         bfin_expand_unop_builtin): New functions.
4735         (bfin_expand_builtin): Handle the new builtins.
4736         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4737         __ADSPBLACKFIN__.
4738
4739 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
4740
4741         * see.c: New file.
4742         * Makefile.in (OBJS-common): Add see.o.
4743         (see.o): Add dependencies.
4744         * common.opt (fsee): New flag for the see optimization was added.
4745         * opts.c (flag_see): Initialized.
4746         * passes.c (init_optimization_passes, pass_see): New pass.
4747         * rtl.h (see_main): Declaration as extern.
4748         * timevar.def (TV_SEE): New.
4749         * tree-pass.h (pass_see): Declaration as extern.
4750         * invoke.texi (-fsee): Document.
4751         * recog.c (validate_simplify_insn): New function.
4752         * recog.h (validate_simplify_insn): Declaration as extern.
4753         * df-problems.c (df_chain_dump): Check for NULL.
4754
4755 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
4756             Daniel Berlin  <dberlin@dberlin.org>
4757
4758         * cfgrtl.c (insert_insn_bb_end_new): New function.
4759         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4760
4761 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
4762
4763         * df.h (struct web_entry): Moved from web.c.
4764         (union_defs): Declaration as extern.
4765         (unionfind_root): Likewise.
4766         (unionfind_union): Likewise.
4767         * web.c (struct web_entry): Moved to df.h.
4768         (unionfind_root): Remove static declaration.
4769         (unionfind_union): Likewise.
4770         (union_defs): Likewise and generalize to use callback function.
4771         (web_main): Update arguments for union_defs function call.
4772
4773 2006-05-04  Richard Guenther  <rguenther@suse.de>
4774
4775         PR tree-optimization/26447
4776         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4777         produce SSA_NAME copies before the store stmt to avoid
4778         breaking exception handling.
4779
4780 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
4781
4782         PR middle-end/27388
4783         * gimplify.c (omp_is_private): If var is shared in some outer context,
4784         return false instead of true.  Stop searching on parallel context
4785         boundary.
4786
4787 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
4788
4789         PR java/8260
4790         * coverage.c: Use get_gcov_unsigned_t() instead of
4791         unsigned_type_node all over.
4792
4793 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
4794
4795         PR tree-optimization/27381
4796         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4797         maintain the same immediate_use links.
4798         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4799         node rather than segfaulting.
4800
4801 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
4802
4803         PR fortran/27395
4804         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4805         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
4806         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4807
4808 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
4809
4810         Fix PR tree-optimization/26626
4811         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4812         always.
4813         * tree-ssa-operands.c (access_can_touch_variable): Allow
4814         typecasting through union pointers.
4815
4816 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4817
4818         PR c++/26943
4819         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4820         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4821         to find if var will be a global variable even in the nested context.
4822         (omp_copy_decl): Only check for global variable at the end, it might
4823         be overridden in outer contexts.
4824         (scan_sharing_clauses): For global variables don't create a field.
4825         (lower_rec_input_clauses): Do nothing for global shared variables.
4826         Emit a barrier at the end of ILIST if there were any decls in both
4827         firstprivate and lastprivate clauses.
4828         (lower_send_clauses): Do nothing for global variables except for
4829         COPYIN.
4830
4831 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
4832
4833         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4834         of the correct signedness is returned.
4835
4836 2006-05-02  Jeff Law  <law@redhat.com>
4837
4838         PR tree-optimization/27364
4839         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4840         multiply expressions.
4841
4842 2006-05-02  Tom Tromey  <tromey@redhat.com>
4843
4844         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4845
4846 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
4847
4848         PR target/27387
4849         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4850         -mthumb -fPIC are used.
4851
4852 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
4853             Joshua Kinard  <kumba@gentoo.org>
4854
4855         PR target/25871
4856         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4857         with 64-bit pointers.
4858
4859 2006-05-02  Paul Brook  <paul@codesourcery.com>
4860
4861         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4862         and pool overlap.
4863         (create_fix_barrier): Check that a suitable barrier location is
4864         found.
4865         (arm_reorg): Include ftmp->address in allowable range of addresses.
4866
4867 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
4868
4869         PR ada/27366
4870         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4871         on Cygwin.
4872
4873 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4874
4875         PR middle-end/27337
4876         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4877         around RESULT_DECL for result passed by reference.
4878         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4879         * omp-low.c (use_pointer_for_field): Don't look at
4880         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4881         (scan_omp_1): Call remap_decl on RESULT_DECLs.
4882         (lower_rec_input_clauses): Don't allocate VLA memory for the second
4883         time or var for passing by reference for
4884         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
4885         TREE_ADDRESSABLE variables when passing by reference.
4886
4887         * omp-low.c (dump_omp_region): Fix output formatting.
4888
4889         PR middle-end/27328
4890         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4891         (expand_omp_parallel): Likewise.
4892         * tree-cfg.c (move_sese_region_to_fn): Likewise.
4893
4894         PR middle-end/27325
4895         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4896         on statement list containing also constructors and destructors.
4897         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4898
4899         PR middle-end/27310
4900         * except.c (duplicate_eh_regions): Fix clearing of
4901         cfun->eh->region_array entries.
4902
4903 2006-05-01  DJ Delorie  <dj@redhat.com>
4904
4905         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4906         build!=host.
4907         (gcc_cv_objdump): Likewise.
4908         * configure: Regenerated.
4909
4910 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
4911
4912         PR target/27374
4913         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4914         templates for case 3 and 4.
4915
4916 2006-05-01  DJ Delorie  <dj@redhat.com>
4917
4918         * vec.c: Include bconfig.h when appropriate.
4919         * Makefile.in (build/vec.o): Adjust dependencies.
4920         * mkconfig.sh: Make sure config.h isn't used for build machine
4921         compiles.
4922
4923 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4924
4925         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4926         variables.
4927         (mark_phi_for_rewrite): New function.
4928         (insert_phi_nodes_for, mark_use_interesting): Call
4929         mark_phi_for_rewrite.
4930         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4931         (update_ssa): Initialize and free phis_to_rewrite.
4932
4933 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4934
4935         PR rtl-optimization/27291
4936         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4937         folded to a constant.
4938
4939 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4940
4941         PR tree-optimization/27283
4942         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4943         not whole # of iteration descriptions.
4944         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
4945         uses abnormal ssa name.
4946         (niter_for_single_dom_exit): Ditto.
4947         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4948         return just the number of iterations.
4949
4950 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4951
4952         PR tree-optimization/27144
4953         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4954         (record_estimate): Only record constant upper bound.
4955         (infer_loop_bounds_from_undefined): Call
4956         compute_estimated_nb_iterations just once.
4957         (proved_non_wrapping_p): Renamed to ...
4958         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
4959         (convert_step_widening, scev_probably_wraps_p): Call
4960         n_of_executions_at_most instead of proved_non_wrapping_p.
4961         (substitute_in_loop_info): Do not replace values in bounds.
4962         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
4963         comments.
4964
4965 2006-05-01  Richard Henderson  <rth@redhat.com>
4966
4967         PR c/27358
4968         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4969         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
4970         CPP_PRAGMA.
4971
4972 2006-05-01  Roger Sayle  <roger@eyesopen.com>
4973
4974         * c-typeck.c (parser_build_binary_op): Don't call the function
4975         unsigned_conversion_warning to spot operand/result type overflow.
4976         (build_binary_op): Instead, call convert_and_check instead of
4977         convert to report the problem when the operands are promoted.
4978         * c-common.c (unsigned_conversion_warning): Make static.
4979         * c-common.h (unsigned_conversion_warning): Delete prototype.
4980
4981 2006-05-01  Richard Guenther  <rguenther@suse.de>
4982
4983         PR tree-optimization/26726
4984         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4985         problem ...
4986         (find_interesting_uses_address): ... we work around here
4987         by folding INDIRECT_REFs in the substituted base.
4988
4989 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
4990
4991         * omp-low.c (dump_omp_region): Add newlines.
4992
4993 2006-04-30  Roger Sayle  <roger@eyesopen.com>
4994
4995         * common.opt (Woverflow): New command line option.
4996         * c-common.c (constant_expression_warning): Check warn_overflow.
4997         (overflow_waring): Pass OPT_Woverflow to warning.
4998         (unsigned_conversion_warning): Likewise.
4999         (convert_and_check): Likewise.
5000         * doc/invoke.texi: Document new command line option.
5001
5002 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
5003
5004         * config/rs6000/rs6000.c (rs6000_override_options): Enable
5005         TARGET_NO_FP_IN_TOC for section anchors.
5006         (optimization_options): Enable section anchors for all
5007         non-"Objective" languages.
5008
5009 2006-04-28  Eric Christopher  <echristo@apple.com>
5010
5011         * config/darwin-c.c (darwin_ms_struct): Move this
5012         (darwin_set_default_type_attributes): and this...
5013         * config/darwin.c: ... here.
5014         * config/darwin.h (darwin_ms_struct): Declare.
5015
5016 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
5017
5018         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
5019
5020 2006-04-28  Roger Sayle  <roger@eyesopen.com>
5021
5022         PR c/25309
5023         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
5024         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
5025         an unsigned HOST_WIDE_INT.
5026         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
5027         array index.
5028         (really_start_incremental_init): No need to call convert because
5029         bitsize_zero_node is already of type bitsizetype.
5030         (push_init_level): Extract the value of constructor_index as an
5031         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
5032         (process_init_element): Likewise.
5033
5034 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
5035
5036         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
5037         value before passing to make_relative_prefix.
5038
5039 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
5040
5041         PR middle-end/27260
5042         * builtins.c (expand_builtin_memset): Expand val in original mode.
5043
5044 2006-04-27  Eric Christopher  <echristo@apple.com>
5045
5046         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
5047         with #ifndef/#endif.
5048         * config/darwin-c.c (darwin_ms_struct): New.
5049         (darwin_pragma_ms_struct): Ditto.
5050         (darwin_set_default_type_attributes): Ditto.
5051         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
5052         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
5053         Register ms_struct pragma.
5054         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
5055         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
5056         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
5057         darwin_set_default_type_attributes if TARGET_MACHO.
5058
5059 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
5060
5061         PR tree-optimization/26854
5062         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
5063         * doc/tree-ssa.texi: Update immuse iterator documentation.
5064         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
5065         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
5066         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
5067         first_safe_imm_use, next_safe_imm_use): Remove.
5068         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
5069         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
5070         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
5071         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
5072         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
5073         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
5074         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
5075         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
5076         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
5077         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
5078         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
5079         (perfect_nestify): Use new iterator.
5080         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
5081         iterator.
5082         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
5083         (next_imm_name): New field in struct immediate_use_iterator_d.
5084         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
5085         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
5086         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
5087         * tree-cfg.c (replace_uses_by): Use new iterator.
5088         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
5089         * tree-ssa-operands.c (correct_use_link): Remove.
5090         (finalize_ssa_use_ops): No longer call correct_use_link.
5091
5092 2006-04-27  Stuart Hastings  <stuart@apple.com>
5093
5094         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
5095         * config/t-darwin (crt3.o): Use it.
5096         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
5097         'pmode', use Pmode instead of SImode for SYMBOL_REF.
5098         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
5099         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
5100         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
5101         support.
5102
5103 2006-04-27  Roger Sayle  <roger@eyesopen.com>
5104
5105         * expmed.c (store_fixed_bit_field): If we're not optimizing for
5106         size, force the intermediate into a new pseudo rather instead of
5107         performing both a bitwise AND and a bitwise IOR in memory.
5108
5109 2006-04-27  Richard Guenther  <rguenther@suse.de>
5110
5111         PR rtl-optimization/26685
5112         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
5113         this one "max-flow-memory-locations".
5114
5115 2006-04-27  Richard Guenther  <rguenther@suse.de>
5116
5117         PR tree-optimization/25148
5118         * tree-vrp.c (compare_values): Remove code dealing with
5119         comparisons against type min/max value.  Honour overflow
5120         and negative constants in code dealing with comparisons
5121         of plus and minus expressions.
5122         (value_inside_range): Use fold_binary with LE_EXPR and
5123         GE_EXPR rather than compare_values.
5124
5125 2006-04-27  Dirk Mueller  <dmueller@suse.de>
5126
5127         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
5128         prototype for SSE.
5129
5130 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
5131
5132         * basic-block.h (safe_insert_insn_on_edge): Removed.
5133         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
5134
5135 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
5136             Paolo Bonzini  <bonzini@gnu.org>
5137
5138         PR middle-end/27282
5139         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
5140         (simplify_and_const_int): Same.
5141
5142 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
5143
5144         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
5145
5146 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
5147
5148         PR c/26171
5149         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
5150         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
5151         cgraph_global_info_ready.
5152
5153         PR middle-end/26913
5154         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
5155
5156         PR c/25996
5157         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
5158         either decl or init is error_mark_node.
5159
5160         PR middle-end/25989
5161         * tree-flow.h (struct omp_region): Add sched_kind.
5162         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
5163         instead of extracting omp for data.
5164         (expand_omp_for): Save extracted sched_kind.
5165
5166 2006-04-25  Roger Sayle  <roger@eyesopen.com>
5167
5168         * expmed.c (store_bit_field): Also check whether the bitsize is
5169         valid for the machine's "insv" instruction before moving the
5170         target into a pseudo for use with the insv.
5171         * config/i386/predicates.md (const8_operand): New predicate.
5172         * config/i386/i386.md (extv, extzv, insv): Use the new
5173         const8_operand predicate where appropriate.
5174
5175 2006-04-25  DJ Delorie  <dj@redhat.com>
5176
5177         * doc/install.texi (Specific): Clarify that this is not a list of
5178         supported hosts or targets.
5179
5180 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
5181
5182         PR rtl-optimization/26725
5183         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
5184         block's BB_DIRTY flag.
5185
5186 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
5187
5188         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
5189         are no branches.
5190
5191         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
5192         to print an integer.
5193
5194 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
5195
5196         * varasm.c (align_variable): New function.
5197         (get_block_for_decl): Apply align_variable to DECL before
5198         calculating section information.
5199         (assemble_variable): Split out alignment computation.
5200
5201 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5202
5203         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
5204         machines.
5205
5206 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
5207
5208         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
5209         MODE_PARTIAL_INT mode.
5210         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
5211         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
5212         for CONST_INTs.
5213         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
5214         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
5215         V2PDImode.
5216         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
5217         New predicates.
5218         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
5219         New constants.
5220         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
5221         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
5222         MACFLAG_IH): Likewise.
5223         (movstricthi_1): Renamed from "*movstricthi".
5224         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
5225         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
5226         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
5227         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
5228         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
5229         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
5230         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
5231         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
5232         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
5233         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
5234         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
5235         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
5236         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
5237         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
5238         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
5239
5240         * doc/rtl.texi (ss_ashift): Improve wording.
5241
5242 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
5243
5244         * dwarf2out.c (verify_marks_clear): New.
5245         (prune_unused_types): Call verify_marks_clear initially, not
5246         prune_unmark_dies.
5247
5248 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5249
5250         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
5251         * doc/rtl.texi: Document them.
5252         * simplify-rtx.c (simplify_unary_operation,
5253         simplify_binary_operation_1): Don't abort when we see them.
5254
5255 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
5256
5257         Revert:
5258         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
5259         * configure.ac: Completely disregard languages that are not
5260         enabled.
5261         * configure: Regenerated.
5262
5263 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
5264         Richard Guenther  <rguenther@suse.de>
5265
5266         PR tree-optimization/27236
5267         * tree-inline.c (copy_body_r): Make sure to copy
5268         TREE_THIS_VOLATILE flag.
5269
5270 2006-04-24  Richard Guenther  <rguenther@suse.de>
5271
5272         PR middle-end/26869
5273         * tree-complex.c (update_parameter_components): Don't handle
5274         unused parameters which have no default def.
5275
5276 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
5277         Richard Guenther  <rguenther@suse.de>
5278
5279         PR tree-optimization/27218
5280         * tree-inline.c (expand_call_inline): Strip useless type
5281         conversions for the return slot address.
5282
5283 2006-04-24  Richard Guenther  <rguenther@suse.de>
5284
5285         * cfgloop.h (struct loops): Remove unused field array.  Reorder
5286         state after num.
5287         (LOOP_PREFETCH): Remove.
5288
5289 2006-04-24  Richard Guenther  <rguenther@suse.de>
5290
5291         PR tree-optimization/22525
5292         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
5293         variable, adjust types of generated expressions.
5294
5295 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
5296
5297         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
5298         (tree-vect-patterns.o): Likewise.
5299         (jump.o): Likewise.
5300         (cselib.o): Likewise.
5301         (loop-doloop.o): Likewise.
5302         (regclass.o): Likewise.
5303         (reload1.o): Likewise.
5304         (explow.o): Replace target.h with $(TARGET_H).
5305         (ipa-prop.o): Likewise.
5306         (ipa-cp.o): Likewise.
5307         (ipa-inline.o): Likewise.
5308         (reorg.o): Likewise.
5309         (reg-stack.o): Likewise.
5310
5311 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5312
5313         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
5314
5315 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
5316
5317         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
5318
5319         * configure.ac: Completely disregard languages that are not
5320         enabled.
5321         * configure: Regenerated.
5322
5323         PR c++/26534
5324         * c-common.h (c_build_bitfield_integer_type): Declare.
5325         * c-decl.c (c_build_bitfield_integer_type): Move to ...
5326         * c-common.c (c_build_bitfield_integer_type): ... here.
5327
5328 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5329
5330         PR target/21283
5331         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
5332         a SImode SUBREG of a floating point register after no_new_pseudos.
5333
5334 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5335
5336         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
5337         identify potentially eliminable registers to additionally catch
5338         VIRTUAL_INCOMING_ARGS_REGNUM.
5339         (addsi3): Update the conditions on when to use addsi_small_int.
5340
5341 2006-04-23  Roger Sayle  <roger@eyesopen.com>
5342
5343         PR target/16641
5344         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
5345         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
5346         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
5347
5348 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5349
5350         * fold-const.c (range_predecessor): Use operand_equal_p
5351         as the predicate for equality.
5352         (range_successor): Likewise.
5353
5354 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
5355
5356         Revert:
5357         * config/soft-fp/op-common.h: Fix a typo.
5358
5359 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
5360
5361         PR libmudflap/26864
5362         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
5363         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
5364
5365 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
5366
5367         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
5368         Fix comment typos.
5369         * doc/tm.texi: Fix a typo.
5370
5371 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
5372
5373         * dwarf2out.c (struct die_struct): Document that die_sib makes
5374         a circular linked list.
5375         (FOR_EACH_CHILD): New.
5376         (reverse_die_lists): Delete.
5377         (reverse_all_dies): Delete.
5378         (add_dwarf_attr): Correct documentation.
5379         (remove_child_with_prev): New.
5380         (remove_child_TAG): Update for change to die_struct, use
5381         remove_child_with_prev.
5382         (add_child_die): Update for change to die_struct.
5383         (splice_child_die): Use remove_child_with_prev and add_child_die.
5384         (print_die): Use FOR_EACH_CHILD.
5385         (die_checksum): Likewise.
5386         (assign_symbol_names): Likewise.
5387         (output_location_lists): Likewise.
5388         (build_abbrev_table): Likewise.
5389         (calc_die_sizes): Likewise.
5390         (mark_dies): Likewise.
5391         (unmark_dies): Likewise.
5392         (unmark_all_dies): Likewise.
5393         (output_die): Likewise.
5394         (prune_unused_types_mark): Likewise.
5395         (prune_unused_types_walk): Likewise.
5396         (same_die_p): Update for change to die_struct.
5397         (break_out_includes): Likewise.
5398         (prune_unused_types_prune): Likewise.
5399         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
5400         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
5401         it's already clear.
5402         (dwarf2out_finish): Don't call reverse_all_dies.
5403
5404 2006-04-21  Eric Christopher  <echristo@apple.com>
5405
5406         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
5407         in comments and function names.
5408
5409 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5410
5411         PR c/25875
5412         * c-typeck.c (digest_init): Robustify.
5413
5414         * c-typeck.c (pop_init_level): Simplify.
5415
5416 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
5417
5418         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
5419
5420 2006-04-21  Paul Brook  <paul@codesourcery.com>
5421
5422         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
5423         hardware floating point.
5424
5425 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
5426
5427         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
5428         NON_FLOAT_REGS.
5429
5430 2006-04-21  Nick Clifton  <nickc@redhat.com>
5431
5432         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
5433         OPT_EXTRA_PARTS.
5434
5435 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
5436
5437         PR target/27230
5438         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
5439         C++ lang type in traceback table for Objective-C++.
5440
5441         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
5442
5443 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
5444
5445         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
5446
5447 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5448
5449         PR mudflap/26789
5450         * tree-mudflap.c (mudflap_finish_file): Skip function when there
5451         were errors.  Remove check for erroneous objects.
5452
5453 2006-04-20  Jeff Law  <law@redhat.com>
5454
5455         PR tree-optimization/26854
5456         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
5457         checking for zero or one use.
5458         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
5459         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
5460         * tree-ssa-reassoc.c (negate_value): Similarly.
5461         (reassociate_bb): Similarly.
5462
5463 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
5464
5465         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
5466         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
5467         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
5468
5469 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
5470
5471         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
5472         fp regs if the last fp arg doesn't fit in regs.
5473
5474 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5475
5476         PR target/27182
5477         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
5478         that the last insn has the REG_INC note.
5479
5480 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
5481             Nathan Sidwell  <nathan@codesourcery.com>
5482
5483         PR c/26774
5484         * stor-layout.c (update_alignment_for_field): Do not align
5485         ERROR_MARK nodes.
5486         (place_union_field): Place union field at the start of the union.
5487         (place_field): Move ERROR_MARK check later, and use the current
5488         allocation position to maintain monotonicity.
5489
5490 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
5491
5492         * dominance.c: Include timevar.h.
5493         (calculate_dominance_info): Use TV_DOMINANCE.
5494         * timevar.def (TV_DOMINANCE): New timevar.
5495         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
5496
5497 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5498
5499         PR rtl-optimization/14261
5500         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
5501         move would be an INSV insn.
5502         (noce_process_if_block): Don't optimize if the destination is a
5503         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
5504
5505 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5506
5507         * config/s390/s390.md: Add comments with the instructions emitted
5508         by an insn pattern if macros are used.
5509
5510 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
5511
5512         PR rtl-optimization/26026
5513         * fold-const.c (fold_binary): Optimize div and mod where the divisor
5514         is a known power of two shifted left a variable amount.
5515
5516 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
5517
5518         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
5519         to hash table twice when the debug_str section has SECTION_MERGE.
5520
5521 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
5522
5523         * config/soft-fp: New directory.  From glibc.
5524         * config/soft-fp/t-softfp: New.
5525         * config/soft-fp/README: New.
5526         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
5527         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
5528         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
5529         (LIBGCC_DEPS): Add $(SFP_MACHINE).
5530         * config.gcc: Use rs6000/t-fprules-fpbit or
5531         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
5532         rs6000/t-fprules.
5533         * config/rs6000/sfp-machine.h: New.  Based on glibc.
5534         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
5535         New.
5536         * config/rs6000/t-fprules: Remove fp-bit rules.
5537         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
5538         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
5539         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
5540         (softfp_wrap_start, softfp_wrap_end): New.
5541
5542 2006-04-18  DJ Delorie  <dj@redhat.com>
5543
5544         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
5545
5546 2006-04-18  Devang Patel  <dpatel@apple.com>
5547
5548         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
5549
5550 2006-04-18  Nick Clifton  <nickc@redhat.com>
5551
5552         * config/sh/t-symbian: Add rule to build sh-c.o
5553         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
5554         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
5555         (sh_symbian_encode_section_info): Likewise.
5556
5557 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5558
5559         * builtins.c (expand_builtin_strcmp): Cover label definition of
5560         do_libcall with HAVE_cmpstrnsi.
5561
5562 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
5563
5564         * function.c (temp_slots_at_level, max_slot_level): Use VEC
5565         instead of VARRAY.
5566         * function.h (temp_slot_p): New.
5567         (function): Change the type of x_used_temp_slots to
5568         VEC(temp_slot_p,gc) *.
5569
5570 2006-04-18  Nick Clifton  <nickc@redhat.com>
5571
5572         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5573         flag_strength_reduce.
5574
5575         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5576
5577 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5578
5579         PR target/27117
5580
5581         Partial revert of revision 112637
5582         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
5583                     Dale Johannesen  <dalej@apple.com>
5584
5585         PR target/19653
5586         * regclass.c (struct reg_pref): Update documentation.
5587         (regclass): Set prefclass to NO_REGS if memory is the best option.
5588         (record_reg_classes): Cope with a prefclass set to NO_REGS.
5589
5590 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5591
5592         PR tree-optimization/26821
5593         * tree-ssa-math-opts.c (get_constant_one): New.
5594         (insert_reciprocals): Use it.
5595
5596 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
5597
5598         * dwarf2out.c (free_AT): Delete.
5599         (remove_AT): Update string ref counts.
5600         (remove_child_TAG): Don't call free_die.
5601         (free_die): Delete.
5602         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
5603         or DW_TAG_GNU_EINCL.
5604         (prune_unused_types_walk_attribs): Reset string refcounts.
5605         (prune_unused_types_update_strings): New.
5606         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
5607         call free_die.  Do call prune_unused_types_update_strings.
5608         (prune_unused_types): Empty debug_str_hash.
5609
5610 2006-04-17  Roger Sayle  <roger@eyesopen.com>
5611
5612         * expr.c (expand_assignment): Optimize away no-op moves where the
5613         source and destination are equal and have no side-effects.
5614
5615 2006-04-17  Richard Guenther  <rguenther@suse.de>
5616
5617         PR target/26826
5618         * reload.c (push_reload): Guard calls to get_secondary_mem
5619         for memory subregs.
5620
5621 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
5622
5623         * alias.c (reg_base_value, old_reg_base_value): Change the
5624         type to VEC(rtx,gc) *.
5625         (REG_BASE_VALUE, find_base_value, record_set,
5626         init_alias_analysis): Use VEC instead of VARRAY.
5627
5628         * alias.c (alias_sets): Change the type to
5629         VEC(alias_set_entry,gc) *.
5630         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
5631         VEC instead of VARRAY.
5632         (last_alias_set): Remove.
5633
5634         * cgraph.h (cgraph_edge_p): New.
5635         Update the prototype of cgraph_function_versioning.
5636         * cgraphunit.c (cgraph_copy_node_for_versioning,
5637         cgraph_function_versioning): Use VEC instead of VARRAY.
5638         * ipa-cp.c (ipcp_insert_stage): Likewise.
5639
5640 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5641
5642         PR target/26961
5643         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
5644         "A op B" or "A op C", we may need to convert A to the type of B and C.
5645
5646 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
5647
5648         * target.h (struct gcc_target): Add mode_rep_extended.
5649         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
5650         (init_num_sign_bit_copies_in_rep): Initialize it using
5651         mode_rep_extended.
5652         (truncate_to_mode): Use it.
5653         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
5654         * targhooks.h (default_mode_rep_extended): Declare it.
5655         * targhooks.c (default_mode_rep_extended): Define it.
5656         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
5657         default_mode_rep_extended.
5658         (TARGET_INITIALIZER): Include it.
5659         * doc/tm.texi (Misc): Document it.
5660         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
5661         (mips_truncated_to_mode): New function.
5662
5663 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5664
5665         PR middle-end/25474
5666         * expr.c (compress_float_constant): Copy the narrow constant into
5667         a new pseudo before extending it to its final width.
5668
5669 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5670             Andrew Pinski  <pinskia@gcc.gnu.org>
5671             Dale Johannesen  <dalej@apple.com>
5672
5673         PR target/24076
5674         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5675         special case code to implement V8HImode and V16QImode with SSE2.
5676
5677 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5678
5679         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5680         trees are constructed with a suitable tree type.
5681
5682 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5683
5684         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5685         (integer_onep): Likewise.
5686         (integer_all_onesp): Likewise.
5687         (integer_pow2p): Likewise.
5688         (integer_nonzerop): Likewise.
5689         (real_zerop): Likewise.
5690         (real_onep): Likewise.
5691         (real_twop): Likewise.
5692         (real_minus_onep): Likewise.
5693         (int_size_in_bytes): Likewise.
5694         (host_integerp): Likewise.
5695
5696 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
5697
5698         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5699         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5700         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5701
5702         * tree-ssa-structalias.h (alias_info): Remove num_references.
5703
5704 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5705
5706         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5707         (output_bvb patterns): Likewise.
5708         * pa.c (output_bb): Use 'bb' insn for long branch case.
5709         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5710         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5711         1.  Correct length operand for alternatives 1 and 2.
5712         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5713         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
5714
5715 2006-04-14  Roger Sayle  <roger@eyesopen.com>
5716
5717         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5718         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5719         were accidentally reverted by r112959.
5720
5721 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
5722
5723         PR middle-end/26823
5724         * except.h (eh_region_outermost): New prototype.
5725         * except.c (eh_region_outermost): New function.
5726         * tree-cfg.c (find_outermost_region_in_block): Use it.
5727
5728 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5729
5730         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5731         of VARRAY.
5732         * reload1.c (reg_equiv_memory_loc_varray): Rename to
5733         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
5734         (init_reload, reload): Use VEC instead of VARRAY.
5735         * reload.h: Update the prototype for
5736         reg_equiv_memory_loc_varray.
5737
5738 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5739             Eric Botcazou  <ebotcazou@libertysurf.fr>
5740
5741         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5742         register save area.
5743
5744 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
5745
5746         PR middle-end/27134
5747         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5748         to expand fallback builtin function call.
5749
5750 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
5751
5752         PR middle-end/27095
5753         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5754         and emit libcall here in case the builtin fails.
5755         (expand_builtin_strcmp): Always emit the libcall here on failure.
5756
5757 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5758
5759         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5760         * flow.c (reg_n_info): Change the type to
5761         VEC(reg_info_p,heap) *.
5762         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5763         instead of VARRAY.
5764         * regs.h (reg_info_p): New.
5765         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5766         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5767         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5768         instead of VARRAY.
5769
5770 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5771
5772         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5773         defaulting to 100.
5774         * params.h (MAX_SCHED_READY_INSNS): New macro.
5775         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5776         past MAX_SCHED_READY_INSNS during the first scheduling pass.
5777         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5778         the ready list for 1 cycle during the first scheduling pass.
5779         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5780
5781 2006-04-13  Richard Henderson  <rth@redhat.com>
5782
5783         PR libgomp/26651
5784         * gimple-low.c (lower_omp_directive): Remove dead code.
5785         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5786         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5787         * omp-low.c (struct omp_region): Move to tree-flow.h.
5788         (root_omp_region): Export.
5789         (omp_regions, lookup_omp_region): Remove.
5790         (determine_parallel_type): Update for struct omp_region changes.
5791         (dump_omp_region): Dump regions with block numbers.
5792         (new_omp_region): Take type and block instead of stmt; malloc
5793         instead of ggc.
5794         (free_omp_region_1, free_omp_regions): New.
5795         (expand_parallel_call): Take entry_stmt as argument; update for
5796         changes to omp_region.
5797         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5798         (remove_exit_barriers): New.
5799         (expand_omp_parallel): Update for struct omp_region changes.
5800         (expand_omp_synch): Likewise.
5801         (expand_omp): Likewise.
5802         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5803         (expand_omp_for_static_chunk): Likewise.
5804         (expand_omp_for): Likewise.
5805         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5806         (expand_omp_sections): Similarly, with GOMP_sections_end.
5807         (expand_omp_single): New.
5808         (build_omp_regions_1): Update for OMP_CONTINUE.
5809         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5810         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5811         OMP_SECTIONS_SECTIONS.
5812         (lower_omp_single_simple): Don't emit barrier here.
5813         (lower_omp_single_copy): Likewise.
5814         (lower_omp_single): Fix bindings, and lower to straightline now.
5815         (lower_omp_master, lower_omp_ordered): Likewise.
5816         (lower_omp_critical): Likewise.
5817         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
5818         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5819         omp edges, free it afterward.
5820         (make_omp_sections_edges): Remove.
5821         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5822         (move_stmt_r): Handle OMP_CONTINUE.
5823         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
5824         statement pointers to basic blocks.  Add type member.
5825         (root_omp_region, new_omp_region, free_omp_regions): Declare.
5826         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5827         * tree-inline.c (estimate_num_insns_1): Likewise.
5828         * tree-pretty-print.c (dump_generic_node): Likewise.
5829         * tree-ssa-operands.c (get_expr_operands): Likewise.
5830         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5831         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5832         (OMP_CONTINUE): New.
5833         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5834         (OMP_SECTIONS_SECTIONS): Remove.
5835         (OMP_SECTION_LAST): New.
5836         (OMP_RETURN_NOWAIT): New.
5837
5838 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5839
5840         * fold-const.c (native_encode_vector, native_interpret_real):
5841         Correct obvious mistakes in the previous check-in.
5842
5843 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5844
5845         * fold-const.c (native_encode_expr): New function to encode
5846         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5847         or VECTOR_CST into a specified buffer.
5848         (native_encode_int): New function.
5849         (native_encode_real): New function.
5850         (native_encode_complex): New function.
5851         (native_encode_vector): New function.
5852         (native_interpret_expr): Inverse of native_encode_expr to convert
5853         a target representation into an INTEGER_CST, REAL_CST etc...
5854         (native_interpret_int): New function.
5855         (native_interpret_real): New function.
5856         (native_interpret_complex): New function.
5857         (native_interpret_vector): New function.
5858         (fold_view_convert_expr): New function to constant fold/evaluate
5859         a VIEW_CONVERT_EXPR of a suitable constant expression.
5860         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5861         Change call of build1 to fold_build1 when constructing a
5862         VIEW_CONVERT_EXPR.
5863
5864 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
5865             Ulrich Weigand  <uweigand@de.ibm.com>
5866
5867         PR target/27006
5868         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5869         to be even.
5870
5871 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
5872
5873         PR target/26459
5874         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5875         optimize to lo_sum for DFmode if !TARGET_FPRS.
5876
5877 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5878
5879         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5880         delete_alias_info, compute_flow_sensitive_aliasing,
5881         group_aliases): Use VEC instead of VARRAY.
5882         * tree-ssa-structalias.c (update_alias_info): Likewise.
5883         * tree-ssa-structalias.h (alias_info): Change the type of
5884         processed_ptrs to VEC(tree,heap) *.
5885
5886 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
5887
5888         PR target/27060
5889         * config/sh/lib1funcs.h: New file, broken out of:
5890         * config/sh/lib1funcs.asm.
5891         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5892         New macros.
5893         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5894         * config/sh/lib1funcs-Os-4-200.asm: New file.
5895         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5896         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5897         (EXTRA_MULTILIB_PARTS): Include it.
5898         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5899         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5900         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5901         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5902         TARGET_SH2.
5903
5904 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5905
5906         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5907         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5908         tpa_compact, root_var_init, type_var_init): Use VEC instead of
5909         VARRAY.
5910         * tree-ssa-live.h: Include vecprim.h.
5911         (tree_partition_associator_d): Change the type of
5912         first_partition to VEC(int,heap) *.
5913         (tpa_first_partition): Use VEC instead of VARRAY.
5914
5915         * Makefile.in (GTFILES): Move functions.h after tree.h.
5916         * function.c (reset_block_changes, record_block_change,
5917         check_block_change, free_block_changes): Use VEC instead of
5918         VARRAY.
5919         * function.h (function): Change the type of
5920         ib_boundaries_block to VEC(tree,gc) *.
5921         * tree-inline.c (copy_cfg_body): Initialize
5922         ib_boundaries_block to NULL instead of (varray_type) 0.
5923
5924 2006-04-12  Roger Sayle  <roger@eyesopen.com>
5925
5926         * expr.c (emit_group_store): Correct operand order in call to
5927         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
5928         a SUBREG_BYTE of zero.
5929
5930 2006-04-12  Richard Guenther  <rguenther@suse.de>
5931
5932         * profile.c (compute_branch_probabilities): Remove code
5933         encapsulated in !ir_type (), which are remanents of the
5934         removed RTL profiling code.
5935         * rtl-profile.c: Remove.
5936
5937 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
5938
5939         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5940         magic NULL_RTX comment.
5941         (function_arg): Store entire fp arg to mem if any part should go
5942         on stack.
5943         (rs6000_arg_partial_bytes): Adjust for above change.
5944
5945 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5946
5947         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5948         if it hasn't been initialized by dwarf2out_init.
5949
5950 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
5951
5952         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5953         symbolic constants in branch patterns.
5954
5955 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5956
5957         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5958
5959 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
5960
5961         PR rtl-optimization/27073
5962         * gcse.c (try_replace_reg): Revert last change.  Continue to search
5963         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5964         on the former.
5965
5966 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5967
5968         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5969         aggregate types other than record and union types.
5970         (function_arg): Likewise.
5971         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5972         small arrays.
5973         (function_value): In 64-bit mode, return objects that require it
5974         in FP registers.
5975
5976 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5977
5978         * dwarf2out.c (premark_used_types): Remove problematic prototype.
5979
5980 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
5981
5982         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5983
5984 2006-04-03  Jeff Law  <law@redhat.com>
5985
5986         PR/27087
5987         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5988         alias information too.
5989
5990 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
5991
5992         * Makefile.in (gcc-cross): Add $(exeext) to target name.
5993
5994 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
5995
5996         PR/21391
5997         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5998         (premark_used_types_helper): New.
5999         (premark_used_types): New.
6000         (gen_subprogram_die): Call premark_used_types.
6001         (prune_unused_types_walk): Do not prune perennial dies.
6002         * function.c (used_types_insert): New.
6003         * function.h (struct function): Add used_types_hash field.
6004         (used_types_insert): Add prototype.
6005         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
6006         * c-parser.c (c_parser_cast_expression): Save casted types in used
6007         types hash table.
6008
6009 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
6010
6011         PR target/26459
6012         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
6013         rs6000_explicit_options.float_gprs.
6014
6015 2006-04-10  Roger Sayle  <roger@eyesopen.com>
6016
6017         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
6018         from ix86_expand_vector_init_low_nonzero.  Take an additional
6019         one_var argument indicating which element is non-zero.  Support
6020         one_var != 0 for V4SFmode and V4SImode by permuting the result.
6021         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
6022         with one_var instead of ix86_expand_vector_init_low_nonzero.
6023
6024 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
6025
6026         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
6027         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
6028         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
6029         build/genextract.o): Depend on vecprim.h.
6030         * cfglayout.c, df-problems.c, function.c, genextract.c,
6031         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
6032         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
6033         vecprim.h.
6034         * vecprim.h: New.
6035
6036 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
6037
6038         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
6039         Declare VECs of this type.
6040         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
6041         (remove_children): Delete.
6042         (add_dwarf_attr): Use VEC routines.
6043         (add_AT_flag): Update for changes to add_dwarf_attr.
6044         (add_AT_int): Likewise.
6045         (add_AT_unsigned): Likewise.
6046         (add_AT_long_long): Likewise.
6047         (add_AT_vec): Likewise.
6048         (add_AT_string): Likewise.
6049         (add_AT_die_ref): Likewise.
6050         (add_AT_fde_ref): Likewise.
6051         (add_AT_loc): Likewise.
6052         (add_AT_loc_list): Likewise.
6053         (add_AT_addr): Likewise.
6054         (add_AT_lbl_id): Likewise.
6055         (add_AT_lineptr): Likewise.
6056         (add_AT_macptr): Likewise.
6057         (add_AT_offset): Likewise.
6058         (add_AT_range_list): Likewise.
6059         (get_AT): Use VEC_iterate.
6060         (remove_AT): Use VEC_ordered_remove.
6061         (free_die): Fold remove_children into here; have it use VEC_iterate.
6062         (print_die): Use VEC_iterate on attrs.
6063         (reverse_die_lists): Don't reverse attr lists.
6064         (die_checksum): Use VEC_iterate on attrs.
6065         (same_die_p): Likewise.
6066         (output_location_lists): Likewise.
6067         (build_abbrev_table): Likewise.
6068         (size_of_die): Likewise.
6069         (unmark_all_dies): Likewise.
6070         (output_abbrev_section): Likewise.
6071         (output_die): Likewise.
6072         (prune_unused_types_walk_attribs): Likewise.
6073
6074 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6075
6076         * doc/install.texi (*-*-solaris2*): Point to the configure page.
6077
6078 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
6079
6080         PR debug/27057
6081         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
6082
6083 2006-04-09  Roger Sayle  <roger@eyesopen.com>
6084
6085         * expr.c (store_constructor): Don't bother clearing target if
6086         we're about to assign a vector to it using vec_init_optab.
6087
6088 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
6089
6090         * tree-ssa-alias.c (lhs_may_store_to): New function.
6091         (recalculate_used_alone): Handle LHS of calls.
6092
6093 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6094
6095         PR target/27034
6096         PR target/26508
6097         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
6098         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
6099         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
6100         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
6101         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
6102         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
6103         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
6104         stubs.  Add ".align 8" directives before all ".dword" directives.
6105         (GTHREAD_USE_WEAK): Revise comment.
6106         (TARGET_ATTRIBUTE_WEAK): Define.
6107         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
6108         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
6109         * stublib.c: New file.
6110
6111         PR target/26743
6112         PR target/11254
6113         PR target/10274
6114         * pa.md (cbranch patterns): Revise arguments used in calls to
6115         output_cbranch, output_bb and output_bvd.  Add long branch length
6116         attributes.
6117         (fbranch patterns): Handle long branches.
6118         (jump): Revise length check.  Revise arguments for output_lbranch call.
6119         Add long branch length attributes.
6120         (decrement_and_branch_until_zero): Add long branch length attributes.
6121         (output_movb, output_parallel_addb and output_parallel_movb patterns):
6122         Likewise.  Revise arguments for output_parallel_addb and
6123         output_parallel_movb calls.
6124         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
6125         output_parallel_movb and output_parallel_addb): Update prototypes.
6126         * pa.c (output_cbranch): Revise arguments.  Correct handling of
6127         nullification in long branches.
6128         (output_lbranch): Add new argument to control extraction of delay
6129         instruction.
6130         (output_bb): Handle long branches.
6131         (output_bvb, output_dbra, output_movb, output_parallel_movb,
6132         output_parallel_addb): Likewise.
6133
6134 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
6135
6136         PR rtl-optimization/27073
6137         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
6138         not REG_EQUIVs.
6139
6140 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
6141
6142         * tree.h (tree_memory_tag): Add old_used_alone.
6143         (SMT_OLD_USED_ALONE): New macro.
6144         * tree-ssa-alias.c (recalculate_used_alone): Stop
6145         marking things for renaming unnecessarily.
6146
6147 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
6148
6149         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
6150         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
6151         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
6152         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
6153         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
6154         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
6155         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
6156         spelling convensions.
6157         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
6158         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
6159         typos.  Follow spelling conventions.
6160
6161 2006-04-07  DJ Delorie  <dj@redhat.com>
6162
6163         * config/m32c/m32c.c (m32c_function_arg): Structures are always
6164         passed on the stack.
6165         (m32c_init_cumulative_args): When a function returns a structure,
6166         always pass the pointer to that return area on the stack.
6167         (m32c_function_arg_advance): Don't increment the parameter number
6168         if we're processing the returned structure pointer.
6169         (pushm_info): Reverse order of registers.
6170
6171 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
6172
6173         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
6174         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
6175         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
6176         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
6177         build_int_cst_type.
6178         * tree-chrec.c (chrec_fold_multiply_poly_poly,
6179         chrec_fold_multiply): Same.
6180         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
6181         force_expr_to_var_cost): Same.
6182         * tree-mudflap.c (mf_xform_derefs_1): Same.
6183         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
6184
6185 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
6186
6187         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
6188         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
6189         insn.
6190
6191 2006-04-07  Jan Hubicka  <jh@suse.cz>
6192
6193         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
6194
6195 2006-04-07  Richard Guenther  <rguenther@suse.de>
6196
6197         PR tree-optimization/26135
6198         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
6199         loads for store copy-prop.
6200         (copy_prop_visit_stmt): Likewise.
6201
6202 2006-04-05  Robert Millan  <robertmh@gnu.org>
6203
6204         * config/i386/linux.h: Add a comment to mark macros that are
6205         being overriden in config/k*bsd-gnu.h.
6206         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
6207         DYNAMIC_LINKER.
6208         * config/knetbsd-gnu.h: Ditto.
6209
6210 2006-04-06  Jan Hubicka  <jh@suse.cz>
6211
6212         PR profile/20815
6213         PR profile/26399
6214         * coverage.c (coverage_checksum_string): Reorganize loop to not read
6215         after buffer.
6216
6217 2006-04-06  Mike Stump  <mrs@apple.com>
6218
6219         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
6220         for HAVE_nonlocal_goto to be consistent.
6221         (expand_builtin_nonlocal_goto): Likewise.
6222         (expand_builtin_strcmp): Use #ifdef instead of #if
6223         for HAVE_cmpstrnsi to be consistent.
6224
6225 2006-04-05  DJ Delorie  <dj@redhat.com>
6226
6227         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
6228         vs m32c.
6229
6230 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
6231
6232         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
6233         got-relative addressing for anything but SImode.
6234
6235         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
6236         even if the calling function doesn't modify them.
6237
6238 2006-04-05  Richard Guenther  <rguenther@suse.de>
6239
6240         PR tree-optimization/26919
6241         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
6242         to cgraph_estimate_size_after_inlining.
6243
6244 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
6245
6246         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
6247
6248 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
6249
6250         PR tree-optimization/26996
6251         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
6252         VECTOR_TYPE variables.
6253
6254 2006-04-05  Richard Guenther  <rguenther@suse.de>
6255
6256         PR tree-optimization/26763
6257         * fold-const.c (fold_comparison): Move folding of
6258         PTR + CST CMP PTR + CST ...
6259         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
6260
6261 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
6262
6263         * doc/install.texi (Prerequisites): Refine some wording on
6264         bootstrapping and ksh.
6265         Move the version numbers of DejaGnu here from the testing section
6266         and fix casing of names.
6267         Fix markup and clarify wording for autogen requirements.
6268         Refer to GCJ instead of just java.
6269         Refer to SVN instead of CVS.
6270         Describe diffutils as useful instead of necessary.
6271         (Downloading the source): Refer to SVN instead of CVS.
6272         Adjust a link to our web site accordingly.
6273         (Configuration): Fix casing of Bison.
6274         (Building): Refer to SVN instead of CVS.
6275         Fix a sentence on the use of Bison and remove duplicate (and
6276         incorrect) version number of Bison requirement.
6277         Remove one redundant list of packages needed for building.
6278         (Specific): Avoid reference to CVS.
6279
6280 2006-04-04  Eric Christopher  <echristo@apple.com>
6281
6282         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
6283         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
6284         (rs6000_handle_struct_attribute): New.
6285         (rs6000_ms_bitfield_layout_p): Ditto.
6286
6287 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
6288
6289         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
6290         NULL for dso parameter to atexit_common.
6291
6292 2006-04-04  Eric Christopher  <echristo@apple.com>
6293
6294         * config/i386/i386.c (machopic_output_stub): Output \t
6295         between instructions and operands.
6296
6297 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
6298
6299         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
6300         satisfies_constraint_[IL] to explicit tests on value.
6301
6302 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
6303
6304         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6305         set_nb_iterations_in_loop): Use build_int_cst instead of
6306         build_int_cst_type.
6307         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
6308         build_int_cst instead of convert.
6309
6310 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
6311
6312         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
6313         new value 2 for incoming.
6314         * function.c (expand_function_start): Call struct_value_rtx
6315         with incoming as 2.
6316         * config/sparc/sparc.md: Comment updated_return.
6317         * config/sparc/sparc.opt: Add -mstd-struct-return option.
6318         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
6319         struct return if sparc_std_struct_return and incoming is 2.
6320         (print_operand): Do not adjust return if
6321         sparc_std_struct_return.
6322
6323 2006-04-04  Roger Sayle  <roger@eyesopen.com>
6324
6325         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
6326         convert in the middle-end.
6327         * expr.c (store_expr, store_constructor, get_inner_reference,
6328         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
6329         Likewise.
6330         * tree.c (build_range_type): Likewise.
6331
6332 2006-04-04  Tom Tromey  <tromey@redhat.com>
6333
6334         * doc/install.texi (Prerequisites): Mention jar.
6335
6336 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
6337
6338         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
6339         subsection.
6340
6341 2006-04-04  Matthias Klose  <doko@debian.org>
6342
6343         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
6344         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
6345         strings.
6346
6347 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
6348
6349         * doc/extend.texi (Function Attributes): Rewrite visibility
6350         attribute documentation.
6351         * doc/invoke.texi (C++ Dialect Options): Rewrite
6352         -fvisibility-inlines-hidden documentation to describe something
6353         entirely different, although in practise compatible.
6354         (Code Gen Options): Warn about system headers in -fvisibility=
6355         documentation.
6356
6357         * doc/extend.texi (Other Builtins): Document that
6358         __builtin_nan is a compile-time constant only when its argument
6359         is valid.
6360
6361 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6362
6363         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
6364         trying to remove TRUNCATE check if all bits outside the new mode
6365         are identical to the sign bit.
6366
6367 2006-04-03  Jeff Law  <law@redhat.com>
6368
6369         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
6370         and operand scanning in some common cases.
6371
6372 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
6373             Dale Johannesen  <dalej@apple.com>
6374
6375         PR target/19653
6376         * regclass.c (struct reg_pref): Update documentation.
6377         (regclass): Set prefclass to NO_REGS if memory is the best option.
6378         (record_reg_classes): Cope with a prefclass set to NO_REGS.
6379         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
6380         into account.  For non-registers, equate an empty preferred
6381         reload class to a `!' in the constraint; move the if clause to
6382         do so after those that reject the insn.
6383         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
6384         return NO_REGS.
6385         (find_dummy_reload): Likewise.
6386         * doc/tm.texi (Register Classes): Document what it means
6387         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
6388         * config/i386/i386.c (ix86_preferred_reload_class): Force
6389         using SSE registers (and return NO_REGS for floating-point
6390         constants) if math is done with SSE.
6391         (ix86_preferred_output_reload_class): New.
6392         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
6393         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
6394         * config/i386/i386.md: Remove # register preferences.
6395
6396 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6397
6398         PR bootstrap/26992
6399         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6400         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
6401         the type of nb_iter.
6402         (instantiate_parameters_1): Convert the operands before calling
6403         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
6404         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
6405
6406 2006-04-02  Roger Sayle  <roger@eyesopen.com>
6407
6408         * builtins.c (dummy_object): Use build_int_cst instead of convert.
6409         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
6410         instead of convert.
6411         * dojump.c (do_jump): Likewise.
6412         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
6413         * gimplify.c (gimple_boolify, gimplify_init_constructor,
6414         gimplify_boolean_expr): Likewise.
6415         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6416         * varasm.c (array_size_for_constructor): Likewise.
6417         * tree-object-size.c (compute_object_offset): Likewise.
6418
6419 2006-04-02  Roger Sayle  <roger@eyesopen.com>
6420
6421         PR middle-end/26977
6422         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
6423         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
6424
6425 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6426
6427         PR tree-optimization/26939
6428         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
6429
6430 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6431
6432         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
6433         at_stmt.  Convert the type of operands before calling
6434         build_polynomial_chrec.
6435         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
6436         add_to_evolution_1.
6437         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
6438         (instantiate_parameters_1): Convert the type of operands before calling
6439         build_polynomial_chrec.
6440         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6441         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
6442         reset_evolution_in_loop): Insert asserts to check the types of the
6443         operands.
6444         (chrec_type): Moved...
6445         (eq_evolutions_p): Use operand_equal_p.
6446         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
6447         the types of the operands.
6448         (chrec_type): ...here.
6449         * tree-data-ref.c (create_data_ref): Convert the operands before
6450         calling chrec_replace_initial_condition.
6451         (same_access_functions, analyze_subscript_affine_affine,
6452         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
6453         (compute_subscript_distance, analyze_ziv_subscript,
6454         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
6455         analyze_miv_subscript): Convert the operands before calling
6456         chrec_fold_minus or chrec_fold_plus.
6457
6458 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
6459
6460         * tree-data-ref.c (compute_all_dependences): Use a pointer to
6461         the dependence_relations vector.
6462         (compute_data_dependences_for_loop): Adjust call to
6463         compute_all_dependences.
6464
6465 2006-04-01  Roger Sayle  <roger@eyesopen.com>
6466             Richard Henderson  <rth@redhat.com>
6467
6468         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
6469         gimple_boolify on the condition before calling gimplify_expr.
6470
6471 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
6472
6473         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
6474         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
6475         the frame size.  Update to use the new macros.
6476         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
6477         * config/xtensa/ieee754-df.S: Likewise.
6478
6479 2006-03-31  Richard Henderson  <rth@redhat.com>
6480
6481         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
6482         (make_edges): ... here.  Control fallthru creation with a local
6483         variable.  Do not play with fake edges.
6484         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
6485         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
6486         a boolean.
6487
6488 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
6489
6490         * dwarf2.h (DW64_CIE_ID): Define.
6491         * dwarf2out.c (DWARF_CIE_ID): Define.
6492         (output_call_frame_info): Output 0xffffffff before standard 8-byte
6493         length header.  Use DWARF_CIE_ID.
6494         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
6495         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
6496
6497 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6498
6499         * config/sh/linux-atomic.asm: New file.
6500         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
6501
6502 2006-03-31  DJ Delorie  <dj@redhat.com>
6503
6504         * config/m32c/cond.md: Set condition flags properly throughout.
6505         * config/m32c/minmax.md: Likewise.
6506         * config/m32c/prologue.md: Likewise.
6507         * config/m32c/bitops.md: Likewise.
6508         * config/m32c/muldiv.md: Likewise.
6509         * config/m32c/mov.md: Likewise.
6510         * config/m32c/addsub.md: Likewise.
6511         * config/m32c/m32c.md: Likewise.
6512         * config/m32c/jump.md: Likewise.
6513         * config/m32c/shift.md: Likewise.
6514
6515         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
6516         conditionally output the pattern for this.
6517         * config/m32c/m32c.c (flags_needed_for_conditional): New.
6518         (m32c_compare_redundant): New.
6519         (m32c_output_compare): New.
6520         * config/m32c/m32c-protos.h (m32c_output_compare): New.
6521
6522         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
6523         dest, not src.  Allow other 4-byte modes.
6524
6525 2006-03-30  Denis Chertykov  <denisc@overta.ru>
6526
6527         * doc/md.texi: Refer to avr/constraints.md instead of
6528         avr/avr.h.
6529
6530 2006-03-30  Roger Sayle  <roger@eyesopen.com>
6531
6532         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
6533         signed vs. unsigned comparison failures on some hosts.
6534
6535 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
6536
6537         PR target/26459
6538         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
6539         change to FLOAT_REGS.
6540
6541         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
6542         (rs6000_override_options): Use it.
6543         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
6544         only for -mabi=spe/no-spe and -mabi=altivec.
6545
6546 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
6547
6548         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
6549         !Zdynamiclib.
6550
6551 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
6552
6553         * Makefile.in: Rename docdir to gcc_docdir.
6554
6555 2006-03-30  Roger Sayle  <roger@eyesopen.com>
6556
6557         PR target/17959
6558         * expr.c (emit_group_store): Optimize group stores into a pseudo
6559         register by using a paradoxical subreg to initialize the destination
6560         if the first or last member of the group specifies a "low part".
6561
6562 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6563
6564         PR target/26734
6565         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6566         * target.h (struct gcc_target.speculate_insn): Change type of the
6567         second parameter to 'int'.
6568         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
6569         the second operand of the DEPS_LIST.
6570         (copy_DEPS_LIST_list): Update reference to the second operand of the
6571         DEPS_LIST.
6572         * rtl.h (alloc_DEPS_LIST): Update signature.
6573         * sched-int.h (ds_t): Change typedef to 'int'.
6574         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6575
6576 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6577
6578         * haifa-sched.c (try_ready): Change condition to restore
6579         non-speculative pattern of the instruction.
6580         (process_insn_depend_be_in_spec): Code to keep probability of the
6581         speculative dependence non-decreasing.
6582
6583 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
6584
6585         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
6586         (single_move_for_movmem): ... this. Also change all uses.
6587         (bfin_expand_strmov): Renamed to...
6588         (bfin_expand_movmem): ... this. Also change all uses.
6589         * config/bfin/bfin.md (movstrsi): Renamed to...
6590         (movstrsi): ...this.
6591
6592 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
6593
6594         PR tree-optimization/26830
6595
6596         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
6597         (copy_prop_visit_stmt): Remove write-only variable ann.
6598         (init_copy_prop): Check variable loop depth here.  Do not simulate
6599         memory-tag and virtual operand PHIs except for store copy prop.
6600
6601 2006-03-30  Richard Guenther  <rguenther@suse.de>
6602
6603         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
6604         variants with double arguments.
6605
6606 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6607
6608         * genpreds.c (write_tm_constrs_h): Delete variable p.
6609         * genconditions.c (write_header): Add tm-constrs.h to included
6610         headers.
6611         * genpeep.c (main): Add toplev.h to included headers.
6612         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
6613         (build/genpeep.o): Add toplev.h dependency.
6614         * config/rs6000/constraints.md: Add "W" constraint.
6615
6616 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6617
6618         * stor-layout.c (mode_for_size_tree): Remove restiction on type
6619         sizes by correctly testing whether the size fits a host integer.
6620         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
6621         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
6622         SImode range for the default sizetype and bitsizetype.
6623
6624 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6625
6626         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
6627         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
6628         quickly if the argument is already of the correct type.
6629         Call fold_build1 instead of build1.  Tidy up blank lines.
6630
6631 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6632
6633         * genemit.c (main): Add tm-constrs.h to included headers.
6634         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
6635         * genpeep.c (main): Add tm-constrs.h to included headers.
6636         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
6637         (write_tm_constrs_h): this and write complete file.
6638         (write_tm_preds_h): Do not emit satisfies_constraint fns.
6639         (write_insn_preds_c): Add tm-constrs.h to included headers.
6640         (gen_constrs): New variable.
6641         (parse_option): Parse "-c".
6642         (main): Invoke write_tm_constrs_h.
6643         * genrecog.c (write_header): Add tm-constrs.h to included headers.
6644         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
6645         (object_out_file): Add tm-constrs.h dependency.
6646         (insn-emit.o): Same.
6647         (insn-output.o): Same.
6648         (insn-peep.o): Same.
6649         (insn-preds.o): Same.
6650         (insn-recog.o): Same.
6651         (tm-constsr.h): New target.
6652         (s-constrs-h): New target.
6653
6654         * config/rs6000/constraints.md: New file.
6655         * config/rs6000/rs6000.c: Include tm-constrs.h.
6656         (num_insn_constant_wide): Convert to satisfies_constraint.
6657         (rs6000_rtx_costs): Convert to satisfies_constraint.
6658         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
6659         (CONST_OK_FOR_LETTER_P): Delete.
6660         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6661         (EXTRA_CONSTRAINT): Delete.
6662         (EXTRA_MEMORY_CONSTRAINT): Delete.
6663         (EXTRA_ADDRESS_CONSTRAINT): Delete.
6664         * config/rs6000/predicates.md: Convert to satisfies_constraint.
6665         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
6666         satisfies_constraint.
6667
6668         * config/i386/i386.c: Include tm-constrs.h.
6669
6670 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6671
6672         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6673         * tree-data-ref.c (find_data_references_in_loop,
6674         compute_data_dependences_for_loop): Use pointers to VEC.
6675         (analyze_all_data_dependences): Adjust calls.
6676         * tree-data-ref.h (find_data_references_in_loop,
6677         compute_data_dependences_for_loop): Adjust declarations.
6678         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6679         compute_data_dependences_for_loop.
6680
6681 2006-03-29  Paul Brook  <paul@codesourcery.com>
6682
6683         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6684         (movdf_vfp): Ditto.
6685
6686 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6687
6688         PR tree-optimization/26859
6689         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6690         division by zero.
6691         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6692         for the step after fold_convert.
6693
6694 2006-03-29  Paul Brook  <paul@codesourcery.com>
6695
6696         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6697         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6698
6699 2006-03-29  Paul Brook  <paul@codesourcery.com>
6700
6701         PR middle-end/23623
6702         * targhooks.c (default_narrow_bitfield): New fuction.
6703         * targhooks.h (default_narrow_bitfield): add prototype.
6704         * target.h (gcc_target): Add narrow_volatile_bitfield.
6705         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6706         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6707         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6708         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6709
6710 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6711
6712         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6713         tmake_file.
6714         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6715         (NR_C_MODES): Add TDmode, DDmode and SDmode.
6716         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6717         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6718         (s390_function_arg_float): Allow SDmode and DDmode values to be
6719         passed in floating point registers.
6720         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6721         check with SCALAR_FLOAT_MODE_P.
6722         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6723
6724 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6725
6726         PR tree-optimization/25985
6727         * tree-ssa-loop-niter.c (number_of_iterations_le,
6728         number_of_iterations_ne): Make comments more precise.
6729         (number_of_iterations_cond): Add only_exit argument.  Use the
6730         fact that signed variables do not overflow only when only_exit
6731         is true.
6732         (loop_only_exit_p): New.
6733         (number_of_iterations_exit): Pass result of loop_only_exit_p to
6734         number_of_iterations_cond.
6735
6736 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6737
6738         PR tree-optimization/26643
6739         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6740         bit_field_refs.
6741
6742 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6743
6744         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6745         (divsi3_i4_int): Likewise.
6746
6747 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6748
6749         * expr.c (emit_group_store): Only create a new pseudo reg if the
6750         quantity it needs to hold isn't already a suitable pseudo.
6751
6752 2006-03-28  Jeff Law  <law@redhat.com>
6753
6754         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6755         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6756
6757 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6758
6759         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6760         the equivalent ~X & Y, and the symmetry related transformations.
6761         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6762         ~X & Y, and symmetry related transforms.
6763
6764 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6765
6766         Revert my 2006-03-27 patches.
6767
6768 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6769
6770         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6771         ~(T1)X, when T1 and T2 are integer types of the same precision
6772         and (T2)X isn't an extension.
6773
6774 2006-03-28  Jeff Law  <law@redhat.com>
6775
6776         PR tree-optimization/26796
6777         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6778         need EH edge cleanups rather than purging them immediately.
6779         (eliminate_degenerate_phis): Handle queued EH cleanups.
6780
6781 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
6782
6783         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6784         from parent_var.
6785
6786 2006-03-27  Roger Sayle  <roger@eyesopen.com>
6787
6788         PR middle-end/22524
6789         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6790         cast BIT_NOT_EXPR operand to the correct type.
6791
6792 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
6793
6794         * tree-loop-linear.c: Don't include varray.h.
6795         (gather_interchange_stats, try_interchange_loops,
6796         linear_transform_loops): Use VEC instead of VARRAY.
6797         * lambda-mat.c: Don't include varray.h.
6798         * tree-chrec.c: Same.
6799         * lambda-trans.c: Same.
6800         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6801         VEC instead of VARRAY.
6802         * tree-vectorizer.h: Idem.
6803         * tree-data-ref.c (dump_data_references,
6804         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6805         initialize_data_dependence_relation, finalize_ddr_dependent,
6806         compute_all_dependences, find_data_references_in_loop,
6807         compute_data_dependences_for_loop, analyze_all_data_dependences,
6808         free_dependence_relation, free_dependence_relations,
6809         free_data_refs): Idem.
6810         * tree-data-ref.h (data_reference_p, subscript_p): New.
6811         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6812         VEC instead of VARRAY.
6813         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6814         (find_data_references_in_loop, compute_data_dependences_for_loop,
6815         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6816         dump_data_dependence_relations, free_dependence_relations,
6817         free_data_refs): Adjust declaration.
6818         (lambda_transform_legal_p): Move declaration here...
6819         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6820         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6821         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6822         vect_analyze_data_refs): Use VEC instead of VARRAY.
6823         * lambda.h (lambda_transform_legal_p): ...from here.
6824         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6825         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6826         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6827         tree-chrec.o): Don't depend on VARRAY_H.
6828
6829 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6830
6831         * rtl.def (Copyright): Update date.
6832         (DEPS_LIST): Change type of the second operand to 'int'.
6833         * target.h (Copyright): Update date.
6834         (struct gcc_target.speculate_insn): Change type of the second parameter
6835         to 'int'.
6836         * lists.c (Copyright): Update date.
6837         (alloc_DEPS_LIST): Change signature.  Update reference to the second
6838         operand of the DEPS_LIST.
6839         (copy_DEPS_LIST_list): Update reference to the second operand of the
6840         DEPS_LIST.
6841         * rtl.h (Copyright): Update date.
6842         (alloc_DEPS_LIST): Update signature.
6843         * sched-int.h (Copyright): Update date.
6844         (ds_t): Change typedef to 'int'.
6845         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6846
6847 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6848
6849         * haifa-sched.c (Copyright): Update date.
6850         (try_ready): Change condition to restore non-speculative pattern
6851         of the instruction.
6852         (process_insn_depend_be_in_spec): Code to keep probability of the
6853         speculative dependence non-decreasing.
6854
6855 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
6856
6857         * regrename.c (replace_oldest_value_addr): Initialize a variable to
6858         shut up the compiler.
6859
6860 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
6861
6862         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6863         to use lib prefix for target.
6864         ($(T)libic_invalidate_array_4-200.a): Likewise.
6865         ($(T)libic_invalidate_array_4a.a): Likewise.
6866
6867 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
6868             J"orn Rennecke <joern.rennecke@st.com>
6869
6870         * superh.opt: New file.
6871         * sh.c (boardtype, osruntime): Remove.
6872         * superh.h (SUBTARGET_OPTIONS): Remove.
6873         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6874
6875         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
6876         arguments with ^ and/or [].
6877
6878         * config.gcc (sh-*-*): Add quoting to account for quirk of
6879         Solaris /bin/sh.
6880         Replace == with = in enable_incomplete_targets test.
6881
6882         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6883         with MASK_LITTLE_ENDIAN.
6884
6885         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6886         * config/sh/sh.opt: Added to some comments.
6887         * config/sh/superh.h: Removed some chaff.
6888
6889         * config/sh/sh.opt: Add m4-[1234]00* options.
6890         * config/sh/sh.c (sh_handle_option): Likewise.
6891         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6892         (ic_invalidate_array_4-100.o): New rule.
6893         ($(T)libic_invalidate_array_4-100.a): Likewise.
6894         (ic_invalidate_array_4-200.o): Likewise.
6895         ($(T)libic_invalidate_array_4-200.a): Likewise.
6896         (ic_invalidate_array_4a.o): Likewise.
6897         ($(T)libic_invalidate_array_4a.a): Likewise.
6898         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6899         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6900         m4-200*, and m4a*.
6901         * config/sh/crt1.asm: Merged in profiling code.
6902         * config/sh/superh.h (STARTFILE_SPEC): Override.
6903         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6904         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6905         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6906
6907         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6908         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6909         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6910
6911         * sh.opt (mpretend-cmove): New option.
6912         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6913         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6914         (movsicc): Add TARGET_PRETEND_CMOVE code.
6915
6916 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6917
6918         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6919         s390_class_max_nregs): New function prototypes.
6920         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6921         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6922         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6923         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6924
6925 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
6926
6927         * dwarf2out.c (add_location_or_const_value_attribute): Call
6928         tree_add_const_value_attribute if nothing else works.
6929         (reference_to_unused): New.
6930         (rtl_for_decl_init): Use reference_to_unused to decide whether
6931         to output an initializer.
6932
6933 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
6934
6935         PR target/26459
6936         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6937         peephole removing spe frob_di_df_2.
6938
6939 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
6940
6941         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6942         (subscript_dependence_tester_1): Declared.
6943         (print_dir_vectors, print_dist_vectors): New.
6944         (debug_data_dependence_relation): New.
6945         (dump_data_dependence_relation): Print more details.
6946         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6947         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6948         (save_dist_v, save_dir_v, add_outer_distances,
6949         build_classic_dist_vector_1): New.
6950         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6951         Don't test for lambda_vector_lexico_pos.
6952         (same_access_functions, add_multivariate_self_dist,
6953         add_other_self_distances, dir_from_dist): New.
6954         (build_classic_dir_vector): Replace implementation almost identical to
6955         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6956         dir_from_dist.
6957         (subscript_dependence_tester_1): New.
6958         (subscript_dependence_tester): Handle the lexicographically negative
6959         distance vectors by recomputing the dependence relation.
6960         (compute_affine_dependence): Remove parameter loop_nest_depth.
6961         (compute_self_dependence): Don't call compute_subscript_distance.
6962         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6963         Add a parameter for the loop_nest.
6964         (find_loop_nest_1, find_loop_nest): New.
6965         (compute_data_dependences_for_loop): Compute the loop nest, and give
6966         up if the nest is not well formed.
6967         * tree-data-ref.h (loop_p): New.
6968         (struct data_dependence_relation): Replace size_vect field with
6969         loop_nest, a vec of loops.
6970         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6971         (DDR_LOOP_NEST): New.
6972         (print_dir_vectors, print_dist_vectors,
6973         debug_data_dependence_relation): Declared.
6974         (index_in_loop_nest): New.
6975         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6976         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6977         distance.
6978
6979 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
6980
6981         * simplify-rtx.c (simplify_relational_operation): Call
6982         simplify_relational_operation_1 even if mode is VOIDmode.
6983
6984 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
6985
6986         PR tree-optimization/26804
6987         * tree.h (DECL_CALL_CLOBBERED): New macro.
6988         (tree_decl_common): Add call_clobbered_flag.
6989         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6990         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6991         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6992         (mark_non_addressable): Ditto.
6993         * tree-ssa.c (verify_call_clobbered): New function.
6994         (verify_alias_info): Use it.
6995         * tree-pass.h (pass_reset_cc_flags): New prototype.
6996         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6997         (reset_cc_flags): New function.
6998         * passes.c (init_optimization_passes): Call reset_cc_flags after
6999         initializing referenced_vars.
7000
7001 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
7002             Roger Sayle  <roger@eyesopen.com>
7003
7004         PR middle-end/26717
7005         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
7006         to 1.0 for non-real operands. Implement A / A optimization for
7007         complex operands.
7008
7009 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
7010
7011         * config/i386/i386.c (size_cost): Correct the comment for
7012         cost of storing fp registers.
7013         (i386_cost): Likewise.
7014         (i486_cost): Likewise.
7015         (pentium_cost): Likewise.
7016         (pentiumpro_cost): Likewise.
7017         (k6_cost): Likewise.
7018         (athlon_cost): Likewise.
7019         (k8_cost): Likewise.
7020         (pentium4_cost): Likewise.
7021         (nocona_cost): Likewise.
7022         (generic64_cost): Likewise.
7023         (generic32_cost): Likewise.
7024
7025 2006-03-24  Denis Chertykov  <denisc@overta.ru>
7026
7027         * config/avr/avr-protos.h (extra_constraint): Delete.
7028         (extra_constraint_Q): New declaration.
7029         * config/avr/constraints.md: New file.
7030         * config/avr/avr.md: Include it.
7031         (REG_X, REG_Y, REG_Z, REG_W): New constants.
7032         (TMP_REGNO, ZERO_REGNO): Likewise.
7033         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
7034         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
7035         (extra_constraint): Delete.
7036         (extra_constraint_Q): Test for memory constraint 'Q'.
7037         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
7038         (REG_CLASS_FROM_LETTER): Delete.
7039         (CONST_OK_FOR_LETTER_P): Delete.
7040         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7041         (EXTRA_CONSTRAINT): Delete.
7042         (TMP_REGNO): Delete.
7043         (ZERO_REGNO): Delete.
7044
7045 2006-03-24  Jeff Law  <law@redhat.com>
7046
7047         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
7048         directly.  Call mark_new_vars_to_rename slightly earlier.
7049
7050 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
7051
7052         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
7053         (is_cxx): Likewise.
7054         (gen_compile_unit_die): Use new language types for Objective-C and
7055         Objective-C++.
7056         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
7057         DW_LANG_C_plus_plus.
7058
7059         PR 26793
7060         * config/t-darwin (crt3.o): Work around bug 26840.
7061         * config/darwin-crt3.c: Rewrite.
7062         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
7063
7064 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
7065
7066         * doc/invoke.texi: Document -femit-class-debug-always
7067         * common.opt: Add -femit-class-debug-always.
7068
7069 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7070
7071         * config/s390/s390.c (s390_decompose_address): Allow SImode for
7072         index and base register.
7073         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
7074         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
7075         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
7076         REGNO_OK_FOR_INDEX_P.
7077         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
7078         ADDR_REGNO_P.
7079         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
7080         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
7081         REG_OK_FOR_BASE_P): Definitions removed.
7082
7083 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
7084
7085         PR middle-end/26611
7086         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
7087         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
7088         set yet or weren't marked as local yet.
7089
7090 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7091
7092         * regrename.c (scan_rtx_address): Initialize a variable to shut up
7093         the compiler.
7094
7095 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7096
7097         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
7098         (rs6000_legitimate_small_data_p): Delete.
7099         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
7100         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
7101         and make static.  Add forward declaration.  Update uses.
7102         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
7103         of offsettable_memref_p.
7104         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
7105         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
7106
7107 2006-03-24  Jeff Law  <law@redhat.com>
7108
7109         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
7110         around bug in immediate-use iterator.
7111
7112 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
7113
7114         PR target/26607
7115         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
7116         or __LITTLE_ENDIAN__.
7117
7118 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
7119
7120         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
7121         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
7122         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
7123         * config/sh/sh.opt (mdiv=): Amend description.
7124         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
7125         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
7126         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
7127         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
7128         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
7129         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
7130         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
7131         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
7132         TARGET_DIVIDE_CALL_FP.
7133
7134 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
7135
7136         * haifa-sched.c (choose_ready): Fix type of the local variable.
7137         Move local variables.  Add comment.
7138         (check_reg_live): Change signature.  Make callable from debugger.
7139         * sched-int.h (check_reg_live): Update signature.
7140         * sched-ebb.c (check_reg_live): Update parameters.
7141         * sched-rgn.c (check_reg_live): Ditto.
7142         (region_head_or_leaf_p): Check pointer before dereferencing.
7143         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
7144         before reload on optimization levels below 1.
7145
7146 2006-03-23  Richard Henderson  <rth@redhat.com>
7147
7148         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
7149         tls symbols.
7150
7151         PR target/26347
7152         * config/alpha/predicates.md (local_symbolic_operand): Reject
7153         weak symbols.
7154
7155 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
7156
7157         PR tree-opt/26795
7158         * tree-ssa-pre.c (create_value_expr_from): Don't reject
7159         expressions which have overflowed constants.
7160
7161 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
7162
7163         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
7164
7165 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
7166
7167         * cfgloopmanip.c (create_loop_notes): Removed.
7168         * final.c (final_scan_insn): Do not handle loop notes.
7169         * jump.c (squeeze_notes): Ditto.
7170         * cfglayout.c (skip_insns_after_block,
7171         duplicate_insn_chain): Ditto.
7172         * cfgcleanup.c (rest_of_handle_jump2): Do not call
7173         create_loop_notes.
7174         * cfgloop.h (create_loop_notes): Declaration removed.
7175
7176 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
7177
7178         * varasm.c (output_constant_pool): Restore fnname and fndecl
7179         arguments.
7180         (assemble_start_function): Adjust call accordingly.
7181         (assemble_end_function): Likewise.
7182
7183 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7184
7185         PR mudflap/26789
7186         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
7187
7188         PR mudflap/26790
7189         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
7190
7191 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7192
7193         PR driver/22600
7194         * system.h (ICE_EXIT_CODE): New macro.
7195         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
7196         (diagnostic_action_after_output): Likewise.
7197         * gcc.c (fatal_ice): New function.
7198         (execute): Use it instead of fatal.
7199         (fancy_abort): Likewise.
7200         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
7201
7202 2006-03-22  Jeff Law  <law@redhat.com>
7203
7204         * loop-unroll.c (analyze_iv_to_split_insn): Handle
7205         iv_analyze_result returning false.
7206
7207 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
7208
7209         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
7210
7211 2006-03-22  Richard Henderson  <rth@redhat.com>
7212
7213         PR middle-end/26084
7214         * except.c (duplicate_eh_regions_0): New.
7215         (duplicate_eh_region_1): Duplicate the children of the node as
7216         well as the node itself.  Link them up properly.
7217         (duplicate_eh_region_2): Merge into ...
7218         (duplicate_eh_regions): ... here.  Take copy_region argument, and
7219         copy only a sub-tree if asked.  Simplify copying and fixup.
7220         (eh_region_outer_p): New.
7221         * except.h (duplicate_eh_regions): Update decl.
7222         (eh_region_outer_p): Declare.
7223         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
7224         (lower_omp_master): Likewise.
7225         (lower_omp_ordered): Likewise.
7226         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
7227         (move_stmt_r): Use it to remap labels.  Handle recursion vs
7228         remap_decls_p properly.
7229         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
7230         (find_outermost_region_in_block): New.
7231         (new_label_mapper): New.
7232         (move_sese_region_to_fn): Copy eh information to the new function
7233         properly.
7234         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
7235         argument.
7236         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
7237         number.
7238
7239 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
7240
7241         * doc/md.texi (-mshared): Mention that -mshared code can be linked
7242         into shared libraries.
7243
7244 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
7245
7246         * doc/md.texi: Refer to i386/constraints.md instead of
7247         i386/predicates.md.
7248         * config/i386/constraints.md: New file, extracted from...
7249         * config/i386/predicates.md: ...here.
7250         * config/i386/i386.md: Include constraints.md.
7251
7252 2006-03-21  Jason Merrill  <jason@redhat.com>
7253
7254         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
7255
7256         PR middle-end/20297
7257         * expr.c (init_block_move_fn): Force default visibility.
7258         (init_block_clear_fn): Likewise.
7259         * builtins.c (expand_builtin_fork_or_exec): Likewise.
7260         * targhooks.c (default_external_stack_protect_fail): Likewise.
7261
7262 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
7263
7264         * config/mips/predicates.md (const_call_insn_operand): Allow direct
7265         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
7266         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
7267         Use TARGET_OLDABI instead of !TARGET_NEWABI.
7268         (loadgp): Use mips_current_loadgp_style.
7269         (loadgp_noshared): New pattern.
7270         (sibcall_internal): Use MIPS_CALL.
7271         (sibcall_value_internal): Likewise.
7272         (sibcall_value_multiple_internal): Likewise.
7273         (call_internal): Likewise.
7274         (call_value_internal): Likewise.
7275         (call_value_multiple_internal): Likewise.
7276         (call_split): Use MIPS_CALL and add an 'S' constraint.
7277         (call_value_split): Likewise.
7278         (call_value_multiple_split): Likewise.
7279         * config/mips/mips.opt (-mabicalls): Tweak docstring.
7280         (-mshared): New option.
7281         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
7282         (mips_current_loadgp_style): Declare.
7283         * config/mips/mips.c (mips_classify_symbol): Avoid using
7284         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
7285         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
7286         TARGET_ABSOLUTE_ABICALLS.
7287         (override_options): Adjust comments.  Improve the warning that is
7288         issued when -mabicalls and -G are used together.
7289         (mips_file_start): Remove comment.
7290         (mips_current_loadgp_style): New function.
7291         (mips_gnu_local_gp): New variable.
7292         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
7293         LOADGP_ABSOLUTE.
7294         (mips_output_function_prologue): Use mips_current_laodgp_style.
7295         (mips_expand_prologue): Call mips_emit_loadgp before emitting
7296         the cprestore instruction.
7297         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
7298         live for TARGET_ABSOLUTE_ABICALLS.
7299         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
7300         (ASM_SPEC): Pass down -mshared and -mno-shared.
7301         (MIPS_CALL): New macro.
7302         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
7303         definition.
7304         * doc/invoke.texi (-mabicalls): Update documentation.
7305         (-mshared): Document.
7306
7307 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
7308
7309         * config/ia64/unwind-hpux.c: New file.
7310         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
7311
7312 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
7313
7314         PR libgomp/26384
7315         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
7316
7317 2006-03-21  Jeff Law  <law@redhat.com>
7318
7319         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
7320         type conversions of a VR_VARYING source to a wider type.
7321
7322 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7323
7324         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
7325         tm_file on Solaris 10 and later.
7326         (sparc64-*-solaris2*): Likewise.
7327         (sparc-*-solaris2*): Likewise.
7328         * config/sol26.h: Rename to config/sol2-6.h.
7329         * config/sol2-10.h: New file.
7330
7331 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
7332
7333         PR tree-opt/26781
7334         * tree-ssa-pre.c (create_component_ref_by_pieces):
7335         Handle STRING_CST.
7336
7337 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
7338
7339         PR c++/26690
7340         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
7341         return it immediately.
7342
7343 2006-03-21  Michael Matz  <matz@suse.de>
7344
7345         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
7346         New members.
7347         (remove_arc, add_arc): Update num_out_arcs member.
7348         (set_out_arc_insns_equiv_num): Returns nothing instead of number
7349         of out arcs.
7350         (cache_presence): New function.
7351         (compare_states_for_equiv): New function.
7352         (state_is_differed): Don't take number of outargs, adjust callers.
7353         Use new invariant for speeding up.
7354         (init_equiv_class): Create initial classes based on sorted
7355         input.
7356         (partition_equiv_class): Don't track out_arcs_num.
7357         (evaluate_equiv_classes): Call cache_presence on all states and
7358         sort them.
7359
7360 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
7361
7362         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
7363         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
7364         (bfin_valid_reg_p): Test for pseudos explicitly and use only
7365         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
7366         callers changed.
7367         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
7368         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
7369         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
7370         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7371         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
7372         macros.
7373         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
7374         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
7375         (REGNO_REG_CLASS): ARGP is in PREGS.
7376         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
7377         IREGS.
7378         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
7379         to deal with those addresses.
7380         * addresses.h: New file.
7381         * caller-save.c: Include "addresses.h".
7382         (init_caller_save): Use new base_reg_class function.
7383         * rtl-factoring.c: Include "addresses.h".
7384         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
7385         * recog.c: Include "addresses.h".
7386         (preprocess_constraints): Use new base_reg_class function.
7387         * regrename.c: Include "addresses.h".
7388         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
7389         functions.  Keep track of a new var INDEX_CODE to compute valid
7390         classes.
7391         (replace_oldest_value_addr): Likewise.
7392         (replace_oldest_value_mem): Use base_reg_class.
7393         * reload.c: Include "addresses.h".
7394         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
7395         (find_reloads): Use new base_reg_class function.
7396         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
7397         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
7398         all callers and prototype changed.
7399         * reload1.c: Include "addresses.h".
7400         (maybe_fix_stack_asms): Use base_reg_class.
7401         * regclass.c: Include "addresses.h".
7402         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
7403         (init_reg_autoinc): Use new base_reg_class function.
7404         (record_reg_classes): Likewise.
7405         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
7406         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
7407         Use new args to compute necessary class.
7408
7409         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
7410         regrename.o, rtl-factoring.o): Update dependencies.
7411         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
7412         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
7413         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
7414         REG_OK_FOR_INDEX_P): Delete documentation.
7415
7416 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
7417
7418         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
7419         from V7 to V9 for Solaris 7 and above.
7420
7421 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
7422
7423         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
7424         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
7425         argument pointers may not alias any other storage.
7426         * common.opt: Define option -fargument-noalias-anything.
7427         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
7428         alias semantics is specified by flag_argument_noalias > 2.
7429
7430 2006-03-20  Jeff Law  <law@redhat.com>
7431
7432         * tree-pass.h (pass_phi_only_copy_prop): Delete.
7433         (pass_phi_only_cprop): Declare.
7434         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
7435         with phi_only_cprop
7436         * tree-ssa-dom.c (degenerate_phi_result): New function.
7437         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
7438         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
7439         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
7440         (eliminate_degenerate_phis): Likewise.
7441         (pass_phi_only_cprop): New pass descriptor.
7442         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
7443         support code.  Callers updated.
7444         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
7445         (store_copy_prop): Likewise.
7446         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
7447
7448 2006-03-20  Jason Merrill  <jason@redhat.com>
7449
7450         PR c++/21764
7451         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
7452         (push_visibility, pop_visibility): Likewise.
7453         * c-pragma.h: Declare them.
7454
7455 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7456
7457         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
7458
7459         * config/sh/sh.c (find_regmode_weight): Change the type of the first
7460         parameter and use get_ebb_head_tail.
7461         (sh_md_init_global): Adjust uses of find_regmode_weight.
7462
7463 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
7464
7465         * function.h (struct function) <x_tail_recursion_reentry>:
7466         Rename to x_stack_check_probe_note.
7467         (tail_recursion_reentry): Rename to stack_check_probe_note.
7468         * function.c: Replace tail_recursion_reentry with
7469         stack_check_probe_note everywhere.
7470         (expand_function_start): Only emit a note for
7471         stack_check_probe_note with -fstack-protect.
7472         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
7473
7474         * emit-rtl.c (remove_unnecessary_notes): Remove.
7475         (pass_remove_unnecessary_notes): Remove.
7476         * rtl.h (remove_unnecessary_notes): Remove prototype.
7477         * final.c (final_start_function): Don't call remove_unnecessary_notes.
7478         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
7479         * passes.c (pass_remove_unnecessary_notes): Don't run it.
7480
7481 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
7482
7483         PR tree-opt/26629
7484         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
7485         (valid_in_set): Handle ARRAY_REF.
7486         Change "if min_variant or VH" to asserts.
7487         (create_component_ref_by_pieces): Handle ARRAY_REF.
7488         (create_expression_by_pieces): Likewise.
7489         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
7490
7491 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
7492
7493         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
7494         is operand of switch, not str[0].
7495
7496 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
7497
7498         * config/rs6000/rs6000.c (rs6000_handle_option): Use
7499         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
7500
7501 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
7502
7503         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
7504         end of insn_extra_address_constraint declaration.
7505
7506 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
7507
7508         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
7509         (no-sum-in-toc): Same.
7510         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
7511         variables.
7512         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
7513         NO_FP_IN_TOC for -fPIC instead of mask.
7514
7515         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
7516         (BOOT_LDFLAGS): Delete.
7517         (LDFLAGS): Delete.
7518         * config/rs6000/t-aix52: Same.
7519
7520         * config/rs6000/rs6000.md (store_multiple_power): Delete.
7521         (stmsi[345678]_power): New.
7522
7523 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
7524
7525         * config/ia64/ia64.opt: Add empty line to end of file.
7526
7527 2006-03-17  Richard Guenther  <rguenther@suse.de>
7528
7529         PR middle-end/26721
7530         * builtins.c (get_pointer_alignment): For component style references
7531         adjust alignment to the component type alignment.  Make sure
7532         to adjust alignment for component access of constants.
7533
7534 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
7535
7536         * config/rs6000/rs6000.md (strlensi): Emit barrier after
7537         unconditional jump.
7538
7539 2006-03-17  Paul Brook  <paul@codesourcery.com>
7540
7541         * doc/install.texi: Docuemnt --with-mode.
7542         * config.gcc: Add --with-mode for arm*-*-*.
7543         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
7544
7545 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
7546
7547         * sh.c (max_labelno_before_reorg): New variable.
7548         (sh_reorg): Initialize it.
7549         (find_barrier): Check max_labelno_before_reorg before using
7550         label_to_alignment.  Take length of explicit alignment insns
7551         into account.  When seeing a UNSPECV_CONST_END, return it.
7552
7553         * sh.c (fixup_mova): Set mode of affected label to QImode.
7554         (untangle_mova): New function.
7555         (find_barrier): Use it.  Check mode of label before decrementing
7556         num_mova.
7557         (sh_reorg): Likewise.
7558         Set mode of all insns back to VOIDmode.
7559
7560         * sh.c (MOVA_LABELREF): New macro.
7561         (mova_p, fixup_mova, sh_reorg): Use it.
7562         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
7563         ADDR_DIFF_VEC matches mova.
7564
7565 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
7566
7567         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7568         with ATTRIBUTE_UNUSED.
7569
7570 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
7571
7572         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7573         pointer, instead of assuming it is possible to derive the
7574         correct args size from a call insn.
7575
7576 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7577
7578         * rtl.h (CONST_INT_P): Define.
7579         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7580         instead of GET_CODE(x) == CONST_INT.
7581         (vax_rtx_costs): Likewise.
7582         (vax_output_int_move): Likewise.
7583         (vax_output_int_add): Likewise.
7584         (legitimate_constant_address_p): Likewise.
7585         (index_term_p): Likewise.
7586         * config/vax/vax.h (PRINT_OPERAND): Likewise.
7587         * config/vax/vax.md (and<mode>3): Likewise.
7588         (ashrsi3): Likewise.
7589         (extv): Likewise.
7590         (movstricthi): Likewise.
7591         (movstrictqi): Likewise.
7592         (rotrsi3): Likewise.
7593         (five unnamed insns): Likewise.
7594
7595 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
7596
7597         * doc/tm.texi (SDB and DWARF): Add extra parameter to
7598         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
7599         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
7600         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
7601         Pass to ASM_OUTPUT_DWARF_OFFSET.
7602         * dwarf2out.c (debug_frame_section): New.
7603         (output_call_frame_info): Use debug_frame_section.  Pass it to
7604         dw2_asm_output_offset.
7605         (output_die): Pass appropriate section to dw2_asm_output_offset.
7606         (output_compilation_unit_header): Likewise.
7607         (output_pubnames): Likewise.
7608         (output_aranges): Likewise.
7609         (enum dw_val_class): Break dw_val_class_lbl_offset into
7610         dw_val_class_lineptr and dw_val_class_macptr.
7611         (add_AT_lbl_offset): Delete.
7612         (add_AT_lineptr): New.
7613         (add_AT_macptr): New.
7614         (AT_lbl): Expect a lineptr or macptr.
7615         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
7616         (attr_checksum): Likewise.
7617         (same_dw_val_p): Likewise.
7618         (size_of_die): Likewise.
7619         (value_format): Likewise.
7620         (output_die): Likewise.
7621         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
7622         add_AT_lbl_offset.
7623         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7624         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
7625         * config/darwin-protos.h (darwin_file_start): New.
7626         (darwin_asm_output_dwarf_offset): New.
7627         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7628         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
7629         darwin_file_start.
7630         * config/darwin.c (darwin_emit_unwind_label): Don't output label
7631         if not EH section; simplify.
7632         (darwin_file_start): New.
7633         (darwin_asm_output_dwarf_offset): New.
7634         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
7635         mark as 'debug'.
7636         (DEBUG_INFO_SECTION): Likewise.
7637         (DEBUG_ABBREV_SECTION): Likewise.
7638         (DEBUG_ARANGES_SECTION): Likewise.
7639         (DEBUG_MACINFO_SECTION): Likewise.
7640         (DEBUG_LINE_SECTION): Likewise.
7641         (DEBUG_LOC_SECTION): Likewise.
7642         (DEBUG_PUBNAMES_SECTION): Likewise.
7643         (DEBUG_STR_SECTION): Likewise.
7644         (DEBUG_RANGES_SECTION): Likewise.
7645         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
7646         (ASM_OUTPUT_DWARF_OFFSET): New.
7647
7648 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
7649
7650         * config.gcc (tm_defines): Always add to previous value rather
7651         than replacing it.
7652
7653 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7654
7655         * config/mips/predicates.md (splittable_const_int_operand): New,
7656         split from move_operand.
7657         (splittable_symbolic_operand): New.
7658         (move_operand): Add commentary.  Use splittable_const_int_operand.
7659         Inline mips_atomic_symbolic_constant_p.
7660         * config/mips/mips.md: Add combine splitters for handling moves
7661         of splittable_const_int_operands and splittable_symbolic_operands.
7662         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
7663         (mips_split_symbol): Declare.
7664         (mips_move_integer): Declare.
7665         * config/mips/mips.c (mips_split_p): Make global.
7666         (TARGET_MIN_ANCHOR_OFFSET): Override default.
7667         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
7668         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
7669         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7670         (mips_offset_within_object_p): Handle block symbols.
7671         (mips_atomic_symbolic_constant_p): Delete.
7672         (mips_cannot_force_const_mem): Return false for constants that
7673         mips_legitimize_move can handle.
7674         (mips_use_blocks_for_constant_p): New function.
7675         (mips_split_symbol): Make global.
7676         (mips_move_integer): Likewise.  Add a temporary register argument.
7677         (mips_legitimize_const_move): Use splittable_const_int_operand and
7678         splittable_symbolic_operand.
7679         (mips_use_anchors_for_symbol_p): New function.
7680         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7681         (mips_split_p): Declare.
7682
7683 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7684
7685         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7686         (mips*-*-linux*): Likewise.
7687
7688 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7689             Daniel Speyer  <dspeyer@wam.umd.edu>
7690
7691         PR middle-end/18259
7692         * tree-dump.c (dump_real): New function.
7693         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7694         * Makefile.in (REAL_H): New macro for dependencies on real.h.
7695         (tree-dump.o): Add $(REAL_H) to the dependencies.
7696
7697 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7698
7699         PR middle-end/21781
7700         * real.c (real_from_string): If the mantissa is zero, don't bother
7701         parsing the exponent as the result should always be zero.
7702
7703 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
7704
7705         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7706
7707 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7708
7709         * config/ia64/ia64.c (stops_p): Added explicit initialization.
7710         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7711         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7712         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7713         ia64_sched_finish_global): New static functions to implement
7714         hooks from gcc_target.sched.
7715         (spec_check_no, max_uid, pending_data_specs): New static variables.
7716         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7717         ia64_spec_check_src_p): New static functions.
7718         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7719         (TARGET_SCHED_ADJUST_COST): Removed.
7720         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7721         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7722         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7723         TARGET_SCHED_GEN_CHECK,
7724         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7725         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7726         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7727         Fixed to handle speculation checks.
7728         (rtx_needs_barrier): Fixed to handle speculative loads and
7729         their checks.
7730         (ia64_variable_issue): Added code to count speculative loads and their
7731         checks.
7732         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7733         speculative loads.
7734         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7735         New enumerations.
7736         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7737         New constants.
7738         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7739         (ia64_reorg): Reset stops_p to NULL after it is freed.
7740         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7741         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7742         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
7743         chk_a.
7744         (data_speculative, control_speculative, check_load): New attributes.
7745         (mov<mode>_advanced, mov<mode>_speculative,
7746         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7747         zero_extend<mode>di2_speculative,
7748         zero_extend<mode>di2_speculative_advanced): New patterns for
7749         data and control speculative loads.
7750         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7751         check loads.
7752         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7753         New pattern for data and control speculation checks.
7754         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7755         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7756         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7757         Auxiliary definitions for the patterns.
7758         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7759         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7760         constraints.
7761         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7762         for speculation.
7763         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7764         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7765         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7766         New resource constraints.
7767         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7768         for speculation.
7769         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7770         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7771         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7772         msched-in-control-spec, msched-ldc, msched-control-ldc,
7773         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7774         msched-prefer-non-control-spec-insns,
7775         msched-count-spec-in-critical-path): New flags to tune speculative
7776         scheduling.
7777         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7778         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7779         msched-in-control-spec, msched-ldc, msched-control-ldc,
7780         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7781         msched-prefer-non-control-spec-insns,
7782         msched-count-spec-in-critical-path): Document new flags.
7783
7784 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7785
7786         * target.h (struct spec_info_def): New opaque declaration.
7787         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7788         speculate_insn, needs_block_p, gen_check,
7789         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7790         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7791         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7792         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7793         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7794         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7795         gcc_target.sched.
7796         (TARGET_SCHED): Use new macros.
7797         * rtl.h (copy_DEPS_LIST_list): New prototype.
7798         * sched-int.h (struct sched_info): Change signature of new_ready field,
7799         adjust all initializations. New fields: add_remove_insn,
7800         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7801         region_head_or_leaf_p.
7802         (struct spec_info_def): New structure declaration.
7803         (spec_info_t): New typedef.
7804         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7805         recovery_block, orig_pat.
7806         (glat_start, glat_end): New variables declaraions.
7807         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7808         New access macros.
7809         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7810         DETACH_LIFE_INFO, USE_GLAT.
7811         (enum SPEC_SCHED_FLAGS): New enumeration.
7812         (NOTE_NOTE_BB_P): New macro.
7813         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7814         attach_life_info, debug_spec_status, check_reg_live): New functions.
7815         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7816         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7817         sched-ebb.c
7818         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7819         * ddg.c (get_block_head_tail): Adjust all uses.
7820         * modulo-sched.c (get_block_head_tail): Adjust all uses.
7821         (sms_sched_info): Initialize new fields.
7822         (contributes_to_priority): Removed.
7823         * haifa-sched.c (params.h): New include.
7824         (get_block_head_tail): Adjust all uses.
7825         (ISSUE_POINTS): New macro.
7826         (glat_start, glat_end): New global variables.
7827         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7828         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7829         old_last_basic_block, before_recovery, current_sched_info_var,
7830         rgn_n_insns, luid): New static variables.
7831         (insn_cost1): New function.  Move logic from insn_cost to here.
7832         (find_insn_reg_weight1): New function.  Move logic from
7833         find_insn_reg_weight to here.
7834         (reemit_notes, move_insn, max_issue): Change signature.
7835         (move_insn1): Removed.
7836         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7837         extend_bb): New static functions to support extension of scheduler's
7838         data structures.
7839         (generate_recovery_code, process_insn_depend_be_in_spec,
7840         begin_speculative_block, add_to_speculative_block,
7841         init_before_recovery, create_recovery_block, create_check_block_twin,
7842         fix_recovery_deps): New static functions to support
7843         generation of recovery code.
7844         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7845         restore_bb_notes, move_block_after_check, move_succs): New static
7846         functions to support ebb scheduling.
7847         (init_glat, init_glat1, attach_life_info1, free_glat): New static
7848         functions to support handling of register live information.
7849         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7850         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7851         add_jump_dependencies): New static functions.
7852         (check_cfg, has_edge_p, check_sched_flags): New static functions for
7853         consistancy checking.
7854         (debug_spec_status): New function to call from debugger.
7855         (priority): Added code to handle speculation checks.
7856         (rank_for_schedule): Added code to distinguish speculative instructions.
7857         (schedule_insn): Added code to handle speculation checks.
7858         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7859         Fixed to handle ebbs.
7860         (move_insn): Added code to handle ebb scheduling.
7861         (max_issue): Added code to use ISSUE_POINTS of instructions.
7862         (choose_ready): Added code to choose between speculative and
7863         non-speculative instructions.
7864         (schedule_block): Added code to handle ebb scheduling and scheduling of
7865         speculative instructions.
7866         (sched_init): Initialize new variables.
7867         (sched_finish): Free new variables.  Print statistics.
7868         (try_ready): Added code to handle speculative instructions.
7869         * lists.c (copy_DEPS_LIST_list): New function.
7870         * sched-deps.c (extend_dependency_caches): New function.  Move logic
7871         from create_dependency_caches to here.
7872         (get_dep_weak, ds_merge): Make global.
7873         * genattr.c (main): Code to output prototype for
7874         dfa_clear_single_insn_cache.
7875         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7876         (output_dfa_clean_insn_cache_func): Code to output
7877         dfa_clear_single_insn_cache function.
7878         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
7879         n_insns.
7880         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7881         Removed.
7882         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7883         New static variables.
7884         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7885         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7886         struct sched_info.
7887         (ebb_sched_info): Initialize new fields.
7888         (get_block_head_tail): Adjust all uses.
7889         (compute_jump_reg_dependencies): Fixed to use glat_start.
7890         (schedule_ebb): Code to remove unreachable last block.
7891         (schedule_ebbs): Added code to update register live information.
7892         * sched-rgn.c (region_sched_info): Initialize new fields.
7893         (get_block_head_tail): Adjust all uses.
7894         (last_was_jump): Removed.  Adjust users.
7895         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7896         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7897         Implement new hooks.
7898         (check_dead_notes1): New static function.
7899         (struct region): New fields: dont_calc_deps, has_real_ebb.
7900         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7901         (BB_TO_BLOCK): Fixed to handle EBBs.
7902         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7903         (ebb_head): New static variable.
7904         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7905         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7906         new fields.
7907         (compute_dom_prob_ps): New assertion.
7908         (check_live_1, update_live_1): Fixed to work with glat_start instead of
7909         global_live_at_start.
7910         (init_ready_list): New assertions.
7911         (can_schedule_ready_p): Split update code to begin_schedule_ready.
7912         (new_ready): Add support for BEGIN_CONTROL speculation.
7913         (schedule_insns): Fixed code that updates register live information
7914         to handle EBBs.
7915         (schedule_region): Fixed to handle EBBs.
7916         (init_regions): Use extend_regions and check_dead_notes1.
7917         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7918         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7919         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7920         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7921         TARGET_SCHED_GEN_CHECK,
7922         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7923         TARGET_SCHED_SET_SCHED_FLAGS): Document.
7924         * doc/invoke.texi (max-sched-insn-conflict-delay,
7925         sched-spec-prob-cutoff): Document.
7926
7927 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7928
7929         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7930         inter_tick, queue_index.
7931         (struct sched_info): Change signature of init_ready_list field.
7932         Adjust all initializations.
7933         (RESOLVED_DEPS): New access macro.
7934         (ready_add): Remove prototype.
7935         (try_ready): Add prototype.
7936         * sched-rgn.c (init_ready_list): Use try_ready.
7937         (schedule_region): Initialize
7938         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7939         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
7940         (init_ready_list): Use try_ready.
7941         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7942         * lists.c (remove_list_elem): Remove `static'.
7943         (remove_free_INSN_LIST_elem): New function.
7944         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7945         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7946         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7947         New constants.
7948         (readyp): New variable.
7949         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7950         change_queue_index, resolve_dep): New static functions.
7951         (try_ready): New function.  Adjust callers in sched-rgn.c and
7952         sched-ebb.c to use it instead of ready_add.
7953         (clock_var): Move at the begining of file.
7954         (rank_for_schedule): Fix typo.
7955         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
7956         (ready_lastpos): Enforce assertion.
7957         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
7958         update all callers.
7959         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7960         (schedule_insn): Rewrite to use try_ready and resolve_dep.
7961         (queue_to_ready): Use free_INSN_LIST_list.
7962         (early_queue_to_ready): Fix typo.
7963         (schedule_block): Init readyp.  Move init_ready_list call after the
7964         initialization of clock_var.  Fix error in rejecting insn by
7965         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
7966         that previously corrected INSN_TICKs.  Add code for handling
7967         QUEUE_INDEX.
7968         (set_priorities): Fix typo.
7969         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7970         Clarify comment and code that keeps current_sched_info->next_tail
7971         non-null.
7972
7973 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7974
7975         * sched-rgn.c (extend_rgns): New static function.
7976         (find_rgns): Use it.
7977         (gather_region_statistics, print_region_statistics): New static
7978         functions.
7979         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7980         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7981
7982 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7983             Andrey Belevantsev <abel@ispras.ru>
7984
7985         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7986         * lists.c (unused_deps_list): New variable.
7987         (free_list): Add assertions to verify the proper distinguishing
7988         between INSN_LISTs and DEPS_LISTs.
7989         (find_list_elem, remove_list_elem, remove_list_node): New static
7990         functions.
7991         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7992         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7993         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7994         (alloc_INSN_LIST): Assert that the list we're working on is indeed
7995         an INSN_LIST.
7996         (free_INSN_LIST_node): Likewise.
7997         * modulo-sched.c (current_sched_info): Initialize flags field.
7998         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7999         * rtl.def (DEPS_LIST): Define.
8000         * rtl.h: Declare new functions from lists.c.
8001         * sched-deps.c (spec_dependency_cache): New static variable.
8002         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
8003         (add_dependence): Change return type to void.  Move the logic to ...
8004         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
8005         (delete_all_dependences): Add comment about forward_dependency_cache.
8006         Handle spec_dependency_cache.  Handle DEPS_LISTs.
8007         (fixup_sched_groups): Clarify the change of priority of output
8008         and anti dependencies.
8009         (sched_analyze_2): Adjust add_dependence calls to create data
8010         speculative dependence.
8011         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
8012         Adjust all callers.  Handle DEPS_LISTS.
8013         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
8014         presence of speculation.
8015         (init_dependency_caches, free_dependency_caches):
8016         Handle spec_dependency_cache.
8017         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
8018         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
8019         New static functions.
8020         (add_or_update_back_dep, add_or_update_back_forw_dep,
8021         add_back_forw_dep, delete_back_forw_dep): New functions.
8022         * sched-int.h (ds_t, dw_t): New typedefs.
8023         (struct sched_info): Add new field flags.
8024         (struct haifa_insn_data): Add new bitfield has_internal_dep.
8025         Prototype new sched-deps.c functions.
8026         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
8027         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
8028         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
8029         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
8030         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
8031         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
8032         New constants.
8033         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
8034         New enums.
8035         * sched-rgn.c (current_sched_info): Initialize flags field.
8036         (schedule_insns): Initialize current_sched_info before the sched_init
8037         call.
8038         * sched-ebb.c (current_sched_info): Initialize flags field.
8039         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
8040         Call add_or_update_back_dep instead of add_dependence.
8041         Create control speculative dependencies.
8042         (schedule_insns): Initialize current_sched_info before the sched_init
8043         call.
8044
8045 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
8046
8047         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
8048         fs->signal_frame.
8049         (sh_fallback_frame_state): Likewise.
8050
8051 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
8052
8053         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
8054         Do switch on default_use_cxa_atexit.
8055         (powerpc*-*-darwin*): Build crt2.o on powerpc.
8056         * config/darwin-crt3.o: New.
8057         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
8058         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
8059         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
8060         OS version.
8061         * config/rs6000/t-darwin: Move crt2.o building to here.
8062         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
8063         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
8064         of __cxa_atexit.
8065
8066 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8067
8068         * config/vax/vax.c (nonindexed_address_p): Change logical negation
8069         from '! xxx' to '!xxx' for coding-style conformance.
8070         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
8071         (EXTRA_CONSTRAINT): Likewise.
8072         * config/vax/vax.md (four unnamed insns): Likewise.
8073
8074 2006-03-15  Paul Brook  <paul@codesourcery.com>
8075
8076         * config/arm/arm.c (minipool_pad): New.
8077         (add_minipool_forward_ref): Include pool alignment padding in address
8078         calculation.
8079         (push_minipool_fix): Set minipool_pad.
8080         (minipool_pad): Ditto.
8081
8082 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8083
8084         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
8085         instead of GET_CODE() == MEM and REG_P() instead of
8086         GET_CODE() == REG.
8087         (print_operand_address): Likewise.
8088         (vax_address_cost): Likewise.
8089         (vax_rtx_costs): Likewise.
8090         (vax_notice_update_cc): Likewise.
8091         (vax_output_int_add): Likewise.
8092         (INDEX_REGISTER_P): Likewise.
8093         (BASE_REGISTER_P): Likewise.
8094         (nonindexed_address_p): Likewise.
8095         (vax_mode_dependent_address_p): Likewise.
8096         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
8097         (PRINT_OPERAND): Likewise.
8098         * config/vax/vax.md (ashlsi3): Likewise.
8099         (ashlsi3): Likewise.
8100         (some more unnamed insns): Likewise.
8101
8102 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
8103
8104         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
8105         iterator-style macro.
8106         (mark_control_dependent_edges_necessary): Update the use of
8107         EXECUTE_IF_CONTROL_DEPENDENT.
8108
8109 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
8110
8111         * config/sh/predicates.md (cache_address_operand): Special.
8112         (ua_address_operand): Likewise.
8113
8114 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
8115
8116         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
8117         loop notes.
8118         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
8119
8120 2006-03-15  Andreas Schwab  <schwab@suse.de>
8121
8122         * gensupport.c (identify_predicable_attribute): Don't free p_false
8123         when it is still in use.
8124
8125 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
8126
8127         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
8128         the default setting here.
8129
8130 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
8131
8132         * tree-pass.h (pass_cfg): Remove.
8133         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
8134         * passes.c (pass_cfg): Don't run it.
8135
8136 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
8137
8138         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
8139         * reg-stack.c (stack_regs_mentioned_data): Change the type to
8140         VEC(char,heap) *.
8141         (stack_regs_mentioned): Update the uses of
8142         stack_regs_mentioned_data.  Don't access the array beyond its
8143         end.
8144         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
8145         Don't include gt-reg-stack.h.
8146
8147         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
8148         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
8149
8150         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
8151
8152         PR middle-end/26684
8153         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
8154         STACK_REGS.
8155
8156 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8157
8158         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
8159
8160 2006-03-14  Richard Guenther  <rguenther@suse.de>
8161
8162         PR tree-optimization/26672
8163         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
8164         SSA form.
8165
8166 2006-03-14  Richard Guenther  <rguenther@suse.de>
8167
8168         PR tree-optimization/26667
8169         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
8170         node for the callees.  Always allow inlining if it will shrink
8171         the function size.
8172
8173 2006-03-14  Richard Guenther  <rguenther@suse.de>
8174
8175         PR middle-end/26659
8176         * builtins.c (get_pointer_alignment): Prefer alignment
8177         information from decls over that from types.
8178
8179 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
8180
8181         PR target/26657
8182         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
8183
8184 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
8185
8186         * config/rs6000/rs6000.opt (mdlmzb): New option.
8187         (msched-prolog, msched-epilog): Use Var not Mask.
8188         * doc/invoke.texi (-mdlmzb): Document.
8189         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
8190         MASK_SCHED_PROLOG.
8191         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
8192         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
8193
8194 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
8195
8196         PR rtl-optimization/25739
8197         * bt-load.c (augment_live_range): Free tos pointer.
8198
8199         * gensupport.c (identify_predicable_attribute): Free
8200         p_false pointer.
8201         * gcov.c (create_file_names): Free name pointer.
8202
8203 2006-03-13  Roger Sayle  <roger@eyesopen.com>
8204
8205         PR middle-end/26557
8206         * stmt.c (emit_case_nodes): Handle the case where the index is a
8207         CONST_INT, where the comparison mode is specified by the index type.
8208
8209 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8210
8211         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
8212         is defined.
8213
8214 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
8215
8216         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
8217         (*branch_fp_inverted): Likewise.
8218
8219 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
8220
8221         PR middle-end/25989
8222         * omp-low.c (expand_omp_for_generic): Mark istart0
8223         and iend0 as addressable.
8224
8225 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
8226
8227         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
8228
8229 2006-03-13  Jeff Law  <law@redhat.com>
8230
8231         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
8232         virtual operands are interesting.
8233         (vrp_visit_stmt): Corresponding changes.
8234
8235 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8236
8237         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
8238         of RETS.
8239         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
8240         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
8241         * config/bfin/crti.S: Use it instead of __PIC__.
8242         * config/bfin/crtn.S: Likewise.
8243
8244         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
8245         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
8246         not if flag_pic.
8247         Lose 'G' modifier for call operand.
8248         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
8249         recognize 'G' modifier.
8250
8251 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
8252
8253         PR middle-end/18859
8254         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
8255         * stmt.c (expand_case): Likewise.
8256
8257 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8258
8259         PR rtl-optimization/26254
8260         * loop-invariant.c (seq_insns_valid_p): New function.
8261         (move_invariant_reg): Only emit new code if it is valid.
8262
8263 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8264
8265         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
8266         Removed.
8267         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
8268         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
8269         (commit_one_edge_insertion): Do not look for loop notes.
8270
8271 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8272
8273         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
8274         flag_test_coverage out of loop.
8275
8276 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8277
8278         * final.c (shorten_branches): Remove outdated comment, and turn
8279         the if branch that guards it to continue.
8280
8281 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
8282
8283         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
8284         * cfgloop.h (struct loop): Remove unused fields.
8285
8286 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
8287
8288         * doc/invoke.texi (-fdump-rtl-loop): Remove.
8289         (-dL, -fdump-rtl-loop2): Update the dump file names
8290
8291         * doc/invoke.texi: Update dump file names.
8292
8293 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
8294
8295         * predict.c (estimate_probability): Remove.
8296         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
8297         * basic-block.h (estimate_probability): Remove prototype.
8298         * passes.c (finish_optimization_passes): Dump branch prediction or
8299         profiling heuristics to the .profile tree dump.
8300         (init_optimization_passes): Unqueue pass_branch_prob.
8301
8302         * doc/invoke.texi (-fdump-rtl-bp): Remove.
8303
8304 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8305
8306         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
8307         * rtl.h (LABEL_NEXTREF): Remove field accessor.
8308
8309 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
8310
8311         * function.h (frame_offset_overflow): Declare.
8312         * function.c (frame_offset_overflow): New function.
8313         (assign_stack_local_1): Call it to detect that the offset overflows.
8314         * cfgexpand.c (alloc_stack_frame_space): Likewise.
8315
8316 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8317
8318         * config/sh/sh.c: Include alloc-pool.h.
8319         (label_ref_list_pool): New alloc pool.
8320         (label_ref_list_t): New type for lists of labels.
8321         (struct pool_node): Make wend a label_ref_list_t.
8322         (add_constant): Use the new type, eradicate LABEL_NEXTREF
8323         references.
8324         (dump_table): Likewise.
8325         (sh_reorg): Set up the alloc pool before using add_constant and
8326         dump_table, and destroy it when finishing.
8327
8328 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
8329
8330         * config/mips/mips.c: Remove redundant comment.
8331
8332 2006-03-10  Jason Merrill  <jason@redhat.com>
8333
8334         PR c/26004
8335         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
8336         the target was declared 'register'.
8337
8338 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
8339
8340         * genpreds.c (write_insn_constraint_len): Change definition of
8341         insn_constraint_len to return size_t to match the declaration.
8342
8343 2006-03-10  DJ Delorie  <dj@redhat.com>
8344
8345         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
8346         start at zero.
8347         (m32c_expand_insv): Fix test for an AND mask.
8348
8349 2006-03-10  Richard Guenther  <rguenther@suse.de>
8350
8351         PR middle-end/26565
8352         * builtins.c (get_pointer_alignment): Handle component
8353         references for field alignment.
8354
8355 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
8356
8357         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
8358         when building with libgloss.
8359         (sh*elf): Implement --without-fp option.
8360         (sh64-superh-linux*): Don't multilib.
8361
8362 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
8363
8364         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
8365
8366 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
8367
8368         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
8369         Set it when one of the replacement functions returned true.
8370         Return TODO_cleanup_cfg if cfgchanged is true.
8371         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
8372
8373 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
8374
8375         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
8376         instead of gen_lowpart.
8377
8378 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
8379
8380         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
8381         interface.
8382         (mips_output_order_conditional_branch): Declare.
8383         * config/mips/mips.h (MIPS_BRANCH): New macro.
8384         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
8385         for the comparison.  Use gen_condjump.
8386         (mips_output_conditional_branch): Rework interface to take the
8387         asm templates for a direct branch and the inverse of a direct branch.
8388         (mips_output_order_conditional_branch): New function.
8389         (mips_builtin_branch_and_move): New function.
8390         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
8391         branch condition.  Use gen_single_cc as the condition for
8392         __builtin_mips_upper_* or __builtin_mips_lower_*.
8393         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
8394         Use VOIDmode for the branch condition.
8395         * config/mips/predicates.md (order_operator): New predicate.
8396         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
8397         (branch_fp): Rename to...
8398         (*branch_fp): ...this.  Remove mode from comparison operator.
8399         Use new mips_output_conditional_branch interface.
8400         (branch_fp_inverted): Rename to...
8401         (*branch_fp_inverted): ...this and update as for *branch_fp.
8402         (*branch_zero<mode>): Rename to...
8403         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
8404         Use mips_output_order_conditional_branch.  Only accept ordered
8405         comparisons.
8406         (*branch_zero<mode>_inverted): Rename to...
8407         (*branch_order<mode>_inverted): ...this and update as for
8408         *branch_order<mode>.
8409         (*branch_equality<mode>): Accept zero as the second operand to
8410         the equality operator.  Use the new mips_output_conditional_branch
8411         interface.
8412         (*branch_equality<mode>_inverted): Likewise.
8413         (condjump): New expander.
8414         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
8415         operator.
8416         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
8417         (bc1any2t, bc1any2f): Likewise.
8418         (single_cc): New expander.
8419         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
8420
8421 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
8422
8423         * doc/md.texi: Update documentation of MIPS constraints.
8424         * config/mips/constraints.md: New file.
8425         * config/mips/mips.md: Include it.
8426         * config/mips/mips.c (mips_char_to_class): Delete.
8427         (override_options): Don't initialize mips_char_to_class.
8428         * config/mips/mips.h (mips_char_to_class): Delete.
8429         (REG_CLASS_FROM_LETTER): Delete.
8430         (CONST_OK_FOR_LETTER_P): Delete.
8431         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8432         (EXTRA_CONSTRAINT_Y): Delete.
8433         (EXTRA_CONSTRAINT_STR): Delete.
8434         (CONSTRAINT_LEN): Delete.
8435         (EXTRA_MEMORY_CONSTRAINT): Delete.
8436
8437 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
8438
8439         * tree-cfg.c (move_block_to_fn): Remove the statements from the
8440         original fn's eh regions.
8441
8442 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
8443
8444         * fold-const.c (build_range_check): Make sure to use a valid type to
8445         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
8446         transformation.
8447
8448         (range_predecessor): New static function.
8449         (range_successor): Likewise.
8450         (merge_ranges): Use them to compute predecessors and successors of
8451         range bounds.
8452
8453 2006-03-09  Roger Sayle  <roger@eyesopen.com>
8454
8455         PR middle-end/26561
8456         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
8457         X op C3, consider whether C3 overflows towards +Inf or -Inf.
8458
8459 2006-03-08  DJ Delorie  <dj@redhat.com>
8460
8461         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
8462         (addpsi3): Expand to include memory operands.  Remove
8463         reload-specific splits.
8464         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
8465         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
8466         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
8467         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
8468         (shift1_qi, shift1_hi, insv): New.
8469         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
8470         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
8471         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
8472         cond_to_int): New.
8473         * config/m32c/m32c-protos.h: Update as needed.
8474         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
8475         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
8476         Fail for unrecognized R* constraints.
8477         (m32c_cannot_change_mode_class): Be more picky about pseudos.
8478         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
8479         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
8480         Add Sp constraint.
8481         (m32c_init_libfuncs): New.
8482         (m32c_legitimate_address_p): Add debug wrapper.
8483         (m32c_rtx_costs): New.
8484         (m32c_address_cost): New.
8485         (conversions): Add 'B' prefix.
8486         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
8487         operands, or word regnames for QI operands.  'B' prints bit
8488         position.
8489         (m32c_expand_setmemhi): New.
8490         (m32c_expand_movmemhi): New.
8491         (m32c_expand_movstr): New.
8492         (m32c_expand_cmpstr): New.
8493         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
8494         (m32c_expand_neg_mulpsi3): Handle non-ints.
8495         (m32c_cmp_flg_0): New.
8496         (m32c_expand_movcc): New.
8497         (m32c_expand_insv): New.
8498         (m32c_scc_pattern): New.
8499         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
8500         a0/a1 out of SIregs.
8501         (STORE_FLAG_VALUE): New.
8502         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
8503         code macros.
8504         (no_insn): New.
8505         * config/m32c/mov.md: Make constraints more liberal.
8506         (zero_extendqihi2): Optimize r0/r1 case.
8507         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
8508         * config/m32c/predicates.md (m32c_any_operand): New.
8509         (m32c_nonimmediate_operand): New.
8510         (m32c_hl_operand): New.
8511         (m32c_r3_operand): New.
8512         (ap_operand): New.
8513         (ma_operand): New.
8514         (memsym_operand): New.
8515         (memimmed_operand): New.
8516         (a_qi_operand): New.
8517         (m32c_eqne_operator): New.
8518         (m32c_1bit8_operand): New.
8519         (m32c_1bit16_operand): New.
8520         (m32c_1mask8_operand): New.
8521         (m32c_1mask16_operand): New.
8522         * config/m32c/blkmov.md: New file.
8523         * config/m32c/t-m32c (MD_FILES): Add blkmov.
8524
8525 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
8526
8527         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
8528         unsigned to fix signed/unsigned comparison issue in
8529         DWARF2_FRAME_REG_OUT.
8530         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
8531         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
8532
8533         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
8534         of ptr into the ENABLE_CHECKING section.
8535
8536 2006-03-08  Jeff Law  <law@redhat.com>
8537
8538         * tree-vrp.c (infer_value_range): Only count pointer uses
8539         and dereferences if -fdelete-null-pointer-checks is enabled.
8540
8541         * tree-vrp.c (find_assert_locations): Infer value ranges for
8542         single use pointers, but do not create ASSERT_EXPRs for them.
8543         When a non-null range is inferred for a pointer, backwards
8544         propagate that range to other equivalent pointers through the
8545         use-def chain.
8546
8547 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
8548
8549         PR bootstrap/26500
8550         * Makefile.in (dvi, html, install-info): Invoke the corresponding
8551         language hook targets.
8552         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
8553         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
8554         if language hook targets were missing.
8555
8556 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
8557
8558         * tree-ssa-opfinalize.h: Removed.
8559         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
8560         dependency.
8561         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
8562         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
8563         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
8564         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8565         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8566         finalize_ssa_v_must_def_ops): New.
8567
8568 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
8569
8570         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8571         block as parameter.
8572
8573 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
8574
8575         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8576
8577         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8578         addresses with offsets; reorganize.
8579
8580         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8581         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8582         (expand_builtin_init_dwarf_reg_sizes): Likewise.
8583
8584 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
8585
8586         PR target/26588
8587         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
8588
8589 2006-03-08  Ben Elliston  <bje@au.ibm.com>
8590
8591         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
8592
8593 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
8594
8595         PR gomp/26238
8596         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
8597         expansion.
8598
8599 2006-03-07  Richard Guenther  <rguenther@suse.de>
8600
8601         PR tree-optimization/26587
8602         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
8603
8604 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8605
8606         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
8607
8608 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8609
8610         * hooks.c (hook_bool_mode_rtx_true): New function.
8611         * hooks.h (hook_bool_mode_rtx_true): Declare.
8612         * toplev.c (compile_file): Call output_shared_constant_pool.
8613         * varasm.c (shared_constant_pool): New variable.
8614         (assemble_start_function, assemble_end_function): Remove arguments
8615         from call to output_constant_pool.
8616         (create_constant_pool): New function, split out from...
8617         (init_varasm_status): ...here.
8618         (force_const_mem): Choose between the shared and per-function constant
8619         pools.  Set current_function_uses_const_pool when reusing old entries
8620         as well as when creating new ones.
8621         (mark_constant): Ignore data argument.
8622         (mark_constants): Remove pool argument.
8623         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
8624         to decide whether the function uses a constant pool.
8625         (output_constant_pool_contents): New function, split out from...
8626         (output_constant_pool): ...here.
8627         (output_shared_constant_pool): New function.
8628         (init_varasm_once): Initialize shared_constant_pool.
8629         * output.h (output_constant_pool): Delete.
8630         (output_shared_constant_pool): Declare.
8631         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
8632         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
8633
8634 2006-03-06  Nick Clifton  <nickc@redhat.com>
8635
8636         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
8637         flag_strength_reduce.
8638
8639 2006-03-06  Ben Elliston  <bje@au.ibm.com>
8640
8641         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
8642         x86_64-*-linux* configurations.
8643
8644         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
8645         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
8646
8647 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8648
8649         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
8650         Remove.
8651         * basic-block.h: Remove the extern for
8652         rediscover_loops_after_threading.
8653
8654         * cfgloop.c (cancel_loop): Make it static.
8655         * cfgloop.h: Remove the prototype for cancel_loop.
8656
8657         * flow.c (recompute_reg_usage): Make it static.
8658         * rtl.h: Remove the prototype for recompute_reg_usage.
8659
8660         * function.c (use_return_register): Make it static.
8661         * function.h: Remove the prototype.
8662
8663 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8664
8665         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
8666         Remove.
8667         * recog.h: Remove the prototype for
8668         validate_change_maybe_volatile.
8669
8670 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8671
8672         * rtlanal.c (replace_reg): Remove.
8673         * rtl.h: Remove the prototype for replace_reg.
8674
8675 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8676
8677         * regclass.c (reg_scan_update): Remove.
8678         (reg_scan_mark_refs): Remove the last argument.
8679         * rtl.h: Remove the prototype for reg_scan_update.
8680
8681 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8682
8683         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8684         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8685         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8686         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8687         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8688         loop-invariant.c, omp-low.c, opts.c, passes.c,
8689         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8690         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8691         tree-ssa-structalias.c, tree-ssa-threadedge.c,
8692         tree-ssa-threadupdate.c, tree-vect-patterns.c,
8693         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8694         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
8695
8696 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8697
8698         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8699         * dwarf2out.h: Remove the prototype for
8700         dwarf2out_add_library_unit_info.
8701
8702 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8703
8704         * tree.c (add_var_to_bind_expr): Remove.
8705         * tree.h: Remove the prototype for add_var_to_bind_expr.
8706
8707 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8708
8709         * regclass.c (n_non_fixed_regs): Remove.
8710         (init_reg_sets_1, globalize_reg): Remove all uses of
8711         n_non_fixed_regs.
8712         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8713
8714 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8715
8716         * rtlanal.c (insns_safe_to_move_p): Remove.
8717         * rtl.h: Remove the prototype for insns_safe_to_move_p.
8718
8719 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8720
8721         * expmed.c (expand_mult_add): Remove.
8722         * expr.h: Remove the prototype for expand_mult_add.
8723
8724 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
8725
8726         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8727         and REG_SAVED_VAL_EXP constants.
8728         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8729         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8730         Handle regs stored by value.
8731         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8732         (execute_cfa_program): Handle DW_CFA_val_offset,
8733         DW_CFA_val_offset_sf and DW_CFA_val_expression.
8734         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8735         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8736         (uw_install_context_1): Handle target regs stored by value.
8737
8738 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
8739
8740         * tree-sra.c (tree_sra): Return todoflags;
8741         (generate_one_element): Set TODO_update_smt_usage if needed.
8742         (pass_sra): Remove TODO_update_smt_usage.
8743         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8744         parameter.
8745         (tree_ssa_forward_propagate_single_use_vars): Return
8746         TODO_update_smt_usage if we need to update SMT usage.
8747         (pass_forwprop): Remove TODO_update_smt_usage.
8748
8749 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
8750
8751         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
8752         (correct_use_link): Remove reference to get_stmt_operands.
8753         (update_stmt_operands): Likewise.
8754         (get_modify_expr_operands): New function factored out of
8755         parse_ssa_operands and get_expr_operands.
8756         Try to create V_MUST_DEFs for LHS by default.
8757         (get_expr_operands) <case MODIFY_EXPR>: Call
8758         get_modify_expr_operands.
8759         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8760         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8761         (parse_ssa_operands) <case MODIFY_EXPR>: Call
8762         get_modify_expr_operands.
8763
8764 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
8765
8766         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8767         * tree-flow.h: Remove the prototype for
8768         referenced_var_lookup_if_exists.
8769
8770 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
8771
8772         PR rtl-optimization/26345
8773         PR target/19061
8774         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8775
8776 2006-03-03  Roger Sayle  <roger@eyesopen.com>
8777
8778         PR tree-optimization/26524
8779         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8780         fold_convert to create a constant of the appropriate type.
8781
8782 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
8783
8784         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8785         SYMBOL_REF_IN_BLOCK_P.
8786         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8787         of SYMBOL_FLAG_IN_BLOCK.
8788         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8789         instead of SYMBOL_REF_IN_BLOCK_P.
8790         * explow.c (use_anchored_address): Likewise.
8791         * rtl.c (rtx_size): Likewise.
8792         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8793         instead of SYMBOL_FLAG_IN_BLOCK.
8794         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8795         SYMBOL_REF_IN_BLOCK_P.
8796         (assemble_variable): Likewise.
8797         (output_constant_def_contents): Likewise.
8798         (output_constant_pool): Likewise.
8799         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8800         instead of SYMBOL_FLAG_IN_BLOCK.
8801         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8802         SYMBOL_REF_IN_BLOCK_P.
8803         (SYMBOL_REF_BLOCK): Likewise.
8804         (SYMBOL_REF_OFFSET): Likewise.
8805         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8806         SYMBOL_REF_IN_BLOCK_P.
8807         (SYMBOL_FLAG_IN_BLOCK): Replace with...
8808         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8809         (SYMBOL_REF_IN_BLOCK_P): Replace with...
8810         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8811
8812 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
8813
8814         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8815
8816 2006-03-02  Roger Sayle  <roger@eyesopen.com>
8817
8818         * simplify-rtx.c (simplify_unary_operation): When simplifying
8819         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8820         that we perform the right shift in the appropriate mode, and
8821         then extend or truncate the result to requested mode.
8822
8823 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
8824
8825         * gengtype.c (main): Handle double_int type.
8826         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8827         * double-int.c: New file.
8828         * double-int.h: New file.
8829         * system.h: Include doubleint.h.
8830         * Makefile.in (SYSTEM_H): Include double-int.h.
8831         (double-int.o): Add.
8832
8833 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
8834
8835         PR bootstrap/26478
8836         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8837         copying over it.
8838
8839 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8840
8841         * tree-vrp.c (remove_range_assertions): Do not update statements
8842         unnecessarily.
8843
8844 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8845
8846         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8847         cleanup.
8848         * gcse.c (rest_of_handle_gcse): Ditto.
8849         * except.c (gate_handle_eh): Ditto.
8850         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8851         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8852
8853 2006-03-02  Eric Christopher  <echristo@apple.com>
8854
8855         * config/i386/i386.c (machopic_output_stub): Add indirection to
8856         jump.
8857
8858 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8859
8860         * loop.c: Removed.
8861
8862 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
8863
8864         Sun Niagara specific optimizations.
8865         * config.gcc: Recognize niagara as target.
8866         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8867         (TARGET_CPU_niagara): Define.
8868         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8869         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8870         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8871         (ASM_CPU_SPEC): Likewise.
8872         (PROCESSOR_NIAGARA): New enum entry.
8873         (REGISTER_MOVE_COST): Handle Niagara.
8874         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8875         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8876         (sparc_override_options): Recognize "niagara", set appropriate
8877         default MASK_* values for it, and align functions to 32-bytes
8878         by default just like ULTRASPARC/ULTRASPARC3.
8879         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8880         (sparc64_initialize_trampoline): Likewise.
8881         (sparc_use_sched_lookahead): Use zero for niagara.
8882         (sparc_issue_rate): Use one for niagara.
8883         * config/sparc/niagara.md: New file.
8884         * config/sparc/sparc.md: Include it.
8885         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8886         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8887         when default cpu is niagara.
8888         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8889         (ASM_CPU_SPEC): Likewise.
8890         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8891         when default cpu is niagara.
8892         (ASM_CPU_SPEC): Handle -mcpu=niagara.
8893         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8894         just like v9/ultrasparc/ultrasparc3.
8895         * doc/invoke.texi: Add documentation for "niagara" and improve
8896         existing documentation for ultrasparc variants.
8897
8898 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
8899
8900         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8901
8902 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
8903
8904         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8905         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8906         and say that only one is needed.
8907         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8908         * target.h (have_switchable_bss_sections): New hook.
8909         * explow.c (use_anchored_address): Check that the symbol is in a block.
8910         * varasm.c (tls_comm_section, comm_section, lcomm_section)
8911         (bss_noswitch_section): New variables.
8912         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8913         (get_noswitch_section): New function.
8914         (get_block_for_section): Allow SECT to be null.
8915         (unlikely_text_section_p): Use SECTION_STYLE.
8916         (bss_initializer_p): New function.
8917         (get_variable_section): Move earlier in file.  Take a new argument,
8918         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
8919         Return one of the new *_sections in such cases.
8920         (get_block_for_decl): New function, extracting some logic from
8921         use_blocks_for_decl_p.
8922         (change_symbol_section): Remove in favor of...
8923         (change_symbol_block): ...this new function.
8924         (use_blocks_for_decl_p): Remove checks now performed by
8925         get_block_for_decl.
8926         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8927         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8928         (emit_local, emit_bss, emit_common): ...these new functions.
8929         Return true if the alignment was honored.
8930         (emit_tls_common): New function.
8931         (asm_emit_uninitialised): Delete.
8932         (assemble_variable_noswitch): New function, split out from...
8933         (assemble_variable): ...here.  Don't make decisions about common
8934         variables here.  Globalize all public decls that go into non-common
8935         sections.  Check whether SYMBOL_REF_BLOCK is null.
8936         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8937         (output_constant_pool): Likewise.
8938         (init_varasm_once): Initialize the new section variables.
8939         (have_global_bss_p): New function.
8940         (categorize_decl_for_section): Use bss_initializer_p.
8941         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
8942         (place_block_symbol): Assert that the symbol must be in a block.
8943         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8944         (TARGET_INITIALIZER): Include it.
8945         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8946         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8947         (SECTION_MACH_DEP): Bump by two.
8948         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8949         (unnamed_section): Mention SECTION_UNNAMED in comment.
8950         (named_section): Likewise SECTION_NAMED.
8951         (noswitch_section_callback): New type.
8952         (noswitch_section): New structure.
8953         (section): Add a noswitch_section alternative.
8954         (SECTION_STYLE): New macro.
8955         (tls_comm_section, comm_section, lcomm_section): Declare.
8956         (bss_noswitch_section, have_global_bss_p): Declare.
8957         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8958         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8959         Override.
8960         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8961         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8962         Override.
8963
8964 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
8965
8966         * tree-vrp.c (execute_vrp): Return value.
8967         * regrename.c (rest_of_handle_regrename): Ditto.
8968         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8969         * tree-complex.c (tree_lower_complex): Ditto.
8970         (tree_lower_complex_O0): Ditto.
8971         * tracer.c (rest_of_handle_tracer): Ditto.
8972         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8973         * postreload.c (rest_of_handle_postreload): Ditto.
8974         * tree-tailcall.c (execute_tail_recursion): Ditto.
8975         (execute_tail_calls): Ditto.
8976         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8977         * tree.h (init_function_for_compilation): Ditto.
8978         * ipa-cp.c (ipcp_driver): Ditto.
8979         * tree-scalar-evolution.c (scev_const_prop): Ditto.
8980         * tree-scalar-evolution.h (scev_const_prop): Ditto.
8981         * final.c (compute_alignments): Ditto.
8982         (rest_of_handle_final): Ditto.
8983         (rest_of_handle_shorten_branches): Ditto.
8984         (rest_of_clean_state): Ditto.
8985         * omp-low.c (execute_expand_omp): Ditto.
8986         (execute_lower_omp): Ditto.
8987         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8988         * ipa-reference.c (static_execute): Ditto.
8989         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8990         * reorg.c (rest_of_handle_delay_slots): Ditto.
8991         (rest_of_handle_machine_reorg): Ditto.
8992         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8993         * flow.c (recompute_reg_usage): Ditto.
8994         (rest_of_handle_remove_death_notes): Ditto.
8995         (rest_of_handle_life): Ditto.
8996         (rest_of_handle_flow2): Ditto.
8997         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8998         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8999         (do_ssa_store_ccp): Ditto.
9000         (execute_fold_all_builtins): Ditto.
9001         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
9002         * modulo-sched.c (rest_of_handle_sms): Ditto.
9003         * ipa-pure-const.c (static_execute): Ditto.
9004         * cse.c (rest_of_handle_cse): Ditto.
9005         (rest_of_handle_cse2): Ditto.
9006         * web.c (rest_of_handle_web): Ditto.
9007         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
9008         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
9009         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
9010         * tree-nrv.c (tree_nrv): Ditto.
9011         (execute_return_slot_opt): Ditto.
9012         * tree-ssa-alias.c (compute_may_aliases): Ditto.
9013         (create_structure_vars): Ditto.
9014         * loop-init.c (rtl_loop_init): Ditto.
9015         (rtl_loop_done): Ditto.
9016         (rtl_move_loop_invariants): Ditto.
9017         (rtl_unswitch): Ditto.
9018         (rtl_unroll_and_peel_loops): Ditto.
9019         (rtl_doloop): Ditto.
9020         * gimple-low.c (lower_function_body): Ditto.
9021         (mark_used_blocks): Ditto.
9022         * tree-ssa-sink.c (execute_sink_code): Ditto.
9023         * ipa-inline.c (cgraph_decide_inlining): Ditto.
9024         (cgraph_early_inlining): Ditto.
9025         * global.c (rest_of_handle_global_alloc): Ditto.
9026         * jump.c (cleanup_barriers): Ditto.
9027         (purge_line_number_notes): Ditto.
9028         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
9029         (rest_of_handle_if_after_reload): Ditto.
9030         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
9031         (tree_ssa_loop_im): Ditto.
9032         (tree_ssa_loop_unswitch): Ditto.
9033         (tree_vectorize): Ditto.
9034         (tree_linear_transform): Ditto.
9035         (tree_ssa_loop_ivcanon): Ditto.
9036         (tree_ssa_empty_loop): Ditto.
9037         (tree_ssa_loop_bounds): Ditto.
9038         (tree_complete_unroll): Ditto.
9039         (tree_ssa_loop_prefetch): Ditto.
9040         (tree_ssa_loop_ivopts): Ditto.
9041         (tree_ssa_loop_done): Ditto.
9042         * predict.c (tree_estimate_probability): Ditto.
9043         * recog.c (split_all_insns_noflow): Ditto.
9044         (rest_of_handle_peephole2): Ditto.
9045         (rest_of_handle_split_all_insns): Ditto.
9046         * tree-eh.c (lower_eh_constructs): Ditto.
9047         * regmove.c (rest_of_handle_regmove): Ditto.
9048         (rest_of_handle_stack_adjustments): Ditto.
9049         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
9050         * function.c (instantiate_virtual_regs): Ditto.
9051         (init_function_for_compilation): Ditto.
9052         (rest_of_handle_check_leaf_regs): Ditto.
9053         * gcse.c (rest_of_handle_jump_bypass): Ditto.
9054         (rest_of_handle_gcse): Ditto.
9055         * ipa-type-escape.c (type_escape_execute): Ditto.
9056         * alias.c (rest_of_handle_cfg): Ditto.
9057         * tree-if-conv.c (main_tree_if_conversion): Ditto.
9058         * profile.c (rest_of_handle_branch_prob): Ditto.
9059         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
9060         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
9061         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
9062         * tree-dfa.c (find_referenced_vars): Ditto.
9063         * except.c (set_nothrow_function_flags): Ditto.
9064         (convert_to_eh_region_ranges): Ditto.
9065         (rest_of_handle_eh): Ditto.
9066         * emit-rtl.c (unshare_all_rtl): Ditto.
9067         (remove_unnecessary_notes): Ditto.
9068         * except.h (set_nothrow_function_flags): Ditto.
9069         (convert_to_eh_region_ranges): Ditto.
9070         * cfgexpand.c (tree_expand_cfg): Ditto.
9071         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
9072         * tree-ssa-pre.c (do_pre): Ditto.
9073         (execute_fre): Ditto.
9074         * cfgcleanup.c (rest_of_handle_jump): Ditto.
9075         (rest_of_handle_jump2): Ditto.
9076         * tree-sra.c (tree_sra): Ditto.
9077         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
9078         (execute_mudflap_function_decls): Ditto.
9079         * tree-ssa-copy.c (do_copy_prop): Ditto.
9080         (do_store_copy_prop): Ditto.
9081         * ipa-prop.h (ipcp_driver): Ditto.
9082         * cfglayout.c (insn_locators_initialize): Ditto.
9083         * tree-ssa-forwprop.c
9084         (tree_ssa_forward_propagate_single_use_vars): Ditto.
9085         * cfglayout.h (insn_locators_initialize): Ditto.
9086         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
9087         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
9088         (execute_late_warn_uninitialized): Ditto.
9089         * rtl.h (cleanup_barriers): Ditto.
9090         (split_all_insns_noflow): Ditto.
9091         (purge_line_number_notes): Ditto.
9092         (unshare_all_rtl): Ditto.
9093         (remove_unnecessary_notes): Ditto.
9094         (recompute_reg_usage): Ditto.
9095         (variable_tracking_main): Ditto.
9096         * integrate.c (emit_initial_value_sets): Ditto.
9097         * integrate.h (emit_initial_value_sets): Ditto.
9098         * tree-optimize.c (execute_free_datastructures): Ditto
9099         (execute_free_cfg_annotations): Ditto.
9100         (execute_fixup_cfg): Ditto.
9101         (execute_cleanup_cfg_pre_ipa): Ditto.
9102         (execute_cleanup_cfg_post_optimizing): Ditto.
9103         (execute_init_datastructures): Ditto.
9104         * tree-object-size.c (compute_object_sizes): Ditto.
9105         * combine.c (rest_of_handle_combine): Ditto.
9106         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
9107         * bb-reorder.c (duplicate_computed_gotos): Ditto.
9108         (rest_of_handle_reorder_blocks): Ditto.
9109         (rest_of_handle_partition_blocks): Ditto.
9110         * var-tracking.c (variable_tracking_main): Ditto.
9111         * tree-profile.c (tree_profiling): Ditto.
9112         * tree-vect-generic.c (expand_vector_operations): Ditto.
9113         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
9114         * sched-rgn.c (rest_of_handle_sched): Ditto.
9115         (rest_of_handle_sched2): Ditto.
9116         * basic-block.h (free_bb_insn): Ditto.
9117         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
9118         * tree-cfg.c (execute_build_cfg): Ditto.
9119         (remove_useless_stmts): Ditto.
9120         (split_critical_edges): Ditto.
9121         (execute_warn_function_return): Ditto.
9122         (execute_warn_function_noreturn): Ditto.
9123         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
9124         * cfgrtl.c (free_bb_for_insn): Ditto.
9125         * passes.c (execute_one_pass): Run additional
9126         todos returned by execute function.
9127         * tree-pass.h (struct tree_opt_pass): Make execute
9128         return a value.
9129
9130 2006-03-02  Richard Guenther  <rguenther@suse.de>
9131
9132         * tree-ssa-alias.c (find_used_portions): Consider taking
9133         the address as making the variable not write-only.
9134
9135 2006-03-02  Nick Clifton  <nickc@redhat.com>
9136
9137         * config.gcc (default_use_cxa_atexit): Extend the description of
9138         this configure variable.  Set its default value to "yes" for
9139         Linux, NetBSD and ELF targets on the assumption that they will
9140         use C libraries with the __cxa_atexit function.
9141
9142 2006-03-02  Ben Elliston  <bje@au.ibm.com>
9143
9144         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
9145         parameter as unused to suppress a build warning.
9146
9147 2006-03-02  Ben Elliston  <bje@au.ibm.com>
9148
9149         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
9150         config/dfp-bit.c.
9151
9152 2006-03-01  Roger Sayle  <roger@eyesopen.com>
9153
9154         PR other/26489
9155         * gthr-posix.h (__gthrw2): Define to take three parameters, the
9156         declared name, the weak reference name, and the typeof name.
9157         (__gthrw): Avoid expanding the declared name suffix.
9158         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
9159
9160 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
9161
9162         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
9163         from DWARF 3.
9164         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
9165         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
9166         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
9167         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
9168         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
9169         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
9170         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
9171         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
9172         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
9173         DW_DS_leading_separate, DW_DS_trailing_separate): New.
9174         (DW_END_default, DW_END_big, DW_END_little): New.
9175         (DW_END_lo_user, DW_END_hi_user): Define.
9176         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
9177         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
9178         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
9179         DW_LANG_D): New.
9180
9181 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9182
9183         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
9184         Update all users.
9185         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
9186         Update all users.
9187         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
9188         Update all users.
9189         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
9190         Update all users.
9191         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
9192         to 'symbol_mem_tag'.
9193         Update all users.
9194         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
9195         rename.
9196
9197 2006-03-01  Roger Sayle  <roger@eyesopen.com>
9198
9199         * builtins.c (fold_builtin_copysign): Delete unreachable code.
9200
9201 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9202
9203         PR target/25761
9204         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
9205         MACHO_DYNAMIC_NO_PIC_P.
9206         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
9207
9208 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9209
9210         PR target/26389
9211         * config/darwin-protos.h (darwin_asm_output_anchor):
9212         Declare.
9213         * config/darwin-sections.def (cstring_section):
9214         Add SECTION_MERGE to the flags.
9215         (literal4_section): Likewise.
9216         (literal8_section): Likewise.
9217         (objc_selector_refs_section): Likewise.
9218         (objc_cls_refs_section): Likewise.
9219         * config/darwin.c (darwin_asm_output_anchor): New
9220         function.
9221         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9222
9223 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
9224
9225         Fix PR tree-optimization/26443
9226         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
9227         to todo and PROP_tmt_usage to properties_destroyed.
9228         * tree-ssa-ccp.c (pass_ccp): Ditto.
9229         (pass_store_ccp): Ditto.
9230         * tree-ssa-dom.c (pass_dominator): Ditto.
9231
9232 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9233
9234         * tree-ssa-operands.c: Cleanup whitespace.
9235         (get_asm_expr_operands): Move before first invocation.
9236         (get_indirect_ref_operands): Likewise.
9237         (get_tmr_operands): Likewise.
9238         (get_call_expr_operands): Likewise.
9239         (append_def): Likewise.
9240         (append_use): Likewise.
9241         (append_v_may_def): Likewise.
9242         (append_v_must_def): Likewise.
9243         (add_call_clobber_ops): Likewise.
9244         (add_call_read_ops): Likewise.
9245         (add_stmt_operand): Likewise.
9246         (add_virtual_operand): Likewise.
9247         (build_ssa_operands): Likewise.
9248
9249 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
9250
9251         PR middle-end/26022
9252         Revert:
9253         PR middle-end/24437
9254         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
9255         with a call expr to ...
9256         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
9257
9258 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
9259
9260         * tree-vrp.c (extract_range_from_assert): Remove special
9261         handling for types with super-types.
9262
9263 2006-03-01  Ben Elliston  <bje@au.ibm.com>
9264
9265         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
9266         and powerpc64-*-linux* configurations.
9267         * config/t-dfprules: New file.
9268
9269         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
9270         Compile dfp-bit.c from the source directory using -DWIDTH and
9271         $DFP_CFLAGS to control the compilation of that file, rather than
9272         generating width-specific versions in the build directory.
9273         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
9274         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
9275
9276 2006-02-28  Zack Weinberg  <zackw@panix.com>
9277
9278         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
9279         continues to work.
9280
9281 2006-02-28  Eric Christopher  <echristo@apple.com>
9282
9283         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
9284         Set up IN_LIBGCC definition of TARGET_64BIT.
9285         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
9286
9287 2006-02-28  Roger Sayle  <roger@eyesopen.com>
9288
9289         PR middle-end/14752
9290         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
9291         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
9292         cases via the construction of "expr != 0".
9293
9294 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9295
9296         * alias.c (alias_invariant, alias_invariant_size): Remove.
9297         (record_base_value): Remove.
9298         (memrefs_conflict_p): Don't look at alias_invariant.
9299         (end_alias_analysis): Don't free it.
9300         * alias.h (record_base_value): Remove prototype.
9301
9302 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
9303             Adam Nemet  <anemet@caviumnetworks.com>
9304
9305         * rtl.h (truncated_to_mode): Declare it.
9306         (struct rtl_hooks): Add reg_truncated_to_mode hook.
9307         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
9308         (RTL_HOOKS_INITIALIZER): Include it.
9309         * rtlhooks.c (reg_truncated_to_mode_general): New function.
9310         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
9311         reg_truncated_to_mode.
9312         * rtlanal.c (truncated_to_mode): Define it.
9313         * simplify-rtx.c (simplify_unary_operation_1): Use it.
9314
9315 2006-02-28  Jeff Law  <law@redhat.com>
9316
9317         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
9318         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
9319         the range allowed by TYPE_PRECISION.
9320
9321         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
9322
9323 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
9324
9325         PR tree-optimization/26419
9326         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
9327         values of n.
9328
9329 2006-02-27  Zack Weinberg  <zackw@panix.com>
9330
9331         * doc/md.texi: Fix typo in previous change.
9332
9333 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
9334
9335         * df.c: Remove.
9336
9337 2006-02-27  Zack Weinberg  <zackw@panix.com>
9338
9339         * rtl.def (define_constraint, define_register_constraint)
9340         (define_memory_constraint, define_address_constraint): New MD forms.
9341         * gensupport.c (process_rtx): Put define_constraint etc on the
9342         predicate queue.
9343         * genpreds.c (process_define_predicate): Adjust comment.  Validate
9344         the name, and call validate_exp to validate the expression.
9345         (mark_mode_tests, write_extract_subexp): Can assume correct input.
9346         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
9347         all callers changed.
9348         (validate_exp, needs_variable, struct constraint_data)
9349         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
9350         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
9351         (const_dbl_constraints, constraint_max_namelen)
9352         (have_register_constraints, have_memory_constraints)
9353         (have_address_constraints, have_address_constraints)
9354         (have_extra_constraints, have_const_int_constraints)
9355         (have_const_dbl_constraints, mangle, add_constraint)
9356         (process_define_constraint, process_define_register_constraint)
9357         (write_enum_constraint_num, write_lookup_constraint)
9358         (write_insn_constraint_len, write_regclass_for_constraint)
9359         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
9360         (write_insn_extra_memory_constraint)
9361         (write_insn_extra_address_constraint)
9362         (write_satisfies_constraint_fns): New.
9363         (write_tm_preds_h): If we have new-style constraint definitions,
9364         prototype the functions generated from them, and define the
9365         old constraint interface (still used by generic code) in terms of
9366         those functions.
9367         (write_insn_preds_c): If we have new-style constraint definitions,
9368         generate all relevant functions from those definitions.
9369         (main): Handle define_constraint etc.
9370         * genoutput.c (struct constraint_data, indep_constraints)
9371         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
9372         (mdep_constraint_len): New data structures and functions, defined
9373         #ifdef USE_MD_CONSTRAINTS.
9374         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
9375         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
9376         use new logic to validate operand constraints against constraint
9377         definitions.
9378         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
9379         defined.
9380         * defaults.h: If none of the old-style constraint macros are
9381         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
9382         old-style macros; and poison REG_CLASS_FROM_LETTER,
9383         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
9384         EXTRA_CONSTRAINT.
9385         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
9386         * doc/md.texi: Document new constraint-definition mechanism and the
9387         C interface it provides.  Remove references to old mechanism
9388         elsewhere in the document.
9389         (Machine Constraints): Use pathnames relative to gcc directory,
9390         i.e. config/ARCH/FILE.  Change i386 section to refer to
9391         config/i386/predicates.md; update that section to match docstrings.
9392         * doc/tm.texi: Move all documentation of the old constraint-
9393         definition macros to their own section, clearly mark as obsolete.
9394
9395         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
9396         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
9397         definitions.
9398         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
9399         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9400         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
9401         constraint strings.
9402         (splits and peepholes): Use satisfies_constraint_*.
9403         * config/i386/i386.c (memory_address_length)
9404         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
9405
9406 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
9407
9408         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
9409         scalar operation to be put back into the loop.
9410
9411 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
9412
9413         PR other/26208
9414         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
9415         (extract_cie_info): Handle S flag in augmentation string.
9416         (execute_cfa_program): If context->signal_frame, execute also
9417         fs->pc == context->ra instructions.
9418         (uw_frame_state_for): If context->signal_frame, don't subtract one
9419         from context->ra to find FDE.
9420         (uw_update_context_1): Set context->signal_frame to
9421         fs->signal_frame.
9422         (_Unwind_GetIPInfo): New function.
9423         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
9424         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
9425         of _Unwind_GetIP.
9426         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
9427         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
9428         * unwind-compat.c (_Unwind_GetIPInfo): New function.
9429         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
9430         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
9431         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
9432         * config/i386/linux-unwind.h (x86_fallback_frame_state,
9433         x86_64_fallback_frame_state): Set fs->signal_frame.
9434         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
9435         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
9436         (frob_update_context): Likewise.  Workaround missing S flag in
9437         Linux 2.6.12 - 2.6.16 kernel vDSOs.
9438         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
9439         Remove the psw_addr + 1 hack.
9440
9441 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
9442
9443         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
9444         with aggregates here.
9445         (find_func_aliases): Remove code for &<aggregate> from here.
9446
9447 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9448
9449         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
9450         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
9451         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
9452         as (X & C) ne/eq 0.
9453
9454 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9455
9456         PR middle-end/19983
9457         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
9458
9459 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
9460
9461         * opts.c (decode_options): Do not handle flag_strength_reduce.
9462         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
9463         and OPT_fstrength_reduce.
9464         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
9465         flag_prefetch_loop_arrays for being nonzero.
9466         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
9467         no-ops.
9468         (fprefetch-loop-arrays-rtl): Removed.
9469         (flag_prefetch_loop_arrays): Do not specify the value.
9470
9471         * doc/passes.texi: Update documentation of loop optimizer
9472         passes.
9473         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
9474         -frerun-loop-opt): Remove.
9475
9476 2006-02-26  Richard Guenther  <rguenther@suse.de>
9477
9478         PR tree-optimization/26421
9479         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
9480         in function calls that are ADDR_EXPRs as using the whole structure.
9481
9482 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9483
9484         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
9485         * tree-pass.h (pass_loop_optimize): Remove.
9486         * passes.c (pass_loop_optimize): Never run it.
9487         * toplev.c (backend_init): Don't call init_loop.
9488         * opts.c (flag_loop_optimize_set): Remove.
9489         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
9490         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
9491         the old RTL loop optimizer when profiling enabled.
9492         * predict.c (tree_estimate_probability): Always strip builtin_expect.
9493         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
9494         pre-headers for the sake of the old RTL loop optimizer.
9495         * Makefile.in: Remove all references to loop.o.
9496
9497         * doc/invoke.texi: Remove all references to -floop-optimize
9498         and -frerun-loop-opt.
9499
9500 2006-02-26  Zack Weinberg  <zackw@panix.com>
9501
9502         * doc/md.texi (Machine Constraints): Refer to all files with paths
9503         relative to gcc directory (i.e. config/CPU/file).  Add missing
9504         @table @code ... @end table to M32C subsection.
9505
9506 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9507
9508         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
9509         (X & 1) == 0.
9510         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
9511
9512 2006-02-26  Roger Sayle  <roger@eyesopen.com>
9513             James A. Morrison  <phython@gcc.gnu.org>
9514
9515         PR middle-end/21137
9516         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
9517         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
9518         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
9519         signedness of the shift operation.
9520
9521 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
9522
9523         PR tree-optimization/26359
9524         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
9525
9526 2006-02-25  Roger Sayle  <roger@eyesopen.com>
9527
9528         * simplify-rtx.c (simplify_relational_operation_1): Simplify
9529         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
9530         as X == 0, and some symmetry related transformations.
9531         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
9532
9533 2006-02-25  Roger Sayle  <roger@eyesopen.com>
9534
9535         PR middle-end/23673
9536         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
9537         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
9538         symmetry related transformations.  Fold (X^C1) == C2 as
9539         X == (C1^C2).
9540
9541 2006-02-25  Juergen Weigert  <jw@suse.de>
9542         Richard Guenther  <rguenther@suse.de>
9543
9544         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
9545
9546 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
9547
9548         * combine.c (gen_lowpart_or_truncate): Call
9549         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
9550
9551 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
9552
9553         * doc/invoke.texi: Move -fopenmp description to "Options for
9554         Code Generation".
9555         Remove reference to -lgomp.
9556
9557 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
9558
9559         * doc/install.texi: Require GNU tar version 1.14.
9560
9561 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
9562
9563         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
9564         * doc/invoke.texi (C++ Dialect Options): Document
9565         -fno-use-cxa-get-exception-ptr.
9566         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9567         * configure: Regenerate.
9568         * c.opt (fuse-cxa-get-exception-ptr): New.
9569         * c-opts.c (c_common_handle_option): Handle
9570         OPT_fuse_cxa_get_exception_ptr.
9571         * c-common.c (flag_use_cxa_atexit): Update documentation.
9572         (flag_use_cxa_get_exception_ptr): New.
9573         * c-common.h (flag_use_cxa_get_exception_ptr): New.
9574         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9575         documentation.
9576         (C_COMMON_OVERRIDE_OPTIONS): New.
9577
9578 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9579
9580         PR middle-end/24952
9581         * combine.c (try_combine): Explicitly check whether GET_CODE is
9582         a SET or a CLOBBER, instead on checking that it isn't a USE.
9583
9584 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9585
9586         * fold-const.c (fold_comparison): New subroutine of fold_binary
9587         containing transformations common to both the equality and
9588         ordering relational operators, factored out of fold_binary.
9589         (fold_binary): Separate out the equality operators (EQ_EXPR
9590         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
9591         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
9592         transformations common to both.
9593         (fold_div_compare): Fix latent bugs in the previously unreachable
9594         LT_EXPR and GE_EXPR cases.
9595
9596 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
9597
9598         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
9599         decl libname for clog to __clog on AIX.
9600
9601         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
9602
9603 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
9604
9605         PR target/26453
9606         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
9607         output traceback table for thunks.  Localise rs6000_stack_info call.
9608
9609 2006-02-23  Roger Sayle  <roger@eyesopen.com>
9610             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9611
9612         * gthr-posix.h (__gthrw): Fix typo in comment.
9613
9614 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
9615
9616         * doc/cpp.texi (Character sets): Document that we do support
9617         input files to be in any character set.
9618
9619 2006-02-23  Jeff Law  <law@redhat.com>
9620
9621         * tree.h (PHI_ARG_NONZERO): Remove.
9622         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
9623         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
9624         node to the new node.
9625
9626         PR tree-optimization/26425
9627         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
9628         min/max, then assume its varying.
9629
9630 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9631
9632         PR rtl-optimization/26316
9633         * rtlanal.c (enum may_trap_p_flags): New.
9634         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
9635         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
9636         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
9637         (may_trap_after_code_motion_p): New function.
9638         * loop-invariant.c (find_identical_invariants): Fix dump formating.
9639         (find_invariant_insn): Use may_trap_after_code_motion_p.
9640         * rtl.h (may_trap_after_code_motion_p): Declare.
9641
9642 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9643
9644         * emit-rtl.c (immed_double_const): Cleanup.
9645
9646 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
9647
9648         Fix PR tree-optimization/26376
9649         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
9650         remove assert.
9651
9652 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9653
9654         PR middle-end/26412
9655         * gimplify.c (omp_add_variable): Guard variable size decl test with
9656         DECL_SIZE (decl) check.
9657
9658 2006-02-23  Richard Guenther  <rguenther@suse.de>
9659
9660         PR middle-end/26439
9661         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
9662         like aggregate types.
9663
9664 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9665
9666         * configure.ac: Add --with{,out}-long-double-128 configure option.
9667         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
9668         * configure: Rebuilt.
9669         * config.in: Rebuilt.
9670         * doc/install.texi (Options specification): Document
9671         --with-long-double-128.
9672
9673         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9674         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9675         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9676         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9677
9678 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
9679
9680         * config/s390/s390.c (override_options): Handle
9681         TARGET_DEFAULT_LONG_DOUBLE_128.
9682
9683         * config/alpha/alpha.c (override_options): Handle
9684         TARGET_DEFAULT_LONG_DOUBLE_128.
9685
9686         * config/sparc/sparc.c (sparc_override_options): Handle
9687         TARGET_DEFAULT_LONG_DOUBLE_128.
9688
9689 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
9690
9691         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9692         (real-install-headers-tar, real-install-headers-cpio)
9693         (real-install-headers-cp): New targets.
9694
9695 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
9696
9697         * tree.h (variable_section): Delete.
9698         * varasm.c (variable_section): Delete.
9699
9700 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
9701
9702         * install.texi: Add notes on install.texi2html.
9703         (Building in parallel): Do not use footnotes.
9704
9705 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
9706
9707         PR libgomp/26234
9708         * doc/install.texi (Configuration): Document --disable-libgomp.
9709
9710 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
9711
9712         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9713
9714 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9715
9716         * config/i386/sse.md (vec_extractv2df_1_sse): New.
9717         (vec_extractv2df_0_sse): New.
9718
9719 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9720
9721         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9722         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9723         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9724         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
9725         to the result of the expression.
9726         (def_cfa_1): Adjust.
9727         (frame_pointer_cfa_offset): Rename to...
9728         (frame_pointer_fb_offset): ... this.  Adjust all uses.
9729         (convert_cfa_to_loc_list): Rename to...
9730         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
9731         Pass it on to build_cfa_loc.
9732         (compute_frame_pointer_to_cfa_displacement): Rename to...
9733         (compute_frame_pointer_to_fb_displacement): ... this.  New
9734         offset parameter.  Use it in computation.
9735         (gen_subprogram_die): Compute cfa_fb_offset with the new
9736         macro, and use it to compute the fb loc list and the
9737         displacement.
9738
9739 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
9740
9741         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
9742         replaced with register_operand.
9743         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9744         non-DREG is expensive.
9745         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9746         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9747         involving memory.
9748
9749 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
9750
9751         * doc/install.texi2html: Use set -e.
9752
9753 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
9754
9755         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9756         (ASM_OUTPUT_SHARED_LOCAL): Delete.
9757         * doc/invoke.texi (-fshared-data): Delete.
9758         * common.opt (fshared-data): Delete.
9759         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9760         (assemble_static_space): Remove #if 0 code.
9761         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9762         (ASM_OUTPUT_SHARED_LOCAL): Poison.
9763         * config/cris/cris.h: Remove FIXME.
9764
9765 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
9766
9767         * doc/sourcebuild.texi (Front End Directory): No more double-colon
9768         hooks.
9769
9770 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
9771
9772         PR middle-end/26379
9773         * combine.c (simplify_shift_const_1): Disable nested shifts
9774         optimization for vector shifts.
9775
9776 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9777
9778         PR tree-optimization/26361
9779         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9780         of unsigned integer types.
9781
9782 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
9783
9784         * tree-chrec.c (eq_evolutions_p): New.
9785         * tree-chrec.h (eq_evolutions_p): Declared.
9786         * tree-data-ref.c: Fix formatting.
9787         (datadep_stats, dependence_stats): New.
9788         (gcd): Moved...
9789         (print_direction_vector): New.
9790         (dump_data_dependence_relation): Use print_direction_vector.
9791         (object_analysis, create_data_ref): Handle COMPONENT_REF.
9792         (compute_subscript_distance): Static.
9793         (initialize_data_dependence_relation): Static.  Get the number
9794         of loops surrounding the references from the callers, and initialize
9795         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
9796         base_object_differ_p analyzers.
9797         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9798         compute_overlap_steps_for_affine_1_2,
9799         analyze_subscript_affine_affine): Count the classified dependences.
9800         Print a message when a test failed.
9801         (can_use_analyze_subscript_affine_affine): New.
9802         (analyze_siv_subscript): Compute the data dependences on symbolic
9803         scevs that verify can_use_analyze_subscript_affine_affine.
9804         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9805         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9806         Handle symbolic scevs.
9807         (analyze_overlapping_iterations): Let symbolic affine scevs to be
9808         analyzed.
9809         (subscript_dependence_tester): Moved...
9810         (build_classic_dist_vector, build_classic_dir_vector): Don't use
9811         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
9812         DDR_SIZE_VECT instead of getting it in parameter.
9813         (subscript_dependence_tester): ... here.  Take as a parameter
9814         loop_nest_depth.  Call build_classic_dist_vector and
9815         build_classic_dir_vector.
9816         (compute_affine_dependence): Update subscript_dependence_tester
9817         parameters.  Update datadep_stats counters.  Call
9818         compute_subscript_distance.
9819         (compute_self_dependence): Save the dist and dir vectors.  Call
9820         compute_subscript_distance.
9821         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9822         (compute_all_dependences): Reorder parameters as they were before
9823         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
9824         compute_subscript_distance.  Update the use of
9825         compute_affine_dependence and initialize_data_dependence_relation.
9826         (find_data_references_in_loop): Handle COMPONENT_REF.
9827         (compute_data_dependences_for_loop): Initialize dependence_stats.
9828         Don't call build_classic_dist_vector and build_classic_dir_vector.
9829         Update the parameters of initialize_data_dependence_relation and
9830         compute_all_dependences.  Print the statistics from datadep_stats.
9831         (analyze_all_data_dependences): Static.  Not used until the pass for
9832         checking the data dependences is contributed.
9833         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9834         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9835         (initialize_data_dependence_relation, compute_affine_dependence,
9836         analyze_all_data_dependences, compute_subscript_distance): Removed.
9837         (print_direction_vector): New.
9838         * lambda.h (gcd): ... here.
9839         (lambda_vector_gcd): Moved here from gcd_vector.
9840         * lambda-code.c (gcd, gcd_vector): Removed.
9841         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
9842         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9843
9844 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
9845
9846         * ipa-type-escape.c: Tidy some comments and white space.
9847         * tree-ssa-operands.c: Likewise.
9848
9849 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
9850
9851         PR tree-opt/25879
9852         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9853         (dump_decl_name): Do not walk the decl tree chains.
9854         * tree-pass.h (TDF_CHAIN): Remove.
9855
9856 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
9857
9858         * Makefile.in (C): Remove
9859         (PROTO): Remove
9860         (.PHONY): Remove C and PROTO
9861
9862 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9863
9864         PR middle-end/26236
9865         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9866         deprecated CHAR_TYPE tree code.
9867
9868 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9869
9870         * configure.ac (target_list): Add install-info, dvi, html.
9871         * configure: Regenerate.
9872
9873         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9874         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9875         treelang/Make-lang.in: Do not use double-colon rules.
9876
9877 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
9878
9879         * tree.h (struct tree_memory_tag): Add is_used_alone member.
9880         (TMT_USED_ALONE): New macro.
9881         * tree-pass.h (PROP_tmt_usage): New property.
9882         (TODO_update_tmt_usage): New todo.
9883         * tree-ssa-alias.c (updating_used_alone): New variable.
9884         (recalculate_used_alone): New function.
9885         (compute_may_aliases): Set updating_used_alone, call
9886         recalculate_used_alone.
9887         * tree-sra.c (pass_sra): Note that this pass destroys
9888         PROP_tmt_usage, and add TODO_update_tmt_usage.
9889         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9890         * tree-flow.h (updating_used_alone): Prototype.
9891         (recalculate_used_alone): Ditto.
9892         * passes.c (execute_todo): Add code to set updating_used_alone,
9893         and call recalculate.
9894         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9895         for clobber if used alone, and add assert to verify used_alone
9896         status.
9897
9898 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
9899
9900         * config/s390/s390.c (legitimize_pic_address): Assertions checking
9901         for non tls symbols added.
9902         (legitimize_address): Do nothing for PLUS expressions if one of the
9903         addends is a tls symbol reference.
9904
9905 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9906
9907         PR bootstrap/25476
9908
9909         * Makefile.in (LDFLAGS): Define from autoconf substitution.
9910
9911         * Makefile.in (BOOTSTRAPPING): New.
9912         (quickstrap): New definition if BOOTSTRAPPING=yes.
9913
9914         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9915         * configure.ac: Substitute all_selected_languages with the languages
9916         that were configured.  For all the other variables except
9917         lang_specs_files, include all the languages in the tree.
9918         * configure: Regenerate.
9919
9920         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9921         if there is one.  Run the commands to run fixincludes in the same
9922         subshell.
9923
9924         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9925         * doc/install.texi: Document exact conventions for searching target tools.
9926         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
9927         something more about building an Ada cross-compiler.  Don't list GNU Make
9928         requirements which affect all platforms.
9929
9930 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9931
9932         PR middle-end/19543
9933         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9934         only equivalent if the have both the same mode and precision.
9935
9936 2006-02-20  Ben Elliston  <bje@au.ibm.com>
9937
9938         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9939
9940 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9941             Steven Bosscher  <stevenb.gcc@gmail.com>
9942
9943         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9944         constant pool references to identify stack mode constants.
9945         * rtlanal.c (constant_pool_constant_p): New predicate to check
9946         whether operand is a floating point constant in the pool.
9947         * rtl.h (constant_pool_constant_p): Prototype here.
9948         * loop.c (scan_loop): Avoid hoisting constants from the constant
9949         pool on STACK_REGS targets.
9950         (load_mems): Likewise.
9951         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9952         loads into x87 registers expensive in terms of register pressure.
9953
9954 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9955
9956         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9957         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9958
9959 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
9960
9961         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9962         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9963
9964 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
9965
9966         * doc/invoke.texi: Document -fipa-pta.
9967         * common.opt: Add ipa-pta option.
9968         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9969         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9970         (do_ds_constraint): Ditto.
9971         (get_constraint_for): Only add to referenced_vars if
9972         referenced_vars exists.
9973         (insert_into_field_list): Rewrite to do this unsorted.
9974         (insert_into_field_list_sorted): Rename old insert_into_field_list
9975         to this.
9976         (create_function_info_for): Use insert_into_field_list_sorted.
9977         (create_variable_info_for): Rewrite so it uses unsorted version,
9978         since the field list is sorted.
9979         (intra_create_variable_infos): Only add to referenced_vars if
9980         referenced_vars exists.
9981         (ipa_pta_execute): Init heapvars, and delete when done.
9982         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9983
9984 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9985
9986         * doc/install.texi: Add missing `@samp'.
9987
9988 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
9989
9990         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9991         Use the arguments.
9992
9993 2006-02-18  Mark Wielaard  <mark@klomp.org>
9994
9995         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9996         who added new 4.1 features, bug fixes and integration support.
9997
9998 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
9999
10000         PR target/26350
10001         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
10002         MEM for ABI_V4 pic.
10003
10004 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
10005
10006         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
10007         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
10008         (copy_insn_1): Likewise.  Don't copy each field individually.
10009         Reindent.
10010         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
10011         of RTX_SIZE.
10012         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
10013         * rtl.c (rtx_size): Rename variable to...
10014         (rtx_code_size): ...this.
10015         (rtx_size): New function.
10016         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
10017         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
10018         Reindent.
10019         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
10020         * rtl.h (rtx_code_size): New variable.
10021         (rtx_size): Change from a variable to a function.
10022         (RTX_SIZE): Rename to...
10023         (RTX_CODE_SIZE): ...this.
10024
10025         PR target/9703
10026         PR tree-optimization/17106
10027         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
10028         (Anchored Addresses): New section.
10029         * doc/invoke.texi (-fsection-anchors): Document.
10030         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
10031         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
10032         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
10033         * hooks.c (hook_bool_mode_rtx_false): New function.
10034         * hooks.h (hook_bool_mode_rtx_false): Declare.
10035         * gengtype.c (create_optional_field): New function.
10036         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
10037         SYMBOL_REF_IN_BLOCK_P is true.
10038         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
10039         (min_anchor_offset, max_anchor_offset): Likewise.
10040         (use_anchors_for_symbol_p): New hook.
10041         * toplev.c (compile_file): Call output_object_blocks.
10042         (target_supports_section_anchors_p): New function.
10043         (process_options): Check that -fsection-anchors is only used on
10044         targets that support it and when -funit-at-a-time is in effect.
10045         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
10046         if the decl doesn't have one.
10047         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
10048         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
10049         of force_const_mem through use_anchored_address.
10050         (expand_expr_constant): New function.
10051         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
10052         calling expand_expr for INDIRECT_REF.
10053         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
10054         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
10055         * expr.h (use_anchored_address): Declare.
10056         * loop-unroll.c: Don't declare rtx vectors here.
10057         * explow.c: Include output.h.
10058         (validize_mem): Call use_anchored_address.
10059         (use_anchored_address): New function.
10060         * common.opt (-fsection-anchors): New switch.
10061         * varasm.c (object_block_htab, anchor_labelno): New variables.
10062         (hash_section, object_block_entry_eq, object_block_entry_hash)
10063         (use_object_blocks_p, get_block_for_section, create_block_symbol)
10064         (use_blocks_for_decl_p, change_symbol_section): New functions.
10065         (get_variable_section): New function, split out from assemble_variable.
10066         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
10067         use_blocks_for_decl_p say so.  Use change_symbol_section if the
10068         symbol has already been created.
10069         (assemble_variable_contents): New function, split out from...
10070         (assemble_variable): ...here.  Don't output any code for
10071         block symbols; just pass them to place_block_symbol.
10072         Use get_variable_section and assemble_variable_contents.
10073         (get_constant_alignment, get_constant_section, get_constant_size): New
10074         functions, split from output_constant_def_contents.
10075         (build_constant_desc): Create a block symbol if use_object_blocks_p
10076         says so.  Or into SYMBOL_REF_FLAGS.
10077         (assemble_constant_contents): New function, split from...
10078         (output_constant_def_contents): ...here.  Don't output any code
10079         for block symbols; just pass them to place_section_symbol.
10080         Use get_constant_section and get_constant_alignment.
10081         (force_const_mem): Create a block symbol if use_object_blocks_p and
10082         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
10083         (output_constant_pool_1): Add an explicit alignment argument.
10084         Don't switch sections here.
10085         (output_constant_pool): Adjust call to output_constant_pool_1.
10086         Switch sections here instead.  Don't output anything for block symbols;
10087         just pass them to place_block_symbol.
10088         (init_varasm_once): Initialize object_block_htab.
10089         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
10090         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
10091         (place_block_symbol, get_section_anchor, output_object_block)
10092         (output_object_block_htab, output_object_blocks): New functions.
10093         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
10094         (TARGET_ASM_OUT): Include it.
10095         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
10096         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
10097         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
10098         (TARGET_INITIALIZER): Include them.
10099         * rtl.c (rtl_check_failed_block_symbol): New function.
10100         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
10101         (block_symbol, object_block): New structures.
10102         (rtx_def): Add a block_symbol field to the union.
10103         (BLOCK_SYMBOL_CHECK): New macro.
10104         (rtl_check_failed_block_symbol): Declare.
10105         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
10106         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
10107         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
10108         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
10109         * output.h (output_section_symbols): Declare.
10110         (object_block): Name structure.
10111         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
10112         (default_use_anchors_for_symbol_p): Declare.
10113         * Makefile.in (RTL_BASE_H): Add vec.h.
10114         (explow.o): Depend on output.h.
10115         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
10116         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
10117         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
10118         (rs6000_use_blocks_for_constant_p): New function.
10119
10120 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10121
10122         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
10123
10124 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
10125
10126         PR tree-opt/25680
10127         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
10128         IMAGPART_EXPR.
10129
10130 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
10131
10132         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
10133         is_aliased.
10134         Update all users.
10135
10136 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
10137
10138         PR middle-end/26334
10139         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
10140         instead of DECL_REGISTER.
10141
10142 2006-02-18  Olivier Hainque  <hainque@adacore.com>
10143
10144         PR ada/13408
10145         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
10146
10147 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
10148
10149         PR target/24837
10150         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
10151         * opth-gen.awk: Handle Var and InverseMask together.
10152         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
10153         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
10154         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
10155         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
10156         used together.
10157         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10158         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
10159         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
10160         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10161         LINUX_DYNAMIC_LINKER): Define.
10162         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
10163         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
10164         TARGET_GLIBC.
10165         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10166         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
10167         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10168         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10169         (TARGET_C99_FUNCTIONS): Don't define.
10170         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
10171         GLIBC_DYNAMIC_LINKER.
10172         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
10173         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
10174         GLIBC_DYNAMIC_LINKER64): Define.
10175         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
10176         LINUX_DYNAMIC_LINKER64.
10177         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10178         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10179         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
10180         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10181         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10182         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10183         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
10184         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
10185         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
10186         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
10187         and LINUX_DYNAMIC_LINKER32.
10188         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10189         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10190         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
10191         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10192         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
10193         TARGET_GLIBC.
10194         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
10195         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
10196         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10197         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10198         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
10199         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
10200         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
10201         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
10202         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10203         LINUX_DYNAMIC_LINKER): Define.
10204         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
10205         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
10206         GLIBC_DYNAMIC_LINKER64): Define.
10207         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
10208         LINUX_DYNAMIC_LINKER64.
10209         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10210         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10211         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
10212         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
10213         LINUX_DYNAMIC_LINKER): Define.
10214         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10215         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
10216         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
10217         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
10218         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
10219         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
10220         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
10221         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
10222         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
10223         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10224         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10225         * doc/invoke.texi (-muclibc): Remove caveat about supported
10226         targets.
10227
10228 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
10229
10230         * doc/cpp.texi (__TIMESTAMP__): Document.
10231
10232 2006-02-17  Roger Sayle  <roger@eyesopen.com>
10233
10234         PR middle-end/25600
10235         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
10236         C is one less than the width of X (and related transformations).
10237         * simplify-rtx.c (simplify_unary_operation_1): Transform
10238         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
10239         depending on STORE_FLAG_VALUE, were C is one less then the
10240         width of X.
10241
10242 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
10243
10244         Fix PR tree-optimization/26341
10245         * tree-ssa-operands.c (add_virtual_operand): Remove assert
10246         about NAME_MEMORY_TAG's.
10247
10248 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10249
10250         PR target/26255
10251         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
10252         with hardware float support, and software float support.  Add fcpy
10253         alternative to hardware patterns.  Add alternatives to copy between
10254         general and floating-point registers to the 32-bit pattern.
10255         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
10256         secondary reload to load a QI or HI mode constant into a floating
10257         point register.
10258         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
10259         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
10260
10261 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10262
10263         PR target/26272
10264         * config/rs6000/darwin.md (load_macho_picbase_si): Add
10265         pc to the pattern.
10266         (load_macho_picbase_di): Likewise.
10267
10268 2006-02-16  Jeff Law  <law@redhat.com>
10269
10270         * tree-vrp.c (set_value_range_to_nonnegative): New function.
10271         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
10272         (ssa_name_nonzero_p): Likewise.
10273         (get_value_range): Return NULL if VRP is not running.
10274         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
10275         VRP routines do not discover a range.
10276         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
10277         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
10278         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
10279         (tree_expr_nonnegative_p): Similarly.
10280         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
10281         (restore_nonzero_vars_to_original_value): Remove.
10282         (unsafe_associative_fp_binop): Remove.
10283         (tree_ssa_dominator_optimize): Remove initialization and
10284         finalization of nonzero_vars and nonzero_vars_stack.
10285         (dom_opt_initialize_block): No longer push marker on
10286         nonzero_vars_stack.
10287         (dom_opt_finalize_block): No longer call
10288         restore_nonzero_vars_to_original_value.
10289         (record_equivalences_from_phis): No longer look for
10290         nonzero PHI arguments.
10291         (cprop_into_successor_phis): No longer propagate nonzero
10292         property into PHI arguments.  Lose unused argument.  Caller
10293         updated.
10294         (record_equivalences_from_stmt): No longer record nonzero
10295         values for SSA_NAMEs.
10296         (lookup_avail_expr): No longer use nonzero_vars.
10297
10298         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
10299         for sizetype when sizetype is unsigned.
10300
10301 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
10302
10303         PR rtl-optimization/25603
10304         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
10305         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
10306         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
10307         with new meaning of SETS.
10308
10309 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
10310
10311         PR target/20353
10312         PR target/24578
10313         PR target/24837
10314         * config/linux.opt: New file.
10315         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10316         LINUX_DYNAMIC_LINKER): Define.
10317         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
10318         * config.gcc (*-*-linux*): Define extra_options.
10319         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
10320         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
10321         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
10322         GLIBC_DYNAMIC_LINKER.
10323         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
10324         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10325         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10326         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10327         * doc/invoke.texi (GNU/Linux Options): New section.
10328
10329 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10330
10331         * config/sparc/sparc.md (setjmp): Rewrite.
10332         (setjmp_32): Delete.
10333         (setjmp_64): Likewise.
10334
10335 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
10336
10337         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
10338          previous change.
10339
10340 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
10341
10342         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
10343         read-write uses.
10344
10345 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
10346
10347         PR rtl-optimization/26296
10348         * Makefile.in (loop-invariant.c): Add except.h dependency.
10349         * loop-invariant.c: Include except.h.
10350         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
10351
10352 2005-02-16  Paul Brook  <paul@codesourcery.com>
10353
10354         * reload1.c (emit_reload_insns): Invalidate dead input registers used
10355         for reloads.
10356
10357 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10358
10359         PR rtl-optimization/25636
10360         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
10361         when deciding whether an insn is an initializing insn.
10362
10363 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
10364
10365         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
10366         (tree_code_size): Ditto.
10367         * tree.h (struct tree_memory_tag): Remove parent_var.
10368         (struct tree_struct_field_tag): New.
10369         (SFT_OFFSET): New.
10370         (SFT_SIZE): New.
10371         (union tree_node): Add sft member.
10372         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
10373         specially here.
10374         (create_sft): Add size and offset argument, set SFT_OFFSET and
10375         SFT_SIZE.
10376         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
10377         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
10378         * tree-flow-inline.h (get_subvar_at): Update for
10379         SFT_OFFSET/SFT_SIZE.
10380         (var_can_have_subvars): Ditto.
10381         (overlap_subvar): Ditto.
10382         * print-tree.c (print_node): Print out interesting things for
10383         SFT's.
10384         * tree-flow.h (struct subvar): Remove offset and size members.
10385         * tree-ssa-operands.c (get_expr_operands): Update for
10386         get_indirect_ref_operands changes.
10387         (get_indirect_ref_operands): Call add_virtual_operand instead of
10388         add_stmt_operand.  Only recurse on base var if requested.
10389         (access_can_touch_variable): New function.
10390         (add_stmt_operand): Split virtual operand handling into ...
10391         (add_virtual_operand): Here.  Add offset, size, and for_clobber
10392         arguments.  Prune alias sets.
10393         (add_call_clobber_ops): Call add_virtual_operand.
10394
10395 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
10396
10397         PR middle-end/26300
10398         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
10399
10400         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
10401         than TREE_CODE as index into omp_clause_num_ops array.
10402
10403 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
10404
10405         PR rtl-optimization/26184
10406         * modulo-sched.c (generate_reg_moves): Free bitmap vector
10407         uses_of_defs.
10408         * modulo-sched.c (sms_schedule): Free g_arr pointer.
10409         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
10410         must_precede, must_follow and tobe_scheduled.
10411
10412         PR other/26147
10413         * opts.c (common_handle_option): Free new_option pointer.
10414         * df-core.c (df_analyze): Free postorder pointer.
10415
10416 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10417
10418         * Makefile.in: Fix the examples about the use of stamps
10419
10420 2006-02-15  Michael Matz  <matz@suse.de>
10421
10422         PR middle-end/22275
10423
10424         * stor-layout.c (layout_decl): Zero-width bitfields aren't
10425         influenced by maximum_field_alignment or DECL_PACKED.
10426         (update_alignment_for_field): Ditto.
10427         (place_field): Ditto.
10428         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
10429         this behaviour.
10430
10431 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
10432
10433         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
10434         (debug_flow_info): Pass it.
10435         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
10436         * bb-reorder.c (reorder_basic_blocks): Likewise.
10437         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
10438         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
10439         * flow.c (life_analysis, recompute_reg_usage): Likewise.
10440         * gcse.c (gcse_main, bypass_jumps): Likewise.
10441         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
10442         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
10443         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
10444         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
10445         * rtl.h (dump_flow_info): Adjust prototype.
10446         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
10447         * var-tracking.c (variable_tracking_main): Likewise.
10448         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
10449         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
10450         options.
10451
10452 2006-02-15  Marcin Dalecki <martin@dalecki.de>
10453
10454         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
10455         construction.
10456
10457 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
10458
10459         PR tree-optimization/26209
10460         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
10461         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
10462         eh edges.
10463         * tree-cfg.c (replace_uses_by): Do not alter cfg.
10464
10465 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10466
10467         PR middle-end/23670
10468         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
10469         (X,Y) and the corresponding symmetry related transformations.
10470         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
10471         (X,Y) and its symmetry related transformations.
10472
10473 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10474
10475         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
10476         and GEU.
10477
10478 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
10479
10480         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
10481
10482 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10483
10484         PR bootstrap/26053
10485         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
10486         support COMDAT group.
10487         * configure: Regenerate.
10488
10489 2006-02-14  Roger Sayle  <roger@eyesopen.com>
10490
10491         PR middle-end/26279
10492         PR middle-end/26280
10493         PR middle-end/26283
10494         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
10495
10496 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
10497
10498         Fix PR tree-optimization/26260
10499
10500         * doc/invoke.texi (max-fields-for-field-sensitive): Document
10501         param.
10502         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
10503         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
10504         * tree-ssa-structalias.c (create_variable_info_for): Use
10505         MAX_FIELDS_FOR_FIELD_SENSITIVE.
10506
10507 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
10508
10509         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
10510         Document.
10511         * tree-ssa-loop-niter.c (number_of_iterations_ne,
10512         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
10513         of the ending condition.
10514         * tree-ssa-loop-manip.c: Include params.h.
10515         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
10516         tree_unroll_loop): New functions.
10517         * tree-pass.h (pass_loop_prefetch): Declare.
10518         * loop.c (rest_of_handle_loop_optimize): Test for
10519         -fprefetch-loop-arrays-rtl.
10520         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
10521         * timevar.def (TV_TREE_PREFETCH): New timevar.
10522         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
10523         pass_loop_prefetch): New.
10524         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
10525         (cleanup_tree_cfg_loop): Call scev_reset.
10526         * common.opt (fprefetch-loop-arrays-rtl): Add.
10527         * tree-ssa-loop-prefetch.c: New file.
10528         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
10529         (new_temp_expr_table): Initialize expr_vars.
10530         (free_temp_expr_table): Cleanup expr_vars.
10531         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
10532         expressions from being merged into one.
10533         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
10534         (struct tree_niter_desc): Add control, bound and cmp fields.
10535         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
10536         Declare.
10537         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
10538         (tree-cfgcleanup.o): Add SCEV_H dependency.
10539         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
10540         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
10541
10542 2006-02-14  Richard Guenther  <rguenther@suse.de>
10543
10544         PR tree-optimization/26258
10545         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
10546         in PHI argument processing.
10547
10548 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
10549
10550         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
10551         new expression in the requested machine mode.
10552
10553 2006-02-13  Roger Sayle  <roger@eyesopen.com>
10554
10555         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
10556         directly, instead let do_compare_rtx_and_jump handle this for us.
10557         * expr.c (expand_expr_real_1): Likewise.
10558         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
10559         before do_jump_by_parts_greater.
10560         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
10561         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
10562
10563 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10564
10565         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
10566
10567 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10568
10569         PR rtl-optimization/26235
10570         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
10571         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
10572         format.
10573
10574 2006-02-13  Jeff Law  <law@redhat.com>
10575
10576         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
10577         TRUTH_XOR_EPR.
10578
10579 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
10580
10581         PR middle-end/26092
10582         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
10583         twice if decl is a builtin.  When trying again, call get_callee_fndecl
10584         first to verify it is still a builtin.
10585
10586 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
10587
10588         * dwarf2out.c (base_type_die): Don't add AT_name here.
10589         (subrange_type_die): Don't add AT_name here.
10590         (modified_type_die): Rearrange code flow.  Do add AT_name here.
10591
10592 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10593
10594         PR rtl-optimization/26247
10595         PR rtl-optimization/26248
10596         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
10597
10598 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
10599
10600         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
10601         * config/fixtfdi.c: Likewise.
10602         * config/fixunstfdi.c: Likewise.
10603         * config/floatditf.c: Likewise.
10604
10605 2006-02-13  Roger Sayle  <roger@eyesopen.com>
10606
10607         PR middle-end/24427
10608         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
10609         into (X,C2) if C1 is a subset of the bits of C2.  Transform
10610         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
10611         (X&(C1&~C2))|C2.
10612         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
10613
10614 2006-02-13  Josh Conner  <jconner@apple.com>
10615
10616         PR target/25376
10617         * varasm.c (function_section): Check for section name before
10618         calling select_section on targets that define
10619         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
10620         unlikely_text_section instead of hot_function_section if
10621         first_function_block_is_cold.
10622
10623 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
10624
10625         PR middle-end/25335
10626         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
10627
10628 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10629
10630         PR rtl-optimization/26222
10631         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
10632         after tree->rtl expansion.
10633         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
10634         before passing it to emit_move_insn.
10635
10636 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10637
10638         * doc/invoke.texi (-Write-strings): Document that it is enabled by
10639         default.
10640         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
10641         Clarify documentation.
10642         * c-common.h (warn_write_strings): Remove.
10643         * c-common.c (warn_write_strings): Likewise.
10644         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
10645         default for C++.
10646
10647 2006-02-12  Roger Sayle  <roger@eyesopen.com>
10648
10649         PR middle-end/25724
10650         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
10651         (do_jump_parts_zero_rtx): New function renamed from
10652         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
10653         (do_jump_parts_equality_rtx): New function split out from
10654         do_jump_parts_equality.  Old implementation renamed as above.
10655         Call do_jump_parts_zero_rtx if either operand is zero.
10656         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
10657         do all of the heavy lifting.
10658         (do_compare_rtx_and_jump): Handle multi-word comparisons by
10659         calling either do_jump_by_parts_greater_rtx or
10660         do_jump_by_parts_equality_rtx.
10661         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
10662         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
10663         moved to do_compare_rtx_and_jump, call it directly.
10664         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
10665         mode argument.  Call do_compare_rtx_and_jump.
10666         (emit_case_nodes): Update calls to do_jump_if_equal.
10667
10668 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10669
10670         PR rtl-optimization/26225
10671         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10672
10673 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10674
10675         PR rtl-optimization/26232
10676         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10677
10678 2006-02-11  Jason Merrill  <jason@redhat.com>
10679
10680         PR tree-opt/24365
10681         * tree-inline.c (declare_return_variable): Just don't use the
10682         modify target if it's a gimple complex reg and the return slot
10683         isn't.
10684
10685 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10686
10687         * doc/contrib.texi: Update my entry.
10688
10689 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
10690
10691         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10692
10693 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
10694
10695         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10696         expensive.
10697
10698 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
10699
10700         * doc/invoke.texi (-floop-optimize2): Removed.
10701         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10702         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10703         Test flag_branch_on_count_reg only if HAVE_doloop_end.
10704         * common.opt (floop-optimize2): Removed.
10705         (fmove-loop-invariants): Enabled by default.
10706
10707 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
10708
10709         * tree-if-conv.c (combine_blocks): Free the result of
10710         get_loop_exit_edges.
10711
10712 2006-02-10  Jeff Law  <law@redhat.com>
10713
10714         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10715
10716         PR tree-optimization/26213
10717         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10718         loop trying to follow SSA_NAME_VALUE chains.
10719
10720 2006-02-10  Richard Guenther  <rguenther@suse.de>
10721
10722         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10723         deal with structures that end in implicitly variable sized arrays.
10724
10725 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10726
10727         PR rtl-optimization/24762
10728         * df-scan.c (df_bb_refs_record): Record correct registers defined on
10729         eh edges.
10730
10731 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10732
10733         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10734         (struct ivopts_data): Add regs_used field.
10735         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10736         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10737         instead of loop_data->regs_used;
10738         (free_loop_data): Do not free aux fields for loops.
10739         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10740         and tree_ssa_iv_optimize_finalize.
10741
10742 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10743
10744         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10745
10746 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10747
10748         PR target/26141
10749         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10750         computing the effective result type.
10751
10752 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10753
10754         PR inline-asm/16194
10755         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10756         (tree_overlaps_hard_reg_set): Declare.
10757         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
10758         type and signature to match function type expected by walk_tree.
10759         (tree_overlaps_hard_reg_set): New function.
10760         (decl_conflicts_with_clobbers_p): Rename to:
10761         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
10762         Use tree_overlaps_hard_reg_set.  Changed caller.
10763         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10764         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10765         * cris.c (cris_md_asm_clobbers): Likewise.
10766
10767 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
10768
10769         * reload1.c (emit_input_reload_insns): Delete code that tries to
10770         inherit using find_equiv_reg.
10771
10772 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10773
10774         * c-common.h (flag_const_strings): Don't declare.
10775         * c-common.c (flag_const_strings): Remove.
10776         * c.opt (fconst_strings): Remove.
10777         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10778         <OPT_Wwrite_strings>: Don't set flag_const_strings.
10779         (c_common_init_options): Don't set flag_const_strings.
10780         * doc/invoke.texi (-fno-const-strings): Remove documentation.
10781
10782 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
10783
10784         * arm.md (tlobits_cbranch): New pattern.
10785         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10786         testing a single bit.
10787
10788 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10789
10790         PR tree-opt/26179
10791         * tree-ssa-pre.c (create_component_ref_by_pieces):
10792         Handle RETURN_DECL like VAR_DECL.
10793
10794 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10795
10796         PR middle-end/26134
10797         * fold-const.c (fold_indirect_ref_1): Fold
10798         "*(foo *)&complexfoo" to "__real__ complexfoo"
10799         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10800
10801 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10802
10803         * tree-flow-inline.h (var_can_have_subvars):
10804         Volatile variables should not have subvariables.
10805
10806 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
10807
10808         PR 26180
10809         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10810         multiplying unsigned values.
10811         Tidy comments.
10812
10813 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10814
10815         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10816
10817 2006-02-08  Jason Merrill  <jason@redhat.com>
10818
10819         PR c++/25979
10820         * tree.def: Elaborate on difference from MODIFY_EXPR.
10821         * doc/c-tree.texi (INIT_EXPR): Likewise.
10822         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10823         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10824         (gimplify_target_expr): Likewise.
10825         (gimplify_cond_expr): Remove target handling.
10826         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10827         (gimplify_expr): Clobber it here.
10828         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10829         Do return slot optimization if we have an INIT_EXPR.
10830
10831         PR tree-opt/24365
10832         * tree-inline.c (declare_return_variable): Also clear
10833         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10834
10835         PR c++/16405
10836         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10837
10838         PR middle-end/22439
10839         * gimplify.c (gimplify_one_sizepos): Fix typo.
10840
10841 2006-02-08  Jeff Law  <law@redhat.com>
10842
10843         PR tree-optimization/21417
10844         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10845         across a backedge if the control statement at the end of the
10846         block is data dependent on other statements in the same block.
10847         (record_temporary_equivalences_from_stmts): Remove over-conservative
10848         test for threading across backedges.
10849
10850         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10851         control statement, handle all three special cases in the same
10852         manner as they all have the same desired solution.  No longer
10853         special case edge flag updating when the post dominator is
10854         the exit block.
10855
10856 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10857
10858         * tree.def (CHAR_TYPE): Remove.
10859         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10860         * dwarf2out.c (base_type_die, is_base_type): Likewise.
10861         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10862         (gen_string_type_die): Delete unreachable function.
10863
10864         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10865         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10866         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10867         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10868         * builtins.c (type_to_class): Likewise.
10869         * fold-const.c (fold_convert, build_range_check,
10870         merge_ranges): Likewise.
10871         * expr.c (count_type_elements): Likewise.
10872         * c-pretty-print.c (pp_c_type_specifier): Likewise.
10873         * stor-layout.c (layout_type): Likewise.
10874         * ipa-type-escape.c (type_to_consider): Likewise.
10875         * gimplify.c (omp_firstprivatize_type_sizes,
10876         gimplify_type_sizes): Likewise.
10877         * explow.c (promote_mode): Likewise.
10878         * tree-sra.c (is_sra_scalar_type): Likewise.
10879         * varasm.c (output_constant): Likewise.
10880         * tree-inline.c (remap_type_1): Likewise.
10881         * convert.c (convert_to_pointer, convert_to_real,
10882         convert_to_integer, convert_to_complex): Likewise.
10883
10884 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
10885
10886         * df-scan.c (df_def_record_1): A set destination may
10887         be a parallel regardless of mode.
10888
10889 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10890
10891         PR target/22209
10892         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10893         * config/mips/_tilib.c: Remove.
10894         * config/fixtfdi.c: New libgcc source file.
10895         * config/fixunstfdi.c: New source file.
10896         * config/floatditf.c: New source file.
10897         * config/floatunditf.c: New souce file.
10898         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10899         files above instead of config/mips/_tilib.c.
10900         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10901
10902 2006-02-08  Jeff Law  <law@redhat.com>
10903
10904         PR tree-optimization/26169
10905         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10906         threading jumps.
10907
10908 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
10909
10910         * df.h (DF_REG_SIZE): Return the length of the initialized
10911         part of the array.
10912
10913 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
10914
10915         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10916         __muldf3): Return a correctly signed zero.
10917
10918 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
10919
10920         * passes.c (register_one_dump_file): Accept the current properties
10921         instead of pass number.  Adjust call to dump_register.  Remove
10922         duplicated code.
10923         (register_dump_files): Now a wrapper around...
10924         (register_dump_files_1): ... this one.  Do not modify the pass
10925         structure.
10926         (next_pass_1): Cosmetic fix.
10927         (execute_todo): Keep second parameter only.  Use curr_properties
10928         instead of fetching it from the pass structure.  Check and set
10929         last_verified.
10930         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
10931         instead of fetching it from the pass structure.  Fix calls to
10932         execute_todo.  Update curr_properties and initialize .vcg RTL dump
10933         after running the pass.  Reset last_verified.
10934         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
10935         at the beginning.
10936         (FIRST_AUTO_NUMBERED_DUMP): New.
10937         (dump_register): Remove "num" parameter, assign it within the
10938         function.
10939         (get_dump_file_name): Modify template for dumps.
10940         * tree-dump.h (dump_register): Adjust prototype.
10941         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10942         (PROP_trees): Add PROP_gimple_lomp.
10943         (TODO_set_props): New.
10944         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10945         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10946         * cfgexpand.c (pass_expand): Destroy PROP_trees.
10947
10948 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
10949
10950         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10951         (sparc64-*-linux*): Likewise.
10952         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10953         * config/sparc/t-linux: New file.
10954         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10955         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10956         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10957         -m32 -mlong-double-128.
10958
10959         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10960         * config/alpha/t-linux: New file.
10961         * config/alpha/libgcc-alpha-ldbl.ver: New file.
10962
10963         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10964         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10965         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10966         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10967         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10968         (CPP_ARCH32_SPEC): Remove.
10969
10970 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
10971
10972         PR tree-optimization/26145
10973         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10974         bbs pointer.
10975
10976 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10977
10978         PR target/26109
10979         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10980         >= 240000 when generating code for SOM runtime.
10981         (output_indirect_call): Don't use "b,l" instruction for indirect calls
10982         to $$dyncall when generating code for SOM runtime..
10983
10984 2006-02-07  Dirk Mueller  <dmueller@suse.com>
10985
10986         PR c++/18150
10987         * doc/invoke.texi (-Wsequence-point): Update documentation
10988         that -Wsequence-point is implemented for C++ as well.
10989
10990 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10991
10992         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10993         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10994         (LIB_SPEC): Likewise.
10995         * doc/invoke.texi (SPARC options): Document -pthread.
10996
10997 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
10998
10999         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
11000         PIC addresses.
11001
11002 2006-02-07  Roger Sayle  <roger@eyesopen.com>
11003
11004         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
11005         Correct comment describing BOOLEAN_TYPE.
11006
11007 2006-02-07  Dirk Mueller  <dmueller@suse.com>
11008
11009         * c.opt: C++ frontend supports -Wdiv-by-zero.
11010         * c-opts.c (c_common_handle_option): Remove dead case.
11011
11012 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
11013
11014         * configure.ac (TLS assembler check): Do not enable TLS by
11015         default on SPARC/Solaris before version 10.
11016         * configure: Regenerate.
11017
11018 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
11019
11020         * doc/invoke.texi (xl-compat): Document conversion and support
11021         routine names.
11022
11023 2006-02-07  Jeff Law  <law@redhat.com>
11024
11025         * tree-vrp.c (find_conditional_asserts): Update comments.
11026         (simplify_stmt_for_jump_threading): New.
11027         (identify_jump_threads, finalize_jump_threads): New.
11028         (vrp_finalize): Call identify_jump_threads.
11029         (execute_vrp): Call finalize_jump_threads.
11030         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
11031         (vrp_element, vrp_data, vrp_element_p): Remove.
11032         (vrp_hash_elt, vrp_variables_stack): Remove.
11033         (vrp_hash, vrp_eq, record_range): Remove.
11034         (simplify_cond_and_lookup_avail_expr): Remove.
11035         (extract_range_from_cond): Remove.
11036         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
11037         (simplify_stmt_for_jump_threading): New.
11038         (dom_thread_across_edge): New wrapper.
11039         (tree_ssa_dominator_optimize): No longer initialize or
11040         finalize any of the VRP datastructures.  Remove iteration
11041         step and simplify as a result of removal of iteration step.
11042         (pass_dominator): Perform a cfg cleanup after DOM.
11043         (dom_opt_finalize_block): Use the new common routines
11044         for threading jumps.  Simplify stack management slightly.
11045         No longer need to unwind VRP state.
11046         (record_equivalences_from_incoming_edge): No longer record
11047         VRP information.
11048         (eliminate_redundant_computations): No longer call
11049         simplify_cond_and_lookup_avail_expr.
11050         * tree-flow.h (potentially_threadable_block): Prototype.
11051         (thread_across_edge): Likewise.
11052         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
11053         (tree-ssa-threadedge.o): Add dependencies.
11054         * tree-ssa-threadedge.c: New file.
11055         * passes.c (init_optimization_passes): Merge PHIs before
11056         calling VRP.  Run VRP again late in the SSA optimization pipeline.
11057
11058 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
11059
11060         * df-core.c (df_set_blocks): Do not dereference function pointers.
11061         (df_finish1): Likewise.
11062         (df_hybrid_search_forward): Likewise.
11063         (df_hybrid_search_backward): Likewise.
11064         (df_iterative_dataflow): Likewise.
11065         (df_analyze_problem): Likewise.
11066         (df_compact_blocks): Likewise.
11067         (df_dump): Likewise.
11068         * df-scan.c (df_rescan_blocks): Likewise.
11069         (df_record_entry_block_defs): Likewise.
11070
11071         * genconditions.c (write_conditions): Guard the definition of
11072         'insn_conditions' with the check on GCC version.
11073         (write_writer): Guard the traversal 'insn_conditions' with
11074         the check on GCC version.
11075
11076 2006-02-07  Richard Guenther  <rguenther@suse.de>
11077
11078         PR c++/26140
11079         Revert
11080         2006-01-30  Richard Guenther  <rguenther@suse.de>
11081         PR c++/23372
11082         * gimplify.c (gimplify_target_expr): Handle easy cases
11083         without creating a temporary.
11084
11085 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
11086
11087         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
11088         use of float in probability computations.  Use edge probabilities
11089         in place of statically computed probabilities.
11090         (min_spec_prob): New static variable.
11091         (schedule_insns): Initialize it.
11092         (GET_SRC_PROB): Removed.
11093         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
11094
11095 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
11096
11097         PR debug/24444
11098         * config/ia64/unwind-ia64.c: Revert last change.
11099         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
11100         (INCOMING_FRAME_SP_OFFSET): Define.
11101
11102 2006-02-06  Roger Sayle  <roger@eyesopen.com>
11103
11104         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
11105
11106 2006-02-07  Ben Elliston  <bje@au.ibm.com>
11107
11108         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
11109         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
11110         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
11111         (ix86_return_in_memory): Handle TDmode.
11112         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
11113         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
11114
11115 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
11116
11117         * reorg.c (dbr_schedule): Use dump_file instead of file.
11118
11119 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
11120
11121         PR target/25917
11122         * config/ia64/predicates.md (extr_len_operand): New predicate.
11123         * config/ia64/ia64.md (extv): Tighten constraints.
11124         (extzv): Ditto.
11125         (*tbit_and_2): Ditto.
11126         (*tbit_and_3): Ditto.
11127         (*tbit_or_2): Ditto.
11128         (*tbit_or_3): Ditto.
11129         (*bit_zero): Ditto.
11130         (*bit_one): Ditto.
11131
11132 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11133
11134         PR target/23359
11135         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
11136
11137 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
11138
11139         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
11140         loop_optimizer_init and loop_optimizer_finalize
11141         * tree-ssa-sink.c (execute_sink_code): Ditto.
11142         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
11143         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
11144         tree_ssa_loop_done): Ditto.
11145         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
11146         * sched-ebb.c: Include output.h.
11147         (schedule_ebbs): Do not use dump argument.
11148         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
11149         * loop.c (loop_dump_stream): Removed.
11150         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
11151         argument.
11152         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
11153         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
11154         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
11155         loop_iterations, strength_reduce, record_biv, record_giv,
11156         final_giv_value, check_final_value, check_ext_dependent_givs,
11157         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
11158         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
11159         dump_file instead of loop_dump_stream.
11160         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
11161         argument dump_file.
11162         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
11163         dump argument.
11164         * flow.c (life_analysis, rest_of_handle_life): Ditto.
11165         * haifa-sched.c: Include output.h
11166         (schedule_insns, sched_init): Do not use dump argument.
11167         * mode-switching.c (optimize_mode_switching): Ditto.
11168         * modulo-sched.c (stats_file): Removed.
11169         (print_node_sched_params): Do not call argument dump_file.
11170         (sms_schedule_by_order, loop_canon_p, sms_schedule,
11171         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
11172         of stats_file.
11173         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
11174         use dump argument.
11175         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
11176         rtl_loop_init, rtl_loop_done): Ditto.
11177         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
11178         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
11179         Ditto.
11180         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
11181         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
11182         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
11183         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
11184         * emit-rtl.c (renumber_insns): Ditto.
11185         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
11186         expand_gimple_basic_block, tree_expand_cfg): Ditto.
11187         * regclass.c (regclass): Ditto.
11188         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
11189         remove_ssa_form, rewrite_out_of_ssa): Ditto.
11190         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
11191         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
11192         Ditto.
11193         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
11194         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
11195         to regclass.
11196         * gcse.c (gcse_file, debug_stderr): Removed.
11197         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
11198         rest_of_handle_gcse): Do not use dump argument.
11199         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
11200         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
11201         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
11202         compute_code_hoist_vbeinout, compute_code_hoist_data,
11203         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
11204         compute_store_table, build_store_vectors, insert_insn_start_bb,
11205         insert_store, remove_reachable_equiv_notes, replace_store_insn,
11206         store_motion): Use dump_file instead of gcse_file.
11207         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
11208         * profile.c (profile_dump_file): Removed.
11209         (branch_prob): Use dump_file instead of profile_dump_file.
11210         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
11211         dump_file.
11212         * tree-ssa-copy.c (dump_copy_of): Ditto.
11213         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
11214         dump file to life_analysis.
11215         * bt-load.c (branch_target_load_optimize): Ditto.
11216         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
11217         renumber_insns.
11218         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
11219         regclass, dbr_schedule): Declaration changed.
11220         * sched-int.h (sched_init): Declaration changed.
11221         * tree-profile.c (tree_profile_dump_file): Removed.
11222         (tree_profile_hooks): Removed profile_dump_file hook.
11223         * rtl-profile (rtl_profile_dump_file): Removed.
11224         (rtl_profile_hooks): emoved profile_dump_file hook.
11225         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
11226         changed.
11227         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
11228         * tree-cfg.c (build_tree_cfg): Ditto.
11229         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
11230         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
11231         Declaration changed.
11232         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
11233         life_analysis and schedule_insns.
11234         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
11235         life_analysis.
11236         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
11237         dbr_schedule.
11238         * config/mips/mips.c (mips_reorg): Ditto.
11239         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
11240         schedule_ebbs.
11241
11242 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
11243
11244         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11245         (s390_mangle_fundamental_type): New.
11246         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11247         Define.
11248
11249         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11250         (alpha_mangle_fundamental_type): New.
11251         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11252         Define.
11253
11254         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11255         Define.
11256         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11257         Define.
11258         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11259         (sparc_mangle_fundamental_type): New.
11260
11261 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
11262
11263         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
11264         (s390x-*-linux*): Likewise.
11265         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
11266         * config/s390/t-linux: New file.
11267
11268 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
11269
11270         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
11271         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
11272
11273 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
11274
11275         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
11276         (ANTIC_SAFE_LOADS): New macro.
11277         (find_or_generate_expression): Add prototype.
11278         (set_contains_value): Allow null set for sake of not always having
11279         to allocate ANTIC_SAFE_LOADS.
11280         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
11281         Allow COMPONENT_REF too.
11282         (valid_in_set): Allow COMPONENT_REF.
11283         Check ANTIC_SAFE_LOADS too.
11284         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
11285         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
11286         rename.
11287         (can_PRE_operation): Add COMPONENT_REF.
11288         (create_component_ref_by_pieces): New function.
11289         (create_expression_by_pieces): Use create_component_ref_by_pieces.
11290         (insert_aux): Move AGGREGATE_TYPE_P check here.
11291         (compute_avail): Set bb local stmt uids.
11292         (pass_pre): Use TODO_update_ssa_only_virtuals.
11293
11294 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11295
11296         * configure.ac: Unconditionally disable decimal float by default.
11297         * configure: Regenerate.
11298
11299 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11300
11301         * read-rtl.c (read_name): Terminate reading on EOF.
11302
11303 2006-02-06  Ben Elliston  <bje@au.ibm.com>
11304
11305         * dfp.c (decimal_real_arithmetic): Change second argument type
11306         from int to enum tree_code. Do not always return true, but now
11307         return result of any call to decimal_do helper functions.
11308         * dfp.h (decimal_real_arithmetic): Update prototype.
11309
11310 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
11311
11312         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
11313
11314 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
11315
11316         PR tree-opt/25251
11317         * tree-cfg.c (cleanup_dead_labels): Also don't remove
11318         forced labels.
11319
11320 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
11321
11322         * tree-vrp.c (cfg_loops): Removed.
11323         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
11324         Use current_loops instead of cfg_loops.  Pass flags to
11325         loop_optimizer_init.
11326         * cfgloopmanip.c (fix_loop_structure): Update only available
11327         information.
11328         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
11329         loop_optimizer_init.
11330         * modulo-sched.c (build_loops_structure): Removed.
11331         (sms_schedule): Use loop_optimizer_init.
11332         * loop-init.c (loop_optimizer_init): Use flags to determine
11333         which properties of loops to prepare.
11334         (rtl_loop_init): Pass flags to loop_optimizer_init.
11335         * tree-ssa-sink.c (execute_sink_code): Ditto.
11336         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
11337         * tree-ssa-pre.c (init_pre): Ditto.
11338         * cfgloop.h (LOOPS_NORMAL): New.
11339         (loop_optimizer_init): Declaration changed.
11340
11341 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11342
11343         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
11344         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
11345         pa/t-pa.
11346         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
11347         pa/t-pa.
11348         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
11349         pa/x-ada.
11350         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
11351         * pa/t-pa64: Delete quadlib.c rule.
11352         * pa/x-ada: Revert last change.
11353         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
11354
11355 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
11356
11357         PR rtl-optimization/26087
11358         * rtlanal.c (canonicalize_condition): Do not cross basic block
11359         boundaries.
11360
11361 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
11362
11363         PR debug/24444
11364         * config/ia64/ia64.c: Include debug.h.
11365         (MAX_ARTIFICIAL_LABEL_BYTES): New.
11366         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
11367         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
11368         (process_epilogue, process_set, process_for_unwind_directive):
11369         Output unwind info only if requested.  Add CFA info if requested.
11370         Add new arguments as needed.  Adjust callers.
11371         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
11372         incorrect default.
11373         (DWARF2_FRAME_INFO): Define to zero.
11374         * config/ia64/unwind-ia64.c: Remove code that compensated for
11375         the CFA offset error fixed above.
11376         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
11377         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
11378         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
11379         -funwind-tables and -fexceptions to enable frame info.
11380         (dwarf2out_frame_init): Define initial CFA even if
11381         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
11382         DWARF2_UNWIND_INFO is nonzero, not just defined.
11383         (dwarf2out_frame_finish): Output non-EH call frame info only
11384         if DWARF2_FRAME_INFO is nonzero.
11385         (convert_cfa_to_loc_list,
11386         compute_frame_pointer_to_cfa_displacement): Define even if
11387         unwind info is not supported.
11388         (gen_subprogram_die): Use the above unconditionally.  Remove
11389         legacy alternate code.
11390         * toplev.c (compile_file): Compile in call to
11391         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
11392         (lang_dependent_init): Ditto for dwarf2out_frame_init.
11393
11394 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
11395             Jakub Jelinek  <jakub@redhat.com>
11396
11397         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
11398         IBM extended float format long double as "g" on powerpc*-linux.
11399
11400 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11401
11402         PR target/25926
11403         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
11404         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
11405
11406 2006-02-03  Jason Merrill  <jason@redhat.com>
11407
11408         PR c++/25979
11409         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
11410
11411         PR middle-end/25977
11412         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
11413         on the return slot if it's an NRV.
11414
11415 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
11416
11417         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
11418         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
11419         rewrite_use): Do not handle USE_OUTER.
11420         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
11421         add_iv_outer_candidates, may_replace_final_value,
11422         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
11423         (find_interesting_uses_op): Functionality of
11424         find_interesting_uses_outer_or_nonlin moved here.
11425         (find_interesting_uses_outside): Use find_interesting_uses_op.
11426
11427 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
11428
11429         PR target/25960
11430         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
11431
11432 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
11433             Ulrich Weigand  <uweigand@de.ibm.com>
11434
11435         PR target/25864
11436         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
11437         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
11438         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
11439         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
11440         and dxr fields.
11441         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
11442         (s390_rtx_costs): Use the new fields to calculate rtx costs.
11443         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
11444         Define secondary reloads for TFmode moves.
11445         (constant_modes): Add TFmode.
11446         (NR_C_MODES): Set to 8.
11447         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
11448         builtin define.
11449         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
11450         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
11451         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
11452         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
11453         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
11454         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
11455         (FPR mode macro): Add TFmode.
11456         (DSF mode macro): New.
11457         (<de>, <dee> mode attributes): Removed.
11458         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
11459         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
11460         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
11461         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
11462         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
11463         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
11464         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
11465         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
11466         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
11467         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
11468         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
11469         "*negabs<mode>2", "sqrt<mode>2"):
11470         Changed <de> to <xde>. R constraint replaced by <Rf>.
11471         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
11472         <Rf>.
11473         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
11474         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
11475         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
11476         splitters.
11477         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
11478         "extenddftf2", "extendsftf2"): New expanders.
11479         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11480         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
11481         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
11482         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
11483         New options.
11484         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
11485         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
11486         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
11487         __floatditf): Add a GCC_4.1.0 symbol version tag.
11488         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
11489         the new options.
11490
11491 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
11492
11493         PR target/25377
11494         * config/i386/i386.c (ix86_function_ok_for_sibcall):
11495         Use targetm.binds_local_p instead of TREE_PUBLIC.
11496
11497 2006-02-02  Roger Sayle  <roger@eyesopen.com>
11498
11499         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
11500         on INTEGER_TYPEs to indicate that it denotes a character type.
11501         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
11502         signed_char_type_node, unsigned_char_type_node and char_type_node.
11503         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
11504         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
11505         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
11506
11507 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
11508             Daniel Berlin  <dberlin@dberlin.org>
11509
11510         * tree-tailcall.c (arg_needs_copy_p): New function.
11511         (eliminate_tail_call): Use arg_needs_copy_p.
11512         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
11513         (add_virtual_phis): New function.
11514
11515 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
11516
11517         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
11518         #ignore instead of #scratch for %g7 .register directive.
11519
11520 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
11521
11522         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
11523         object files.
11524
11525 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
11526
11527         * flow.c (calculate_global_regs_live): Assert that there aren't any
11528         EDGE_FAKE edges.
11529
11530 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
11531
11532         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
11533         what its name says.
11534         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
11535         bsi_after_labels iterator.
11536         * tree-if-conv.c (find_phi_replacement_condition,
11537         replace_phi_with_cond_modify_expr): Likewise.
11538         * tree-scalar-evolution.c (scev_const_prop): Likewise.
11539         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
11540
11541 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
11542
11543         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
11544
11545 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
11546
11547         PR 25990
11548         * tree-cfg.c (move_block_to_fn): Clear out the basic block
11549         array after growing it.
11550
11551 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
11552
11553         PR middle-end/24901
11554         * fold-const.c (fold_checksum_tree): Change type of buf.
11555
11556 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
11557
11558         * reload.c (push_secondary_reload): Initialize t_icode.
11559
11560 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
11561
11562         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
11563         -msoft-float -mlong-double-128 only issue a warning, but don't
11564         swich to DFmode long double.
11565
11566 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
11567
11568         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
11569         has a constant equivalent, iterate over equivalents for arg0,
11570         calling simplify_relational_operation and if there's a result
11571         cheaper than X, apply fold_rtx and return the result.
11572
11573 2006-02-01  Jan Hubicka  <jh@suse.cz>
11574
11575         * opts.c (no_unit_at_a_time_default): New global variable.
11576         (decode_options): Use it.
11577         * opts.h (no_unit_at_a_time_default): Declare.
11578
11579 2006-02-01  Paul Brook  <paul@codesourcery.com>
11580
11581         * function.c (assign_parm_setup_reg): Use function argument promotion
11582         rules.
11583         * expr.c (expand_expr_real_1): Use function argument promotion rules
11584         for PARM_DECLs.
11585
11586 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
11587
11588         * gcc.c (process_command): Change j to 'unsigned int'.
11589
11590 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11591
11592         PR middle-end/26001
11593         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
11594         Use the corrected index for the character
11595         out of the string constant.
11596
11597 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11598
11599         * mode-switching.c (optimize_mode_switching): Fix size
11600         allocated for bb_info[n_entities].
11601
11602 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11603
11604         * gcc.c (main): Correct type that is allocated for
11605         explicit_link_files.
11606
11607 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
11608
11609         * config/s390/s390.c (init_alignment_context): Set
11610         ALIAS_SET_MEMORY_BARRIER on the MEM.
11611         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
11612
11613 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
11614
11615         PR middle-end/25933
11616         * loop-unroll.c (unroll_loop_runtime_iterations): Free
11617         dom_bbs pointer.
11618         * tree-ssa-live.c (type_var_init): Allocate bitmap after
11619         call to tpa_init.
11620
11621 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
11622
11623         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
11624         * regrename.c: Ditto.
11625         * tree-ssa-loop-im.c: Ditto.
11626         * tree-dump.c: Ditto.
11627         * tree-complex.c: Ditto.
11628         * genrecog.c: Ditto.
11629         * tree-ssa-threadupdate.c: Ditto.
11630         * tracer.c: Ditto.
11631         * java/class.c: Ditto.
11632         * java/jcf-parse.c: Ditto.
11633         * java/resource.c: Ditto.
11634         * java/except.c: Ditto.
11635         * java/jvspec.c: Ditto.
11636         * java/jcf-write.c: Ditto.
11637         * java/jcf-path.c: Ditto.
11638         * java/gjavah.c: Ditto.
11639         * java/zextract.c: Ditto.
11640         * java/jcf-io.c: Ditto.
11641         * java/jcf.h: Ditto.
11642         * java/buffer.c: Ditto.
11643         * java/lang.c: Ditto.
11644         * java/parse-scan.y: Ditto.
11645         * java/lex.c: Ditto.
11646         * java/lex.h: Ditto.
11647         * cfgloopmanip.c: Ditto.
11648         * postreload-gcse.c: Ditto.
11649         * tree-ssa-loop-manip.c: Ditto.
11650         * postreload.c: Ditto.
11651         * tree-ssa-loop-ch.c: Ditto.
11652         * loop.c: Ditto.
11653         * ipa-cp.c: Ditto.
11654         * cppspec.c: Ditto.
11655         * diagnostic.c: Ditto.
11656         * final.c: Ditto.
11657         * genoutput.c: Ditto.
11658         * gcc.c: Ditto.
11659         * cfghooks.c: Ditto.
11660         * cfgloopanal.c: Ditto.
11661         * objc/objc-act.c: Ditto.
11662         * gcov.c: Ditto.
11663         * genextract.c: Ditto.
11664         * genautomata.c: Ditto.
11665         * pretty-print.c: Ditto.
11666         * genemit.c: Ditto.
11667         * cgraphunit.c: Ditto.
11668         * flow.c: Ditto.
11669         * df-scan.c: Ditto.
11670         * haifa-sched.c: Ditto.
11671         * dominance.c: Ditto.
11672         * dbxout.c: Ditto.
11673         * tree-ssa-loop-ivopts.c: Ditto.
11674         * df-core.c: Ditto.
11675         * mode-switching.c: Ditto.
11676         * modulo-sched.c: Ditto.
11677         * graph.c: Ditto.
11678         * ipa-pure-const.c: Ditto.
11679         * cse.c: Ditto.
11680         * fix-header.c: Ditto.
11681         * web.c: Ditto.
11682         * tree-stdarg.c: Ditto.
11683         * ipa-utils.c: Ditto.
11684         * loop-init.c: Ditto.
11685         * ipa-inline.c: Ditto.
11686         * cfganal.c: Ditto.
11687         * global.c: Ditto.
11688         * alloc-pool.c: Ditto.
11689         * dwarf2out.c: Ditto.
11690         * opts.c: Ditto.
11691         * genattrtab.c: Ditto.
11692         * tree-ssa-loop-ivcanon.c: Ditto.
11693         * predict.c: Ditto.
11694         * timevar.c: Ditto.
11695         * lcm.c: Ditto.
11696         * fortran/gfortranspec.c: Ditto.
11697         * regmove.c: Ditto.
11698         * local-alloc.c: Ditto.
11699         * langhooks.c: Ditto.
11700         * function.c: Ditto.
11701         * tree-vectorizer.c: Ditto.
11702         * gcse.c: Ditto.
11703         * ipa-type-escape.c: Ditto.
11704         * alias.c: Ditto.
11705         * tree-if-conv.c: Ditto.
11706         * profile.c: Ditto.
11707         * ipa.c: Ditto.
11708         * tree-data-ref.c: Ditto.
11709         * loop-unroll.c: Ditto.
11710         * treelang/treetree.c: Ditto.
11711         * calls.c: Ditto.
11712         * bt-load.c: Ditto.
11713         * ggc-common.c: Ditto.
11714         * except.c: Ditto.
11715         * coverage.c: Ditto.
11716         * cselib.c: Ditto.
11717         * tree-cfgcleanup.c: Ditto.
11718         * tree-ssa-pre.c: Ditto.
11719         * cfgcleanup.c: Ditto.
11720         * loop-invariant.c: Ditto.
11721         * loop-iv.c: Ditto.
11722         * ipa-prop.c: Ditto.
11723         * print-tree.c: Ditto.
11724         * conflict.c: Ditto.
11725         * ggc-page.c: Ditto.
11726         * sched-deps.c: Ditto.
11727         * regclass.c: Ditto.
11728         * tree-object-size.c: Ditto.
11729         * combine.c: Ditto.
11730         * bb-reorder.c: Ditto.
11731         * resource.c: Ditto.
11732         * var-tracking.c: Ditto.
11733         * cfgloop.c: Ditto.
11734         * df-problems.c: Ditto.
11735         * reg-stack.c: Ditto.
11736         * tlink.c: Ditto.
11737         * gccspec.c: Ditto.
11738         * sched-rgn.c: Ditto.
11739         * tree-ssa-structalias.c: Ditto.
11740         * tree-ssa-reassoc.c: Ditto.
11741         * config/darwin-c.c: Ditto.
11742         * config/darwin.c: Ditto.
11743         * config/arm/arm.c: Ditto.
11744         * cfgrtl.c: Ditto.
11745         * collect2.c: Ditto.
11746         * reload1.c: Ditto.
11747
11748 2006-01-31  Nicolas Pitre  <nico@cam.org>
11749
11750         * arm.md (smaxsi3): Make aware of smax_m1.
11751         (smax_m1): New.
11752
11753 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
11754
11755         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11756
11757 2006-01-31  Richard Guenther  <rguenther@suse.de>
11758
11759         * doc/invoke.texi (-msselibm): Document.
11760         * target.h (expand_library_builtin): New target hook.
11761         * builtins.c (expand_builtin): Use expand_library_builtin.
11762         (default_expand_library_builtin): New function.
11763         * gcc.c (LINK_GCC_MATH_SPEC): Define.
11764         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11765         (link_gcc_math_spec): Declare.
11766         (static_specs): Add link_gcc_math_spec.
11767         * expr.h (default_expand_library_builtin): Declare.
11768         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11769         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11770         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11771         * config/i386/i386.opt (msselibm): New target option.
11772         * config/i386/i386.c (ix86_builtin_function_variants): New array.
11773         (ix86_init_sse_abi_builtins): New function.
11774         (ix86_expand_library_builtin): Likewise.
11775         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11776         (override_options): Handle error conditions wrt -msselibm.
11777         (ix86_builtins): Add function codes for SSE2 ABI builtins.
11778         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11779         * doc/extend.texi (__builtin_sse2_*): Document new target specific
11780         builtins.
11781
11782 2006-01-31  Richard Guenther  <rguenther@suse.de>
11783         Paolo Bonzini  <bonzini@gnu.org>
11784
11785         * doc/install.texi (--disable-libgcc-math): Document.
11786
11787 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
11788
11789         * expr.h (expand_normal): new inline function.
11790         * builtins.c: use it, use EXPAND_NORMAL explicitely.
11791         * dojump.c: use it.
11792         * dwarf2out.c: use it.
11793         * expr.c: use it.
11794         * calls.c: use it.
11795         * expmed.c: use it.
11796         * except.c: use it.
11797         * config/sparc/sparc.c: use it.
11798         * config/i386/i386.c: use it.
11799         * config/rs6000/rs6000.c: use it.
11800         * config/arm/arm.c: use it.
11801         * config/mips/mips.c: use it.
11802         * stmt.c: use it, use EXPAND_NORMAL explicitely.
11803
11804 2006-01-30  Roger Sayle  <roger@eyesopen.com>
11805
11806         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11807         argv to the appropriate type.
11808
11809 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
11810
11811         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11812         unreachable code.
11813
11814 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11815
11816         PR target/26018
11817         * config/s390/s390.c (struct machine_function): New flag
11818         decomposed_literal_pool_addresses_ok_p.
11819         (s390_reorg): Set it before final stage of literal pool transforms.
11820         (s390_decompose_address): Only accept displacements of the form
11821         (minus (label_ref ...) (label_ref ...)) if that flag is set.
11822
11823 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
11824
11825         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11826         the comparison routine return.
11827
11828 2006-01-30  Michael Matz  <matz@suse.de>
11829
11830         * global.c (find_reg): Only evict for global regs.
11831         Take n_refs into account and dump more info.
11832
11833 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
11834
11835         PR target/14798:
11836         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11837         (pragma_trap, pragma_nosave_low_regs): Likewise.
11838         (current_function_anonymous_args): Likewise.
11839         (sh_deferred_function_attributes): New variable.
11840         (sh_deferred_function_attributes_tail): Likewise.
11841         (print_operand): For '@', look up trap_exit attribute.
11842         (calc_live_regs): Look up trapa_handler attribute.  For trapa
11843         handlers, save/restore fpscr, but don't do any other
11844         interrupt-specific saves.
11845         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11846         Fix check for partially saved registers to check for SHmedia.
11847         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11848         (sh_output_function_epilogue): Don't clear any of the removed
11849         variables.
11850         (sh_insert_attributes): Don't check pragma_interrupt.
11851         Insert deferred attributes.  Check that interrupt attribute is
11852         present for other attributes that require its presence.
11853         (sh_attribute_table): Add new attributes trapa_handler and
11854         nosave_low_regs.
11855         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11856         Don't check for pragma_interrupt.  Don't store argument.
11857         * sh.h (pragma_interrupt, sp_switch): Don't declare.
11858         (sh_deferred_function_attributes): Declare.
11859         (sh_deferred_function_attributes_tail): Likewise.
11860         * sh.md (sp_switch_1): Add operand.  Change generator caller.
11861         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11862         (*return_i): Don't use when trap_exit attribute is in effect.
11863         (*return_trapa): New insn pattern.
11864         * sh-c.c: New file.
11865         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11866         setting c_target_objs and cxx_target_objs.
11867         * t-sh: Add rule for sh-c.o.
11868
11869 2006-01-30  Richard Guenther  <rguenther@suse.de>
11870
11871         PR c++/23372
11872         * gimplify.c (gimplify_target_expr): Handle easy cases
11873         without creating a temporary.
11874
11875 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
11876
11877         * vec.h (safe_grow): Remove duplicated line.
11878
11879 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
11880
11881         PR 25874
11882         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11883         (expand_omp): ... here.
11884         (expand_omp_parallel): Only remove barriers for combined
11885         parallel+workshare constructs.
11886
11887 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
11888
11889         Revert
11890
11891         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
11892         * tree.c (build_qualified_type): Chain the new type to the original
11893         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11894         a POINTER_TYPE or a REFERENCE_TYPE respectively.
11895         (build_pointer_type_for_mode): Only return unqualified types.
11896         (build_reference_type_for_mode): Likewise.
11897
11898 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
11899
11900         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11901         * Makefile.in (CXX_COMPAT_WARN): Define.
11902         * configure: Regenerate.
11903
11904 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
11905
11906         PR tree-opt/25911
11907         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11908         to an if check.
11909
11910 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11911
11912         * toplev.c: Fix thinko.
11913
11914 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11915             Marcin Dalecki  <martin@dalecki.de>
11916
11917         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11918         (push_srcloc): Use XNEW.
11919         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11920
11921 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
11922
11923         * df-core.c (df_set_blocks): Deleted all variable.
11924
11925 2006-01-28  Ian Lance Taylor  <ian@airs.com>
11926
11927         * cgraphunit.c (cgraph_assemble_pending_functions): Call
11928         cgraph_output_pending_asms.
11929
11930 2006-01-28  Zack Weinberg  <zackw@panix.com>
11931
11932         * c.opt: Add -W(no-)overlength-strings.
11933         * doc/invoke.texi: Document it.
11934         * c-opts.c (c_common_handle_option): -pedantic implies
11935         -Woverlength-strings, if not explicitly disabled already.
11936         (c_common_post_options): -Woverlength-strings defaults to off, and
11937         is always off for C++.
11938         * c-common.c (fix_string_type): Issue warning about strings longer
11939         than is portable only if warn_overlength_strings.  Rearrange code
11940         a little for clarity.
11941         * configure.in: Check for -Wno-overlength-strings as well before
11942         enabling -pedantic in stage 1.
11943         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11944         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11945
11946         * genconditions.c (write_header, write_one_condition)
11947         (write_conditions, write_writer): Consolidate very long strings
11948         that were broken up to fit in C89 portable limit.  Don't use
11949         printf when fputs will do.
11950
11951 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
11952
11953         * combine.c (simplify_comparison <AND>): Check
11954         TRULY_NOOP_TRUNCATION before start using a subreg.
11955
11956         * config/mips/mips.md (*branch_zero<mode>,
11957         *branch_zero<mode>_inverted, *branch_equality<mode>,
11958         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11959         Remove mode check from comparisons.
11960
11961 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
11962
11963         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11964
11965 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11966
11967         * expmed.c (const_mult_add_overflow_p): Remove.
11968         * expr.h: Remove the prototype for const_mult_add_overflow_p.
11969
11970         * recog.c (validate_replace_rtx_subexp): Remove.
11971         * recog.h: Remove the prototype for
11972         validate_replace_rtx_subexp.
11973
11974         * integrate.h: Remove the prototype for
11975         copy_decl_for_inlining.
11976         * rtl.h: Remove the prototype for mark_constant_function.
11977         * tree-vectorizer.h: Remove the prototype for
11978         vect_strip_conversion.
11979
11980         * modulo-sched.c (create_partial_schedule,
11981         free_partial_schedule, reset_partial_schedule): Make them
11982         static.
11983
11984         * hooks.c (hook_bool_rtx_int_false): Remove.
11985         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11986
11987 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
11988
11989         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11990         and -mlong-double-128 are incompatible.
11991         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11992         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11993         (TARGET_LIBGCC2_CFLAGS): Define.
11994         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11995         (TARGET_LIBGCC2_CFLAGS): Same.
11996         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11997
11998 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11999
12000         PR c/19606.
12001         * c-typeck.c (build_binary_op): Perform implicit casts of
12002         operands before shortening them.
12003
12004         * cfgloopmanip.c (split_loop_bb): Remove.
12005         * cfgloop.h: Remove the prototype for split_loop_bb.
12006
12007         * cfgloop.c (flow_loop_outside_edge_p): Remove.
12008         * cfgloop.h: Remove the prototype for
12009         flow_loop_outside_edge_p.
12010
12011         * emit-rtl.c (init_virtual_regs): Make it static.
12012         * function.h: Remove the prototype for init_virtual_regs.
12013
12014         * recog.c (peephole2_optimize): Make it static.
12015         * recog.h: Remove the prototype for peephole2_optimize.
12016
12017 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
12018
12019         * df-scan.c (df_record_entry_block_defs): Check if
12020         INCOMING_RETURN_ADDR_RTX is defined.
12021
12022 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
12023             Kenneth Zadeck <zadeck@naturalbridge.com>
12024
12025         PR rtl-optimization/24762
12026         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
12027         * targhooks.c (hook_void_bitmap): New hook prototype.
12028         * targhoohs.h (hook_void_bitmap): Ditto.
12029         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
12030         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
12031         * target.h (live_on_entry): New function pointer.
12032         * df-scan.c (df_all_hard_regs): Removed.
12033         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
12034         (df_scan_free_internal): Added df->entry_block_defs.
12035         (df_scan_alloc): Ditto.
12036         (df_scan_dump): Ditto.
12037         (df_uses_record): Plumbed flag field properly thru calls.
12038         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
12039         This part fixes PR24762.
12040         (df_bb_refs_record): Added code to make the frame and arg
12041         pointers live in EH blocks.
12042         (df_refs_record): Added call to df_record_entry_block_defs.
12043         (df_record_entry_block_defs): New function.
12044         * df-core.c: Added comments to describe new artifical defs.
12045         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
12046         (entry_block_defs): New field in struct df.
12047         (df_all_hard_regs): Deleted.
12048         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
12049         * df-problems.c (df_ru_bb_local_compute_process_def):
12050         Added code to handle artifical defs in the entry to a function.
12051         (df_ru_bb_local_compute): Ditto.
12052         (df_rd_bb_local_compute_process_def): Ditto.
12053         (df_rd_bb_local_compute): Ditto.
12054         (df_lr_bb_local_compute): Ditto.
12055         (df_ur_bb_local_compute): Ditto.
12056         (df_urec_bb_local_compute): Ditto.
12057         (df_chain_create_bb): Ditto.
12058         (df_ur_local_finalize): Removed entry.
12059         (df_urec_init): Ditto.
12060         (df_urec_local_finalize): Ditto.
12061         (df_ri_bb_compute): Added detection of last use of pseudos.
12062         * Makefile.in (df-scan.o): Updated dependencies.
12063         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
12064         * config/mips/mips.c (mips_set_live_on_entry): Added.
12065         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
12066         for target hook.
12067         * dce.c (marked_insn_p): Added code to handle artifical defs.
12068
12069 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
12070
12071         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
12072         intrinsic.
12073         (_mm_cvtsi128_si64): Likewise.
12074         (_mm_cvtsd_si64): Likewise.
12075         (_mm_cvttsd_si64): Likewise.
12076         (_mm_cvtsi64_sd): Likewise.
12077         (_mm_cvtsi64_si128): Likewise.
12078         * config/i386/mmintrin.h (_m_from_int64): Likewise.
12079         (_mm_cvtsi64_m64): Likewise.
12080         (_m_to_int64): Likewise.
12081         (_mm_cvtm64_si64): Likewise.
12082         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
12083         (_mm_cvttss_si64): Likewise.
12084         (_mm_cvtsi64_ss): Likewise.
12085         (_mm_cvtss_f32): Likewise.
12086
12087 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
12088
12089         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
12090         for pragma redefine_extname.
12091
12092 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
12093
12094         PR target/25864
12095         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
12096         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
12097         -mno-minimal-toc to previous content.
12098         (bispecs): Remove goal.
12099         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
12100         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
12101         compatibility aliases on powerpc-*-*gnu*.
12102         * config/rs6000/libgcc-ppc-glibc.ver: New file.
12103         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
12104         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
12105         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
12106         (ldblspecs): New goal.
12107         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
12108         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
12109         _df_to_tf.
12110         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
12111         L_sf_to_tf or L_df_to_tf is defined.
12112
12113 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
12114             Alan Modra  <amodra@bigpond.net.au>
12115
12116         PR target/25864
12117         * config/rs6000/linux.h (POWERPC_LINUX): Define.
12118         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
12119         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
12120         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
12121         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
12122         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
12123         (rs6000_override_options): Initialize rs6000_ieeequad.
12124         Initialize TFmode format to ibm_extended_format if not
12125         TARGET_IEEEQUAD.
12126         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
12127         ieeelongdouble.
12128         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
12129         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
12130         (function_arg_advance): IBM long double passed in two FPRs, not
12131         split.
12132         (function_arg): IBM long double passed in FPRs.
12133         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
12134         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
12135         Only multireg GPR aligned.
12136         (rs6000_init_libfuncs): Enable IBM long double functions if not
12137         IEEEQUAD.
12138         (rs6000_generate_compare): Use IBM long double compare if not
12139         TARGET_IEEEQUAD.
12140         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
12141         (TARGET_IEEEQUAD): Define.
12142         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
12143         not TARGET_IEEEQUAD.
12144         * config/rs6000/rs6000.md: Enable TFmode patterns if
12145         !TARGET_IEEEQUAD.
12146         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12147         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
12148         and -mlong-double-128 are incompatible.
12149         * doc/invoke.texi (-mabi): Collect options together.  Add
12150         ibmlongdouble and ieeelongdouble.
12151
12152 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
12153
12154         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
12155         opaque type.
12156         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
12157         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
12158         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
12159         * rtl.h (rtunion_def): Remove rt_ptr.
12160         (X0PTR): Delete.
12161         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
12162         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
12163         * config/i386/winnt.c (i386_pe_mark_dllexport)
12164         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
12165
12166 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
12167
12168         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
12169
12170 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
12171
12172         PR other/24829
12173         PR target/24831
12174         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
12175         pthread_key_delete.  From John David Anglin.  gthrw-ify
12176         pthread_getunique_np only if it it's not a macro.  Delete
12177         UNUSED macro.
12178         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
12179         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
12180         __gthread_objc_condition_signal, __gthread_key_delete): Add
12181         "__attribute__ ((__unused__))" to unused arguments.
12182         (__gthread_recursive_mutex_init_function): Add missing return.
12183         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
12184         gthr-posix95.h: Use macro-based approach for name redirection
12185         on targets missing weakref.
12186
12187 2006-01-26  Zack Weinberg  <zackw@panix.com>
12188
12189         * genconditions.c (write_header): In generated code, #ifdef out
12190         all includes and fake declarations, except includes of bconfig.h
12191         and system.h, unless GCC_VERSION >= 3001.  Do not include
12192         gensupport.h in any case.
12193         (write_conditions): Generate a definition of struct c_test.  Add
12194         a comment to the generated #endif.
12195         (write_one_condition): Escape backslashes in string too.
12196         (write_writer): Generated code must escape backslashes and quote
12197         marks (but not newlines) in the strings it writes.
12198         * Makefile.in (build/gencondmd.o): Update dependencies.
12199
12200 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
12201
12202         PR target/25961
12203         * Makefile.in (insn-automata.o): Add header file dependencies.
12204         * genautomata.c: Add includes.
12205
12206 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
12207
12208         PR target/25961
12209         * Makefile.in (insn-automata.o): Add -Wno-error flag.
12210
12211 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
12212
12213         * configure.ac: Expect target tools paths to be passed from the toplevel
12214         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
12215         AS_SET_VAR_IF.
12216         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
12217
12218 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
12219
12220         PR c/25892
12221         * c.opt (Wpointer-sign): Init to -1.
12222         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
12223         OPT_pedantic, to 0 otherwise.
12224         * doc/invoke.texi: Update.
12225
12226 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
12227
12228         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
12229         constants provided by 80387 instructions in the destination mode.
12230
12231 2006-01-26  Richard Guenther  <rguenther@suse.de>
12232             Andrew Pinski  <pinskia@physics.uc.edu>
12233
12234         PR tree-opt/21470
12235         partial PR tree-opt/17064
12236         * tree-ssa-structalias.c (intra_create_variable_infos):
12237         Create heap variables for incoming parameters if
12238         flag_argument_noalias > 1.
12239         (find_what_p_points_to): Look through default defs of
12240         parameter decls.
12241
12242 2006-01-26  Jeff Law  <law@redhat.com>
12243
12244         PR ada/25900
12245         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
12246         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
12247         within the VR_RANGE, use the VR_RANGE as the result, not the
12248         VR_ANTI_RANGE.
12249         (adjust_range_with_scev): Reject ranges from SCEV which are out of
12250         bounds for the type.
12251
12252 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
12253
12254         * tree-ssa-alias.c (maybe_create_global_var): Change
12255         subvar walking to an assertion that we don't have subvar'd variables.
12256
12257 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
12258
12259         PR C/25861
12260         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
12261         Use a new variable, inner.  PARM_DECLs are always non-weak.
12262
12263 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
12264
12265         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
12266         --disable-checking.
12267
12268 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
12269
12270         * config/mips/mips.md (*clear_upper32): New combiner pattern.
12271
12272 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
12273
12274         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
12275         (smax_insn, smin_insn, smax_0, smin_0): New.
12276
12277 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
12278
12279         PR target/25947
12280         * config/cris/cris.c (cris_order_for_addsi3): New function.
12281         * config/cris/cris-protos.h: Prototype it.
12282         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
12283         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
12284         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
12285         (split for "op.S1 [rx=rx+i],ry (swapped)")
12286         (split for "op(s|u).S1 [rx=rx+i],ry")
12287         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
12288         Apply cris_order_for_addsi3 when generating addsi3 insns.
12289
12290 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
12291
12292         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
12293         (TREE_BLOCK): Add call to EXPR_CHECK.
12294
12295 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
12296
12297         PR 25886
12298         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
12299         * tree-pretty-print.c (dump_omp_clause): Extract from ...
12300         (dump_omp_clauses): ... here.
12301         (dump_generic_node): Handle OMP_CLAUSE.
12302         * tree.c (omp_clause_num_ops): New.
12303         (omp_clause_code_name): New.
12304         (tree_code_size): Handle OMP_CLAUSE.
12305         (tree_size): Likewise.
12306         (make_node): Document handling of OMP_CLAUSE.
12307         (tree_node_structure): Handle OMP_CLAUSE.
12308         (omp_clause_check_failed): New.
12309         (omp_clause_range_check_failed): New.
12310         (omp_clause_operand_check_failed): New.
12311         (build_omp_clause): New.
12312         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
12313         * tree.h (enum omp_clause_code): Declare.
12314         (OMP_CLAUSE_SUBCODE_CHECK): Define.
12315         (OMP_CLAUSE_RANGE_CHECK): Define.
12316         (OMP_CLAUSE_ELT_CHECK): Define.
12317         (omp_clause_check_failed): Declare.
12318         (omp_clause_operand_check_failed): Declare.
12319         (omp_clause_range_check_failed): Declare.
12320         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
12321         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
12322         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
12323         (OMP_CLAUSE_LASTPRIVATE): Likewise.
12324         (OMP_CLAUSE_IF_EXPR): Likewise.
12325         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
12326         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
12327         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
12328         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
12329         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
12330         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
12331         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
12332         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
12333         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
12334         (OMP_CLAUSE_CODE): Define.
12335         (OMP_CLAUSE_SET_CODE): Define.
12336         (OMP_CLAUSE_CODE): Define.
12337         (OMP_CLAUSE_OPERAND): Define.
12338         (struct tree_omp_clause): Declare.
12339         (union tree_node): Add field 'omp_clause'.
12340         * treestruct.def (TS_OMP_CLAUSE): Define.
12341         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
12342         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
12343         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
12344         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
12345         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
12346         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
12347         (OMP_CLAUSE): Define.
12348         * print-tree.c (print_node): Handle OMP_CLAUSE.
12349         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
12350         * c-typeck.c: Likewise.
12351         * gimplify.c: Likewise.
12352         * c-omp.c: Likewise.
12353         * tree-nested.c: Likewise.
12354         * tree-inline.c: Likewise.
12355         * c-parser.c: Likewise.
12356         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
12357         clauses.
12358
12359 2006-01-25  Roger Sayle  <roger@eyesopen.com>
12360
12361         PR rtl-optimization/25703
12362         * combine.c (try_combine): Handle zero_extract and strict_low_part
12363         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
12364
12365 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
12366
12367         * global.c: Fix comment typos.
12368
12369 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
12370
12371         PR target/25758
12372         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
12373         Use output_addr_const instead of assemble_name.
12374
12375 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
12376
12377         * Makefile.in (sched-vis.o): Update dependencies.
12378         * haifa-sched.c (sched_finish): Clear current_sched_info.
12379         * cfg.c (dump_bb_info): New, split from dump_flow_info.
12380         (dump_flow_info): Call it.
12381         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
12382         a slim RTL dump.
12383         * basic-block.h (dump_bb_info): Declare.
12384         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
12385         option, and apply options only for dump files whose TDF_RTL,
12386         TDF_TREE, or TDF_IPA bits match.
12387         * rtl.h: Declare new functions exported from sched-vis.c.
12388         * sched-vis.c: Enable also if scheduling is not used.
12389         (print_value): Print the mode of registers if not inside scheduling.
12390         (print_insn): Make it work outside the scheduler.  Beautify the output
12391         a bit.
12392         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
12393
12394 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
12395
12396         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
12397         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
12398         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
12399         depending on the value of CONSTANT_POOL_ADDRESS_P.
12400         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
12401         SYMBOL_REF_DECL.
12402         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
12403         rather than SYMBOL_REF_DECL.
12404         (rtx_constant_pool): Remove const_rtx_sym_htab.
12405         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
12406         (init_varasm_status): Don't initialize const_rtx_sym_htab.
12407         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
12408         Remove handling of const_rtx_sym_htab.
12409         (find_pool_constant): Delete.
12410         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
12411         rather than find_pool_constant.
12412         (get_pool_constant_for_function): Delete.
12413         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
12414         find_pool_constant.
12415         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
12416         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
12417         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
12418         (SYMBOL_REF_CONSTANT): New macro.
12419         (get_pool_constant_for_function): Delete.
12420         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
12421         rather than SYMBOL_REF_DECL.
12422         (i386_pe_mark_dllimport): Likewise.
12423         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
12424         rather than SYMBOL_REF_DECL.
12425         * config/darwin.c (machopic_indirect_data_reference): Likewise.
12426         (machopic_indirect_call_target): Likewise.
12427
12428 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
12429
12430         * flow.c (delete_noop_moves): Add missing EOL to dump message.
12431
12432 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
12433
12434         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
12435
12436 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12437
12438         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
12439
12440 2006-01-24  David Daney  <ddaney@avtrex.com>
12441
12442         PR java/25816
12443         * configure.ac (enable_tls): New enable option.
12444         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
12445         * configure: Regenerate.
12446         * doc/install.texi (--enable-tls): Document new option.
12447         (--disable-tls): Ditto.
12448
12449 2006-01-24  Richard Henderson  <rth@redehat.com>
12450
12451         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
12452         * alias.c (true_dependence): Respect it.
12453         (canon_true_dependence, write_dependence_p): Likewise.
12454         * builtins.c (get_builtin_sync_mem): Set it.
12455
12456 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
12457
12458         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
12459         efficient way.
12460
12461 2006-01-24  DJ Delorie  <dj@redhat.com>
12462
12463         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
12464         for storing constants in single-bit bitfields.
12465
12466 2006-01-25  Ben Elliston  <bje@au.ibm.com>
12467
12468         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
12469
12470 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
12471
12472         PR tree-opt/25860
12473         * tree-ssa-pre.c (phi_translate): Return NULL
12474         for AGGREGATE_TYPE's.
12475
12476 2006-01-24  Zack Weinberg  <zackw@panix.com>
12477
12478         * genautomata.c (process_state_for_insn_equiv_partition):
12479         Use xcalloc for insn_arcs_array.
12480         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
12481         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
12482
12483 2006-01-24  Richard Henderson  <rth@redhat.com>
12484
12485         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
12486         update all callers.
12487
12488 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
12489
12490         PR rtl-optimization/25890
12491         PR rtl-optimization/25905
12492         * combine.c (expand_compound_operation, expand_field_assignment):
12493         Fail if the bitfield's final position is out of bounds.
12494
12495 2006-01-24  Ian Lance Taylor  <ian@airs.com>
12496
12497         PR middle-end/25930
12498         * cgraphunit.c (cgraph_output_in_order): Don't clear
12499         cgraph_asm_nodes until after asm strings have been output.
12500
12501 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
12502
12503         * fix-header.c (read_scan_file): Add new parameter imultilib when
12504         calling register_include_chains.
12505
12506 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
12507
12508         * omp-low.c: Update documentation.
12509
12510 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
12511             Daniel Berlin  <dberlin@dberlin.org>
12512
12513         PR tree-opt/25315
12514         PR tree-opt/25857
12515         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
12516         return from the function.
12517
12518 2006-01-22  Zack Weinberg  <zackw@panix.com>
12519
12520         * rtl.def (match_code): Add second argument.
12521         * genpreds.c (write_extract_subexp): New function.
12522         (write_match_code): Add path argument.  Use write_extract_subexp.
12523         (write_predicate_expr): Pass path to write_match_code.
12524         (mark_mode_tests): MATCH_CODE applied to a subexpression does
12525         not perform a mode test.
12526         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
12527         a subexpression does not constrain the top-level code set.
12528         * read-rtl.c (read_rtx_variadic): New function.
12529         (read_rtx_1): Use it; allow AND and IOR to be variadic.
12530         * doc/md.texi: Document new notation.
12531         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
12532         (cmpsi_operand): ... here, using new notation.
12533
12534 2006-01-22  Zack Weinberg  <zackw@panix.com>
12535
12536         * varray.c: Remove GENERATOR_FILE #ifdefs.
12537
12538 2006-01-22  Zack Weinberg  <zackw@panix.com>
12539
12540         * genautomata.c (output_reserved_units_table): Emit nothing if
12541         description->query_units_num is zero.  Remove extra blank line.
12542         (output_cpu_unit_reservation_p): Short circuit
12543         if description->query_units_num is zero.
12544
12545 2006-01-22  Zack Weinberg  <zackw@panix.com>
12546
12547         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
12548         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
12549         nor any of the random handful of variables that used to be necessary
12550         when this program was linked with rtlanal.o.  Prune set of forward
12551         function declarations.
12552         (struct attr_desc): Remove static_p field.
12553         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
12554         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
12555         (attr_string): Do not read the character one past the length of
12556         the string.
12557         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
12558         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
12559         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
12560         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
12561         (make_automaton_attrs): New.
12562         (main): Do not call into genautomata.  Call local gen_bypass
12563         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
12564         Remove special case for insn_alts.
12565         * genautomata.c: Include gensupport.h; not genattrtab.h nor
12566         varray.h (leftover from previous change).  Prune set of forward
12567         function declarations.  Remove state_alts fields from all
12568         structures.  Remove state_alts_table from struct automaton.
12569         Make everything except main static.  Do not maintain num_dfa_decls.
12570         Do not maintain state_alts fields of various structures.
12571         (process_decls): Don't validate condexp for dm_insn_reserv decls.
12572         (add_arc): Remove state_alts argument.  All callers updated.
12573         (output_reserved_units_table): Emit #ifdef here...
12574         (output_tables): ...not here.  Don't generate state_alts tables.
12575         (expand_automata): Don't generate attributes.
12576         (write_automata): Don't generate state_alts functions.
12577         (main): New function.
12578         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
12579         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
12580         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
12581         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
12582         (BYPASS_P_FUNC_NAME, output_state_alts_table)
12583         (output_automata_list_state_alts_code, output_internal_state_alts_func)
12584         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
12585         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
12586         Delete.
12587         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
12588         * genattrtab.h: Delete file.
12589         * Makefile.in (OBJS-common): Add insn-automata.o.
12590         (insn-automata.o): New rule.
12591         (simple_generated_c): Add insn-automata.c.
12592         (build/genattrtab.o, build/genautomata.o): Update dependencies.
12593         (genprogmd): Add automata.
12594         (build/genattrtab): Needs no extra objects nor libraries.
12595         (build/genautomata): Needs build/vec.o and -lm.
12596
12597 2006-01-22  Zack Weinberg  <zackw@panix.com>
12598
12599         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
12600         (output_dfa_max_issue_rate, locked_states_num): Delete.
12601         (struct automaton): Add locked_states field.
12602         (output_dead_lock_vect): Save number of locked states in
12603         automaton->locked_states.  If it is zero, don't print anything.
12604         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
12605         (output_internal_dead_lock_func): Only test the dead_lock_vect
12606         for automata that have locked states.
12607         (output_statistics): Always print the number of locked states for
12608         each automaton.  Calculate total number of locked states here.
12609         (write_automata): Don't call output_dfa_max_issue_rate.
12610         * genattrtab.c: Define length_unit_log as a const variable.
12611         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
12612         max_insn_queue_index const.
12613         * final.c (length_unit_log): Declare const.
12614         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
12615
12616 2006-01-22  Zack Weinberg  <zackw@panix.com>
12617
12618         * genautomata.c: Include vec.h, not varray.h.
12619         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
12620         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
12621         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
12622         VEC_* macros operating on appropriately typed vectors, or to
12623         malloced arrays when the size is known in advance.  Const-ify
12624         many char* variables and function arguments.  No functional changes.
12625         * Makefile.in (build/varray.o): Delete rule.
12626         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
12627         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
12628
12629 2006-01-22  Zack Weinberg  <zackw@panix.com>
12630
12631         * gensupport.c: Define get_insn_name and record_insn_name here.
12632         (read_md_rtx): Call record_insn_name as appropriate.
12633         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12634         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12635         * genpreds.c, genrecog.c: Don't define get_insn_name nor
12636         record_insn_name.
12637         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
12638         (BUILD_VARRAY): Delete.
12639         (genprognormal): Rename genprogmd.  Fold in all programs from
12640         genprognoprint; also attrtab.
12641         (build/genattrtab): Just mention genautomata.o and varray.o.
12642         Reorganize a bit, add comments to make the categories clearer.
12643
12644 2006-01-22  Zack Weinberg  <zackw@panix.com>
12645
12646         * genconditions.c (condition_table, add_condition): Delete.
12647         (write_conditions): Don't emit n_insn_conditions nor
12648         insn_elision_unavailable.  Issue the gcc version #ifdef here,
12649         inside the table, with no #else clause ...
12650         (write_header): ...not here.
12651         (write_writer): New function.
12652         (main): Don't initialize condition_table.  Use add_c_test.
12653         Call write_writer.
12654         * gensupport.c (init_md_reader_args_cb): Handle multiple input
12655         files on the command line.
12656         (maybe_eval_c_test): Don't check insn_elision_unavailable.
12657         Return -1 if there is no entry in the table, don't abort.
12658         (add_c_test, traverse_c_tests): New functions.
12659         * gensupport.h (insn_elision_unavailable, insn_conditions)
12660         (n_insn_conditions): Delete declarations.
12661         (add_c_test, traverse_c_tests): Declare.
12662         * read-rtl.c: Include gensupport.h.
12663         (read_conditions): New function.
12664         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
12665         (read_rtx_1): If we get EOF when we were looking for an initial
12666         open paren, return 0.  Call read_conditions when appropriate.
12667         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
12668         dummy-conditions.o.  Eliminate references to insn-conditions.o,
12669         or change them to build/gencondmd.o, as appropriate.  Remove
12670         insn-constants.h from $(simple_generated_h) and insn-conditions.c
12671         from $(simple_generated_c).  For all files remaining in those
12672         two lists, add insn-conditions.md to the generator command line.
12673         Give insn-constants.h/s-constants their own rules.  Add rules
12674         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12675         (build/read-rtl.o): Depend on gensupport.h.
12676         (genprognormal): Include preds.
12677         (genprogearly): Rename genprognoprint; only difference is now that
12678         they don't link with $(BUILD_PRINT).
12679         * dummy-conditions.c: Delete.
12680
12681 2006-01-22  Zack Weinberg  <zackw@panix.com>
12682
12683         * genextract.c: Don't include insn-config.h.  Do include vec.h.
12684         Declare vectors of int, char, and locstr.
12685         (locstr): New typedef.
12686         (struct extraction): Make all array fields into bare pointers.
12687         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12688         (insn_code_number): Delete.
12689         (accum_extract): New struct.
12690         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12691         (gen_insn): Take insn_code_number as an argument.  Use an
12692         accum_extract structure instead of loading data directly into
12693         a struct extraction, and having to know how big it might get.
12694         (walk_rtx): Operate entirely on an accum_extract structure.
12695         (print_path): Avoid unnecessary use of printf.
12696         (print_header): New function, split out of main.  Distinguish
12697         more carefully between an unrecognizable insn and an insn that
12698         has the code number of a define_expand.
12699         (main): Pass insn_code_number to gen_insn.  Call print_header
12700         only after parsing.  Avoid unnecessary use of printf.
12701         * Makefile.in (build/vec.o): New rule.
12702         (build/genextract): Depend on build/vec.o.
12703         (build/genextract.o): Don't depend on insn-config.h.
12704
12705 2006-01-22  Zack Weinberg  <zackw@panix.com>
12706
12707         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12708         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
12709         practical.  Eliminate per-generator-program link rules.
12710
12711 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
12712
12713         PR middle-end/24437
12714         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12715         with a call expr to ...
12716         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12717
12718 2006-01-23  Richard Guenther  <rguenther@suse.de>
12719
12720         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12721         before make_edge with conditional EDGE_TRUE_VALUE.
12722
12723 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
12724         Jan Hubicka  <jh@suse.cz>
12725         Richard Guenther  <rguenther@suse.de>
12726
12727         PR rtl-optimization/25654
12728         * cfgexpand.c (aggregate_contains_union_type): New function.
12729         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
12730         for structure variables that contain a union type.
12731
12732 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
12733
12734         * gengtype.c (new_structure): Return the structure.
12735         (create_option): Add an extra "next" argument.
12736         (create_field): New function.
12737         (adjust_field_rtx_def): Use create_option and create_field.
12738         Remove a now-unnecessary call to find_structure.
12739         (adjust_field_tree_def): Likewise.
12740         (note_yacc_type): Remove an unnecessary call to find_structure.
12741         * gengtype.h (new_structure): Return the structure.
12742         (create_option): Add an extra argument.
12743         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12744         (option): Adjust calls to create_option.
12745
12746 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
12747
12748         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12749
12750 2006-01-22  Paul Brook  <paul@codesourcery.com>
12751         Peter Barada  <peter@the-baradas.com>
12752
12753         * config/m68k/m68k.md: Add Coldfire FPU support.
12754         Define FP mode macro and associated attributes.
12755         Use it for float mode patterns.
12756         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12757         (LIBCALL_VALUE): Use m68k_libcall_value.
12758         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12759         (m68k_function_value): Ditto.
12760         (emit_move_sequence): Ditto.
12761         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12762         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12763         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12764         (MULTILIB_EXCEPTIONS): Ditto.
12765         * config/m68k/m68k.opt: Add mcfv4e.
12766         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12767         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12768         (m68k_output_function_prologue): Save ColdFire FPU registers.
12769         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12770         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12771         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12772         ColdFire FPU registers.
12773         (m68k_libcall_value, m68k_function_value): New functions.
12774         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12775         (LIBCALL_VALUE): Use m68k_libcall_value.
12776         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12777         (MASK_COLDFIRE): Add MASK_CFV4E.
12778         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12779         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12780         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12781         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12782         (GO_IF_LEGITIMATE_ADDRESS): Use it.
12783         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12784         * doc/invoke.tex: Document -mcfv4e on m68k.
12785
12786 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
12787
12788         * doc/contribute.texi: Change CVS to SVN and update the corresponding
12789         URL.
12790
12791 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12792
12793         PR c++/16190
12794         * c-opts.c (c_common_handle_option): Don't include
12795         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12796         * doc/invoke.texi (C++ Dialect Options): Document that
12797         -Wnon-virtual-dtor is no longer included in -Wall.
12798
12799 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
12800
12801         * gcov.c (print_version), gcov-dump.c (print_version),
12802         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12803         dates.
12804
12805 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
12806
12807         * df-scan.c (problem_SCAN): Added NULL reset function.
12808         (df_scan_reset_blocks): Added code to call reset block function
12809         (df_bb_refs_delete) Fixed comment.
12810         (df_insn_refs_delete): Made tolerant of deleting non existent info
12811         for dataflow problems that need to be reset.
12812         * df-core.c (df_set_blocks): Ditto.
12813         * df.h (struct df_problem): Added reset_fun.
12814         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12815         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12816         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12817         functions to clear out all references to def-use or use-def chains.
12818
12819 2006-01-21  Ben Elliston  <bje@au.ibm.com>
12820
12821         * varasm.c (assemble_real): Initialise data array.
12822
12823 2006-01-20  Paul Brook  <paul@codesourcery.com>
12824
12825         Merge from csl-arm-branch.
12826         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
12827         * config/arm/arm.md (movdi): Force operands[1] to a register
12828         if we have a non-register source.
12829         (*arm_movdi, *movdf_soft_insn): Require that one of the
12830         operands be a register.
12831         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12832         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12833
12834 2006-01-20  DJ Delorie  <dj@redhat.com>
12835
12836         * varasm.c (initializer_constant_valid_p): Allow pointers
12837         initialized from integer constants of lesser precision.
12838         (output_constant): Allow non-int-sized pointer modes to be
12839         initialized from integer constants.
12840
12841 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
12842
12843         PR libstdc++/25524
12844         * cppdefault.h (struct default_include): Add multilib flag.
12845         * cppdefault.c (cpp_include_defaults): Set it.
12846         * c.opt (-imultilib): New option.
12847         * c-opts.c (imultilib): New.
12848         (c_common_handle_option): Handle -imultilib.
12849         (c_common_post_options): Likewise.
12850         * c-incpath.c (add_standard_paths, register_include_chains):
12851         Likewise.
12852         * c-incpath.h (register_include_chains): Add extra parameter.
12853         * gcc.c (do_spec_1): Generate -imultilib option.
12854         (The Specs Language): Update %I description.
12855         (process_command): Update copyright notice.
12856         * doc/cppopts.texi (-imultilib): Document.
12857         * doc/invoke.texi (-imultilib): Include in option summary.
12858         (%I): Update specs documentation.
12859
12860 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12861
12862         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12863
12864 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
12865
12866         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12867         label numbers.
12868
12869 2006-01-20  Richard Guenther  <rguenther@suse.de>
12870         Steven Bosscher <stevenb.gcc@gmail.com>
12871
12872         PR rtl-optimization/24626
12873         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12874         EDGE_TRUE_VALUE if in RTL mode.
12875
12876         Revert
12877         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12878         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12879
12880 2006-01-20  Dirk Mueller  <dmueller@suse.com>
12881
12882         PR c++/5520
12883         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12884         instead of a special NOP marker.
12885         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12886         NOP marker handling.
12887         * c-common.h (empty_body_warning): Add forward declaration.
12888         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12889         Now uses IS_EMPTY_STMT() instead of special NOP markers.
12890
12891 2006-01-20  Paul Brook  <paul@codesourcery.com>
12892
12893         * Makefile.in (lang_checks): Keep going if mkdir fails.
12894
12895 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12896
12897         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12898         be able to clean out basic block when not necessary.
12899         (df_scan_free): Fixed to properly delete information if df is
12900         unused before calling df_finish.
12901         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12902         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12903         or comment typos.
12904         (df_bb_refs_delete): New function.
12905         (df_refs_delete): Moved per block code to df_bb_refs_delete.
12906         * df-core.c (df_set_blocks): Added code to properly clean out
12907         unused blocks if they are not part of the blocks to consider.
12908         Added additional null check.
12909         (df_compact_blocks): Added basic block parameter to free_bb_fun to
12910         be able to clean out basic block when not necessary
12911         * df.h (df_free_bb_function): Ditto.
12912         (df_bb_refs_delete): New function.
12913         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12914         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12915         basic block parameter to be able to clean out basic block when not
12916         necessary.
12917         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12918         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12919         Fixed to properly delete information if df is unused before
12920         calling df_finish.
12921
12922 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12923
12924         PR rtl-optimization/25799
12925         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12926         Corrected confluence operator to remove bits from op2 before oring
12927         with op1 rather than removing bits from op1.
12928         (df_ru_transfer_function): Corrected test on wrong bitmap which
12929         caused infinite loop.  Both of these problems were introduced in
12930         the dataflow rewrite.
12931
12932 2006-01-19  DJ Delorie  <dj@redhat.com>
12933
12934         * reload1.c (find_reload_regs): Note the details of reload
12935         failures in the dump file.
12936         (spill_failure): Likewise.
12937
12938 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12939
12940         * loop-iv.c: Include df.h and hashtab.h.
12941         (enum iv_grd_result): New enum.
12942         (DF_REF_IV, DF_REF_IV_SET): New macros.
12943         (struct biv_entry): New.
12944         (df, bivs): New global variables.
12945         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12946         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12947         Removed.
12948         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12949         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12950         analyzed_for_bivness_p, record_biv): New functions.
12951         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12952         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12953         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12954         UD chains.
12955         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12956         analysed.
12957         (iv_number_of_iterations): Use new interface to iv analysis.
12958         * loop-unroll.c: Do not include varray.h.
12959         (analyze_iv_to_split_insn): Use new interface to iv
12960         analysis.
12961         * loop-unswitch.c (may_unswitch_on): Ditto.
12962         * df.c (df_bitmaps_free): Only work for bbs for that structures are
12963         allocated.
12964         (df_bb_modify): Realloc tables to the new index.
12965         (df_find_use): New function.
12966         * df.h (df_find_use): Declare.
12967         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12968         outmode.
12969         * cfgloop.h (struct rtx_iv): Remove analysed field.
12970         (iv_get_reaching_def): Removed.
12971         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12972         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12973         (loop-iv.o): Add df.h and hashtab.h dependency.
12974         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12975
12976 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
12977
12978         PR target/25668
12979         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12980         Double TFmode.
12981         (__floatundisf, __floatundidf): Likewise.
12982         * libgcc2.h (IS_IBM_EXTENDED): Define.
12983
12984 2006-01-19  DJ Delorie  <dj@redhat.com>
12985
12986         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12987
12988 2006-01-19  Paul Brook  <paul@codesourcery.com>
12989
12990         * config/arm/arm.c (arm_compute_func_type): Treat all functions
12991         as nothrow when unwinding tables are disabled.
12992
12993 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12994
12995         PR testsuite/25171
12996         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12997         of bit-field" when in system header.
12998
12999 2006-01-19  DJ Delorie  <dj@redhat.com>
13000
13001         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
13002         the 16 bit shift limit of the m16c.
13003
13004 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
13005
13006         PR target/22099
13007         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
13008         * config/i386/i386.c (output_set_got): Output the label if we have one
13009         for the TARGET_DEEP_BRANCH_PREDICTION case.
13010
13011 2006-01-19  Jan Hubicka  <jh@suse.cz>
13012             H.J. Lu  <hongjiu.lu@intel.com>
13013             Evandro Menezes <evandro.menezes@amd.com>
13014
13015         * invoke.texi (generic): Document
13016         (i686) Update.
13017         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
13018         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
13019         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
13020         (x86_use_incdec, x86_pad_returns): New variables
13021         (TARGET_CPU_DEFAULT_generic): New constant
13022         (TARGET_CPU_DEFAULT_NAMES): Add generic.
13023         (enum processor_type): Add generic32 and generic64.
13024         * i386.md (cpu attribute): Add generic32/generic64
13025         (movhi splitter): Behave sanely when both partial_reg_dependency and
13026         partial_reg_stall are set.
13027         (K8 splitters): Enable for generic as well.
13028         * predicates.md (incdec_operand): Use TARGET_INCDEC
13029         (aligned_operand): Avoid memory mismatch stalls.
13030         * athlon.md: Enable for generic64, new patterns for 128bit moves.
13031         * ppro.md: Enable for generic32
13032         * i386.c (generic64_cost, generic32_cost): New.
13033         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
13034         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
13035         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
13036         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
13037         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
13038         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
13039         x86_partial_reg_dependency, x86_memory_mismatch_stall,
13040         x86_accumulate_outgoing_args, x86_prologue_using_move,
13041         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
13042         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
13043         Enable for generic.
13044         (x86_use_incdec, x86_pad_returns): New.
13045         (override_options): Add generic32 and generic64, translate "generic"
13046         to generic32/generic64 and "i686" to "generic32", refuse
13047         "generic32"/"generic64" as arch target.
13048         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
13049         (ix86_reorg): Honor PAD_RETURNS.
13050
13051 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
13052
13053         * tree-pretty-print.c (dump_generic_node): Handle
13054         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
13055         * cgraph.c (cgraph_expand_queue): Rename from
13056         cgraph_analyze_queue.  Update all users.
13057         * cgraphunit.c (cgraph_assemble_pending_functions): Process
13058         cgraph_expand_queue.
13059         (cgraph_expand_all_functions): Likewise.
13060         (cgraph_finalize_pending_functions): Remove.  Update callers.
13061
13062         * tree.h (OMP_DIRECTIVE_P): Define.
13063         (OMP_PARALLEL_FN): Define.
13064         (OMP_PARALLEL_DATA_ARG): Define.
13065         (OMP_SECTIONS_SECTIONS): Define.
13066         * tree-pass.h (pass_expand_omp): Declare.
13067         * omp-low.c (struct omp_region): Declare.
13068         (struct omp_context): Remove fields 'parallel_type',
13069         'parallel_start_ix' and 'parallel_start_additional_args'.
13070         Update all users.
13071         (struct omp_for_data): Rename from struct expand_omp_for_data.
13072         (omp_regions): New static variable.
13073         (root_omp_region): New static variable.
13074         (find_omp_clause): Make static.
13075         (is_in_combined_parallel_ctx): Remove.
13076         (is_combined_parallel): New.
13077         (extract_omp_for_data): Move earlier in the file.
13078         (workshare_safe_to_combine_p): New.
13079         (get_ws_args_for): New.
13080         (determine_parallel_type): Move earlier in the file.
13081         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
13082         child function.
13083         (omp_copy_decl): Likewise.
13084         (create_omp_child_function): Likewise.
13085         (lookup_omp_region): New.
13086         (dump_omp_region): New.
13087         (debug_omp_region): New.
13088         (debug_all_omp_regions): New.
13089         (new_omp_region): New.
13090         (scan_omp_parallel): If parallel_nesting_level > 1, the
13091         directive is nested within another parallel directive.
13092         Set OMP_PARALLEL_FN.
13093         (scan_omp_for): Do not try to handle combined parallel+for
13094         cases.
13095         Remove FIXME comment.
13096         (scan_omp_nested): Remove.
13097         (scan_omp_1): Do not call scan_omp_nested when
13098         parallel_nesting_level is > 1.
13099         Do not change the DECL_CONTEXT of local variables found.
13100         (lookup_decl_in_outer_ctx): New.
13101         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
13102         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
13103         (lower_reduction_clauses): Rename from expand_reduction_clauses.
13104         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
13105         If CTX is nested, lookup VAR in the outer context when
13106         building copy assignment.
13107         (lower_send_clauses): Rename from expand_send_clauses.
13108         If CTX is nested, lookup VAR in the outer context when
13109         building copy assignments.
13110         (lower_send_shared_vars): Rename from expand_send_shared_vars.
13111         If CTX is nested, lookup VAR in the outer context when
13112         building copy assignments.
13113         (expand_parallel_call): Rename from build_parallel_call.
13114         Handle combined parallel+workshare cases.
13115         Re-implement to emit code into the CFG.
13116         (list2chain): New.
13117         (expand_omp_parallel): Re-implement to emit code into the CFG.
13118         Call move_sese_region_to_fn to outline the sub-graph
13119         containing the parallel region.
13120         (expand_omp_for_1): Remove.
13121         (expand_omp_for_generic): Re-implement to emit code into the
13122         CFG.
13123         (expand_omp_for_static_nochunk): Likewise.
13124         (expand_omp_for_static_chunk): Likewise.
13125         (expand_omp_for): Likewise.
13126         (expand_omp_sections): Likewise.
13127         (remove_exit_barriers): New.
13128         (expand_omp_synch): New.
13129         (expand_omp): New.
13130         (build_omp_regions_1): New.
13131         (build_omp_regions): New.
13132         (execute_expand_omp): New.
13133         (gate_expand_omp): New.
13134         (pass_expand_omp): Define.
13135         (lower_omp_sections): Rename from expand_omp_sections.
13136         Set OMP_SECTIONS_SECTIONS.
13137         (lower_omp_single_simple): Rename from expand_omp_single_simple.
13138         (lower_omp_single_copy): Rename from expand_omp_single_copy.
13139         (lower_omp_single): Rename from expand_omp_simple.
13140         (lower_omp_master): Rename from expand_omp_master.
13141         (lower_omp_ordered): Rename from expand_omp_ordered.
13142         (lower_omp_critical): Rename from expand_omp_critical.
13143         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
13144         (lower_omp_for): Re-implement.
13145         (lower_omp_parallel): Re-implement.
13146         (lower_regimplify): Rename from expand_regimplify.
13147         (lower_omp_1): Rename from expand_omp_1.
13148         If there are syntax errors in the program, replace every
13149         OpenMP directive with NOP.
13150         Call lower_omp_* instead of expand_omp_*.
13151         (lower_omp): Rename from expand_omp.
13152
13153         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
13154         * tree-gimple.h (enum omp_parallel_type): Remove.
13155         (gimple_boolify): Declare extern.
13156         (find_omp_clause, determine_parallel_type): Remove.
13157
13158         * gimple-low.c (lower_omp_directive): New.
13159         (lower_stmt): Call it.
13160         (record_vars_into): Move from ...
13161         (record_vars): ... here.
13162         Call record_vars_into with current_function_decl.
13163
13164         * gimplify.c (struct gimplify_ctx): Remove fields
13165         combined_pre_p and combined_ctxp.  Update users.
13166         (get_formal_tmp_var): Add documentation.
13167         (gimple_boolify): Make extern.
13168         (gimplify_expr_in_ctx): Remove.  Update callers.
13169         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
13170         will always be a BIND_EXPR.
13171         (gimplify_expr): Handle OMP_RETURN_EXPR.
13172         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
13173         (OMP_PARALLEL): Add 3 operands.
13174         (OMP_SECTIONS): Add 1 operand.
13175         (OMP_RETURN_EXPR): Define.
13176
13177         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
13178         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
13179         * tree-iterator.c (alloc_stmt_list): Assert that we are not
13180         creating a circular free list.
13181         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
13182
13183         * tree-flow.h (move_sese_region_to_fn): Declare.
13184         (record_vars_into): Declare.
13185         * tree-cfg.c (make_omp_sections_edges): New.
13186         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
13187         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
13188         OMP_SECTIONS and OMP_SECTION.
13189         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
13190         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
13191         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
13192         (gather_blocks_in_sese_region): New.
13193         (struct move_stmt_d): Declare.
13194         (move_stmt_r): New.
13195         (move_block_to_fn): New.
13196         (move_sese_region_to_fn): New.
13197
13198         * passes.c (init_optimization_passes): Schedule
13199         pass_expand_omp after pass_init_datastructures.
13200
13201         * tree-ssa-operands.c (get_expr_operands): Handle
13202         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
13203         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
13204
13205 2006-01-19  Jeff Law  <law@redhat.com>
13206
13207         * tree-vrp.c (extract_range_from_assert): Refine the result range
13208         if the variable referenced by the ASSERT_EXPR has a range and
13209         either the tentative result range or the previous range is a
13210         VR_ANTI_RANGE.
13211
13212 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
13213
13214         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
13215
13216 2006-01-19  Jan Hubicka  <jh@suse.cz>
13217
13218         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
13219
13220 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
13221
13222         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
13223         (expand_compound_operation, expand_field_assignment): Fail if the
13224         bit lengths of an extract operation are out of range.
13225         (make_extraction): Compute wanted_inner_mode based on the position
13226         and length of the extraction.  Make it extraction_mode for non-constant
13227         positions, and do not modify offset in that case.  When generating a
13228         new MEM, use a mode that can hold the extraction while keeping correct
13229         alignment.  Remove code that supported MEMs wrapped by USEs.
13230         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
13231
13232 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
13233
13234         * config/s390/s390.md ("Y", "y"): New mode attribute.
13235         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
13236         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
13237         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
13238         "*addsi3_imm_cc", "*addsi3_carry1_cc",
13239         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
13240         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
13241         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
13242         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
13243         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
13244         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
13245         "addsi3", "subsi3"): Insn patterns removed.
13246         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
13247         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
13248         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
13249         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
13250         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
13251         "*sub<mode>3_cconly2"): New insn patterns.
13252         ("addsi3", "subsi3"): New expanders.
13253
13254 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
13255
13256         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
13257         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
13258         existing STMT_VINFO_VECTYPE if available.
13259         (vect_mark_relevant): Add special handling for stmts that are
13260         marked as STMT_VINFO_IN_PATTERN_P.
13261         (vect_analyze_loop): Call vect_pattern_recog.
13262         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
13263         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
13264         stmt_info.
13265         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
13266         (vect_recog_func_ptr): New function-pointer type.
13267         * tree-vect-patterns.c: New file.
13268         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
13269         (vect_recog_dot_prod_pattern, vect_pattern_recog):
13270         (vect_pattern_recog_1): New functions.
13271         (vect_pattern_recog_funcs): New array of function pointers.
13272
13273         * tree-vectorizer.h (ternary_op): New enum value.
13274         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
13275         declaration. Revised documentation. Removed redundant dump prints.
13276         Removed redundant argument. Added support for reduction patterns.
13277         (vectorizable_reduction): Added support for reduction patterns.
13278         (vect_transform_stmt): Added support for patterns.
13279
13280         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
13281         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
13282         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
13283         (expand_widen_pattern_expr): New function.
13284         (init_optabs): Initialize new optabs udot_prod_optab,
13285         sdot_prod_optab.
13286         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
13287         (sdot_prod_optab, udot_prod_optab): Define new optabs.
13288         (expand_widen_pattern_expr): New function declaration.
13289         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
13290         tree-codes.
13291         * tree-inline.c (estimate_num_insns_1): Added cases for new
13292         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13293         * tree-pretty-print.c (dump_generic_node): Likewise.
13294         (op_prio): Likewise.
13295         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13296         * tree-ssa-operands.c (get_expr_operands): Added case for
13297         DOT_PROD_EXPR.
13298         * tree-vect-patterns.c (widened_name_p): New function.
13299         (vect_recog_dot_prod_pattern): Added function implementation.
13300         * tree-vect-transform.c (get_initial_def_for_reduction): Added
13301         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
13302         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
13303         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
13304
13305         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
13306         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
13307         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
13308         (init_optabs): Initialize new optabs widen_ssum_optab,
13309         widen_usum_optab.
13310         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
13311         (widen_ssum_optab, widen_usum_optab): Define new optabs.
13312         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
13313         use instead of type of def.
13314         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
13315         function implementation.
13316         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
13317         widen_ssumv8hi): New.
13318
13319         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
13320         patterns.
13321
13322 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
13323
13324         PR c/25805
13325         * c-decl.c (add_flexible_array_elts_to_size): New function.
13326         (finish_decl): Use it.
13327
13328 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13329
13330         * diagnostic.h: Include options.h.
13331         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
13332         dependancies for diagnostic.h.
13333         * Makefile.in (DIAGNOSTIC_H): Add options.h.
13334
13335 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
13336
13337         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
13338         (ssa_ro_call_cache_valid): Ditto.
13339         * tree-ssa-alias.c (sort_tags_by_id): New function.
13340         (init_transitive_clobber_worklist): Ditto.
13341         (add_to_worklist): Ditto.
13342         (mark_aliases_call_clobbered): Ditto.
13343         (compute_tag_properties): Ditto.
13344         (set_initial_properties): Ditto.
13345         (compute_call_clobbered): Ditto.
13346         (compute_may_aliases):  Call compute_call_clobbered and grouping.
13347         (compute_flow_sensitive_aliasing): Remove clobbering related code.
13348         (compute_flow_insensitive_aliasing): Grouping now happens in our
13349         caller.
13350         (setup_pointers_and_addressables): Remove clobbering related code.
13351         (add_may_alias): Ditto.
13352         (replace_may_alias): Ditto.
13353         (get_nmt_for): Ditto.
13354         (create_global_var):
13355         (is_escape_site): Return an escape_type enumeration.
13356         * tree-flow-inline.h (is_call_clobbered): Global var does not
13357         imply call clobbered.
13358         (mark_call_clobbered): Take a reason for marking this. Remove
13359         marking of globalness, and cache invalidation.
13360         (clear_call_clobbered): Remove cache invalidation code.
13361         * tree-dfa.c (dump_variable): If details is on, dump the reason
13362         for escaping.
13363         * tree-outof-ssa.c (create_temp): Copy escape mask from original
13364         variable.
13365         * tree-flow.h (struct ptr_info_def): Add escape mask member.
13366         (struct var_ann_d): Ditto.
13367         (enum escape_type): New.
13368         (mark_call_clobbered): Adjust prototype.
13369         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
13370         are never call clobbered.
13371         Record reasons for escaping.
13372         * tree-ssa-structalias.h (is_escape_site): Update prototype.
13373         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
13374         (ssa_ro_call_cache_valid): Ditto.
13375         (clobbered_v_may_defs): Ditto.
13376         (clobbered_vuses): Ditto.
13377         (ro_call_vuses): Ditto.
13378         (clobber_stats): New.
13379         (init_ssa_operands): Zero out clobber stats.
13380         (fini_ssa_operands): Print out clobber stats.
13381         (get_call_expr_operands): Pass callee fndecl to
13382         add_call_read_ops).
13383         (add_call_clobber_ops): Remove use of cache.
13384         Add use of PURE_CONST information.
13385         (add_call_read_ops): Remove use of cache.
13386         Add use of static not_read information.
13387
13388 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
13389
13390         Introduce TLS descriptors for i386 and x86_64.
13391         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
13392         (TARGET_ANY_GNU_TLS): New macro.
13393         (enum tls_dialect): Added TLS_DIALECT_GNU2.
13394         (struct machine_function): Add tls_descriptor_call_expanded_p.
13395         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
13396         (ix86_current_function_calls_tls_descriptor): Likewise.
13397         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
13398         (override_options): Introduce gnu2 tls dialect.
13399         (ix86_frame_pointer_required): Functions containing TLSCALLs are
13400         not leaves.
13401         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
13402         Likewise.
13403         (legitimize_tls_address): Adjust logic for GNU2 TLS.
13404         (ix86_init_machine_status): Initialize new field.
13405         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
13406         (ix86_tls_module_base): New.
13407         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
13408         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
13409         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
13410         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
13411         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
13412         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
13413         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
13414         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
13415         * config/i386/predicates.md (tls_modbase_operand): New.
13416         (tp_or_register_operand): New.
13417
13418 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
13419
13420         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
13421         (look_for_address_of): Ditto.
13422         (ipa_init): Walk the function decls.
13423         (static_execute): Don't set readonly on FUNCTION_DECL's.
13424
13425 2006-01-18  Roger Sayle  <roger@eyesopen.com>
13426
13427         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
13428         for shifts where the source and destination registers are different.
13429
13430 2006-01-18  Paul Brook  <paul@codesourcery.com>
13431
13432         Merge from csl-arm-branch.
13433         2005-03-14  Julian Brown  <julian@codesourcery.com>
13434         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
13435         (aeabi_llsl): Likewise.
13436         (ashrdi3): Likewise.
13437         (aeabi_lasr): Likewise.
13438         (lshrdi3): Likewise.
13439         (aeabi_llsr): Likewise.
13440         2005-03-10  Julian Brown  <julian@codesourcery.com>
13441         * config.gcc: Disable shared libgcc for SymbianOS.
13442         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
13443
13444 2006-01-18  DJ Delorie  <dj@redhat.com>
13445
13446         * c-pragma.c (handle_pragma_diagnostic): New.
13447         (init_pragma): Register it.
13448         * doc/extend.texi: Document it.
13449
13450         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
13451         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
13452         (diagnostic_context): Add classify_diagnostic[].
13453         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
13454         as errors if they're overridden to DK_WARNING.
13455         (diagnostic_initialize): Initialize classify_diagnostic[].
13456         (diagnostic_set_kind_override): New.
13457         (diagnostic_report_diagnostic): Check for kind changes.
13458         * opts.c (common_handle_option): Take lang_mask.  Update callers.
13459         Handle OPT_Werror_.
13460         * common.opt (Werror=): New.
13461         * doc/invoke.texi: Document -Werror=*
13462
13463 2006-01-18  Jeff Law  <law@redhat.com>
13464
13465         * tree-vrp.c (test_for_singularity): Correct test for new
13466         min limit.  Use operand_equal_p rather than pointer equality
13467         for testing if new min/max values are equal.
13468
13469         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
13470         using range information until after propagation and folding.
13471
13472 2006-01-18  Richard Henderson  <rth@redhat.com>
13473             Aldy Hernandez  <aldyh@redhat.com>
13474             Jakub Jelinek  <jakub@redhat.com>
13475             Diego Novillo  <dnovillo@redhat.com>
13476
13477         * omp-low.c: New file.
13478         * c-omp.c: New file.
13479
13480 2006-01-18  Richard Henderson  <rth@redhat.com>
13481             Jakub Jelinek  <jakub@redhat.com>
13482             Diego Novillo  <dnovillo@redhat.com>
13483
13484         * doc/invoke.texi: Document -fopenmp.
13485         * tree-dump.h (debug_function): Declare.
13486         * hooks.c (hook_bool_tree_bool_false): New function.
13487         (hook_tree_tree_null): Remove.
13488         (hook_tree_tree_tree_null): New.
13489         * hooks.h: Update to match.
13490         * tree-pretty-print.c (debug_tree_chain): New.
13491         (print_generic_expr): Handle TDF_CHAIN.
13492         (dump_generic_node): Handle BLOCK.
13493         Do not abort with incomplete SWITCH_EXPRs.
13494         Do not dump body of an OpenMP directive if TDF_SLIM is given.
13495         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
13496         print space after directive name.
13497         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
13498         Handle OMP_MASTER and OMP_ORDERED.
13499         Handle printing of OMP_BODY just in one place, goto
13500         dump_omp_body in the rest of OMP_* nodes that have
13501         OMP_BODY.
13502         Don't handle clause nodes here.  Update omp statements to
13503         use dump_omp_clauses.
13504         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
13505         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
13506         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
13507         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
13508         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
13509         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
13510         Adjust output for GOMP_PARALLEL.
13511         (dump_omp_clauses): New.
13512         (print_declaration): Dump DECL_VALUE_EXPR.
13513         (op_symbol_1): Split out of op_symbol.
13514         (dumping_stmts): Remove.  Update all users.
13515         * cgraph.c (cgraph_analyze_queue): New.
13516         (cgraph_add_new_function): New.
13517         * cgraph.h (cgraph_analyze_queue): Declare.
13518         (cgraph_add_new_function): Declare.
13519         (cgraph_lower_function): Remove.
13520         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
13521         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
13522         and TYPE_P nodes in its default clause.
13523         (empty_body_p): New.
13524         (tree_range_check_failed): New.
13525         (build5_stat): New.
13526         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
13527         OMP_CLAUSE_REDUCTION_MERGE,
13528         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
13529         OMP_CLAUSE_PRIVATE_DEBUG,
13530         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
13531         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
13532         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
13533         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
13534         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
13535         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
13536         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
13537         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
13538         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
13539         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
13540         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
13541         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
13542         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
13543         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
13544         (TREE_RANGE_CHECK): New.
13545         (empty_body_p): Declare.
13546         (enum omp_clause_default_kind): New.
13547         (build_string_literal): Declare.
13548         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
13549         (build5_stat, build5): Declare.
13550         * tree-pass.h (TDF_CHAIN): Define.
13551         * tree-pass.h (PROP_gimple_lomp): Define.
13552         (pass_lower_omp): Declare.
13553         * diagnostic.h (debug_tree_chain): Declare.
13554         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
13555         mode_for_size.
13556         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
13557         * builtins.c (build_string_literal): Make extern.
13558         * gcc.c (include_spec_function): New.
13559         (static_spec_functions): Add it.
13560         (main): Move load of libgomp.spec ...
13561         (LINK_COMMAND_SPEC): ... here.
13562         (link_gomp_spec): New.
13563         (static_specs): Include it.
13564         (LINK_COMMAND_SPEC): Add link_gomp.
13565         (GOMP_SELF_SPECS): New.
13566         (driver_self_specs): Include it.
13567         (switch_matches): Don't mark inline.
13568         (main): Load libgomp.spec.
13569         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
13570         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
13571         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
13572         * tree-gimple.h (enum omp_parallel): Declare.
13573         (determine_parallel_type): Declare.
13574         (omp_firstprivatize_variable): Declare.
13575         (omp_reduction_init): Declare.
13576         (diagnose_omp_structured_block_errors): Declare.
13577         (struct walk_stmt_info): Add want_return_expr.
13578         (struct walk_stmt_info): Add want_bind_expr, want_locations.
13579         (find_omp_clause): Declare.
13580         (insert_field_into_struct): Declare.
13581         (struct walk_stmt_info): Move from tree-nested.c
13582         (walk_stmts): Declare.
13583         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
13584         to 200505.
13585         * cgraphunit.c (cgraph_lower_function): Make static.
13586         (cgraph_finalize_pending_functions): New.
13587         (cgraph_finalize_function): Call it.
13588         (cgraph_finalize_compilation_unit): Likewise.
13589         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
13590         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
13591         (BT_FN_UINT_UINT): New.
13592         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
13593         DEF_FUNCTION_TYPE_VAR_4): Document.
13594         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
13595         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
13596         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
13597         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
13598         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
13599         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
13600         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
13601         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
13602         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
13603         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
13604         into separate files.
13605         (DEF_GOMP_BUILTIN): New.
13606         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
13607         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
13608         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
13609         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
13610         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
13611         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
13612         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
13613         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
13614         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
13615         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
13616         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
13617         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
13618         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
13619         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
13620         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
13621         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
13622         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
13623         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
13624         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
13625         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
13626         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
13627         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
13628         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
13629         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
13630         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
13631         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
13632         * sync-builtins.def: New file, moved from builtins.def.
13633         * omp-builtins.def: New file, moved from builtins.def.
13634         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
13635         * gimple-low.c (lower_function_body): Clear data.
13636         (lower_stmt): Do not handle COMPOUND_EXPR.
13637         Remove call to print_node_brief.
13638         * c-tree.h (c_finish_omp_clauses): New prototype.
13639         (C_DECL_THREADPRIVATE_P): Define.
13640         (lookup_name_no_remap, c_omp_remap_private): Remove
13641         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
13642         (check_for_loop_decls): Update decl.
13643         (lookup_name_no_remap, c_omp_remap_private): Declare.
13644         (build_indirect_ref, build_modify_expr, pushdecl,
13645         pushdecl_top_level): Move to c-common.h.
13646         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
13647         before the switch, but just in the 2 places that need it.
13648         * c-decl.c (diagnose_mismatched_decls): Do not check for
13649         mismatched thread-local attributes when OLDDECL is marked
13650         threadprivate and NEWDECL has no thread-local attributes.
13651         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
13652         (c_gimple_diagnostics_recursively): Rename from
13653         c_warn_unused_result_recursively.  Invoke
13654         diagnose_omp_structured_block_errors.
13655         (check_for_loop_decls): Return a singular decl found.
13656         * langhooks.c (lhd_omp_predetermined_sharing): Return
13657         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
13658         (lhd_omp_firstprivatize_type_sizes): New.
13659         (lhd_omp_assignment): New.
13660         (lhd_omp_predetermined_sharing): New.
13661         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
13662         (struct lang_hooks_for_types): Add
13663         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
13664         omp_predetermined_sharing, omp_disregard_value_expr,
13665         omp_private_debug_clause, omp_clause_default_ctor,
13666         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
13667         (c_finish_omp_clauses): New.
13668         (c_finish_bc_stmt): Diagnose break within omp for.
13669         (c_begin_omp_parallel, c_finish_omp_parallel): New.
13670         (build_unary_op): Return error_mark after reporting
13671         a readonly_error.
13672         (build_modify_expr): Likewise.
13673         * gimplify.c: Include optabs.h and pointer-set.h.
13674         (enum gimplify_omp_var_data): Declare.
13675         (struct gimplify_omp_ctx): Declare.
13676         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13677         and combined_ctxp.
13678         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13679         (push_gimplify_context, pop_gimplify_context): Allow nesting.
13680         (splay_tree_compare_decl_uid): New.
13681         (new_omp_context): New.
13682         (delete_omp_context): New.
13683         (gimple_add_tmp_var): Call omp_add_variable.
13684         (gimplify_bind_expr): Likewise.
13685         (gimplify_var_or_parm_decl): If omp_notice_variable returned
13686         true, disregard DECL_VALUE_EXPR on the decl if any.
13687         (gimplify_expr_in_ctx): New.
13688         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13689         omp_add_variable, omp_notice_variable, omp_is_private
13690         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13691         gimplify_adjust_omp_clauses, gimplify_omp_parallel
13692         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13693         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13694         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13695         gimplify_omp_atomic): New.
13696         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13697         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13698         OMP_CRITICAL and OMP_ATOMIC.
13699         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13700         * c-pragma.h (enum pragma_kind): Add
13701         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13702         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13703         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13704         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13705         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13706         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13707         PRAGMA_OMP_THREADPRIVATE.
13708         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13709         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13710         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13711         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13712         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13713         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13714         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13715         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13716         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13717         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13718         * tree-ssa-dce.c (find_control_dependence): Do not assume that
13719         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13720         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13721         OpenMP directives.
13722         (struct nesting_info): Add field_map,
13723         suppress_expansion, debug_var_chain.
13724         (create_nesting_tree): Initialize them.
13725         (lookup_field_for_decl): Use field_map.
13726         (get_nonlocal_debug_decl, get_local_debug_decl): New.
13727         (convert_local_omp_clauses): New.
13728         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13729         (walk_body): Split out of walk_function.
13730         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13731         (convert_nonlocal_reference): Handle omp statements.
13732         (convert_local_reference): Likewise.
13733         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13734         (unnest_nesting_tree): New.
13735         (lower_nested_functions): Call it.
13736         (insert_field_into_struct): Make extern.
13737         (struct walk_stmt_info): Move to tree-gimple.h.
13738         (walk_stmts): Make extern.
13739         * omp-builtins.def: New file.
13740         * tree-iterator.c (expr_only): Clarify comment.
13741         * c-common.h (pushdecl_top_level, pushdecl,
13742         build_modify_expr, build_indirect_ref,
13743         c_finish_omp_master, c_finish_omp_critical,
13744         c_finish_omp_ordered, c_finish_omp_barrier,
13745         c_finish_omp_atomic, c_finish_omp_flush,
13746         c_finish_omp_for, c_split_parallel_clauses,
13747         omp_clause_default_kind, c_omp_sharing_predetermined,
13748         c_omp_remap_decl): Declare.
13749         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13750         (OBJS-common): Add omp-low.o.
13751         (c-omp.o, omp-low.o): Add.
13752         (gimplify.o): Add dependency on $(OPTABS_H).
13753         (GTFILES): Add omp-low.c.
13754         (gt-stringpool.h): Add.
13755         * tree-cfg.c (set_bb_for_stmt): Do not update the
13756         block-to-labels map if we are currently expanding to RTL.
13757         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13758         checks.
13759         Handle IDENTIFIER_NODE.
13760         (tree_verify_flow_info): Do not ICE when emitting error
13761         messages about invalid labels.
13762         (dump_function_to_file): Reset CFUN before emitting the body
13763         of the function.
13764         (debug_function): New.
13765         * passes.c (init_optimization_passes): Schedule
13766         pass_lower_omp.
13767         * langhooks-def.h (lhd_omp_predetermined_sharing,
13768         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13769         Declare.
13770         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13771         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13772         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13773         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13774         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13775         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13776         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13777         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13778         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13779         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13780         (LANG_HOOK_DECLS): Use them.
13781
13782 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13783             Richard Henderson  <rth@redhat.com>
13784             Jakub Jelinek  <jakub@redhat.com>
13785             Diego Novillo  <dnovillo@redhat.com>
13786
13787         * c-parser.c (pragma_omp_clause): Define.
13788         (c_parser_declaration_or_fndef): Document OpenMP syntax.
13789         (c_parser_compound_statement): Likewise.
13790         (c_parser_statement): Likewise.
13791         (c_parser_pragma): Handle omp pragmas.
13792         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13793         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13794         (c_parser_omp_clause_name, check_no_duplicate_clause,
13795         c_parser_omp_variable_list,
13796         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13797         c_parser_omp_clause_copyprivate,
13798         c_parser_omp_clause_default,
13799         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13800         c_parser_omp_clause_lastprivate,
13801         c_parser_omp_clause_nowait,
13802         c_parser_omp_clause_num_threads,
13803         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13804         c_parser_omp_clause_reduction,
13805         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13806         c_parser_omp_all_clauses, c_parser_omp_structured_block,
13807         c_parser_omp_atomic, c_parser_omp_barrier,
13808         c_parser_omp_critical, c_parser_omp_flush,
13809         c_parser_omp_for_loop, c_parser_omp_for,
13810         c_parser_omp_master, c_parser_omp_ordered,
13811         c_parser_omp_sections_scope, c_parser_omp_sections,
13812         c_parser_omp_parallel, c_parser_omp_single,
13813         c_parser_omp_construct, c_parser_omp_threadprivate): New.
13814         * c-pragma.c (init_pragma): Do omp pragma registration here.
13815         * c.opt (fopenmp): New flag.
13816
13817 2006-01-18  Eric Christopher  <echristo@apple.com>
13818
13819         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13820         * config/darwin.h (GOMP_SELF_SPECS): Define.
13821
13822 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13823
13824         * rtl.h: Remove the prototype for reg_alloc.
13825
13826 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13827
13828         PR target/25731
13829         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13830         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13831         sjlj and dwarf2 exception handling.
13832         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13833         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13834         * pa/pa.c (function_value): Treat complex and vector types as
13835         aggregates.
13836         (function_arg): Likewise.  Only pass scalar floats in the floating
13837         point argument registers.
13838         * pa/t-slibgcc-dwarf-ver: New file.
13839         * pa/t-slibgcc-sjlj-ver: New file.
13840         * pa/t-slibgcc-elf-ver: Delete file.
13841
13842 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
13843
13844         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13845         unlikely_test_section_p test.
13846
13847 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13848
13849         * mode-switching.c (optimize_mode_switching): Make it static.
13850         * basic-block.h: Remove the prototype for
13851         optimize_mode_switching.
13852
13853         * modulo-sched.c (sms_schedule): Make it static.
13854         * rtl.h: Remove the prototype for sms_schedule.
13855
13856         * postreload-gcse.c (gcse_after_reload_main): Make it static.
13857         * rtl.h: Remove the prototype for gcse_after_reload_main.
13858
13859         * reg-stack.c (reg_to_stack): Make it static.
13860         * rtl.h: Remove the prototype for reg_to_stack.
13861
13862         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13863         Make them static.
13864         * rtl.h: Remove the prototypes for regrename_optimize and
13865         copyprop_hardreg_forward.
13866
13867 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13868
13869         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13870         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
13871         Test against the appropriate null constant for the mode.
13872         If 'fixup_overlap' is true, swap the operands if they overlap.
13873         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13874         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13875         alpha_split_tmode_pair and adjust for above change.
13876         * config/alpha/alpha.md (movtf_internal): Adjust call to
13877         alpha_split_tfmode_pair and rely on it to swap the operands.
13878         (movti_internal): New insn and post-reload splitter.
13879         (movti): New expander.
13880
13881 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
13882
13883         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13884         operands.
13885
13886 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13887
13888         * rtlanal.c (global_reg_mentioned_p_1,
13889         global_reg_mentioned_p): Remove.
13890         * rtl.h: Remove the prototype for global_reg_mentioned_p.
13891
13892         * flow.c (initialize_uninitialized_subregs): Make it static.
13893         * rtl.h: Remove the prototype for
13894         initialize_uninitialized_subregs.
13895
13896         * function.c (instantiate_virtual_regs): Make it static.
13897         * function.h: Remove the prototype for
13898         instantiate_virtual_regs.
13899
13900         * regmove.c (regmove_optimize, combine_stack_adjustments):
13901         Make them static.
13902         * rtl.h: Remove the prototypes for regmove_optimize and
13903         combine_stack_adjustments.
13904
13905 2006-01-17  Roger Sayle  <roger@eyesopen.com>
13906
13907         * config/i386/i386.c (COSTS_N_BYTES): New macro.
13908         (size_cost): Encode costs in bytes so that a reg-reg addition is
13909         equivalent to COSTS_N_INSNS(1).
13910         (override_options): Use the size_cost.branch_cost as the default
13911         ix86_branch_cost when optimizing for size.
13912
13913 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13914
13915         * Makefile.in (D32PBIT_FUNCS): New.
13916         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13917         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13918         D64PBIT_FUNCS and D128PBIT_FUNCS.
13919         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13920         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13921         D128PBIT are set.
13922         (decnumber_dep): Define.
13923         * doc/libgcc.texi (Decimal float library routines): New node.
13924         * config/dfp-bit.h, config/dfp-bit.c: New files.
13925
13926 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13927
13928         * expr.c (emit_move_change_mode): Always adjust addresses, not
13929         just during reload.  Copy replacements only during reload.
13930         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13931         emit_move_via_integer.
13932
13933 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
13934
13935         * Makefile.in (check-%, check-consistency): Use $${srcdir}
13936         instead of $(srcdir) and ${srcdir}.
13937
13938 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
13939
13940         PR target/592
13941         PR middle-end/11135
13942         * arm.h (struct machine_function): Add pic_reg.
13943         * arm.c (arm_pic_register): Make unsigned.
13944         (arm_override_options): Only set arm_pic_register if
13945         TARGET_SINGLE_PIC_BASE.
13946         (use_return_insn): Only test for a pic register if it is fixed.
13947         (arm_compute_save_reg0_reg12_mask): Likewise.
13948         (thumb_compute_save_reg_mask): Likewise.
13949         (legitimate_pic_operand): Factor out some known invariants.
13950         (legitimize_pic_address): If we don't have a fixed pic register,
13951         then set up a pseudo in the function entry sequence.  Handle the
13952         pic base being in a pseudo.
13953         (arm_load_pic_register): Handle the pic register being in a pseudo.
13954         (arm_expand_prologue): Only set up the pic register if it is fixed.
13955         (thumb_expand_prologue): Likewise.
13956         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13957         (pic_load_addr_based_insn): Likewise.
13958         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13959         fixed.
13960
13961 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13962
13963         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13964         decimal float modes for all floating point registers.
13965
13966         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13967         match_code "mem" with match_test "macho_lo_sum_memory_operand".
13968
13969 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
13970
13971         PR c/25682
13972         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13973         even when the pointer is not NULL.
13974
13975 2006-01-16  Ian Lance Taylor  <ian@airs.com>
13976
13977         * common.opt (ftoplevel-reorder): New option.
13978         * cgraph.c (cgraph_asm_nodes): New global variable.
13979         (cgraph_asm_last_node): New static variable.
13980         (cgraph_order): New global variable.
13981         (cgraph_create_node): Set new order field.
13982         (cgraph_varpool_node): Likewise.
13983         (decide_is_variable_needed): Return true if not
13984         flag_toplevel_reorder.
13985         (cgraph_add_asm_node): New function.
13986         * cgraph.h (struct cgraph_node): Add order field.
13987         (struct cgraph_varpool_node): Add order field.
13988         (struct cgraph_asm_node): Define.
13989         (cgraph_asm_nodes, cgraph_order): Declare.
13990         (cgraph_add_asm_node): Declare.
13991         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13992         function.
13993         (cgraph_varpool_assemble_pending_decls): Call it.
13994         (cgraph_output_pending_asms): New static function.
13995         (cgraph_finalize_compilation_unit): Call it.
13996         (struct cgraph_order_sort): Define.
13997         (cgraph_output_in_order): New static function.
13998         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
13999         !flag_toplevel_reorder case.
14000         * c-parser.c: Include "cgraph.h".
14001         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
14002         assemble_asm.
14003         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
14004         than -fno-unit-at-a-time.
14005         * doc/invoke.texi (Option Summary): Mention
14006         -fno-toplevel-reorder.
14007         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
14008         -funit-at-a-time documentation.
14009
14010 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
14011             Kazu Hirata  <kazu@codesourcery.com>
14012
14013         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
14014
14015 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
14016
14017         * Makefile.in (FUNCTION_H): New.  Use it instead of
14018         function.h throughout the file.
14019         * function.h: Include tree.h.
14020
14021 2006-01-17  Ben Elliston  <bje@au.ibm.com>
14022
14023         * recog.c: Separate some functions with whitespace.
14024
14025 2006-01-16  Richard Henderson  <rth@redhat.com>
14026
14027         Merge from gomp branch:
14028         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
14029         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
14030         and rename from struct inline_data.  Rename callee* to dst*;
14031         caller* to src*; add copy_decl hook, transform_call_graph_edges,
14032         transform_new_cfg, transform_return_to_modify, and
14033         transform_lang_insert_block flags; remove cloning_p, versioning_p,
14034         update_clones_p.
14035         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
14036         (copy_decl_for_dup): Remove.
14037         * tree-inline.c (struct inline_data): Move to header.
14038         (insert_decl_map): Export.
14039         (remap_decl): Update for member name changes.  Use copy_decl hook.
14040         Allow for replacement to be a non-decl.  Remove dead code.
14041         (remap_type_1): Check for existing mapping.
14042         (remap_type): Export.
14043         (remap_decls): Update for member name changes.
14044         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
14045         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
14046         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
14047         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
14048         (tree_function_versioning, build_duplicate_type): Likewise.
14049         (copy_body_r): Likewise.  Export.
14050         (copy_decl_for_dup): Split into ...
14051         (copy_decl_for_dup_finish, copy_decl_to_var,
14052         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
14053         (replace_ref_tree, inlining_p): Remove.
14054
14055 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
14056
14057         * ifcvt.c (if_convert): Make it static.
14058         * rtl.h: Remove the prototype for if_convert.
14059
14060         * local-alloc.c (local_alloc): Make it static.
14061         * rtl.h: Remove the prototype for local_alloc.
14062
14063         * loop.c (loop_optimize): Make it static.
14064         * cfgloop.h: Remove the prototype for loop_optimize.
14065         * rtl.h: Likewise.
14066
14067 2006-01-16  DJ Delorie  <dj@redhat.com>
14068
14069         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
14070         mems.
14071
14072 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14073
14074         * pa.md: Disparage copies between general and floating-point registers
14075         in 32-bit move patterns.
14076
14077 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
14078
14079         PR testsuite/25741
14080         * Makefile.in (check-%): Depend on site.exp instead of
14081         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
14082         directories.
14083
14084 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
14085
14086         * global.c (global_alloc): Make it static.
14087         * rtl.h: Remove the prototype for global_alloc.
14088
14089 2006-01-16  Richard Guenther  <rguenther@suse.de>
14090
14091         * tree-ssa-alias.c (struct used_part): Add write_only field.
14092         (get_or_create_used_part_for): Initialize it to true.
14093         (create_overlap_variables_for): Don't create structure variables
14094         for structures that only are written to.
14095         (find_used_portions): Handle MODIFY_EXPR to track whether a
14096         structure is only written to.
14097
14098 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
14099
14100         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
14101         static.
14102         * basic-block.h: Remove the prototype for
14103         partition_hot_cold_basic_blocks.
14104
14105 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
14106
14107         * cppspec.c (lang_specific_spec_functions): Remove.
14108         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
14109         * gcc.h (lang_specific_spec_functions): Remove.
14110         * gccspec.c (lang_specific_spec_functions): Remove.
14111
14112 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
14113
14114         * combine.c (record_value_for_reg): Invalidate registers
14115         if INSN is null.
14116         (record_dead_and_set_regs_1): Likewise, by passing them to
14117         record_value_for_reg.
14118         (record_dead_and_set_regs): Invalidate stores made by a
14119         call.  We do not combine across a call, but we still
14120         relied on equivalences.
14121
14122 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
14123
14124         * tree-vrp.c (extract_range_from_binary_expr): Cope with
14125         vrp_int_const_binop returning non-constant nodes.
14126
14127 2006-01-16  Paul Brook  <paul@codesourcery.com>
14128
14129         * config/m68k/m68k.c (output_move_const_into_data_reg):
14130         Output correct mnemonic for mvz and mvs.
14131
14132 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
14133
14134         * rtl-factoring.c: Add sequence abstraction algorithm.
14135         * cfgcleanup.c (outgoing_edges_match): Extra checks.
14136         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
14137         ABNORMAL edges.
14138         (block_has_preserve_label): New function.
14139         * common.opt: Register new pass.
14140         * Makefile.in: Ditto.
14141         * passes.c: Ditto.
14142         * timevar.def: Ditto.
14143         * tree-pass.h: Ditto.
14144         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
14145         * rtl.h (make_jump_insn_raw): Add forward decl.
14146         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
14147
14148 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
14149             Roger Sayle  <roger@eyesopen.com>
14150
14151         * fold-const.c (fold_minmax): New static function.
14152         (fold_binary) <MIN_EXPR>: Call it.
14153         <MAX_EXPR>: Likewise.
14154         * stor-layout.c (place_field): Use DECL_SIZE consistently
14155         in the computation of the new record size.
14156
14157 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
14158
14159         * cse.c (cse_condition_code_reg): Make it static.
14160         * rtl.h: Remove the prototype for cse_condition_code_reg.
14161
14162         * combine.c (combine_instructions): Make it static.
14163         * rtl.h: Remove the prototype for combine_instructions.
14164
14165 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14166
14167         PR target/25168
14168         * tree.c (get_file_function_name_long): Concatenate the first global
14169         object name with a string derived from the input filename of the object
14170         for type "F".
14171
14172 2006-01-16  Ben Elliston  <bje@au.ibm.com>
14173
14174         * config/i386/winnt-stubs.c: Update FSF address.
14175         * config/xtensa/ieee754-df.S: Ditto.
14176         * config/xtensa/ieee754-sf.S: Ditto.
14177
14178 2006-01-14  Ian Lance Taylor  <ian@airs.com>
14179
14180         * ifcvt.c (noce_init_if_info): New static function, broken out of
14181         noce_process_if_block.
14182         (noce_process_if_block): Call noce_init_if_info.
14183         (check_cond_move_block): New static function.
14184         (cond_move_process_if_block): New static function.
14185         (process_if_block): Call cond_move_process_if_block.
14186
14187 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
14188
14189         * cselib.c (hash_table): Rename to cselib_hash_table.
14190         (cselib_clear_table, discard_useless_values,
14191         remove_useless_values, cselib_lookup_mem, cselib_lookup,
14192         cselib_init, cselib_finish): Adjust uses of hash_table.
14193
14194 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
14195
14196         PR tree-optimization/25485
14197         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
14198         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
14199         is known to be false and true, respectively.
14200
14201 2006-01-14  Richard Guenther  <rguenther@suse.de>
14202
14203         PR tree-optimization/22548
14204         PR tree-optimization/22555
14205         PR tree-optimization/22501
14206         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
14207         * params.def (salias-max-array-elements): New parameter.
14208         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
14209         * doc/invoke.texi (salias-max-array-elements): Document.
14210         * tree-flow-inline.h (var_can_have_subvars): We also handle
14211         arrays now.
14212         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
14213         COMPONENT_REF.
14214         * tree-ssa-structalias.c (params.h): Include.
14215         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
14216         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
14217         (get_constraint_for): For ADDR_EXPR operating on something
14218         containing an ARRAY_REF, add all subvars to the solution.
14219         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
14220         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
14221         for creating MUST_DEFs.
14222         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
14223
14224 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
14225
14226         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
14227         functions.
14228         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
14229         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
14230         number_of_iterations_le): New functions.
14231         (number_of_iterations_special): Removed.
14232         (number_of_iterations_exit): Do not use number_of_iterations_special.
14233         * tree.c (unsigned_type_for): Always return integer type.
14234
14235 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
14236         Richard Guenther  <rguenther@suse.de>
14237
14238         PR rtl-optimization/24257
14239         * gcse.c (find_moveable_store): Only consider a store movable
14240         when the SET_SRC of the insn can be assigned to a register.
14241
14242 2006-01-14  Ian Lance Taylor  <ian@airs.com>
14243
14244         * tree.c (tree_not_class_check_failed): New function.
14245         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
14246         (tree_not_class_check_failed): Declare.
14247
14248 2006-01-13  Ian Lance Taylor  <ian@airs.com>
14249
14250         * reload1.c (do_output_reload): Add assertion rejecting a
14251         CALL_INSN.
14252
14253 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
14254
14255         * combine.c (struct reg_stat): Add new fields truncation_label and
14256         truncated_to_mode.
14257         (record_value_for_reg): Reset truncated_to_mode.
14258         (record_truncated_value): New function.
14259         (check_promoted_subreg): Call it.  Rename to check_conversions.
14260         (combine_instructions): Rename check_promoted_subreg to
14261         check_conversions.
14262         (reg_truncated_to_mode): New function.
14263         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
14264         (gen_lowpart_or_truncate): New function.
14265         (force_to_mode): Use it instead of gen_lowpart.
14266
14267 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
14268
14269         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
14270         VAR is a tag, not its type tag.
14271
14272 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
14273
14274         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
14275         alternatives to match style of other entries.
14276         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
14277
14278 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
14279
14280         PR tree-optimization/25771
14281         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
14282         SSA_NAMES.
14283
14284 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
14285
14286         PR tree-opt/24365
14287         * tree-inline.c (declare_return_variable): If the return variable
14288         was marked as a non gimple complex, set the return slot variable
14289         to be a non gimple comple variable.
14290
14291 2006-01-13  Richard Guenther  <rguenther@suse.de>
14292
14293         * builtins.c (expand_builtin_sincos): New function.
14294         (expand_builtin_mathfn_3): Remove dead code, sin and cos
14295         do not set errno.
14296         (expand_builtin): Expand sincos using expand_builtin_sincos.
14297
14298 2006-01-12  DJ Delorie  <dj@redhat.com>
14299
14300         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
14301         shift counts, separate SI shifts for m32c vs m16c, pass shift type
14302         so that constant shifts can be split.
14303         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
14304         (m32c_valid_pointer_mode): Make static.
14305         (shift_gen_func_for): New.
14306         (m32c_prepare_shift): Use it.  Split large const shifts into
14307         multiple shifts.
14308         * config/m32c/predicates.md (shiftcount_operand): Allow more
14309         general operands.
14310         (longshiftcount_operand): New.
14311         * doc/md.texi (Machine Constraints): Document In6.
14312
14313 2006-01-13  Ben Elliston  <bje@au.ibm.com>
14314
14315         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
14316         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
14317         documentation.
14318
14319 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
14320
14321         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
14322         to try to avoid clobbering pieces of structures when we know
14323         something about the whole structure.
14324         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
14325
14326 2006-01-13  Ben Elliston  <bje@au.ibm.com>
14327
14328         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
14329         return in memory, as this is no limitation is no longer present.
14330
14331 2006-01-12  DJ Delorie  <dj@redhat.com>
14332
14333         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
14334         mova with fb, and for fb+0 -> An.
14335
14336         * config/m32c/mov.md (peephole2): Fix enabling logic.
14337
14338         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
14339         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
14340         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
14341         FINI_ARRAY_SECTION_ASM_OP): Define.
14342
14343         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
14344         variable.
14345         (m32c_legitimize_reload_address): New logic to reload FB to An.
14346         (m32c_output_reg_push): Add newline.
14347         (m32c_output_reg_pop): Likewise.
14348
14349 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
14350
14351         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
14352
14353 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
14354
14355         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
14356
14357 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14358
14359         * config/sh/predicates.md (sh_rep_vec): Add parallel to
14360         match_code.
14361
14362 2006-01-11  Ben Elliston  <bje@au.ibm.com>
14363
14364         * rtlanal.c (find_reg_note): Assert insn is not null.
14365
14366 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
14367
14368         * df-scan.c (df_hard_reg_init): Move declaration of i outside
14369         ifdef.
14370
14371 2006-01-11  Jeff Law  <law@redhat.com>
14372
14373         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
14374         hold edge pairs.
14375         (mark_threaded_blocks, register_jump_thread): New functions.
14376         (thread_through_all_blocks): Remove unwanted argument.  No
14377         longer rely on e->aux to communicate thread target info.
14378         Call mark_threaded_blocks.  Release the threaded_blocks
14379         bitmap and threaded_edges vector when complete.
14380         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
14381         (threaded_blocks): Remove.
14382         (tree_ssa_dominator_optimize): Remove initialization and
14383         finalization of threaded_blocks.  Simplify call to
14384         thread_through_all_blocks.
14385         (thread_across_edge): Call register_jump_thread rather than
14386         storing thread information into e->aux.
14387         (free_all_edge_infos): Simplify now that e->aux is no longer
14388         used to communicate with thread_through_all_blocks.
14389         * tree-flow.h (thread_through_all_blocks): Update prototype.
14390         (register_jump_thread): Prototype.
14391
14392 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14393
14394         * df-core.c (df_compact_blocks, df_bb_replace): Use
14395         SET_BASIC_BLOCK instead of BASIC_BLOCK.
14396
14397 2006-01-11  Richard Guenther  <rguenther@suse.de>
14398
14399         PR tree-optimization/25734
14400         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
14401         stop propagation after successful propagation to the LHS.
14402
14403 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
14404
14405         * basic-block.h (control_flow_graph): Change the type of
14406         x_basic_block_info to VEC(basic_block,gc) *.
14407         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
14408         basic_block_info.
14409         (SET_BASIC_BLOCK): New.
14410         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
14411         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
14412         * cfgbuild.c (find_basic_blocks): Likewise.
14413         * cfglayout.c (fixup_reorder_chain): Likewise.
14414         * cfgrtl.c (create_basic_block_structure,
14415         rtl_create_basic_block): Likewise.
14416         * ifcvt.c (find_if_case_1): Likewise.
14417         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
14418         Likewise.
14419
14420 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
14421
14422         * Makefile.in: Removed rotted odf.c entry.
14423
14424 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
14425
14426         PR target/25706
14427         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
14428         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
14429         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
14430         output pattern modifier, not %e.
14431         * config/cris/cris.c (cris_op_str): Update comment about pattern
14432         modifier.
14433         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
14434         before falling through into...
14435         <case 'E'>: Redefined from old 'e' case.
14436
14437 2006-01-11  Jan Hubicka  <jh@suse.cz>
14438
14439         PR target/25042
14440         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
14441
14442 2006-01-11  Jan Hubicka  <jh@suse.cz>
14443
14444         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
14445         * i386.c (x86_decompose_lea): Kill.
14446         (ix86_rtx_costs): Kill.
14447
14448 2006-01-11  Jan Hubicka  <jh@suse.cz>
14449
14450         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
14451         * cgraph.h (cgraph_node): Add inline_decl.
14452         (cgraph_insert_node_to_hashtable): Declare.
14453         (save_inline_function_body): Declare.
14454         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
14455         clones.
14456         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
14457         (cgraph_function_versioning): Update call of tree_function_versioning.
14458         (save_inline_function_body): New function.
14459         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
14460         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
14461         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
14462         (cgraph_default_inline_p): Likewise.
14463         (cgraph_decide_inlining_incrementally): Likewise.
14464         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
14465         (copy_bb): Kill saving; do updating of clones.
14466         (copy_cfg_body): Kill saving.
14467         (initialize_inlined-parameters): Likewise.
14468         (expand_call_inline): Likewise.
14469         (save_body): Kill.
14470         (tree_function_versioning): New parameter "update_clones".
14471         (inlining_p): Kill saving.
14472         * tree-inline.h (tree_function_versioning): Update prototype.
14473         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
14474         saving.
14475
14476 2006-01-11  Ian Lance Taylor <ian@airs.com>
14477
14478         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
14479         Allow undoing set of machine mode.
14480         (do_SUBST): Use enums instead of is_int.
14481         (do_SUBST_MODE): New function.
14482         (SUBST_MODE): New macro.
14483         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
14484         reg and trying to replace reg_regno_rtx with a new register.
14485         (undo_all): Use new enums, handle undoing a PUT_MODE change.
14486         (simplify_set): Use SUBST_MODE.
14487         (distribute_notes): Remove code that tried to update reg notes
14488         for regno_reg_rtx changes.
14489
14490 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
14491
14492         PR tree-optimization/23109
14493         PR tree-optimization/23948
14494         PR tree-optimization/24123
14495
14496         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
14497         * tree-cfg.c (single_noncomplex_succ): New.
14498         * tree-flow.h (single_noncomplex_succ): Declare it.
14499         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14500         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14501         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
14502         insert_bb, register_division_in, insert_reciprocals,
14503         replace_reciprocal, free_bb): New.
14504         (execute_cse_reciprocals_1): Rewritten.
14505         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
14506         Do not commit any edge insertion.  Always compute dominators and
14507         create the allocation pool.
14508         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
14509         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
14510         * targhooks.c (default_min_divistions_for_recip_mul): New.
14511         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
14512         * passes.c (init_optimization_passes): Run recip after tree loop
14513         optimizations.
14514         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
14515
14516 2006-01-11  Danny Berlin <dberlin@dberlin.org>
14517             Kenneth Zadeck <zadeck@naturalbridge.com>
14518
14519         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
14520         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
14521         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
14522         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
14523         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
14524         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
14525         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
14526         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
14527         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
14528         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
14529         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
14530         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
14531         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
14532         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
14533         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
14534         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
14535         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
14536         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
14537         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
14538         DF_SCAN_POST_ALLOC): New macros.
14539         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
14540         df_free_bb_function, df_local_compute_function, df_init_function,
14541         df_dataflow_function, df_confluence_function_0,
14542         df_confluence_function_n, df_transfer_function,
14543         df_finalizer_function, df_free_function, df_dump_problem_function,
14544         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
14545         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
14546         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
14547         df_urec_bb_info, ) New types.
14548         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
14549         variables.
14550         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
14551         df_analyze_simple_change_some_blocks,
14552         df_analyze_simple_change_one_block, df_compact_blocks,
14553         df_bb_replace, df_bb_regno_last_use_find,
14554         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
14555         df_insn_regno_def_p, df_find_def, df_find_use,
14556         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
14557         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
14558         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
14559         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
14560         debug_df_chain, df_get_dependent_problem, df_chain_create,
14561         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
14562         df_grow_bb_info, df_chain_dump, df_print_bb_index,
14563         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
14564         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
14565         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
14566         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
14567         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
14568         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
14569         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
14570         df_ref_remove, df_insn_refs_delete, df_refs_delete,
14571         df_reorganize_refs, df_set_state, df_hard_reg_init,
14572         df_read_modify_subreg_p) New public functions.
14573         * df-core.c: The core dataflow solver and glue routines for rtl
14574         dataflow.
14575         (df_init, df_add_problem, df_set_blocks, df_finish,
14576         df_hybrid_search_forward, df_hybrid_search_backward,
14577         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
14578         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
14579         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
14580         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
14581         df_reg_defined, df_find_use, df_reg_used, df_dump,
14582         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
14583         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
14584         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
14585         debug_df_useno, reset_df_after_reload): New functions.
14586         * df-scan.c: The scanning fuctions, once in df.c, completely
14587         rewritten so that they now fully model the functionality of
14588         register usage at the backend.
14589         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
14590         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
14591         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
14592         df_grow_insn_info, df_rescan_blocks, df_ref_create,
14593         df_get_artificial_defs, df_get_artificial_uses,
14594         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
14595         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
14596         df_refs_delete, df_reorganize_refs, df_set_state,
14597         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
14598         df_def_record_1, df_defs_record, df_uses_record,
14599         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
14600         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
14601         df_record_exit_block_uses, df_hard_reg_init): New functions.
14602
14603         * df-problems.c: Seven concrete dataflow problems that use the
14604         scanning in df-scan.c and are solved by the engine in df-core.c.
14605         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
14606         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
14607         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
14608         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
14609         df_ru_free_bb_info, df_ru_alloc,
14610         df_ru_bb_local_compute_process_def,
14611         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
14612         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
14613         df_ru_transfer_function, df_ru_free, df_ru_dump,
14614         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
14615         df_rd_free_bb_info, df_rd_alloc,
14616         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
14617         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
14618         df_rd_transfer_function, df_rd_free, df_rd_dump,
14619         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
14620         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
14621         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
14622         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
14623         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
14624         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
14625         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
14626         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
14627         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
14628         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
14629         df_urec_mark_reg_change, df_urec_check_earlyclobber,
14630         df_urec_mark_reg_use_for_earlyclobber,
14631         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
14632         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
14633         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
14634         df_urec_dump, df_urec_add_problem, df_chain_alloc,
14635         df_chain_create_bb_process_use, df_chain_create_bb,
14636         df_chain_finalize, df_chain_free, df_chains_dump,
14637         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
14638         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
14639         df_reg_lifetime): New functions.
14640         * df.c: Deleted file.
14641         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
14642         consistent with new df api.
14643         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
14644         rest_of_handle_sms): Ditto.
14645         * web.c (unionfind_union, union_defs, entry_register, web_main):
14646         Ditto.
14647         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
14648         invariant_expr_equal_p, find_defs, check_dependencies,
14649         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
14650         free_inv_motion_data, move_loop_invariants): Ditto.
14651         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
14652         Update dependencies.
14653         (odf.c): Added defective entry that was deleted later in day.
14654         * sched-deps.c (sched_analyze_1): Ditto.
14655
14656 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
14657
14658         * tree-ssa-operands.c (get_expr_operands): Record addressable
14659         variables directly.  Do not call add_stmt_operands for CONST_DECLs
14660         and ARRAY_DECLs.
14661         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
14662         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
14663
14664 2006-01-11  Ben Elliston  <bje@au.ibm.com>
14665
14666         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
14667         function returns true in the positive case.
14668
14669 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14670
14671         PR target/20754
14672         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14673         for SI, DI, SF and DF modes.  Add alternatives to copy between
14674         general and floating point registers to the 32-bit patterns.
14675         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14676         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14677         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14678         generating 64-bit code.
14679         * config/pa/pa.c (output_move_double): Handle copies between general
14680         and floating registers.
14681
14682 2006-01-10  Stuart Hastings  <stuart@apple.com>
14683
14684         * config/i386/i386.md (set_got): Update.
14685         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
14686         (builtin_setjmp_receiver): Mach-O support.
14687         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14688         (GOT_SYMBOL_NAME): Define.
14689         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14690         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14691         * config/i386/i386.c (override_options): Revise for Darwin.
14692         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
14693         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
14694         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
14695         * config/i386/i386-protos.h (output_set_got): Likewise.
14696         * config/darwin.c (machopic_legitimize_pic_address): Update
14697         regs_ever_live[].
14698
14699 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14700
14701         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14702         when MODE isn't BLKmode.
14703
14704 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
14705
14706         PR rtl-optimization/25367
14707         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14708
14709 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
14710
14711         PR target/25718
14712         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14713         for a negative bound.
14714
14715 2006-01-10  Richard Guenther  <rguenther@suse.de>
14716
14717         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14718         Never override with anything constraint.
14719
14720 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14721
14722         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14723         256 bits when optimize_size.
14724
14725 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14726
14727         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14728         MASK_ALIGN_DOUBLE.
14729         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14730         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14731         arguments.
14732
14733 2006-01-10  Ben Elliston  <bje@au.ibm.com>
14734
14735         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14736         float modes.
14737         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14738         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14739         (USE_FP_FOR_ARG): Reject decimal float modes.
14740         (function_arg_advance): Likewise.
14741         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14742         (rs6000_handle_altivec_attribute): Do not permit decimal floating
14743         point types in AltiVec vectors.
14744         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14745         (rs6000_libcall_value): Likewise.
14746
14747 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
14748
14749         * config/xtensa/ieee754-df.S: New file.
14750         * config/xtensa/ieee754-sf.S: New file.
14751         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14752         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14753         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14754
14755 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
14756
14757         * config/sh/predicates.md (binary_float_operator,
14758         binary_logical_operator, commutative_float_operator,
14759         equality_comparison_operator, greater_comparison_operator,
14760         less_comparison_operator, logical_operator,
14761         noncommutative_float_operator, shift_operator,
14762         symbol_ref_operand, unary_float_operator): Remove redundant
14763         conditionals.
14764
14765 2006-01-09  Jeff Law  <law@redhat.com>
14766
14767         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14768         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
14769         now unused arguments.  Callers updated.
14770         (eliminate_redundant_computations): Remove now unused arguments,
14771         callers updated.
14772         (local_fold): Remove, no longer used.
14773         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14774         and moved to...
14775         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14776         (simplify_cond): New function.
14777         (forward_propagate_into_cond): Call simplify_cond.
14778
14779 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
14780
14781         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14782         (*vec_extractv2di_1_sse): New.
14783
14784 2006-01-09  Ben Elliston  <bje@au.ibm.com>
14785
14786         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14787
14788 2006-01-08  Richard Guenther  <rguenther@suse.de>
14789
14790         * tree-ssa-structalias.c (get_constraint_for): Remove
14791         anyoffset argument.
14792         (get_constraint_for_component_ref): Likewise.
14793         (do_deref): Likewise.
14794         (get_constraint_for): Likewise.
14795         (do_structure_copy): Likewise.
14796         (handle_ptr_arith): Likewise.
14797         (find_func_aliases): Likewise.  Remove unused need_anyoffset
14798         variable.
14799
14800 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
14801             Kaz Kojima  <kkojima@gcc.gnu.org>
14802
14803         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14804         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14805         (EXTRA_CONSTRAINT_C16): Remove.
14806         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14807         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14808         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14809         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14810         constants of SHmedia.  Handle nested constant expressions of
14811         SHmedia correctly.
14812         (andcosts): Fix the costs for SHmedia constants.
14813         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14814         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14815         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14816         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14817         (movv4hi_i, movv2si_i): Likewise.
14818         (movsi_const): Adjust the second operand of ior so to match with
14819         the Csu constraint.
14820         (movdi_const, movdi_const_32bit): Likewise.
14821         (movdi_const_16bit+1): Don't sign-extend LOW.
14822         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
14823         step.
14824         (*double_shori): Fix the split condition.  Use GEN_INT instead
14825         of get_int_mode calls.  Mask lower 16-bit of the argument of
14826         the last GEN_INT.
14827         (sym2GOTPLT): Remove.
14828         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14829         gen_rtx_UNSPEC.
14830         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14831         instead of EXTRA_CONSTRAINT_C16.
14832
14833 2006-01-07  Ian Lance Taylor  <ian@airs.com>
14834             David Edelsohn  <edelsohn@gnu.org>
14835
14836         PR rtl-optimization/25662
14837         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14838         for constant operands instead of simplify_gen_binary.
14839         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14840         after trying simplify_binary_operation
14841
14842 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
14843
14844         * tree.c (iterative_hash_expr): Hash decls based on UID.
14845
14846 2006-01-06  Eric Christopher  <echristo@apple.com>
14847
14848         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14849         (TARGET_UNWIND_EMIT): Fix spelling.
14850         * target.h (gcc_target): Add except_table_label.
14851         * except.c (output_function_exception_table): Use.
14852         * varasm.c (default_emit_except_table_label): New.
14853         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14854         define.
14855         (asm_out): Add here.
14856         * output.h (default_emit_except_table_label): Prototype.
14857         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14858         * config/darwin.c (darwin_emit_except_table_label): Define.
14859         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14860
14861 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
14862
14863         PR tree-optimization/18527
14864         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14865         number_of_iterations_special, number_of_iterations_exit):
14866         Move base and step of an iv to a single structure.  Add
14867         no_overflow flag, and use it in # of iterations analysis.
14868         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14869         folded_casts argument.
14870         (simple_iv): Pass base and step in a structure.  Set no_overflow
14871         flag.
14872         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14873         Evaluate expensiveness of computing # of iterations instead of
14874         the final expression.
14875         * tree-scalar-evolution.h (affine_iv): New structure.
14876         (simple_iv): Declaration changed.
14877         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14878         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14879         find_givs_in_stmt): Changed due to simple_iv change.
14880
14881 2006-01-06  Jeff Law  <law@redhat.com>
14882
14883         PR ada/24994
14884         * tree-cfg.c (bsi_replace): Rename final argument from
14885         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
14886         change (stmt -> orig_stmt).
14887         * tree-eh.c (verify_eh_throw_stmt_node): New function.
14888         (bsi_remove): Add new argument.  Remove EH information
14889         if requested.
14890         (verify_eh_throw_table_statements): New function.
14891         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
14892         updated.
14893         * tree-optimize.c (execute_free_cfg_annotations): Verify
14894         the EH throw statement table after removing annotations.
14895         * except.h (verify_eh_throw_table_statements): Prototype.
14896         * tree-flow.h (bsi_remove): Update prototype.
14897         * tree-vrp.c (remove_range_assertions): Add new argument to
14898         bsi_remove call.
14899         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14900         * tree-complex.c (expand_complex_div_wide): Likewise.
14901         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14902         * tree-tailcall.c (eliminate_tailcall): Likewise.
14903         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14904         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14905         * tree-nrv.c (tree_nrv): Likewise.
14906         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14907         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14908         (combine_blocks): Likewise.
14909         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14910         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14911         (cleanup_control_flow): Likewise.
14912         (remove_forwarder_block): Likewise.
14913         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14914         * tree-sra.c (sra_replace): Likewise.
14915         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14916         (forward_propagate_single_use_vars): Likewise.
14917         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14918         * tree-inline.c (expand_call_inline): Likewise.
14919         * tree-vect-transform.c (vect_transform_loop): Likewise.
14920         * tree-outof-ssa.c (rewrite_trees): Likewise.
14921         * tree-cfg.c (make_goto_expr_edges): Likewise.
14922         (cleanup_dead_labels): Likewise.
14923         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14924         (bsi_move_before, bsi_move_after): Likewise.
14925         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14926         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14927
14928 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
14929
14930         PR tree-opt/25528
14931         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14932         and IMAGPART_EXPR.
14933         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14934         on non gimple variables.  Also add checks at the top for decls and
14935         mtags.
14936         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14937         complex types.
14938         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14939         and IMAGPART_EXPR for creating MUST_DEFs.
14940         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14941         and NAME_MEMORY_TAG separately from the DECLs.
14942
14943 2006-01-06  Richard Guenther  <rguenther@suse.de>
14944
14945         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14946         annotation, if necessary.
14947         * tree-ssa-pre.c (create_expression_by_pieces): Remove
14948         redundant calls to update_stmt.
14949         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14950         Likewise.
14951
14952 2006-01-05  Richard Henderson  <rth@redhat.com>
14953
14954         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14955
14956 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14957
14958         * c-typeck.c: Update copyright date.
14959
14960 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14961
14962         * c-typeck.c (build_c_cast): Always warn when casting
14963         from a pointer to an integer of different size, even if
14964         the node was constant.
14965
14966 2006-01-05  Richard Guenther  <rguenther@suse.de>
14967
14968         PR tree-optimization/22555
14969         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14970         if one structure field is an array.
14971         * tree-ssa-operands.c (get_expr_operands): Continue scanning
14972         operands even if we found a subvar, but ignore VOPs in this
14973         case.
14974         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14975         for renaming.
14976         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14977
14978 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
14979
14980         PR middle-end/24998
14981         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14982
14983 2006-01-05  Richard Guenther  <rguenther@suse.de>
14984             Diego Novillo  <dnovillo@redhat.com>
14985
14986         * tree-pass.h (TODO_remove_unused_locals): Define.
14987         * gimple-low.c (expand_var_p, remove_useless_vars,
14988         pass_remove_useless_vars): Remove.  Update all users.
14989         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14990         (remove_unused_locals): New function.
14991         * tree-flow.h (remove_unused_locals): Declare.
14992         * passes.c (execute_todo): Call remove_unused_locals if
14993         TODO_remove_unused_locals is set.
14994         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14995         * tree-ssa-dce.c (pass_dce): Likewise.
14996         * tree-outof-ssa.c (pass_del_ssa): Likewise.
14997
14998 2006-01-05  Richard Guenther  <rguenther@suse.de>
14999
15000         * tree-flow.h (struct fieldoff): Decompose field to
15001         type, size and decl.
15002         * tree-ssa-alias.c (create_sft): Take type as parameter.
15003         (create_overlap_variables_for): Store type, size and decl
15004         in the fieldoff structure.
15005         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
15006         of struct fieldoff.
15007         (push_fields_onto_fieldstack): Likewise.
15008         (create_variable_info_for): Likewise.  Use offset for the
15009         SFT name if the decl is not available.
15010
15011 2006-01-04  Paul Brook  <paul@codesourcery.com>
15012
15013         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
15014
15015 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
15016
15017         * lambda-code.c (can_put_in_inner_loop): Relax
15018         restrictions.
15019         (can_put_after_inner_loop): New function.
15020         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
15021         (perfect_nestify): Change to make copies and modify uses.
15022
15023 2006-01-04  Richard Henderson  <rth@redhat.com>
15024
15025         Merge from gomp branch:
15026         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
15027         via integer constant.
15028         (pragma_lex): Remove.
15029         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
15030         rather than parsing it.
15031         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
15032         handle_pragma_extern_prefix): Add %< %> quotes.
15033         (registered_pragmas): New.
15034         (c_register_pragma_1): New.
15035         (c_register_pragma): Use it.
15036         (c_register_pragma_with_expansion): Likewise.
15037         (c_invoke_pragma_handler): New.
15038         (init_pragma): Use cpp_register_deferred_pragma directly for
15039         pch_preprocess.
15040         * c-pragma.h (enum pragma_kind): New.
15041         (pragma_handler): New.
15042         (c_invoke_pragma_handler): Declare.
15043         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
15044         CPP_PRAGMA_EOL.
15045         * c-common.h (c_common_pch_pragma): Update decl.
15046         * Makefile.in (c-parser.o): Update dependencies.
15047         (GTFILES): Add c-pragma.h.
15048         * c-parser.c (struct c_token): Add pragma_kind.
15049         (struct c_parser): Add in_pragma.
15050         (c_lex_one_token): Always initialize keyword and pragma_kind.
15051         Extract data for CPP_PRAGMA.
15052         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
15053         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
15054         Don't allow CPP_PRAGMA_EOL if in_pragma.
15055         (c_parser_consume_pragma): New.
15056         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
15057         (c_parser_skip_to_end_of_parameter): Likewise.
15058         (c_parser_skip_to_end_of_block_or_statement): Likewise.
15059         (c_parser_skip_to_pragma_eol): New.
15060         (c_parser_external_declaration): Handle CPP_PRAGMA.
15061         (c_parser_compound_statement_nostart): Likewise.
15062         (c_parser_statement_after_labels): Likewise.
15063         (c_parser_pragma): New.
15064         (pragma_lex): Likewise.
15065         (c_parser_pragma_pch_preprocess): New.
15066         (c_parser_new): Merge into ...
15067         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
15068
15069 2006-01-04  Jeff Law  <law@redhat.com>
15070
15071         PR ada/24994
15072         * tree-cfg.c (bsi_replace): Remove the original statement
15073         from the EH throw statement table.
15074
15075 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
15076
15077         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
15078         make the prototype extern "C" and add throw ().
15079
15080         PR target/25554
15081         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
15082         and pos non-negative and pos + len <= 32.
15083         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
15084         drop pos + len < HOST_BITS_PER_WIDE_INT test.
15085         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
15086
15087         PR c/25559
15088         * c-common.c (handle_vector_size_attribute): Reject zero vector size
15089         as well as sizes not multiple of component size.
15090
15091         PR debug/25562
15092         * function.c (instantiate_expr): New function.
15093         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
15094         walk its DECL_VALUE_EXPR with instantiate_expr.
15095
15096         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
15097         DW_OP_deref{,_size} if address isn't going to be added.
15098
15099 2006-01-04  Ben Elliston  <bje@au.ibm.com>
15100
15101         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
15102         * config/fp-bit.c: Likewise.
15103
15104 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
15105
15106         * dominance.c: Add comment about why we use DFS numbering
15107         of dominance tree.
15108
15109 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
15110             Richard Henderson  <rth@redhat.com>
15111
15112         Merge from gomp-branch:
15113         * varasm.c (assemble_variable): Handle thread-local COMMON data.
15114         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
15115
15116 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
15117
15118         PR rtl-optimization/25578
15119         * combine.c (combine_simplify_rtx, force_to_mode): Don't
15120         pass a parameter to simplify_shift_const if changing ASHIFTRT
15121         to LSHIFTRT.
15122
15123 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
15124
15125         * builtins.c (get_builtin_sync_mem): New function.
15126         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
15127         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
15128         Call get_builtin_sync_mem to generate mem rtx.
15129
15130 2006-01-03  Richard Guenther  <rguenther@suse.de>
15131
15132         PR c/25183
15133         * stmt.c (add_case_node): Make sure to clear overflow flags
15134         from ranges.
15135
15136 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
15137
15138         Merge from gomp-branch.
15139         * config/sparc/sync.md: New file.
15140         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
15141         UNSPECV_LDSTUB): New constants.
15142         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
15143         * config/sparc/predicates.md (memory_reg_operand): New predicate.
15144         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
15145         prototype.
15146
15147 2006-01-03  Roger Sayle  <roger@eyesopen.com>
15148
15149         * combine.c (reg_subword_p): New predicate to test whether the
15150         destination of a set refers to a subword/piece of a register.
15151         (try_combine): Generalize the code to merge the setting of a
15152         pseudo to a constant followed by a set of a subword of that
15153         register to a constant.
15154
15155 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
15156
15157         * basic-block.h (control_flow_graph): Change the type of
15158         x_label_to_block_map to VEC(basic_block,gc) *.
15159         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
15160         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
15161
15162         * tree-ssa-propagate.c (cfg_blocks): Change the type to
15163         VEC(basic_block,heap) *.
15164         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
15165         ssa_prop_fini): Adjust the uses of cfg_blocks.
15166
15167 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
15168
15169         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
15170         COMPONENT_REFs.
15171         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
15172         hashing trees instead of a pointer hash.
15173         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
15174         compare for MEM_EXPR.
15175
15176         PR rtl-optimization/25130
15177         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
15178         when comparing MEMs for GCSE
15179
15180 2006-01-03  Ben Elliston  <bje@au.ibm.com>
15181
15182         * targhooks.h (default_decimal_float_supported_p): Declare.
15183         * targhooks.c (default_decimal_float_supported_p): Define.
15184         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
15185         `default_decimal_float_supported_p'.
15186         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
15187
15188 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
15189
15190         * combine.c (apply_distributive_law <SUBREG>): Check
15191         TRULY_NOOP_TRUNCATION.
15192
15193 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
15194
15195         * dwarf2out.c (have_switched_text_section): Delete.
15196         (have_multiple_function_sections): New.
15197         (have_location_lists): Make 'bool'.
15198         (add_AT_loc_list): Use 'true' not '1'.
15199         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
15200         (output_loc_list): Use have_multiple_function_sections.
15201         (output_ranges): Likewise.
15202         (dwarf2out_begin_function): Set have_multiple_function_sections if
15203         necessary.
15204         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
15205         Check function_section rather than DECL_SECTION_NAME.
15206         (dwarf2out_finish): Use have_multiple_function_sections.
15207         Don't clear have_location_lists.
15208
15209 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15210             Jan Hubicka  <jh@suse.cz>
15211
15212         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
15213         case of conditional jump jumping to the next instruction.
15214         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
15215         cases of conditional jump jumping to the next instruction.
15216
15217 2006-01-02  Jan Hubicka  <jh@suse.cz>
15218
15219         * i386.c (*_cost): Add COSTS_N_INSNS.
15220         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
15221
15222 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
15223
15224         PR target/25259
15225         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
15226
15227 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15228
15229         * config/arm/arm.c (all_fpus): Fix comment typo.
15230         * config/darwin.c: Likewise.
15231         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
15232         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
15233         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
15234
15235 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
15236
15237         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
15238         (rs6000_split_compare_and_swapqhi): New.
15239         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
15240         (sync_compare_and_swapqhi_internal): New.
15241         * config/rs6000/rs6000-protos.h: Declare.