d6f892c6ea6e676fc02e9c7bb077a6da87fe8269
[gcc.git] / gcc / ChangeLog
1 2005-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
2
3 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
4 * loop-doloop.c (doloop_optimize): Use it to limit costs of
5 expanding the number of iterations.
6 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
7
8 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
9
10 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
11 one line.
12
13 2006-09-14 Richard Guenther <rguenther@suse.de>
14 Kazu Hirata <kazu@codesourcery.com>
15
16 PR middle-end/28884.
17 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
18 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
19 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
20 with TARGET_FUNCTION_VALUE.
21
22 2006-09-14 Anatoly Sokolov <aesok@post.ru>
23
24 PR target/26504
25 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
26
27 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
28
29 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
30 of a RETURN_EXPR
31
32 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
33
34 PR debug/28980
35 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
36 FUNCTION_DECL.
37
38 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
39
40 * basic_block.h (bb_has_eh_pred): Fix comment.
41
42 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
43
44 * flow.c (calculate_global_regs_live): Invalidate eh registers
45 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
46 (propagate_block): Handle eh registers as if they were set at basic
47 block start.
48 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
49 registers.
50 * global.c (global_conflicts): Make eh registers to conflict with
51 pseudos live at basic block begin.
52 * basic_block.h (bb_has_eh_pred): New function.
53
54 2006-09-13 Richard Sandiford <richard@codesourcery.com>
55
56 PR rtl-optimization/28982
57 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
58 index of a PRE_MODIFY or POST_MODIFY address.
59 * reload1.c (inc_for_reload): Use find_replacement on the original
60 base and index registers.
61
62 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
63
64 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
65 for -Os. Update __m128 alignment requirement.
66
67 2006-09-13 Jan Hubicka <jh@suse.cz>
68
69 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
70
71 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
72
73 PR rtl-optimization/28243
74 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
75 the insn to which the note was originally attached.
76
77 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
78 Roger Sayle <roger@eyesopen.com>
79
80 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
81 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
82 on platforms that don't use dwarf for debug info.
83
84 2006-09-12 Jason Merrill <jason@redhat.com>
85
86 PR middle-end/28493
87 * builtins.c (expand_builtin_setjmp_receiver): Clobber
88 hard_frame_pointer_rtx after using it to update the frame pointer.
89
90 2006-09-12 Roger Sayle <roger@eyesopen.com>
91
92 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
93 (TARGET_ASM_CLOSE_PAREN): Likewise.
94 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
95 (TARGET_ASM_CLOSE_PAREN): Likewise.
96
97 2006-09-12 Roger Sayle <roger@eyesopen.com>
98
99 PR target/22223
100 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
101 frame information for frames larger than 512 Kbytes on Tru64 when
102 using the native assembler.
103
104 2006-09-12 Roger Sayle <roger@eyesopen.com>
105
106 PR middle-end/4520
107 PR bootstrap/28784
108 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
109 and symbols. Instead use the implementation from cse.c's hash_rtx.
110
111 2006-09-12 Jan Hubicka <jh@suse.cz>
112
113 PR rtl-optimization/28071
114 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
115 (vect_transform_loop): Likewise.
116 * tree-vectorizer.c (new_loop_vec_info): Likewise.
117 (new_loop_vec_info): Likewise.
118 (destroy_loop_vec_info): Likewise.
119 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
120 (create_stmt_ann): Likewise.
121 (create_tree_ann): Rename to ...
122 (create_tree_common_ann): ... this one; allocate only the common part
123 of annotations.
124 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
125 (get_value_handle): Likewise.
126 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
127 get_tree_common_ann.
128 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
129 (vinfo_for_stmt): Use stmt annotations.
130 * tree-flow.h (tree_ann_common_t): New type.
131 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
132 (tree_ann, get_tree_ann, create_tree_ann): New.
133 * tree-flow-inline.h (get_function_ann): Do more type checking.
134 (stmt_ann): Likewise.
135 (tree_ann): Rename to ...
136 (tree_common_ann): ... this one; return ony common_ann
137 (get_tree_ann): Rename to ...
138 (tree_common_ann): This one; return only common_ann.
139 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
140 of set_stmt_info.
141
142 2006-09-11 Geoffrey Keating <geoffk@apple.com>
143
144 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
145 with_cpu by default.
146
147 * dwarf2out.c (dwarf_file_data): New.
148 (enum dw_val_class): Add dw_val_class_file.
149 (struct dw_val_struct): Add val_file.
150 (file_table): Change to a hash table.
151 (file_table_emitted): Delete.
152 (file_table_last_lookup_index): Delete.
153 (emitcount): Delete.
154 (last_emitted_file): New.
155 (lookup_filename): Change prototype to return a struct dwarf_file_data.
156 (init_file_table): Delete.
157 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
158 (AT_addr): Add comment.
159 (add_AT_file): New.
160 (AT_file): New.
161 (get_AT_file): New.
162 (print_die): Handle dw_val_class_file.
163 (print_dwarf_line_table): Update for new file table structure.
164 (attr_checksum): Do checksum a filename.
165 (same_dw_val_p, same_attr_p): Do compare a filename.
166 (size_of_die): Handle dw_val_class_file.
167 (value_format): Likewise.
168 (output_die): Likewise. Also, call maybe_emit_file here.
169 (struct file_info): Constify filenames. Make file_idx a pointer
170 to a struct dwarf_file_data.
171 (struct dir_info): Constify directory names. Remove 'used' field.
172 (struct file_name_acquire_data): New.
173 (file_name_acquire): New.
174 (output_file_names): Modify to handle new file data structures.
175 (add_src_coords_attributes): Use add_AT_file.
176 (add_call_src_coords_attributes): Likewise.
177 (dwarf2out_imported_module_or_decl): Likewise.
178 (gen_subprogram_die): Modify for new file data structures.
179 (gen_variable_die): Likewise.
180 (file_table_eq): New.
181 (file_table_hash): New.
182 (file_table_last_lookup): New.
183 (lookup_filename): Rewrite to handle new file data structures.
184 (maybe_emit_file): Rewrite to handle new file data structures.
185 (dwarf2out_source_line): Always call lookup_filename and
186 maybe_emit_file.
187 (dwarf2out_init): Create file_table here.
188 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
189 (file_table_relative_p): New.
190 (dwarf2out_finish): Change detection of relative filenames
191 to work with new file data structures. Move output_line_info call
192 after debug_info output.
193
194 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
195
196 PR target/13685
197 PR target/27537
198 PR target/28621
199 * config/i386/i386.c (override_options): Always default to 16
200 byte stack boundary.
201
202 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
203
204 PR target/28672
205 * var-tracking.c (dump_dataflow_set): Start dumping at
206 register zero.
207 (clobber_variable_part): Kill only the variable part in
208 registers holding it, leaving other variables alone.
209
210 2006-09-11 Josh Triplett <josh@freedesktop.org>
211
212 * doc/extend.texi (Other Builtins): Actually use the macro
213 argument in the documentation example for
214 __builtin_types_compatible_p.
215
216 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
217
218 PR rtl-optimization/28726
219 * sched-deps.c (sched_analyze_reg): New function extracted from...
220 (sched_analyze_1): ...here. Call it to analyze references to
221 registers. Treat again writes to a stack register as writing to the
222 register.
223 (sched_analyze_2): ...and here. Call it to analyze references to
224 registers. Treat again reads of a stack register as reading the
225 register.
226
227 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
228 David Edelsohn <edelsohn@gnu.org>
229
230 PR target/27287
231 * config/rs6000/spe.md (frob_df_di): Remove %H.
232 (frob_di_df): Remove %H. Change evmergelo to mr.
233 (frob_di_df_2): Remove %H. Change evldd to two loads.
234
235 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
236
237 * doc/cpp.texi: Fix names of charset options.
238
239 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
240
241 PR target/29009
242 * config/i386/i386.c (override_options): Use 128-bit
243 stack boundary always for 64bits.
244
245 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
246
247 PR rtl-optimization/28636
248 * combine.c (force_to_mode): Test for side-effects before
249 substituting by zero.
250 (simplify_shift_const): Likewise for zero or other constants.
251
252 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
253
254 PR middle-end/26983
255 * builtins.c (expand_builtin_setjmp): Force next_lab to be
256 preserved.
257
258 2006-09-10 Richard Sandiford <richard@codesourcery.com>
259
260 PR target/29006
261 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
262 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
263 returned by mode_for_size, rather than the mode of src itself,
264 to choose between 32-bit and 64-bit patterns.
265 (mips_mem_fits_mode_p): New function.
266 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
267 that the size of the source matches the size of the destination.
268 (mov_<store>l, mov_<store>r): Likewise.
269
270 2006-09-10 Eric Christopher <echristo@apple.com>
271
272 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
273 for literal16.
274
275 2006-09-09 Eric Christopher <echristo@apple.com>
276
277 PR target/28995
278 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
279 for literal16.
280
281 2006-09-09 Roger Sayle <roger@eyesopen.com>
282 Nicolas Setton <setton@adacore.com>
283
284 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
285
286 2006-09-10 Andreas Schwab <schwab@suse.de>
287
288 * config/m68k/m68k.md (bungt_rev): New pattern.
289
290 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
291 Dale Johannesen <dalej@apple.com>
292
293 PR target/26778
294 * regclass.c (struct reg_pref): Update documentation.
295 (regclass): Set prefclass to NO_REGS if memory is the best option.
296 (record_reg_classes): Cope with a prefclass set to NO_REGS.
297
298 2006-09-08 Eric Christopher <echristo@apple.com>
299
300 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
301 * config/t-slibgcc-darwin: Support x86_64 multilib.
302 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
303 Return 1 for x86_64-darwin.
304 * config/i386/t-darwin: Add m64 multilib.
305 (LIB2_SIDITI_CONV_FUNCS): Use.
306 (LIB2FUNCS_EXTRA): Ditto.
307 * config/i386/darwin.h: Support x86_64.
308 * config/i386/i386.c (override_options): Turn on flag_pic
309 for x86_64-darwin. Disable flag_omit_pointer.
310 (get_pc_thunk_name): Assert !TARGET_64BIT.
311 (legitimate_address_p): Disable machopic addressing for
312 x86_64.
313 (legitimize_pic_address): Ditto.
314 (ix86_expand_move): Ditto.
315 (ix86_expand_call): Ditto.
316 (machopic_output_stub): Ditto.
317 * config/darwin.c (machopic_select_section): Support literal16.
318 (machopic_select_rtx_section): Ditto.
319 * config/darwin-sections.def: Ditto.
320 * config/darwin-64.c: New.
321
322 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
323
324 PR c/28504
325 * c-tree.h (struct c_arg_info): Add pending_sizes.
326 * c-parser.c (c_parser_parms_declarator,
327 c_parser_parms_list_declarator): Initialize pending_sizes.
328 * c-decl.c (get_parm_info): Initialize pending_sizes.
329 (get_parm_info): Set pending_sizes.
330 (grokdeclarator): Call put_pending_sizes for parameters for
331 function definition only.
332
333 2006-09-07 Jason Merrill <jason@redhat.com>
334
335 PR middle-end/27724
336 * varasm.c (output_constant): Only strip actual no-op conversions.
337
338 PR target/13685
339 * config/i386/i386.c (override_options): Use 128-bit
340 stack boundary if -msse.
341
342 2006-09-07 Eric Christopher <echristo@apple.com>
343
344 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
345 comment.
346 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
347 Redefine.
348
349 2006-09-07 Geoffrey Keating <geoffk@apple.com>
350
351 * dwarf2out.c: Remove strange characters from comment above
352 dwarf2out_frame_debug_expr.
353
354 2006-09-07 Eric Christopher <echristo@apple.com>
355
356 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
357 * config/darwin.h: ... to here.
358
359 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
360
361 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
362
363 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
364 (TARGET_PARTIAL_FLAG_REG_STALL): New.
365
366 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
367 TARGET_PARTIAL_FLAG_REG_STALL.
368 (*ashldi3_cconly_rex64): Likewise.
369 (*ashlsi3_cmp): Likewise.
370 (*ashlsi3_cconly): Likewise.
371 (*ashlsi3_cmp_zext): Likewise.
372 (*ashlhi3_cmp): Likewise.
373 (*ashlhi3_cconly): Likewise.
374 (*ashlqi3_cmp): Likewise.
375 (*ashlqi3_cconly): Likewise.
376 (*ashrdi3_cmp_rex64): Likewise.
377 (*ashrdi3_cconly_rex64): Likewise.
378 (*ashrsi3_cmp): Likewise.
379 (*ashrsi3_cconly): Likewise.
380 (*ashrsi3_cmp_zext): Likewise.
381 (*ashrhi3_cmp): Likewise.
382 (*ashrhi3_cconly): Likewise.
383 (*ashrqi3_cmp): Likewise.
384 (*ashrqi3_cconly): Likewise.
385 (*lshrdi3_cmp_rex64): Likewise.
386 (*lshrdi3_cconly_rex64): Likewise.
387 (*lshrsi3_cmp): Likewise.
388 (*lshrsi3_cconly): Likewise.
389 (*lshrsi3_cmp_zext): Likewise.
390 (*lshrhi3_cmp): Likewise.
391 (*lshrhi3_cconly): Likewise.
392 (*lshrqi2_cmp): Likewise.
393 (*lshrqi2_cconly): Likewise.
394
395 2006-09-07 Uros Bizjak <uros@kss-loka.si>
396
397 PR target/28946
398 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
399 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
400 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
401 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
402 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
403 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
404 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
405 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
406 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
407 implement only CC setting effects of shift instructions.
408
409 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
410
411 * doc/contrib.texi: Add myself.
412
413 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
414
415 PR middle-end/28862
416 * stor-layout.c (relayout_decl): Don't zero the alignment if it
417 was set by the user.
418
419 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
420
421 PR target/27117
422 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
423 (divsi_inv_m1): Use them.
424 (UNSPEC_DIV_INV_TABLE): New constant.
425
426 2006-09-06 James E Wilson <wilson@specifix.com>
427
428 PR rtl-opt/27883
429 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
430 then call count_or_remove_death_notes.
431
432 2006-09-06 Jason Merrill <jason@redhat.com>
433
434 PR c++/27371
435 * tree-inline.c (copy_result_decl_to_var): New fn.
436 (declare_return_variable): Use it. Call declare_inline_vars here.
437 (expand_call_inline): Not here.
438
439 2006-09-06 Diego Novillo <dnovillo@redhat.com>
440
441 * doc/contrib.texi: Update my entry.
442
443 2006-09-06 Nick Clifton <nickc@redhat.com>
444
445 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
446
447 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
448
449 PR tree-opt/28937
450 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
451 (canonicalize_induction_variables): Likewise.
452 (tree_unroll_loops_completely): Likewise.
453 (tree_ssa_prefetch_arrays): Likewise.
454 (remove_empty_loops): Likewise.
455 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
456 TODO_cleanup_cfg instead of directly calling
457 cleanup_tree_cfg_loop.
458 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
459 Likewise.
460 (tree_unroll_loops_completely): Likewise.
461 (remove_empty_loops): Likewise.
462 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
463 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
464 of tree_ssa_unswitch_loops.
465 (tree_ssa_loop_ivcanon): Use the return value of
466 canonicalize_induction_variables.
467 (tree_ssa_empty_loop): Use the return value of
468 remove_empty_loops.
469 (tree_complete_unroll): Use the return value of
470 tree_unroll_loops_completely.
471 (tree_ssa_loop_prefetch): Use the return value of
472 tree_ssa_prefetch_arrays.
473 * passes.c (execute_todo): Before Cleanup CFG, set
474 updating_used_alone and after cleanup CFG, call
475 recalculate_used_alone.
476
477 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
478
479 PR tree-opt/28952
480 * tree-vect-transform.c (vectorizable_condition): Move the check
481 for the type after the check for simple condition.
482
483 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
484 Kaz Kojima <kkojima@gcc.gnu.org>
485
486 PR target/28764
487 * mode-switching.c (optimize_mode_switching): Make the destination
488 block of an abnormal edge have no anticipatable mode. Don't
489 insert mode switching code at the end of the source block of
490 an abnormal edge.
491
492 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
493
494 PR rtl-optimization/26847
495 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
496 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
497 (simplify_plus_minus): Count n_constants while filling ops. Replace
498 qsort with insertion sort. Before going through the array to simplify
499 pairs, sort it. Delay early exit until after the first sort, exiting
500 only if no swaps occurred. Simplify pairs in reversed order, without
501 special-casing the first iteration. Pack ops after simplifying pairs.
502
503 2006-09-05 Anatoly Sokolov <aesok@post.ru>
504
505 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
506 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
507 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
508 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
509
510 2006-09-05 Richard Guenther <rguenther@suse.de>
511
512 PR tree-optimization/28900
513 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
514 compound conditional before creating COND_EXPR condition.
515
516 2006-09-05 Richard Guenther <rguenther@suse.de>
517
518 PR tree-optimization/28905
519 * tree-vrp.c (fix_equivalence_set): Manually implement
520 !value_ranges_intersect_p to also handle symbolic ranges.
521
522 2006-09-05 Richard Guenther <rguenther@suse.de>
523
524 PR middle-end/28935
525 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
526 of a COND_EXPR.
527
528 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
529
530 PR rtl-optimization/27616
531 * cse.c (table_size): New static variable.
532 (new_basic_block): Initialize it to 0.
533 (remove_from_table): Decrement it.
534 (insert): Increment it.
535 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
536 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
537 fold_rtx_mem_1 if under the cap.
538 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
539 the lookup of the equivalent expression and test for equality of the
540 first operand of the equivalent expression before in turn looking up
541 an equivalent constant for the second operand.
542
543 2006-09-02 Geoffrey Keating <geoffk@apple.com>
544
545 Revert this change:
546 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
547 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
548 pointer, instead of assuming it is possible to derive the
549 correct args size from a call insn.
550
551 2006-09-02 Jakub Jelinek <jakub@redhat.com>
552
553 PR middle-end/27567
554 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
555 (fold_builtin_mempcpy): Rename to...
556 (fold_builtin_memory_op): ... this. Optimize one element copy
557 into an assignment.
558 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
559 functions.
560 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
561 (expand_builtin_memcpy, expand_builtin_mempcpy,
562 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
563 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
564 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
565 BUILT_IN_MEM{CPY,PCPY,MOVE}.
566
567 2006-09-01 DJ Delorie <dj@redhat.com>
568
569 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
570 (stzx_16): Likewise.
571 ("stzx_24_<mode>"): Likewise.
572 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
573 ("cmp<mode>_op"): New.
574 (cmp<mode>): Change to expander; just save operands.
575 (b<code>_op): New.
576 (b<code>): Change to expander, emit compare here.
577 (s<code>_op): Change to use split and expander.
578 (s<code>_24_op): Likewise.
579 (s<code>_<mode>): New.
580 (s<code>_<mode>_24): New.
581 (movqicc_<code>_<mode): New.
582 (movhicc_<code>_<mode>): New.
583 (s<code>): New.
584 (s<code>_24): New.
585 * config/m32c/m32c.c (compare_op0, compare_op1): New.
586 (m32c_pend_compare): New.
587 (m32c_unpend_compare): New.
588 (m32c_expand_scc): New.
589 (m32c_expand_movcc): Emit the compare also.
590 * config/m32c/predicates.md (mra_nopp_operand): New.
591
592 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
593 Richard Guenther <rguenther@suse.de>
594 Adam Nemet <anemet@caviumnetworks.com>
595
596 PR middle-end/27226
597 * builtins.c (get_pointer_alignment): Handle more forms
598 of base addresses that can be used to derive more precise
599 information about alignment.
600
601 2006-09-01 Jason Merrill <jason@redhat.com>
602
603 PR c++/28899
604 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
605 want_value.
606
607 * gimplify.c (voidify_wrapper_expr): Handle null type.
608
609 2006-09-01 Josh Conner <jconner@apple.com>
610
611 PR c++/25505
612 * tree-nrv.c (dest_safe_for_nrv_p): New function.
613 (execute_return_slot_opt): Use it.
614
615 2006-08-31 Josh Conner <jconner@apple.com>
616
617 PR c++/25505
618 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
619 returning aggregates.
620
621 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
622
623 PR tree-optimization/28839
624 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
625 blocks in that phi arguments appear.
626
627 2006-08-31 Roger Sayle <roger@eyesopen.com>
628
629 PR other/22313
630 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
631 NULL, otherwise use an advance_loc4 to adjust relative to the
632 current label.
633 (output_cfi) <DW_CFA_set_loc>: Update the current label.
634 (dwarf2out_switch_text_section): Reset the current label to avoid
635 using advance_loc4 over section boundaries.
636
637 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
638
639 PR target/24367
640 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
641 r12 + SYMBOLIC_CONST.
642
643 2006-08-30 Richard Guenther <rguenther@suse.de>
644
645 * Makefile.in (see.o): Add $(EXPR_H) dependency.
646
647 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
648
649 PR rtl-optimization/27735
650 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
651 Add new argument to keep track of whether an irreducible region
652 was affected. All callers changed.
653 (fix_irreducible_loops): Removed.
654 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
655 flags were invalidated.
656
657 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
658
659 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
660 instead of SF operands.
661 (*fop_df_comm_sse): Likewise.
662 (*fop_df_comm_i387): Likewise.
663 (*fop_df_1_mixed): Likewise.
664 (*fop_df_1_sse): Likewise.
665
666 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
667 J"orn Rennecke <joern.rennecke@st.com>
668
669 PR tree-optimization/17506
670 * tree-ssa.c (warn_uninit): If warning about a location outside of
671 the current function, note where the variable was declared.
672
673 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
674
675 PR tree-optimization/28411
676 * double-int.c (double_int_div): Use double_int_divmod.
677 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
678 double_int_mod, double_int_smod, double_int_umod): New functions.
679 * double-int.h (double_int_divmod, double_int_sdivmod,
680 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
681 Declare.
682 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
683 in double_int.
684 (get_computation_aff, get_computation_cost_at): Handle double_int
685 return type of constant_multiple_of.
686
687 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
688
689 PR middle-end/26632
690 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
691 an implicit conversion.
692
693 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
694
695 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
696
697 2006-08-27 Roger Sayle <roger@eyesopen.com>
698
699 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
700 x87 instructions.
701
702 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
703
704 * config/i386/crtfastmath.c: Fix a comment typo.
705
706 2006-08-26 Roger Sayle <roger@eyesopen.com>
707
708 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
709 temporary visit flags on CASE_LABEL_EXPRs.
710 * c-common.c (match_case_to_enum): Add function comment. Avoid
711 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
712 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
713 CASE_HIGH_SEEN for enumerated types. If the switch expression is
714 a constant, only warn if that constant value isn't handled.
715
716 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
717
718 PR c++/24009
719 * input.h (restore_input_file_stack): Declare.
720 (INPUT_FILE_STACK_BITS): Define.
721 * toplev.c (fs_p, input_file_stack_history,
722 input_file_stack_restored, restore_input_file_stack): New.
723 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
724 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
725 (pop_srcloc): Don't free old state of stack.
726
727 2006-08-26 David Edelsohn <edelsohn@gnu.org>
728
729 PR target/27544
730 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
731 (PowerPC Type Attributes): New.
732
733 2006-08-26 Bob Wilson <bob.wilson@acm.org>
734
735 * config/xtensa/xtensa.c (function_arg_boundary): New.
736 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
737 STACK_BOUNDARY.
738 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
739 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
740
741 2006-08-26 Jakub Jelinek <jakub@redhat.com>
742
743 PR middle-end/28683
744 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
745 3 following insns.
746
747 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
748
749 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
750 (verify_local_live_at_start): Likewise.
751
752 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
753
754 PR c/27893
755 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
756 omp_add_variable): Treat sizes as variable whenever not
757 INTEGER_CST.
758
759 2006-08-26 Richard Guenther <rguenther@suse.de>
760
761 PR middle-end/28814
762 * fold-const.c (fold_binary): Fold temporary to correct
763 type before constructing new comparison.
764
765 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
766
767 PR c/28418
768 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
769 variable again if DECL_SEEN_IN_BIND_EXPR_P.
770
771 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
772
773 PR c/28299
774 * c-decl.c (start_function): Don't try to process prototype
775 information from old declaration that isn't a function.
776
777 2006-08-25 Jan Hubicka <jh@suse.cz>
778
779 PR target/28621
780 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
781
782 2006-08-25 Alan Modra <amodra@bigpond.net.au>
783
784 PR target/27075
785 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
786 for 8 byte objects.
787
788 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
789
790 PR tree-optimization/16876
791 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
792 exit if PARM doesn't match VALUE.
793
794 2006-08-25 Bob Wilson <bob.wilson@acm.org>
795
796 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
797 literal_prefix directive.
798 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
799 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
800 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
801
802 2006-08-25 David Edelsohn <edelsohn@gnu.org>
803
804 PR target/28753
805 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
806 predicate to general_operand. Add 0->y and I->r alternatives.
807
808 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
809
810 * doc/tm.texi: Fix a typo.
811 * predict.c: Fix comment typos.
812
813 2006-08-25 Nick Clifton <nickc@redhat.com>
814
815 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
816 assertions of "cpu" and "machine".
817
818 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
819
820 PR tree-opt/28807
821 * tree-ssa-operands.c (access_can_touch_variable): Don't say
822 the access through a base which has an alias set of 0 cannot
823 touch the variable.
824
825 2006-08-24 Bill Wendling <wendling@apple.com>
826
827 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
828
829 2006-08-24 Jan Hubicka <jh@suse.cz>
830
831 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
832
833 2006-08-24 Jan Hubicka <jh@suse.cz>
834
835 PR debug/26881
836 * cgraph.c: Fix comments.
837 (cgraph_varpool_mark_needed_node): Mark only variables not already
838 output to file.
839 * cgraphunit.c: Update comments; include gt-cgraphunit.h
840 (cgraph_varpool_assembled_nodes_queue): New static variable.
841 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
842 (cgraph_varpool_output_debug_info): New function.
843 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
844 * Makefile.in: Add gt-cgraphunit.h
845
846 2006-08-24 Jan Hubicka <jh@suse.cz>
847
848 * predict.c (probability_reliable_p): New predicate.
849 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
850 (predict_loops): Do not predict loop exit with less than 2%
851 probability.
852 * basic-block.h (edge_probability_reliable_p,
853 br_prob_note_reliable_p): Declare.
854 * ia64.h (ia64_print_operand): Do not disable on-chip branch
855 prediction when static predictor is not reliable.
856 * rs6000.c (output_cbranch): Likewise.
857
858 2006-08-23 Stuart Hastings <stuart@apple.com>
859
860 PR 28825
861 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
862 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
863
864 2006-08-21 Geoffrey Keating <geoffk@apple.com>
865
866 PR debug/28692
867 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
868 complex values, nor for generic vector values.
869
870 2006-08-22 Richard Guenther <rguenther@suse.de>
871
872 PR middle-end/28776
873 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
874 parameter. Convert arguments to arithmetic expression to the
875 chrecs type.
876 (analyze_scalar_evolution_1): Adjust caller.
877
878 2006-08-22 Jan Hubicka <jh@suse.cz>
879
880 Patch by Paolo Bonzini
881 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
882 my previous patch.
883
884 2006-08-22 Daniel Berlin <dberlin@dberlin.org>
885
886 PR tree-optimization/28003
887 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
888 before grouping aliases.
889
890 2006-08-22 Roger Sayle <roger@eyesopen.com>
891
892 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
893 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
894
895 2006-08-21 Jason Merrill <jason@redhat.com>
896
897 PR c++/27115
898 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
899 wrapper. Loop to handle nested wrappers.
900 (gimplify_bind_expr): Remove temp parameter.
901 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
902 and STATEMENT_LIST on the rhs.
903 (gimplify_statement_list): Voidify the STATEMENT_LIST.
904 (gimplify_expr): Pass pre_p to gimplify_statement_list.
905 (gimplify_target_expr): Remove special BIND_EXPR handling.
906
907 2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
908
909 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
910 #if !__SHMEDIA__ .
911
912 2006-08-21 Olivier Hainque <hainque@adacore.com>
913
914 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
915 Arrange for the temporary captures of components overlapping the lhs
916 to happen before the lhs is possibly cleared.
917
918 2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
919
920 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
921 necessary places to pass the correct "number of registers" values
922 to _Unwind_VRS_Pop.
923
924 2006-08-20 Jan Hubicka <jh@suse.cz>
925
926 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
927 (create_name_tags): Instead of quadratic checking use hashtable.
928 * bitmap.h: Include hashtab.h.
929 (bitmap_hash): Declare.
930 * bitmap.c (bitmap_hash): New function.
931
932 2006-08-20 Jan Hubicka <jh@suse.cz>
933
934 PR rtl-optimization/28071
935 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
936 twice.
937 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
938 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
939 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
940 cgraph_decide_inlining_incrementally): Update use of
941 cgraph_check_inline_limits.
942 * cgraph.c (edge_hash, edge_eq): New function.
943 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
944 cgraph_edge_remove_caller, cgraph_node_remove_callees,
945 cgraph_remove_node): Maintain call site hash.
946 * cgraph.h (struct cgraph_node): Add call_site_hash.
947 (cgraph_set_call_stmt): New function.
948
949 2006-08-20 Jan Hubicka <jh@suse.cz>
950
951 PR rtl-optimization/28071
952 * reload1.c (reg_has_output_reload): Turn into regset.
953 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
954 choose_reload_regs, emit_reload_insns): Update to new
955 reg_has_output_reload.
956
957 2006-08-20 Jan Hubicka <jh@suse.cz>
958
959 PR middle-end/28779
960 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
961 function body sizes.
962 * cgraphunit.c (cgraph_analyze_function): Don't do so.
963
964 2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
965
966 PR target/28648 c:
967 * tree.c (handle_dll_attribute): Return early if not a
968 var or function decl.
969
970 2006-08-18 Joseph Myers <joseph@codesourcery.com>
971
972 PR target/27565
973 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
974 alignment of SPE vector types.
975
976 2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
977
978 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
979
980 2006-08-17 Jakub Jelinek <jakub@redhat.com>
981
982 PR c/28744
983 * cgraph.h (struct cgraph_node): Remove externally_visible
984 bitfield.
985 * cgraphunit.c (process_function_and_variable_attributes): Set
986 local.externally_visible rather than externally_visible.
987
988 PR c/28744
989 * c-common.c (handle_externally_visible_attribute): First look
990 at TREE_CODE and only if it is function or var decl, check for
991 non-public objects. Don't warn for DECL_EXTERNAL.
992 * cgraphunit.c (process_function_and_variable_attributes): Warn
993 if externally_visible attribute is used on non-public object.
994
995 2006-08-17 Jan Hubicka <jh@suse.cz>
996
997 PR tree-optimization/27865
998 * reload1.c (forget_marked_reloads): New function.
999 (forget_old_reloads_1): When data are passed, just mark the registers
1000 for later removal.
1001 (reload_as_needed): Use the new mechanizm.
1002
1003 2006-08-17 Alexandre Oliva <aoliva@redhat.com>
1004
1005 PR target/28146
1006 * reload.h (reg_equiv_alt_mem_list): New declaration.
1007 * reload1.c (reg_equiv_alt_mem_list): New definition.
1008 (reload): Initialize it and release it.
1009 (delete_output_reload): Use it.
1010 * reload.c (push_reg_equiv_alt_mem): New function.
1011 (find_reloads_toplev): Call it.
1012 (find_reloads_address, find_reloads_address_1): Likewise.
1013 (find_reloads_subreg_address): Likewise.
1014
1015 2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1016
1017 PR rtl-optimization/28489
1018 * sched-ebb.c (begin_schedule_ready): Create basic block
1019 at the right place.
1020 (advance_target_bb): Skip empty blocks.
1021 * haifa-sched.c (bb_note): Make global.
1022 * sched-int.h (bb_note): Add prototype.
1023
1024 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1025
1026 PR tree-optimization/27865
1027 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1028 for pointer types.
1029 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1030 fold_used_pointer, pointer_used_p): New functions.
1031 (analyze_scalar_evolution_1): Use fold_used_pointer.
1032 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1033 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1034 for pointers.
1035
1036 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1037
1038 PR c++/28573
1039 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1040 or the INTEGER_CST. Fail on a CALL_EXPR.
1041 (fold_offsetof): Pass new argument to fold_offsetof_1.
1042 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1043 operand into an INDIRECT_REF.
1044 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1045
1046 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1047
1048 PR gcov/profile/26570
1049 * value-prof.c (static_values): Removed.
1050 (tree_find_values_to_profile): Do not set static_values.
1051 (find_values_to_profile): Do not free static_values.
1052 * profile.c (instrument_values): Do not free the values.
1053 (branch_prob): Free the values.
1054
1055 2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
1056
1057 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1058
1059 2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
1060
1061 PR c/27697
1062 * c-typeck.c (build_component_ref): Combine qualifiers of
1063 structure or union and field.
1064
1065 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1066
1067 PR rtl-optimization/28071
1068 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1069 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1070 * tree-into-ssa.c (struct dom_dfsnum): New.
1071 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1072 functions.
1073 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1074 compute_global_livein.
1075 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1076 in phi nodes in the correct blocks.
1077
1078 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1079
1080 PR tree-optimization/28364
1081 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1082 correctly.
1083 (fold_affine_expr): New function.
1084 (may_eliminate_iv): Use fold_affine_expr.
1085
1086 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1087
1088 PR c/27489
1089 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1090 Clean up.
1091
1092 2006-08-16 Mike Stump <mrs@apple.com>
1093
1094 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1095 * doc/cppopts.texi (-MD): Likewise.
1096
1097 2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
1098
1099 PR c/28287
1100 * c-common.c (handle_weak_attribute): Ignore and warn if
1101 not a FUNCTION_ or VAR_DECL.
1102
1103 2006-07-15 Mike Stump <mrs@apple.com>
1104
1105 PR c/28280
1106 * c-parser.c (c_parser_typeof_specifier): Don't use
1107 c_finish_expr_stmt, open code desired semantics instead.
1108
1109 2006-08-15 Nick Clifton <nickc@redhat.com>
1110
1111 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1112 fragment to tmake_file only if threads are enabled.
1113 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1114 * config/i386/t-gthr-win32: New file. ... here.
1115
1116 2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1117
1118 PR c/28649
1119 * c-parser.c (c_parser_compound_statement_nostart): Reset
1120 parser->error after each statement.
1121
1122 2006-08-15 Jakub Jelinek <jakub@redhat.com>
1123
1124 PR middle-end/28713
1125 * omp-low.c (lower_omp_parallel): Convert t to
1126 receiver_decl's type.
1127 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1128 source before comparison.
1129
1130 PR middle-end/28724
1131 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1132 to itype in assignment to oldival2.
1133
1134 2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
1135
1136 PR c/27490
1137 PR c/27489
1138 * c-typeck.c (build_compound_expr): If the second expression
1139 is an error mark, then just return an error mark instead of
1140 creating a COMPOUND_EXPR.
1141
1142 2006-07-14 Mike Stump <mrs@apple.com>
1143
1144 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1145
1146 2006-08-14 Kazu Hirata <kazu@codesourcery.com>
1147
1148 * c-decl.c, var-tracking.c: Fix comment typos.
1149
1150 2006-08-14 Richard Sandiford <richard@codesourcery.com>
1151
1152 PR rtl-optimization/28634
1153 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1154 for floating-point modes unless flag_unsafe_math_optimizations.
1155
1156 2006-08-13 Alexandre Oliva <aoliva@redhat.com>
1157 Andrew Pinski <pinskia@physics.uc.edu>
1158
1159 PR c/27184
1160 * tree.c (build_array_type): Unify array types with
1161 unspecified index_type.
1162 * c-decl.c (grokdeclarator): Make sure we do not modify a
1163 unified incomplete array type.
1164 * c-typeck.c (store_init_value): Create distinct type before
1165 filling in the index type in an initializer from a compound
1166 literal.
1167
1168 * c-decl.c (grokdeclarator): Remove code where we copy the
1169 array type over.
1170
1171 2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
1172
1173 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1174 into account for TODO_dump_cgraph.
1175 (TODO_update_ssa_no_phi): Likewise.
1176 (TODO_update_ssa_full_phi): Likewise.
1177 (TODO_update_ssa_only_virtuals): Likewise.
1178 (TODO_remove_unused_locals): Likewise.
1179 (TODO_set_props): Likewise.
1180 (TODO_update_stmt_usage): Likewise.
1181
1182 2006-08-13 Dirk Mueller <dmueller@suse.de>
1183
1184 * c-common.c (strict_aliasing_warning): Fix formatting.
1185
1186 2006-08-13 Matthias Klose <doko@debian.org>
1187
1188 * doc/invoke.texi: Fix spelling errors.
1189
1190 2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1191
1192 PR rtl-optimization/23454
1193 * reorg.c (relax_delay_slots): Update comment.
1194
1195 2006-08-11 Richard Guenther <rguenther@suse.de>
1196
1197 PR middle-end/28651
1198 * simplify-rtx.c (simplify_const_relational_operation):
1199 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1200 codes.
1201
1202 2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
1203
1204 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1205 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1206
1207 2006-08-10 Paul Brook <paul@codesourcery.com>
1208
1209 * final.c (final_scan_insn): Clear current_insn_predicate before
1210 outputting inline asm.
1211
1212 2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
1213
1214 PR tree-optimization/26197
1215 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1216 get_ref_base_and_extent and overlap_subvar to add only relevant
1217 subvars as may-aliases.
1218 (add_may_alias_for_new_tag): New function, factored out of
1219 new_type_alias.
1220 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1221 with additional argument.
1222 * tree-flow.h (new_type_alias): Takes additional argument.
1223
1224 2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
1225
1226 * gcov.c (no_data_file): New flag.
1227 (read_count_file): Set it if data file not present. Assume counts
1228 zero if not found.
1229 (output_lines): Don't name the data file, if there wasn't one.
1230
1231 2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
1232
1233 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1234 (rs6000_generate_compare): Tweak comments.
1235 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1236
1237 2006-08-09 Alexandre Oliva <aoliva@redhat.com>
1238
1239 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1240 (var_debug_decl): New function.
1241 (var_reg_set): Follow debug decl link. Add location even if
1242 reg is already known to hold some other variable.
1243 (var_mem_set): Follow debug decl link.
1244 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1245 decl link. Delete other known locations of the variable part
1246 if requested.
1247 (var_reg_delete, var_mem_delete): Delete other known locations
1248 of the variable part if requested.
1249 (same_variable_part_p): New function.
1250 (add_stores): Select MO_COPY when appropriate.
1251 (vt_initialize): Handle it.
1252 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
1253 known locations for MO_SET and MO_CLOBBER.
1254 (find_variable_location_part): New function.
1255 (set_variable_part, delete_variable_part): Use it.
1256 (clobber_variable_part): New function.
1257 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1258 decl link.
1259
1260 2006-08-07 Victor Kaplansky <victork@il.ibm.com>
1261
1262 PR tree-optimization/26969
1263 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1264 with an empty list of PHIs.
1265
1266 2006-08-06 Paolo Bonzini <bonzini@gnu.org>
1267
1268 PR target/27827
1269
1270 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1271 instructions.
1272
1273 2006-08-06 Andreas Schwab <schwab@suse.de>
1274
1275 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1276 string. Whitespace and comment fixup.
1277
1278 2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1279
1280 PR c/28502
1281 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1282 argument.
1283
1284 PR c/27721
1285 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1286
1287 PR c/28136
1288 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1289
1290 2006-08-04 Jan Hubicka <jh@suse.cz>
1291
1292 PR target/26655
1293 PR target/28270
1294 * reload.c (push_reload): Patch out the mismatching instruction;
1295 return early.
1296 (find_reload): Bail out if the instruction was patched out.
1297
1298 2006-08-04 Jan Hubicka <jh@suse.cz>
1299
1300 PR tree-optimization/24888
1301 * tree-inline.c (expand_call_inline): Do not re-record variables.
1302 (declare_inline_vars): Add variable to unexpanded_var_list.
1303
1304 2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1305 Roger Sayle <roger@eyesopen.com>
1306
1307 PR rtl-optimization/26244
1308 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
1309 inner_const are negative or greater than or equal to the bitsize of
1310 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
1311 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
1312 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
1313 CONST0_RTX (mode) when the new shift count is greater than or equal to
1314 to the bitsize of the object being shifted and XEXP (y, 0) has no side
1315 effects.
1316
1317 2006-08-04 Kazu Hirata <kazu@codesourcery.com>
1318
1319 * tree-cfg.c: Fix a comment typo.
1320
1321 2006-08-03 Mark Mitchell <mark@codesourcery.com>
1322
1323 PR c++/28148
1324 * varasm.c (output_constant): Give the front end another chance to
1325 expand constants, after stripping NOPs.
1326
1327 2006-08-03 Jan Hubicka <jh@suse.cz>
1328
1329 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
1330 implementation.
1331
1332 2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
1333
1334 PR tree-optimization/27770
1335 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
1336 declaration removed (moved to tree-flow.h).
1337 (vect_can_force_dr_alignment_p): Likewise.
1338 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
1339 (moved from tree-vectorizer.h).
1340 (vect_can_force_dr_alignment_p): Likewise.
1341 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1342 from outside the vectorizer - in particular from cgraph stage.
1343 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1344 the alignment of global arrays when -fsection-anchors is enabled.
1345 * cgraphunit.c (cgraph_increase_alignment): New function.
1346 (cgraph_optimize): Call cgraph_increase_alignment.
1347
1348 2006-08-03 David Edelsohn <edelsohn@gnu.org>
1349
1350 PR target/27566
1351 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1352 not reload a SPE symbol_ref into a lo_sum address.
1353
1354 2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
1355
1356 PR debug/28063
1357 * dwarf2out.c (prune_unused_types_prune): Move call to
1358 prune_unused_types_update_strings to cover the parent DIE also.
1359
1360 2006-08-02 Jan Hubicka <jh@suse.cz>
1361
1362 PR gcov/profile/28480
1363 * tree-cfg.c (change_bb_for_stmt): New function.
1364 (tree_merge_blocks, tree_split_blocks): Use it.
1365
1366 2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1367
1368 PR c++/28250
1369 PR c++/28257
1370 PR c++/28259
1371 PR c++/28267
1372 * toplev.c (compile_file): Return early on errorcount or sorrycount.
1373 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
1374 (cgraph_optimize): Likewise.
1375
1376 2006-08-01 Stuart Hastings <stuart@apple.com>
1377
1378 * rtl.h (UINTVAL) New.
1379 * config/rs6000/rs6000.c (SMALL_INT) Use it.
1380 * testsuite/gcc.dg/20060801-1.c: New.
1381
1382 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1383
1384 PR debug/23336
1385 * c-typeck.c (build_external_type): Mark used enum types.
1386 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
1387 cfun also.
1388 (gen_subprogram_die): Whitespace fix.
1389
1390 2006-08-01 Jan Hubicka <jh@suse.cz>
1391
1392 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
1393 bitmap when not needed.
1394 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
1395 bitmaps.
1396
1397 2006-08-01 Dirk Mueller <dmueller@suse.de>
1398
1399 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
1400
1401 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1402
1403 * Makefile.in: Revert part of previous patch:
1404 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
1405 and REGS_H.
1406
1407 2006-07-30 Eric Christopher <echristo@apple.com>
1408
1409 PR target/27543
1410 * doc/extend.texi (i386 Variable Attributes): Add anchor.
1411 (PowerPC Variable Attributes): New section.
1412
1413 2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
1414
1415 PR target/28126 (partial fix)
1416 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
1417
1418 2006-07-28 Jan Hubicka <jh@suse.cz>
1419
1420 PR rtl-optimization/28071
1421 * cfgrtl.c (rtl_delete_block): Free regsets.
1422 * flow.c (allocate_bb_life_data): Re-use regsets if available.
1423
1424 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1425
1426 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
1427 and variables used in dependencies.
1428
1429 2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
1430
1431 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
1432 %fs for -mcmodel=kernel.
1433 (stack_tls_protect_test_di): Likewise.
1434
1435 2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
1436
1437 * Makefile.in: Use mkinstalldirs.
1438
1439 2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
1440
1441 PR driver/28437
1442 * opts-common.c (prune_options): Skip joined switches.
1443
1444 2006-07-27 Jan Hubicka <jh@suse.cz>
1445
1446 PR rtl-optimization/28071
1447 * cselib.c (cselib_process_insn): Don't remove useless values too
1448 often for very large hashtables.
1449
1450 2006-07-27 Jan Hubicka <jh@suse.cz>
1451
1452 PR rtl-optimization/28071
1453 * global.c (greg_obstack): New obstack.
1454 (allocate_bb_info): Use it.
1455 (free_bb_info): Likewise.
1456 (modify_reg_pav): Likewise.
1457
1458 2006-07-27 Roger Sayle <roger@eyesopen.com>
1459
1460 * builtins.c (fold_fixed_mathfn): When long and long long are the
1461 same size, canonicalize llceil*, llfloor*, llround* and llrint*
1462 functions to their lceil*, lfloor*, lround* and lrint* forms.
1463
1464 2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1465
1466 PR gcc/28508
1467 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1468 branch.
1469 (rev_branch_insn): Likewise.
1470
1471 2006-07-27 Jan Hubicka <jh@suse.cz>
1472
1473 PR rtl-optimization/28071
1474 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1475 (reg_set_in_bb, max_reg_computed): New static variables.
1476 (regmove_optimize): Free the new array.
1477 (fixup_match_1): Update call of reg_is_remote_constant_p.
1478
1479 2006-07-26 Jan Hubicka <jh@suse.cz>
1480
1481 PR tree-optimization/27882
1482 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1483 and decl fields.
1484 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1485 next pointer
1486 (cgraph_analyze_compilation_unit): Likewise.
1487 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1488 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1489 (cgraph_early_inlinine): Make order garbage collected.
1490 * Makefile.in (gt-ipa-inline): New garbagecollected file.
1491
1492 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1493
1494 * dbxout.c (output_types_sort): Add a comment.
1495 (output_used_types): Free the VEC.
1496
1497 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1498
1499 * function.c (reorder_fix_fragments): Delete.
1500 (reorder_blocks): Don't call it.
1501 (reorder_blocks_1): Put all subblocks under the origin block.
1502
1503 2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
1504
1505 PR rtl-optimization/27907
1506 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1507 FLOAT_TRUNCATE.
1508
1509 2006-07-25 Roger Sayle <roger@eyesopen.com>
1510
1511 PR middle-end/28473
1512 * convert.c (convert_to_integer): When transforming (T)foo(x) into
1513 bar(x) check that bar's result type can represent all the values of T.
1514
1515 2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1516
1517 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1518
1519 2006-07-25 Nick Clifton <nickc@redhat.com>
1520
1521 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1522 size_lookup[] array.
1523 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1524 (ggc_pch_count_object): Likewise.
1525 (ggc_pch_alloc_object): Likewise.
1526 (ggc_pch_write_object): Likewise.
1527 (init_ggc): Do not attempt to initialize entries in the
1528 size_lookup[] array for objects whose size is greater than than
1529 the length of the array.
1530
1531 2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
1532
1533 * dbxout.c (output_used_types_helper): Push queued types
1534 on a VEC.
1535 (output_types_sort): New.
1536 (output_used_types): Collect used types on a VEC and sort them
1537 before emission.
1538
1539 2006-07-24 Richard Guenther <rguenther@suse.de>
1540
1541 PR middle-end/28463
1542 * cgraph.c (cgraph_remove_node): Do not check if dumps
1543 are enabled.
1544 * cgraphunit.c (cgraph_optimize): Likewise.
1545
1546 2006-07-24 Jan Hubicka <jh@suse.cz>
1547
1548 PR rtl-optimization/28071
1549 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1550 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1551 splitting before first stmt.
1552
1553 2006-07-24 Jan Hubicka <jh@suse.cz>
1554
1555 PR rtl-optimization/28071
1556 * ipa-inline.c (update_caller_keys): Remove edges that
1557 are no longer inline candidates.
1558
1559 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1560
1561 PR debug/27473
1562 * dbxout.c (output_used_types_helper, output_used_types): New.
1563 (dbxout_symbol): Call output_used_types.
1564
1565 2006-07-23 Jan Hubicka <jh@suse.cz>
1566
1567 PR c/25795
1568 PR c++/27369
1569 * cgraph.c (cgraph_varpool_nodes): Export.
1570 (decide_is_variable_needed): Ignored "used" attribute in
1571 unit-at-a-time mode.
1572 * cgraph.h (cgraph_varpool_nodes): Declare.
1573 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1574 unit-at-a-time mode.
1575
1576 2006-07-23 Roger Sayle <roger@eyesopen.com>
1577
1578 PR target/28247
1579 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1580 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
1581 the __gthrw form of thr_keycreate.
1582 (__gthread_key_delete): Silence the unused argument warning.
1583
1584 2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
1585
1586 PR debug/25468
1587 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1588 Cache the last found '\0' marker to avoid quadratic behavior.
1589
1590 2006-07-23 Jan Hubicka <jh@suse.cz>
1591
1592 * i386.md (subsi_3_zext): Fix output template.
1593
1594 2006-07-21 Mike Stump <mrs@apple.com>
1595
1596 * doc/invoke.texi (C++ Dialect Options): Note that
1597 -fvisibility-inlines-hidden doesn't affect explicitly
1598 instantiationed inline methods.
1599
1600 2006-07-20 Roger Sayle <roger@eyesopen.com>
1601
1602 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1603 if the target assembler is GNU binutils' gas.
1604 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1605 whether to pass GNU gas or native as command line options.
1606
1607 2006-07-20 Jason Merrill <jason@redhat.com>
1608
1609 * tree.c (remove_attribute): New fn.
1610 * tree.h: Declare it.
1611
1612 2006-07-20 Paul Brook <paul@codesourcery.com>
1613
1614 PR 27363
1615 * cse.c (cse_insn): Add destination addresses to hash table. Check if
1616 they are invalidated by this instruction.
1617
1618 2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
1619
1620 PR target/28427
1621 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1622
1623 2006-07-20 Eric Christopher <echristo@apple.com>
1624
1625 PR target/26877
1626 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1627
1628 2006-07-19 Eric Christopher <echristo@apple.com>
1629
1630 * config/t-slibgcc-darwin (stmp-lipo): Remove.
1631 Rewrite dependencies for libgcc_s.1.dylib.
1632
1633 2006-07-19 Jakub Jelinek <jakub@redhat.com>
1634
1635 * except.c (duplicate_eh_regions_1): Clear next_peer.
1636
1637 2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
1638
1639 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1640 -mlongcall does not guarantee all calls will be long.
1641 * doc/extend.texi (long_call/short_call): Document that longcall
1642 does not guarantee a long call will be used.
1643 (longcall/shortcall): Likewise.
1644
1645 2006-07-18 Roger Sayle <roger@eyesopen.com>
1646
1647 PR middle-end/28283
1648 * expmed.c (expand_shift): Additionally check that the shift_cost
1649 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1650 before implementing a LSHIFT_EXPR as a sequence of additions.
1651 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1652 middle-end that DImode shifts need to be synthesized by expand.
1653
1654 2006-07-18 Diego Novillo <dnovillo@redhat.com>
1655
1656 PR 28410
1657 * tree-ssa-operands.c (access_can_touch_variable): Update
1658 comment.
1659 Return true if ALIAS is .GLOBAL_VAR.
1660
1661 2006-07-18 David Daney <ddaney@avtrex.com>
1662
1663 * gcc.c (display_help): Fix typo in help text.
1664
1665 2006-07-18 Olivier Hainque <hainque@adacore.com>
1666
1667 * tree.h (categorize_ctor_elements): Adjust prototype and add
1668 descriptive comment, both in accordance with the interface change
1669 described below.
1670 * varasm.c (constructor_static_from_elts_p): New function.
1671 Whether a constructor node is a valid static constant initializer
1672 if all its elements are.
1673 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1674 * output.h: Declare it.
1675 * expr.c (categorize_ctor_elements_1): Return whether the constructor
1676 is a valid constant initializer instead of computing the number of
1677 non-constant elements. Use constructor_static_from_elts_p for this
1678 purpose. Replace the head comment with an indication that this is a
1679 helper for categorize_ctor_elements.
1680 (categorize_ctor_elements): Same interface change as for the _1
1681 helper. Former head comment from this helper moved here, adjusted to
1682 account for the interface changes.
1683 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1684 (all_zeros_p): Likewise.
1685 * gimplify.c (gimplify_init_constructor): Decide whether we can make
1686 static versions of the constructor from the categorize_ctor_elements
1687 return value instead of the formerly computed number of non-constant
1688 elements.
1689
1690 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
1691
1692 * configure: Regenerate.
1693 * Makefile.in (build_libsubdir): New configure substitution
1694 (build_libobjdir): New variable.
1695 (BUILD_LIBIBERTY): Use it.
1696
1697 2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1698
1699 PR c/28286
1700 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1701
1702 2006-07-18 Alexandre Oliva <aoliva@redhat.com>
1703
1704 PR c/26993
1705 * c-common.c (handle_weakref_attribute): Ignore attribute in
1706 the same conditions the alias attribute is ignored.
1707
1708 2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
1709
1710 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1711 (dbxout_begin_prologue): Increment scope_labelno.
1712
1713 2006-07-17 Richard Henderson <rth@redhat.com>
1714
1715 PR 27889
1716 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1717 if needed.
1718
1719 2006-07-17 Roger Sayle <roger@eyesopen.com>
1720 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1721
1722 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1723 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
1724 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
1725 functions such as sbrk, write, etc.. Add function prototypes.
1726 Convert function declarations from K&R to ISO C. Cast pointers
1727 to "long" and "unsigned long" instead of "int" and "unsigned int".
1728 Convert tokens following #endif into comments.
1729
1730 2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
1731
1732 * invoke.texi: Remove mention of f77; Reformat table for
1733 inline parameter options correctly; mention that -malign-double
1734 is default on x86-64 targets.
1735
1736 2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
1737
1738 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1739 (convert_affine_scev, chrec_convert_aggressive): Use
1740 avoid_arithmetics_in_type_p. Do not check for the subtypes
1741 separately.
1742
1743 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1744
1745 PR middle-end/28403
1746 * optabs.c (expand_doubleword_shift): Wrap the call to
1747 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1748
1749 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1750
1751 PR middle-end/28402
1752 * optabs.c (expand_binop): Pass next_methods rather than methods
1753 to expand_doubleword_shift.
1754
1755 2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
1756
1757 PR other/28251
1758 * tree.h (dump_addr): Declare.
1759 * print-tree.c (dump_addr): New function.
1760 (print_node_brief, print_node): Use it.
1761 * print-rtl.c (print_rtx): Likewise.
1762 * common.opt (-fdump-noaddr): New option.
1763 * doc/invoke.texi (-fdump-noaddr): Document.
1764 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1765 (ve_info_hash): Likewise.
1766
1767 2006-07-13 Andrew Haley <aph@redhat.com>
1768
1769 PR tree-optimization/19505
1770 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1771 edge leaving this block, make sure that the destination of this
1772 block has only one predecessor.
1773
1774 2006-07-17 Richard Guenther <rguenther@suse.de>
1775
1776 PR tree-optimization/28238
1777 * tree-inline.c (copy_bb): Check if we produced valid
1778 gimple copying and substituting a stmt. If not, gimplify
1779 it.
1780
1781 2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
1782
1783 * optabs.c (maybe_encapsulate_block): New function extracted from...
1784 (emit_libcall_block): ...here. Invoke it on the block of insns to
1785 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
1786 (emit_no_conflict_block): Likewise.
1787
1788 2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1789
1790 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
1791
1792 2006-07-15 Roger Sayle <roger@eyesopen.com>
1793
1794 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
1795 a new NOP_EXPR case of the switch statement.
1796
1797 2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
1798
1799 PR middle-end/28160
1800 * stor-layout.c (place_field): Take the bit field with
1801 an excessive size into account in the ms-bitfiled case.
1802
1803 PR middle-end/28161
1804 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
1805 the previous bit field.
1806
1807 2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
1808
1809 PR target/27287
1810 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
1811
1812 2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
1813
1814 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
1815 signal frames correctly even when the signal was installed with
1816 sa_restorer set.
1817
1818 2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
1819
1820 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
1821 (dbxout_function_end): Use local label LFBB. Remove hook
1822 DBX_OUTPUT_NFUN.
1823 (dbxout_source_line): Use local label LFBB.
1824 (dbxout_block): Likewise.
1825 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
1826 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
1827 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
1828 and DBX_OUTPUT_NFUN.
1829
1830 2006-07-13 Janis Johnson <janis187@us.ibm.com>
1831
1832 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
1833
1834 2006-07-13 Jan Hubicka <jh@suse.cz>
1835
1836 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
1837 align_variable.
1838 * output.h (align_variable): Declare.
1839 * varasm.c (align_variable): Export.
1840 * value-prof.c (tree_value_profile_transformations): Recompute iterator
1841 when basic block changed.
1842
1843 2006-07-13 Nick Clifton <nickc@redhat.com>
1844
1845 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
1846 walking the LOG_LINKS chain.
1847
1848 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1849
1850 * doc/invoke.texi (C++ Dialect Options): Explain difference
1851 between -fvisibility-inlines-hidden and setting hidden
1852 visibility explicitly.
1853
1854 2006-07-12 Eric Christopher <echristo@apple.com>
1855
1856 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
1857 (stmp-lipo): Depend on libgcc.a.
1858
1859 2006-07-12 Kazu Hirata <kazu@codesourcery.com>
1860
1861 * tree.c: Fix a comment typo.
1862
1863 2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
1864
1865 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
1866 dest.
1867 (umulhisi3_r): Likewise.
1868
1869 2006-07-12 Paolo Carlini <pcarlini@suse.de>
1870
1871 PR libstdc++/27878
1872 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
1873 x < 19, vs wchar_t support.
1874
1875 2006-07-12 Nick Clifton <nickc@redhat.com>
1876
1877 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
1878 instead of -isa=sh4.
1879
1880 2006-07-12 Mike Stump <mrs@apple.com>
1881
1882 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
1883
1884 2006-07-10 Eric Christopher <echristo@apple.com>
1885
1886 * config/t-slibgcc-darwin: Rewrite.
1887
1888 2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1889
1890 PR bootstrap/20437
1891 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
1892 dependencies.
1893
1894 2006-07-08 Matthias Klose <doko@debian.org>
1895
1896 * doc/sourcebuild.texi: Fix typo.
1897
1898 2006-07-07 Mike Stump <mrs@apple.com>
1899
1900 * toplev.c (process_options): Don't give -ffunction-sections may
1901 affect debugging warning for Mach-O.
1902
1903 2006-07-07 James E Wilson <wilson@specifix.com>
1904
1905 * config/mips/mips.md (cpu): Add sb1a.
1906 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
1907 addition to sb1. Adjust comments to clarify SB-1A differences from
1908 SB-1.
1909 (ir_sb1a_load): New. Modify bypasses to use it.
1910 (ir_sb1a_simple_alu): Likewise.
1911 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1912 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1913 (mips_issue_rate): Add PROCESSOR_SB1A.
1914 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1915 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1916 (TARGET_SB1): Add PROCESSOR_SB1A check.
1917 (TUNE_SB1): Likewise.
1918
1919 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1920 * config/mips/mips.c (mips_store_data_bypass_p): New.
1921 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1922 store_data_bypass_p.
1923
1924 2006-07-08 Paul Brook <paul@codesourcery.com>
1925
1926 PR target/27991
1927 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1928
1929 2006-07-07 Richard Guenther <rguenther@suse.de>
1930
1931 PR middle-end/28268
1932 * tree.h (build_one_cst): Declare.
1933 * tree.c (build_one_cst): New function.
1934 * tree-ssa-math-opts.c (get_constant_one): Remove.
1935 (insert_reciprocals): Use build_one_cst.
1936 * fold-const.c (fold_plusminus_mult): Likewise.
1937
1938 2006-07-07 Roger Sayle <roger@eyesopen.com>
1939
1940 * pointer-set.c (pointer_set_destroy): Correct whitespace.
1941 * cfgloopanal.c (dump_graph): Likewise.
1942 * dojump.c (discard_pending_stack_adjust): Likewise.
1943 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1944 Likewise.
1945 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1946 * function.c (finalize_block_changes): Likewise.
1947 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1948 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1949 * rtl.c (dump_rtx_statistics): Likewise.
1950 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1951 Likewise.
1952 * varray.c (dump_varray_statistics): Likewise.
1953 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1954 decode_decimal64, encode_decimal128, decode_decimal128,
1955 decimal_real_to_decimal): Likewise.
1956
1957 2006-07-07 Richard Guenther <rguenther@suse.de>
1958
1959 PR tree-optimization/28187
1960 * tree-vrp.c (vrp_operand_equal_p): New function.
1961 (vrp_bitmap_equal_p): Likewise.
1962 (update_value_range): Use them to compare old and new
1963 max and min values.
1964
1965 2006-07-06 Roger Sayle <roger@eyesopen.com>
1966
1967 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
1968 a default case to switch statement to silence compiler warnings.
1969
1970 2006-07-06 Roger Sayle <roger@eyesopen.com>
1971
1972 PR target/27968
1973 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
1974 the configured assembler supports the x87's ffreep mnemonic.
1975 * configure: Regenerate.
1976 * config.in: Regenerate.
1977
1978 * config/i386/i386.c (output_387_ffreep): New function.
1979 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
1980 (output_387_reg_move): Likewise.
1981
1982 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
1983
1984 Port to hosts whose 'sort' and 'tail' implementations
1985 treat operands with leading '+' as file names, as POSIX
1986 has required since 2001. However, make sure the code still
1987 works on pre-POSIX hosts.
1988 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
1989 which says you should use "tail -c +N" rather than "tail +Nc".
1990 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
1991
1992 2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
1993
1994 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
1995 argument name.
1996
1997 2006-07-06 David Edelsohn <edelsohn@gnu.org>
1998
1999 PR target/28150
2000 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2001 PRE_{INC,DEC} of TFmode.
2002
2003 2006-07-06 David Edelsohn <edelsohn@gnu.org>
2004 Alan Modra <amodra@bigpond.net.au>
2005
2006 PR target/28170
2007 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2008 bounds. Simplify.
2009
2010 2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2011
2012 PR target/28285
2013 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2014 Remove duplicate gtu.
2015
2016 2006-07-05 Jason Merrill <jason@redhat.com>
2017
2018 PR c++/13983
2019 PR c++/17519
2020 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2021 * c-common.c (handle_packed_attribute): So don't copy it here.
2022 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2023
2024 2006-07-05 Mike Stump <mrs@apple.com>
2025
2026 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2027
2028 2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
2029
2030 PR target/26146
2031 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2032
2033 2006-07-05 Richard Guenther <rguenther@suse.de>
2034
2035 PR target/28158
2036 * config/i386/i386.md (*negdf2_1): Restrict pattern to
2037 TARGET_SSE2 targets if using SSE math.
2038 (*absdf2_1): Likewise.
2039
2040 2006-07-05 Richard Guenther <rguenther@suse.de>
2041
2042 PR tree-optimization/28162
2043 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2044 make sure to convert the operands to the correct type.
2045
2046 2006-07-04 Paolo Bonzini <bonzini@gnu.org>
2047
2048 PR tree-optimization/28218
2049
2050 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2051 to calculate and free the dominator information.
2052
2053 2006-07-04 Peter O'Gorman <peter@pogma.com>
2054
2055 * mklibgcc.in: chmod 644 before ranlib during install.
2056
2057 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2058 J"orn Rennecke <joern.rennecke@st.com>
2059
2060 * configure.ac (.eh_frame data check): Use diff -b.
2061
2062 2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2063
2064 PR bootstrap/18058
2065 * Makefile.in (BUILD_RTL): Add build/vec.o.
2066 (build/gencondmd.o): Filter out -fkeep-inline-functions.
2067 (build/genextract): Delete.
2068 (build/genautomata): Likewise.
2069
2070 2006-07-04 Alan Modra <amodra@bigpond.net.au>
2071
2072 PR target/28207
2073 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2074 128-bit IBM long doubles for ABI_V4.
2075
2076 2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
2077
2078 * tree.c (range_in_array_bounds_p): New predicate.
2079 * tree.h (range_in_array_bounds_p): Declare it.
2080 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2081 return a less conservative answer.
2082 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2083 and flag 'is_group'.
2084 (IS_ELEMENT_FOR_GROUP): New macro.
2085 (FOR_EACH_ACTUAL_CHILD): Likewise.
2086 (next_child_for_group): New helper function.
2087 (can_completely_scalarize_p): Take into account groups.
2088 (sra_hash_tree): Handle RANGE_EXPR.
2089 (sra_elt_eq): Likewise.
2090 (lookup_element): Be prepared for handling groups.
2091 (is_valid_const_index): Delete.
2092 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2093 instead of is_valid_const_index.
2094 <ARRAY_RANGE_REF>: New case.
2095 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2096 is_valid_const_index.
2097 <ARRAY_RANGE_REF>: Do not unconditionally punt.
2098 (scan_dump): Dump info for groups too.
2099 (decide_instantiation_1): Likewise.
2100 (decide_block_copy): Assert that the element is not a group.
2101 Propagate decision to groups.
2102 (generate_one_element_ref): Handle RANGE_EXPR.
2103 (mark_no_warning): Iterate over actual childs.
2104 (generate_copy_inout): Likewise.
2105 (generate_element_copy): Likewise.
2106 (generate_element_zero): Likewise.
2107 (generate_element_init_1): Likewise.
2108 (dump_sra_elt_name): Handle RANGE_EXPR.
2109
2110 2006-07-03 Roger Sayle <roger@eyesopen.com>
2111
2112 PR tree-optimization/26251
2113 * tree-ssa-threadupdate.c (redirection_block_p): New function.
2114 (thread_block): When optimizing for size refuse to thread jumps
2115 that would require duplication of blocks other than redirection
2116 blocks.
2117
2118 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2119
2120 * configure.ac: Fix thinko in previous check-in.
2121 * configure: Regenerate.
2122
2123 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2124
2125 PR other/27063
2126 * configure.ac (for lang...): Simplify nesting of conditionals.
2127 Test subdir_requires for non-enabled languages. Move processing
2128 of lang_opt_files and lang_tree_fiels below that test.
2129 * configure: Regenerate.
2130 * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2131
2132 2006-07-01 Martin Michlmayr <tbm@cyrius.com>
2133
2134 * doc/gcov.texi (Invoking Gcov): Add a missing word.
2135
2136 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2137
2138 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2139 comment typos.
2140
2141 2006-06-29 Jason Merrill <jason@redhat.com>
2142
2143 PR c++/26905
2144 PR c++/26612
2145 PR c++/27000
2146 PR c++/26984
2147 PR c++/19134
2148 * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2149 * c-common.c (c_determine_visibility): Handle it here.
2150 * c-decl.c (finish_decl): Call c_determine_visibility for
2151 functions, too.
2152 * flags.h (enum symbol_visibility): Sort from most to least visibility.
2153 * tree.h: Likewise.
2154 * varasm.c (default_assemble_visibility): Likewise.
2155 * c-common.c (handle_visibility_attribute): Complain about trying
2156 to give visibility to an already defined class, or trying to change
2157 declared visibility. Always attach the attribute.
2158
2159 PR c++/26905
2160 PR c++/21675
2161 PR c++/17470
2162 * attribs.c (decl_attributes): Ignore type-in-place attributes
2163 once the type has been defined.
2164
2165 2006-06-29 Roger Sayle <roger@eyesopen.com>
2166
2167 PR middle-end/27428
2168 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2169 to indicate the cpplib has issued an error message for us.
2170
2171 2006-06-29 Asher Langton <langton2@llnl.gov>
2172
2173 PR target/25765
2174 * config/i386/i386.c (ix86_output_function_epilogue): Don't
2175 insert a label at the end of an function under Mach-O.
2176
2177 2006-06-29 Eric Christopher <echristo@apple.com>
2178 Evan Cheng <evan.cheng@apple.com>
2179
2180 * predicates.md (vector_all_ones_operand): New.
2181 (nonimmediate_or_sse_const_operand): Ditto.
2182 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2183 * config/i386/i386.c (standard_sse_constant_opcode): Define.
2184 (standard_sse_mode_p): Ditto.
2185 (standard_sse_constant_p): Add case for -1 vector.
2186 (ix86_expand_vector_move): Try to use.
2187 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2188 Call standard_sse_constant_opcode.
2189 (*movv4sf_internal): Ditto.
2190 (*movv2df_internal): Ditto.
2191
2192 2006-06-29 Roger Sayle <roger@eyesopen.com>
2193
2194 * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2195 of XEXP to extract the operands of a MATCH_CODE rtx.
2196
2197 2006-06-28 Andrew Pinski <pinskia@gmail.com>
2198
2199 * tree.c (tree_size): Do not waste tail padding in
2200 struct tree_string and make the size be the same as
2201 build_string will generate.
2202
2203 2006-06-28 Jason Merrill <jason@redhat.com>
2204
2205 PR c++/27768
2206 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2207 may_aliases already in the tag's annotations to the bitmap.
2208
2209 2006-06-28 Roger Sayle <roger@eyesopen.com>
2210
2211 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2212
2213 2006-06-28 Roger Sayle <roger@eyesopen.com>
2214
2215 * genpreds.c (generate_switch_p): New function.
2216 (add_mode_tests): Push the new mode test down inside an AND expr
2217 if this allows the switch-suitable MATCH_CODE to be near the root.
2218 (write_match_code_switch): New function to write a MATCH_CODE as
2219 a switch statement.
2220 (write_predicate_stmts): New function to write a predicate RTX
2221 expression as a sequence of statements.
2222 (write_one_predicate_function): Use write_predicate_stmts.
2223 (write_tm_constrs_h): Likewise.
2224
2225 2006-06-26 Fred Fish <fnf@specifix.com>
2226
2227 * config/mips/t-sb1: New file.
2228 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2229 tmake_file list.
2230
2231 2006-06-26 DJ Delorie <dj@redhat.com>
2232
2233 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2234
2235 2006-06-26 Naveen H.S <naveenh@kpitcummins.com>
2236 Jayant Sonar <jayants@kpitcummins.com>
2237 Jaydeep Vipradas <jaydeepv@kpitcummins.com>
2238
2239 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2240 (subsi3, subsi3_1, subsi3_2): New.
2241 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2242 * config/m32c/mov.md (SI mov peephole): New.
2243 * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2244 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2245
2246 2006-06-26 Olivier Hainque <hainque@adacore.com>
2247
2248 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2249 a CALL_EXPR target function declaration.
2250
2251 2006-06-26 Richard Guenther <rguenther@suse.de>
2252
2253 * tree.c (build_string): Do not waste tail padding in
2254 struct tree_string.
2255
2256 2006-06-26 Richard Guenther <rguenther@suse.de>
2257
2258 * ggc-page.c (init_ggc): Add missing element to size_lookup
2259 table.
2260
2261 Revert
2262 2006-06-23 Richard Guenther <rguenther@suse.de>
2263
2264 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2265 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2266 alignment requests instead. Add verification code.
2267 Add struct tree_function_decl and struct tree_binfo size to
2268 extra_order_size_table. Add missing element to size_lookup
2269 table.
2270
2271 2006-06-25 Eric Botcazou <ebotcazou@adacore.com>
2272
2273 PR middle-end/28151
2274 * fold-const.c (const_binop): Be prepared for self returning zero.
2275 Simplify code handling complex values.
2276
2277 2006-06-24 Olivier Hainque <hainque@adacore.com>
2278
2279 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2280 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2281 aggregate types.
2282
2283 2006-06-24 Olivier Hainque <hainque@adacore.com>
2284
2285 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2286 ARRAY_REF, so have the callback called for the low bound expression.
2287
2288 2006-06-23 Janis Johnson <janis187@us.ibm.com>
2289
2290 * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2291 * c-typeck.c (c_common_type): Disallow operations on decimal float
2292 types and other float types.
2293 * convert.c (convert_to_real): Don't ignore conversions involving
2294 decimal float types.
2295
2296 2006-06-23 Olivier Hainque <hainque@adacore.com>
2297
2298 * tree.c (max_int_size_in_bytes): New function, inspired from
2299 code in function.c:assign_temp.
2300 * tree.h (max_int_size_in_bytes): Declare.
2301 * function.c (assign_temp): Use it.
2302 * gimplify.c (create_tmp_var): Relax the assertions on the type
2303 properties, not mandating constant size any more.
2304 (force_constant_size): New static function.
2305 (gimple_add_tmp_var): Use it, forcing variable size to a
2306 constant upper bound if it is not constant on entry.
2307
2308 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2309
2310 PR target/27789
2311 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
2312 for initialization and setting of one_only flag to ...
2313 (i386_pe_encode_section_info): ...here.
2314 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
2315 Recheck that the symbol has not been defined.
2316
2317 2006-06-23 Richard Guenther <rguenther@suse.de>
2318
2319 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2320 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2321 alignment requests instead. Add verification code.
2322 Add struct tree_function_decl and struct tree_binfo size to
2323 extra_order_size_table. Add missing element to size_lookup
2324 table.
2325
2326 2006-06-22 Roger Sayle <roger@eyesopen.com>
2327 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2328
2329 PR middle-end/28131
2330 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
2331 call to lang_hooks.types.type_for_mode returned NULL_TREE.
2332
2333 2006-06-23 Ben Elliston <bje@au.ibm.com>
2334
2335 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
2336 negate dn -- manipulate it directly.
2337
2338 2006-06-22 Roger Sayle <roger@eyesopen.com>
2339 Steven Bosscher <stevenb.gcc@gmail.com>
2340
2341 PR target/27531
2342 * reload1.c (gen_reload): Call mark_jump_label on the new insns
2343 generated by gen_move_insn to add REG_LABEL notes if necessary.
2344
2345 2006-06-22 Bob Wilson <bob.wilson@acm.org>
2346
2347 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2348 (leaf_entry): Remove use of MIN_ESA.
2349
2350 2006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
2351
2352 PR rtl-optimization/28121
2353 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2354 the entry edge.
2355
2356 2006-06-21 DJ Delorie <dj@redhat.com>
2357
2358 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2359 (TN-16C-A156A/E).
2360 (mulhisi3_r): Likewise.
2361
2362 2006-06-21 Richard Sandiford <richard@codesourcery.com>
2363
2364 PR middle-end/28034
2365 * coverage.c (coverage_counter_alloc): Leave the index type
2366 unspecified.
2367 (coverage_counter_alloc): Use null arguments for operands 2 and 3
2368 of the ARRAY_REF.
2369
2370 2006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
2371
2372 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
2373 section from the "Options for Code Generation Conventions".
2374
2375 2006-06-21 Richard Henderson <rth@redhat.com>
2376
2377 PR target/26347
2378 PR target/27082
2379 * config/alpha/predicates.md (small_symbolic_operand): Deny weak
2380 symbols.
2381 (global_symbolic_operand): Allow weak symbols, even if local_p.
2382
2383 2006-06-21 Eric Botcazou <ebotcazou@adacore.com>
2384
2385 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
2386 (find_interesting_uses_address): Punt if above function returns true.
2387
2388 2006-06-21 Richard Guenther <rguenther@suse.de>
2389
2390 * configure: Regenerated.
2391
2392 2006-06-21 Joseph Myers <joseph@codesourcery.com>
2393
2394 * config/mips/mips.c (function_arg): Where one part of a
2395 complex argument is in registers and the other part in the stack,
2396 return a REG not a PARALLEL.
2397
2398 2006-06-21 Mark Mitchell <mark@codesourcery.com>
2399
2400 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
2401 when cross-compiling. Do not substitute libstdcxx_incdir.
2402 * configure: Regenerated.
2403
2404 2006-06-21 Jakub Jelinek <jakub@redhat.com>
2405
2406 * varasm.c (mergeable_string_section): Check for embedded NULs and
2407 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
2408 rather than TREE_STRING_LENGTH bytes.
2409
2410 2006-06-21 Richard Guenther <rguenther@suse.de>
2411
2412 * ggc-page.c (extra_order_size_table): Add var_ann_d,
2413 tree_ssa_name, bitmap_element and phi_node with 4 arguments
2414 sizes.
2415
2416 2006-06-21 Richrad Guenther <rguenther@suse.de>
2417
2418 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2419 Limit iteration over the dominators.
2420
2421 2006-06-20 Roger Sayle <roger@eyesopen.com>
2422
2423 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
2424 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2425
2426 2006-06-20 Richard Guenther <rguenther@suse.de>
2427 Michael Matz <matz@suse.de>
2428
2429 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
2430 function.
2431 * alloc-pool.c (free_alloc_pool_if_empty): New function.
2432 * et-forest.h (et_free_pools): Prototype new function.
2433 * et-forest.c (et_free_tree_force): Free parent occurrence.
2434 (et_free_pools): New function.
2435 * dominance.c (free_dominance_info): Free et-forest alloc
2436 pools.
2437
2438 2006-06-20 Roger Sayle <roger@eyesopen.com>
2439
2440 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
2441 integer modes, attempt to directly construct an integer constant.
2442
2443 * fold-const.c (native_encode_vector): Determine the size of each
2444 element from the vector type instead of the first vector element.
2445
2446 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2447 if all of its elements/components are constant.
2448 (build_constructor_from_list): Likewise.
2449
2450 2006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
2451
2452 PR tree-optimization/27331
2453 * tree-data-ref.c (free_data_ref): New function.
2454 (create_data_ref): Fail if the data reference has unknown access
2455 function.
2456 (free_data_refs): Use free_data_ref.
2457
2458 2006-06-19 Andrew Pinski <pinskia@gmail.com>
2459
2460 PR middle-end/28075
2461 * tree-inline.c (setup_one_parameter): Strip useless
2462 type conversion before adding it to the IR.
2463 (declare_return_variable): Likewise.
2464
2465 2006-06-19 Martin Michlmayr <tbm@cyrius.com>
2466
2467 PR c/27149
2468 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2469
2470 2006-06-19 Mike Stump <mrs@apple.com>
2471
2472 * tree.c (variably_modified_type_p): VM arguments don't make the
2473 type a VM type.
2474
2475 2006-06-19 Richard Guenther <rguenther@suse.de>
2476
2477 * tree-ssa-pre.c (try_combine_conversion): Strip useless
2478 type conversions after folding.
2479
2480 2006-06-19 Richard Guenther <rguenther@suse.de>
2481
2482 * ggc-page.c (extra_order_size_tab): Add entries with
2483 size of struct function and basic_block.
2484 (size_lookup): Extend to cover sizes up to 511.
2485 (ggc_alloc_stat): Adjust user.
2486 (ggc_pch_count_object): Likewise.
2487 (ggc_pch_alloc_object): Likewise.
2488 (ggc_pch_write_object): Likewise.
2489
2490 2006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
2491
2492 * tree-ssa-loop-niter.c (implies_ge_p): New function.
2493 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2494 correctly.
2495
2496 2006-06-19 Denis Chertykov <denisc@overta.ru>
2497
2498 * config/avr/libgcc.S : Correct my wrong previous commit.
2499
2500 2006-06-19 Roger Sayle <roger@eyesopen.com>
2501
2502 PR target/27861
2503 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2504 have stripped a SUBREG from the shift count, so we may need to
2505 convert_to_mode back to the type's mode before calling make_tree.
2506 Use new_amount instead of amount to avoid expanding a tree twice.
2507
2508 2006-06-19 Richard Guenther <rguenther@suse.de>
2509
2510 PR middle-end/28045
2511 * fold-const.c (operand_equal_p): Check if the argument types
2512 have the same precision before stripping NOPs.
2513
2514 2006-06-19 Daniel Berlin <dberlin@dberlin.org>
2515
2516 Fix PR tree-optimization/27341
2517 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2518 statement we get.
2519 * tree-complex.c (pass_lower_complex): Update SMT usage.
2520
2521 2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
2522
2523 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2524 Add a new alternative to the constraint strings. Add move of
2525 operand 1 to 3 to the splitter definition.
2526 ("doloop_si_long"): Second contraint alternative removed.
2527
2528 2006-06-08 Anatoly Sokolov <aesok@post.ru>
2529
2530 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2531 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2532 __AVR_HAVE_LPMX__.
2533 (AVR_HAVE_MOVW) Define.
2534 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2535 (ASM_SPEC): Add avr25.
2536 (LINK_SPEC): Add avr25.
2537 * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2538 (base_arch_s): Add new member 'have_movw_lpmx'.
2539 (avr_arch_types): Init 'have_movw_lpmx'.
2540 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2541 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2542 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2543 (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2544 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2545 AVR_HAVE_MOVW.
2546 (avr_file_start): Do not output '.arh' derective.
2547 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2548 (__do_copy_data): Use __AVR_HAVE_LPMX__.
2549 * config/avr/avr.md (mcu_enhanced): Delete.
2550 (mcu_have_movw): Define.
2551 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2552 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2553 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2554 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2555 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2556 attiny861 and at86rf401 devices.
2557
2558 2006-06-18 Jie Zhang <jie.zhang@analog.com>
2559
2560 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2561 of 4096.
2562
2563 2006-06-17 Karl Berry <karl@gnu.org>
2564
2565 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2566 doc/gccint.texi, doc/install.texi (@dircategory): Use
2567 "Software development" instead of "Programming", following
2568 the Free Software Directory.
2569
2570 2006-06-17 Alexandre Oliva <aoliva@redhat.com>
2571
2572 * config/i386/i386.c (legitimate_tls_address)
2573 <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2574 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2575 (*tls_dynamic_gnu2_combine_64): Likewise.
2576
2577 2006-06-16 Richard Guenther <rguenther@suse.de>
2578
2579 PR middle-end/27116
2580 * fold-const.c (negate_expr_p): Do not introduce undefined
2581 overflow in negating INTEGER_CSTs.
2582 (fold_negate_expr): Rename from negate_expr. Revert last
2583 change for folding BIT_NOT_EXPR. Change semantics to
2584 return NULL_TREE for non-simplified negations. Do not
2585 strip type conversions and unify type handling.
2586 (negate_expr): New function, wrap around fold_negate_expr
2587 but ensure building a tree always. Strip type conversions
2588 here, fold to result type.
2589 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2590
2591 2006-06-16 Roger Sayle <roger@eyesopen.com>
2592
2593 PR middle-end/27802
2594 * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2595 that (would) return their results in stack registers.
2596
2597 2006-06-16 Michael Matz <matz@suse.de>
2598 Richard Guenther <rguenther@suse.de>
2599
2600 * fold-const.c (fold_truthop): Only return new tree node if
2601 we canonicalized something.
2602
2603 2006-06-16 Richard Guenther <rguenther@suse.de>
2604
2605 * function.h (enum function_frequency): Move declaration
2606 out of struct function.
2607 (struct function): Move bool fields and the enum to the bitfield
2608 section. Reorder elements to avoid padding. Remove unused
2609 fields left over from the RTL inliner removal.
2610 * function.c (free_after_compilation): Do not zero removed fields.
2611 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2612 (ipa-type-escape.o): Likewise.
2613
2614 2006-06-16 Richard Guenther <rguenther@suse.de>
2615
2616 * cgraph.h (struct cgraph_local_info): Turn bool elements
2617 into a bitfield.
2618 (struct cgraph_node): Likewise.
2619 (struct cgraph_varpool_node): Likewise.
2620
2621 2006-06-15 Richard Guenther <rguenther@suse.de>
2622
2623 * fold-const.c (fold_truth_not_expr): Rename from
2624 invert_truthvalue. Give it fold_* semantics to avoid
2625 generating garbage.
2626 (invert_truthvalue): New function. Wrapper around
2627 fold_truth_not_expr.
2628 (optimize_minmax_comparison): Avoid creating garbage.
2629 (fold_unary): Use fold_truth_not_expr for folding
2630 TRUTH_NOT_EXPR.
2631 (fold_ternary): Replace uses of invert_truthvalue with
2632 fold_truth_not_expr where applicable.
2633 * tree.h (fold_truth_not_expr): Prototype.
2634
2635 2006-06-16 Richard Guenther <rguenther@suse.de>
2636
2637 PR tree-optimization/27781
2638 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2639 * ipa-pure-const.c (target.h): Include.
2640 (analyze_function): Do not analyze functions that do not
2641 bind locally.
2642
2643 2006-06-15 Andrew MacLeod <amacleod@redhat.com>
2644
2645 PR middle-end/27793
2646 * tree-dfa.c (referenced_vars_dup_list): Remove.
2647 (find_referenced_vars): Remove assert.
2648 (referenced_var_check_and_insert): Replace dup list with assert.
2649 * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2650 * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2651
2652 2006-06-15 Richard Guenther <rguenther@suse.de>
2653
2654 * tree-ssa-structalias.c (alias_get_name): Avoid creating
2655 extra unused identifiers if not dumping.
2656 (create_variable_info_for): Likewise.
2657
2658 2006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
2659
2660 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2661 (derive_constant_upper_bound): Derive more precise upper bound in
2662 common cases. Return type changed to double_int.
2663 (record_estimate): Reflect the changed return type of
2664 derive_constant_upper_bound.
2665 * double-int.c (double_int_zext, double_int_sext): Fix.
2666
2667 2006-06-15 Paolo Bonzini <bonzini@gnu.org>
2668
2669 * configure.ac (CFLAGS): Get them from the toplevel or from the
2670 configure invocation.
2671 * configure: Regenerate.
2672 * Makefile.in (CFLAGS): Substitute value provided by configure.
2673
2674 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2675
2676 PR c++/26559
2677 * c-common.h (c_finish_omp_atomic): Adjust declaration.
2678 * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2679 rather than calling add_stmt on it.
2680 * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2681
2682 2006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
2683
2684 PR middle-end/27959
2685 * reload1.c (reload): Remove registers returned by update_eliminables
2686 from used_spill_regs.
2687
2688 2006-06-13 DJ Delorie <dj@redhat.com>
2689
2690 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2691
2692 2006-06-13 Carlos O'Donell <carlos@codesourcery.com>
2693
2694 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2695 html__strip_dir, html__mkdir_p. Enhance install-html target.
2696 * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2697 * configure: Regenerate.
2698
2699 2006-06-13 Fariborz Jahanian <fjahanian@apple.com>
2700
2701 * fold-const.c (fold_cond_expr_with_comparison): Check for
2702 Objective-C++ as language in deciding COND_EXPR transformation.
2703
2704 2006-06-06 J"orn Rennecke <joern.rennecke@st.com>
2705
2706 PR target/28014:
2707 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2708 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2709 * config/sh/lib1funcs.h (SL, SL1): Define.
2710 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2711 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2712 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2713 (OBJS_Os_4_200): New variable.
2714 ($(T)libgcc-Os-4-200.a): Use it.
2715 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2716 when dividing 1 and/or by 0.
2717
2718 2006-06-13 Roger Sayle <roger@eyesopen.com>
2719
2720 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2721 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2722 * configure: Regenerate.
2723
2724 2006-06-13 Jie Zhang <jie.zhang@analog.com>
2725
2726 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2727 for real instruction.
2728
2729 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2730
2731 PR middle-end/26807
2732 * haifa-sched.c (check_cfg): Handle special case.
2733
2734 2006-06-13 Eric Botcazou <ebotcazou@adacore.com>
2735
2736 PR debug/26754
2737 * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2738 Add debug_info parameter. Chain the vars to the BLOCK instead
2739 of the BIND_EXPR if debug info are requested for them.
2740 (pop_gimplify_context): Adjust for above change.
2741 (gimple_add_tmp_var): Likewise.
2742 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2743 Add bool parameter.
2744 * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2745 (convert_local_reference): Likewise.
2746 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2747 (finalize_nesting_tree_1): Request that debug info be emitted
2748 for debug_var_chain.
2749
2750 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2751
2752 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2753 for PR target/27863.
2754
2755 2006-06-13 Richard Guenther <rguenther@suse.de>
2756
2757 PR middle-end/27536
2758 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2759
2760 2006-06-13 Richard Guenther <rguenther@suse.de>
2761
2762 PR tree-optimization/27830
2763 * tree-inline.c (copy_body_r): For copying the operand
2764 of an ADDR_EXPR make sure to fold &* afterwards.
2765
2766 2006-06-12 Eric Botcazou <ebotcazou@adacore.com>
2767
2768 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2769 lvalues in the fb_none case with side-effects.
2770
2771 2006-06-12 Kazu Hirata <kazu@codesourcery.com>
2772
2773 * tree-flow.h: Remove the prototype for
2774 compute_phi_arg_on_exit.
2775 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
2776 protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
2777 Remove.
2778
2779 2006-06-12 Mark Shinwell <shinwell@codesourcery.com>
2780
2781 * builtins.c (expand_builtin_return_addr): Only use
2782 frame_pointer_rtx when count == 0 and we are expanding
2783 __builtin_return_address.
2784
2785 2006-06-12 Fred Fish <fnf@specifix.com>
2786
2787 * config/mips/mips.c (mips_file_start): Create special section
2788 ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2789
2790 2006-06-11 Eric Christopher <echristo@apple.com>
2791
2792 PR middle-end/27948
2793 * stor-layout.c (place_field): Remove check for
2794 remaining_in_alignment when aligning at the end of a run.
2795
2796 2006-06-11 Eric Christopher <echristo@apple.com>
2797
2798 PR 27542
2799 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
2800 pragma.
2801
2802 2006-06-11 Roger Sayle <roger@eyesopen.com>
2803
2804 PR target/27858
2805 Revert incorrect fix for PR target/27158
2806 2006-05-08 Roger Sayle <roger@eyesopen.com>
2807 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2808 of a reg_equiv_constant if the result is a legitimate constant.
2809
2810 2006-06-11 Roger Sayle <roger@eyesopen.com>
2811
2812 PR target/27158
2813 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
2814 extract a CONST_VECTOR element and interpret it as an integer.
2815 (vspltis_constant): Use const_vector_elt_as_int instead of the
2816 macro CONST_VECTOR_ELT in order to handle FP vector modes.
2817 * config/rs6000/predicates.md (easy_vector_const): Consider
2818 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2819
2820 2006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2821
2822 PR middle-end/27942
2823 * stor-layout.c (update_alignment_for_field): Don't add extra
2824 alignment for packed non-bitfield fields in ms_bitfield_layout_p
2825 code.
2826
2827 2006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
2828
2829 * config/mips/t-rtems: Add EL/EB multilib variants.
2830
2831 2006-06-09 Mike Stump <mrs@apple.com>
2832
2833 * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2834
2835 2006-06-09 David Daney <ddaney@avtrex.com>
2836
2837 * doc/install.texi: Add binutils version recommendation for mips-*-*.
2838
2839 2006-06-09 Andreas Krebbel <krebbel1@de.ibm.com>
2840
2841 * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2842
2843 2006-06-09 Richard Guenther <rguenther@suse.de>
2844
2845 PR tree-optimization/26998
2846 * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
2847 of signed types, only TYPE_MIN_VALUE is special, but for both,
2848 minimum and maximum value. Likewise VR_ANTI_RANGE is special
2849 in this case, as is -fwrapv.
2850
2851 2006-06-08 Mike Stump <mrs@apple.com>
2852
2853 PR target/26427
2854 * config/darwin.c (darwin_asm_output_anchor): Disable
2855 -fsection-anchors on darwin for now.
2856 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
2857 * rs6000/rs6000.c (optimization_options): Likewise.
2858
2859 2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2860
2861 PR target/27421
2862 * config/i386/i386.c (classify_argument): Skip fields with invalid
2863 types in unions.
2864
2865 2006-06-08 Steven Bosscher <steven@gcc.gnu.org>
2866
2867 * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
2868 (cse_insn): Likewise for the stack_pointer_rtx.
2869
2870 2006-06-08 Roger Sayle <roger@eyesopen.com>
2871
2872 * tree-ssa-dom.c (record_conditions): Only record "unordered"
2873 conditions from floating point comparisons.
2874
2875 2006-06-08 Paolo Bonzini <bonzini@gnu.org>
2876
2877 PR middle-end/27733
2878 * expmed.c (struct alg_hash_entry): Fix type of field T
2879 to match synth_mult argument.
2880 (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2881
2882 2006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2883
2884 PR target/27863
2885 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
2886 block boundaries.
2887
2888 2006-06-08 Richard Guenther <rguenther@suse.de>
2889
2890 PR middle-end/27116
2891 * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
2892 only, if overflow is defined and not trapping.
2893 (negate_expr): Likewise.
2894
2895 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2896
2897 PR tree-optimization/27872
2898 * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
2899 flag on the new exit edge of the unrolled loop.
2900
2901 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2902
2903 PR rtl-optimization/26449
2904 * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2905
2906 2006-06-07 Andrew MacLeod <amacleod@redhat.com>
2907
2908 PR middle-end/27793
2909 * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate
2910 referenced_variables with matching DECL_UID's.
2911 (find_referenced_vars): Make sure duplicate list is empty to start.
2912 (referenced_var_p): Remove.
2913 (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2914 Check if var is in the list, and add if needed. Update the duplicate
2915 list if a different var is in the list with the same DECL_UID.
2916 (add_referenced_var): Call routine to check and insert.
2917 * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2918 * tree-flow.h (referenced_vars_dup_list): External declaration.
2919
2920 2006-06-07 Fred Fish <fnf@specifix.com>
2921
2922 * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2923 into single entry.
2924
2925 2006-06-07 Paolo Bonzini <bonzini@gnu.org>
2926
2927 PR target/27390
2928 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2929 the imaginary and real parts of a clobbered register.
2930 Emit insn to set the imaginary part.
2931
2932 2006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
2933
2934 * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2935 in lieu of unwind-dw2-fde.c.
2936
2937 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2938
2939 * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2940
2941 2006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2942
2943 PR target/27842
2944 * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2945 ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2946 ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2947 V4SImode temporaries and operations instead.
2948
2949 2006-06-06 Joseph S. Myers <joseph@codesourcery.com>
2950
2951 * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2952 dp-bit.c.
2953
2954 2006-06-06 Mike Stump <mrs@apple.com>
2955
2956 * Makefile.in: Rename to htmldir to build_htmldir to avoid
2957 installing during build.
2958
2959 2006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2960
2961 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
2962 value to 0.
2963 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2964 * config/ia64/ia64.c (params.h): New header.
2965 (ia64_optimization_options): New function to adjust parameters.
2966 * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
2967 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
2968 * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2969
2970 2006-06-05 Kazu Hirata <kazu@codesourcery.com>
2971
2972 * stor-layout.c (debug_rli): Fix a typo in a debug message.
2973
2974 2006-06-05 Steve Ellcey <sje@cup.hp.com>
2975
2976 PR target/27051
2977 * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2978
2979 2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
2980 Victor Kaplansky <victork@il.ibm.com>
2981
2982 PR tree-optimization/26360
2983 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
2984 stmts.
2985
2986 2006-06-04 Roger Sayle <roger@eyesopen.com>
2987 Andrew Pinski <pinskia@physics.uc.edu>
2988
2989 PR middle-end/27382
2990 * c-common.c (c_common_truthvalue_conversion): Explicitly check
2991 for LABEL_DECL before calling DECL_WEAK.
2992
2993 PR c/27150
2994 * c-typeck.c (build_binary_op): Likewise, explicitly check for
2995 LABEL_DECL and PARM_DECL.
2996
2997 2006-06-05 Joseph S. Myers <joseph@codesourcery.com>
2998
2999 PR c/25161
3000 PR c/27020
3001 * c-decl.c (grokdeclarator): Disallow variably modified types at
3002 file scope. Avoid marking shared array type of constant size as
3003 VLA.
3004
3005 2006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3006
3007 PR c++/27601
3008 * c-common.c (fold_offsetof_1): Handle static members.
3009
3010 2006-06-04 Eric Christopher <echristo@apple.com>
3011
3012 * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
3013 (debug_rli): Output value for remaining_in_alignment.
3014 (update_alignment_for_field): Unconditionalize
3015 ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
3016 extra alignment code.
3017 (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
3018 ms_bitfield_layout_p code. Rewrite handling of structure fields.
3019 * tree.h (record_layout_info_s): Remove prev_packed.
3020 * doc/extend.texi (ms_struct): Add documentation of format.
3021
3022 2006-06-04 Mark Shinwell <shinwell@codesourcery.com>
3023
3024 * tree.h: Declare folding_initializer.
3025 * builtins.c (fold_builtin_constant_p): Give definite answer
3026 if folding inside an initializer.
3027 * fold-const.c: Define folding_initializer.
3028 (START_FOLD_INIT): Save and then set folding_initializer.
3029 (END_FOLD_INIT): Restore folding_initializer.
3030
3031 2006-06-04 Richard Guenther <rguenther@suse.de>
3032
3033 PR tree-optimization/27039
3034 * fold-const.c (fold_comparison): Handle pointer comparison
3035 again for all comparison codes. Compare offsets in signed
3036 size type.
3037 (fold_binary): Move code from here.
3038
3039 2006-06-03 Roger Sayle <roger@eyesopen.com>
3040
3041 PR target/26223
3042 * config/i386/i386.c (construct_container): Split static issued_error
3043 flag into issued_sse_arg_error, issued_sse_ret_error and
3044 issued_x87_ret_error. Issue a daignostic if the x86-64 ABI
3045 requires the use of x87 registers and the user explicitly
3046 specified the -mno-80387 command line option.
3047
3048 2006-06-02 Geoffrey Keating <geoffk@apple.com>
3049
3050 * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
3051 HAVE_DECL_SIGALTSTACK.
3052 (MC_FLD): New.
3053 (segv_handler): Use MC_FLD.
3054 * configure.ac: Check for a sigaltstack declaration.
3055 Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
3056 * configure: Regenerate.
3057 * config.in: Regenerate.
3058
3059 2006-06-03 J"orn Rennecke <joern.rennecke@st.com>
3060
3061 PR other/27850
3062 * Makefile.in (stmp-fixinc): Fix typo.
3063
3064 2006-06-02 Roger Sayle <roger@eyesopen.com>
3065
3066 * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
3067 are type correct. Clean-up.
3068 <REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z).
3069 <IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z).
3070
3071 2006-06-01 DJ Delorie <dj@redhat.com>
3072
3073 * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
3074 shift, as we've disabled the "switch" insn that needs it.
3075
3076 2006-06-01 Per Bothner <bothner@bothner.com>
3077
3078 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
3079 * c-opts.c (finish_options): Use internal line 0 for <command-line>.
3080 * c-ppoutput.c (cb_define): Don't increment line 0.
3081
3082 2006-06-01 Pete Steinmetz <steinmtz@us.ibm.com>
3083
3084 * doc/invoke.texi: Add cpu_type power6.
3085 * config.gcc: Add cpu_type power6.
3086 * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
3087 to power5+ with Altivec.
3088 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
3089 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
3090
3091 2006-05-30 Anatoly Sokolov <aesok@post.ru>
3092
3093 * config/avr/avr.h (SET_ASM_OP): Define.
3094
3095 2006-06-01 Kazu Hirata <kazu@codesourcery.com>
3096
3097 * config/bfin/bfin.c: Fix comment typos.
3098
3099 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
3100
3101 PR 25453
3102 * doc/install.texi: Document --enable-bootstrap and
3103 --disable-bootstrap.
3104
3105 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
3106
3107 * doc/install.texi: Document that InfoZIP can replace jar.
3108
3109 2006-05-31 Roger Sayle <roger@eyesopen.com>
3110
3111 * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
3112 isn't available, directly generate the simpler x87 patterns without
3113 the (use (const_int 0)).
3114 * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
3115 implementation isn't available.
3116 (*negdf2_1): Likewise.
3117 (*negxf2_1): XF mode negation is always done using the x87.
3118 (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
3119
3120 2006-05-31 Roger Sayle <roger@eyesopen.com>
3121
3122 * builtins.c (fold_builtin_cabs): Delete prototype. Require an
3123 additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as
3124 cabs(z).
3125 (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
3126
3127 2006-05-31 Jie Zhang <jie.zhang@analog.com>
3128
3129 * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
3130 * config/bfin/bfin.c (basic-block.h): Include.
3131 (struct machine_function): New.
3132 (bfin_init_machine_status): New.
3133 (override_options): Initialize init_machine_status.
3134 (bfin_hardware_loop): New.
3135 (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
3136 (DEF_VEC_P (loop_info)): New.
3137 (DEF_VEC_ALLOC_P (loop_info,heap)): New.
3138 (struct loop_info): New.
3139 (loop_info): New typedef.
3140 (struct loop_work): New.
3141 (loop_work): New typedef.
3142 (DEF_VEC_O (loop_work)): New.
3143 (DEF_VEC_ALLOC_O (loop_work,heap)): New.
3144 (bfin_dump_loops): New.
3145 (bfin_bb_in_loop): New.
3146 (bfin_scan_loop): New.
3147 (bfin_optimize_loop): New.
3148 (bfin_reorg_loops): New.
3149 (bfin_reorg): Use bfin_reorg_loops.
3150 * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
3151 loop registers.
3152 (I_REGNO_P): Simplify.
3153 (DP_REGNO_P, DPREG_P): New macros.
3154 (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3155 REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
3156 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3157 Add LT_REGS, LC_REGS, LB_REGS.
3158 (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
3159 'l' for LB_REGS.
3160 (REGNO_REG_CLASS): Deal with loop registers.
3161 * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
3162 letters.
3163 (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
3164 New constants for loop registers.
3165 (UNSPEC_LSETUP_END): New.
3166 (seq_insns): New define_attr. Set it for appropriate insns.
3167 (movsi_insn): Add alternatives for move from/to
3168 loop count registers.
3169 (doloop_end): New define_expand.
3170 (loop_end): New define_insn.
3171 (define_split for bad doloop_end): New.
3172 (lsetup_with_autoinit): New define_insn.
3173 (lsetup_without_autoinit): New define_insn.
3174 (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
3175 * config/bfin/predicates.md (lc_register_operand): New.
3176 (lt_register_operand): New.
3177 (lb_register_operand): New.
3178 (nondp_register_operand): New.
3179 (nondp_reg_or_memory_operand): New.
3180 * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
3181
3182 2006-05-31 Jie Zhang <jie.zhang@analog.com>
3183
3184 * config/bfin/bfin.c (bfin_delegitimize_address): New.
3185 (TARGET_DELEGITIMIZE_ADDRESS): Define.
3186
3187 2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
3188
3189 * Makefile.in (CATALOGS): Add po/ prefix.
3190 * configure: Regenerated.
3191
3192 2006-05-31 Richard Earnshaw <richard.earnshaw@arm.com>
3193
3194 PR target/27829
3195 * arm.c (arm_print_operand case 'S'): Validate that the operand is
3196 a shift operand before calling shift_op. Avoid redundant call of
3197 shift_op.
3198
3199 2006-05-30 Naveen.H.S <naveenh@kpitcummins.com>
3200 DJ Delorie <dj@redhat.com>
3201
3202 * config/m32c/m32c.c (m32c_expand_insv): Check that the value
3203 we're inserting is a singlt-bit constant.
3204
3205 2006-05-30 Roger Sayle <roger@eyesopen.com>
3206
3207 * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
3208 width to HOST_WIDE_INT to avoid comparison warnings on some targets.
3209
3210 2006-05-30 Roger Sayle <roger@eyesopen.com>
3211
3212 PR tree-optimization/23452
3213 * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
3214 to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
3215 (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
3216 complex values and with -ffast-math for FP complex values.
3217
3218 2006-05-30 Kazu Hirata <kazu@codesourcery.com>
3219
3220 * c-common.h: Remove the prototype for yyparse.
3221 * rtl.h: Remove the prototype for init_loop.
3222
3223 2006-05-30 Andreas Krebbel <krebbel1@de.ibm.com>
3224
3225 * cse.c (validate_canon_reg, cse_insn): Don't change insns without
3226 calling recog.
3227
3228 2006-05-30 Roger Sayle <roger@eyesopen.com>
3229
3230 * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
3231 and rotate cases.
3232 <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
3233 log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
3234
3235 2006-05-30 Dirk Mueller <dmueller@suse.de>
3236
3237 PR c/27273
3238 * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
3239 for CONSTANT_CLASS_P expresisons.
3240
3241 2006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3242
3243 PR c/27718
3244 * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
3245
3246 2006-05-30 Zdenek Dvorak <dvorakz@suse.cz>
3247
3248 PR tree-optimization/27779
3249 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
3250 initial_condition instead of CHREC_LEFT.
3251
3252 2006-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
3253
3254 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
3255 * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
3256 Make prototypes ISO C90.
3257
3258 2006-05-30 Mircea Namolaru <namolaru@il.ibm.com>
3259 Leehod Baruch <leehod.baruch@weizmann.ac.il>
3260
3261 * see.c (see_analyze_one_def): Correct check.
3262 (see_get_extension_data): Check if extension is parallel.
3263 (see_get_extension_reg): Likewise.
3264
3265 2006-05-30 Uros Bizjak <uros@kss-loka.si>
3266
3267 PR target/27790
3268 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
3269 into register for (code == GTU).
3270
3271 2006-05-29 Roger Sayle <roger@eyesopen.com>
3272
3273 PR tree-optimization/24964
3274 * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
3275 <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor
3276 signaling NaNs. Optimize -x*-x as x*x for all float modes, and
3277 abs(x)*abs(x) as x*x for scalar floating point modes.
3278
3279 2006-05-29 Sebastian Pop <pop@cri.ensmp.fr>
3280
3281 PR middle-end/27745
3282 * lambda-code.c (perfect_nestify): Don't copy statements
3283 in the inner loop: move them to the inner loop header.
3284
3285 2006-05-29 Diego Novillo <dnovillo@redhat.com>
3286
3287 PR 26237
3288 * c-tree.texi: Document OpenMP directives and clauses.
3289
3290 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
3291
3292 * varasm.c (globalize_decl): Fix indentation.
3293
3294 2006-05-29 Diego Novillo <dnovillo@redhat.com>
3295
3296 PR 26242
3297 * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
3298 pass_fre, pass_store_ccp, pass_copy_prop,
3299 pass_store_copy_prop, pass_merge_phi, pass_nrv,
3300 pass_return_slot, pass_object_size, pass_lim,
3301 pass_linear_transform, pass_empty_loop, pass_complete_unroll,
3302 pass_loop_prefetch and pass_stdarg.
3303
3304 2005-05-29 Bernd Schmidt <bernd.schmidt@analog.com>
3305
3306 * config/bfin/bfin.opt (mfdpic): New option.
3307 * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
3308 (EXTRA_MULTILIB_PARTS): Likewise.
3309 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
3310 (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
3311 multilib.
3312 * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
3313 (CRT_CALL_STATIC_FUNCTION): New.
3314 * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
3315 -shared.
3316 (CRT_CALL_STATIC_FUNCTION): New.
3317 * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle
3318 FD-PIC moves.
3319 (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
3320 (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
3321 (initialize_trampoline): Changed to handle FD-PIC code generation.
3322 (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
3323 (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
3324 (override_options): Disallow -mid-shared-library -mfdpic combination.
3325 Can't do unaligned ops if FD-PIC.
3326 Turn off flag_pic if trying to generate non-id-shared-library
3327 non-fdpic code, since it's not supported.
3328 (bfin_assemble_integer): New function.
3329 (TARGET_ASM_INTEGER): Define.
3330 * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
3331 __BFIN_FDPIC__.
3332 * config/bfin/crtn.s: Restore them.
3333 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
3334 if TARGET_FDPIC.
3335 (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
3336 LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
3337 (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
3338 (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
3339 (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
3340 call-used.
3341 (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3342 FDPIC_REGS and FDPIC_FPTR_REGS.
3343 (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3344 * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3345 UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3346 (load_funcdescsi): New pattern.
3347 (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3348 sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3349 call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3350
3351 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
3352
3353 * gcse.c, rtlanal.c: Remove obsolete comments associated with
3354 loop.c.
3355
3356 * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3357
3358 * tree-flow.h: Remove the prototype for add_type_alias.
3359 * tree-ssa-alias.c (add_type_alias): Remove.
3360
3361 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
3362
3363 * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
3364 config/fr30/fr30.md, config/i386/i386-interix.h,
3365 config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
3366 config/sh/superh64.h, config/v850/v850.c, df-core.c,
3367 df-problems.c, df.h, except.c, final.c, haifa-sched.c,
3368 lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
3369 reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
3370 tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
3371 Follow spelling conventions.
3372 * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
3373 Follow spelling conventions.
3374
3375 2006-05-27 Richard Guenther <rguenther@suse.de>
3376
3377 PR middle-end/27773
3378 * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
3379 to produce a constant of value 1 of generic type.
3380
3381 2006-05-27 Dirk Mueller <dmueller@suse.de>
3382
3383 * cgraphunit.c (decide_is_function_needed): Fix wrong
3384 PR reference.
3385
3386 2006-05-26 Ulrich Weigand <uweigand@de.ibm.com>
3387
3388 PR rtl-optimization/27661
3389 * reload.c (find_reloads): When reloading a VOIDmode constant
3390 as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
3391 use Pmode as mode of the reload register.
3392
3393 2006-05-26 Eric Botcazou <ebotcazou@adacore.com>
3394
3395 * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
3396 is enabled at -O and above.
3397
3398 2006-05-26 Steven Bosscher <steven@gcc.gnu.org>
3399
3400 PR target/27571
3401 * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
3402 table data.
3403
3404 2006-05-25 Mark Mitchell <mark@codesourcery.com>
3405
3406 PR c++/20103
3407 * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
3408 for anonymous variables explicitly declared by front ends.
3409
3410 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
3411
3412 * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
3413 (struct alias_info): Add new field ref_all_symbol_mem_tag.
3414 * tree-ssa-alias.c (compute_may_aliases): If the program contains
3415 ref-all pointers, run a finalization pass for them.
3416 (compute_flow_insensitive_aliasing): Skip ref-all pointers.
3417 (finalize_ref_all_pointers): New function.
3418 (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
3419 regular pointer type to a ref-all pointer type.
3420 (get_tmt_for): Return the special memory tag for ref-all pointers.
3421
3422 2006-05-25 Richard Guenther <rguenther@suse.de>
3423
3424 PR middle-end/27743
3425 * fold-const.c (fold_binary): Do not look at the stripped
3426 op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
3427
3428 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
3429
3430 * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
3431 for LT and GT if the computed range is effectively empty.
3432
3433 2006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3434
3435 PR target/27627
3436 * pa/pa-modes.def: Use mips_single_format, mips_double_format and
3437 mips_quad_format formats instead of ieee_single_format,
3438 ieee_double_format and ieee_quad_format formats, respectively.
3439
3440 2006-05-24 Zdenek Dvorak <dvorakz@suse.cz>
3441
3442 PR tree-optimization/27639
3443 PR tree-optimization/26719
3444 * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
3445 call to scev_probably_wraps_p.
3446 * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3447 used_in_pointer_arithmetic_p, convert_step): Removed.
3448 (nowrap_type_p): New function.
3449 (scev_probably_wraps_p): Rewritten.
3450 * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3451 chrec_convert if chrec_convert_aggressive might have been used.
3452 * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3453 scev_direction): New functions.
3454 (chrec_convert): Changed to a wrapper over chrec_convert_1.
3455 * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3456 instead of convert_step.
3457 * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3458 (convert_step): Declaration removed.
3459 (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3460
3461 2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
3462
3463 * df-core.c: Added to header comments.
3464 * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3465 df_ur_bb_info, df_urec_bb_info): Added comments.
3466 * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3467 urec, ri problems): Fixed header comments.
3468 (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3469 code from df_rd_transfer_function.
3470
3471 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3472
3473 * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3474 (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3475 MIN_UNITS_PER_WORD to set the default. Also use it in the guard.
3476
3477 2006-05-23 Joseph Myers <joseph@codesourcery.com>
3478
3479 * expr.c (undefined_operand_subword_p): New.
3480 (emit_move_multi_word): Do not generate move from undefined bits
3481 of a paradoxical subreg.
3482
3483 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3484
3485 PR rtl-optimization/27736
3486 * combine.c (replaced_rhs_value): New variable.
3487 (combine_instructions): Set it.
3488 (distribute_notes): When distributing a note in replaced_rhs_insn,
3489 check whether the value was used in replaced_rhs_value.
3490
3491 2006-05-23 Andrew MacLeod <amacleod@redhat.com>
3492
3493 PR c++/26757
3494 * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3495 add_referenced_var instead of add_referenced_tmp_var.
3496 * tree-complex.c (create_one_component_var): Use add_referenced_var.
3497 * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3498 add_referenced_var.
3499 * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3500 tree_optimize_tail_calls_1): Use add_referenced_var.
3501 * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3502 * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3503 Use add_referenced_var.
3504 * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3505 * gimplify.c (force_gimple_operand): Use add_referenced_var.
3506 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3507 Use add_referenced_var.
3508 * tree-dfa.c (struct walk_state): Remove.
3509 (find_referenced_vars): Remove walk state and vars_found hash table.
3510 (make_rename_temp): Use add_referenced_var.
3511 (find_vars_r): Pass less parameters to add_referenced_var.
3512 (referenced_var_p): New. Is var in referenced_var hash table.
3513 (referenced_var_insert): Assert var isn't already in hash table.
3514 (add_referenced_var): Don't need walk_state parameter. Add var if it
3515 isn't already in the hash table.
3516 (add_referenced_tmp_var): Remove.
3517 (find_new_referenced_vars_1): Use add_referenced_var.
3518 * tree-ssa-pre.c (create_expression_by_pieces,
3519 insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3520 Use add_referenced_var.
3521 * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3522 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3523 lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3524 add_referenced_var.
3525 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3526 vect_create_data_ref_ptr, vect_create_destination_var,
3527 vect_init_vector, vect_build_loop_niters,
3528 vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3529 vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3530 Use add_referenced_var.
3531 * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3532 * tree-flow.h (add_referenced_tmp_var): Remove prototype
3533 (add_referenced_var): Add prototype.
3534 * tree-ssa-structalias.c (get_constraint_for,
3535 intra_create_variable_infos): Use add_referenced_var.
3536
3537 2006-05-23 Alexandre Oliva <aoliva@redhat.com>
3538
3539 * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3540 big-endian paradoxical subregs.
3541 * var-tracking.c (struct micro_operation_def): Document that,
3542 for modify micro operations, insn is the subsequent instruction.
3543 (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3544 (var_reg_set, var_mem_set): ... new functions.
3545 (add_stores): Record subsequent insn.
3546 (compute_bb_dataflow): Use new functions for MO_USE.
3547 (emit_notes_in_bb): Use new functions for MO_USE. Emit use
3548 notes after the insn, and modify notes before the insn known
3549 to be the subsequent one.
3550 (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3551
3552 2006-05-23 Kazu Hirata <kazu@codesourcery.com>
3553
3554 PR target/27696
3555 * config/i386/i386.c (ix86_expand_builtin): Use
3556 gen_sse3_monitor64 for TARGET_64BIT.
3557
3558 2006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com>
3559
3560 PR rtl-optimization/26375
3561 PR rtl-optimization/26855
3562 * df-problems (df_ru_bb_local_compute_process_def): Removed update
3563 to gen set.
3564 (df_ru_bb_local_compute): Reversed statements and removed bogus
3565 comment explaining why they should be in wrong order.
3566 (df_ru_dump, df_rd_dump): Enhanced debug info.
3567 * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3568 debug info.
3569 * ddg.c (add_deps_for_def): Converted use of reaching defs to
3570 reaching uses and fixed space problem.
3571
3572 2006-05-23 Jan Hubicka <jh@suse.cz>
3573
3574 * cgraphunit.c (decide_is_function_needed): Also nested functions
3575 and functions declared inline can be optimized out at -O0.
3576
3577 2006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
3578
3579 * doc/install.texi (Configuration): Remove reference to CrossGCC
3580 FAQ which was gone.
3581 (Building): Ditto.
3582
3583 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3584
3585 PR target/27266
3586 * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3587 ix86_compare_emitted is non-NULL.
3588
3589 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3590
3591 PR c++/27451
3592 * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3593 clobbers.
3594
3595 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3596
3597 PR rtl-optimization/25514
3598 * combine.c (replaced_rhs_insn): New variable.
3599 (combine_instructions): Set replaced_rhs_insn when trying to replace
3600 a SET_SRC with a REG_EQUAL note.
3601 (distribute_notes): Use replaced_rhs_insn when determining the live
3602 range of a REG_DEAD register.
3603
3604 2006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3605 Anatoly Sokolov <aesok@post.ru>
3606
3607 * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3608 attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3609 attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3610 atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3611 atmega3290, atmega649, atmega6490, atmega406, atmega640,
3612 atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3613 at90usb647, at90usb1286 and at90usb1287 devices.
3614 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3615 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3616
3617 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3618
3619 * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3620
3621 2006-05-22 Richard Guenther <rguenther@suse.de>
3622
3623 Revert
3624 2006-01-31 Richard Guenther <rguenther@suse.de>
3625 Paolo Bonzini <bonzini@gnu.org>
3626
3627 * doc/install.texi (--disable-libgcc-math): Document.
3628
3629 2006-05-22 Richard Guenther <rguenther@suse.de>
3630
3631 Revert
3632 2006-01-31 Richard Guenther <rguenther@suse.de>
3633
3634 * doc/invoke.texi (-msselibm): Document.
3635 * target.h (expand_library_builtin): New target hook.
3636 * builtins.c (expand_builtin): Use expand_library_builtin.
3637 (default_expand_library_builtin): New function.
3638 * gcc.c (LINK_GCC_MATH_SPEC): Define.
3639 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3640 (link_gcc_math_spec): Declare.
3641 (static_specs): Add link_gcc_math_spec.
3642 * expr.h (default_expand_library_builtin): Declare.
3643 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3644 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3645 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3646 * config/i386/i386.opt (msselibm): New target option.
3647 * config/i386/i386.c (ix86_builtin_function_variants): New array.
3648 (ix86_init_sse_abi_builtins): New function.
3649 (ix86_expand_library_builtin): Likewise.
3650 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3651 (override_options): Handle error conditions wrt -msselibm.
3652 (ix86_builtins): Add function codes for SSE2 ABI builtins.
3653 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3654 * doc/extend.texi (__builtin_sse2_*): Document new target specific
3655 builtins.
3656
3657 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3658
3659 PR c/27420
3660 * c-common.c (self_promoting_args_p): Skip erroneous args.
3661
3662 PR c/26818
3663 * c-decl.c (finish_struct): Skip erroneous fields.
3664
3665 2006-05-22 Nick Clifton <nickc@redhat.com>
3666
3667 * config/cris/cris.opt (march): Remove VarExists attribute.
3668 (max-stackframe=): Likewise.
3669
3670 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3671
3672 * doc/rtl.texi: Fix a typo.
3673 * see.c: Fix comment typos.
3674
3675 * tree-ssa-structalias.h (alias_info): Remove num_references.
3676
3677 2006-05-21 Mike Stump <mrs@apple.com>
3678
3679 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3680 (BAD2): Add.
3681 (darwin_pragma_options): Use BAD instead.
3682 (darwin_pragma_unused): Likewise.
3683 (darwin_pragma_ms_struct): Likewise.
3684
3685 2006-05-21 David Edelsohn <edelsohn@gnu.org>
3686
3687 * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3688
3689 2006-05-21 Kazu Hirata <kazu@codesourcery.com>
3690
3691 PR rtl-optimization/27671
3692 * simplify-rtx.c (simplify_relational_operation_1): Fix
3693 simplifications of (eq/ne (xor x y) y) and
3694 (eq/ne (xor x y) x).
3695
3696 PR tree-optimization/26622.
3697 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3698 on arg1.
3699
3700 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3701
3702 * tree-cfg.c: Prune whitespace.
3703 (debug_tree_cfg): Point to correct header containing the
3704 TDF_* defines.
3705
3706 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3707
3708 PR middle-end/25776
3709 * cgraphunit.c (verify_cgraph_node): Typo in error message.
3710
3711 2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3712
3713 PR middle-end/25776
3714 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3715 or sorry count is non zero.
3716
3717 2006-05-20 Andreas Schwab <schwab@suse.de>
3718
3719 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3720
3721 2006-05-19 Daniel Berlin <dberlin@dberlin.org>
3722 Kenneth Zadeck <zadeck@naturalbridge.com>
3723
3724 PR rtl-optimization/26855
3725
3726 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3727 multiword refs.
3728 (df_scan_alloc): Added code to properly handle multiword hard
3729 registers and add all_blocks parameter.
3730 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3731 code to properly handle multiword hard registers.
3732 (df_rescan_blocks): Added code to remove deleted blocks from
3733 bitmap.
3734 (df_ref_create_structure, df_ref_record): Added code to properly
3735 handle subregs.
3736 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3737 and set DF_REF_PARTIAL.
3738 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3739 (df_uses_record): Added DF_REF_PARTIAL for subreg.
3740 (df_scan_add_problem): Added flags parameter.
3741 (df_ref_create_structure): Changed switching structure.
3742 (df_bb_refs_record): Fixed case where duplicate artificial refs
3743 were created. Changed location of flags.
3744 (df_record_entry_block_defs): Added code to make stack pointer
3745 live in entry block. Refined cases where frame pointer is needed.
3746 Changed location of flags.
3747 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3748 (df_set_state): Removed function.
3749 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3750 df_insn_create_insn_record, df_insn_refs_delete,
3751 df_ref_create_structure): Formatting changes.
3752 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3753 df_delete_basic_block): New function.
3754 (df_init): Changed location of flags.
3755 (df_add_problem): Added flags parameter and the way flags are
3756 processed.
3757 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3758 debug_df_chain): Improved debugging output.
3759 (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3760 (df_refs_chain_dump): Removed df parameter.
3761 (df_iterative_dataflow): Added consistency check.
3762 (df_prune_to_subcfg): Made public.
3763 (df_analyze_problem): Added blocks_to_init parameter and made
3764 public.
3765 (df_ref_record, df_bb_refs_record, df_mark_reg,
3766 df_record_exit_block_uses): Whitespace changes.
3767 (df_dump): Whitespace changes.
3768 * df.h: Some reordering to remove forward references.
3769 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3770 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3771 (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3772 (dataflow.flags): New field.
3773 (df.flag): Deleted field.
3774 (df_alloc_function): Added additional bitmap parameter.
3775 (df_dependent_problem_function): New type.
3776 (df_problem.changeable_flags): New field.
3777 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
3778 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
3779 (df_mw_hardreg): New struct.
3780 (DF_INSN_UID_MWS): New macro.
3781 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
3782 parameter.
3783 (df_add_problem, df_ru_add_problem, df_rd_add_problem,
3784 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
3785 df_ri_add_problem, df_scan_add_problem): Added flags parameter.
3786 (df_set_state): Removed function.
3787 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
3788 * df-problems.c (df_chain_dump): Removed df parameter.
3789 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
3790 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
3791 parameter.
3792 (df_ru_alloc, df_rd_alloc): Now resets all blocks.
3793 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
3794 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
3795 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
3796 DF_REF_MUST_CLOBBER cases.
3797 (df_ru_bb_local_compute_process_def,
3798 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
3799 df_lr_bb_local_compute, df_ur_bb_local_compute,
3800 df_chain_create_bb): Made subreg aware.
3801 (df_ru_bb_local_compute, df_rd_bb_local_compute,
3802 df_lr_bb_local_compute, df_lr_bb_local_compute,
3803 df_chain_create_bb): Cleanup to use proper macros.
3804 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
3805 code to fixup bitvectors.
3806 (df_ri_alloc): Cleared lifetime.
3807 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
3808 df_create_unused_note): New function.
3809 (df_ri_bb_compute, df_ri_compute): Added code to create/update
3810 REG_DEAD and REG_UNUSED notes as well as register information.
3811 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
3812 df_chains_dump): Fixed crash if problem was never run.
3813 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
3814 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
3815 df_ri_add_problem): Processes flags in uniform manner.
3816 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
3817 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
3818 df_rd_dump, df_urec_free_bb_info): Formatting changes.
3819 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
3820 df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
3821 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
3822 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
3823 df_ur_dump, df_urec_free_bb_info, df_urec_dump,
3824 df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
3825 * modulo-sched.c (sms_schedule): Added flag parameter to calls.
3826 * see.c (see_initialize_data): Ditto.
3827 * final.c (rest_of_clean_state) Added regstack_completed.
3828 * rtl.h (regstack_completed): Ditto.
3829 * reg-stack.c (regstack_completed): Ditto.
3830
3831 2006-05-19 Mike Stump <mrs@apple.com>
3832
3833 * c-tree.h (default_conversion): Remove.
3834 * c-common.h (default_conversion): Add.
3835
3836 2006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
3837
3838 * tree-vrp.c (valid_value_p): New function.
3839 (adjust_range_with_scev): Fail if the value of bound is not
3840 simple.
3841
3842 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3843
3844 * config/mips/linux-unwind.h: Include <asm/unistd.h>
3845 (mips_fallback_frame_state): Use syscall numbers to determine
3846 the appropriate li instruction for the current ABI. Only use
3847 __NR_sigreturn for o32.
3848
3849 2006-05-19 Nicolas Setton <setton@adacore.com>
3850
3851 * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
3852 * langhooks.c (lhd_dwarf_name): New function.
3853 * langhooks-def.h (lhd_dwarf_name): Declare.
3854 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
3855 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
3856 * ada/misc.c (gnat_dwarf_name): New function.
3857 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
3858
3859 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3860
3861 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
3862 libgcc2.h.
3863 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
3864 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
3865 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
3866 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
3867 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
3868 determine the size of Wtype, etc.
3869 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
3870 (swfloatfuncs): New variable.
3871 (dwfloatfuncs): Likewise.
3872 (lib2funcs): Remove floating-point conversion functions from
3873 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
3874 the set of conversion routines needed. Allow entries to specify
3875 an object name, filename and word size. Update users accordingly.
3876 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
3877 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
3878
3879 Revert:
3880
3881 2006-02-08 Roger Sayle <roger@eyesopen.com>
3882
3883 PR target/22209
3884 * config/fixtfdi.c: New libgcc source file.
3885 * config/fixunstfdi.c: New source file.
3886 * config/floatditf.c: New source file.
3887 * config/floatunditf.c: New souce file.
3888 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3889 files above instead of config/mips/_tilib.c.
3890 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3891
3892 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3893
3894 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
3895 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
3896
3897 2006-05-18 Mike Stump <mrs@apple.com>
3898
3899 Fix up vla, vm and [*] sematics.
3900
3901 PR c/18740
3902 PR c/7948
3903 PR c/25802
3904 PR c/27673
3905 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
3906 (c_vla_unspec_p): Add.
3907 (c_vla_type_p): Add.
3908 * c-decl.c (struct c_scope): Add had_vla_unspec.
3909 (build_array_declarator): Add support for [*].
3910 (grokdeclarator): Likewise.
3911 (grokparms): Likewise.
3912 (get_parm_info): Likewise.
3913 * c-objc-common.c (c_vla_unspec_p): Likewise.
3914 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3915 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3916 typeof when argument is a variably modified type not inside sizeof or alignof.
3917 (c_parser_direct_declarator_inner): Propagate errors.
3918 (c_parser_sizeof_expression): Add support for [*].
3919 (c_parser_parms_declarator): Initialize had_vla_unspec.
3920 (c_parser_parms_list_declarator): Likewise.
3921 * c-typeck.c (c_vla_type_p): Add.
3922 (composite_type): Add support for vla compositing.
3923 (comptypes_internal): Add support for vla compatibility.
3924 (c_expr_sizeof_expr): Evaluate vla arguments.
3925 * tree.c (variably_modified_type_p): Update comment for [*].
3926
3927 2006-05-18 Michael Matz <matz@suse.de>
3928
3929 PR target/27599
3930 * config.host: Make assignments to host_xmake_file cumulative.
3931 * config.host (*-darwin*): Test $host, not $target.
3932
3933 2006-05-12 Stuart Hastings <stuart@apple.com>
3934
3935 * config/i386/i386.opt (-mstackrealign): New flag.
3936 * config/i386/i386.c (force_align_arg_pointer): New attribute.
3937 (ix86_handle_cconv_attribute): Emit error when
3938 force_align_arg_pointer attribute collides with too many regparms.
3939 (ix86_function_regparm): Limit regparms when used with
3940 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
3941 Support stack-realigning prologue in non-main functions. Emit
3942 warning for nested functions under -mstackrealign, emit error for
3943 nested functions with force_align_arg_pointer attribute.
3944 * doc/extend.texi (force_align_arg_pointer): Document it.
3945 * doc/invoke.texi (-mstackrealign): Document it.
3946
3947 2006-05-17 Kazu Hirata <kazu@codesourcery.com>
3948
3949 PR rtl-optimization/27477
3950 * combine.c (try_combine): Don't split a parallel consisting
3951 of two sets into two individual sets if both sets reference
3952 cc0.
3953
3954 2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
3955
3956 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
3957 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
3958
3959 * doc/options.texi (VarExists): Updated.
3960
3961 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3962
3963 * unwind-dw2.c: Add declarations for uw_update_context and
3964 uw_frame_state_for.
3965 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
3966 detected, advance frame state and context once to skip over stub.
3967
3968 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3969
3970 PR middle-end/20256
3971 PR middle-end/26435
3972 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
3973 Call rewrite_into_loop_closed_ssa only when something changed.
3974 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
3975 * lambda-code.c (can_convert_to_perfect_nest): Declared.
3976 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
3977 Test for perfect_nest_p here. Fix formating.
3978 (replace_uses_equiv_to_x_with_y): Fix formating.
3979 (stmt_uses_op): Removed.
3980 (can_convert_to_perfect_nest): Removed loopivs parameter.
3981 Complete the test by checking the scalar dependences.
3982 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
3983 Fix formating.
3984
3985 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
3986
3987 PR bootstrap/22541
3988 From Dan Kegel <dank@kegel.com>:
3989 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
3990
3991 2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
3992
3993 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
3994 if the element type is variably modified without recursing.
3995
3996 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3997
3998 PR middle-end/27332
3999 * tree-loop-linear.c (try_interchange_loops): Test for
4000 no data dependences.
4001
4002 2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
4003
4004 PR tree-optimization/27548
4005 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
4006 range of ssa names that appear on abnormal edges.
4007 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
4008 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
4009
4010 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
4011
4012 PR middle-end/27620
4013 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
4014
4015 2006-05-17 Jakub Jelinek <jakub@redhat.com>
4016
4017 PR middle-end/27415
4018 * tree.h (OMP_PARALLEL_COMBINED): Define.
4019 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
4020 (new_omp_context): Add is_combined_parallel argument.
4021 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
4022 new_omp_context caller.
4023 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4024 Adjust gimplify_scan_omp_clauses callers.
4025 (omp_is_private): Issue errors if iteration variable is firstprivate
4026 or reduction in the current context.
4027 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
4028 on combined parallel workshare constructs.
4029
4030 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4031
4032 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
4033 (gcc-options.o): New rule.
4034
4035 * optc-gen.awk: Protect variables for gcc-options.o with
4036 #ifdef GCC_DRIVER/#endif.
4037
4038 2006-05-16 Daniel Berlin <dberlin@dberlin.org>
4039
4040 Fix PR tree-optimization/27373
4041 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
4042 (forward_propagate_addr_expr): Update call.
4043
4044 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4045
4046 * doc/options.texi: Move the Negative option.
4047
4048 2006-05-16 Richard Guenther <rguenther@suse.de>
4049
4050 PR tree-optimization/22303
4051 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
4052 from STRING_CSTs.
4053 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
4054 ccp_fold did not simplify the statement.
4055
4056 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4057
4058 PR driver/26885
4059 * Makefile.in (GCC_OBJS): New.
4060 (OBJS-common): Add opts-common.o.
4061 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
4062 (cpp$(exeext)): Likewise.
4063 (gcc.o): Also depend on opts.h.
4064 (opts-common.o): New.
4065
4066 * common.opt (gcoff): Add Negative(gdwarf-2).
4067 (gdwarf-2): Add Negative(gstabs).
4068 (gstabs): Add Negative(gstabs+).
4069 (gstabs+): Add Negative(gvms).
4070 (gvms): Add Negative(gxcoff).
4071 (gxcoff): Add Negative(gxcoff+).
4072 (gxcoff+): Add Negative(gcoff).
4073 * config/i386/i386.opt (m32): Add Negative(m64).
4074 (m64): Add Negative(m32).
4075
4076 * doc/options.texi: Document the Negative option.
4077
4078 * gcc.c: Include "opts.h".
4079 (main): Call prune_options after expandargv.
4080
4081 * optc-gen.awk: Generate common declarations for all flag
4082 variables in options.c. Output the neg_index field.
4083
4084 * opts.c (find_opt): Moved to ...
4085 * opts-common.c: Here. New file.
4086
4087 * opts.h (cl_option): Add a neg_index field.
4088 (find_opt): New.
4089 (prune_options): Likewise.
4090
4091 2006-05-16 Jakub Jelinek <jakub@redhat.com>
4092
4093 PR middle-end/27573
4094 * omp-low.c (expand_omp_parallel): Don't assert
4095 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
4096 instead search for it.
4097
4098 PR c/27499
4099 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
4100 is signed.
4101
4102 2006-05-16 Andreas Schwab <schwab@suse.de>
4103
4104 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
4105 defmac.
4106
4107 2006-05-15 Roger Sayle <roger@eyesopen.com>
4108
4109 PR target/26600
4110 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
4111 integer constants other than zero are only legitimate on TARGET_64BIT.
4112 <CONST_VECTOR> Only zero vectors are legitimate.
4113 (ix86_cannot_force_const_mem): Integral and vector constants can
4114 always be put in the constant pool.
4115
4116 2006-05-16 DJ Delorie <dj@redhat.com>
4117
4118 * crtstuff.c (__dso_handle): Set section from
4119 TARGET_LBIGCC_SDATA_SECTION if defined.
4120 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
4121 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
4122
4123 2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
4124
4125 PR target/27599
4126 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
4127 host_xmake_file.
4128
4129 2006-05-16 Ben Elliston <bje@au.ibm.com>
4130
4131 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
4132
4133 2006-05-15 Per Bothner <per@bothner.com>
4134
4135 * tree.c: (last_annotated_node): Use source_locus typedef.
4136 This permits bootstrapping with --enable-mapped-location.
4137
4138 2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
4139
4140 PR tree-optimization/26830
4141 * tree-into-ssa.c (struct ssa_name_info): Add age field.
4142 (info_for_ssa_name, current_info_for_ssa_name_age,
4143 blocks_to_update): New variables.
4144 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
4145 (clear_ssa_name_info, initialize_flags_in_bb,
4146 mark_block_for_update): New functions.
4147 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
4148 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
4149 prepare_def_site_for): Use mark_block_for_update.
4150 (mark_def_interesting): Assert that the processed block is marked in
4151 blocks_to_update. Do not take blocks argument.
4152 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
4153 argument.
4154 (rewrite_update_init_block, rewrite_update_stmt): Only process
4155 blocks with statements to rewrite.
4156 (delete_update_ssa): Do not clear SSA_NAME_AUX.
4157 (update_ssa): Initialize and free blocks_to_update. Do not
4158 clear flags on statements. Do not use blocks bitmap.
4159 * tree.h (SSA_NAME_AUX): Removed.
4160 (struct tree_ssa_name): Removed aux field.
4161 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
4162
4163 2006-05-15 Richard Guenther <rguenther@suse.de>
4164
4165 PR tree-optimization/27603
4166 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4167 Do computations in original type.
4168
4169 2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
4170
4171 * see.c: Code style changes such as redundant paranthesis,
4172 redundant intialization of local variables etc.
4173 (see_main): Declared now as static.
4174 * doc/invoke.texi: Update that -fsee is not enabled by
4175 default at -O3.
4176
4177 2006-05-15 Jakub Jelinek <jakub@redhat.com>
4178
4179 * omp-low.c (check_omp_nesting_restrictions): New function.
4180 (scan_omp_1): Call it.
4181
4182 PR middle-end/27416
4183 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
4184 construct, return *VAR.
4185
4186 2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
4187
4188 PR rtl-optimization/27406
4189 * bt-load.c (migrate_btr_def): Skip the block having abnormal
4190 edges.
4191
4192 2006-05-14 Roger Sayle <roger@eyesopen.com>
4193
4194 PR rtl-optimization/27538
4195 * combine.c (expand_compound_operation): Call gen_lowpart
4196 before calling simplify_shift_const.
4197
4198 2006-05-14 Roger Sayle <roger@eyesopen.com>
4199
4200 PR rtl-optimization/22563
4201 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
4202 a fixed width bitfield, always force the intermediates into psuedos.
4203
4204 2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
4205
4206 PR 27501
4207 * mkconfig.sh: Use operator = instead of == for test.
4208
4209 2006-05-13 Nick Clifton <nickc@redhat.com>
4210
4211 * dwarf2out.c (dbx_reg_number): Check return value from
4212 LEAF_REG_REMAP and only use it if it is valid.
4213 (multiple_reg_loc_descriptor): Likewise.
4214
4215 2006-05-13 Richard Guenther <rguenther@suse.de>
4216
4217 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
4218 host_xmake_file.
4219
4220 2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
4221
4222 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
4223 information attached to non-INSNs such as NOTEs.
4224 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
4225
4226 2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
4227
4228 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
4229 On contraint.
4230 * config/s390/s390.md: Adjust comment describing On constraint.
4231
4232 2006-05-11 Jan Hubicka <jh@suse.cz>
4233
4234 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
4235 to be output at -O0.
4236
4237 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4238
4239 PR middle-end/27384
4240 * fold-const.c (size_binop): Move sanity check for arguments to
4241 the beginning of the function.
4242
4243 PR middle-end/27488
4244 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
4245 expression.
4246
4247 2006-05-11 Richard Guenther <rguenther@suse.de>
4248
4249 PR middle-end/27529
4250 * fold-const.c (fold_unary): Handle intermediate conversion
4251 to a pointer type like intermediate conversion to an integer
4252 type in folding of (T1)(T2)var to var.
4253 Match the code to the comment in the final conversion for
4254 (T1)(T2)var to (T1)var regarding to type precision. Rather
4255 than disallow T1 being of pointer type, assert that both T1
4256 and var are of pointer type or not. Make sure not to fall
4257 over the frontends lazyness wrt array to pointer decay though.
4258
4259 2006-05-10 Richard Earnshaw <rearnsha@arm.com>
4260
4261 * arm.c (arm_struct_value_rtx): Delete.
4262 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
4263 (arm_init_cumulative_args): Always initialize nregs to zero.
4264
4265 2006-05-10 Richard Guenther <rguenther@suse.de>
4266
4267 PR tree-optimization/27532
4268 * tree-object-size.c (plus_expr_object_size): Fix typo.
4269
4270 2006-05-10 Kazu Hirata <kazu@codesourcery.com>
4271
4272 PR target/24949
4273 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
4274 ashrdi_const, ashrdi3): Use a scratch register.
4275
4276 2006-05-10 Richard Guenther <rguenther@suse.de>
4277
4278 PR tree-optimization/27302
4279 * fold-const.c (operand_equal_p): For two comparisons,
4280 try comparison of one comparison code swapped if that yields
4281 the same code.
4282
4283 2006-05-10 Ben Elliston <bje@au.ibm.com>
4284
4285 * tree-pretty-print.c (pretty_print_string): No need to handle
4286 '\0' as a special character.
4287
4288 * tree.h: Include "hashtab.h".
4289 (iterative_hash_expr): Use hashval_t in its prototype.
4290 * Makefile.in (TREE_H): Add $(HASHTAB_H).
4291
4292 2006-05-09 Steve Ellcey <sje@cup.hp.com>
4293
4294 PR bootstrap/26872
4295 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
4296 (hppa*64*-*-hpux11*): Ditto.
4297 (hppa[12]*-*-hpux11*): Ditto.
4298
4299 2006-05-09 David Edelsohn <edelsohn@gnu.org>
4300
4301 PR target/26545
4302 * config/rs6000/aix41.h (TARGET_64BIT): Define.
4303
4304 2006-05-09 Michael Matz <matz@suse.de>
4305
4306 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
4307 host_extra_gcc_objs and host_xmake_file.
4308 (<*-*-linux*>): Don't overwrite host_xmake_file.
4309 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
4310 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
4311 (host_detect_local_cpu): Declare.
4312 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
4313 * config/i386/i386.c (override_options): Handle -mtune=native
4314 as -mtune=generic.
4315 * config/i386/x-i386: New file.
4316 * config/i386/driver-i386.c: New file.
4317 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
4318 cpu-type "native".
4319
4320 2006-05-09 Dirk Mueller <dmueller@suse.de>
4321 Richard Guenther <rguenther@suse.de>
4322
4323 PR middle-end/27498
4324 * fold-const.c (fold_read_from_constant_string): Relax check
4325 for matching types to matching modes.
4326
4327 2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
4328
4329 PR rtl-optimization/27335
4330 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
4331 loops.
4332
4333 2006-05-08 Chao-ying Fu <fu@mips.com>
4334 Richard Sandiford <richard@codesourcery.com>
4335
4336 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
4337 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
4338 * config/mips/mips.md (UNSPEC_SCC): New constant.
4339 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
4340 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4341 (mips_emit_compare): Use it.
4342 (mips_expand_vcondv2sf): New function.
4343
4344 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
4345
4346 Fix PR tree-optimization/27093
4347 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
4348 renaming when they become not-used_alone.
4349
4350 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4351
4352 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4353 relocation and relocation stubs.
4354
4355 2006-05-08 Eric Christopher <echristo@apple.com>
4356
4357 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4358 section for ppc.
4359
4360 2006-05-08 Jan Hubicka <jh@suse.cz>
4361
4362 PR middle-end/24561
4363 * cgraphunit.c (decide_is_function_needed): When not optimizing even
4364 unused static functions are needed.
4365
4366 2006-05-08 Roger Sayle <roger@eyesopen.com>
4367
4368 PR target/27158
4369 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
4370 of a reg_equiv_constant if the result is a legitimate constant.
4371
4372 2006-05-08 Uros Bizjak <uros@kss-loka.si>
4373
4374 PR target/27277
4375 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
4376 standard 80387 constants, raise the cost to prevent
4377 compress_float_constant() to generate load from memory.
4378
4379 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
4380
4381 * config/arm/constraints.md (c): Fix a typo.
4382
4383 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
4384 typos.
4385
4386 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
4387
4388 PR target/24879
4389 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
4390 inline function.
4391 (_mm_mwait): Likewise.
4392
4393 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
4394 "mwait".
4395 (sse3_monitor): Make it 32bit only.
4396 (sse3_monitor64): New. 64bit monitor.
4397
4398 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4399
4400 PR target/27421
4401 * config/i386/i386.c (classify_argument): Skip fields with invalid
4402 types.
4403
4404 2006-05-07 Richard Guenther <rguenther@suse.de>
4405
4406 PR tree-optimization/27409
4407 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4408 Do not try to find zero-sized subvars.
4409
4410 2006-05-07 Richard Guenther <rguenther@suse.de>
4411
4412 PR tree-optimization/27136
4413 * tree-ssa-loop-niter.c (get_val_for): Correct function
4414 comment, assert requirements.
4415 (loop_niter_by_eval): Stop processing if the iterated
4416 value did not simplify.
4417
4418 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
4419
4420 * opts.c (flag_see): remove its setting at -O3.
4421
4422 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
4423
4424 * genpeep.c (main): Make insn-peep.c depend on flags.h.
4425 * arm/constraints.md: New file.
4426 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
4427 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
4428 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
4429 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
4430 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
4431 (EXTRA_MEMORY_CONSTRAINT): Likewise.
4432 * arm.md: Include constraints.md.
4433 (thumb_movsi_insn): Use satisfies_constraint_J.
4434 (movhi, movqi): Use satisfies_constraint_I.
4435
4436 2006-04-29 Anatoly Sokolov <aesok@post.ru>
4437
4438 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
4439 for atmeg a645 device.
4440
4441 2006-05-06 Richard Guenther <rguenther@suse.de>
4442
4443 PR tree-optimization/27151
4444 * tree-vect-transform.c (vectorizable_condition): Punt on
4445 values that have a different type than the condition.
4446
4447 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
4448
4449 PR/21391
4450 * c-parser.c (c_parser_cast_expression): Only insert casts into
4451 hash table if pointer.
4452 * function.c (used_types_insert_helper): Rename from
4453 used_types_insert.
4454 (used_types_insert): Call used_types_insert_helper.
4455 * function.h (used_types_insert): Accept only one argument.
4456
4457 2006-05-05 David Edelsohn <edesohn@gnu.org>
4458
4459 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4460 scratch with output modifier.
4461
4462 2006-05-04 David Edelsohn <edelsohn@gnu.org>
4463
4464 PR target/26481
4465 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4466 with output modifier.
4467
4468 2006-05-04 Richard Sandiford <richard@codesourcery.com>
4469
4470 PR target/26765
4471 * config/mips/mips.c (mips_symbolic_address_p): Return true
4472 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4473 SYMBOL_GOTTPREL, and SYMBOL_TLS.
4474
4475 2006-05-04 Richard Guenther <rguenther@suse.de>
4476
4477 PR tree-optimization/14287
4478 PR tree-optimization/14844
4479 PR tree-optimization/19792
4480 PR tree-optimization/21608
4481 PR tree-optimization/27090
4482 * tree-ssa-pre.c (try_combine_conversion): New function.
4483 (compute_avail): After constructing the value-handle
4484 expression, use try_combine_conversion to combine NOP_EXPRs
4485 with previous value-handle expressions and use the result if it
4486 is available.
4487
4488 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
4489
4490 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4491
4492 2006-05-04 Jan Hubicka <jh@suse.cz>
4493
4494 PR middle-end/25962
4495 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4496
4497 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
4498
4499 * config/bfin/predicates.md (const01_rtx): Tell generator programs
4500 that this only matches CONST_INTs. All users changed to VOIDmode
4501 operands.
4502
4503 * config/bfin/bfin.c: Include "optabs.h".
4504 (bfin_rtx_costs): Some costs for vector operations, to allow combine
4505 to do more work.
4506 (enum bfin_builtins): Add a number of fractional and vector builtins.
4507 (bfin_init_builtins): Likewise.
4508 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4509 (safe_vector_operand, bfin_expand_binop_builtin,
4510 bfin_expand_unop_builtin): New functions.
4511 (bfin_expand_builtin): Handle the new builtins.
4512 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4513 __ADSPBLACKFIN__.
4514
4515 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
4516
4517 * see.c: New file.
4518 * Makefile.in (OBJS-common): Add see.o.
4519 (see.o): Add dependencies.
4520 * common.opt (fsee): New flag for the see optimization was added.
4521 * opts.c (flag_see): Initialized.
4522 * passes.c (init_optimization_passes, pass_see): New pass.
4523 * rtl.h (see_main): Declaration as extern.
4524 * timevar.def (TV_SEE): New.
4525 * tree-pass.h (pass_see): Declaration as extern.
4526 * invoke.texi (-fsee): Document.
4527 * recog.c (validate_simplify_insn): New function.
4528 * recog.h (validate_simplify_insn): Declaration as extern.
4529 * df-problems.c (df_chain_dump): Check for NULL.
4530
4531 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
4532 Daniel Berlin <dberlin@dberlin.org>
4533
4534 * cfgrtl.c (insert_insn_bb_end_new): New function.
4535 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4536
4537 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
4538
4539 * df.h (struct web_entry): Moved from web.c.
4540 (union_defs): Declaration as extern.
4541 (unionfind_root): Likewise.
4542 (unionfind_union): Likewise.
4543 * web.c (struct web_entry): Moved to df.h.
4544 (unionfind_root): Remove static declaration.
4545 (unionfind_union): Likewise.
4546 (union_defs): Likewise and generalize to use callback function.
4547 (web_main): Update arguments for union_defs function call.
4548
4549 2006-05-04 Richard Guenther <rguenther@suse.de>
4550
4551 PR tree-optimization/26447
4552 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4553 produce SSA_NAME copies before the store stmt to avoid
4554 breaking exception handling.
4555
4556 2006-05-04 Jakub Jelinek <jakub@redhat.com>
4557
4558 PR middle-end/27388
4559 * gimplify.c (omp_is_private): If var is shared in some outer context,
4560 return false instead of true. Stop searching on parallel context
4561 boundary.
4562
4563 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
4564
4565 PR java/8260
4566 * coverage.c: Use get_gcov_unsigned_t() instead of
4567 unsigned_type_node all over.
4568
4569 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
4570
4571 PR tree-optimization/27381
4572 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4573 maintain the same immediate_use links.
4574 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4575 node rather than segfaulting.
4576
4577 2006-05-03 Jakub Jelinek <jakub@redhat.com>
4578
4579 PR fortran/27395
4580 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4581 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
4582 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4583
4584 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
4585
4586 Fix PR tree-optimization/26626
4587 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4588 always.
4589 * tree-ssa-operands.c (access_can_touch_variable): Allow
4590 typecasting through union pointers.
4591
4592 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4593
4594 PR c++/26943
4595 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4596 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4597 to find if var will be a global variable even in the nested context.
4598 (omp_copy_decl): Only check for global variable at the end, it might
4599 be overridden in outer contexts.
4600 (scan_sharing_clauses): For global variables don't create a field.
4601 (lower_rec_input_clauses): Do nothing for global shared variables.
4602 Emit a barrier at the end of ILIST if there were any decls in both
4603 firstprivate and lastprivate clauses.
4604 (lower_send_clauses): Do nothing for global variables except for
4605 COPYIN.
4606
4607 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
4608
4609 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4610 of the correct signedness is returned.
4611
4612 2006-05-02 Jeff Law <law@redhat.com>
4613
4614 PR tree-optimization/27364
4615 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4616 multiply expressions.
4617
4618 2006-05-02 Tom Tromey <tromey@redhat.com>
4619
4620 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4621
4622 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
4623
4624 PR target/27387
4625 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4626 -mthumb -fPIC are used.
4627
4628 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
4629 Joshua Kinard <kumba@gentoo.org>
4630
4631 PR target/25871
4632 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4633 with 64-bit pointers.
4634
4635 2006-05-02 Paul Brook <paul@codesourcery.com>
4636
4637 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4638 and pool overlap.
4639 (create_fix_barrier): Check that a suitable barrier location is
4640 found.
4641 (arm_reorg): Include ftmp->address in allowable range of addresses.
4642
4643 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
4644
4645 PR ada/27366
4646 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4647 on Cygwin.
4648
4649 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4650
4651 PR middle-end/27337
4652 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4653 around RESULT_DECL for result passed by reference.
4654 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4655 * omp-low.c (use_pointer_for_field): Don't look at
4656 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4657 (scan_omp_1): Call remap_decl on RESULT_DECLs.
4658 (lower_rec_input_clauses): Don't allocate VLA memory for the second
4659 time or var for passing by reference for
4660 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
4661 TREE_ADDRESSABLE variables when passing by reference.
4662
4663 * omp-low.c (dump_omp_region): Fix output formatting.
4664
4665 PR middle-end/27328
4666 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4667 (expand_omp_parallel): Likewise.
4668 * tree-cfg.c (move_sese_region_to_fn): Likewise.
4669
4670 PR middle-end/27325
4671 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4672 on statement list containing also constructors and destructors.
4673 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4674
4675 PR middle-end/27310
4676 * except.c (duplicate_eh_regions): Fix clearing of
4677 cfun->eh->region_array entries.
4678
4679 2006-05-01 DJ Delorie <dj@redhat.com>
4680
4681 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4682 build!=host.
4683 (gcc_cv_objdump): Likewise.
4684 * configure: Regenerated.
4685
4686 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
4687
4688 PR target/27374
4689 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4690 templates for case 3 and 4.
4691
4692 2006-05-01 DJ Delorie <dj@redhat.com>
4693
4694 * vec.c: Include bconfig.h when appropriate.
4695 * Makefile.in (build/vec.o): Adjust dependencies.
4696 * mkconfig.sh: Make sure config.h isn't used for build machine
4697 compiles.
4698
4699 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4700
4701 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4702 variables.
4703 (mark_phi_for_rewrite): New function.
4704 (insert_phi_nodes_for, mark_use_interesting): Call
4705 mark_phi_for_rewrite.
4706 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4707 (update_ssa): Initialize and free phis_to_rewrite.
4708
4709 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4710
4711 PR rtl-optimization/27291
4712 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4713 folded to a constant.
4714
4715 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4716
4717 PR tree-optimization/27283
4718 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4719 not whole # of iteration descriptions.
4720 (niter_for_exit): Return just # of iterations. Fail if # of iterations
4721 uses abnormal ssa name.
4722 (niter_for_single_dom_exit): Ditto.
4723 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4724 return just the number of iterations.
4725
4726 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4727
4728 PR tree-optimization/27144
4729 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4730 (record_estimate): Only record constant upper bound.
4731 (infer_loop_bounds_from_undefined): Call
4732 compute_estimated_nb_iterations just once.
4733 (proved_non_wrapping_p): Renamed to ...
4734 (n_of_executions_at_most): ... this. Expect bound to be a constant.
4735 (convert_step_widening, scev_probably_wraps_p): Call
4736 n_of_executions_at_most instead of proved_non_wrapping_p.
4737 (substitute_in_loop_info): Do not replace values in bounds.
4738 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
4739 comments.
4740
4741 2006-05-01 Richard Henderson <rth@redhat.com>
4742
4743 PR c/27358
4744 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4745 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
4746 CPP_PRAGMA.
4747
4748 2006-05-01 Roger Sayle <roger@eyesopen.com>
4749
4750 * c-typeck.c (parser_build_binary_op): Don't call the function
4751 unsigned_conversion_warning to spot operand/result type overflow.
4752 (build_binary_op): Instead, call convert_and_check instead of
4753 convert to report the problem when the operands are promoted.
4754 * c-common.c (unsigned_conversion_warning): Make static.
4755 * c-common.h (unsigned_conversion_warning): Delete prototype.
4756
4757 2006-05-01 Richard Guenther <rguenther@suse.de>
4758
4759 PR tree-optimization/26726
4760 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4761 problem ...
4762 (find_interesting_uses_address): ... we work around here
4763 by folding INDIRECT_REFs in the substituted base.
4764
4765 2006-05-01 Diego Novillo <dnovillo@redhat.com>
4766
4767 * omp-low.c (dump_omp_region): Add newlines.
4768
4769 2006-04-30 Roger Sayle <roger@eyesopen.com>
4770
4771 * common.opt (Woverflow): New command line option.
4772 * c-common.c (constant_expression_warning): Check warn_overflow.
4773 (overflow_waring): Pass OPT_Woverflow to warning.
4774 (unsigned_conversion_warning): Likewise.
4775 (convert_and_check): Likewise.
4776 * doc/invoke.texi: Document new command line option.
4777
4778 2006-04-30 David Edelsohn <edelsohn@gnu.org>
4779
4780 * config/rs6000/rs6000.c (rs6000_override_options): Enable
4781 TARGET_NO_FP_IN_TOC for section anchors.
4782 (optimization_options): Enable section anchors for all
4783 non-"Objective" languages.
4784
4785 2006-04-28 Eric Christopher <echristo@apple.com>
4786
4787 * config/darwin-c.c (darwin_ms_struct): Move this
4788 (darwin_set_default_type_attributes): and this...
4789 * config/darwin.c: ... here.
4790 * config/darwin.h (darwin_ms_struct): Declare.
4791
4792 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
4793
4794 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
4795
4796 2006-04-28 Roger Sayle <roger@eyesopen.com>
4797
4798 PR c/25309
4799 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
4800 (push_array_bounds): Delete prototype. Change BOUNDS argument to
4801 an unsigned HOST_WIDE_INT.
4802 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
4803 array index.
4804 (really_start_incremental_init): No need to call convert because
4805 bitsize_zero_node is already of type bitsizetype.
4806 (push_init_level): Extract the value of constructor_index as an
4807 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
4808 (process_init_element): Likewise.
4809
4810 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
4811
4812 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
4813 value before passing to make_relative_prefix.
4814
4815 2006-04-28 Alan Modra <amodra@bigpond.net.au>
4816
4817 PR middle-end/27260
4818 * builtins.c (expand_builtin_memset): Expand val in original mode.
4819
4820 2006-04-27 Eric Christopher <echristo@apple.com>
4821
4822 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
4823 with #ifndef/#endif.
4824 * config/darwin-c.c (darwin_ms_struct): New.
4825 (darwin_pragma_ms_struct): Ditto.
4826 (darwin_set_default_type_attributes): Ditto.
4827 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
4828 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
4829 Register ms_struct pragma.
4830 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
4831 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
4832 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
4833 darwin_set_default_type_attributes if TARGET_MACHO.
4834
4835 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
4836
4837 PR tree-optimization/26854
4838 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
4839 * doc/tree-ssa.texi: Update immuse iterator documentation.
4840 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
4841 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
4842 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
4843 first_safe_imm_use, next_safe_imm_use): Remove.
4844 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
4845 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
4846 (move_use_after_head): New. Helper function to sort immuses in a stmt.
4847 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
4848 (first_imm_use_stmt): New. Get first stmt in an immuse list.
4849 (next_imm_use_stmt): New. Get next stmt in an immuse list.
4850 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
4851 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
4852 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
4853 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
4854 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
4855 (perfect_nestify): Use new iterator.
4856 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
4857 iterator.
4858 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
4859 (next_imm_name): New field in struct immediate_use_iterator_d.
4860 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
4861 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
4862 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
4863 * tree-cfg.c (replace_uses_by): Use new iterator.
4864 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
4865 * tree-ssa-operands.c (correct_use_link): Remove.
4866 (finalize_ssa_use_ops): No longer call correct_use_link.
4867
4868 2006-04-27 Stuart Hastings <stuart@apple.com>
4869
4870 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
4871 * config/t-darwin (crt3.o): Use it.
4872 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
4873 'pmode', use Pmode instead of SImode for SYMBOL_REF.
4874 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
4875 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
4876 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
4877 support.
4878
4879 2006-04-27 Roger Sayle <roger@eyesopen.com>
4880
4881 * expmed.c (store_fixed_bit_field): If we're not optimizing for
4882 size, force the intermediate into a new pseudo rather instead of
4883 performing both a bitwise AND and a bitwise IOR in memory.
4884
4885 2006-04-27 Richard Guenther <rguenther@suse.de>
4886
4887 PR rtl-optimization/26685
4888 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
4889 this one "max-flow-memory-locations".
4890
4891 2006-04-27 Richard Guenther <rguenther@suse.de>
4892
4893 PR tree-optimization/25148
4894 * tree-vrp.c (compare_values): Remove code dealing with
4895 comparisons against type min/max value. Honour overflow
4896 and negative constants in code dealing with comparisons
4897 of plus and minus expressions.
4898 (value_inside_range): Use fold_binary with LE_EXPR and
4899 GE_EXPR rather than compare_values.
4900
4901 2006-04-27 Dirk Mueller <dmueller@suse.de>
4902
4903 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
4904 prototype for SSE.
4905
4906 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4907
4908 * basic-block.h (safe_insert_insn_on_edge): Removed.
4909 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
4910
4911 2006-04-26 David Edelsohn <edelsohn@gnu.org>
4912 Paolo Bonzini <bonzini@gnu.org>
4913
4914 PR middle-end/27282
4915 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
4916 (simplify_and_const_int): Same.
4917
4918 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
4919
4920 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
4921
4922 2006-04-26 Jakub Jelinek <jakub@redhat.com>
4923
4924 PR c/26171
4925 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
4926 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
4927 cgraph_global_info_ready.
4928
4929 PR middle-end/26913
4930 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
4931
4932 PR c/25996
4933 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
4934 either decl or init is error_mark_node.
4935
4936 PR middle-end/25989
4937 * tree-flow.h (struct omp_region): Add sched_kind.
4938 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
4939 instead of extracting omp for data.
4940 (expand_omp_for): Save extracted sched_kind.
4941
4942 2006-04-25 Roger Sayle <roger@eyesopen.com>
4943
4944 * expmed.c (store_bit_field): Also check whether the bitsize is
4945 valid for the machine's "insv" instruction before moving the
4946 target into a pseudo for use with the insv.
4947 * config/i386/predicates.md (const8_operand): New predicate.
4948 * config/i386/i386.md (extv, extzv, insv): Use the new
4949 const8_operand predicate where appropriate.
4950
4951 2006-04-25 DJ Delorie <dj@redhat.com>
4952
4953 * doc/install.texi (Specific): Clarify that this is not a list of
4954 supported hosts or targets.
4955
4956 2006-04-25 Richard Sandiford <richard@codesourcery.com>
4957
4958 PR rtl-optimization/26725
4959 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
4960 block's BB_DIRTY flag.
4961
4962 2006-04-25 Geoffrey Keating <geoffk@apple.com>
4963
4964 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
4965 are no branches.
4966
4967 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
4968 to print an integer.
4969
4970 2006-04-25 David Edelsohn <edelsohn@gnu.org>
4971
4972 * varasm.c (align_variable): New function.
4973 (get_block_for_decl): Apply align_variable to DECL before
4974 calculating section information.
4975 (assemble_variable): Split out alignment computation.
4976
4977 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
4978
4979 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
4980 machines.
4981
4982 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
4983
4984 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
4985 MODE_PARTIAL_INT mode.
4986 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
4987 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
4988 for CONST_INTs.
4989 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
4990 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
4991 V2PDImode.
4992 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
4993 New predicates.
4994 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
4995 New constants.
4996 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
4997 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
4998 MACFLAG_IH): Likewise.
4999 (movstricthi_1): Renamed from "*movstricthi".
5000 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
5001 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
5002 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
5003 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
5004 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
5005 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
5006 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
5007 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
5008 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
5009 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
5010 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
5011 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
5012 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
5013 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
5014 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
5015
5016 * doc/rtl.texi (ss_ashift): Improve wording.
5017
5018 2006-04-24 Geoffrey Keating <geoffk@apple.com>
5019
5020 * dwarf2out.c (verify_marks_clear): New.
5021 (prune_unused_types): Call verify_marks_clear initially, not
5022 prune_unmark_dies.
5023
5024 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5025
5026 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
5027 * doc/rtl.texi: Document them.
5028 * simplify-rtx.c (simplify_unary_operation,
5029 simplify_binary_operation_1): Don't abort when we see them.
5030
5031 2006-04-24 Mark Mitchell <mark@codesourcery.com>
5032
5033 Revert:
5034 2006-04-23 Mark Mitchell <mark@codesourcery.com>
5035 * configure.ac: Completely disregard languages that are not
5036 enabled.
5037 * configure: Regenerated.
5038
5039 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5040 Richard Guenther <rguenther@suse.de>
5041
5042 PR tree-optimization/27236
5043 * tree-inline.c (copy_body_r): Make sure to copy
5044 TREE_THIS_VOLATILE flag.
5045
5046 2006-04-24 Richard Guenther <rguenther@suse.de>
5047
5048 PR middle-end/26869
5049 * tree-complex.c (update_parameter_components): Don't handle
5050 unused parameters which have no default def.
5051
5052 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5053 Richard Guenther <rguenther@suse.de>
5054
5055 PR tree-optimization/27218
5056 * tree-inline.c (expand_call_inline): Strip useless type
5057 conversions for the return slot address.
5058
5059 2006-04-24 Richard Guenther <rguenther@suse.de>
5060
5061 * cfgloop.h (struct loops): Remove unused field array. Reorder
5062 state after num.
5063 (LOOP_PREFETCH): Remove.
5064
5065 2006-04-24 Richard Guenther <rguenther@suse.de>
5066
5067 PR tree-optimization/22525
5068 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
5069 variable, adjust types of generated expressions.
5070
5071 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
5072
5073 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
5074 (tree-vect-patterns.o): Likewise.
5075 (jump.o): Likewise.
5076 (cselib.o): Likewise.
5077 (loop-doloop.o): Likewise.
5078 (regclass.o): Likewise.
5079 (reload1.o): Likewise.
5080 (explow.o): Replace target.h with $(TARGET_H).
5081 (ipa-prop.o): Likewise.
5082 (ipa-cp.o): Likewise.
5083 (ipa-inline.o): Likewise.
5084 (reorg.o): Likewise.
5085 (reg-stack.o): Likewise.
5086
5087 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5088
5089 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
5090
5091 2006-04-23 Mark Mitchell <mark@codesourcery.com>
5092
5093 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
5094
5095 * configure.ac: Completely disregard languages that are not
5096 enabled.
5097 * configure: Regenerated.
5098
5099 PR c++/26534
5100 * c-common.h (c_build_bitfield_integer_type): Declare.
5101 * c-decl.c (c_build_bitfield_integer_type): Move to ...
5102 * c-common.c (c_build_bitfield_integer_type): ... here.
5103
5104 2006-04-23 Roger Sayle <roger@eyesopen.com>
5105
5106 PR target/21283
5107 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
5108 a SImode SUBREG of a floating point register after no_new_pseudos.
5109
5110 2006-04-23 Roger Sayle <roger@eyesopen.com>
5111
5112 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
5113 identify potentially eliminable registers to additionally catch
5114 VIRTUAL_INCOMING_ARGS_REGNUM.
5115 (addsi3): Update the conditions on when to use addsi_small_int.
5116
5117 2006-04-23 Roger Sayle <roger@eyesopen.com>
5118
5119 PR target/16641
5120 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
5121 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
5122 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
5123
5124 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5125
5126 * fold-const.c (range_predecessor): Use operand_equal_p
5127 as the predicate for equality.
5128 (range_successor): Likewise.
5129
5130 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
5131
5132 Revert:
5133 * config/soft-fp/op-common.h: Fix a typo.
5134
5135 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
5136
5137 PR libmudflap/26864
5138 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
5139 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
5140
5141 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
5142
5143 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
5144 Fix comment typos.
5145 * doc/tm.texi: Fix a typo.
5146
5147 2006-04-21 Geoffrey Keating <geoffk@apple.com>
5148
5149 * dwarf2out.c (struct die_struct): Document that die_sib makes
5150 a circular linked list.
5151 (FOR_EACH_CHILD): New.
5152 (reverse_die_lists): Delete.
5153 (reverse_all_dies): Delete.
5154 (add_dwarf_attr): Correct documentation.
5155 (remove_child_with_prev): New.
5156 (remove_child_TAG): Update for change to die_struct, use
5157 remove_child_with_prev.
5158 (add_child_die): Update for change to die_struct.
5159 (splice_child_die): Use remove_child_with_prev and add_child_die.
5160 (print_die): Use FOR_EACH_CHILD.
5161 (die_checksum): Likewise.
5162 (assign_symbol_names): Likewise.
5163 (output_location_lists): Likewise.
5164 (build_abbrev_table): Likewise.
5165 (calc_die_sizes): Likewise.
5166 (mark_dies): Likewise.
5167 (unmark_dies): Likewise.
5168 (unmark_all_dies): Likewise.
5169 (output_die): Likewise.
5170 (prune_unused_types_mark): Likewise.
5171 (prune_unused_types_walk): Likewise.
5172 (same_die_p): Update for change to die_struct.
5173 (break_out_includes): Likewise.
5174 (prune_unused_types_prune): Likewise.
5175 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
5176 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
5177 it's already clear.
5178 (dwarf2out_finish): Don't call reverse_all_dies.
5179
5180 2006-04-21 Eric Christopher <echristo@apple.com>
5181
5182 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
5183 in comments and function names.
5184
5185 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5186
5187 PR c/25875
5188 * c-typeck.c (digest_init): Robustify.
5189
5190 * c-typeck.c (pop_init_level): Simplify.
5191
5192 2006-04-21 Steve Ellcey <sje@cup.hp.com>
5193
5194 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
5195
5196 2006-04-21 Paul Brook <paul@codesourcery.com>
5197
5198 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
5199 hardware floating point.
5200
5201 2006-04-21 David Edelsohn <edelsohn@gnu.org>
5202
5203 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
5204 NON_FLOAT_REGS.
5205
5206 2006-04-21 Nick Clifton <nickc@redhat.com>
5207
5208 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
5209 OPT_EXTRA_PARTS.
5210
5211 2006-04-21 Alan Modra <amodra@bigpond.net.au>
5212
5213 PR target/27230
5214 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
5215 C++ lang type in traceback table for Objective-C++.
5216
5217 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
5218
5219 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
5220
5221 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
5222
5223 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5224
5225 PR mudflap/26789
5226 * tree-mudflap.c (mudflap_finish_file): Skip function when there
5227 were errors. Remove check for erroneous objects.
5228
5229 2006-04-20 Jeff Law <law@redhat.com>
5230
5231 PR tree-optimization/26854
5232 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
5233 checking for zero or one use.
5234 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
5235 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
5236 * tree-ssa-reassoc.c (negate_value): Similarly.
5237 (reassociate_bb): Similarly.
5238
5239 2006-04-20 Jakub Jelinek <jakub@redhat.com>
5240
5241 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
5242 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
5243 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
5244
5245 2006-04-20 Alan Modra <amodra@bigpond.net.au>
5246
5247 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
5248 fp regs if the last fp arg doesn't fit in regs.
5249
5250 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
5251
5252 PR target/27182
5253 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
5254 that the last insn has the REG_INC note.
5255
5256 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
5257 Nathan Sidwell <nathan@codesourcery.com>
5258
5259 PR c/26774
5260 * stor-layout.c (update_alignment_for_field): Do not align
5261 ERROR_MARK nodes.
5262 (place_union_field): Place union field at the start of the union.
5263 (place_field): Move ERROR_MARK check later, and use the current
5264 allocation position to maintain monotonicity.
5265
5266 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
5267
5268 * dominance.c: Include timevar.h.
5269 (calculate_dominance_info): Use TV_DOMINANCE.
5270 * timevar.def (TV_DOMINANCE): New timevar.
5271 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
5272
5273 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5274
5275 PR rtl-optimization/14261
5276 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
5277 move would be an INSV insn.
5278 (noce_process_if_block): Don't optimize if the destination is a
5279 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
5280
5281 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5282
5283 * config/s390/s390.md: Add comments with the instructions emitted
5284 by an insn pattern if macros are used.
5285
5286 2006-04-19 Alan Modra <amodra@bigpond.net.au>
5287
5288 PR rtl-optimization/26026
5289 * fold-const.c (fold_binary): Optimize div and mod where the divisor
5290 is a known power of two shifted left a variable amount.
5291
5292 2006-04-18 Geoffrey Keating <geoffk@apple.com>
5293
5294 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
5295 to hash table twice when the debug_str section has SECTION_MERGE.
5296
5297 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
5298
5299 * config/soft-fp: New directory. From glibc.
5300 * config/soft-fp/t-softfp: New.
5301 * config/soft-fp/README: New.
5302 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
5303 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
5304 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
5305 (LIBGCC_DEPS): Add $(SFP_MACHINE).
5306 * config.gcc: Use rs6000/t-fprules-fpbit or
5307 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
5308 rs6000/t-fprules.
5309 * config/rs6000/sfp-machine.h: New. Based on glibc.
5310 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
5311 New.
5312 * config/rs6000/t-fprules: Remove fp-bit rules.
5313 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
5314 * config/rs6000/t-linux64: Likewise. Remove duplicates from
5315 LIB2FUNCS_EXTRA. Remove fp-bit rules.
5316 (softfp_wrap_start, softfp_wrap_end): New.
5317
5318 2006-04-18 DJ Delorie <dj@redhat.com>
5319
5320 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
5321
5322 2006-04-18 Devang Patel <dpatel@apple.com>
5323
5324 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
5325
5326 2006-04-18 Nick Clifton <nickc@redhat.com>
5327
5328 * config/sh/t-symbian: Add rule to build sh-c.o
5329 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
5330 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
5331 (sh_symbian_encode_section_info): Likewise.
5332
5333 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
5334
5335 * builtins.c (expand_builtin_strcmp): Cover label definition of
5336 do_libcall with HAVE_cmpstrnsi.
5337
5338 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
5339
5340 * function.c (temp_slots_at_level, max_slot_level): Use VEC
5341 instead of VARRAY.
5342 * function.h (temp_slot_p): New.
5343 (function): Change the type of x_used_temp_slots to
5344 VEC(temp_slot_p,gc) *.
5345
5346 2006-04-18 Nick Clifton <nickc@redhat.com>
5347
5348 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5349 flag_strength_reduce.
5350
5351 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5352
5353 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
5354
5355 PR target/27117
5356
5357 Partial revert of revision 112637
5358 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
5359 Dale Johannesen <dalej@apple.com>
5360
5361 PR target/19653
5362 * regclass.c (struct reg_pref): Update documentation.
5363 (regclass): Set prefclass to NO_REGS if memory is the best option.
5364 (record_reg_classes): Cope with a prefclass set to NO_REGS.
5365
5366 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
5367
5368 PR tree-optimization/26821
5369 * tree-ssa-math-opts.c (get_constant_one): New.
5370 (insert_reciprocals): Use it.
5371
5372 2006-04-17 Geoffrey Keating <geoffk@apple.com>
5373
5374 * dwarf2out.c (free_AT): Delete.
5375 (remove_AT): Update string ref counts.
5376 (remove_child_TAG): Don't call free_die.
5377 (free_die): Delete.
5378 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
5379 or DW_TAG_GNU_EINCL.
5380 (prune_unused_types_walk_attribs): Reset string refcounts.
5381 (prune_unused_types_update_strings): New.
5382 (prune_unused_types_prune): Don't make unnecessary stores. Don't
5383 call free_die. Do call prune_unused_types_update_strings.
5384 (prune_unused_types): Empty debug_str_hash.
5385
5386 2006-04-17 Roger Sayle <roger@eyesopen.com>
5387
5388 * expr.c (expand_assignment): Optimize away no-op moves where the
5389 source and destination are equal and have no side-effects.
5390
5391 2006-04-17 Richard Guenther <rguenther@suse.de>
5392
5393 PR target/26826
5394 * reload.c (push_reload): Guard calls to get_secondary_mem
5395 for memory subregs.
5396
5397 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
5398
5399 * alias.c (reg_base_value, old_reg_base_value): Change the
5400 type to VEC(rtx,gc) *.
5401 (REG_BASE_VALUE, find_base_value, record_set,
5402 init_alias_analysis): Use VEC instead of VARRAY.
5403
5404 * alias.c (alias_sets): Change the type to
5405 VEC(alias_set_entry,gc) *.
5406 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
5407 VEC instead of VARRAY.
5408 (last_alias_set): Remove.
5409
5410 * cgraph.h (cgraph_edge_p): New.
5411 Update the prototype of cgraph_function_versioning.
5412 * cgraphunit.c (cgraph_copy_node_for_versioning,
5413 cgraph_function_versioning): Use VEC instead of VARRAY.
5414 * ipa-cp.c (ipcp_insert_stage): Likewise.
5415
5416 2006-04-16 Roger Sayle <roger@eyesopen.com>
5417
5418 PR target/26961
5419 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
5420 "A op B" or "A op C", we may need to convert A to the type of B and C.
5421
5422 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
5423
5424 * target.h (struct gcc_target): Add mode_rep_extended.
5425 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
5426 (init_num_sign_bit_copies_in_rep): Initialize it using
5427 mode_rep_extended.
5428 (truncate_to_mode): Use it.
5429 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
5430 * targhooks.h (default_mode_rep_extended): Declare it.
5431 * targhooks.c (default_mode_rep_extended): Define it.
5432 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
5433 default_mode_rep_extended.
5434 (TARGET_INITIALIZER): Include it.
5435 * doc/tm.texi (Misc): Document it.
5436 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
5437 (mips_truncated_to_mode): New function.
5438
5439 2006-04-16 Roger Sayle <roger@eyesopen.com>
5440
5441 PR middle-end/25474
5442 * expr.c (compress_float_constant): Copy the narrow constant into
5443 a new pseudo before extending it to its final width.
5444
5445 2006-04-16 Roger Sayle <roger@eyesopen.com>
5446 Andrew Pinski <pinskia@gcc.gnu.org>
5447 Dale Johannesen <dalej@apple.com>
5448
5449 PR target/24076
5450 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5451 special case code to implement V8HImode and V16QImode with SSE2.
5452
5453 2006-04-15 Roger Sayle <roger@eyesopen.com>
5454
5455 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5456 trees are constructed with a suitable tree type.
5457
5458 2006-04-15 Roger Sayle <roger@eyesopen.com>
5459
5460 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5461 (integer_onep): Likewise.
5462 (integer_all_onesp): Likewise.
5463 (integer_pow2p): Likewise.
5464 (integer_nonzerop): Likewise.
5465 (real_zerop): Likewise.
5466 (real_onep): Likewise.
5467 (real_twop): Likewise.
5468 (real_minus_onep): Likewise.
5469 (int_size_in_bytes): Likewise.
5470 (host_integerp): Likewise.
5471
5472 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
5473
5474 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5475 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5476 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5477
5478 * tree-ssa-structalias.h (alias_info): Remove num_references.
5479
5480 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5481
5482 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5483 (output_bvb patterns): Likewise.
5484 * pa.c (output_bb): Use 'bb' insn for long branch case.
5485 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5486 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5487 1. Correct length operand for alternatives 1 and 2.
5488 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5489 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
5490
5491 2006-04-14 Roger Sayle <roger@eyesopen.com>
5492
5493 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5494 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5495 were accidentally reverted by r112959.
5496
5497 2006-04-15 Jakub Jelinek <jakub@redhat.com>
5498
5499 PR middle-end/26823
5500 * except.h (eh_region_outermost): New prototype.
5501 * except.c (eh_region_outermost): New function.
5502 * tree-cfg.c (find_outermost_region_in_block): Use it.
5503
5504 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5505
5506 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5507 of VARRAY.
5508 * reload1.c (reg_equiv_memory_loc_varray): Rename to
5509 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
5510 (init_reload, reload): Use VEC instead of VARRAY.
5511 * reload.h: Update the prototype for
5512 reg_equiv_memory_loc_varray.
5513
5514 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
5515 Eric Botcazou <ebotcazou@libertysurf.fr>
5516
5517 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5518 register save area.
5519
5520 2005-04-13 Uros Bizjak <uros@kss-loka.si>
5521
5522 PR middle-end/27134
5523 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5524 to expand fallback builtin function call.
5525
5526 2006-04-14 Alan Modra <amodra@bigpond.net.au>
5527
5528 PR middle-end/27095
5529 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5530 and emit libcall here in case the builtin fails.
5531 (expand_builtin_strcmp): Always emit the libcall here on failure.
5532
5533 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5534
5535 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5536 * flow.c (reg_n_info): Change the type to
5537 VEC(reg_info_p,heap) *.
5538 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5539 instead of VARRAY.
5540 * regs.h (reg_info_p): New.
5541 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5542 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5543 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5544 instead of VARRAY.
5545
5546 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
5547
5548 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5549 defaulting to 100.
5550 * params.h (MAX_SCHED_READY_INSNS): New macro.
5551 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5552 past MAX_SCHED_READY_INSNS during the first scheduling pass.
5553 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5554 the ready list for 1 cycle during the first scheduling pass.
5555 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5556
5557 2006-04-13 Richard Henderson <rth@redhat.com>
5558
5559 PR libgomp/26651
5560 * gimple-low.c (lower_omp_directive): Remove dead code.
5561 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5562 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5563 * omp-low.c (struct omp_region): Move to tree-flow.h.
5564 (root_omp_region): Export.
5565 (omp_regions, lookup_omp_region): Remove.
5566 (determine_parallel_type): Update for struct omp_region changes.
5567 (dump_omp_region): Dump regions with block numbers.
5568 (new_omp_region): Take type and block instead of stmt; malloc
5569 instead of ggc.
5570 (free_omp_region_1, free_omp_regions): New.
5571 (expand_parallel_call): Take entry_stmt as argument; update for
5572 changes to omp_region.
5573 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5574 (remove_exit_barriers): New.
5575 (expand_omp_parallel): Update for struct omp_region changes.
5576 (expand_omp_synch): Likewise.
5577 (expand_omp): Likewise.
5578 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5579 (expand_omp_for_static_chunk): Likewise.
5580 (expand_omp_for): Likewise.
5581 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5582 (expand_omp_sections): Similarly, with GOMP_sections_end.
5583 (expand_omp_single): New.
5584 (build_omp_regions_1): Update for OMP_CONTINUE.
5585 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5586 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5587 OMP_SECTIONS_SECTIONS.
5588 (lower_omp_single_simple): Don't emit barrier here.
5589 (lower_omp_single_copy): Likewise.
5590 (lower_omp_single): Fix bindings, and lower to straightline now.
5591 (lower_omp_master, lower_omp_ordered): Likewise.
5592 (lower_omp_critical): Likewise.
5593 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
5594 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5595 omp edges, free it afterward.
5596 (make_omp_sections_edges): Remove.
5597 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5598 (move_stmt_r): Handle OMP_CONTINUE.
5599 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
5600 statement pointers to basic blocks. Add type member.
5601 (root_omp_region, new_omp_region, free_omp_regions): Declare.
5602 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5603 * tree-inline.c (estimate_num_insns_1): Likewise.
5604 * tree-pretty-print.c (dump_generic_node): Likewise.
5605 * tree-ssa-operands.c (get_expr_operands): Likewise.
5606 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5607 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5608 (OMP_CONTINUE): New.
5609 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5610 (OMP_SECTIONS_SECTIONS): Remove.
5611 (OMP_SECTION_LAST): New.
5612 (OMP_RETURN_NOWAIT): New.
5613
5614 2006-04-13 Roger Sayle <roger@eyesopen.com>
5615
5616 * fold-const.c (native_encode_vector, native_interpret_real):
5617 Correct obvious mistakes in the previous check-in.
5618
5619 2006-04-13 Roger Sayle <roger@eyesopen.com>
5620
5621 * fold-const.c (native_encode_expr): New function to encode
5622 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5623 or VECTOR_CST into a specified buffer.
5624 (native_encode_int): New function.
5625 (native_encode_real): New function.
5626 (native_encode_complex): New function.
5627 (native_encode_vector): New function.
5628 (native_interpret_expr): Inverse of native_encode_expr to convert
5629 a target representation into an INTEGER_CST, REAL_CST etc...
5630 (native_interpret_int): New function.
5631 (native_interpret_real): New function.
5632 (native_interpret_complex): New function.
5633 (native_interpret_vector): New function.
5634 (fold_view_convert_expr): New function to constant fold/evaluate
5635 a VIEW_CONVERT_EXPR of a suitable constant expression.
5636 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5637 Change call of build1 to fold_build1 when constructing a
5638 VIEW_CONVERT_EXPR.
5639
5640 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
5641 Ulrich Weigand <uweigand@de.ibm.com>
5642
5643 PR target/27006
5644 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5645 to be even.
5646
5647 2006-04-13 Alan Modra <amodra@bigpond.net.au>
5648
5649 PR target/26459
5650 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5651 optimize to lo_sum for DFmode if !TARGET_FPRS.
5652
5653 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5654
5655 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5656 delete_alias_info, compute_flow_sensitive_aliasing,
5657 group_aliases): Use VEC instead of VARRAY.
5658 * tree-ssa-structalias.c (update_alias_info): Likewise.
5659 * tree-ssa-structalias.h (alias_info): Change the type of
5660 processed_ptrs to VEC(tree,heap) *.
5661
5662 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
5663
5664 PR target/27060
5665 * config/sh/lib1funcs.h: New file, broken out of:
5666 * config/sh/lib1funcs.asm.
5667 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5668 New macros.
5669 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5670 * config/sh/lib1funcs-Os-4-200.asm: New file.
5671 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5672 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5673 (EXTRA_MULTILIB_PARTS): Include it.
5674 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5675 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5676 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5677 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5678 TARGET_SH2.
5679
5680 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5681
5682 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5683 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5684 tpa_compact, root_var_init, type_var_init): Use VEC instead of
5685 VARRAY.
5686 * tree-ssa-live.h: Include vecprim.h.
5687 (tree_partition_associator_d): Change the type of
5688 first_partition to VEC(int,heap) *.
5689 (tpa_first_partition): Use VEC instead of VARRAY.
5690
5691 * Makefile.in (GTFILES): Move functions.h after tree.h.
5692 * function.c (reset_block_changes, record_block_change,
5693 check_block_change, free_block_changes): Use VEC instead of
5694 VARRAY.
5695 * function.h (function): Change the type of
5696 ib_boundaries_block to VEC(tree,gc) *.
5697 * tree-inline.c (copy_cfg_body): Initialize
5698 ib_boundaries_block to NULL instead of (varray_type) 0.
5699
5700 2006-04-12 Roger Sayle <roger@eyesopen.com>
5701
5702 * expr.c (emit_group_store): Correct operand order in call to
5703 subreg_lowpart_offset. Always create paradoxical SUBREGs with
5704 a SUBREG_BYTE of zero.
5705
5706 2006-04-12 Richard Guenther <rguenther@suse.de>
5707
5708 * profile.c (compute_branch_probabilities): Remove code
5709 encapsulated in !ir_type (), which are remanents of the
5710 removed RTL profiling code.
5711 * rtl-profile.c: Remove.
5712
5713 2006-04-12 Alan Modra <amodra@bigpond.net.au>
5714
5715 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5716 magic NULL_RTX comment.
5717 (function_arg): Store entire fp arg to mem if any part should go
5718 on stack.
5719 (rs6000_arg_partial_bytes): Adjust for above change.
5720
5721 2006-04-11 Roger Sayle <roger@eyesopen.com>
5722
5723 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5724 if it hasn't been initialized by dwarf2out_init.
5725
5726 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
5727
5728 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5729 symbolic constants in branch patterns.
5730
5731 2006-04-11 Roger Sayle <roger@eyesopen.com>
5732
5733 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5734
5735 2006-04-11 Richard Sandiford <richard@codesourcery.com>
5736
5737 PR rtl-optimization/27073
5738 * gcse.c (try_replace_reg): Revert last change. Continue to search
5739 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5740 on the former.
5741
5742 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
5743
5744 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5745 aggregate types other than record and union types.
5746 (function_arg): Likewise.
5747 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5748 small arrays.
5749 (function_value): In 64-bit mode, return objects that require it
5750 in FP registers.
5751
5752 2006-04-11 Roger Sayle <roger@eyesopen.com>
5753
5754 * dwarf2out.c (premark_used_types): Remove problematic prototype.
5755
5756 2006-04-11 Jakub Jelinek <jakub@redhat.com>
5757
5758 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5759
5760 2006-04-03 Jeff Law <law@redhat.com>
5761
5762 PR/27087
5763 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5764 alias information too.
5765
5766 2006-04-10 Mike Frysinger <vapier@gentoo.org>
5767
5768 * Makefile.in (gcc-cross): Add $(exeext) to target name.
5769
5770 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
5771
5772 PR/21391
5773 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5774 (premark_used_types_helper): New.
5775 (premark_used_types): New.
5776 (gen_subprogram_die): Call premark_used_types.
5777 (prune_unused_types_walk): Do not prune perennial dies.
5778 * function.c (used_types_insert): New.
5779 * function.h (struct function): Add used_types_hash field.
5780 (used_types_insert): Add prototype.
5781 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
5782 * c-parser.c (c_parser_cast_expression): Save casted types in used
5783 types hash table.
5784
5785 2006-04-11 Mark Mitchell <mark@codesourcery.com>
5786
5787 PR target/26459
5788 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
5789 rs6000_explicit_options.float_gprs.
5790
5791 2006-04-10 Roger Sayle <roger@eyesopen.com>
5792
5793 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
5794 from ix86_expand_vector_init_low_nonzero. Take an additional
5795 one_var argument indicating which element is non-zero. Support
5796 one_var != 0 for V4SFmode and V4SImode by permuting the result.
5797 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
5798 with one_var instead of ix86_expand_vector_init_low_nonzero.
5799
5800 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
5801
5802 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
5803 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
5804 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
5805 build/genextract.o): Depend on vecprim.h.
5806 * cfglayout.c, df-problems.c, function.c, genextract.c,
5807 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
5808 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
5809 vecprim.h.
5810 * vecprim.h: New.
5811
5812 2006-04-10 Geoffrey Keating <geoffk@apple.com>
5813
5814 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
5815 Declare VECs of this type.
5816 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
5817 (remove_children): Delete.
5818 (add_dwarf_attr): Use VEC routines.
5819 (add_AT_flag): Update for changes to add_dwarf_attr.
5820 (add_AT_int): Likewise.
5821 (add_AT_unsigned): Likewise.
5822 (add_AT_long_long): Likewise.
5823 (add_AT_vec): Likewise.
5824 (add_AT_string): Likewise.
5825 (add_AT_die_ref): Likewise.
5826 (add_AT_fde_ref): Likewise.
5827 (add_AT_loc): Likewise.
5828 (add_AT_loc_list): Likewise.
5829 (add_AT_addr): Likewise.
5830 (add_AT_lbl_id): Likewise.
5831 (add_AT_lineptr): Likewise.
5832 (add_AT_macptr): Likewise.
5833 (add_AT_offset): Likewise.
5834 (add_AT_range_list): Likewise.
5835 (get_AT): Use VEC_iterate.
5836 (remove_AT): Use VEC_ordered_remove.
5837 (free_die): Fold remove_children into here; have it use VEC_iterate.
5838 (print_die): Use VEC_iterate on attrs.
5839 (reverse_die_lists): Don't reverse attr lists.
5840 (die_checksum): Use VEC_iterate on attrs.
5841 (same_die_p): Likewise.
5842 (output_location_lists): Likewise.
5843 (build_abbrev_table): Likewise.
5844 (size_of_die): Likewise.
5845 (unmark_all_dies): Likewise.
5846 (output_abbrev_section): Likewise.
5847 (output_die): Likewise.
5848 (prune_unused_types_walk_attribs): Likewise.
5849
5850 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
5851
5852 * doc/install.texi (*-*-solaris2*): Point to the configure page.
5853
5854 2006-04-10 Jakub Jelinek <jakub@redhat.com>
5855
5856 PR debug/27057
5857 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
5858
5859 2006-04-09 Roger Sayle <roger@eyesopen.com>
5860
5861 * expr.c (store_constructor): Don't bother clearing target if
5862 we're about to assign a vector to it using vec_init_optab.
5863
5864 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
5865
5866 * tree-ssa-alias.c (lhs_may_store_to): New function.
5867 (recalculate_used_alone): Handle LHS of calls.
5868
5869 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5870
5871 PR target/27034
5872 PR target/26508
5873 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
5874 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
5875 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
5876 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
5877 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
5878 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
5879 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
5880 stubs. Add ".align 8" directives before all ".dword" directives.
5881 (GTHREAD_USE_WEAK): Revise comment.
5882 (TARGET_ATTRIBUTE_WEAK): Define.
5883 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
5884 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
5885 * stublib.c: New file.
5886
5887 PR target/26743
5888 PR target/11254
5889 PR target/10274
5890 * pa.md (cbranch patterns): Revise arguments used in calls to
5891 output_cbranch, output_bb and output_bvd. Add long branch length
5892 attributes.
5893 (fbranch patterns): Handle long branches.
5894 (jump): Revise length check. Revise arguments for output_lbranch call.
5895 Add long branch length attributes.
5896 (decrement_and_branch_until_zero): Add long branch length attributes.
5897 (output_movb, output_parallel_addb and output_parallel_movb patterns):
5898 Likewise. Revise arguments for output_parallel_addb and
5899 output_parallel_movb calls.
5900 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
5901 output_parallel_movb and output_parallel_addb): Update prototypes.
5902 * pa.c (output_cbranch): Revise arguments. Correct handling of
5903 nullification in long branches.
5904 (output_lbranch): Add new argument to control extraction of delay
5905 instruction.
5906 (output_bb): Handle long branches.
5907 (output_bvb, output_dbra, output_movb, output_parallel_movb,
5908 output_parallel_addb): Likewise.
5909
5910 2006-04-09 Richard Sandiford <richard@codesourcery.com>
5911
5912 PR rtl-optimization/27073
5913 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
5914 not REG_EQUIVs.
5915
5916 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
5917
5918 * tree.h (tree_memory_tag): Add old_used_alone.
5919 (SMT_OLD_USED_ALONE): New macro.
5920 * tree-ssa-alias.c (recalculate_used_alone): Stop
5921 marking things for renaming unnecessarily.
5922
5923 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
5924
5925 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
5926 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
5927 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
5928 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
5929 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
5930 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
5931 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
5932 spelling convensions.
5933 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
5934 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
5935 typos. Follow spelling conventions.
5936
5937 2006-04-07 DJ Delorie <dj@redhat.com>
5938
5939 * config/m32c/m32c.c (m32c_function_arg): Structures are always
5940 passed on the stack.
5941 (m32c_init_cumulative_args): When a function returns a structure,
5942 always pass the pointer to that return area on the stack.
5943 (m32c_function_arg_advance): Don't increment the parameter number
5944 if we're processing the returned structure pointer.
5945 (pushm_info): Reverse order of registers.
5946
5947 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
5948
5949 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
5950 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
5951 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
5952 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
5953 build_int_cst_type.
5954 * tree-chrec.c (chrec_fold_multiply_poly_poly,
5955 chrec_fold_multiply): Same.
5956 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
5957 force_expr_to_var_cost): Same.
5958 * tree-mudflap.c (mf_xform_derefs_1): Same.
5959 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
5960
5961 2006-04-07 David Edelsohn <edelsohn@gnu.org>
5962
5963 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
5964 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
5965 insn.
5966
5967 2006-04-07 Jan Hubicka <jh@suse.cz>
5968
5969 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
5970
5971 2006-04-07 Richard Guenther <rguenther@suse.de>
5972
5973 PR tree-optimization/26135
5974 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
5975 loads for store copy-prop.
5976 (copy_prop_visit_stmt): Likewise.
5977
5978 2006-04-05 Robert Millan <robertmh@gnu.org>
5979
5980 * config/i386/linux.h: Add a comment to mark macros that are
5981 being overriden in config/k*bsd-gnu.h.
5982 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
5983 DYNAMIC_LINKER.
5984 * config/knetbsd-gnu.h: Ditto.
5985
5986 2006-04-06 Jan Hubicka <jh@suse.cz>
5987
5988 PR profile/20815
5989 PR profile/26399
5990 * coverage.c (coverage_checksum_string): Reorganize loop to not read
5991 after buffer.
5992
5993 2006-04-06 Mike Stump <mrs@apple.com>
5994
5995 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
5996 for HAVE_nonlocal_goto to be consistent.
5997 (expand_builtin_nonlocal_goto): Likewise.
5998 (expand_builtin_strcmp): Use #ifdef instead of #if
5999 for HAVE_cmpstrnsi to be consistent.
6000
6001 2006-04-05 DJ Delorie <dj@redhat.com>
6002
6003 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
6004 vs m32c.
6005
6006 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
6007
6008 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
6009 got-relative addressing for anything but SImode.
6010
6011 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
6012 even if the calling function doesn't modify them.
6013
6014 2006-04-05 Richard Guenther <rguenther@suse.de>
6015
6016 PR tree-optimization/26919
6017 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
6018 to cgraph_estimate_size_after_inlining.
6019
6020 2006-04-05 Alan Modra <amodra@bigpond.net.au>
6021
6022 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
6023
6024 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
6025
6026 PR tree-optimization/26996
6027 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
6028 VECTOR_TYPE variables.
6029
6030 2006-04-05 Richard Guenther <rguenther@suse.de>
6031
6032 PR tree-optimization/26763
6033 * fold-const.c (fold_comparison): Move folding of
6034 PTR + CST CMP PTR + CST ...
6035 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
6036
6037 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
6038
6039 * doc/install.texi (Prerequisites): Refine some wording on
6040 bootstrapping and ksh.
6041 Move the version numbers of DejaGnu here from the testing section
6042 and fix casing of names.
6043 Fix markup and clarify wording for autogen requirements.
6044 Refer to GCJ instead of just java.
6045 Refer to SVN instead of CVS.
6046 Describe diffutils as useful instead of necessary.
6047 (Downloading the source): Refer to SVN instead of CVS.
6048 Adjust a link to our web site accordingly.
6049 (Configuration): Fix casing of Bison.
6050 (Building): Refer to SVN instead of CVS.
6051 Fix a sentence on the use of Bison and remove duplicate (and
6052 incorrect) version number of Bison requirement.
6053 Remove one redundant list of packages needed for building.
6054 (Specific): Avoid reference to CVS.
6055
6056 2006-04-04 Eric Christopher <echristo@apple.com>
6057
6058 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
6059 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
6060 (rs6000_handle_struct_attribute): New.
6061 (rs6000_ms_bitfield_layout_p): Ditto.
6062
6063 2006-04-04 Geoffrey Keating <geoffk@apple.com>
6064
6065 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
6066 NULL for dso parameter to atexit_common.
6067
6068 2006-04-04 Eric Christopher <echristo@apple.com>
6069
6070 * config/i386/i386.c (machopic_output_stub): Output \t
6071 between instructions and operands.
6072
6073 2006-04-04 David Edelsohn <edelsohn@gnu.org>
6074
6075 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
6076 satisfies_constraint_[IL] to explicit tests on value.
6077
6078 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
6079
6080 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6081 set_nb_iterations_in_loop): Use build_int_cst instead of
6082 build_int_cst_type.
6083 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
6084 build_int_cst instead of convert.
6085
6086 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
6087
6088 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
6089 new value 2 for incoming.
6090 * function.c (expand_function_start): Call struct_value_rtx
6091 with incoming as 2.
6092 * config/sparc/sparc.md: Comment updated_return.
6093 * config/sparc/sparc.opt: Add -mstd-struct-return option.
6094 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
6095 struct return if sparc_std_struct_return and incoming is 2.
6096 (print_operand): Do not adjust return if
6097 sparc_std_struct_return.
6098
6099 2006-04-04 Roger Sayle <roger@eyesopen.com>
6100
6101 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
6102 convert in the middle-end.
6103 * expr.c (store_expr, store_constructor, get_inner_reference,
6104 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
6105 Likewise.
6106 * tree.c (build_range_type): Likewise.
6107
6108 2006-04-04 Tom Tromey <tromey@redhat.com>
6109
6110 * doc/install.texi (Prerequisites): Mention jar.
6111
6112 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
6113
6114 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
6115 subsection.
6116
6117 2006-04-04 Matthias Klose <doko@debian.org>
6118
6119 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
6120 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
6121 strings.
6122
6123 2006-04-03 Geoffrey Keating <geoffk@apple.com>
6124
6125 * doc/extend.texi (Function Attributes): Rewrite visibility
6126 attribute documentation.
6127 * doc/invoke.texi (C++ Dialect Options): Rewrite
6128 -fvisibility-inlines-hidden documentation to describe something
6129 entirely different, although in practise compatible.
6130 (Code Gen Options): Warn about system headers in -fvisibility=
6131 documentation.
6132
6133 * doc/extend.texi (Other Builtins): Document that
6134 __builtin_nan is a compile-time constant only when its argument
6135 is valid.
6136
6137 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
6138
6139 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
6140 trying to remove TRUNCATE check if all bits outside the new mode
6141 are identical to the sign bit.
6142
6143 2006-04-03 Jeff Law <law@redhat.com>
6144
6145 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
6146 and operand scanning in some common cases.
6147
6148 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
6149 Dale Johannesen <dalej@apple.com>
6150
6151 PR target/19653
6152 * regclass.c (struct reg_pref): Update documentation.
6153 (regclass): Set prefclass to NO_REGS if memory is the best option.
6154 (record_reg_classes): Cope with a prefclass set to NO_REGS.
6155 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
6156 into account. For non-registers, equate an empty preferred
6157 reload class to a `!' in the constraint; move the if clause to
6158 do so after those that reject the insn.
6159 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
6160 return NO_REGS.
6161 (find_dummy_reload): Likewise.
6162 * doc/tm.texi (Register Classes): Document what it means
6163 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
6164 * config/i386/i386.c (ix86_preferred_reload_class): Force
6165 using SSE registers (and return NO_REGS for floating-point
6166 constants) if math is done with SSE.
6167 (ix86_preferred_output_reload_class): New.
6168 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
6169 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
6170 * config/i386/i386.md: Remove # register preferences.
6171
6172 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6173
6174 PR bootstrap/26992
6175 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6176 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
6177 the type of nb_iter.
6178 (instantiate_parameters_1): Convert the operands before calling
6179 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
6180 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
6181
6182 2006-04-02 Roger Sayle <roger@eyesopen.com>
6183
6184 * builtins.c (dummy_object): Use build_int_cst instead of convert.
6185 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
6186 instead of convert.
6187 * dojump.c (do_jump): Likewise.
6188 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
6189 * gimplify.c (gimple_boolify, gimplify_init_constructor,
6190 gimplify_boolean_expr): Likewise.
6191 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6192 * varasm.c (array_size_for_constructor): Likewise.
6193 * tree-object-size.c (compute_object_offset): Likewise.
6194
6195 2006-04-02 Roger Sayle <roger@eyesopen.com>
6196
6197 PR middle-end/26977
6198 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
6199 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
6200
6201 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6202
6203 PR tree-optimization/26939
6204 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
6205
6206 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6207
6208 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
6209 at_stmt. Convert the type of operands before calling
6210 build_polynomial_chrec.
6211 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
6212 add_to_evolution_1.
6213 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
6214 (instantiate_parameters_1): Convert the type of operands before calling
6215 build_polynomial_chrec.
6216 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6217 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
6218 reset_evolution_in_loop): Insert asserts to check the types of the
6219 operands.
6220 (chrec_type): Moved...
6221 (eq_evolutions_p): Use operand_equal_p.
6222 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
6223 the types of the operands.
6224 (chrec_type): ...here.
6225 * tree-data-ref.c (create_data_ref): Convert the operands before
6226 calling chrec_replace_initial_condition.
6227 (same_access_functions, analyze_subscript_affine_affine,
6228 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
6229 (compute_subscript_distance, analyze_ziv_subscript,
6230 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
6231 analyze_miv_subscript): Convert the operands before calling
6232 chrec_fold_minus or chrec_fold_plus.
6233
6234 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6235
6236 * tree-data-ref.c (compute_all_dependences): Use a pointer to
6237 the dependence_relations vector.
6238 (compute_data_dependences_for_loop): Adjust call to
6239 compute_all_dependences.
6240
6241 2006-04-01 Roger Sayle <roger@eyesopen.com>
6242 Richard Henderson <rth@redhat.com>
6243
6244 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
6245 gimple_boolify on the condition before calling gimplify_expr.
6246
6247 2006-03-31 Bob Wilson <bob.wilson@acm.org>
6248
6249 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
6250 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
6251 the frame size. Update to use the new macros.
6252 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
6253 * config/xtensa/ieee754-df.S: Likewise.
6254
6255 2006-03-31 Richard Henderson <rth@redhat.com>
6256
6257 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
6258 (make_edges): ... here. Control fallthru creation with a local
6259 variable. Do not play with fake edges.
6260 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
6261 (make_goto_expr_edges): Don't play with fake edges. Make for_call
6262 a boolean.
6263
6264 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
6265
6266 * dwarf2.h (DW64_CIE_ID): Define.
6267 * dwarf2out.c (DWARF_CIE_ID): Define.
6268 (output_call_frame_info): Output 0xffffffff before standard 8-byte
6269 length header. Use DWARF_CIE_ID.
6270 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
6271 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
6272
6273 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
6274
6275 * config/sh/linux-atomic.asm: New file.
6276 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
6277
6278 2006-03-31 DJ Delorie <dj@redhat.com>
6279
6280 * config/m32c/cond.md: Set condition flags properly throughout.
6281 * config/m32c/minmax.md: Likewise.
6282 * config/m32c/prologue.md: Likewise.
6283 * config/m32c/bitops.md: Likewise.
6284 * config/m32c/muldiv.md: Likewise.
6285 * config/m32c/mov.md: Likewise.
6286 * config/m32c/addsub.md: Likewise.
6287 * config/m32c/m32c.md: Likewise.
6288 * config/m32c/jump.md: Likewise.
6289 * config/m32c/shift.md: Likewise.
6290
6291 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
6292 conditionally output the pattern for this.
6293 * config/m32c/m32c.c (flags_needed_for_conditional): New.
6294 (m32c_compare_redundant): New.
6295 (m32c_output_compare): New.
6296 * config/m32c/m32c-protos.h (m32c_output_compare): New.
6297
6298 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
6299 dest, not src. Allow other 4-byte modes.
6300
6301 2006-03-30 Denis Chertykov <denisc@overta.ru>
6302
6303 * doc/md.texi: Refer to avr/constraints.md instead of
6304 avr/avr.h.
6305
6306 2006-03-30 Roger Sayle <roger@eyesopen.com>
6307
6308 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
6309 signed vs. unsigned comparison failures on some hosts.
6310
6311 2006-03-31 Alan Modra <amodra@bigpond.net.au>
6312
6313 PR target/26459
6314 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
6315 change to FLOAT_REGS.
6316
6317 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
6318 (rs6000_override_options): Use it.
6319 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
6320 only for -mabi=spe/no-spe and -mabi=altivec.
6321
6322 2006-03-30 Geoffrey Keating <geoffk@apple.com>
6323
6324 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
6325 !Zdynamiclib.
6326
6327 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
6328
6329 * Makefile.in: Rename docdir to gcc_docdir.
6330
6331 2006-03-30 Roger Sayle <roger@eyesopen.com>
6332
6333 PR target/17959
6334 * expr.c (emit_group_store): Optimize group stores into a pseudo
6335 register by using a paradoxical subreg to initialize the destination
6336 if the first or last member of the group specifies a "low part".
6337
6338 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6339
6340 PR target/26734
6341 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6342 * target.h (struct gcc_target.speculate_insn): Change type of the
6343 second parameter to 'int'.
6344 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
6345 the second operand of the DEPS_LIST.
6346 (copy_DEPS_LIST_list): Update reference to the second operand of the
6347 DEPS_LIST.
6348 * rtl.h (alloc_DEPS_LIST): Update signature.
6349 * sched-int.h (ds_t): Change typedef to 'int'.
6350 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6351
6352 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6353
6354 * haifa-sched.c (try_ready): Change condition to restore
6355 non-speculative pattern of the instruction.
6356 (process_insn_depend_be_in_spec): Code to keep probability of the
6357 speculative dependence non-decreasing.
6358
6359 2006-03-30 Jie Zhang <jie.zhang@analog.com>
6360
6361 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
6362 (single_move_for_movmem): ... this. Also change all uses.
6363 (bfin_expand_strmov): Renamed to...
6364 (bfin_expand_movmem): ... this. Also change all uses.
6365 * config/bfin/bfin.md (movstrsi): Renamed to...
6366 (movstrsi): ...this.
6367
6368 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
6369
6370 PR tree-optimization/26830
6371
6372 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
6373 (copy_prop_visit_stmt): Remove write-only variable ann.
6374 (init_copy_prop): Check variable loop depth here. Do not simulate
6375 memory-tag and virtual operand PHIs except for store copy prop.
6376
6377 2006-03-30 Richard Guenther <rguenther@suse.de>
6378
6379 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
6380 variants with double arguments.
6381
6382 2006-03-29 David Edelsohn <edelsohn@gnu.org>
6383
6384 * genpreds.c (write_tm_constrs_h): Delete variable p.
6385 * genconditions.c (write_header): Add tm-constrs.h to included
6386 headers.
6387 * genpeep.c (main): Add toplev.h to included headers.
6388 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
6389 (build/genpeep.o): Add toplev.h dependency.
6390 * config/rs6000/constraints.md: Add "W" constraint.
6391
6392 2006-03-29 Roger Sayle <roger@eyesopen.com>
6393
6394 * stor-layout.c (mode_for_size_tree): Remove restiction on type
6395 sizes by correctly testing whether the size fits a host integer.
6396 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
6397 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
6398 SImode range for the default sizetype and bitsizetype.
6399
6400 2006-03-29 Roger Sayle <roger@eyesopen.com>
6401
6402 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
6403 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
6404 quickly if the argument is already of the correct type.
6405 Call fold_build1 instead of build1. Tidy up blank lines.
6406
6407 2006-03-29 David Edelsohn <edelsohn@gnu.org>
6408
6409 * genemit.c (main): Add tm-constrs.h to included headers.
6410 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
6411 * genpeep.c (main): Add tm-constrs.h to included headers.
6412 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
6413 (write_tm_constrs_h): this and write complete file.
6414 (write_tm_preds_h): Do not emit satisfies_constraint fns.
6415 (write_insn_preds_c): Add tm-constrs.h to included headers.
6416 (gen_constrs): New variable.
6417 (parse_option): Parse "-c".
6418 (main): Invoke write_tm_constrs_h.
6419 * genrecog.c (write_header): Add tm-constrs.h to included headers.
6420 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
6421 (object_out_file): Add tm-constrs.h dependency.
6422 (insn-emit.o): Same.
6423 (insn-output.o): Same.
6424 (insn-peep.o): Same.
6425 (insn-preds.o): Same.
6426 (insn-recog.o): Same.
6427 (tm-constsr.h): New target.
6428 (s-constrs-h): New target.
6429
6430 * config/rs6000/constraints.md: New file.
6431 * config/rs6000/rs6000.c: Include tm-constrs.h.
6432 (num_insn_constant_wide): Convert to satisfies_constraint.
6433 (rs6000_rtx_costs): Convert to satisfies_constraint.
6434 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
6435 (CONST_OK_FOR_LETTER_P): Delete.
6436 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6437 (EXTRA_CONSTRAINT): Delete.
6438 (EXTRA_MEMORY_CONSTRAINT): Delete.
6439 (EXTRA_ADDRESS_CONSTRAINT): Delete.
6440 * config/rs6000/predicates.md: Convert to satisfies_constraint.
6441 * config/rs6000/rs6000.md: Include constraints.md. Convert to
6442 satisfies_constraint.
6443
6444 * config/i386/i386.c: Include tm-constrs.h.
6445
6446 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6447
6448 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6449 * tree-data-ref.c (find_data_references_in_loop,
6450 compute_data_dependences_for_loop): Use pointers to VEC.
6451 (analyze_all_data_dependences): Adjust calls.
6452 * tree-data-ref.h (find_data_references_in_loop,
6453 compute_data_dependences_for_loop): Adjust declarations.
6454 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6455 compute_data_dependences_for_loop.
6456
6457 2006-03-29 Paul Brook <paul@codesourcery.com>
6458
6459 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6460 (movdf_vfp): Ditto.
6461
6462 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6463
6464 PR tree-optimization/26859
6465 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6466 division by zero.
6467 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6468 for the step after fold_convert.
6469
6470 2006-03-29 Paul Brook <paul@codesourcery.com>
6471
6472 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6473 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6474
6475 2006-03-29 Paul Brook <paul@codesourcery.com>
6476
6477 PR middle-end/23623
6478 * targhooks.c (default_narrow_bitfield): New fuction.
6479 * targhooks.h (default_narrow_bitfield): add prototype.
6480 * target.h (gcc_target): Add narrow_volatile_bitfield.
6481 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6482 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6483 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6484 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6485
6486 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
6487
6488 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6489 tmake_file.
6490 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6491 (NR_C_MODES): Add TDmode, DDmode and SDmode.
6492 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6493 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6494 (s390_function_arg_float): Allow SDmode and DDmode values to be
6495 passed in floating point registers.
6496 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6497 check with SCALAR_FLOAT_MODE_P.
6498 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6499
6500 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6501
6502 PR tree-optimization/25985
6503 * tree-ssa-loop-niter.c (number_of_iterations_le,
6504 number_of_iterations_ne): Make comments more precise.
6505 (number_of_iterations_cond): Add only_exit argument. Use the
6506 fact that signed variables do not overflow only when only_exit
6507 is true.
6508 (loop_only_exit_p): New.
6509 (number_of_iterations_exit): Pass result of loop_only_exit_p to
6510 number_of_iterations_cond.
6511
6512 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6513
6514 PR tree-optimization/26643
6515 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6516 bit_field_refs.
6517
6518 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
6519
6520 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6521 (divsi3_i4_int): Likewise.
6522
6523 2006-03-28 Roger Sayle <roger@eyesopen.com>
6524
6525 * expr.c (emit_group_store): Only create a new pseudo reg if the
6526 quantity it needs to hold isn't already a suitable pseudo.
6527
6528 2006-03-28 Jeff Law <law@redhat.com>
6529
6530 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6531 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6532
6533 2006-03-28 Roger Sayle <roger@eyesopen.com>
6534
6535 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6536 the equivalent ~X & Y, and the symmetry related transformations.
6537 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6538 ~X & Y, and symmetry related transforms.
6539
6540 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6541
6542 Revert my 2006-03-27 patches.
6543
6544 2006-03-28 Roger Sayle <roger@eyesopen.com>
6545
6546 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6547 ~(T1)X, when T1 and T2 are integer types of the same precision
6548 and (T2)X isn't an extension.
6549
6550 2006-03-28 Jeff Law <law@redhat.com>
6551
6552 PR tree-optimization/26796
6553 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6554 need EH edge cleanups rather than purging them immediately.
6555 (eliminate_degenerate_phis): Handle queued EH cleanups.
6556
6557 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
6558
6559 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6560 from parent_var.
6561
6562 2006-03-27 Roger Sayle <roger@eyesopen.com>
6563
6564 PR middle-end/22524
6565 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6566 cast BIT_NOT_EXPR operand to the correct type.
6567
6568 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
6569
6570 * tree-loop-linear.c: Don't include varray.h.
6571 (gather_interchange_stats, try_interchange_loops,
6572 linear_transform_loops): Use VEC instead of VARRAY.
6573 * lambda-mat.c: Don't include varray.h.
6574 * tree-chrec.c: Same.
6575 * lambda-trans.c: Same.
6576 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6577 VEC instead of VARRAY.
6578 * tree-vectorizer.h: Idem.
6579 * tree-data-ref.c (dump_data_references,
6580 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6581 initialize_data_dependence_relation, finalize_ddr_dependent,
6582 compute_all_dependences, find_data_references_in_loop,
6583 compute_data_dependences_for_loop, analyze_all_data_dependences,
6584 free_dependence_relation, free_dependence_relations,
6585 free_data_refs): Idem.
6586 * tree-data-ref.h (data_reference_p, subscript_p): New.
6587 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6588 VEC instead of VARRAY.
6589 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6590 (find_data_references_in_loop, compute_data_dependences_for_loop,
6591 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6592 dump_data_dependence_relations, free_dependence_relations,
6593 free_data_refs): Adjust declaration.
6594 (lambda_transform_legal_p): Move declaration here...
6595 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6596 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6597 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6598 vect_analyze_data_refs): Use VEC instead of VARRAY.
6599 * lambda.h (lambda_transform_legal_p): ...from here.
6600 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6601 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6602 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6603 tree-chrec.o): Don't depend on VARRAY_H.
6604
6605 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6606
6607 * rtl.def (Copyright): Update date.
6608 (DEPS_LIST): Change type of the second operand to 'int'.
6609 * target.h (Copyright): Update date.
6610 (struct gcc_target.speculate_insn): Change type of the second parameter
6611 to 'int'.
6612 * lists.c (Copyright): Update date.
6613 (alloc_DEPS_LIST): Change signature. Update reference to the second
6614 operand of the DEPS_LIST.
6615 (copy_DEPS_LIST_list): Update reference to the second operand of the
6616 DEPS_LIST.
6617 * rtl.h (Copyright): Update date.
6618 (alloc_DEPS_LIST): Update signature.
6619 * sched-int.h (Copyright): Update date.
6620 (ds_t): Change typedef to 'int'.
6621 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6622
6623 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6624
6625 * haifa-sched.c (Copyright): Update date.
6626 (try_ready): Change condition to restore non-speculative pattern
6627 of the instruction.
6628 (process_insn_depend_be_in_spec): Code to keep probability of the
6629 speculative dependence non-decreasing.
6630
6631 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
6632
6633 * regrename.c (replace_oldest_value_addr): Initialize a variable to
6634 shut up the compiler.
6635
6636 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
6637
6638 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6639 to use lib prefix for target.
6640 ($(T)libic_invalidate_array_4-200.a): Likewise.
6641 ($(T)libic_invalidate_array_4a.a): Likewise.
6642
6643 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
6644 J"orn Rennecke <joern.rennecke@st.com>
6645
6646 * superh.opt: New file.
6647 * sh.c (boardtype, osruntime): Remove.
6648 * superh.h (SUBTARGET_OPTIONS): Remove.
6649 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6650
6651 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
6652 arguments with ^ and/or [].
6653
6654 * config.gcc (sh-*-*): Add quoting to account for quirk of
6655 Solaris /bin/sh.
6656 Replace == with = in enable_incomplete_targets test.
6657
6658 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6659 with MASK_LITTLE_ENDIAN.
6660
6661 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6662 * config/sh/sh.opt: Added to some comments.
6663 * config/sh/superh.h: Removed some chaff.
6664
6665 * config/sh/sh.opt: Add m4-[1234]00* options.
6666 * config/sh/sh.c (sh_handle_option): Likewise.
6667 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6668 (ic_invalidate_array_4-100.o): New rule.
6669 ($(T)libic_invalidate_array_4-100.a): Likewise.
6670 (ic_invalidate_array_4-200.o): Likewise.
6671 ($(T)libic_invalidate_array_4-200.a): Likewise.
6672 (ic_invalidate_array_4a.o): Likewise.
6673 ($(T)libic_invalidate_array_4a.a): Likewise.
6674 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6675 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6676 m4-200*, and m4a*.
6677 * config/sh/crt1.asm: Merged in profiling code.
6678 * config/sh/superh.h (STARTFILE_SPEC): Override.
6679 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6680 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6681 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6682
6683 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6684 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6685 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6686
6687 * sh.opt (mpretend-cmove): New option.
6688 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6689 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6690 (movsicc): Add TARGET_PRETEND_CMOVE code.
6691
6692 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
6693
6694 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6695 s390_class_max_nregs): New function prototypes.
6696 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6697 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6698 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6699 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6700
6701 2006-03-26 Geoffrey Keating <geoffk@apple.com>
6702
6703 * dwarf2out.c (add_location_or_const_value_attribute): Call
6704 tree_add_const_value_attribute if nothing else works.
6705 (reference_to_unused): New.
6706 (rtl_for_decl_init): Use reference_to_unused to decide whether
6707 to output an initializer.
6708
6709 2006-03-27 Alan Modra <amodra@bigpond.net.au>
6710
6711 PR target/26459
6712 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6713 peephole removing spe frob_di_df_2.
6714
6715 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
6716
6717 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6718 (subscript_dependence_tester_1): Declared.
6719 (print_dir_vectors, print_dist_vectors): New.
6720 (debug_data_dependence_relation): New.
6721 (dump_data_dependence_relation): Print more details.
6722 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6723 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6724 (save_dist_v, save_dir_v, add_outer_distances,
6725 build_classic_dist_vector_1): New.
6726 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6727 Don't test for lambda_vector_lexico_pos.
6728 (same_access_functions, add_multivariate_self_dist,
6729 add_other_self_distances, dir_from_dist): New.
6730 (build_classic_dir_vector): Replace implementation almost identical to
6731 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6732 dir_from_dist.
6733 (subscript_dependence_tester_1): New.
6734 (subscript_dependence_tester): Handle the lexicographically negative
6735 distance vectors by recomputing the dependence relation.
6736 (compute_affine_dependence): Remove parameter loop_nest_depth.
6737 (compute_self_dependence): Don't call compute_subscript_distance.
6738 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6739 Add a parameter for the loop_nest.
6740 (find_loop_nest_1, find_loop_nest): New.
6741 (compute_data_dependences_for_loop): Compute the loop nest, and give
6742 up if the nest is not well formed.
6743 * tree-data-ref.h (loop_p): New.
6744 (struct data_dependence_relation): Replace size_vect field with
6745 loop_nest, a vec of loops.
6746 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6747 (DDR_LOOP_NEST): New.
6748 (print_dir_vectors, print_dist_vectors,
6749 debug_data_dependence_relation): Declared.
6750 (index_in_loop_nest): New.
6751 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6752 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6753 distance.
6754
6755 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
6756
6757 * simplify-rtx.c (simplify_relational_operation): Call
6758 simplify_relational_operation_1 even if mode is VOIDmode.
6759
6760 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
6761
6762 PR tree-optimization/26804
6763 * tree.h (DECL_CALL_CLOBBERED): New macro.
6764 (tree_decl_common): Add call_clobbered_flag.
6765 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6766 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6767 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6768 (mark_non_addressable): Ditto.
6769 * tree-ssa.c (verify_call_clobbered): New function.
6770 (verify_alias_info): Use it.
6771 * tree-pass.h (pass_reset_cc_flags): New prototype.
6772 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6773 (reset_cc_flags): New function.
6774 * passes.c (init_optimization_passes): Call reset_cc_flags after
6775 initializing referenced_vars.
6776
6777 2006-03-25 Uros Bizjak <uros@kss-loka.si>
6778 Roger Sayle <roger@eyesopen.com>
6779
6780 PR middle-end/26717
6781 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
6782 to 1.0 for non-real operands. Implement A / A optimization for
6783 complex operands.
6784
6785 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
6786
6787 * config/i386/i386.c (size_cost): Correct the comment for
6788 cost of storing fp registers.
6789 (i386_cost): Likewise.
6790 (i486_cost): Likewise.
6791 (pentium_cost): Likewise.
6792 (pentiumpro_cost): Likewise.
6793 (k6_cost): Likewise.
6794 (athlon_cost): Likewise.
6795 (k8_cost): Likewise.
6796 (pentium4_cost): Likewise.
6797 (nocona_cost): Likewise.
6798 (generic64_cost): Likewise.
6799 (generic32_cost): Likewise.
6800
6801 2006-03-24 Denis Chertykov <denisc@overta.ru>
6802
6803 * config/avr/avr-protos.h (extra_constraint): Delete.
6804 (extra_constraint_Q): New declaration.
6805 * config/avr/constraints.md: New file.
6806 * config/avr/avr.md: Include it.
6807 (REG_X, REG_Y, REG_Z, REG_W): New constants.
6808 (TMP_REGNO, ZERO_REGNO): Likewise.
6809 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
6810 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
6811 (extra_constraint): Delete.
6812 (extra_constraint_Q): Test for memory constraint 'Q'.
6813 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
6814 (REG_CLASS_FROM_LETTER): Delete.
6815 (CONST_OK_FOR_LETTER_P): Delete.
6816 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6817 (EXTRA_CONSTRAINT): Delete.
6818 (TMP_REGNO): Delete.
6819 (ZERO_REGNO): Delete.
6820
6821 2006-03-24 Jeff Law <law@redhat.com>
6822
6823 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
6824 directly. Call mark_new_vars_to_rename slightly earlier.
6825
6826 2006-03-24 Geoffrey Keating <geoffk@apple.com>
6827
6828 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
6829 (is_cxx): Likewise.
6830 (gen_compile_unit_die): Use new language types for Objective-C and
6831 Objective-C++.
6832 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
6833 DW_LANG_C_plus_plus.
6834
6835 PR 26793
6836 * config/t-darwin (crt3.o): Work around bug 26840.
6837 * config/darwin-crt3.c: Rewrite.
6838 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
6839
6840 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
6841
6842 * doc/invoke.texi: Document -femit-class-debug-always
6843 * common.opt: Add -femit-class-debug-always.
6844
6845 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
6846
6847 * config/s390/s390.c (s390_decompose_address): Allow SImode for
6848 index and base register.
6849 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
6850 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
6851 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
6852 REGNO_OK_FOR_INDEX_P.
6853 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
6854 ADDR_REGNO_P.
6855 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
6856 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
6857 REG_OK_FOR_BASE_P): Definitions removed.
6858
6859 2006-03-24 Jakub Jelinek <jakub@redhat.com>
6860
6861 PR middle-end/26611
6862 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
6863 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
6864 set yet or weren't marked as local yet.
6865
6866 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
6867
6868 * regrename.c (scan_rtx_address): Initialize a variable to shut up
6869 the compiler.
6870
6871 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
6872
6873 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
6874 (rs6000_legitimate_small_data_p): Delete.
6875 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
6876 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
6877 and make static. Add forward declaration. Update uses.
6878 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
6879 of offsettable_memref_p.
6880 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
6881 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
6882
6883 2006-03-24 Jeff Law <law@redhat.com>
6884
6885 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
6886 around bug in immediate-use iterator.
6887
6888 2006-03-24 Alan Modra <amodra@bigpond.net.au>
6889
6890 PR target/26607
6891 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
6892 or __LITTLE_ENDIAN__.
6893
6894 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
6895
6896 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
6897 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
6898 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
6899 * config/sh/sh.opt (mdiv=): Amend description.
6900 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
6901 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
6902 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
6903 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
6904 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
6905 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
6906 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
6907 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
6908 TARGET_DIVIDE_CALL_FP.
6909
6910 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6911
6912 * haifa-sched.c (choose_ready): Fix type of the local variable.
6913 Move local variables. Add comment.
6914 (check_reg_live): Change signature. Make callable from debugger.
6915 * sched-int.h (check_reg_live): Update signature.
6916 * sched-ebb.c (check_reg_live): Update parameters.
6917 * sched-rgn.c (check_reg_live): Ditto.
6918 (region_head_or_leaf_p): Check pointer before dereferencing.
6919 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
6920 before reload on optimization levels below 1.
6921
6922 2006-03-23 Richard Henderson <rth@redhat.com>
6923
6924 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
6925 tls symbols.
6926
6927 PR target/26347
6928 * config/alpha/predicates.md (local_symbolic_operand): Reject
6929 weak symbols.
6930
6931 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
6932
6933 PR tree-opt/26795
6934 * tree-ssa-pre.c (create_value_expr_from): Don't reject
6935 expressions which have overflowed constants.
6936
6937 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6938
6939 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
6940
6941 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6942
6943 * cfgloopmanip.c (create_loop_notes): Removed.
6944 * final.c (final_scan_insn): Do not handle loop notes.
6945 * jump.c (squeeze_notes): Ditto.
6946 * cfglayout.c (skip_insns_after_block,
6947 duplicate_insn_chain): Ditto.
6948 * cfgcleanup.c (rest_of_handle_jump2): Do not call
6949 create_loop_notes.
6950 * cfgloop.h (create_loop_notes): Declaration removed.
6951
6952 2006-03-23 Richard Sandiford <richard@codesourcery.com>
6953
6954 * varasm.c (output_constant_pool): Restore fnname and fndecl
6955 arguments.
6956 (assemble_start_function): Adjust call accordingly.
6957 (assemble_end_function): Likewise.
6958
6959 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6960
6961 PR mudflap/26789
6962 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
6963
6964 PR mudflap/26790
6965 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
6966
6967 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6968
6969 PR driver/22600
6970 * system.h (ICE_EXIT_CODE): New macro.
6971 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
6972 (diagnostic_action_after_output): Likewise.
6973 * gcc.c (fatal_ice): New function.
6974 (execute): Use it instead of fatal.
6975 (fancy_abort): Likewise.
6976 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
6977
6978 2006-03-22 Jeff Law <law@redhat.com>
6979
6980 * loop-unroll.c (analyze_iv_to_split_insn): Handle
6981 iv_analyze_result returning false.
6982
6983 2006-03-22 Jie Zhang <jie.zhang@analog.com>
6984
6985 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
6986
6987 2006-03-22 Richard Henderson <rth@redhat.com>
6988
6989 PR middle-end/26084
6990 * except.c (duplicate_eh_regions_0): New.
6991 (duplicate_eh_region_1): Duplicate the children of the node as
6992 well as the node itself. Link them up properly.
6993 (duplicate_eh_region_2): Merge into ...
6994 (duplicate_eh_regions): ... here. Take copy_region argument, and
6995 copy only a sub-tree if asked. Simplify copying and fixup.
6996 (eh_region_outer_p): New.
6997 * except.h (duplicate_eh_regions): Update decl.
6998 (eh_region_outer_p): Declare.
6999 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
7000 (lower_omp_master): Likewise.
7001 (lower_omp_ordered): Likewise.
7002 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
7003 (move_stmt_r): Use it to remap labels. Handle recursion vs
7004 remap_decls_p properly.
7005 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
7006 (find_outermost_region_in_block): New.
7007 (new_label_mapper): New.
7008 (move_sese_region_to_fn): Copy eh information to the new function
7009 properly.
7010 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
7011 argument.
7012 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
7013 number.
7014
7015 2006-03-22 Richard Sandiford <richard@codesourcery.com>
7016
7017 * doc/md.texi (-mshared): Mention that -mshared code can be linked
7018 into shared libraries.
7019
7020 2006-03-22 Richard Sandiford <richard@codesourcery.com>
7021
7022 * doc/md.texi: Refer to i386/constraints.md instead of
7023 i386/predicates.md.
7024 * config/i386/constraints.md: New file, extracted from...
7025 * config/i386/predicates.md: ...here.
7026 * config/i386/i386.md: Include constraints.md.
7027
7028 2006-03-21 Jason Merrill <jason@redhat.com>
7029
7030 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
7031
7032 PR middle-end/20297
7033 * expr.c (init_block_move_fn): Force default visibility.
7034 (init_block_clear_fn): Likewise.
7035 * builtins.c (expand_builtin_fork_or_exec): Likewise.
7036 * targhooks.c (default_external_stack_protect_fail): Likewise.
7037
7038 2006-03-21 Richard Sandiford <richard@codesourcery.com>
7039
7040 * config/mips/predicates.md (const_call_insn_operand): Allow direct
7041 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
7042 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
7043 Use TARGET_OLDABI instead of !TARGET_NEWABI.
7044 (loadgp): Use mips_current_loadgp_style.
7045 (loadgp_noshared): New pattern.
7046 (sibcall_internal): Use MIPS_CALL.
7047 (sibcall_value_internal): Likewise.
7048 (sibcall_value_multiple_internal): Likewise.
7049 (call_internal): Likewise.
7050 (call_value_internal): Likewise.
7051 (call_value_multiple_internal): Likewise.
7052 (call_split): Use MIPS_CALL and add an 'S' constraint.
7053 (call_value_split): Likewise.
7054 (call_value_multiple_split): Likewise.
7055 * config/mips/mips.opt (-mabicalls): Tweak docstring.
7056 (-mshared): New option.
7057 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
7058 (mips_current_loadgp_style): Declare.
7059 * config/mips/mips.c (mips_classify_symbol): Avoid using
7060 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
7061 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
7062 TARGET_ABSOLUTE_ABICALLS.
7063 (override_options): Adjust comments. Improve the warning that is
7064 issued when -mabicalls and -G are used together.
7065 (mips_file_start): Remove comment.
7066 (mips_current_loadgp_style): New function.
7067 (mips_gnu_local_gp): New variable.
7068 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
7069 LOADGP_ABSOLUTE.
7070 (mips_output_function_prologue): Use mips_current_laodgp_style.
7071 (mips_expand_prologue): Call mips_emit_loadgp before emitting
7072 the cprestore instruction.
7073 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
7074 live for TARGET_ABSOLUTE_ABICALLS.
7075 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
7076 (ASM_SPEC): Pass down -mshared and -mno-shared.
7077 (MIPS_CALL): New macro.
7078 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
7079 definition.
7080 * doc/invoke.texi (-mabicalls): Update documentation.
7081 (-mshared): Document.
7082
7083 2006-03-21 Steve Ellcey <sje@cup.hp.com>
7084
7085 * config/ia64/unwind-hpux.c: New file.
7086 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
7087
7088 2006-03-21 Steve Ellcey <sje@cup.hp.com>
7089
7090 PR libgomp/26384
7091 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
7092
7093 2006-03-21 Jeff Law <law@redhat.com>
7094
7095 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
7096 type conversions of a VR_VARYING source to a wider type.
7097
7098 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
7099
7100 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
7101 tm_file on Solaris 10 and later.
7102 (sparc64-*-solaris2*): Likewise.
7103 (sparc-*-solaris2*): Likewise.
7104 * config/sol26.h: Rename to config/sol2-6.h.
7105 * config/sol2-10.h: New file.
7106
7107 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
7108
7109 PR tree-opt/26781
7110 * tree-ssa-pre.c (create_component_ref_by_pieces):
7111 Handle STRING_CST.
7112
7113 2006-03-21 Jakub Jelinek <jakub@redhat.com>
7114
7115 PR c++/26690
7116 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
7117 return it immediately.
7118
7119 2006-03-21 Michael Matz <matz@suse.de>
7120
7121 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
7122 New members.
7123 (remove_arc, add_arc): Update num_out_arcs member.
7124 (set_out_arc_insns_equiv_num): Returns nothing instead of number
7125 of out arcs.
7126 (cache_presence): New function.
7127 (compare_states_for_equiv): New function.
7128 (state_is_differed): Don't take number of outargs, adjust callers.
7129 Use new invariant for speeding up.
7130 (init_equiv_class): Create initial classes based on sorted
7131 input.
7132 (partition_equiv_class): Don't track out_arcs_num.
7133 (evaluate_equiv_classes): Call cache_presence on all states and
7134 sort them.
7135
7136 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
7137
7138 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
7139 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
7140 (bfin_valid_reg_p): Test for pseudos explicitly and use only
7141 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
7142 callers changed.
7143 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
7144 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
7145 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
7146 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7147 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
7148 macros.
7149 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
7150 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
7151 (REGNO_REG_CLASS): ARGP is in PREGS.
7152 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
7153 IREGS.
7154 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
7155 to deal with those addresses.
7156 * addresses.h: New file.
7157 * caller-save.c: Include "addresses.h".
7158 (init_caller_save): Use new base_reg_class function.
7159 * rtl-factoring.c: Include "addresses.h".
7160 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
7161 * recog.c: Include "addresses.h".
7162 (preprocess_constraints): Use new base_reg_class function.
7163 * regrename.c: Include "addresses.h".
7164 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
7165 functions. Keep track of a new var INDEX_CODE to compute valid
7166 classes.
7167 (replace_oldest_value_addr): Likewise.
7168 (replace_oldest_value_mem): Use base_reg_class.
7169 * reload.c: Include "addresses.h".
7170 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
7171 (find_reloads): Use new base_reg_class function.
7172 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
7173 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
7174 all callers and prototype changed.
7175 * reload1.c: Include "addresses.h".
7176 (maybe_fix_stack_asms): Use base_reg_class.
7177 * regclass.c: Include "addresses.h".
7178 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
7179 (init_reg_autoinc): Use new base_reg_class function.
7180 (record_reg_classes): Likewise.
7181 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
7182 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
7183 Use new args to compute necessary class.
7184
7185 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
7186 regrename.o, rtl-factoring.o): Update dependencies.
7187 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
7188 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
7189 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
7190 REG_OK_FOR_INDEX_P): Delete documentation.
7191
7192 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
7193
7194 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
7195 from V7 to V9 for Solaris 7 and above.
7196
7197 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
7198
7199 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
7200 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
7201 argument pointers may not alias any other storage.
7202 * common.opt: Define option -fargument-noalias-anything.
7203 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
7204 alias semantics is specified by flag_argument_noalias > 2.
7205
7206 2006-03-20 Jeff Law <law@redhat.com>
7207
7208 * tree-pass.h (pass_phi_only_copy_prop): Delete.
7209 (pass_phi_only_cprop): Declare.
7210 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
7211 with phi_only_cprop
7212 * tree-ssa-dom.c (degenerate_phi_result): New function.
7213 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
7214 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
7215 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
7216 (eliminate_degenerate_phis): Likewise.
7217 (pass_phi_only_cprop): New pass descriptor.
7218 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
7219 support code. Callers updated.
7220 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
7221 (store_copy_prop): Likewise.
7222 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
7223
7224 2006-03-20 Jason Merrill <jason@redhat.com>
7225
7226 PR c++/21764
7227 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
7228 (push_visibility, pop_visibility): Likewise.
7229 * c-pragma.h: Declare them.
7230
7231 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
7232
7233 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
7234
7235 * config/sh/sh.c (find_regmode_weight): Change the type of the first
7236 parameter and use get_ebb_head_tail.
7237 (sh_md_init_global): Adjust uses of find_regmode_weight.
7238
7239 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
7240
7241 * function.h (struct function) <x_tail_recursion_reentry>:
7242 Rename to x_stack_check_probe_note.
7243 (tail_recursion_reentry): Rename to stack_check_probe_note.
7244 * function.c: Replace tail_recursion_reentry with
7245 stack_check_probe_note everywhere.
7246 (expand_function_start): Only emit a note for
7247 stack_check_probe_note with -fstack-protect.
7248 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
7249
7250 * emit-rtl.c (remove_unnecessary_notes): Remove.
7251 (pass_remove_unnecessary_notes): Remove.
7252 * rtl.h (remove_unnecessary_notes): Remove prototype.
7253 * final.c (final_start_function): Don't call remove_unnecessary_notes.
7254 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
7255 * passes.c (pass_remove_unnecessary_notes): Don't run it.
7256
7257 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
7258
7259 PR tree-opt/26629
7260 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
7261 (valid_in_set): Handle ARRAY_REF.
7262 Change "if min_variant or VH" to asserts.
7263 (create_component_ref_by_pieces): Handle ARRAY_REF.
7264 (create_expression_by_pieces): Likewise.
7265 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
7266
7267 2006-03-20 David Edelsohn <edelsohn@gnu.org>
7268
7269 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
7270 is operand of switch, not str[0].
7271
7272 2006-03-20 Alan Modra <amodra@bigpond.net.au>
7273
7274 * config/rs6000/rs6000.c (rs6000_handle_option): Use
7275 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
7276
7277 2006-03-19 David Edelsohn <edelsohn@gnu.org>
7278
7279 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
7280 end of insn_extra_address_constraint declaration.
7281
7282 2006-03-19 David Edelsohn <edelsohn@gnu.org>
7283
7284 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
7285 (no-sum-in-toc): Same.
7286 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
7287 variables.
7288 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
7289 NO_FP_IN_TOC for -fPIC instead of mask.
7290
7291 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
7292 (BOOT_LDFLAGS): Delete.
7293 (LDFLAGS): Delete.
7294 * config/rs6000/t-aix52: Same.
7295
7296 * config/rs6000/rs6000.md (store_multiple_power): Delete.
7297 (stmsi[345678]_power): New.
7298
7299 2006-03-17 Steve Ellcey <sje@cup.hp.com>
7300
7301 * config/ia64/ia64.opt: Add empty line to end of file.
7302
7303 2006-03-17 Richard Guenther <rguenther@suse.de>
7304
7305 PR middle-end/26721
7306 * builtins.c (get_pointer_alignment): For component style references
7307 adjust alignment to the component type alignment. Make sure
7308 to adjust alignment for component access of constants.
7309
7310 2006-03-17 David Edelsohn <edelsohn@gnu.org>
7311
7312 * config/rs6000/rs6000.md (strlensi): Emit barrier after
7313 unconditional jump.
7314
7315 2006-03-17 Paul Brook <paul@codesourcery.com>
7316
7317 * doc/install.texi: Docuemnt --with-mode.
7318 * config.gcc: Add --with-mode for arm*-*-*.
7319 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
7320
7321 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
7322
7323 * sh.c (max_labelno_before_reorg): New variable.
7324 (sh_reorg): Initialize it.
7325 (find_barrier): Check max_labelno_before_reorg before using
7326 label_to_alignment. Take length of explicit alignment insns
7327 into account. When seeing a UNSPECV_CONST_END, return it.
7328
7329 * sh.c (fixup_mova): Set mode of affected label to QImode.
7330 (untangle_mova): New function.
7331 (find_barrier): Use it. Check mode of label before decrementing
7332 num_mova.
7333 (sh_reorg): Likewise.
7334 Set mode of all insns back to VOIDmode.
7335
7336 * sh.c (MOVA_LABELREF): New macro.
7337 (mova_p, fixup_mova, sh_reorg): Use it.
7338 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
7339 ADDR_DIFF_VEC matches mova.
7340
7341 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
7342
7343 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7344 with ATTRIBUTE_UNUSED.
7345
7346 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
7347
7348 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7349 pointer, instead of assuming it is possible to derive the
7350 correct args size from a call insn.
7351
7352 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7353
7354 * rtl.h (CONST_INT_P): Define.
7355 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7356 instead of GET_CODE(x) == CONST_INT.
7357 (vax_rtx_costs): Likewise.
7358 (vax_output_int_move): Likewise.
7359 (vax_output_int_add): Likewise.
7360 (legitimate_constant_address_p): Likewise.
7361 (index_term_p): Likewise.
7362 * config/vax/vax.h (PRINT_OPERAND): Likewise.
7363 * config/vax/vax.md (and<mode>3): Likewise.
7364 (ashrsi3): Likewise.
7365 (extv): Likewise.
7366 (movstricthi): Likewise.
7367 (movstrictqi): Likewise.
7368 (rotrsi3): Likewise.
7369 (five unnamed insns): Likewise.
7370
7371 2006-03-16 Geoffrey Keating <geoffk@apple.com>
7372
7373 * doc/tm.texi (SDB and DWARF): Add extra parameter to
7374 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
7375 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
7376 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
7377 Pass to ASM_OUTPUT_DWARF_OFFSET.
7378 * dwarf2out.c (debug_frame_section): New.
7379 (output_call_frame_info): Use debug_frame_section. Pass it to
7380 dw2_asm_output_offset.
7381 (output_die): Pass appropriate section to dw2_asm_output_offset.
7382 (output_compilation_unit_header): Likewise.
7383 (output_pubnames): Likewise.
7384 (output_aranges): Likewise.
7385 (enum dw_val_class): Break dw_val_class_lbl_offset into
7386 dw_val_class_lineptr and dw_val_class_macptr.
7387 (add_AT_lbl_offset): Delete.
7388 (add_AT_lineptr): New.
7389 (add_AT_macptr): New.
7390 (AT_lbl): Expect a lineptr or macptr.
7391 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
7392 (attr_checksum): Likewise.
7393 (same_dw_val_p): Likewise.
7394 (size_of_die): Likewise.
7395 (value_format): Likewise.
7396 (output_die): Likewise.
7397 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
7398 add_AT_lbl_offset.
7399 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7400 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
7401 * config/darwin-protos.h (darwin_file_start): New.
7402 (darwin_asm_output_dwarf_offset): New.
7403 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7404 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
7405 darwin_file_start.
7406 * config/darwin.c (darwin_emit_unwind_label): Don't output label
7407 if not EH section; simplify.
7408 (darwin_file_start): New.
7409 (darwin_asm_output_dwarf_offset): New.
7410 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
7411 mark as 'debug'.
7412 (DEBUG_INFO_SECTION): Likewise.
7413 (DEBUG_ABBREV_SECTION): Likewise.
7414 (DEBUG_ARANGES_SECTION): Likewise.
7415 (DEBUG_MACINFO_SECTION): Likewise.
7416 (DEBUG_LINE_SECTION): Likewise.
7417 (DEBUG_LOC_SECTION): Likewise.
7418 (DEBUG_PUBNAMES_SECTION): Likewise.
7419 (DEBUG_STR_SECTION): Likewise.
7420 (DEBUG_RANGES_SECTION): Likewise.
7421 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
7422 (ASM_OUTPUT_DWARF_OFFSET): New.
7423
7424 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
7425
7426 * config.gcc (tm_defines): Always add to previous value rather
7427 than replacing it.
7428
7429 2006-03-16 Richard Sandiford <richard@codesourcery.com>
7430
7431 * config/mips/predicates.md (splittable_const_int_operand): New,
7432 split from move_operand.
7433 (splittable_symbolic_operand): New.
7434 (move_operand): Add commentary. Use splittable_const_int_operand.
7435 Inline mips_atomic_symbolic_constant_p.
7436 * config/mips/mips.md: Add combine splitters for handling moves
7437 of splittable_const_int_operands and splittable_symbolic_operands.
7438 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
7439 (mips_split_symbol): Declare.
7440 (mips_move_integer): Declare.
7441 * config/mips/mips.c (mips_split_p): Make global.
7442 (TARGET_MIN_ANCHOR_OFFSET): Override default.
7443 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
7444 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
7445 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7446 (mips_offset_within_object_p): Handle block symbols.
7447 (mips_atomic_symbolic_constant_p): Delete.
7448 (mips_cannot_force_const_mem): Return false for constants that
7449 mips_legitimize_move can handle.
7450 (mips_use_blocks_for_constant_p): New function.
7451 (mips_split_symbol): Make global.
7452 (mips_move_integer): Likewise. Add a temporary register argument.
7453 (mips_legitimize_const_move): Use splittable_const_int_operand and
7454 splittable_symbolic_operand.
7455 (mips_use_anchors_for_symbol_p): New function.
7456 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7457 (mips_split_p): Declare.
7458
7459 2006-03-16 Richard Sandiford <richard@codesourcery.com>
7460
7461 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7462 (mips*-*-linux*): Likewise.
7463
7464 2006-03-16 Roger Sayle <roger@eyesopen.com>
7465 Daniel Speyer <dspeyer@wam.umd.edu>
7466
7467 PR middle-end/18259
7468 * tree-dump.c (dump_real): New function.
7469 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7470 * Makefile.in (REAL_H): New macro for dependencies on real.h.
7471 (tree-dump.o): Add $(REAL_H) to the dependencies.
7472
7473 2006-03-16 Roger Sayle <roger@eyesopen.com>
7474
7475 PR middle-end/21781
7476 * real.c (real_from_string): If the mantissa is zero, don't bother
7477 parsing the exponent as the result should always be zero.
7478
7479 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
7480
7481 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7482
7483 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7484
7485 * config/ia64/ia64.c (stops_p): Added explicit initialization.
7486 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7487 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7488 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7489 ia64_sched_finish_global): New static functions to implement
7490 hooks from gcc_target.sched.
7491 (spec_check_no, max_uid, pending_data_specs): New static variables.
7492 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7493 ia64_spec_check_src_p): New static functions.
7494 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7495 (TARGET_SCHED_ADJUST_COST): Removed.
7496 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7497 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7498 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7499 TARGET_SCHED_GEN_CHECK,
7500 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7501 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7502 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7503 Fixed to handle speculation checks.
7504 (rtx_needs_barrier): Fixed to handle speculative loads and
7505 their checks.
7506 (ia64_variable_issue): Added code to count speculative loads and their
7507 checks.
7508 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7509 speculative loads.
7510 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7511 New enumerations.
7512 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7513 New constants.
7514 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7515 (ia64_reorg): Reset stops_p to NULL after it is freed.
7516 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7517 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7518 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
7519 chk_a.
7520 (data_speculative, control_speculative, check_load): New attributes.
7521 (mov<mode>_advanced, mov<mode>_speculative,
7522 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7523 zero_extend<mode>di2_speculative,
7524 zero_extend<mode>di2_speculative_advanced): New patterns for
7525 data and control speculative loads.
7526 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7527 check loads.
7528 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7529 New pattern for data and control speculation checks.
7530 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7531 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7532 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7533 Auxiliary definitions for the patterns.
7534 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7535 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7536 constraints.
7537 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7538 for speculation.
7539 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7540 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7541 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7542 New resource constraints.
7543 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7544 for speculation.
7545 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7546 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7547 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7548 msched-in-control-spec, msched-ldc, msched-control-ldc,
7549 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7550 msched-prefer-non-control-spec-insns,
7551 msched-count-spec-in-critical-path): New flags to tune speculative
7552 scheduling.
7553 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7554 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7555 msched-in-control-spec, msched-ldc, msched-control-ldc,
7556 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7557 msched-prefer-non-control-spec-insns,
7558 msched-count-spec-in-critical-path): Document new flags.
7559
7560 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7561
7562 * target.h (struct spec_info_def): New opaque declaration.
7563 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7564 speculate_insn, needs_block_p, gen_check,
7565 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7566 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7567 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7568 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7569 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7570 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7571 gcc_target.sched.
7572 (TARGET_SCHED): Use new macros.
7573 * rtl.h (copy_DEPS_LIST_list): New prototype.
7574 * sched-int.h (struct sched_info): Change signature of new_ready field,
7575 adjust all initializations. New fields: add_remove_insn,
7576 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7577 region_head_or_leaf_p.
7578 (struct spec_info_def): New structure declaration.
7579 (spec_info_t): New typedef.
7580 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7581 recovery_block, orig_pat.
7582 (glat_start, glat_end): New variables declaraions.
7583 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7584 New access macros.
7585 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7586 DETACH_LIFE_INFO, USE_GLAT.
7587 (enum SPEC_SCHED_FLAGS): New enumeration.
7588 (NOTE_NOTE_BB_P): New macro.
7589 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7590 attach_life_info, debug_spec_status, check_reg_live): New functions.
7591 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7592 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7593 sched-ebb.c
7594 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7595 * ddg.c (get_block_head_tail): Adjust all uses.
7596 * modulo-sched.c (get_block_head_tail): Adjust all uses.
7597 (sms_sched_info): Initialize new fields.
7598 (contributes_to_priority): Removed.
7599 * haifa-sched.c (params.h): New include.
7600 (get_block_head_tail): Adjust all uses.
7601 (ISSUE_POINTS): New macro.
7602 (glat_start, glat_end): New global variables.
7603 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7604 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7605 old_last_basic_block, before_recovery, current_sched_info_var,
7606 rgn_n_insns, luid): New static variables.
7607 (insn_cost1): New function. Move logic from insn_cost to here.
7608 (find_insn_reg_weight1): New function. Move logic from
7609 find_insn_reg_weight to here.
7610 (reemit_notes, move_insn, max_issue): Change signature.
7611 (move_insn1): Removed.
7612 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7613 extend_bb): New static functions to support extension of scheduler's
7614 data structures.
7615 (generate_recovery_code, process_insn_depend_be_in_spec,
7616 begin_speculative_block, add_to_speculative_block,
7617 init_before_recovery, create_recovery_block, create_check_block_twin,
7618 fix_recovery_deps): New static functions to support
7619 generation of recovery code.
7620 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7621 restore_bb_notes, move_block_after_check, move_succs): New static
7622 functions to support ebb scheduling.
7623 (init_glat, init_glat1, attach_life_info1, free_glat): New static
7624 functions to support handling of register live information.
7625 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7626 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7627 add_jump_dependencies): New static functions.
7628 (check_cfg, has_edge_p, check_sched_flags): New static functions for
7629 consistancy checking.
7630 (debug_spec_status): New function to call from debugger.
7631 (priority): Added code to handle speculation checks.
7632 (rank_for_schedule): Added code to distinguish speculative instructions.
7633 (schedule_insn): Added code to handle speculation checks.
7634 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7635 Fixed to handle ebbs.
7636 (move_insn): Added code to handle ebb scheduling.
7637 (max_issue): Added code to use ISSUE_POINTS of instructions.
7638 (choose_ready): Added code to choose between speculative and
7639 non-speculative instructions.
7640 (schedule_block): Added code to handle ebb scheduling and scheduling of
7641 speculative instructions.
7642 (sched_init): Initialize new variables.
7643 (sched_finish): Free new variables. Print statistics.
7644 (try_ready): Added code to handle speculative instructions.
7645 * lists.c (copy_DEPS_LIST_list): New function.
7646 * sched-deps.c (extend_dependency_caches): New function. Move logic
7647 from create_dependency_caches to here.
7648 (get_dep_weak, ds_merge): Make global.
7649 * genattr.c (main): Code to output prototype for
7650 dfa_clear_single_insn_cache.
7651 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7652 (output_dfa_clean_insn_cache_func): Code to output
7653 dfa_clear_single_insn_cache function.
7654 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
7655 n_insns.
7656 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7657 Removed.
7658 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7659 New static variables.
7660 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7661 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7662 struct sched_info.
7663 (ebb_sched_info): Initialize new fields.
7664 (get_block_head_tail): Adjust all uses.
7665 (compute_jump_reg_dependencies): Fixed to use glat_start.
7666 (schedule_ebb): Code to remove unreachable last block.
7667 (schedule_ebbs): Added code to update register live information.
7668 * sched-rgn.c (region_sched_info): Initialize new fields.
7669 (get_block_head_tail): Adjust all uses.
7670 (last_was_jump): Removed. Adjust users.
7671 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7672 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7673 Implement new hooks.
7674 (check_dead_notes1): New static function.
7675 (struct region): New fields: dont_calc_deps, has_real_ebb.
7676 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7677 (BB_TO_BLOCK): Fixed to handle EBBs.
7678 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7679 (ebb_head): New static variable.
7680 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7681 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7682 new fields.
7683 (compute_dom_prob_ps): New assertion.
7684 (check_live_1, update_live_1): Fixed to work with glat_start instead of
7685 global_live_at_start.
7686 (init_ready_list): New assertions.
7687 (can_schedule_ready_p): Split update code to begin_schedule_ready.
7688 (new_ready): Add support for BEGIN_CONTROL speculation.
7689 (schedule_insns): Fixed code that updates register live information
7690 to handle EBBs.
7691 (schedule_region): Fixed to handle EBBs.
7692 (init_regions): Use extend_regions and check_dead_notes1.
7693 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7694 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7695 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7696 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7697 TARGET_SCHED_GEN_CHECK,
7698 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7699 TARGET_SCHED_SET_SCHED_FLAGS): Document.
7700 * doc/invoke.texi (max-sched-insn-conflict-delay,
7701 sched-spec-prob-cutoff): Document.
7702
7703 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7704
7705 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7706 inter_tick, queue_index.
7707 (struct sched_info): Change signature of init_ready_list field.
7708 Adjust all initializations.
7709 (RESOLVED_DEPS): New access macro.
7710 (ready_add): Remove prototype.
7711 (try_ready): Add prototype.
7712 * sched-rgn.c (init_ready_list): Use try_ready.
7713 (schedule_region): Initialize
7714 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7715 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
7716 (init_ready_list): Use try_ready.
7717 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7718 * lists.c (remove_list_elem): Remove `static'.
7719 (remove_free_INSN_LIST_elem): New function.
7720 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7721 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7722 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7723 New constants.
7724 (readyp): New variable.
7725 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7726 change_queue_index, resolve_dep): New static functions.
7727 (try_ready): New function. Adjust callers in sched-rgn.c and
7728 sched-ebb.c to use it instead of ready_add.
7729 (clock_var): Move at the begining of file.
7730 (rank_for_schedule): Fix typo.
7731 (queue_insn): Add assertion. Handle QUEUE_INDEX.
7732 (ready_lastpos): Enforce assertion.
7733 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
7734 update all callers.
7735 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7736 (schedule_insn): Rewrite to use try_ready and resolve_dep.
7737 (queue_to_ready): Use free_INSN_LIST_list.
7738 (early_queue_to_ready): Fix typo.
7739 (schedule_block): Init readyp. Move init_ready_list call after the
7740 initialization of clock_var. Fix error in rejecting insn by
7741 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
7742 that previously corrected INSN_TICKs. Add code for handling
7743 QUEUE_INDEX.
7744 (set_priorities): Fix typo.
7745 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7746 Clarify comment and code that keeps current_sched_info->next_tail
7747 non-null.
7748
7749 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7750
7751 * sched-rgn.c (extend_rgns): New static function.
7752 (find_rgns): Use it.
7753 (gather_region_statistics, print_region_statistics): New static
7754 functions.
7755 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7756 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7757
7758 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7759 Andrey Belevantsev <abel@ispras.ru>
7760
7761 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7762 * lists.c (unused_deps_list): New variable.
7763 (free_list): Add assertions to verify the proper distinguishing
7764 between INSN_LISTs and DEPS_LISTs.
7765 (find_list_elem, remove_list_elem, remove_list_node): New static
7766 functions.
7767 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7768 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7769 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7770 (alloc_INSN_LIST): Assert that the list we're working on is indeed
7771 an INSN_LIST.
7772 (free_INSN_LIST_node): Likewise.
7773 * modulo-sched.c (current_sched_info): Initialize flags field.
7774 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7775 * rtl.def (DEPS_LIST): Define.
7776 * rtl.h: Declare new functions from lists.c.
7777 * sched-deps.c (spec_dependency_cache): New static variable.
7778 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
7779 (add_dependence): Change return type to void. Move the logic to ...
7780 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
7781 (delete_all_dependences): Add comment about forward_dependency_cache.
7782 Handle spec_dependency_cache. Handle DEPS_LISTs.
7783 (fixup_sched_groups): Clarify the change of priority of output
7784 and anti dependencies.
7785 (sched_analyze_2): Adjust add_dependence calls to create data
7786 speculative dependence.
7787 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
7788 Adjust all callers. Handle DEPS_LISTS.
7789 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
7790 presence of speculation.
7791 (init_dependency_caches, free_dependency_caches):
7792 Handle spec_dependency_cache.
7793 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
7794 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
7795 New static functions.
7796 (add_or_update_back_dep, add_or_update_back_forw_dep,
7797 add_back_forw_dep, delete_back_forw_dep): New functions.
7798 * sched-int.h (ds_t, dw_t): New typedefs.
7799 (struct sched_info): Add new field flags.
7800 (struct haifa_insn_data): Add new bitfield has_internal_dep.
7801 Prototype new sched-deps.c functions.
7802 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
7803 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
7804 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
7805 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
7806 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
7807 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
7808 New constants.
7809 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
7810 New enums.
7811 * sched-rgn.c (current_sched_info): Initialize flags field.
7812 (schedule_insns): Initialize current_sched_info before the sched_init
7813 call.
7814 * sched-ebb.c (current_sched_info): Initialize flags field.
7815 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
7816 Call add_or_update_back_dep instead of add_dependence.
7817 Create control speculative dependencies.
7818 (schedule_insns): Initialize current_sched_info before the sched_init
7819 call.
7820
7821 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
7822
7823 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
7824 fs->signal_frame.
7825 (sh_fallback_frame_state): Likewise.
7826
7827 2006-03-15 Geoffrey Keating <geoffk@apple.com>
7828
7829 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
7830 Do switch on default_use_cxa_atexit.
7831 (powerpc*-*-darwin*): Build crt2.o on powerpc.
7832 * config/darwin-crt3.o: New.
7833 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
7834 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
7835 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
7836 OS version.
7837 * config/rs6000/t-darwin: Move crt2.o building to here.
7838 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
7839 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
7840 of __cxa_atexit.
7841
7842 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7843
7844 * config/vax/vax.c (nonindexed_address_p): Change logical negation
7845 from '! xxx' to '!xxx' for coding-style conformance.
7846 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
7847 (EXTRA_CONSTRAINT): Likewise.
7848 * config/vax/vax.md (four unnamed insns): Likewise.
7849
7850 2006-03-15 Paul Brook <paul@codesourcery.com>
7851
7852 * config/arm/arm.c (minipool_pad): New.
7853 (add_minipool_forward_ref): Include pool alignment padding in address
7854 calculation.
7855 (push_minipool_fix): Set minipool_pad.
7856 (minipool_pad): Ditto.
7857
7858 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7859
7860 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
7861 instead of GET_CODE() == MEM and REG_P() instead of
7862 GET_CODE() == REG.
7863 (print_operand_address): Likewise.
7864 (vax_address_cost): Likewise.
7865 (vax_rtx_costs): Likewise.
7866 (vax_notice_update_cc): Likewise.
7867 (vax_output_int_add): Likewise.
7868 (INDEX_REGISTER_P): Likewise.
7869 (BASE_REGISTER_P): Likewise.
7870 (nonindexed_address_p): Likewise.
7871 (vax_mode_dependent_address_p): Likewise.
7872 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
7873 (PRINT_OPERAND): Likewise.
7874 * config/vax/vax.md (ashlsi3): Likewise.
7875 (ashlsi3): Likewise.
7876 (some more unnamed insns): Likewise.
7877
7878 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
7879
7880 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
7881 iterator-style macro.
7882 (mark_control_dependent_edges_necessary): Update the use of
7883 EXECUTE_IF_CONTROL_DEPENDENT.
7884
7885 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
7886
7887 * config/sh/predicates.md (cache_address_operand): Special.
7888 (ua_address_operand): Likewise.
7889
7890 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
7891
7892 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
7893 loop notes.
7894 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
7895
7896 2006-03-15 Andreas Schwab <schwab@suse.de>
7897
7898 * gensupport.c (identify_predicable_attribute): Don't free p_false
7899 when it is still in use.
7900
7901 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
7902
7903 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
7904 the default setting here.
7905
7906 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
7907
7908 * tree-pass.h (pass_cfg): Remove.
7909 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
7910 * passes.c (pass_cfg): Don't run it.
7911
7912 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
7913
7914 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
7915 * reg-stack.c (stack_regs_mentioned_data): Change the type to
7916 VEC(char,heap) *.
7917 (stack_regs_mentioned): Update the uses of
7918 stack_regs_mentioned_data. Don't access the array beyond its
7919 end.
7920 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
7921 Don't include gt-reg-stack.h.
7922
7923 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
7924 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
7925
7926 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
7927
7928 PR middle-end/26684
7929 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
7930 STACK_REGS.
7931
7932 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7933
7934 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
7935
7936 2006-03-14 Richard Guenther <rguenther@suse.de>
7937
7938 PR tree-optimization/26672
7939 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
7940 SSA form.
7941
7942 2006-03-14 Richard Guenther <rguenther@suse.de>
7943
7944 PR tree-optimization/26667
7945 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
7946 node for the callees. Always allow inlining if it will shrink
7947 the function size.
7948
7949 2006-03-14 Richard Guenther <rguenther@suse.de>
7950
7951 PR middle-end/26659
7952 * builtins.c (get_pointer_alignment): Prefer alignment
7953 information from decls over that from types.
7954
7955 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
7956
7957 PR target/26657
7958 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
7959
7960 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
7961
7962 * config/rs6000/rs6000.opt (mdlmzb): New option.
7963 (msched-prolog, msched-epilog): Use Var not Mask.
7964 * doc/invoke.texi (-mdlmzb): Document.
7965 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
7966 MASK_SCHED_PROLOG.
7967 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
7968 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
7969
7970 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
7971
7972 PR rtl-optimization/25739
7973 * bt-load.c (augment_live_range): Free tos pointer.
7974
7975 * gensupport.c (identify_predicable_attribute): Free
7976 p_false pointer.
7977 * gcov.c (create_file_names): Free name pointer.
7978
7979 2006-03-13 Roger Sayle <roger@eyesopen.com>
7980
7981 PR middle-end/26557
7982 * stmt.c (emit_case_nodes): Handle the case where the index is a
7983 CONST_INT, where the comparison mode is specified by the index type.
7984
7985 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7986
7987 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
7988 is defined.
7989
7990 2006-03-13 Richard Sandiford <richard@codesourcery.com>
7991
7992 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
7993 (*branch_fp_inverted): Likewise.
7994
7995 2006-03-13 Jakub Jelinek <jakub@redhat.com>
7996
7997 PR middle-end/25989
7998 * omp-low.c (expand_omp_for_generic): Mark istart0
7999 and iend0 as addressable.
8000
8001 2006-03-13 Jie Zhang <jie.zhang@analog.com>
8002
8003 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
8004
8005 2006-03-13 Jeff Law <law@redhat.com>
8006
8007 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
8008 virtual operands are interesting.
8009 (vrp_visit_stmt): Corresponding changes.
8010
8011 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
8012
8013 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
8014 of RETS.
8015 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
8016 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
8017 * config/bfin/crti.S: Use it instead of __PIC__.
8018 * config/bfin/crtn.S: Likewise.
8019
8020 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
8021 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
8022 not if flag_pic.
8023 Lose 'G' modifier for call operand.
8024 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
8025 recognize 'G' modifier.
8026
8027 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
8028
8029 PR middle-end/18859
8030 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
8031 * stmt.c (expand_case): Likewise.
8032
8033 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8034
8035 PR rtl-optimization/26254
8036 * loop-invariant.c (seq_insns_valid_p): New function.
8037 (move_invariant_reg): Only emit new code if it is valid.
8038
8039 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8040
8041 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
8042 Removed.
8043 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
8044 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
8045 (commit_one_edge_insertion): Do not look for loop notes.
8046
8047 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8048
8049 * jump.c (follow_jumps): Do not check for loop notes. Move check for
8050 flag_test_coverage out of loop.
8051
8052 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8053
8054 * final.c (shorten_branches): Remove outdated comment, and turn
8055 the if branch that guards it to continue.
8056
8057 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8058
8059 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
8060 * cfgloop.h (struct loop): Remove unused fields.
8061
8062 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
8063
8064 * doc/invoke.texi (-fdump-rtl-loop): Remove.
8065 (-dL, -fdump-rtl-loop2): Update the dump file names
8066
8067 * doc/invoke.texi: Update dump file names.
8068
8069 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
8070
8071 * predict.c (estimate_probability): Remove.
8072 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
8073 * basic-block.h (estimate_probability): Remove prototype.
8074 * passes.c (finish_optimization_passes): Dump branch prediction or
8075 profiling heuristics to the .profile tree dump.
8076 (init_optimization_passes): Unqueue pass_branch_prob.
8077
8078 * doc/invoke.texi (-fdump-rtl-bp): Remove.
8079
8080 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8081
8082 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
8083 * rtl.h (LABEL_NEXTREF): Remove field accessor.
8084
8085 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
8086
8087 * function.h (frame_offset_overflow): Declare.
8088 * function.c (frame_offset_overflow): New function.
8089 (assign_stack_local_1): Call it to detect that the offset overflows.
8090 * cfgexpand.c (alloc_stack_frame_space): Likewise.
8091
8092 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8093
8094 * config/sh/sh.c: Include alloc-pool.h.
8095 (label_ref_list_pool): New alloc pool.
8096 (label_ref_list_t): New type for lists of labels.
8097 (struct pool_node): Make wend a label_ref_list_t.
8098 (add_constant): Use the new type, eradicate LABEL_NEXTREF
8099 references.
8100 (dump_table): Likewise.
8101 (sh_reorg): Set up the alloc pool before using add_constant and
8102 dump_table, and destroy it when finishing.
8103
8104 2006-03-11 Richard Sandiford <richard@codesourcery.com>
8105
8106 * config/mips/mips.c: Remove redundant comment.
8107
8108 2006-03-10 Jason Merrill <jason@redhat.com>
8109
8110 PR c/26004
8111 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
8112 the target was declared 'register'.
8113
8114 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
8115
8116 * genpreds.c (write_insn_constraint_len): Change definition of
8117 insn_constraint_len to return size_t to match the declaration.
8118
8119 2006-03-10 DJ Delorie <dj@redhat.com>
8120
8121 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
8122 start at zero.
8123 (m32c_expand_insv): Fix test for an AND mask.
8124
8125 2006-03-10 Richard Guenther <rguenther@suse.de>
8126
8127 PR middle-end/26565
8128 * builtins.c (get_pointer_alignment): Handle component
8129 references for field alignment.
8130
8131 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8132
8133 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
8134 when building with libgloss.
8135 (sh*elf): Implement --without-fp option.
8136 (sh64-superh-linux*): Don't multilib.
8137
8138 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8139
8140 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
8141
8142 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
8143
8144 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
8145 Set it when one of the replacement functions returned true.
8146 Return TODO_cleanup_cfg if cfgchanged is true.
8147 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
8148
8149 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
8150
8151 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
8152 instead of gen_lowpart.
8153
8154 2006-03-09 Richard Sandiford <richard@codesourcery.com>
8155
8156 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
8157 interface.
8158 (mips_output_order_conditional_branch): Declare.
8159 * config/mips/mips.h (MIPS_BRANCH): New macro.
8160 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
8161 for the comparison. Use gen_condjump.
8162 (mips_output_conditional_branch): Rework interface to take the
8163 asm templates for a direct branch and the inverse of a direct branch.
8164 (mips_output_order_conditional_branch): New function.
8165 (mips_builtin_branch_and_move): New function.
8166 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
8167 branch condition. Use gen_single_cc as the condition for
8168 __builtin_mips_upper_* or __builtin_mips_lower_*.
8169 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
8170 Use VOIDmode for the branch condition.
8171 * config/mips/predicates.md (order_operator): New predicate.
8172 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
8173 (branch_fp): Rename to...
8174 (*branch_fp): ...this. Remove mode from comparison operator.
8175 Use new mips_output_conditional_branch interface.
8176 (branch_fp_inverted): Rename to...
8177 (*branch_fp_inverted): ...this and update as for *branch_fp.
8178 (*branch_zero<mode>): Rename to...
8179 (*branch_order<mode>): ...this. Remove mode from comparison operator.
8180 Use mips_output_order_conditional_branch. Only accept ordered
8181 comparisons.
8182 (*branch_zero<mode>_inverted): Rename to...
8183 (*branch_order<mode>_inverted): ...this and update as for
8184 *branch_order<mode>.
8185 (*branch_equality<mode>): Accept zero as the second operand to
8186 the equality operator. Use the new mips_output_conditional_branch
8187 interface.
8188 (*branch_equality<mode>_inverted): Likewise.
8189 (condjump): New expander.
8190 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
8191 operator.
8192 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
8193 (bc1any2t, bc1any2f): Likewise.
8194 (single_cc): New expander.
8195 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
8196
8197 2006-03-09 Richard Sandiford <richard@codesourcery.com>
8198
8199 * doc/md.texi: Update documentation of MIPS constraints.
8200 * config/mips/constraints.md: New file.
8201 * config/mips/mips.md: Include it.
8202 * config/mips/mips.c (mips_char_to_class): Delete.
8203 (override_options): Don't initialize mips_char_to_class.
8204 * config/mips/mips.h (mips_char_to_class): Delete.
8205 (REG_CLASS_FROM_LETTER): Delete.
8206 (CONST_OK_FOR_LETTER_P): Delete.
8207 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8208 (EXTRA_CONSTRAINT_Y): Delete.
8209 (EXTRA_CONSTRAINT_STR): Delete.
8210 (CONSTRAINT_LEN): Delete.
8211 (EXTRA_MEMORY_CONSTRAINT): Delete.
8212
8213 2006-03-09 Diego Novillo <dnovillo@redhat.com>
8214
8215 * tree-cfg.c (move_block_to_fn): Remove the statements from the
8216 original fn's eh regions.
8217
8218 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
8219
8220 * fold-const.c (build_range_check): Make sure to use a valid type to
8221 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
8222 transformation.
8223
8224 (range_predecessor): New static function.
8225 (range_successor): Likewise.
8226 (merge_ranges): Use them to compute predecessors and successors of
8227 range bounds.
8228
8229 2006-03-09 Roger Sayle <roger@eyesopen.com>
8230
8231 PR middle-end/26561
8232 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
8233 X op C3, consider whether C3 overflows towards +Inf or -Inf.
8234
8235 2006-03-08 DJ Delorie <dj@redhat.com>
8236
8237 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
8238 (addpsi3): Expand to include memory operands. Remove
8239 reload-specific splits.
8240 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
8241 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
8242 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
8243 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
8244 (shift1_qi, shift1_hi, insv): New.
8245 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
8246 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
8247 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
8248 cond_to_int): New.
8249 * config/m32c/m32c-protos.h: Update as needed.
8250 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
8251 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
8252 Fail for unrecognized R* constraints.
8253 (m32c_cannot_change_mode_class): Be more picky about pseudos.
8254 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
8255 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
8256 Add Sp constraint.
8257 (m32c_init_libfuncs): New.
8258 (m32c_legitimate_address_p): Add debug wrapper.
8259 (m32c_rtx_costs): New.
8260 (m32c_address_cost): New.
8261 (conversions): Add 'B' prefix.
8262 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
8263 operands, or word regnames for QI operands. 'B' prints bit
8264 position.
8265 (m32c_expand_setmemhi): New.
8266 (m32c_expand_movmemhi): New.
8267 (m32c_expand_movstr): New.
8268 (m32c_expand_cmpstr): New.
8269 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
8270 (m32c_expand_neg_mulpsi3): Handle non-ints.
8271 (m32c_cmp_flg_0): New.
8272 (m32c_expand_movcc): New.
8273 (m32c_expand_insv): New.
8274 (m32c_scc_pattern): New.
8275 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
8276 a0/a1 out of SIregs.
8277 (STORE_FLAG_VALUE): New.
8278 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
8279 code macros.
8280 (no_insn): New.
8281 * config/m32c/mov.md: Make constraints more liberal.
8282 (zero_extendqihi2): Optimize r0/r1 case.
8283 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
8284 * config/m32c/predicates.md (m32c_any_operand): New.
8285 (m32c_nonimmediate_operand): New.
8286 (m32c_hl_operand): New.
8287 (m32c_r3_operand): New.
8288 (ap_operand): New.
8289 (ma_operand): New.
8290 (memsym_operand): New.
8291 (memimmed_operand): New.
8292 (a_qi_operand): New.
8293 (m32c_eqne_operator): New.
8294 (m32c_1bit8_operand): New.
8295 (m32c_1bit16_operand): New.
8296 (m32c_1mask8_operand): New.
8297 (m32c_1mask16_operand): New.
8298 * config/m32c/blkmov.md: New file.
8299 * config/m32c/t-m32c (MD_FILES): Add blkmov.
8300
8301 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
8302
8303 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
8304 unsigned to fix signed/unsigned comparison issue in
8305 DWARF2_FRAME_REG_OUT.
8306 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
8307 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
8308
8309 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
8310 of ptr into the ENABLE_CHECKING section.
8311
8312 2006-03-08 Jeff Law <law@redhat.com>
8313
8314 * tree-vrp.c (infer_value_range): Only count pointer uses
8315 and dereferences if -fdelete-null-pointer-checks is enabled.
8316
8317 * tree-vrp.c (find_assert_locations): Infer value ranges for
8318 single use pointers, but do not create ASSERT_EXPRs for them.
8319 When a non-null range is inferred for a pointer, backwards
8320 propagate that range to other equivalent pointers through the
8321 use-def chain.
8322
8323 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
8324
8325 PR bootstrap/26500
8326 * Makefile.in (dvi, html, install-info): Invoke the corresponding
8327 language hook targets.
8328 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
8329 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
8330 if language hook targets were missing.
8331
8332 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
8333
8334 * tree-ssa-opfinalize.h: Removed.
8335 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
8336 dependency.
8337 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
8338 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
8339 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
8340 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8341 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8342 finalize_ssa_v_must_def_ops): New.
8343
8344 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
8345
8346 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8347 block as parameter.
8348
8349 2006-03-07 Geoffrey Keating <geoffk@apple.com>
8350
8351 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8352
8353 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8354 addresses with offsets; reorganize.
8355
8356 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8357 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8358 (expand_builtin_init_dwarf_reg_sizes): Likewise.
8359
8360 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
8361
8362 PR target/26588
8363 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
8364
8365 2006-03-08 Ben Elliston <bje@au.ibm.com>
8366
8367 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
8368
8369 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
8370
8371 PR gomp/26238
8372 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
8373 expansion.
8374
8375 2006-03-07 Richard Guenther <rguenther@suse.de>
8376
8377 PR tree-optimization/26587
8378 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
8379
8380 2006-03-07 Richard Sandiford <richard@codesourcery.com>
8381
8382 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
8383
8384 2006-03-07 Richard Sandiford <richard@codesourcery.com>
8385
8386 * hooks.c (hook_bool_mode_rtx_true): New function.
8387 * hooks.h (hook_bool_mode_rtx_true): Declare.
8388 * toplev.c (compile_file): Call output_shared_constant_pool.
8389 * varasm.c (shared_constant_pool): New variable.
8390 (assemble_start_function, assemble_end_function): Remove arguments
8391 from call to output_constant_pool.
8392 (create_constant_pool): New function, split out from...
8393 (init_varasm_status): ...here.
8394 (force_const_mem): Choose between the shared and per-function constant
8395 pools. Set current_function_uses_const_pool when reusing old entries
8396 as well as when creating new ones.
8397 (mark_constant): Ignore data argument.
8398 (mark_constants): Remove pool argument.
8399 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
8400 to decide whether the function uses a constant pool.
8401 (output_constant_pool_contents): New function, split out from...
8402 (output_constant_pool): ...here.
8403 (output_shared_constant_pool): New function.
8404 (init_varasm_once): Initialize shared_constant_pool.
8405 * output.h (output_constant_pool): Delete.
8406 (output_shared_constant_pool): Declare.
8407 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
8408 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
8409
8410 2006-03-06 Nick Clifton <nickc@redhat.com>
8411
8412 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
8413 flag_strength_reduce.
8414
8415 2006-03-06 Ben Elliston <bje@au.ibm.com>
8416
8417 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
8418 x86_64-*-linux* configurations.
8419
8420 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
8421 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
8422
8423 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8424
8425 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
8426 Remove.
8427 * basic-block.h: Remove the extern for
8428 rediscover_loops_after_threading.
8429
8430 * cfgloop.c (cancel_loop): Make it static.
8431 * cfgloop.h: Remove the prototype for cancel_loop.
8432
8433 * flow.c (recompute_reg_usage): Make it static.
8434 * rtl.h: Remove the prototype for recompute_reg_usage.
8435
8436 * function.c (use_return_register): Make it static.
8437 * function.h: Remove the prototype.
8438
8439 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8440
8441 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
8442 Remove.
8443 * recog.h: Remove the prototype for
8444 validate_change_maybe_volatile.
8445
8446 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8447
8448 * rtlanal.c (replace_reg): Remove.
8449 * rtl.h: Remove the prototype for replace_reg.
8450
8451 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8452
8453 * regclass.c (reg_scan_update): Remove.
8454 (reg_scan_mark_refs): Remove the last argument.
8455 * rtl.h: Remove the prototype for reg_scan_update.
8456
8457 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8458
8459 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8460 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8461 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8462 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8463 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8464 loop-invariant.c, omp-low.c, opts.c, passes.c,
8465 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8466 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8467 tree-ssa-structalias.c, tree-ssa-threadedge.c,
8468 tree-ssa-threadupdate.c, tree-vect-patterns.c,
8469 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8470 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
8471
8472 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8473
8474 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8475 * dwarf2out.h: Remove the prototype for
8476 dwarf2out_add_library_unit_info.
8477
8478 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8479
8480 * tree.c (add_var_to_bind_expr): Remove.
8481 * tree.h: Remove the prototype for add_var_to_bind_expr.
8482
8483 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8484
8485 * regclass.c (n_non_fixed_regs): Remove.
8486 (init_reg_sets_1, globalize_reg): Remove all uses of
8487 n_non_fixed_regs.
8488 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8489
8490 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8491
8492 * rtlanal.c (insns_safe_to_move_p): Remove.
8493 * rtl.h: Remove the prototype for insns_safe_to_move_p.
8494
8495 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8496
8497 * expmed.c (expand_mult_add): Remove.
8498 * expr.h: Remove the prototype for expand_mult_add.
8499
8500 2006-03-04 Jakub Jelinek <jakub@redhat.com>
8501
8502 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8503 and REG_SAVED_VAL_EXP constants.
8504 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8505 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8506 Handle regs stored by value.
8507 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8508 (execute_cfa_program): Handle DW_CFA_val_offset,
8509 DW_CFA_val_offset_sf and DW_CFA_val_expression.
8510 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8511 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8512 (uw_install_context_1): Handle target regs stored by value.
8513
8514 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
8515
8516 * tree-sra.c (tree_sra): Return todoflags;
8517 (generate_one_element): Set TODO_update_smt_usage if needed.
8518 (pass_sra): Remove TODO_update_smt_usage.
8519 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8520 parameter.
8521 (tree_ssa_forward_propagate_single_use_vars): Return
8522 TODO_update_smt_usage if we need to update SMT usage.
8523 (pass_forwprop): Remove TODO_update_smt_usage.
8524
8525 2006-03-03 Diego Novillo <dnovillo@redhat.com>
8526
8527 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
8528 (correct_use_link): Remove reference to get_stmt_operands.
8529 (update_stmt_operands): Likewise.
8530 (get_modify_expr_operands): New function factored out of
8531 parse_ssa_operands and get_expr_operands.
8532 Try to create V_MUST_DEFs for LHS by default.
8533 (get_expr_operands) <case MODIFY_EXPR>: Call
8534 get_modify_expr_operands.
8535 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8536 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8537 (parse_ssa_operands) <case MODIFY_EXPR>: Call
8538 get_modify_expr_operands.
8539
8540 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
8541
8542 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8543 * tree-flow.h: Remove the prototype for
8544 referenced_var_lookup_if_exists.
8545
8546 2006-03-03 Steve Ellcey <sje@cup.hp.com>
8547
8548 PR rtl-optimization/26345
8549 PR target/19061
8550 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8551
8552 2006-03-03 Roger Sayle <roger@eyesopen.com>
8553
8554 PR tree-optimization/26524
8555 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8556 fold_convert to create a constant of the appropriate type.
8557
8558 2006-03-03 Richard Sandiford <richard@codesourcery.com>
8559
8560 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8561 SYMBOL_REF_IN_BLOCK_P.
8562 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8563 of SYMBOL_FLAG_IN_BLOCK.
8564 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8565 instead of SYMBOL_REF_IN_BLOCK_P.
8566 * explow.c (use_anchored_address): Likewise.
8567 * rtl.c (rtx_size): Likewise.
8568 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8569 instead of SYMBOL_FLAG_IN_BLOCK.
8570 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8571 SYMBOL_REF_IN_BLOCK_P.
8572 (assemble_variable): Likewise.
8573 (output_constant_def_contents): Likewise.
8574 (output_constant_pool): Likewise.
8575 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8576 instead of SYMBOL_FLAG_IN_BLOCK.
8577 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8578 SYMBOL_REF_IN_BLOCK_P.
8579 (SYMBOL_REF_BLOCK): Likewise.
8580 (SYMBOL_REF_OFFSET): Likewise.
8581 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8582 SYMBOL_REF_IN_BLOCK_P.
8583 (SYMBOL_FLAG_IN_BLOCK): Replace with...
8584 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8585 (SYMBOL_REF_IN_BLOCK_P): Replace with...
8586 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8587
8588 2006-03-03 Jakub Jelinek <jakub@redhat.com>
8589
8590 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8591
8592 2006-03-02 Roger Sayle <roger@eyesopen.com>
8593
8594 * simplify-rtx.c (simplify_unary_operation): When simplifying
8595 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8596 that we perform the right shift in the appropriate mode, and
8597 then extend or truncate the result to requested mode.
8598
8599 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
8600
8601 * gengtype.c (main): Handle double_int type.
8602 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8603 * double-int.c: New file.
8604 * double-int.h: New file.
8605 * system.h: Include doubleint.h.
8606 * Makefile.in (SYSTEM_H): Include double-int.h.
8607 (double-int.o): Add.
8608
8609 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
8610
8611 PR bootstrap/26478
8612 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8613 copying over it.
8614
8615 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8616
8617 * tree-vrp.c (remove_range_assertions): Do not update statements
8618 unnecessarily.
8619
8620 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8621
8622 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8623 cleanup.
8624 * gcse.c (rest_of_handle_gcse): Ditto.
8625 * except.c (gate_handle_eh): Ditto.
8626 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8627 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8628
8629 2006-03-02 Eric Christopher <echristo@apple.com>
8630
8631 * config/i386/i386.c (machopic_output_stub): Add indirection to
8632 jump.
8633
8634 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8635
8636 * loop.c: Removed.
8637
8638 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
8639
8640 Sun Niagara specific optimizations.
8641 * config.gcc: Recognize niagara as target.
8642 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8643 (TARGET_CPU_niagara): Define.
8644 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8645 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8646 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8647 (ASM_CPU_SPEC): Likewise.
8648 (PROCESSOR_NIAGARA): New enum entry.
8649 (REGISTER_MOVE_COST): Handle Niagara.
8650 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8651 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8652 (sparc_override_options): Recognize "niagara", set appropriate
8653 default MASK_* values for it, and align functions to 32-bytes
8654 by default just like ULTRASPARC/ULTRASPARC3.
8655 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8656 (sparc64_initialize_trampoline): Likewise.
8657 (sparc_use_sched_lookahead): Use zero for niagara.
8658 (sparc_issue_rate): Use one for niagara.
8659 * config/sparc/niagara.md: New file.
8660 * config/sparc/sparc.md: Include it.
8661 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8662 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8663 when default cpu is niagara.
8664 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8665 (ASM_CPU_SPEC): Likewise.
8666 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8667 when default cpu is niagara.
8668 (ASM_CPU_SPEC): Handle -mcpu=niagara.
8669 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8670 just like v9/ultrasparc/ultrasparc3.
8671 * doc/invoke.texi: Add documentation for "niagara" and improve
8672 existing documentation for ultrasparc variants.
8673
8674 2006-03-02 Diego Novillo <dnovillo@redhat.com>
8675
8676 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8677
8678 2006-03-02 Richard Sandiford <richard@codesourcery.com>
8679
8680 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8681 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8682 and say that only one is needed.
8683 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8684 * target.h (have_switchable_bss_sections): New hook.
8685 * explow.c (use_anchored_address): Check that the symbol is in a block.
8686 * varasm.c (tls_comm_section, comm_section, lcomm_section)
8687 (bss_noswitch_section): New variables.
8688 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8689 (get_noswitch_section): New function.
8690 (get_block_for_section): Allow SECT to be null.
8691 (unlikely_text_section_p): Use SECTION_STYLE.
8692 (bss_initializer_p): New function.
8693 (get_variable_section): Move earlier in file. Take a new argument,
8694 prefer_noswitch_p. Move bss checks from assemble_variable to here.
8695 Return one of the new *_sections in such cases.
8696 (get_block_for_decl): New function, extracting some logic from
8697 use_blocks_for_decl_p.
8698 (change_symbol_section): Remove in favor of...
8699 (change_symbol_block): ...this new function.
8700 (use_blocks_for_decl_p): Remove checks now performed by
8701 get_block_for_decl.
8702 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8703 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8704 (emit_local, emit_bss, emit_common): ...these new functions.
8705 Return true if the alignment was honored.
8706 (emit_tls_common): New function.
8707 (asm_emit_uninitialised): Delete.
8708 (assemble_variable_noswitch): New function, split out from...
8709 (assemble_variable): ...here. Don't make decisions about common
8710 variables here. Globalize all public decls that go into non-common
8711 sections. Check whether SYMBOL_REF_BLOCK is null.
8712 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8713 (output_constant_pool): Likewise.
8714 (init_varasm_once): Initialize the new section variables.
8715 (have_global_bss_p): New function.
8716 (categorize_decl_for_section): Use bss_initializer_p.
8717 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
8718 (place_block_symbol): Assert that the symbol must be in a block.
8719 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8720 (TARGET_INITIALIZER): Include it.
8721 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8722 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8723 (SECTION_MACH_DEP): Bump by two.
8724 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8725 (unnamed_section): Mention SECTION_UNNAMED in comment.
8726 (named_section): Likewise SECTION_NAMED.
8727 (noswitch_section_callback): New type.
8728 (noswitch_section): New structure.
8729 (section): Add a noswitch_section alternative.
8730 (SECTION_STYLE): New macro.
8731 (tls_comm_section, comm_section, lcomm_section): Declare.
8732 (bss_noswitch_section, have_global_bss_p): Declare.
8733 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8734 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8735 Override.
8736 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8737 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8738 Override.
8739
8740 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
8741
8742 * tree-vrp.c (execute_vrp): Return value.
8743 * regrename.c (rest_of_handle_regrename): Ditto.
8744 * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8745 * tree-complex.c (tree_lower_complex): Ditto.
8746 (tree_lower_complex_O0): Ditto.
8747 * tracer.c (rest_of_handle_tracer): Ditto.
8748 * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8749 * postreload.c (rest_of_handle_postreload): Ditto.
8750 * tree-tailcall.c (execute_tail_recursion): Ditto.
8751 (execute_tail_calls): Ditto.
8752 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8753 * tree.h (init_function_for_compilation): Ditto.
8754 * ipa-cp.c (ipcp_driver): Ditto.
8755 * tree-scalar-evolution.c (scev_const_prop): Ditto.
8756 * tree-scalar-evolution.h (scev_const_prop): Ditto.
8757 * final.c (compute_alignments): Ditto.
8758 (rest_of_handle_final): Ditto.
8759 (rest_of_handle_shorten_branches): Ditto.
8760 (rest_of_clean_state): Ditto.
8761 * omp-low.c (execute_expand_omp): Ditto.
8762 (execute_lower_omp): Ditto.
8763 * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8764 * ipa-reference.c (static_execute): Ditto.
8765 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8766 * reorg.c (rest_of_handle_delay_slots): Ditto.
8767 (rest_of_handle_machine_reorg): Ditto.
8768 * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8769 * flow.c (recompute_reg_usage): Ditto.
8770 (rest_of_handle_remove_death_notes): Ditto.
8771 (rest_of_handle_life): Ditto.
8772 (rest_of_handle_flow2): Ditto.
8773 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8774 * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8775 (do_ssa_store_ccp): Ditto.
8776 (execute_fold_all_builtins): Ditto.
8777 * mode-switching.c (rest_of_handle_mode_switching): Ditto.
8778 * modulo-sched.c (rest_of_handle_sms): Ditto.
8779 * ipa-pure-const.c (static_execute): Ditto.
8780 * cse.c (rest_of_handle_cse): Ditto.
8781 (rest_of_handle_cse2): Ditto.
8782 * web.c (rest_of_handle_web): Ditto.
8783 * tree-stdarg.c (execute_optimize_stdarg): Ditto.
8784 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
8785 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
8786 * tree-nrv.c (tree_nrv): Ditto.
8787 (execute_return_slot_opt): Ditto.
8788 * tree-ssa-alias.c (compute_may_aliases): Ditto.
8789 (create_structure_vars): Ditto.
8790 * loop-init.c (rtl_loop_init): Ditto.
8791 (rtl_loop_done): Ditto.
8792 (rtl_move_loop_invariants): Ditto.
8793 (rtl_unswitch): Ditto.
8794 (rtl_unroll_and_peel_loops): Ditto.
8795 (rtl_doloop): Ditto.
8796 * gimple-low.c (lower_function_body): Ditto.
8797 (mark_used_blocks): Ditto.
8798 * tree-ssa-sink.c (execute_sink_code): Ditto.
8799 * ipa-inline.c (cgraph_decide_inlining): Ditto.
8800 (cgraph_early_inlining): Ditto.
8801 * global.c (rest_of_handle_global_alloc): Ditto.
8802 * jump.c (cleanup_barriers): Ditto.
8803 (purge_line_number_notes): Ditto.
8804 * ifcvt.c (rest_of_handle_if_conversion): Ditto.
8805 (rest_of_handle_if_after_reload): Ditto.
8806 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
8807 (tree_ssa_loop_im): Ditto.
8808 (tree_ssa_loop_unswitch): Ditto.
8809 (tree_vectorize): Ditto.
8810 (tree_linear_transform): Ditto.
8811 (tree_ssa_loop_ivcanon): Ditto.
8812 (tree_ssa_empty_loop): Ditto.
8813 (tree_ssa_loop_bounds): Ditto.
8814 (tree_complete_unroll): Ditto.
8815 (tree_ssa_loop_prefetch): Ditto.
8816 (tree_ssa_loop_ivopts): Ditto.
8817 (tree_ssa_loop_done): Ditto.
8818 * predict.c (tree_estimate_probability): Ditto.
8819 * recog.c (split_all_insns_noflow): Ditto.
8820 (rest_of_handle_peephole2): Ditto.
8821 (rest_of_handle_split_all_insns): Ditto.
8822 * tree-eh.c (lower_eh_constructs): Ditto.
8823 * regmove.c (rest_of_handle_regmove): Ditto.
8824 (rest_of_handle_stack_adjustments): Ditto.
8825 * local-alloc.c (rest_of_handle_local_alloc): Ditto.
8826 * function.c (instantiate_virtual_regs): Ditto.
8827 (init_function_for_compilation): Ditto.
8828 (rest_of_handle_check_leaf_regs): Ditto.
8829 * gcse.c (rest_of_handle_jump_bypass): Ditto.
8830 (rest_of_handle_gcse): Ditto.
8831 * ipa-type-escape.c (type_escape_execute): Ditto.
8832 * alias.c (rest_of_handle_cfg): Ditto.
8833 * tree-if-conv.c (main_tree_if_conversion): Ditto.
8834 * profile.c (rest_of_handle_branch_prob): Ditto.
8835 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
8836 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
8837 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
8838 * tree-dfa.c (find_referenced_vars): Ditto.
8839 * except.c (set_nothrow_function_flags): Ditto.
8840 (convert_to_eh_region_ranges): Ditto.
8841 (rest_of_handle_eh): Ditto.
8842 * emit-rtl.c (unshare_all_rtl): Ditto.
8843 (remove_unnecessary_notes): Ditto.
8844 * except.h (set_nothrow_function_flags): Ditto.
8845 (convert_to_eh_region_ranges): Ditto.
8846 * cfgexpand.c (tree_expand_cfg): Ditto.
8847 * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
8848 * tree-ssa-pre.c (do_pre): Ditto.
8849 (execute_fre): Ditto.
8850 * cfgcleanup.c (rest_of_handle_jump): Ditto.
8851 (rest_of_handle_jump2): Ditto.
8852 * tree-sra.c (tree_sra): Ditto.
8853 * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
8854 (execute_mudflap_function_decls): Ditto.
8855 * tree-ssa-copy.c (do_copy_prop): Ditto.
8856 (do_store_copy_prop): Ditto.
8857 * ipa-prop.h (ipcp_driver): Ditto.
8858 * cfglayout.c (insn_locators_initialize): Ditto.
8859 * tree-ssa-forwprop.c
8860 (tree_ssa_forward_propagate_single_use_vars): Ditto.
8861 * cfglayout.h (insn_locators_initialize): Ditto.
8862 * tree-ssa-dce.c (tree_ssa_dce): Ditto.
8863 * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
8864 (execute_late_warn_uninitialized): Ditto.
8865 * rtl.h (cleanup_barriers): Ditto.
8866 (split_all_insns_noflow): Ditto.
8867 (purge_line_number_notes): Ditto.
8868 (unshare_all_rtl): Ditto.
8869 (remove_unnecessary_notes): Ditto.
8870 (recompute_reg_usage): Ditto.
8871 (variable_tracking_main): Ditto.
8872 * integrate.c (emit_initial_value_sets): Ditto.
8873 * integrate.h (emit_initial_value_sets): Ditto.
8874 * tree-optimize.c (execute_free_datastructures): Ditto
8875 (execute_free_cfg_annotations): Ditto.
8876 (execute_fixup_cfg): Ditto.
8877 (execute_cleanup_cfg_pre_ipa): Ditto.
8878 (execute_cleanup_cfg_post_optimizing): Ditto.
8879 (execute_init_datastructures): Ditto.
8880 * tree-object-size.c (compute_object_sizes): Ditto.
8881 * combine.c (rest_of_handle_combine): Ditto.
8882 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
8883 * bb-reorder.c (duplicate_computed_gotos): Ditto.
8884 (rest_of_handle_reorder_blocks): Ditto.
8885 (rest_of_handle_partition_blocks): Ditto.
8886 * var-tracking.c (variable_tracking_main): Ditto.
8887 * tree-profile.c (tree_profiling): Ditto.
8888 * tree-vect-generic.c (expand_vector_operations): Ditto.
8889 * reg-stack.c (rest_of_handle_stack_regs): Ditto.
8890 * sched-rgn.c (rest_of_handle_sched): Ditto.
8891 (rest_of_handle_sched2): Ditto.
8892 * basic-block.h (free_bb_insn): Ditto.
8893 * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
8894 * tree-cfg.c (execute_build_cfg): Ditto.
8895 (remove_useless_stmts): Ditto.
8896 (split_critical_edges): Ditto.
8897 (execute_warn_function_return): Ditto.
8898 (execute_warn_function_noreturn): Ditto.
8899 * tree-ssa-reassoc.c (execute_reassoc): Ditto.
8900 * cfgrtl.c (free_bb_for_insn): Ditto.
8901 * passes.c (execute_one_pass): Run additional
8902 todos returned by execute function.
8903 * tree-pass.h (struct tree_opt_pass): Make execute
8904 return a value.
8905
8906 2006-03-02 Richard Guenther <rguenther@suse.de>
8907
8908 * tree-ssa-alias.c (find_used_portions): Consider taking
8909 the address as making the variable not write-only.
8910
8911 2006-03-02 Nick Clifton <nickc@redhat.com>
8912
8913 * config.gcc (default_use_cxa_atexit): Extend the description of
8914 this configure variable. Set its default value to "yes" for
8915 Linux, NetBSD and ELF targets on the assumption that they will
8916 use C libraries with the __cxa_atexit function.
8917
8918 2006-03-02 Ben Elliston <bje@au.ibm.com>
8919
8920 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
8921 parameter as unused to suppress a build warning.
8922
8923 2006-03-02 Ben Elliston <bje@au.ibm.com>
8924
8925 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
8926 config/dfp-bit.c.
8927
8928 2006-03-01 Roger Sayle <roger@eyesopen.com>
8929
8930 PR other/26489
8931 * gthr-posix.h (__gthrw2): Define to take three parameters, the
8932 declared name, the weak reference name, and the typeof name.
8933 (__gthrw): Avoid expanding the declared name suffix.
8934 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
8935
8936 2006-03-01 Jakub Jelinek <jakub@redhat.com>
8937
8938 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
8939 from DWARF 3.
8940 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
8941 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
8942 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
8943 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
8944 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
8945 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
8946 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
8947 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
8948 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
8949 DW_DS_leading_separate, DW_DS_trailing_separate): New.
8950 (DW_END_default, DW_END_big, DW_END_little): New.
8951 (DW_END_lo_user, DW_END_hi_user): Define.
8952 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
8953 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
8954 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
8955 DW_LANG_D): New.
8956
8957 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8958
8959 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
8960 Update all users.
8961 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
8962 Update all users.
8963 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
8964 Update all users.
8965 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
8966 Update all users.
8967 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
8968 to 'symbol_mem_tag'.
8969 Update all users.
8970 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
8971 rename.
8972
8973 2006-03-01 Roger Sayle <roger@eyesopen.com>
8974
8975 * builtins.c (fold_builtin_copysign): Delete unreachable code.
8976
8977 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8978
8979 PR target/25761
8980 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
8981 MACHO_DYNAMIC_NO_PIC_P.
8982 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
8983
8984 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8985
8986 PR target/26389
8987 * config/darwin-protos.h (darwin_asm_output_anchor):
8988 Declare.
8989 * config/darwin-sections.def (cstring_section):
8990 Add SECTION_MERGE to the flags.
8991 (literal4_section): Likewise.
8992 (literal8_section): Likewise.
8993 (objc_selector_refs_section): Likewise.
8994 (objc_cls_refs_section): Likewise.
8995 * config/darwin.c (darwin_asm_output_anchor): New
8996 function.
8997 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
8998
8999 2006-03-01 Daniel Berlin <dberlin@dberlin.org>
9000
9001 Fix PR tree-optimization/26443
9002 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
9003 to todo and PROP_tmt_usage to properties_destroyed.
9004 * tree-ssa-ccp.c (pass_ccp): Ditto.
9005 (pass_store_ccp): Ditto.
9006 * tree-ssa-dom.c (pass_dominator): Ditto.
9007
9008 2006-03-01 Diego Novillo <dnovillo@redhat.com>
9009
9010 * tree-ssa-operands.c: Cleanup whitespace.
9011 (get_asm_expr_operands): Move before first invocation.
9012 (get_indirect_ref_operands): Likewise.
9013 (get_tmr_operands): Likewise.
9014 (get_call_expr_operands): Likewise.
9015 (append_def): Likewise.
9016 (append_use): Likewise.
9017 (append_v_may_def): Likewise.
9018 (append_v_must_def): Likewise.
9019 (add_call_clobber_ops): Likewise.
9020 (add_call_read_ops): Likewise.
9021 (add_stmt_operand): Likewise.
9022 (add_virtual_operand): Likewise.
9023 (build_ssa_operands): Likewise.
9024
9025 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
9026
9027 PR middle-end/26022
9028 Revert:
9029 PR middle-end/24437
9030 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
9031 with a call expr to ...
9032 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
9033
9034 2006-03-01 Diego Novillo <dnovillo@redhat.com>
9035
9036 * tree-vrp.c (extract_range_from_assert): Remove special
9037 handling for types with super-types.
9038
9039 2006-03-01 Ben Elliston <bje@au.ibm.com>
9040
9041 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
9042 and powerpc64-*-linux* configurations.
9043 * config/t-dfprules: New file.
9044
9045 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
9046 Compile dfp-bit.c from the source directory using -DWIDTH and
9047 $DFP_CFLAGS to control the compilation of that file, rather than
9048 generating width-specific versions in the build directory.
9049 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
9050 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
9051
9052 2006-02-28 Zack Weinberg <zackw@panix.com>
9053
9054 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
9055 continues to work.
9056
9057 2006-02-28 Eric Christopher <echristo@apple.com>
9058
9059 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
9060 Set up IN_LIBGCC definition of TARGET_64BIT.
9061 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
9062
9063 2006-02-28 Roger Sayle <roger@eyesopen.com>
9064
9065 PR middle-end/14752
9066 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
9067 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
9068 cases via the construction of "expr != 0".
9069
9070 2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
9071
9072 * alias.c (alias_invariant, alias_invariant_size): Remove.
9073 (record_base_value): Remove.
9074 (memrefs_conflict_p): Don't look at alias_invariant.
9075 (end_alias_analysis): Don't free it.
9076 * alias.h (record_base_value): Remove prototype.
9077
9078 2006-02-28 Paolo Bonzini <bonzini@gnu.org>
9079 Adam Nemet <anemet@caviumnetworks.com>
9080
9081 * rtl.h (truncated_to_mode): Declare it.
9082 (struct rtl_hooks): Add reg_truncated_to_mode hook.
9083 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
9084 (RTL_HOOKS_INITIALIZER): Include it.
9085 * rtlhooks.c (reg_truncated_to_mode_general): New function.
9086 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
9087 reg_truncated_to_mode.
9088 * rtlanal.c (truncated_to_mode): Define it.
9089 * simplify-rtx.c (simplify_unary_operation_1): Use it.
9090
9091 2006-02-28 Jeff Law <law@redhat.com>
9092
9093 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
9094 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
9095 the range allowed by TYPE_PRECISION.
9096
9097 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
9098
9099 2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
9100
9101 PR tree-optimization/26419
9102 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
9103 values of n.
9104
9105 2006-02-27 Zack Weinberg <zackw@panix.com>
9106
9107 * doc/md.texi: Fix typo in previous change.
9108
9109 2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
9110
9111 * df.c: Remove.
9112
9113 2006-02-27 Zack Weinberg <zackw@panix.com>
9114
9115 * rtl.def (define_constraint, define_register_constraint)
9116 (define_memory_constraint, define_address_constraint): New MD forms.
9117 * gensupport.c (process_rtx): Put define_constraint etc on the
9118 predicate queue.
9119 * genpreds.c (process_define_predicate): Adjust comment. Validate
9120 the name, and call validate_exp to validate the expression.
9121 (mark_mode_tests, write_extract_subexp): Can assume correct input.
9122 (write_predicate_expr): Likewise. NAME argument no longer necessary;
9123 all callers changed.
9124 (validate_exp, needs_variable, struct constraint_data)
9125 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
9126 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
9127 (const_dbl_constraints, constraint_max_namelen)
9128 (have_register_constraints, have_memory_constraints)
9129 (have_address_constraints, have_address_constraints)
9130 (have_extra_constraints, have_const_int_constraints)
9131 (have_const_dbl_constraints, mangle, add_constraint)
9132 (process_define_constraint, process_define_register_constraint)
9133 (write_enum_constraint_num, write_lookup_constraint)
9134 (write_insn_constraint_len, write_regclass_for_constraint)
9135 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
9136 (write_insn_extra_memory_constraint)
9137 (write_insn_extra_address_constraint)
9138 (write_satisfies_constraint_fns): New.
9139 (write_tm_preds_h): If we have new-style constraint definitions,
9140 prototype the functions generated from them, and define the
9141 old constraint interface (still used by generic code) in terms of
9142 those functions.
9143 (write_insn_preds_c): If we have new-style constraint definitions,
9144 generate all relevant functions from those definitions.
9145 (main): Handle define_constraint etc.
9146 * genoutput.c (struct constraint_data, indep_constraints)
9147 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
9148 (mdep_constraint_len): New data structures and functions, defined
9149 #ifdef USE_MD_CONSTRAINTS.
9150 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
9151 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
9152 use new logic to validate operand constraints against constraint
9153 definitions.
9154 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
9155 defined.
9156 * defaults.h: If none of the old-style constraint macros are
9157 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
9158 old-style macros; and poison REG_CLASS_FROM_LETTER,
9159 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
9160 EXTRA_CONSTRAINT.
9161 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
9162 * doc/md.texi: Document new constraint-definition mechanism and the
9163 C interface it provides. Remove references to old mechanism
9164 elsewhere in the document.
9165 (Machine Constraints): Use pathnames relative to gcc directory,
9166 i.e. config/ARCH/FILE. Change i386 section to refer to
9167 config/i386/predicates.md; update that section to match docstrings.
9168 * doc/tm.texi: Move all documentation of the old constraint-
9169 definition macros to their own section, clearly mark as obsolete.
9170
9171 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
9172 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
9173 definitions.
9174 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
9175 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9176 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
9177 constraint strings.
9178 (splits and peepholes): Use satisfies_constraint_*.
9179 * config/i386/i386.c (memory_address_length)
9180 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
9181
9182 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
9183
9184 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
9185 scalar operation to be put back into the loop.
9186
9187 2006-02-27 Jakub Jelinek <jakub@redhat.com>
9188
9189 PR other/26208
9190 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
9191 (extract_cie_info): Handle S flag in augmentation string.
9192 (execute_cfa_program): If context->signal_frame, execute also
9193 fs->pc == context->ra instructions.
9194 (uw_frame_state_for): If context->signal_frame, don't subtract one
9195 from context->ra to find FDE.
9196 (uw_update_context_1): Set context->signal_frame to
9197 fs->signal_frame.
9198 (_Unwind_GetIPInfo): New function.
9199 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
9200 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
9201 of _Unwind_GetIP.
9202 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
9203 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
9204 * unwind-compat.c (_Unwind_GetIPInfo): New function.
9205 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
9206 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
9207 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
9208 * config/i386/linux-unwind.h (x86_fallback_frame_state,
9209 x86_64_fallback_frame_state): Set fs->signal_frame.
9210 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
9211 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
9212 (frob_update_context): Likewise. Workaround missing S flag in
9213 Linux 2.6.12 - 2.6.16 kernel vDSOs.
9214 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
9215 Remove the psw_addr + 1 hack.
9216
9217 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
9218
9219 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
9220 with aggregates here.
9221 (find_func_aliases): Remove code for &<aggregate> from here.
9222
9223 2006-02-26 Roger Sayle <roger@eyesopen.com>
9224
9225 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
9226 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
9227 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
9228 as (X & C) ne/eq 0.
9229
9230 2006-02-26 Roger Sayle <roger@eyesopen.com>
9231
9232 PR middle-end/19983
9233 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
9234
9235 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
9236
9237 * opts.c (decode_options): Do not handle flag_strength_reduce.
9238 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
9239 and OPT_fstrength_reduce.
9240 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
9241 flag_prefetch_loop_arrays for being nonzero.
9242 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
9243 no-ops.
9244 (fprefetch-loop-arrays-rtl): Removed.
9245 (flag_prefetch_loop_arrays): Do not specify the value.
9246
9247 * doc/passes.texi: Update documentation of loop optimizer
9248 passes.
9249 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
9250 -frerun-loop-opt): Remove.
9251
9252 2006-02-26 Richard Guenther <rguenther@suse.de>
9253
9254 PR tree-optimization/26421
9255 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
9256 in function calls that are ADDR_EXPRs as using the whole structure.
9257
9258 2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
9259
9260 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
9261 * tree-pass.h (pass_loop_optimize): Remove.
9262 * passes.c (pass_loop_optimize): Never run it.
9263 * toplev.c (backend_init): Don't call init_loop.
9264 * opts.c (flag_loop_optimize_set): Remove.
9265 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
9266 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
9267 the old RTL loop optimizer when profiling enabled.
9268 * predict.c (tree_estimate_probability): Always strip builtin_expect.
9269 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
9270 pre-headers for the sake of the old RTL loop optimizer.
9271 * Makefile.in: Remove all references to loop.o.
9272
9273 * doc/invoke.texi: Remove all references to -floop-optimize
9274 and -frerun-loop-opt.
9275
9276 2006-02-26 Zack Weinberg <zackw@panix.com>
9277
9278 * doc/md.texi (Machine Constraints): Refer to all files with paths
9279 relative to gcc directory (i.e. config/CPU/file). Add missing
9280 @table @code ... @end table to M32C subsection.
9281
9282 2006-02-26 Roger Sayle <roger@eyesopen.com>
9283
9284 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
9285 (X & 1) == 0.
9286 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
9287
9288 2006-02-26 Roger Sayle <roger@eyesopen.com>
9289 James A. Morrison <phython@gcc.gnu.org>
9290
9291 PR middle-end/21137
9292 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
9293 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
9294 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
9295 signedness of the shift operation.
9296
9297 2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
9298
9299 PR tree-optimization/26359
9300 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
9301
9302 2006-02-25 Roger Sayle <roger@eyesopen.com>
9303
9304 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9305 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
9306 as X == 0, and some symmetry related transformations.
9307 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
9308
9309 2006-02-25 Roger Sayle <roger@eyesopen.com>
9310
9311 PR middle-end/23673
9312 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
9313 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
9314 symmetry related transformations. Fold (X^C1) == C2 as
9315 X == (C1^C2).
9316
9317 2006-02-25 Juergen Weigert <jw@suse.de>
9318 Richard Guenther <rguenther@suse.de>
9319
9320 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
9321
9322 2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
9323
9324 * combine.c (gen_lowpart_or_truncate): Call
9325 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
9326
9327 2006-02-24 Diego Novillo <dnovillo@redhat.com>
9328
9329 * doc/invoke.texi: Move -fopenmp description to "Options for
9330 Code Generation".
9331 Remove reference to -lgomp.
9332
9333 2006-02-24 David Edelsohn <edelsohn@gnu.org>
9334
9335 * doc/install.texi: Require GNU tar version 1.14.
9336
9337 2006-02-24 Geoffrey Keating <geoffk@apple.com>
9338
9339 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
9340 * doc/invoke.texi (C++ Dialect Options): Document
9341 -fno-use-cxa-get-exception-ptr.
9342 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9343 * configure: Regenerate.
9344 * c.opt (fuse-cxa-get-exception-ptr): New.
9345 * c-opts.c (c_common_handle_option): Handle
9346 OPT_fuse_cxa_get_exception_ptr.
9347 * c-common.c (flag_use_cxa_atexit): Update documentation.
9348 (flag_use_cxa_get_exception_ptr): New.
9349 * c-common.h (flag_use_cxa_get_exception_ptr): New.
9350 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9351 documentation.
9352 (C_COMMON_OVERRIDE_OPTIONS): New.
9353
9354 2006-02-24 Roger Sayle <roger@eyesopen.com>
9355
9356 PR middle-end/24952
9357 * combine.c (try_combine): Explicitly check whether GET_CODE is
9358 a SET or a CLOBBER, instead on checking that it isn't a USE.
9359
9360 2006-02-24 Roger Sayle <roger@eyesopen.com>
9361
9362 * fold-const.c (fold_comparison): New subroutine of fold_binary
9363 containing transformations common to both the equality and
9364 ordering relational operators, factored out of fold_binary.
9365 (fold_binary): Separate out the equality operators (EQ_EXPR
9366 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
9367 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
9368 transformations common to both.
9369 (fold_div_compare): Fix latent bugs in the previously unreachable
9370 LT_EXPR and GE_EXPR cases.
9371
9372 2006-02-24 David Edelsohn <edelsohn@gnu.org>
9373
9374 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
9375 decl libname for clog to __clog on AIX.
9376
9377 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
9378
9379 2006-02-24 Alan Modra <amodra@bigpond.net.au>
9380
9381 PR target/26453
9382 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
9383 output traceback table for thunks. Localise rs6000_stack_info call.
9384
9385 2006-02-23 Roger Sayle <roger@eyesopen.com>
9386 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9387
9388 * gthr-posix.h (__gthrw): Fix typo in comment.
9389
9390 2006-02-23 Geoffrey Keating <geoffk@apple.com>
9391
9392 * doc/cpp.texi (Character sets): Document that we do support
9393 input files to be in any character set.
9394
9395 2006-02-23 Jeff Law <law@redhat.com>
9396
9397 * tree.h (PHI_ARG_NONZERO): Remove.
9398 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
9399 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
9400 node to the new node.
9401
9402 PR tree-optimization/26425
9403 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
9404 min/max, then assume its varying.
9405
9406 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
9407
9408 PR rtl-optimization/26316
9409 * rtlanal.c (enum may_trap_p_flags): New.
9410 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
9411 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
9412 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
9413 (may_trap_after_code_motion_p): New function.
9414 * loop-invariant.c (find_identical_invariants): Fix dump formating.
9415 (find_invariant_insn): Use may_trap_after_code_motion_p.
9416 * rtl.h (may_trap_after_code_motion_p): Declare.
9417
9418 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
9419
9420 * emit-rtl.c (immed_double_const): Cleanup.
9421
9422 2006-02-23 Daniel Berlin <dberlin@dberlin.org>
9423
9424 Fix PR tree-optimization/26376
9425 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
9426 remove assert.
9427
9428 2006-02-23 Jakub Jelinek <jakub@redhat.com>
9429
9430 PR middle-end/26412
9431 * gimplify.c (omp_add_variable): Guard variable size decl test with
9432 DECL_SIZE (decl) check.
9433
9434 2006-02-23 Richard Guenther <rguenther@suse.de>
9435
9436 PR middle-end/26439
9437 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
9438 like aggregate types.
9439
9440 2006-02-23 Jakub Jelinek <jakub@redhat.com>
9441
9442 * configure.ac: Add --with{,out}-long-double-128 configure option.
9443 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
9444 * configure: Rebuilt.
9445 * config.in: Rebuilt.
9446 * doc/install.texi (Options specification): Document
9447 --with-long-double-128.
9448
9449 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9450 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9451 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9452 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9453
9454 2006-02-23 Aldy Hernandez <aldyh@redhat.com>
9455
9456 * config/s390/s390.c (override_options): Handle
9457 TARGET_DEFAULT_LONG_DOUBLE_128.
9458
9459 * config/alpha/alpha.c (override_options): Handle
9460 TARGET_DEFAULT_LONG_DOUBLE_128.
9461
9462 * config/sparc/sparc.c (sparc_override_options): Handle
9463 TARGET_DEFAULT_LONG_DOUBLE_128.
9464
9465 2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
9466
9467 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9468 (real-install-headers-tar, real-install-headers-cpio)
9469 (real-install-headers-cp): New targets.
9470
9471 2006-02-22 Richard Sandiford <richard@codesourcery.com>
9472
9473 * tree.h (variable_section): Delete.
9474 * varasm.c (variable_section): Delete.
9475
9476 2006-02-22 Paolo Bonzini <bonzini@gnu.org>
9477
9478 * install.texi: Add notes on install.texi2html.
9479 (Building in parallel): Do not use footnotes.
9480
9481 2006-02-21 Aldy Hernandez <aldyh@redhat.com>
9482
9483 PR libgomp/26234
9484 * doc/install.texi (Configuration): Document --disable-libgomp.
9485
9486 2006-02-21 Geoffrey Keating <geoffk@apple.com>
9487
9488 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9489
9490 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9491
9492 * config/i386/sse.md (vec_extractv2df_1_sse): New.
9493 (vec_extractv2df_0_sse): New.
9494
9495 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9496
9497 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9498 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9499 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9500 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
9501 to the result of the expression.
9502 (def_cfa_1): Adjust.
9503 (frame_pointer_cfa_offset): Rename to...
9504 (frame_pointer_fb_offset): ... this. Adjust all uses.
9505 (convert_cfa_to_loc_list): Rename to...
9506 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
9507 Pass it on to build_cfa_loc.
9508 (compute_frame_pointer_to_cfa_displacement): Rename to...
9509 (compute_frame_pointer_to_fb_displacement): ... this. New
9510 offset parameter. Use it in computation.
9511 (gen_subprogram_die): Compute cfa_fb_offset with the new
9512 macro, and use it to compute the fb loc list and the
9513 displacement.
9514
9515 2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
9516
9517 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
9518 replaced with register_operand.
9519 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9520 non-DREG is expensive.
9521 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9522 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9523 involving memory.
9524
9525 2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
9526
9527 * doc/install.texi2html: Use set -e.
9528
9529 2006-02-21 Richard Sandiford <richard@codesourcery.com>
9530
9531 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9532 (ASM_OUTPUT_SHARED_LOCAL): Delete.
9533 * doc/invoke.texi (-fshared-data): Delete.
9534 * common.opt (fshared-data): Delete.
9535 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9536 (assemble_static_space): Remove #if 0 code.
9537 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9538 (ASM_OUTPUT_SHARED_LOCAL): Poison.
9539 * config/cris/cris.h: Remove FIXME.
9540
9541 2006-02-21 Paolo Bonzini <bonzini@gnu.org>
9542
9543 * doc/sourcebuild.texi (Front End Directory): No more double-colon
9544 hooks.
9545
9546 2006-02-21 Jakub Jelinek <jakub@redhat.com>
9547
9548 PR middle-end/26379
9549 * combine.c (simplify_shift_const_1): Disable nested shifts
9550 optimization for vector shifts.
9551
9552 2006-02-20 Roger Sayle <roger@eyesopen.com>
9553
9554 PR tree-optimization/26361
9555 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9556 of unsigned integer types.
9557
9558 2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
9559
9560 * tree-chrec.c (eq_evolutions_p): New.
9561 * tree-chrec.h (eq_evolutions_p): Declared.
9562 * tree-data-ref.c: Fix formatting.
9563 (datadep_stats, dependence_stats): New.
9564 (gcd): Moved...
9565 (print_direction_vector): New.
9566 (dump_data_dependence_relation): Use print_direction_vector.
9567 (object_analysis, create_data_ref): Handle COMPONENT_REF.
9568 (compute_subscript_distance): Static.
9569 (initialize_data_dependence_relation): Static. Get the number
9570 of loops surrounding the references from the callers, and initialize
9571 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
9572 base_object_differ_p analyzers.
9573 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9574 compute_overlap_steps_for_affine_1_2,
9575 analyze_subscript_affine_affine): Count the classified dependences.
9576 Print a message when a test failed.
9577 (can_use_analyze_subscript_affine_affine): New.
9578 (analyze_siv_subscript): Compute the data dependences on symbolic
9579 scevs that verify can_use_analyze_subscript_affine_affine.
9580 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9581 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9582 Handle symbolic scevs.
9583 (analyze_overlapping_iterations): Let symbolic affine scevs to be
9584 analyzed.
9585 (subscript_dependence_tester): Moved...
9586 (build_classic_dist_vector, build_classic_dir_vector): Don't use
9587 lambda_vector_clear on newly allocated vectors. Get nb_loops from
9588 DDR_SIZE_VECT instead of getting it in parameter.
9589 (subscript_dependence_tester): ... here. Take as a parameter
9590 loop_nest_depth. Call build_classic_dist_vector and
9591 build_classic_dir_vector.
9592 (compute_affine_dependence): Update subscript_dependence_tester
9593 parameters. Update datadep_stats counters. Call
9594 compute_subscript_distance.
9595 (compute_self_dependence): Save the dist and dir vectors. Call
9596 compute_subscript_distance.
9597 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9598 (compute_all_dependences): Reorder parameters as they were before
9599 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
9600 compute_subscript_distance. Update the use of
9601 compute_affine_dependence and initialize_data_dependence_relation.
9602 (find_data_references_in_loop): Handle COMPONENT_REF.
9603 (compute_data_dependences_for_loop): Initialize dependence_stats.
9604 Don't call build_classic_dist_vector and build_classic_dir_vector.
9605 Update the parameters of initialize_data_dependence_relation and
9606 compute_all_dependences. Print the statistics from datadep_stats.
9607 (analyze_all_data_dependences): Static. Not used until the pass for
9608 checking the data dependences is contributed.
9609 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9610 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9611 (initialize_data_dependence_relation, compute_affine_dependence,
9612 analyze_all_data_dependences, compute_subscript_distance): Removed.
9613 (print_direction_vector): New.
9614 * lambda.h (gcd): ... here.
9615 (lambda_vector_gcd): Moved here from gcd_vector.
9616 * lambda-code.c (gcd, gcd_vector): Removed.
9617 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
9618 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9619
9620 2006-02-20 Diego Novillo <dnovillo@redhat.com>
9621
9622 * ipa-type-escape.c: Tidy some comments and white space.
9623 * tree-ssa-operands.c: Likewise.
9624
9625 2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
9626
9627 PR tree-opt/25879
9628 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9629 (dump_decl_name): Do not walk the decl tree chains.
9630 * tree-pass.h (TDF_CHAIN): Remove.
9631
9632 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9633
9634 * Makefile.in (C): Remove
9635 (PROTO): Remove
9636 (.PHONY): Remove C and PROTO
9637
9638 2006-02-20 Roger Sayle <roger@eyesopen.com>
9639
9640 PR middle-end/26236
9641 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9642 deprecated CHAR_TYPE tree code.
9643
9644 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9645
9646 * configure.ac (target_list): Add install-info, dvi, html.
9647 * configure: Regenerate.
9648
9649 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9650 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9651 treelang/Make-lang.in: Do not use double-colon rules.
9652
9653 2006-02-20 Daniel Berlin <dberlin@dberlin.org>
9654
9655 * tree.h (struct tree_memory_tag): Add is_used_alone member.
9656 (TMT_USED_ALONE): New macro.
9657 * tree-pass.h (PROP_tmt_usage): New property.
9658 (TODO_update_tmt_usage): New todo.
9659 * tree-ssa-alias.c (updating_used_alone): New variable.
9660 (recalculate_used_alone): New function.
9661 (compute_may_aliases): Set updating_used_alone, call
9662 recalculate_used_alone.
9663 * tree-sra.c (pass_sra): Note that this pass destroys
9664 PROP_tmt_usage, and add TODO_update_tmt_usage.
9665 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9666 * tree-flow.h (updating_used_alone): Prototype.
9667 (recalculate_used_alone): Ditto.
9668 * passes.c (execute_todo): Add code to set updating_used_alone,
9669 and call recalculate.
9670 * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9671 for clobber if used alone, and add assert to verify used_alone
9672 status.
9673
9674 2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
9675
9676 * config/s390/s390.c (legitimize_pic_address): Assertions checking
9677 for non tls symbols added.
9678 (legitimize_address): Do nothing for PLUS expressions if one of the
9679 addends is a tls symbol reference.
9680
9681 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9682
9683 PR bootstrap/25476
9684
9685 * Makefile.in (LDFLAGS): Define from autoconf substitution.
9686
9687 * Makefile.in (BOOTSTRAPPING): New.
9688 (quickstrap): New definition if BOOTSTRAPPING=yes.
9689
9690 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9691 * configure.ac: Substitute all_selected_languages with the languages
9692 that were configured. For all the other variables except
9693 lang_specs_files, include all the languages in the tree.
9694 * configure: Regenerate.
9695
9696 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9697 if there is one. Run the commands to run fixincludes in the same
9698 subshell.
9699
9700 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9701 * doc/install.texi: Document exact conventions for searching target tools.
9702 Document --with-build-time-tools. Document toplevel bootstrap. Document
9703 something more about building an Ada cross-compiler. Don't list GNU Make
9704 requirements which affect all platforms.
9705
9706 2006-02-19 Roger Sayle <roger@eyesopen.com>
9707
9708 PR middle-end/19543
9709 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9710 only equivalent if the have both the same mode and precision.
9711
9712 2006-02-20 Ben Elliston <bje@au.ibm.com>
9713
9714 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9715
9716 2006-02-19 Roger Sayle <roger@eyesopen.com>
9717 Steven Bosscher <stevenb.gcc@gmail.com>
9718
9719 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9720 constant pool references to identify stack mode constants.
9721 * rtlanal.c (constant_pool_constant_p): New predicate to check
9722 whether operand is a floating point constant in the pool.
9723 * rtl.h (constant_pool_constant_p): Prototype here.
9724 * loop.c (scan_loop): Avoid hoisting constants from the constant
9725 pool on STACK_REGS targets.
9726 (load_mems): Likewise.
9727 * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9728 loads into x87 registers expensive in terms of register pressure.
9729
9730 2006-02-19 Roger Sayle <roger@eyesopen.com>
9731
9732 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9733 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9734
9735 2006-02-19 David Edelsohn <edelsohn@gnu.org>
9736
9737 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9738 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9739
9740 2006-02-19 Daniel Berlin <dberlin@dberlin.org>
9741
9742 * doc/invoke.texi: Document -fipa-pta.
9743 * common.opt: Add ipa-pta option.
9744 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9745 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9746 (do_ds_constraint): Ditto.
9747 (get_constraint_for): Only add to referenced_vars if
9748 referenced_vars exists.
9749 (insert_into_field_list): Rewrite to do this unsorted.
9750 (insert_into_field_list_sorted): Rename old insert_into_field_list
9751 to this.
9752 (create_function_info_for): Use insert_into_field_list_sorted.
9753 (create_variable_info_for): Rewrite so it uses unsorted version,
9754 since the field list is sorted.
9755 (intra_create_variable_infos): Only add to referenced_vars if
9756 referenced_vars exists.
9757 (ipa_pta_execute): Init heapvars, and delete when done.
9758 * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9759
9760 2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9761
9762 * doc/install.texi: Add missing `@samp'.
9763
9764 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9765
9766 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9767 Use the arguments.
9768
9769 2006-02-18 Mark Wielaard <mark@klomp.org>
9770
9771 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9772 who added new 4.1 features, bug fixes and integration support.
9773
9774 2006-02-18 David Edelsohn <edelsohn@gnu.org>
9775
9776 PR target/26350
9777 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
9778 MEM for ABI_V4 pic.
9779
9780 2006-02-18 Richard Sandiford <richard@codesourcery.com>
9781
9782 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
9783 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
9784 (copy_insn_1): Likewise. Don't copy each field individually.
9785 Reindent.
9786 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
9787 of RTX_SIZE.
9788 * reload1.c (eliminate_regs): Use shallow_copy_rtx.
9789 * rtl.c (rtx_size): Rename variable to...
9790 (rtx_code_size): ...this.
9791 (rtx_size): New function.
9792 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
9793 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
9794 Reindent.
9795 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
9796 * rtl.h (rtx_code_size): New variable.
9797 (rtx_size): Change from a variable to a function.
9798 (RTX_SIZE): Rename to...
9799 (RTX_CODE_SIZE): ...this.
9800
9801 PR target/9703
9802 PR tree-optimization/17106
9803 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
9804 (Anchored Addresses): New section.
9805 * doc/invoke.texi (-fsection-anchors): Document.
9806 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
9807 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
9808 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
9809 * hooks.c (hook_bool_mode_rtx_false): New function.
9810 * hooks.h (hook_bool_mode_rtx_false): Declare.
9811 * gengtype.c (create_optional_field): New function.
9812 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
9813 SYMBOL_REF_IN_BLOCK_P is true.
9814 * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
9815 (min_anchor_offset, max_anchor_offset): Likewise.
9816 (use_anchors_for_symbol_p): New hook.
9817 * toplev.c (compile_file): Call output_object_blocks.
9818 (target_supports_section_anchors_p): New function.
9819 (process_options): Check that -fsection-anchors is only used on
9820 targets that support it and when -funit-at-a-time is in effect.
9821 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
9822 if the decl doesn't have one.
9823 * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
9824 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
9825 of force_const_mem through use_anchored_address.
9826 (expand_expr_constant): New function.
9827 (expand_expr_addr_expr_1): Call it. Use the same modifier when
9828 calling expand_expr for INDIRECT_REF.
9829 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
9830 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
9831 * expr.h (use_anchored_address): Declare.
9832 * loop-unroll.c: Don't declare rtx vectors here.
9833 * explow.c: Include output.h.
9834 (validize_mem): Call use_anchored_address.
9835 (use_anchored_address): New function.
9836 * common.opt (-fsection-anchors): New switch.
9837 * varasm.c (object_block_htab, anchor_labelno): New variables.
9838 (hash_section, object_block_entry_eq, object_block_entry_hash)
9839 (use_object_blocks_p, get_block_for_section, create_block_symbol)
9840 (use_blocks_for_decl_p, change_symbol_section): New functions.
9841 (get_variable_section): New function, split out from assemble_variable.
9842 (make_decl_rtl): Create a block symbol if use_object_blocks_p and
9843 use_blocks_for_decl_p say so. Use change_symbol_section if the
9844 symbol has already been created.
9845 (assemble_variable_contents): New function, split out from...
9846 (assemble_variable): ...here. Don't output any code for
9847 block symbols; just pass them to place_block_symbol.
9848 Use get_variable_section and assemble_variable_contents.
9849 (get_constant_alignment, get_constant_section, get_constant_size): New
9850 functions, split from output_constant_def_contents.
9851 (build_constant_desc): Create a block symbol if use_object_blocks_p
9852 says so. Or into SYMBOL_REF_FLAGS.
9853 (assemble_constant_contents): New function, split from...
9854 (output_constant_def_contents): ...here. Don't output any code
9855 for block symbols; just pass them to place_section_symbol.
9856 Use get_constant_section and get_constant_alignment.
9857 (force_const_mem): Create a block symbol if use_object_blocks_p and
9858 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
9859 (output_constant_pool_1): Add an explicit alignment argument.
9860 Don't switch sections here.
9861 (output_constant_pool): Adjust call to output_constant_pool_1.
9862 Switch sections here instead. Don't output anything for block symbols;
9863 just pass them to place_block_symbol.
9864 (init_varasm_once): Initialize object_block_htab.
9865 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
9866 (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
9867 (place_block_symbol, get_section_anchor, output_object_block)
9868 (output_object_block_htab, output_object_blocks): New functions.
9869 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
9870 (TARGET_ASM_OUT): Include it.
9871 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
9872 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
9873 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
9874 (TARGET_INITIALIZER): Include them.
9875 * rtl.c (rtl_check_failed_block_symbol): New function.
9876 * rtl.h: Include vec.h. Declare heap and gc rtx vectors.
9877 (block_symbol, object_block): New structures.
9878 (rtx_def): Add a block_symbol field to the union.
9879 (BLOCK_SYMBOL_CHECK): New macro.
9880 (rtl_check_failed_block_symbol): Declare.
9881 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
9882 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
9883 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
9884 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
9885 * output.h (output_section_symbols): Declare.
9886 (object_block): Name structure.
9887 (place_section_symbol, get_section_anchor, default_asm_output_anchor)
9888 (default_use_anchors_for_symbol_p): Declare.
9889 * Makefile.in (RTL_BASE_H): Add vec.h.
9890 (explow.o): Depend on output.h.
9891 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
9892 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
9893 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9894 (rs6000_use_blocks_for_constant_p): New function.
9895
9896 2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9897
9898 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
9899
9900 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9901
9902 PR tree-opt/25680
9903 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
9904 IMAGPART_EXPR.
9905
9906 2006-02-18 Diego Novillo <dnovillo@redhat.com>
9907
9908 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
9909 is_aliased.
9910 Update all users.
9911
9912 2006-02-18 Jakub Jelinek <jakub@redhat.com>
9913
9914 PR middle-end/26334
9915 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
9916 instead of DECL_REGISTER.
9917
9918 2006-02-18 Olivier Hainque <hainque@adacore.com>
9919
9920 PR ada/13408
9921 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
9922
9923 2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
9924
9925 PR target/24837
9926 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
9927 * opth-gen.awk: Handle Var and InverseMask together.
9928 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
9929 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
9930 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
9931 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
9932 used together.
9933 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9934 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9935 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
9936 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9937 LINUX_DYNAMIC_LINKER): Define.
9938 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
9939 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
9940 TARGET_GLIBC.
9941 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9942 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
9943 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9944 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9945 (TARGET_C99_FUNCTIONS): Don't define.
9946 * config/i386/linux.h (DYNAMIC_LINKER): Rename to
9947 GLIBC_DYNAMIC_LINKER.
9948 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
9949 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
9950 GLIBC_DYNAMIC_LINKER64): Define.
9951 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9952 LINUX_DYNAMIC_LINKER64.
9953 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9954 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9955 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
9956 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9957 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9958 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9959 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
9960 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
9961 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
9962 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
9963 and LINUX_DYNAMIC_LINKER32.
9964 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9965 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9966 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
9967 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9968 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
9969 TARGET_GLIBC.
9970 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
9971 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
9972 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9973 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9974 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9975 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
9976 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
9977 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
9978 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9979 LINUX_DYNAMIC_LINKER): Define.
9980 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
9981 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
9982 GLIBC_DYNAMIC_LINKER64): Define.
9983 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9984 LINUX_DYNAMIC_LINKER64.
9985 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9986 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9987 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
9988 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9989 LINUX_DYNAMIC_LINKER): Define.
9990 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9991 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9992 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
9993 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
9994 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
9995 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9996 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
9997 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
9998 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9999 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10000 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10001 * doc/invoke.texi (-muclibc): Remove caveat about supported
10002 targets.
10003
10004 2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
10005
10006 * doc/cpp.texi (__TIMESTAMP__): Document.
10007
10008 2006-02-17 Roger Sayle <roger@eyesopen.com>
10009
10010 PR middle-end/25600
10011 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
10012 C is one less than the width of X (and related transformations).
10013 * simplify-rtx.c (simplify_unary_operation_1): Transform
10014 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
10015 depending on STORE_FLAG_VALUE, were C is one less then the
10016 width of X.
10017
10018 2006-02-17 Daniel Berlin <dberlin@dberlin.org>
10019
10020 Fix PR tree-optimization/26341
10021 * tree-ssa-operands.c (add_virtual_operand): Remove assert
10022 about NAME_MEMORY_TAG's.
10023
10024 2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10025
10026 PR target/26255
10027 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
10028 with hardware float support, and software float support. Add fcpy
10029 alternative to hardware patterns. Add alternatives to copy between
10030 general and floating-point registers to the 32-bit pattern.
10031 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
10032 secondary reload to load a QI or HI mode constant into a floating
10033 point register.
10034 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
10035 * pa64-regs.h (VALID_FP_MODE_P): Likewise.
10036
10037 2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
10038
10039 PR target/26272
10040 * config/rs6000/darwin.md (load_macho_picbase_si): Add
10041 pc to the pattern.
10042 (load_macho_picbase_di): Likewise.
10043
10044 2006-02-16 Jeff Law <law@redhat.com>
10045
10046 * tree-vrp.c (set_value_range_to_nonnegative): New function.
10047 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
10048 (ssa_name_nonzero_p): Likewise.
10049 (get_value_range): Return NULL if VRP is not running.
10050 (extract_range_from_expr): Fallback to tree_expr_XXX_p if
10051 VRP routines do not discover a range.
10052 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
10053 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
10054 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
10055 (tree_expr_nonnegative_p): Similarly.
10056 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
10057 (restore_nonzero_vars_to_original_value): Remove.
10058 (unsafe_associative_fp_binop): Remove.
10059 (tree_ssa_dominator_optimize): Remove initialization and
10060 finalization of nonzero_vars and nonzero_vars_stack.
10061 (dom_opt_initialize_block): No longer push marker on
10062 nonzero_vars_stack.
10063 (dom_opt_finalize_block): No longer call
10064 restore_nonzero_vars_to_original_value.
10065 (record_equivalences_from_phis): No longer look for
10066 nonzero PHI arguments.
10067 (cprop_into_successor_phis): No longer propagate nonzero
10068 property into PHI arguments. Lose unused argument. Caller
10069 updated.
10070 (record_equivalences_from_stmt): No longer record nonzero
10071 values for SSA_NAMEs.
10072 (lookup_avail_expr): No longer use nonzero_vars.
10073
10074 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
10075 for sizetype when sizetype is unsigned.
10076
10077 2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
10078
10079 PR rtl-optimization/25603
10080 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
10081 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
10082 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
10083 with new meaning of SETS.
10084
10085 2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
10086
10087 PR target/20353
10088 PR target/24578
10089 PR target/24837
10090 * config/linux.opt: New file.
10091 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10092 LINUX_DYNAMIC_LINKER): Define.
10093 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
10094 * config.gcc (*-*-linux*): Define extra_options.
10095 (*-*-*uclibc*): Define UCLIBC_DEFAULT.
10096 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
10097 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
10098 GLIBC_DYNAMIC_LINKER.
10099 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
10100 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10101 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10102 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10103 * doc/invoke.texi (GNU/Linux Options): New section.
10104
10105 2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
10106
10107 * config/sparc/sparc.md (setjmp): Rewrite.
10108 (setjmp_32): Delete.
10109 (setjmp_64): Likewise.
10110
10111 2006-02-16 Daniel Berlin <dberlin@dberlin.org>
10112
10113 * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
10114 previous change.
10115
10116 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
10117
10118 * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
10119 read-write uses.
10120
10121 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
10122
10123 PR rtl-optimization/26296
10124 * Makefile.in (loop-invariant.c): Add except.h dependency.
10125 * loop-invariant.c: Include except.h.
10126 (find_invariant_insn): Ignore insns satisfying can_throw_internal.
10127
10128 2005-02-16 Paul Brook <paul@codesourcery.com>
10129
10130 * reload1.c (emit_reload_insns): Invalidate dead input registers used
10131 for reloads.
10132
10133 2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
10134
10135 PR rtl-optimization/25636
10136 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
10137 when deciding whether an insn is an initializing insn.
10138
10139 2006-02-15 Daniel Berlin <dberlin@dberlin.org>
10140
10141 * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
10142 (tree_code_size): Ditto.
10143 * tree.h (struct tree_memory_tag): Remove parent_var.
10144 (struct tree_struct_field_tag): New.
10145 (SFT_OFFSET): New.
10146 (SFT_SIZE): New.
10147 (union tree_node): Add sft member.
10148 * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
10149 specially here.
10150 (create_sft): Add size and offset argument, set SFT_OFFSET and
10151 SFT_SIZE.
10152 (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
10153 * treestruct.def: Add TS_STRUCT_FIELD_TAG.
10154 * tree-flow-inline.h (get_subvar_at): Update for
10155 SFT_OFFSET/SFT_SIZE.
10156 (var_can_have_subvars): Ditto.
10157 (overlap_subvar): Ditto.
10158 * print-tree.c (print_node): Print out interesting things for
10159 SFT's.
10160 * tree-flow.h (struct subvar): Remove offset and size members.
10161 * tree-ssa-operands.c (get_expr_operands): Update for
10162 get_indirect_ref_operands changes.
10163 (get_indirect_ref_operands): Call add_virtual_operand instead of
10164 add_stmt_operand. Only recurse on base var if requested.
10165 (access_can_touch_variable): New function.
10166 (add_stmt_operand): Split virtual operand handling into ...
10167 (add_virtual_operand): Here. Add offset, size, and for_clobber
10168 arguments. Prune alias sets.
10169 (add_call_clobber_ops): Call add_virtual_operand.
10170
10171 2006-02-15 Jakub Jelinek <jakub@redhat.com>
10172
10173 PR middle-end/26300
10174 * combine.c (make_extraction): Bail out if ORIG_POS is negative.
10175
10176 * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
10177 than TREE_CODE as index into omp_clause_num_ops array.
10178
10179 2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
10180
10181 PR rtl-optimization/26184
10182 * modulo-sched.c (generate_reg_moves): Free bitmap vector
10183 uses_of_defs.
10184 * modulo-sched.c (sms_schedule): Free g_arr pointer.
10185 * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
10186 must_precede, must_follow and tobe_scheduled.
10187
10188 PR other/26147
10189 * opts.c (common_handle_option): Free new_option pointer.
10190 * df-core.c (df_analyze): Free postorder pointer.
10191
10192 2006-02-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10193
10194 * Makefile.in: Fix the examples about the use of stamps
10195
10196 2006-02-15 Michael Matz <matz@suse.de>
10197
10198 PR middle-end/22275
10199
10200 * stor-layout.c (layout_decl): Zero-width bitfields aren't
10201 influenced by maximum_field_alignment or DECL_PACKED.
10202 (update_alignment_for_field): Ditto.
10203 (place_field): Ditto.
10204 * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
10205 this behaviour.
10206
10207 2006-02-15 Paolo Bonzini <bonzini@gnu.org>
10208
10209 * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
10210 (debug_flow_info): Pass it.
10211 * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
10212 * bb-reorder.c (reorder_basic_blocks): Likewise.
10213 * cfgcleanup.c (rest_of_handle_jump2): Likewise.
10214 * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
10215 * flow.c (life_analysis, recompute_reg_usage): Likewise.
10216 * gcse.c (gcse_main, bypass_jumps): Likewise.
10217 * ifcvt.c (rest_of_handle_if_conversion): Likewise.
10218 * local-alloc.c (rest_of_handle_local_alloc): Likewise.
10219 * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
10220 * profile.c (compute_branch_probabilities, branch_prob): Likewise.
10221 * rtl.h (dump_flow_info): Adjust prototype.
10222 * tracer.c (rest_of_handle_tracer, tracer): Likewise.
10223 * var-tracking.c (variable_tracking_main): Likewise.
10224 * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
10225 * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
10226 options.
10227
10228 2006-02-15 Marcin Dalecki <martin@dalecki.de>
10229
10230 * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
10231 construction.
10232
10233 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
10234
10235 PR tree-optimization/26209
10236 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
10237 * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
10238 eh edges.
10239 * tree-cfg.c (replace_uses_by): Do not alter cfg.
10240
10241 2006-02-14 Roger Sayle <roger@eyesopen.com>
10242
10243 PR middle-end/23670
10244 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
10245 (X,Y) and the corresponding symmetry related transformations.
10246 (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
10247 (X,Y) and its symmetry related transformations.
10248
10249 2006-02-14 Roger Sayle <roger@eyesopen.com>
10250
10251 * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
10252 and GEU.
10253
10254 2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
10255
10256 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
10257
10258 2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10259
10260 PR bootstrap/26053
10261 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
10262 support COMDAT group.
10263 * configure: Regenerate.
10264
10265 2006-02-14 Roger Sayle <roger@eyesopen.com>
10266
10267 PR middle-end/26279
10268 PR middle-end/26280
10269 PR middle-end/26283
10270 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
10271
10272 2006-02-14 Daniel Berlin <dberlin@dberlin.org>
10273
10274 Fix PR tree-optimization/26260
10275
10276 * doc/invoke.texi (max-fields-for-field-sensitive): Document
10277 param.
10278 * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
10279 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
10280 * tree-ssa-structalias.c (create_variable_info_for): Use
10281 MAX_FIELDS_FOR_FIELD_SENSITIVE.
10282
10283 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
10284
10285 * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
10286 Document.
10287 * tree-ssa-loop-niter.c (number_of_iterations_ne,
10288 number_of_iterations_lt, number_of_iterations_cond): Remember the shape
10289 of the ending condition.
10290 * tree-ssa-loop-manip.c: Include params.h.
10291 (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
10292 tree_unroll_loop): New functions.
10293 * tree-pass.h (pass_loop_prefetch): Declare.
10294 * loop.c (rest_of_handle_loop_optimize): Test for
10295 -fprefetch-loop-arrays-rtl.
10296 * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
10297 * timevar.def (TV_TREE_PREFETCH): New timevar.
10298 * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
10299 pass_loop_prefetch): New.
10300 * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
10301 (cleanup_tree_cfg_loop): Call scev_reset.
10302 * common.opt (fprefetch-loop-arrays-rtl): Add.
10303 * tree-ssa-loop-prefetch.c: New file.
10304 * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
10305 (new_temp_expr_table): Initialize expr_vars.
10306 (free_temp_expr_table): Cleanup expr_vars.
10307 (check_replaceable, find_replaceable_in_bb): Prevent accumulating
10308 expressions from being merged into one.
10309 * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
10310 (struct tree_niter_desc): Add control, bound and cmp fields.
10311 (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
10312 Declare.
10313 * Makefile.in (tree-ssa-loop-prefetch.o): Add.
10314 (tree-cfgcleanup.o): Add SCEV_H dependency.
10315 (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
10316 * passes.c (init_optimization_passes): Add pass_loop_prefetch.
10317
10318 2006-02-14 Richard Guenther <rguenther@suse.de>
10319
10320 PR tree-optimization/26258
10321 * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
10322 in PHI argument processing.
10323
10324 2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
10325
10326 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
10327 new expression in the requested machine mode.
10328
10329 2006-02-13 Roger Sayle <roger@eyesopen.com>
10330
10331 * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
10332 directly, instead let do_compare_rtx_and_jump handle this for us.
10333 * expr.c (expand_expr_real_1): Likewise.
10334 * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
10335 before do_jump_by_parts_greater.
10336 (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
10337 * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
10338
10339 2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10340
10341 * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
10342
10343 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
10344
10345 PR rtl-optimization/26235
10346 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
10347 (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
10348 format.
10349
10350 2006-02-13 Jeff Law <law@redhat.com>
10351
10352 * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
10353 TRUTH_XOR_EPR.
10354
10355 2006-02-13 Jakub Jelinek <jakub@redhat.com>
10356
10357 PR middle-end/26092
10358 * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
10359 twice if decl is a builtin. When trying again, call get_callee_fndecl
10360 first to verify it is still a builtin.
10361
10362 2006-02-13 Geoffrey Keating <geoffk@apple.com>
10363
10364 * dwarf2out.c (base_type_die): Don't add AT_name here.
10365 (subrange_type_die): Don't add AT_name here.
10366 (modified_type_die): Rearrange code flow. Do add AT_name here.
10367
10368 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
10369
10370 PR rtl-optimization/26247
10371 PR rtl-optimization/26248
10372 * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
10373
10374 2006-02-13 Richard Sandiford <richard@codesourcery.com>
10375
10376 * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
10377 * config/fixtfdi.c: Likewise.
10378 * config/fixunstfdi.c: Likewise.
10379 * config/floatditf.c: Likewise.
10380
10381 2006-02-13 Roger Sayle <roger@eyesopen.com>
10382
10383 PR middle-end/24427
10384 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
10385 into (X,C2) if C1 is a subset of the bits of C2. Transform
10386 (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
10387 (X&(C1&~C2))|C2.
10388 <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
10389
10390 2006-02-13 Josh Conner <jconner@apple.com>
10391
10392 PR target/25376
10393 * varasm.c (function_section): Check for section name before
10394 calling select_section on targets that define
10395 USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
10396 unlikely_text_section instead of hot_function_section if
10397 first_function_block_is_cold.
10398
10399 2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
10400
10401 PR middle-end/25335
10402 * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
10403
10404 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10405
10406 PR rtl-optimization/26222
10407 * function.c (assign_stack_temp_for_type): Do not reuse stack slots
10408 after tree->rtl expansion.
10409 * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
10410 before passing it to emit_move_insn.
10411
10412 2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
10413
10414 * doc/invoke.texi (-Write-strings): Document that it is enabled by
10415 default.
10416 * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
10417 Clarify documentation.
10418 * c-common.h (warn_write_strings): Remove.
10419 * c-common.c (warn_write_strings): Likewise.
10420 * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
10421 default for C++.
10422
10423 2006-02-12 Roger Sayle <roger@eyesopen.com>
10424
10425 PR middle-end/25724
10426 * dojump.c (do_jump): Call do_compare_rtx_and_jump.
10427 (do_jump_parts_zero_rtx): New function renamed from
10428 do_jump_parts_equality_rtx. Made static. Add a mode argument.
10429 (do_jump_parts_equality_rtx): New function split out from
10430 do_jump_parts_equality. Old implementation renamed as above.
10431 Call do_jump_parts_zero_rtx if either operand is zero.
10432 (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
10433 do all of the heavy lifting.
10434 (do_compare_rtx_and_jump): Handle multi-word comparisons by
10435 calling either do_jump_by_parts_greater_rtx or
10436 do_jump_by_parts_equality_rtx.
10437 * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
10438 * expmed.c (do_cmp_and_jump): Now multi-word optimization has
10439 moved to do_compare_rtx_and_jump, call it directly.
10440 * stmt.c (do_jump_if_equal): Remove static prototype. Add a
10441 mode argument. Call do_compare_rtx_and_jump.
10442 (emit_case_nodes): Update calls to do_jump_if_equal.
10443
10444 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10445
10446 PR rtl-optimization/26225
10447 * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10448
10449 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10450
10451 PR rtl-optimization/26232
10452 * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10453
10454 2006-02-11 Jason Merrill <jason@redhat.com>
10455
10456 PR tree-opt/24365
10457 * tree-inline.c (declare_return_variable): Just don't use the
10458 modify target if it's a gimple complex reg and the return slot
10459 isn't.
10460
10461 2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10462
10463 * doc/contrib.texi: Update my entry.
10464
10465 2006-02-10 Geoffrey Keating <geoffk@apple.com>
10466
10467 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10468
10469 2006-02-10 Diego Novillo <dnovillo@redhat.com>
10470
10471 * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10472 expensive.
10473
10474 2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
10475
10476 * doc/invoke.texi (-floop-optimize2): Removed.
10477 * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10478 * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10479 Test flag_branch_on_count_reg only if HAVE_doloop_end.
10480 * common.opt (floop-optimize2): Removed.
10481 (fmove-loop-invariants): Enabled by default.
10482
10483 2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
10484
10485 * tree-if-conv.c (combine_blocks): Free the result of
10486 get_loop_exit_edges.
10487
10488 2006-02-10 Jeff Law <law@redhat.com>
10489
10490 * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10491
10492 PR tree-optimization/26213
10493 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10494 loop trying to follow SSA_NAME_VALUE chains.
10495
10496 2006-02-10 Richard Guenther <rguenther@suse.de>
10497
10498 * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10499 deal with structures that end in implicitly variable sized arrays.
10500
10501 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10502
10503 PR rtl-optimization/24762
10504 * df-scan.c (df_bb_refs_record): Record correct registers defined on
10505 eh edges.
10506
10507 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10508
10509 * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10510 (struct ivopts_data): Add regs_used field.
10511 (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10512 (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10513 instead of loop_data->regs_used;
10514 (free_loop_data): Do not free aux fields for loops.
10515 (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10516 and tree_ssa_iv_optimize_finalize.
10517
10518 2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
10519
10520 * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10521
10522 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10523
10524 PR target/26141
10525 * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10526 computing the effective result type.
10527
10528 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10529
10530 PR inline-asm/16194
10531 * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10532 (tree_overlaps_hard_reg_set): Declare.
10533 * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
10534 type and signature to match function type expected by walk_tree.
10535 (tree_overlaps_hard_reg_set): New function.
10536 (decl_conflicts_with_clobbers_p): Rename to:
10537 (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
10538 Use tree_overlaps_hard_reg_set. Changed caller.
10539 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10540 decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10541 * cris.c (cris_md_asm_clobbers): Likewise.
10542
10543 2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
10544
10545 * reload1.c (emit_input_reload_insns): Delete code that tries to
10546 inherit using find_equiv_reg.
10547
10548 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
10549
10550 * c-common.h (flag_const_strings): Don't declare.
10551 * c-common.c (flag_const_strings): Remove.
10552 * c.opt (fconst_strings): Remove.
10553 * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10554 <OPT_Wwrite_strings>: Don't set flag_const_strings.
10555 (c_common_init_options): Don't set flag_const_strings.
10556 * doc/invoke.texi (-fno-const-strings): Remove documentation.
10557
10558 2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
10559
10560 * arm.md (tlobits_cbranch): New pattern.
10561 * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10562 testing a single bit.
10563
10564 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10565
10566 PR tree-opt/26179
10567 * tree-ssa-pre.c (create_component_ref_by_pieces):
10568 Handle RETURN_DECL like VAR_DECL.
10569
10570 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10571
10572 PR middle-end/26134
10573 * fold-const.c (fold_indirect_ref_1): Fold
10574 "*(foo *)&complexfoo" to "__real__ complexfoo"
10575 and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10576
10577 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10578
10579 * tree-flow-inline.h (var_can_have_subvars):
10580 Volatile variables should not have subvariables.
10581
10582 2006-02-09 Diego Novillo <dnovillo@redhat.com>
10583
10584 PR 26180
10585 * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10586 multiplying unsigned values.
10587 Tidy comments.
10588
10589 2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
10590
10591 * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10592
10593 2006-02-08 Jason Merrill <jason@redhat.com>
10594
10595 PR c++/25979
10596 * tree.def: Elaborate on difference from MODIFY_EXPR.
10597 * doc/c-tree.texi (INIT_EXPR): Likewise.
10598 * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10599 (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10600 (gimplify_target_expr): Likewise.
10601 (gimplify_cond_expr): Remove target handling.
10602 (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10603 (gimplify_expr): Clobber it here.
10604 (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10605 Do return slot optimization if we have an INIT_EXPR.
10606
10607 PR tree-opt/24365
10608 * tree-inline.c (declare_return_variable): Also clear
10609 DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10610
10611 PR c++/16405
10612 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10613
10614 PR middle-end/22439
10615 * gimplify.c (gimplify_one_sizepos): Fix typo.
10616
10617 2006-02-08 Jeff Law <law@redhat.com>
10618
10619 PR tree-optimization/21417
10620 * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10621 across a backedge if the control statement at the end of the
10622 block is data dependent on other statements in the same block.
10623 (record_temporary_equivalences_from_stmts): Remove over-conservative
10624 test for threading across backedges.
10625
10626 * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10627 control statement, handle all three special cases in the same
10628 manner as they all have the same desired solution. No longer
10629 special case edge flag updating when the post dominator is
10630 the exit block.
10631
10632 2006-02-08 Roger Sayle <roger@eyesopen.com>
10633
10634 * tree.def (CHAR_TYPE): Remove.
10635 * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10636 * dwarf2out.c (base_type_die, is_base_type): Likewise.
10637 (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10638 (gen_string_type_die): Delete unreachable function.
10639
10640 * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10641 * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10642 type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10643 * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10644 * builtins.c (type_to_class): Likewise.
10645 * fold-const.c (fold_convert, build_range_check,
10646 merge_ranges): Likewise.
10647 * expr.c (count_type_elements): Likewise.
10648 * c-pretty-print.c (pp_c_type_specifier): Likewise.
10649 * stor-layout.c (layout_type): Likewise.
10650 * ipa-type-escape.c (type_to_consider): Likewise.
10651 * gimplify.c (omp_firstprivatize_type_sizes,
10652 gimplify_type_sizes): Likewise.
10653 * explow.c (promote_mode): Likewise.
10654 * tree-sra.c (is_sra_scalar_type): Likewise.
10655 * varasm.c (output_constant): Likewise.
10656 * tree-inline.c (remap_type_1): Likewise.
10657 * convert.c (convert_to_pointer, convert_to_real,
10658 convert_to_integer, convert_to_complex): Likewise.
10659
10660 2006-02-08 Daniel Berlin <dberlin@dberlin.org>
10661
10662 * df-scan.c (df_def_record_1): A set destination may
10663 be a parallel regardless of mode.
10664
10665 2006-02-08 Roger Sayle <roger@eyesopen.com>
10666
10667 PR target/22209
10668 * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10669 * config/mips/_tilib.c: Remove.
10670 * config/fixtfdi.c: New libgcc source file.
10671 * config/fixunstfdi.c: New source file.
10672 * config/floatditf.c: New source file.
10673 * config/floatunditf.c: New souce file.
10674 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10675 files above instead of config/mips/_tilib.c.
10676 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10677
10678 2006-02-08 Jeff Law <law@redhat.com>
10679
10680 PR tree-optimization/26169
10681 * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10682 threading jumps.
10683
10684 2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
10685
10686 * df.h (DF_REG_SIZE): Return the length of the initialized
10687 part of the array.
10688
10689 2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
10690
10691 * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10692 __muldf3): Return a correctly signed zero.
10693
10694 2006-02-08 Paolo Bonzini <bonzini@gnu.org>
10695
10696 * passes.c (register_one_dump_file): Accept the current properties
10697 instead of pass number. Adjust call to dump_register. Remove
10698 duplicated code.
10699 (register_dump_files): Now a wrapper around...
10700 (register_dump_files_1): ... this one. Do not modify the pass
10701 structure.
10702 (next_pass_1): Cosmetic fix.
10703 (execute_todo): Keep second parameter only. Use curr_properties
10704 instead of fetching it from the pass structure. Check and set
10705 last_verified.
10706 (execute_one_pass): Handle TODO_set_props. Use curr_properties
10707 instead of fetching it from the pass structure. Fix calls to
10708 execute_todo. Update curr_properties and initialize .vcg RTL dump
10709 after running the pass. Reset last_verified.
10710 * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
10711 at the beginning.
10712 (FIRST_AUTO_NUMBERED_DUMP): New.
10713 (dump_register): Remove "num" parameter, assign it within the
10714 function.
10715 (get_dump_file_name): Modify template for dumps.
10716 * tree-dump.h (dump_register): Adjust prototype.
10717 * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10718 (PROP_trees): Add PROP_gimple_lomp.
10719 (TODO_set_props): New.
10720 * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10721 * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10722 * cfgexpand.c (pass_expand): Destroy PROP_trees.
10723
10724 2006-02-08 Jakub Jelinek <jakub@redhat.com>
10725
10726 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10727 (sparc64-*-linux*): Likewise.
10728 * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10729 * config/sparc/t-linux: New file.
10730 * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10731 __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10732 (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10733 -m32 -mlong-double-128.
10734
10735 * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10736 * config/alpha/t-linux: New file.
10737 * config/alpha/libgcc-alpha-ldbl.ver: New file.
10738
10739 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10740 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10741 (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10742 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10743 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10744 (CPP_ARCH32_SPEC): Remove.
10745
10746 2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
10747
10748 PR tree-optimization/26145
10749 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10750 bbs pointer.
10751
10752 2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10753
10754 PR target/26109
10755 * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10756 >= 240000 when generating code for SOM runtime.
10757 (output_indirect_call): Don't use "b,l" instruction for indirect calls
10758 to $$dyncall when generating code for SOM runtime..
10759
10760 2006-02-07 Dirk Mueller <dmueller@suse.com>
10761
10762 PR c++/18150
10763 * doc/invoke.texi (-Wsequence-point): Update documentation
10764 that -Wsequence-point is implemented for C++ as well.
10765
10766 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10767
10768 * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10769 * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10770 (LIB_SPEC): Likewise.
10771 * doc/invoke.texi (SPARC options): Document -pthread.
10772
10773 2006-02-07 Geoffrey Keating <geoffk@apple.com>
10774
10775 * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
10776 PIC addresses.
10777
10778 2006-02-07 Roger Sayle <roger@eyesopen.com>
10779
10780 * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
10781 Correct comment describing BOOLEAN_TYPE.
10782
10783 2006-02-07 Dirk Mueller <dmueller@suse.com>
10784
10785 * c.opt: C++ frontend supports -Wdiv-by-zero.
10786 * c-opts.c (c_common_handle_option): Remove dead case.
10787
10788 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10789
10790 * configure.ac (TLS assembler check): Do not enable TLS by
10791 default on SPARC/Solaris before version 10.
10792 * configure: Regenerate.
10793
10794 2006-02-07 David Edelsohn <edelsohn@gnu.org>
10795
10796 * doc/invoke.texi (xl-compat): Document conversion and support
10797 routine names.
10798
10799 2006-02-07 Jeff Law <law@redhat.com>
10800
10801 * tree-vrp.c (find_conditional_asserts): Update comments.
10802 (simplify_stmt_for_jump_threading): New.
10803 (identify_jump_threads, finalize_jump_threads): New.
10804 (vrp_finalize): Call identify_jump_threads.
10805 (execute_vrp): Call finalize_jump_threads.
10806 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
10807 (vrp_element, vrp_data, vrp_element_p): Remove.
10808 (vrp_hash_elt, vrp_variables_stack): Remove.
10809 (vrp_hash, vrp_eq, record_range): Remove.
10810 (simplify_cond_and_lookup_avail_expr): Remove.
10811 (extract_range_from_cond): Remove.
10812 (thread_across_edge): Relocated into tree-ssa-threadedge.c.
10813 (simplify_stmt_for_jump_threading): New.
10814 (dom_thread_across_edge): New wrapper.
10815 (tree_ssa_dominator_optimize): No longer initialize or
10816 finalize any of the VRP datastructures. Remove iteration
10817 step and simplify as a result of removal of iteration step.
10818 (pass_dominator): Perform a cfg cleanup after DOM.
10819 (dom_opt_finalize_block): Use the new common routines
10820 for threading jumps. Simplify stack management slightly.
10821 No longer need to unwind VRP state.
10822 (record_equivalences_from_incoming_edge): No longer record
10823 VRP information.
10824 (eliminate_redundant_computations): No longer call
10825 simplify_cond_and_lookup_avail_expr.
10826 * tree-flow.h (potentially_threadable_block): Prototype.
10827 (thread_across_edge): Likewise.
10828 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
10829 (tree-ssa-threadedge.o): Add dependencies.
10830 * tree-ssa-threadedge.c: New file.
10831 * passes.c (init_optimization_passes): Merge PHIs before
10832 calling VRP. Run VRP again late in the SSA optimization pipeline.
10833
10834 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10835
10836 * df-core.c (df_set_blocks): Do not dereference function pointers.
10837 (df_finish1): Likewise.
10838 (df_hybrid_search_forward): Likewise.
10839 (df_hybrid_search_backward): Likewise.
10840 (df_iterative_dataflow): Likewise.
10841 (df_analyze_problem): Likewise.
10842 (df_compact_blocks): Likewise.
10843 (df_dump): Likewise.
10844 * df-scan.c (df_rescan_blocks): Likewise.
10845 (df_record_entry_block_defs): Likewise.
10846
10847 * genconditions.c (write_conditions): Guard the definition of
10848 'insn_conditions' with the check on GCC version.
10849 (write_writer): Guard the traversal 'insn_conditions' with
10850 the check on GCC version.
10851
10852 2006-02-07 Richard Guenther <rguenther@suse.de>
10853
10854 PR c++/26140
10855 Revert
10856 2006-01-30 Richard Guenther <rguenther@suse.de>
10857 PR c++/23372
10858 * gimplify.c (gimplify_target_expr): Handle easy cases
10859 without creating a temporary.
10860
10861 2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
10862
10863 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
10864 use of float in probability computations. Use edge probabilities
10865 in place of statically computed probabilities.
10866 (min_spec_prob): New static variable.
10867 (schedule_insns): Initialize it.
10868 (GET_SRC_PROB): Removed.
10869 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
10870
10871 2006-02-07 Alexandre Oliva <aoliva@redhat.com>
10872
10873 PR debug/24444
10874 * config/ia64/unwind-ia64.c: Revert last change.
10875 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
10876 (INCOMING_FRAME_SP_OFFSET): Define.
10877
10878 2006-02-06 Roger Sayle <roger@eyesopen.com>
10879
10880 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
10881
10882 2006-02-07 Ben Elliston <bje@au.ibm.com>
10883
10884 * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
10885 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
10886 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
10887 (ix86_return_in_memory): Handle TDmode.
10888 (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
10889 (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
10890
10891 2006-02-06 Richard Sandiford <richard@codesourcery.com>
10892
10893 * reorg.c (dbr_schedule): Use dump_file instead of file.
10894
10895 2006-02-06 Steve Ellcey <sje@cup.hp.com>
10896
10897 PR target/25917
10898 * config/ia64/predicates.md (extr_len_operand): New predicate.
10899 * config/ia64/ia64.md (extv): Tighten constraints.
10900 (extzv): Ditto.
10901 (*tbit_and_2): Ditto.
10902 (*tbit_and_3): Ditto.
10903 (*tbit_or_2): Ditto.
10904 (*tbit_or_3): Ditto.
10905 (*bit_zero): Ditto.
10906 (*bit_one): Ditto.
10907
10908 2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
10909
10910 PR target/23359
10911 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
10912
10913 2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
10914
10915 * tree-vrp.c (execute_vrp): Do not pass dump argument to.
10916 loop_optimizer_init and loop_optimizer_finalize
10917 * tree-ssa-sink.c (execute_sink_code): Ditto.
10918 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10919 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
10920 tree_ssa_loop_done): Ditto.
10921 * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
10922 * sched-ebb.c: Include output.h.
10923 (schedule_ebbs): Do not use dump argument.
10924 * value-prof.h (struct profile_hooks): Remove profile_dump_file.
10925 * loop.c (loop_dump_stream): Removed.
10926 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
10927 argument.
10928 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
10929 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
10930 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
10931 loop_iterations, strength_reduce, record_biv, record_giv,
10932 final_giv_value, check_final_value, check_ext_dependent_givs,
10933 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
10934 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
10935 dump_file instead of loop_dump_stream.
10936 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
10937 argument dump_file.
10938 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
10939 dump argument.
10940 * flow.c (life_analysis, rest_of_handle_life): Ditto.
10941 * haifa-sched.c: Include output.h
10942 (schedule_insns, sched_init): Do not use dump argument.
10943 * mode-switching.c (optimize_mode_switching): Ditto.
10944 * modulo-sched.c (stats_file): Removed.
10945 (print_node_sched_params): Do not call argument dump_file.
10946 (sms_schedule_by_order, loop_canon_p, sms_schedule,
10947 rest_of_handle_sms): Do not use dump argument. Use dump_file instead
10948 of stats_file.
10949 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
10950 use dump argument.
10951 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
10952 rtl_loop_init, rtl_loop_done): Ditto.
10953 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
10954 * predict.c (combine_predictions_for_bb, tree_estimate_probability):
10955 Ditto.
10956 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
10957 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
10958 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
10959 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
10960 * emit-rtl.c (renumber_insns): Ditto.
10961 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
10962 expand_gimple_basic_block, tree_expand_cfg): Ditto.
10963 * regclass.c (regclass): Ditto.
10964 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
10965 remove_ssa_form, rewrite_out_of_ssa): Ditto.
10966 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
10967 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
10968 Ditto.
10969 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
10970 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
10971 to regclass.
10972 * gcse.c (gcse_file, debug_stderr): Removed.
10973 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
10974 rest_of_handle_gcse): Do not use dump argument.
10975 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
10976 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
10977 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
10978 compute_code_hoist_vbeinout, compute_code_hoist_data,
10979 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
10980 compute_store_table, build_store_vectors, insert_insn_start_bb,
10981 insert_store, remove_reachable_equiv_notes, replace_store_insn,
10982 store_motion): Use dump_file instead of gcse_file.
10983 * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
10984 * profile.c (profile_dump_file): Removed.
10985 (branch_prob): Use dump_file instead of profile_dump_file.
10986 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
10987 dump_file.
10988 * tree-ssa-copy.c (dump_copy_of): Ditto.
10989 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
10990 dump file to life_analysis.
10991 * bt-load.c (branch_target_load_optimize): Ditto.
10992 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
10993 renumber_insns.
10994 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
10995 regclass, dbr_schedule): Declaration changed.
10996 * sched-int.h (sched_init): Declaration changed.
10997 * tree-profile.c (tree_profile_dump_file): Removed.
10998 (tree_profile_hooks): Removed profile_dump_file hook.
10999 * rtl-profile (rtl_profile_dump_file): Removed.
11000 (rtl_profile_hooks): emoved profile_dump_file hook.
11001 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
11002 changed.
11003 * c-gimplify.c (c_genericize): Do not call local variable dump_file.
11004 * tree-cfg.c (build_tree_cfg): Ditto.
11005 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
11006 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
11007 Declaration changed.
11008 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
11009 life_analysis and schedule_insns.
11010 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
11011 life_analysis.
11012 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
11013 dbr_schedule.
11014 * config/mips/mips.c (mips_reorg): Ditto.
11015 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
11016 schedule_ebbs.
11017
11018 2006-02-06 Aldy Hernandez <aldyh@redhat.com>
11019
11020 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11021 (s390_mangle_fundamental_type): New.
11022 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11023 Define.
11024
11025 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11026 (alpha_mangle_fundamental_type): New.
11027 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11028 Define.
11029
11030 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11031 Define.
11032 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
11033 Define.
11034 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
11035 (sparc_mangle_fundamental_type): New.
11036
11037 2006-02-06 Jakub Jelinek <jakub@redhat.com>
11038
11039 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
11040 (s390x-*-linux*): Likewise.
11041 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
11042 * config/s390/t-linux: New file.
11043
11044 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
11045
11046 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
11047 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
11048
11049 2006-02-06 Daniel Berlin <dberlin@dberlin.org>
11050
11051 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
11052 (ANTIC_SAFE_LOADS): New macro.
11053 (find_or_generate_expression): Add prototype.
11054 (set_contains_value): Allow null set for sake of not always having
11055 to allocate ANTIC_SAFE_LOADS.
11056 (phi_translate): Move placement of AGGREGATE_TYPE_P check.
11057 Allow COMPONENT_REF too.
11058 (valid_in_set): Allow COMPONENT_REF.
11059 Check ANTIC_SAFE_LOADS too.
11060 (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
11061 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
11062 rename.
11063 (can_PRE_operation): Add COMPONENT_REF.
11064 (create_component_ref_by_pieces): New function.
11065 (create_expression_by_pieces): Use create_component_ref_by_pieces.
11066 (insert_aux): Move AGGREGATE_TYPE_P check here.
11067 (compute_avail): Set bb local stmt uids.
11068 (pass_pre): Use TODO_update_ssa_only_virtuals.
11069
11070 2006-02-06 Ben Elliston <bje@au.ibm.com>
11071
11072 * configure.ac: Unconditionally disable decimal float by default.
11073 * configure: Regenerate.
11074
11075 2006-02-06 Ben Elliston <bje@au.ibm.com>
11076
11077 * read-rtl.c (read_name): Terminate reading on EOF.
11078
11079 2006-02-06 Ben Elliston <bje@au.ibm.com>
11080
11081 * dfp.c (decimal_real_arithmetic): Change second argument type
11082 from int to enum tree_code. Do not always return true, but now
11083 return result of any call to decimal_do helper functions.
11084 * dfp.h (decimal_real_arithmetic): Update prototype.
11085
11086 2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
11087
11088 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
11089
11090 2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
11091
11092 PR tree-opt/25251
11093 * tree-cfg.c (cleanup_dead_labels): Also don't remove
11094 forced labels.
11095
11096 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
11097
11098 * tree-vrp.c (cfg_loops): Removed.
11099 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
11100 Use current_loops instead of cfg_loops. Pass flags to
11101 loop_optimizer_init.
11102 * cfgloopmanip.c (fix_loop_structure): Update only available
11103 information.
11104 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
11105 loop_optimizer_init.
11106 * modulo-sched.c (build_loops_structure): Removed.
11107 (sms_schedule): Use loop_optimizer_init.
11108 * loop-init.c (loop_optimizer_init): Use flags to determine
11109 which properties of loops to prepare.
11110 (rtl_loop_init): Pass flags to loop_optimizer_init.
11111 * tree-ssa-sink.c (execute_sink_code): Ditto.
11112 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
11113 * tree-ssa-pre.c (init_pre): Ditto.
11114 * cfgloop.h (LOOPS_NORMAL): New.
11115 (loop_optimizer_init): Declaration changed.
11116
11117 2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11118
11119 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
11120 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
11121 pa/t-pa.
11122 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
11123 pa/t-pa.
11124 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
11125 pa/x-ada.
11126 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
11127 * pa/t-pa64: Delete quadlib.c rule.
11128 * pa/x-ada: Revert last change.
11129 * pa/t-pa: Revert last change. Delete quadlib.c rule.
11130
11131 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
11132
11133 PR rtl-optimization/26087
11134 * rtlanal.c (canonicalize_condition): Do not cross basic block
11135 boundaries.
11136
11137 2006-02-04 Alexandre Oliva <aoliva@redhat.com>
11138
11139 PR debug/24444
11140 * config/ia64/ia64.c: Include debug.h.
11141 (MAX_ARTIFICIAL_LABEL_BYTES): New.
11142 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
11143 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
11144 (process_epilogue, process_set, process_for_unwind_directive):
11145 Output unwind info only if requested. Add CFA info if requested.
11146 Add new arguments as needed. Adjust callers.
11147 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
11148 incorrect default.
11149 (DWARF2_FRAME_INFO): Define to zero.
11150 * config/ia64/unwind-ia64.c: Remove code that compensated for
11151 the CFA offset error fixed above.
11152 * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
11153 * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
11154 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
11155 -funwind-tables and -fexceptions to enable frame info.
11156 (dwarf2out_frame_init): Define initial CFA even if
11157 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
11158 DWARF2_UNWIND_INFO is nonzero, not just defined.
11159 (dwarf2out_frame_finish): Output non-EH call frame info only
11160 if DWARF2_FRAME_INFO is nonzero.
11161 (convert_cfa_to_loc_list,
11162 compute_frame_pointer_to_cfa_displacement): Define even if
11163 unwind info is not supported.
11164 (gen_subprogram_die): Use the above unconditionally. Remove
11165 legacy alternate code.
11166 * toplev.c (compile_file): Compile in call to
11167 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
11168 (lang_dependent_init): Ditto for dwarf2out_frame_init.
11169
11170 2006-02-04 David Edelsohn <edelsohn@gnu.org>
11171 Jakub Jelinek <jakub@redhat.com>
11172
11173 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
11174 IBM extended float format long double as "g" on powerpc*-linux.
11175
11176 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11177
11178 PR target/25926
11179 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
11180 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
11181
11182 2006-02-03 Jason Merrill <jason@redhat.com>
11183
11184 PR c++/25979
11185 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
11186
11187 PR middle-end/25977
11188 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
11189 on the return slot if it's an NRV.
11190
11191 2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
11192
11193 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
11194 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
11195 rewrite_use): Do not handle USE_OUTER.
11196 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
11197 add_iv_outer_candidates, may_replace_final_value,
11198 determine_use_iv_cost_outer, rewrite_use_outer): Removed.
11199 (find_interesting_uses_op): Functionality of
11200 find_interesting_uses_outer_or_nonlin moved here.
11201 (find_interesting_uses_outside): Use find_interesting_uses_op.
11202
11203 2006-02-03 Alan Modra <amodra@bigpond.net.au>
11204
11205 PR target/25960
11206 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
11207
11208 2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
11209 Ulrich Weigand <uweigand@de.ibm.com>
11210
11211 PR target/25864
11212 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
11213 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
11214 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
11215 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
11216 and dxr fields.
11217 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
11218 (s390_rtx_costs): Use the new fields to calculate rtx costs.
11219 (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
11220 Define secondary reloads for TFmode moves.
11221 (constant_modes): Add TFmode.
11222 (NR_C_MODES): Set to 8.
11223 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
11224 builtin define.
11225 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
11226 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
11227 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
11228 CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
11229 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
11230 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
11231 (FPR mode macro): Add TFmode.
11232 (DSF mode macro): New.
11233 (<de>, <dee> mode attributes): Removed.
11234 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
11235 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
11236 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
11237 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
11238 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
11239 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
11240 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
11241 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
11242 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
11243 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
11244 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
11245 "*negabs<mode>2", "sqrt<mode>2"):
11246 Changed <de> to <xde>. R constraint replaced by <Rf>.
11247 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
11248 <Rf>.
11249 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
11250 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
11251 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
11252 splitters.
11253 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
11254 "extenddftf2", "extendsftf2"): New expanders.
11255 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11256 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
11257 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
11258 * config/s390/s390.opt (mlong-double-128, mlong-double-64):
11259 New options.
11260 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
11261 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
11262 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
11263 __floatditf): Add a GCC_4.1.0 symbol version tag.
11264 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
11265 the new options.
11266
11267 2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
11268
11269 PR target/25377
11270 * config/i386/i386.c (ix86_function_ok_for_sibcall):
11271 Use targetm.binds_local_p instead of TREE_PUBLIC.
11272
11273 2006-02-02 Roger Sayle <roger@eyesopen.com>
11274
11275 * tree.h (TYPE_STRING_FLAG): Document that this field may be used
11276 on INTEGER_TYPEs to indicate that it denotes a character type.
11277 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
11278 signed_char_type_node, unsigned_char_type_node and char_type_node.
11279 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
11280 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
11281 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
11282
11283 2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
11284 Daniel Berlin <dberlin@dberlin.org>
11285
11286 * tree-tailcall.c (arg_needs_copy_p): New function.
11287 (eliminate_tail_call): Use arg_needs_copy_p.
11288 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
11289 (add_virtual_phis): New function.
11290
11291 2006-02-02 Jakub Jelinek <jakub@redhat.com>
11292
11293 * config/sparc/sparc.c (sparc_output_scratch_registers): Use
11294 #ignore instead of #scratch for %g7 .register directive.
11295
11296 2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
11297
11298 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
11299 object files.
11300
11301 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
11302
11303 * flow.c (calculate_global_regs_live): Assert that there aren't any
11304 EDGE_FAKE edges.
11305
11306 2006-02-02 Paolo Bonzini <bonzini@gnu.org>
11307
11308 * tree-flow-inline.h (bsi_after_labels): Rewrite, return
11309 what its name says.
11310 * lambda-code.c (perfect_nestify): Use bsi_insert_before on
11311 bsi_after_labels iterator.
11312 * tree-if-conv.c (find_phi_replacement_condition,
11313 replace_phi_with_cond_modify_expr): Likewise.
11314 * tree-scalar-evolution.c (scev_const_prop): Likewise.
11315 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
11316
11317 2006-02-02 Diego Novillo <dnovillo@redhat.com>
11318
11319 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
11320
11321 2006-02-02 Diego Novillo <dnovillo@redhat.com>
11322
11323 PR 25990
11324 * tree-cfg.c (move_block_to_fn): Clear out the basic block
11325 array after growing it.
11326
11327 2006-02-01 Steve Ellcey <sje@cup.hp.com>
11328
11329 PR middle-end/24901
11330 * fold-const.c (fold_checksum_tree): Change type of buf.
11331
11332 2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
11333
11334 * reload.c (push_secondary_reload): Initialize t_icode.
11335
11336 2006-02-01 Jakub Jelinek <jakub@redhat.com>
11337
11338 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
11339 -msoft-float -mlong-double-128 only issue a warning, but don't
11340 swich to DFmode long double.
11341
11342 2006-02-01 Hans-Peter Nilsson <hp@axis.com>
11343
11344 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
11345 has a constant equivalent, iterate over equivalents for arg0,
11346 calling simplify_relational_operation and if there's a result
11347 cheaper than X, apply fold_rtx and return the result.
11348
11349 2006-02-01 Jan Hubicka <jh@suse.cz>
11350
11351 * opts.c (no_unit_at_a_time_default): New global variable.
11352 (decode_options): Use it.
11353 * opts.h (no_unit_at_a_time_default): Declare.
11354
11355 2006-02-01 Paul Brook <paul@codesourcery.com>
11356
11357 * function.c (assign_parm_setup_reg): Use function argument promotion
11358 rules.
11359 * expr.c (expand_expr_real_1): Use function argument promotion rules
11360 for PARM_DECLs.
11361
11362 2006-02-01 Steve Ellcey <sje@cup.hp.com>
11363
11364 * gcc.c (process_command): Change j to 'unsigned int'.
11365
11366 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11367
11368 PR middle-end/26001
11369 * expr.c (expand_expr_real_1) <case ARRAY_REF>:
11370 Use the corrected index for the character
11371 out of the string constant.
11372
11373 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11374
11375 * mode-switching.c (optimize_mode_switching): Fix size
11376 allocated for bb_info[n_entities].
11377
11378 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11379
11380 * gcc.c (main): Correct type that is allocated for
11381 explicit_link_files.
11382
11383 2006-01-31 Jakub Jelinek <jakub@redhat.com>
11384
11385 * config/s390/s390.c (init_alignment_context): Set
11386 ALIAS_SET_MEMORY_BARRIER on the MEM.
11387 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
11388
11389 2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
11390
11391 PR middle-end/25933
11392 * loop-unroll.c (unroll_loop_runtime_iterations): Free
11393 dom_bbs pointer.
11394 * tree-ssa-live.c (type_var_init): Allocate bitmap after
11395 call to tpa_init.
11396
11397 2006-01-31 Marcin Dalecki <martin@dalecki.de>
11398
11399 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
11400 * regrename.c: Ditto.
11401 * tree-ssa-loop-im.c: Ditto.
11402 * tree-dump.c: Ditto.
11403 * tree-complex.c: Ditto.
11404 * genrecog.c: Ditto.
11405 * tree-ssa-threadupdate.c: Ditto.
11406 * tracer.c: Ditto.
11407 * java/class.c: Ditto.
11408 * java/jcf-parse.c: Ditto.
11409 * java/resource.c: Ditto.
11410 * java/except.c: Ditto.
11411 * java/jvspec.c: Ditto.
11412 * java/jcf-write.c: Ditto.
11413 * java/jcf-path.c: Ditto.
11414 * java/gjavah.c: Ditto.
11415 * java/zextract.c: Ditto.
11416 * java/jcf-io.c: Ditto.
11417 * java/jcf.h: Ditto.
11418 * java/buffer.c: Ditto.
11419 * java/lang.c: Ditto.
11420 * java/parse-scan.y: Ditto.
11421 * java/lex.c: Ditto.
11422 * java/lex.h: Ditto.
11423 * cfgloopmanip.c: Ditto.
11424 * postreload-gcse.c: Ditto.
11425 * tree-ssa-loop-manip.c: Ditto.
11426 * postreload.c: Ditto.
11427 * tree-ssa-loop-ch.c: Ditto.
11428 * loop.c: Ditto.
11429 * ipa-cp.c: Ditto.
11430 * cppspec.c: Ditto.
11431 * diagnostic.c: Ditto.
11432 * final.c: Ditto.
11433 * genoutput.c: Ditto.
11434 * gcc.c: Ditto.
11435 * cfghooks.c: Ditto.
11436 * cfgloopanal.c: Ditto.
11437 * objc/objc-act.c: Ditto.
11438 * gcov.c: Ditto.
11439 * genextract.c: Ditto.
11440 * genautomata.c: Ditto.
11441 * pretty-print.c: Ditto.
11442 * genemit.c: Ditto.
11443 * cgraphunit.c: Ditto.
11444 * flow.c: Ditto.
11445 * df-scan.c: Ditto.
11446 * haifa-sched.c: Ditto.
11447 * dominance.c: Ditto.
11448 * dbxout.c: Ditto.
11449 * tree-ssa-loop-ivopts.c: Ditto.
11450 * df-core.c: Ditto.
11451 * mode-switching.c: Ditto.
11452 * modulo-sched.c: Ditto.
11453 * graph.c: Ditto.
11454 * ipa-pure-const.c: Ditto.
11455 * cse.c: Ditto.
11456 * fix-header.c: Ditto.
11457 * web.c: Ditto.
11458 * tree-stdarg.c: Ditto.
11459 * ipa-utils.c: Ditto.
11460 * loop-init.c: Ditto.
11461 * ipa-inline.c: Ditto.
11462 * cfganal.c: Ditto.
11463 * global.c: Ditto.
11464 * alloc-pool.c: Ditto.
11465 * dwarf2out.c: Ditto.
11466 * opts.c: Ditto.
11467 * genattrtab.c: Ditto.
11468 * tree-ssa-loop-ivcanon.c: Ditto.
11469 * predict.c: Ditto.
11470 * timevar.c: Ditto.
11471 * lcm.c: Ditto.
11472 * fortran/gfortranspec.c: Ditto.
11473 * regmove.c: Ditto.
11474 * local-alloc.c: Ditto.
11475 * langhooks.c: Ditto.
11476 * function.c: Ditto.
11477 * tree-vectorizer.c: Ditto.
11478 * gcse.c: Ditto.
11479 * ipa-type-escape.c: Ditto.
11480 * alias.c: Ditto.
11481 * tree-if-conv.c: Ditto.
11482 * profile.c: Ditto.
11483 * ipa.c: Ditto.
11484 * tree-data-ref.c: Ditto.
11485 * loop-unroll.c: Ditto.
11486 * treelang/treetree.c: Ditto.
11487 * calls.c: Ditto.
11488 * bt-load.c: Ditto.
11489 * ggc-common.c: Ditto.
11490 * except.c: Ditto.
11491 * coverage.c: Ditto.
11492 * cselib.c: Ditto.
11493 * tree-cfgcleanup.c: Ditto.
11494 * tree-ssa-pre.c: Ditto.
11495 * cfgcleanup.c: Ditto.
11496 * loop-invariant.c: Ditto.
11497 * loop-iv.c: Ditto.
11498 * ipa-prop.c: Ditto.
11499 * print-tree.c: Ditto.
11500 * conflict.c: Ditto.
11501 * ggc-page.c: Ditto.
11502 * sched-deps.c: Ditto.
11503 * regclass.c: Ditto.
11504 * tree-object-size.c: Ditto.
11505 * combine.c: Ditto.
11506 * bb-reorder.c: Ditto.
11507 * resource.c: Ditto.
11508 * var-tracking.c: Ditto.
11509 * cfgloop.c: Ditto.
11510 * df-problems.c: Ditto.
11511 * reg-stack.c: Ditto.
11512 * tlink.c: Ditto.
11513 * gccspec.c: Ditto.
11514 * sched-rgn.c: Ditto.
11515 * tree-ssa-structalias.c: Ditto.
11516 * tree-ssa-reassoc.c: Ditto.
11517 * config/darwin-c.c: Ditto.
11518 * config/darwin.c: Ditto.
11519 * config/arm/arm.c: Ditto.
11520 * cfgrtl.c: Ditto.
11521 * collect2.c: Ditto.
11522 * reload1.c: Ditto.
11523
11524 2006-01-31 Nicolas Pitre <nico@cam.org>
11525
11526 * arm.md (smaxsi3): Make aware of smax_m1.
11527 (smax_m1): New.
11528
11529 2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
11530
11531 * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11532
11533 2006-01-31 Richard Guenther <rguenther@suse.de>
11534
11535 * doc/invoke.texi (-msselibm): Document.
11536 * target.h (expand_library_builtin): New target hook.
11537 * builtins.c (expand_builtin): Use expand_library_builtin.
11538 (default_expand_library_builtin): New function.
11539 * gcc.c (LINK_GCC_MATH_SPEC): Define.
11540 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11541 (link_gcc_math_spec): Declare.
11542 (static_specs): Add link_gcc_math_spec.
11543 * expr.h (default_expand_library_builtin): Declare.
11544 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11545 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11546 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11547 * config/i386/i386.opt (msselibm): New target option.
11548 * config/i386/i386.c (ix86_builtin_function_variants): New array.
11549 (ix86_init_sse_abi_builtins): New function.
11550 (ix86_expand_library_builtin): Likewise.
11551 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11552 (override_options): Handle error conditions wrt -msselibm.
11553 (ix86_builtins): Add function codes for SSE2 ABI builtins.
11554 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11555 * doc/extend.texi (__builtin_sse2_*): Document new target specific
11556 builtins.
11557
11558 2006-01-31 Richard Guenther <rguenther@suse.de>
11559 Paolo Bonzini <bonzini@gnu.org>
11560
11561 * doc/install.texi (--disable-libgcc-math): Document.
11562
11563 2006-01-30 Marcin Dalecki <martin@dalecki.de>
11564
11565 * expr.h (expand_normal): new inline function.
11566 * builtins.c: use it, use EXPAND_NORMAL explicitely.
11567 * dojump.c: use it.
11568 * dwarf2out.c: use it.
11569 * expr.c: use it.
11570 * calls.c: use it.
11571 * expmed.c: use it.
11572 * except.c: use it.
11573 * config/sparc/sparc.c: use it.
11574 * config/i386/i386.c: use it.
11575 * config/rs6000/rs6000.c: use it.
11576 * config/arm/arm.c: use it.
11577 * config/mips/mips.c: use it.
11578 * stmt.c: use it, use EXPAND_NORMAL explicitely.
11579
11580 2006-01-30 Roger Sayle <roger@eyesopen.com>
11581
11582 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11583 argv to the appropriate type.
11584
11585 2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
11586
11587 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11588 unreachable code.
11589
11590 2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
11591
11592 PR target/26018
11593 * config/s390/s390.c (struct machine_function): New flag
11594 decomposed_literal_pool_addresses_ok_p.
11595 (s390_reorg): Set it before final stage of literal pool transforms.
11596 (s390_decompose_address): Only accept displacements of the form
11597 (minus (label_ref ...) (label_ref ...)) if that flag is set.
11598
11599 2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
11600
11601 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11602 the comparison routine return.
11603
11604 2006-01-30 Michael Matz <matz@suse.de>
11605
11606 * global.c (find_reg): Only evict for global regs.
11607 Take n_refs into account and dump more info.
11608
11609 2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
11610
11611 PR target/14798:
11612 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11613 (pragma_trap, pragma_nosave_low_regs): Likewise.
11614 (current_function_anonymous_args): Likewise.
11615 (sh_deferred_function_attributes): New variable.
11616 (sh_deferred_function_attributes_tail): Likewise.
11617 (print_operand): For '@', look up trap_exit attribute.
11618 (calc_live_regs): Look up trapa_handler attribute. For trapa
11619 handlers, save/restore fpscr, but don't do any other
11620 interrupt-specific saves.
11621 Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11622 Fix check for partially saved registers to check for SHmedia.
11623 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11624 (sh_output_function_epilogue): Don't clear any of the removed
11625 variables.
11626 (sh_insert_attributes): Don't check pragma_interrupt.
11627 Insert deferred attributes. Check that interrupt attribute is
11628 present for other attributes that require its presence.
11629 (sh_attribute_table): Add new attributes trapa_handler and
11630 nosave_low_regs.
11631 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11632 Don't check for pragma_interrupt. Don't store argument.
11633 * sh.h (pragma_interrupt, sp_switch): Don't declare.
11634 (sh_deferred_function_attributes): Declare.
11635 (sh_deferred_function_attributes_tail): Likewise.
11636 * sh.md (sp_switch_1): Add operand. Change generator caller.
11637 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11638 (*return_i): Don't use when trap_exit attribute is in effect.
11639 (*return_trapa): New insn pattern.
11640 * sh-c.c: New file.
11641 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11642 setting c_target_objs and cxx_target_objs.
11643 * t-sh: Add rule for sh-c.o.
11644
11645 2006-01-30 Richard Guenther <rguenther@suse.de>
11646
11647 PR c++/23372
11648 * gimplify.c (gimplify_target_expr): Handle easy cases
11649 without creating a temporary.
11650
11651 2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
11652
11653 * vec.h (safe_grow): Remove duplicated line.
11654
11655 2006-01-29 Diego Novillo <dnovillo@redhat.com>
11656
11657 PR 25874
11658 * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11659 (expand_omp): ... here.
11660 (expand_omp_parallel): Only remove barriers for combined
11661 parallel+workshare constructs.
11662
11663 2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
11664
11665 Revert
11666
11667 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
11668 * tree.c (build_qualified_type): Chain the new type to the original
11669 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11670 a POINTER_TYPE or a REFERENCE_TYPE respectively.
11671 (build_pointer_type_for_mode): Only return unqualified types.
11672 (build_reference_type_for_mode): Likewise.
11673
11674 2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
11675
11676 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11677 * Makefile.in (CXX_COMPAT_WARN): Define.
11678 * configure: Regenerate.
11679
11680 2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
11681
11682 PR tree-opt/25911
11683 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11684 to an if check.
11685
11686 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11687
11688 * toplev.c: Fix thinko.
11689
11690 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11691 Marcin Dalecki <martin@dalecki.de>
11692
11693 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11694 (push_srcloc): Use XNEW.
11695 (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11696
11697 2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
11698
11699 * df-core.c (df_set_blocks): Deleted all variable.
11700
11701 2006-01-28 Ian Lance Taylor <ian@airs.com>
11702
11703 * cgraphunit.c (cgraph_assemble_pending_functions): Call
11704 cgraph_output_pending_asms.
11705
11706 2006-01-28 Zack Weinberg <zackw@panix.com>
11707
11708 * c.opt: Add -W(no-)overlength-strings.
11709 * doc/invoke.texi: Document it.
11710 * c-opts.c (c_common_handle_option): -pedantic implies
11711 -Woverlength-strings, if not explicitly disabled already.
11712 (c_common_post_options): -Woverlength-strings defaults to off, and
11713 is always off for C++.
11714 * c-common.c (fix_string_type): Issue warning about strings longer
11715 than is portable only if warn_overlength_strings. Rearrange code
11716 a little for clarity.
11717 * configure.in: Check for -Wno-overlength-strings as well before
11718 enabling -pedantic in stage 1.
11719 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11720 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11721
11722 * genconditions.c (write_header, write_one_condition)
11723 (write_conditions, write_writer): Consolidate very long strings
11724 that were broken up to fit in C89 portable limit. Don't use
11725 printf when fputs will do.
11726
11727 2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
11728
11729 * combine.c (simplify_comparison <AND>): Check
11730 TRULY_NOOP_TRUNCATION before start using a subreg.
11731
11732 * config/mips/mips.md (*branch_zero<mode>,
11733 *branch_zero<mode>_inverted, *branch_equality<mode>,
11734 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11735 Remove mode check from comparisons.
11736
11737 2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
11738
11739 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11740
11741 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11742
11743 * expmed.c (const_mult_add_overflow_p): Remove.
11744 * expr.h: Remove the prototype for const_mult_add_overflow_p.
11745
11746 * recog.c (validate_replace_rtx_subexp): Remove.
11747 * recog.h: Remove the prototype for
11748 validate_replace_rtx_subexp.
11749
11750 * integrate.h: Remove the prototype for
11751 copy_decl_for_inlining.
11752 * rtl.h: Remove the prototype for mark_constant_function.
11753 * tree-vectorizer.h: Remove the prototype for
11754 vect_strip_conversion.
11755
11756 * modulo-sched.c (create_partial_schedule,
11757 free_partial_schedule, reset_partial_schedule): Make them
11758 static.
11759
11760 * hooks.c (hook_bool_rtx_int_false): Remove.
11761 * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11762
11763 2006-01-28 David Edelsohn <edelsohn@gnu.org>
11764
11765 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11766 and -mlong-double-128 are incompatible.
11767 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11768 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11769 (TARGET_LIBGCC2_CFLAGS): Define.
11770 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11771 (TARGET_LIBGCC2_CFLAGS): Same.
11772 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11773
11774 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11775
11776 PR c/19606.
11777 * c-typeck.c (build_binary_op): Perform implicit casts of
11778 operands before shortening them.
11779
11780 * cfgloopmanip.c (split_loop_bb): Remove.
11781 * cfgloop.h: Remove the prototype for split_loop_bb.
11782
11783 * cfgloop.c (flow_loop_outside_edge_p): Remove.
11784 * cfgloop.h: Remove the prototype for
11785 flow_loop_outside_edge_p.
11786
11787 * emit-rtl.c (init_virtual_regs): Make it static.
11788 * function.h: Remove the prototype for init_virtual_regs.
11789
11790 * recog.c (peephole2_optimize): Make it static.
11791 * recog.h: Remove the prototype for peephole2_optimize.
11792
11793 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11794
11795 * df-scan.c (df_record_entry_block_defs): Check if
11796 INCOMING_RETURN_ADDR_RTX is defined.
11797
11798 2006-01-27 Daniel Berlin <dberlin@dberlin.org>
11799 Kenneth Zadeck <zadeck@naturalbridge.com>
11800
11801 PR rtl-optimization/24762
11802 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11803 * targhooks.c (hook_void_bitmap): New hook prototype.
11804 * targhoohs.h (hook_void_bitmap): Ditto.
11805 * bitmap.h (bitmap_head_def): Moved to coretypes.h.
11806 * coretypes.h (bitmap_head_def): Moved from bitmap.h.
11807 * target.h (live_on_entry): New function pointer.
11808 * df-scan.c (df_all_hard_regs): Removed.
11809 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
11810 (df_scan_free_internal): Added df->entry_block_defs.
11811 (df_scan_alloc): Ditto.
11812 (df_scan_dump): Ditto.
11813 (df_uses_record): Plumbed flag field properly thru calls.
11814 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
11815 This part fixes PR24762.
11816 (df_bb_refs_record): Added code to make the frame and arg
11817 pointers live in EH blocks.
11818 (df_refs_record): Added call to df_record_entry_block_defs.
11819 (df_record_entry_block_defs): New function.
11820 * df-core.c: Added comments to describe new artifical defs.
11821 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
11822 (entry_block_defs): New field in struct df.
11823 (df_all_hard_regs): Deleted.
11824 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11825 * df-problems.c (df_ru_bb_local_compute_process_def):
11826 Added code to handle artifical defs in the entry to a function.
11827 (df_ru_bb_local_compute): Ditto.
11828 (df_rd_bb_local_compute_process_def): Ditto.
11829 (df_rd_bb_local_compute): Ditto.
11830 (df_lr_bb_local_compute): Ditto.
11831 (df_ur_bb_local_compute): Ditto.
11832 (df_urec_bb_local_compute): Ditto.
11833 (df_chain_create_bb): Ditto.
11834 (df_ur_local_finalize): Removed entry.
11835 (df_urec_init): Ditto.
11836 (df_urec_local_finalize): Ditto.
11837 (df_ri_bb_compute): Added detection of last use of pseudos.
11838 * Makefile.in (df-scan.o): Updated dependencies.
11839 * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
11840 * config/mips/mips.c (mips_set_live_on_entry): Added.
11841 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
11842 for target hook.
11843 * dce.c (marked_insn_p): Added code to handle artifical defs.
11844
11845 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11846
11847 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
11848 intrinsic.
11849 (_mm_cvtsi128_si64): Likewise.
11850 (_mm_cvtsd_si64): Likewise.
11851 (_mm_cvttsd_si64): Likewise.
11852 (_mm_cvtsi64_sd): Likewise.
11853 (_mm_cvtsi64_si128): Likewise.
11854 * config/i386/mmintrin.h (_m_from_int64): Likewise.
11855 (_mm_cvtsi64_m64): Likewise.
11856 (_m_to_int64): Likewise.
11857 (_mm_cvtm64_si64): Likewise.
11858 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
11859 (_mm_cvttss_si64): Likewise.
11860 (_mm_cvtsi64_ss): Likewise.
11861 (_mm_cvtss_f32): Likewise.
11862
11863 2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
11864
11865 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
11866 for pragma redefine_extname.
11867
11868 2006-01-27 Jakub Jelinek <jakub@redhat.com>
11869
11870 PR target/25864
11871 * libgcc-std.ver: Add GCC_4.1.0 symbol version.
11872 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
11873 -mno-minimal-toc to previous content.
11874 (bispecs): Remove goal.
11875 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
11876 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
11877 compatibility aliases on powerpc-*-*gnu*.
11878 * config/rs6000/libgcc-ppc-glibc.ver: New file.
11879 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
11880 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
11881 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
11882 (ldblspecs): New goal.
11883 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
11884 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
11885 _df_to_tf.
11886 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
11887 L_sf_to_tf or L_df_to_tf is defined.
11888
11889 2006-01-27 David Edelsohn <edelsohn@gnu.org>
11890 Alan Modra <amodra@bigpond.net.au>
11891
11892 PR target/25864
11893 * config/rs6000/linux.h (POWERPC_LINUX): Define.
11894 * config/rs6000/linux64.h (POWERPC_LINUX): Define.
11895 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
11896 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
11897 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
11898 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
11899 (rs6000_override_options): Initialize rs6000_ieeequad.
11900 Initialize TFmode format to ibm_extended_format if not
11901 TARGET_IEEEQUAD.
11902 (rs6000_handle_option): Accept -mabi= ibmlongdouble and
11903 ieeelongdouble.
11904 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
11905 (rs6000_return_in_memory): Only return IEEEQUAD in memory.
11906 (function_arg_advance): IBM long double passed in two FPRs, not
11907 split.
11908 (function_arg): IBM long double passed in FPRs.
11909 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
11910 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
11911 Only multireg GPR aligned.
11912 (rs6000_init_libfuncs): Enable IBM long double functions if not
11913 IEEEQUAD.
11914 (rs6000_generate_compare): Use IBM long double compare if not
11915 TARGET_IEEEQUAD.
11916 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
11917 (TARGET_IEEEQUAD): Define.
11918 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
11919 not TARGET_IEEEQUAD.
11920 * config/rs6000/rs6000.md: Enable TFmode patterns if
11921 !TARGET_IEEEQUAD.
11922 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11923 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11924 and -mlong-double-128 are incompatible.
11925 * doc/invoke.texi (-mabi): Collect options together. Add
11926 ibmlongdouble and ieeelongdouble.
11927
11928 2006-01-27 Richard Sandiford <richard@codesourcery.com>
11929
11930 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
11931 opaque type.
11932 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
11933 * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
11934 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
11935 * rtl.h (rtunion_def): Remove rt_ptr.
11936 (X0PTR): Delete.
11937 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
11938 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
11939 * config/i386/winnt.c (i386_pe_mark_dllexport)
11940 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
11941
11942 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
11943
11944 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
11945
11946 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11947
11948 PR other/24829
11949 PR target/24831
11950 * gthr-dce.h: Do not gthrw-ify pthread_once_init,
11951 pthread_key_delete. From John David Anglin. gthrw-ify
11952 pthread_getunique_np only if it it's not a macro. Delete
11953 UNUSED macro.
11954 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
11955 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
11956 __gthread_objc_condition_signal, __gthread_key_delete): Add
11957 "__attribute__ ((__unused__))" to unused arguments.
11958 (__gthread_recursive_mutex_init_function): Add missing return.
11959 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
11960 gthr-posix95.h: Use macro-based approach for name redirection
11961 on targets missing weakref.
11962
11963 2006-01-26 Zack Weinberg <zackw@panix.com>
11964
11965 * genconditions.c (write_header): In generated code, #ifdef out
11966 all includes and fake declarations, except includes of bconfig.h
11967 and system.h, unless GCC_VERSION >= 3001. Do not include
11968 gensupport.h in any case.
11969 (write_conditions): Generate a definition of struct c_test. Add
11970 a comment to the generated #endif.
11971 (write_one_condition): Escape backslashes in string too.
11972 (write_writer): Generated code must escape backslashes and quote
11973 marks (but not newlines) in the strings it writes.
11974 * Makefile.in (build/gencondmd.o): Update dependencies.
11975
11976 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11977
11978 PR target/25961
11979 * Makefile.in (insn-automata.o): Add header file dependencies.
11980 * genautomata.c: Add includes.
11981
11982 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11983
11984 PR target/25961
11985 * Makefile.in (insn-automata.o): Add -Wno-error flag.
11986
11987 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
11988
11989 * configure.ac: Expect target tools paths to be passed from the toplevel
11990 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
11991 AS_SET_VAR_IF.
11992 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
11993
11994 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11995
11996 PR c/25892
11997 * c.opt (Wpointer-sign): Init to -1.
11998 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
11999 OPT_pedantic, to 0 otherwise.
12000 * doc/invoke.texi: Update.
12001
12002 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
12003
12004 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
12005 constants provided by 80387 instructions in the destination mode.
12006
12007 2006-01-26 Richard Guenther <rguenther@suse.de>
12008 Andrew Pinski <pinskia@physics.uc.edu>
12009
12010 PR tree-opt/21470
12011 partial PR tree-opt/17064
12012 * tree-ssa-structalias.c (intra_create_variable_infos):
12013 Create heap variables for incoming parameters if
12014 flag_argument_noalias > 1.
12015 (find_what_p_points_to): Look through default defs of
12016 parameter decls.
12017
12018 2006-01-26 Jeff Law <law@redhat.com>
12019
12020 PR ada/25900
12021 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
12022 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
12023 within the VR_RANGE, use the VR_RANGE as the result, not the
12024 VR_ANTI_RANGE.
12025 (adjust_range_with_scev): Reject ranges from SCEV which are out of
12026 bounds for the type.
12027
12028 2006-01-26 Daniel Berlin <dberlin@dberlin.org>
12029
12030 * tree-ssa-alias.c (maybe_create_global_var): Change
12031 subvar walking to an assertion that we don't have subvar'd variables.
12032
12033 2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
12034
12035 PR C/25861
12036 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
12037 Use a new variable, inner. PARM_DECLs are always non-weak.
12038
12039 2006-01-26 Shantonu Sen <ssen@opendarwin.org>
12040
12041 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
12042 --disable-checking.
12043
12044 2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
12045
12046 * config/mips/mips.md (*clear_upper32): New combiner pattern.
12047
12048 2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
12049
12050 * arm.md (smaxsi3, sminsi3): Convert to define_expand.
12051 (smax_insn, smin_insn, smax_0, smin_0): New.
12052
12053 2006-01-26 Hans-Peter Nilsson <hp@axis.com>
12054
12055 PR target/25947
12056 * config/cris/cris.c (cris_order_for_addsi3): New function.
12057 * config/cris/cris-protos.h: Prototype it.
12058 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
12059 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
12060 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
12061 (split for "op.S1 [rx=rx+i],ry (swapped)")
12062 (split for "op(s|u).S1 [rx=rx+i],ry")
12063 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
12064 Apply cris_order_for_addsi3 when generating addsi3 insns.
12065
12066 2006-01-25 Diego Novillo <dnovillo@redhat.com>
12067
12068 * tree.h (TREE_RANGE_CHECK): Fix range predicate.
12069 (TREE_BLOCK): Add call to EXPR_CHECK.
12070
12071 2006-01-25 Diego Novillo <dnovillo@redhat.com>
12072
12073 PR 25886
12074 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
12075 * tree-pretty-print.c (dump_omp_clause): Extract from ...
12076 (dump_omp_clauses): ... here.
12077 (dump_generic_node): Handle OMP_CLAUSE.
12078 * tree.c (omp_clause_num_ops): New.
12079 (omp_clause_code_name): New.
12080 (tree_code_size): Handle OMP_CLAUSE.
12081 (tree_size): Likewise.
12082 (make_node): Document handling of OMP_CLAUSE.
12083 (tree_node_structure): Handle OMP_CLAUSE.
12084 (omp_clause_check_failed): New.
12085 (omp_clause_range_check_failed): New.
12086 (omp_clause_operand_check_failed): New.
12087 (build_omp_clause): New.
12088 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
12089 * tree.h (enum omp_clause_code): Declare.
12090 (OMP_CLAUSE_SUBCODE_CHECK): Define.
12091 (OMP_CLAUSE_RANGE_CHECK): Define.
12092 (OMP_CLAUSE_ELT_CHECK): Define.
12093 (omp_clause_check_failed): Declare.
12094 (omp_clause_operand_check_failed): Declare.
12095 (omp_clause_range_check_failed): Declare.
12096 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
12097 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
12098 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
12099 (OMP_CLAUSE_LASTPRIVATE): Likewise.
12100 (OMP_CLAUSE_IF_EXPR): Likewise.
12101 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
12102 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
12103 (OMP_CLAUSE_REDUCTION_CODE): Likewise.
12104 (OMP_CLAUSE_REDUCTION_INIT): Likewise.
12105 (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
12106 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
12107 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
12108 (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
12109 (OMP_CLAUSE_DEFAULT_KIND): Likewise.
12110 (OMP_CLAUSE_CODE): Define.
12111 (OMP_CLAUSE_SET_CODE): Define.
12112 (OMP_CLAUSE_CODE): Define.
12113 (OMP_CLAUSE_OPERAND): Define.
12114 (struct tree_omp_clause): Declare.
12115 (union tree_node): Add field 'omp_clause'.
12116 * treestruct.def (TS_OMP_CLAUSE): Define.
12117 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
12118 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
12119 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
12120 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
12121 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
12122 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
12123 (OMP_CLAUSE): Define.
12124 * print-tree.c (print_node): Handle OMP_CLAUSE.
12125 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
12126 * c-typeck.c: Likewise.
12127 * gimplify.c: Likewise.
12128 * c-omp.c: Likewise.
12129 * tree-nested.c: Likewise.
12130 * tree-inline.c: Likewise.
12131 * c-parser.c: Likewise.
12132 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
12133 clauses.
12134
12135 2006-01-25 Roger Sayle <roger@eyesopen.com>
12136
12137 PR rtl-optimization/25703
12138 * combine.c (try_combine): Handle zero_extract and strict_low_part
12139 of non-lowpart SUBREGs for constant reg_subword_p set optimization.
12140
12141 2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
12142
12143 * global.c: Fix comment typos.
12144
12145 2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
12146
12147 PR target/25758
12148 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
12149 Use output_addr_const instead of assemble_name.
12150
12151 2006-01-25 Paolo Bonzini <bonzini@gnu.org>
12152
12153 * Makefile.in (sched-vis.o): Update dependencies.
12154 * haifa-sched.c (sched_finish): Clear current_sched_info.
12155 * cfg.c (dump_bb_info): New, split from dump_flow_info.
12156 (dump_flow_info): Call it.
12157 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
12158 a slim RTL dump.
12159 * basic-block.h (dump_bb_info): Declare.
12160 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
12161 option, and apply options only for dump files whose TDF_RTL,
12162 TDF_TREE, or TDF_IPA bits match.
12163 * rtl.h: Declare new functions exported from sched-vis.c.
12164 * sched-vis.c: Enable also if scheduling is not used.
12165 (print_value): Print the mode of registers if not inside scheduling.
12166 (print_insn): Make it work outside the scheduler. Beautify the output
12167 a bit.
12168 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
12169
12170 2006-01-25 Richard Sandiford <richard@codesourcery.com>
12171
12172 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
12173 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
12174 a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
12175 depending on the value of CONSTANT_POOL_ADDRESS_P.
12176 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
12177 SYMBOL_REF_DECL.
12178 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
12179 rather than SYMBOL_REF_DECL.
12180 (rtx_constant_pool): Remove const_rtx_sym_htab.
12181 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
12182 (init_varasm_status): Don't initialize const_rtx_sym_htab.
12183 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
12184 Remove handling of const_rtx_sym_htab.
12185 (find_pool_constant): Delete.
12186 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
12187 rather than find_pool_constant.
12188 (get_pool_constant_for_function): Delete.
12189 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
12190 find_pool_constant.
12191 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
12192 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
12193 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
12194 (SYMBOL_REF_CONSTANT): New macro.
12195 (get_pool_constant_for_function): Delete.
12196 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
12197 rather than SYMBOL_REF_DECL.
12198 (i386_pe_mark_dllimport): Likewise.
12199 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
12200 rather than SYMBOL_REF_DECL.
12201 * config/darwin.c (machopic_indirect_data_reference): Likewise.
12202 (machopic_indirect_call_target): Likewise.
12203
12204 2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
12205
12206 * flow.c (delete_noop_moves): Add missing EOL to dump message.
12207
12208 2006-01-25 Richard Sandiford <richard@codesourcery.com>
12209
12210 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
12211
12212 2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
12213
12214 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
12215
12216 2006-01-24 David Daney <ddaney@avtrex.com>
12217
12218 PR java/25816
12219 * configure.ac (enable_tls): New enable option.
12220 (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
12221 * configure: Regenerate.
12222 * doc/install.texi (--enable-tls): Document new option.
12223 (--disable-tls): Ditto.
12224
12225 2006-01-24 Richard Henderson <rth@redehat.com>
12226
12227 * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
12228 * alias.c (true_dependence): Respect it.
12229 (canon_true_dependence, write_dependence_p): Likewise.
12230 * builtins.c (get_builtin_sync_mem): Set it.
12231
12232 2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
12233
12234 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
12235 efficient way.
12236
12237 2006-01-24 DJ Delorie <dj@redhat.com>
12238
12239 * expmed.c (store_bit_field): Don't arbitrarily deny using insv
12240 for storing constants in single-bit bitfields.
12241
12242 2006-01-25 Ben Elliston <bje@au.ibm.com>
12243
12244 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
12245
12246 2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
12247
12248 PR tree-opt/25860
12249 * tree-ssa-pre.c (phi_translate): Return NULL
12250 for AGGREGATE_TYPE's.
12251
12252 2006-01-24 Zack Weinberg <zackw@panix.com>
12253
12254 * genautomata.c (process_state_for_insn_equiv_partition):
12255 Use xcalloc for insn_arcs_array.
12256 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
12257 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
12258
12259 2006-01-24 Richard Henderson <rth@redhat.com>
12260
12261 * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
12262 update all callers.
12263
12264 2006-01-23 Paolo Bonzini <bonzini@gnu.org>
12265
12266 PR rtl-optimization/25890
12267 PR rtl-optimization/25905
12268 * combine.c (expand_compound_operation, expand_field_assignment):
12269 Fail if the bitfield's final position is out of bounds.
12270
12271 2006-01-24 Ian Lance Taylor <ian@airs.com>
12272
12273 PR middle-end/25930
12274 * cgraphunit.c (cgraph_output_in_order): Don't clear
12275 cgraph_asm_nodes until after asm strings have been output.
12276
12277 2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
12278
12279 * fix-header.c (read_scan_file): Add new parameter imultilib when
12280 calling register_include_chains.
12281
12282 2006-01-23 Diego Novillo <dnovillo@redhat.com>
12283
12284 * omp-low.c: Update documentation.
12285
12286 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
12287 Daniel Berlin <dberlin@dberlin.org>
12288
12289 PR tree-opt/25315
12290 PR tree-opt/25857
12291 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
12292 return from the function.
12293
12294 2006-01-22 Zack Weinberg <zackw@panix.com>
12295
12296 * rtl.def (match_code): Add second argument.
12297 * genpreds.c (write_extract_subexp): New function.
12298 (write_match_code): Add path argument. Use write_extract_subexp.
12299 (write_predicate_expr): Pass path to write_match_code.
12300 (mark_mode_tests): MATCH_CODE applied to a subexpression does
12301 not perform a mode test.
12302 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
12303 a subexpression does not constrain the top-level code set.
12304 * read-rtl.c (read_rtx_variadic): New function.
12305 (read_rtx_1): Use it; allow AND and IOR to be variadic.
12306 * doc/md.texi: Document new notation.
12307 * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
12308 (cmpsi_operand): ... here, using new notation.
12309
12310 2006-01-22 Zack Weinberg <zackw@panix.com>
12311
12312 * varray.c: Remove GENERATOR_FILE #ifdefs.
12313
12314 2006-01-22 Zack Weinberg <zackw@panix.com>
12315
12316 * genautomata.c (output_reserved_units_table): Emit nothing if
12317 description->query_units_num is zero. Remove extra blank line.
12318 (output_cpu_unit_reservation_p): Short circuit
12319 if description->query_units_num is zero.
12320
12321 2006-01-22 Zack Weinberg <zackw@panix.com>
12322
12323 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
12324 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
12325 nor any of the random handful of variables that used to be necessary
12326 when this program was linked with rtlanal.o. Prune set of forward
12327 function declarations.
12328 (struct attr_desc): Remove static_p field.
12329 (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
12330 (check_attr_test, make_internal_attr, make_numeric_value): Make static.
12331 (attr_string): Do not read the character one past the length of
12332 the string.
12333 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
12334 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
12335 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
12336 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
12337 (make_automaton_attrs): New.
12338 (main): Do not call into genautomata. Call local gen_bypass
12339 and gen_insn_reserv as appropriate. Call make_automaton_attrs.
12340 Remove special case for insn_alts.
12341 * genautomata.c: Include gensupport.h; not genattrtab.h nor
12342 varray.h (leftover from previous change). Prune set of forward
12343 function declarations. Remove state_alts fields from all
12344 structures. Remove state_alts_table from struct automaton.
12345 Make everything except main static. Do not maintain num_dfa_decls.
12346 Do not maintain state_alts fields of various structures.
12347 (process_decls): Don't validate condexp for dm_insn_reserv decls.
12348 (add_arc): Remove state_alts argument. All callers updated.
12349 (output_reserved_units_table): Emit #ifdef here...
12350 (output_tables): ...not here. Don't generate state_alts tables.
12351 (expand_automata): Don't generate attributes.
12352 (write_automata): Don't generate state_alts functions.
12353 (main): New function.
12354 (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
12355 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
12356 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
12357 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
12358 (BYPASS_P_FUNC_NAME, output_state_alts_table)
12359 (output_automata_list_state_alts_code, output_internal_state_alts_func)
12360 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
12361 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
12362 Delete.
12363 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
12364 * genattrtab.h: Delete file.
12365 * Makefile.in (OBJS-common): Add insn-automata.o.
12366 (insn-automata.o): New rule.
12367 (simple_generated_c): Add insn-automata.c.
12368 (build/genattrtab.o, build/genautomata.o): Update dependencies.
12369 (genprogmd): Add automata.
12370 (build/genattrtab): Needs no extra objects nor libraries.
12371 (build/genautomata): Needs build/vec.o and -lm.
12372
12373 2006-01-22 Zack Weinberg <zackw@panix.com>
12374
12375 * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
12376 (output_dfa_max_issue_rate, locked_states_num): Delete.
12377 (struct automaton): Add locked_states field.
12378 (output_dead_lock_vect): Save number of locked states in
12379 automaton->locked_states. If it is zero, don't print anything.
12380 (output_max_insn_queue_index_def): Define max_insn_queue_index const.
12381 (output_internal_dead_lock_func): Only test the dead_lock_vect
12382 for automata that have locked states.
12383 (output_statistics): Always print the number of locked states for
12384 each automaton. Calculate total number of locked states here.
12385 (write_automata): Don't call output_dfa_max_issue_rate.
12386 * genattrtab.c: Define length_unit_log as a const variable.
12387 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
12388 max_insn_queue_index const.
12389 * final.c (length_unit_log): Declare const.
12390 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
12391
12392 2006-01-22 Zack Weinberg <zackw@panix.com>
12393
12394 * genautomata.c: Include vec.h, not varray.h.
12395 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
12396 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
12397 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
12398 VEC_* macros operating on appropriately typed vectors, or to
12399 malloced arrays when the size is known in advance. Const-ify
12400 many char* variables and function arguments. No functional changes.
12401 * Makefile.in (build/varray.o): Delete rule.
12402 (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
12403 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
12404
12405 2006-01-22 Zack Weinberg <zackw@panix.com>
12406
12407 * gensupport.c: Define get_insn_name and record_insn_name here.
12408 (read_md_rtx): Call record_insn_name as appropriate.
12409 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12410 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12411 * genpreds.c, genrecog.c: Don't define get_insn_name nor
12412 record_insn_name.
12413 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
12414 (BUILD_VARRAY): Delete.
12415 (genprognormal): Rename genprogmd. Fold in all programs from
12416 genprognoprint; also attrtab.
12417 (build/genattrtab): Just mention genautomata.o and varray.o.
12418 Reorganize a bit, add comments to make the categories clearer.
12419
12420 2006-01-22 Zack Weinberg <zackw@panix.com>
12421
12422 * genconditions.c (condition_table, add_condition): Delete.
12423 (write_conditions): Don't emit n_insn_conditions nor
12424 insn_elision_unavailable. Issue the gcc version #ifdef here,
12425 inside the table, with no #else clause ...
12426 (write_header): ...not here.
12427 (write_writer): New function.
12428 (main): Don't initialize condition_table. Use add_c_test.
12429 Call write_writer.
12430 * gensupport.c (init_md_reader_args_cb): Handle multiple input
12431 files on the command line.
12432 (maybe_eval_c_test): Don't check insn_elision_unavailable.
12433 Return -1 if there is no entry in the table, don't abort.
12434 (add_c_test, traverse_c_tests): New functions.
12435 * gensupport.h (insn_elision_unavailable, insn_conditions)
12436 (n_insn_conditions): Delete declarations.
12437 (add_c_test, traverse_c_tests): Declare.
12438 * read-rtl.c: Include gensupport.h.
12439 (read_conditions): New function.
12440 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
12441 (read_rtx_1): If we get EOF when we were looking for an initial
12442 open paren, return 0. Call read_conditions when appropriate.
12443 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
12444 dummy-conditions.o. Eliminate references to insn-conditions.o,
12445 or change them to build/gencondmd.o, as appropriate. Remove
12446 insn-constants.h from $(simple_generated_h) and insn-conditions.c
12447 from $(simple_generated_c). For all files remaining in those
12448 two lists, add insn-conditions.md to the generator command line.
12449 Give insn-constants.h/s-constants their own rules. Add rules
12450 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12451 (build/read-rtl.o): Depend on gensupport.h.
12452 (genprognormal): Include preds.
12453 (genprogearly): Rename genprognoprint; only difference is now that
12454 they don't link with $(BUILD_PRINT).
12455 * dummy-conditions.c: Delete.
12456
12457 2006-01-22 Zack Weinberg <zackw@panix.com>
12458
12459 * genextract.c: Don't include insn-config.h. Do include vec.h.
12460 Declare vectors of int, char, and locstr.
12461 (locstr): New typedef.
12462 (struct extraction): Make all array fields into bare pointers.
12463 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12464 (insn_code_number): Delete.
12465 (accum_extract): New struct.
12466 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12467 (gen_insn): Take insn_code_number as an argument. Use an
12468 accum_extract structure instead of loading data directly into
12469 a struct extraction, and having to know how big it might get.
12470 (walk_rtx): Operate entirely on an accum_extract structure.
12471 (print_path): Avoid unnecessary use of printf.
12472 (print_header): New function, split out of main. Distinguish
12473 more carefully between an unrecognizable insn and an insn that
12474 has the code number of a define_expand.
12475 (main): Pass insn_code_number to gen_insn. Call print_header
12476 only after parsing. Avoid unnecessary use of printf.
12477 * Makefile.in (build/vec.o): New rule.
12478 (build/genextract): Depend on build/vec.o.
12479 (build/genextract.o): Don't depend on insn-config.h.
12480
12481 2006-01-22 Zack Weinberg <zackw@panix.com>
12482
12483 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12484 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
12485 practical. Eliminate per-generator-program link rules.
12486
12487 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
12488
12489 PR middle-end/24437
12490 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12491 with a call expr to ...
12492 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12493
12494 2006-01-23 Richard Guenther <rguenther@suse.de>
12495
12496 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12497 before make_edge with conditional EDGE_TRUE_VALUE.
12498
12499 2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
12500 Jan Hubicka <jh@suse.cz>
12501 Richard Guenther <rguenther@suse.de>
12502
12503 PR rtl-optimization/25654
12504 * cfgexpand.c (aggregate_contains_union_type): New function.
12505 (add_alias_set_conflicts): Call it. Make sure to add conflicts
12506 for structure variables that contain a union type.
12507
12508 2006-01-23 Richard Sandiford <richard@codesourcery.com>
12509
12510 * gengtype.c (new_structure): Return the structure.
12511 (create_option): Add an extra "next" argument.
12512 (create_field): New function.
12513 (adjust_field_rtx_def): Use create_option and create_field.
12514 Remove a now-unnecessary call to find_structure.
12515 (adjust_field_tree_def): Likewise.
12516 (note_yacc_type): Remove an unnecessary call to find_structure.
12517 * gengtype.h (new_structure): Return the structure.
12518 (create_option): Add an extra argument.
12519 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12520 (option): Adjust calls to create_option.
12521
12522 2006-01-22 David Edelsohn <edelsohn@gnu.org>
12523
12524 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12525
12526 2006-01-22 Paul Brook <paul@codesourcery.com>
12527 Peter Barada <peter@the-baradas.com>
12528
12529 * config/m68k/m68k.md: Add Coldfire FPU support.
12530 Define FP mode macro and associated attributes.
12531 Use it for float mode patterns.
12532 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12533 (LIBCALL_VALUE): Use m68k_libcall_value.
12534 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12535 (m68k_function_value): Ditto.
12536 (emit_move_sequence): Ditto.
12537 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12538 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12539 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12540 (MULTILIB_EXCEPTIONS): Ditto.
12541 * config/m68k/m68k.opt: Add mcfv4e.
12542 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12543 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12544 (m68k_output_function_prologue): Save ColdFire FPU registers.
12545 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12546 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12547 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12548 ColdFire FPU registers.
12549 (m68k_libcall_value, m68k_function_value): New functions.
12550 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12551 (LIBCALL_VALUE): Use m68k_libcall_value.
12552 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12553 (MASK_COLDFIRE): Add MASK_CFV4E.
12554 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12555 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12556 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12557 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12558 (GO_IF_LEGITIMATE_ADDRESS): Use it.
12559 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12560 * doc/invoke.tex: Document -mcfv4e on m68k.
12561
12562 2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
12563
12564 * doc/contribute.texi: Change CVS to SVN and update the corresponding
12565 URL.
12566
12567 2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
12568
12569 PR c++/16190
12570 * c-opts.c (c_common_handle_option): Don't include
12571 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12572 * doc/invoke.texi (C++ Dialect Options): Document that
12573 -Wnon-virtual-dtor is no longer included in -Wall.
12574
12575 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
12576
12577 * gcov.c (print_version), gcov-dump.c (print_version),
12578 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12579 dates.
12580
12581 2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
12582
12583 * df-scan.c (problem_SCAN): Added NULL reset function.
12584 (df_scan_reset_blocks): Added code to call reset block function
12585 (df_bb_refs_delete) Fixed comment.
12586 (df_insn_refs_delete): Made tolerant of deleting non existent info
12587 for dataflow problems that need to be reset.
12588 * df-core.c (df_set_blocks): Ditto.
12589 * df.h (struct df_problem): Added reset_fun.
12590 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12591 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12592 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12593 functions to clear out all references to def-use or use-def chains.
12594
12595 2006-01-21 Ben Elliston <bje@au.ibm.com>
12596
12597 * varasm.c (assemble_real): Initialise data array.
12598
12599 2006-01-20 Paul Brook <paul@codesourcery.com>
12600
12601 Merge from csl-arm-branch.
12602 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
12603 * config/arm/arm.md (movdi): Force operands[1] to a register
12604 if we have a non-register source.
12605 (*arm_movdi, *movdf_soft_insn): Require that one of the
12606 operands be a register.
12607 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12608 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12609
12610 2006-01-20 DJ Delorie <dj@redhat.com>
12611
12612 * varasm.c (initializer_constant_valid_p): Allow pointers
12613 initialized from integer constants of lesser precision.
12614 (output_constant): Allow non-int-sized pointer modes to be
12615 initialized from integer constants.
12616
12617 2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
12618
12619 PR libstdc++/25524
12620 * cppdefault.h (struct default_include): Add multilib flag.
12621 * cppdefault.c (cpp_include_defaults): Set it.
12622 * c.opt (-imultilib): New option.
12623 * c-opts.c (imultilib): New.
12624 (c_common_handle_option): Handle -imultilib.
12625 (c_common_post_options): Likewise.
12626 * c-incpath.c (add_standard_paths, register_include_chains):
12627 Likewise.
12628 * c-incpath.h (register_include_chains): Add extra parameter.
12629 * gcc.c (do_spec_1): Generate -imultilib option.
12630 (The Specs Language): Update %I description.
12631 (process_command): Update copyright notice.
12632 * doc/cppopts.texi (-imultilib): Document.
12633 * doc/invoke.texi (-imultilib): Include in option summary.
12634 (%I): Update specs documentation.
12635
12636 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12637
12638 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12639
12640 2006-01-20 Richard Sandiford <richard@codesourcery.com>
12641
12642 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12643 label numbers.
12644
12645 2006-01-20 Richard Guenther <rguenther@suse.de>
12646 Steven Bosscher <stevenb.gcc@gmail.com>
12647
12648 PR rtl-optimization/24626
12649 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12650 EDGE_TRUE_VALUE if in RTL mode.
12651
12652 Revert
12653 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12654 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12655
12656 2006-01-20 Dirk Mueller <dmueller@suse.com>
12657
12658 PR c++/5520
12659 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12660 instead of a special NOP marker.
12661 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12662 NOP marker handling.
12663 * c-common.h (empty_body_warning): Add forward declaration.
12664 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12665 Now uses IS_EMPTY_STMT() instead of special NOP markers.
12666
12667 2006-01-20 Paul Brook <paul@codesourcery.com>
12668
12669 * Makefile.in (lang_checks): Keep going if mkdir fails.
12670
12671 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12672
12673 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12674 be able to clean out basic block when not necessary.
12675 (df_scan_free): Fixed to properly delete information if df is
12676 unused before calling df_finish.
12677 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12678 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12679 or comment typos.
12680 (df_bb_refs_delete): New function.
12681 (df_refs_delete): Moved per block code to df_bb_refs_delete.
12682 * df-core.c (df_set_blocks): Added code to properly clean out
12683 unused blocks if they are not part of the blocks to consider.
12684 Added additional null check.
12685 (df_compact_blocks): Added basic block parameter to free_bb_fun to
12686 be able to clean out basic block when not necessary
12687 * df.h (df_free_bb_function): Ditto.
12688 (df_bb_refs_delete): New function.
12689 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12690 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12691 basic block parameter to be able to clean out basic block when not
12692 necessary.
12693 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12694 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12695 Fixed to properly delete information if df is unused before
12696 calling df_finish.
12697
12698 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12699
12700 PR rtl-optimization/25799
12701 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12702 Corrected confluence operator to remove bits from op2 before oring
12703 with op1 rather than removing bits from op1.
12704 (df_ru_transfer_function): Corrected test on wrong bitmap which
12705 caused infinite loop. Both of these problems were introduced in
12706 the dataflow rewrite.
12707
12708 2006-01-19 DJ Delorie <dj@redhat.com>
12709
12710 * reload1.c (find_reload_regs): Note the details of reload
12711 failures in the dump file.
12712 (spill_failure): Likewise.
12713
12714 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12715
12716 * loop-iv.c: Include df.h and hashtab.h.
12717 (enum iv_grd_result): New enum.
12718 (DF_REF_IV, DF_REF_IV_SET): New macros.
12719 (struct biv_entry): New.
12720 (df, bivs): New global variables.
12721 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12722 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12723 Removed.
12724 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12725 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12726 analyzed_for_bivness_p, record_biv): New functions.
12727 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12728 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12729 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12730 UD chains.
12731 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12732 analysed.
12733 (iv_number_of_iterations): Use new interface to iv analysis.
12734 * loop-unroll.c: Do not include varray.h.
12735 (analyze_iv_to_split_insn): Use new interface to iv
12736 analysis.
12737 * loop-unswitch.c (may_unswitch_on): Ditto.
12738 * df.c (df_bitmaps_free): Only work for bbs for that structures are
12739 allocated.
12740 (df_bb_modify): Realloc tables to the new index.
12741 (df_find_use): New function.
12742 * df.h (df_find_use): Declare.
12743 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12744 outmode.
12745 * cfgloop.h (struct rtx_iv): Remove analysed field.
12746 (iv_get_reaching_def): Removed.
12747 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12748 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12749 (loop-iv.o): Add df.h and hashtab.h dependency.
12750 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12751
12752 2006-01-20 Alan Modra <amodra@bigpond.net.au>
12753
12754 PR target/25668
12755 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12756 Double TFmode.
12757 (__floatundisf, __floatundidf): Likewise.
12758 * libgcc2.h (IS_IBM_EXTENDED): Define.
12759
12760 2006-01-19 DJ Delorie <dj@redhat.com>
12761
12762 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12763
12764 2006-01-19 Paul Brook <paul@codesourcery.com>
12765
12766 * config/arm/arm.c (arm_compute_func_type): Treat all functions
12767 as nothrow when unwinding tables are disabled.
12768
12769 2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12770
12771 PR testsuite/25171
12772 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12773 of bit-field" when in system header.
12774
12775 2006-01-19 DJ Delorie <dj@redhat.com>
12776
12777 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
12778 the 16 bit shift limit of the m16c.
12779
12780 2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
12781
12782 PR target/22099
12783 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
12784 * config/i386/i386.c (output_set_got): Output the label if we have one
12785 for the TARGET_DEEP_BRANCH_PREDICTION case.
12786
12787 2006-01-19 Jan Hubicka <jh@suse.cz>
12788 H.J. Lu <hongjiu.lu@intel.com>
12789 Evandro Menezes <evandro.menezes@amd.com>
12790
12791 * invoke.texi (generic): Document
12792 (i686) Update.
12793 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
12794 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
12795 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
12796 (x86_use_incdec, x86_pad_returns): New variables
12797 (TARGET_CPU_DEFAULT_generic): New constant
12798 (TARGET_CPU_DEFAULT_NAMES): Add generic.
12799 (enum processor_type): Add generic32 and generic64.
12800 * i386.md (cpu attribute): Add generic32/generic64
12801 (movhi splitter): Behave sanely when both partial_reg_dependency and
12802 partial_reg_stall are set.
12803 (K8 splitters): Enable for generic as well.
12804 * predicates.md (incdec_operand): Use TARGET_INCDEC
12805 (aligned_operand): Avoid memory mismatch stalls.
12806 * athlon.md: Enable for generic64, new patterns for 128bit moves.
12807 * ppro.md: Enable for generic32
12808 * i386.c (generic64_cost, generic32_cost): New.
12809 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
12810 (x86_use_leave): Enable for generic64. (x86_use_sahf,
12811 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
12812 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
12813 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
12814 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12815 x86_partial_reg_dependency, x86_memory_mismatch_stall,
12816 x86_accumulate_outgoing_args, x86_prologue_using_move,
12817 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
12818 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
12819 Enable for generic.
12820 (x86_use_incdec, x86_pad_returns): New.
12821 (override_options): Add generic32 and generic64, translate "generic"
12822 to generic32/generic64 and "i686" to "generic32", refuse
12823 "generic32"/"generic64" as arch target.
12824 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
12825 (ix86_reorg): Honor PAD_RETURNS.
12826
12827 2006-01-19 Diego Novillo <dnovillo@redhat.com>
12828
12829 * tree-pretty-print.c (dump_generic_node): Handle
12830 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
12831 * cgraph.c (cgraph_expand_queue): Rename from
12832 cgraph_analyze_queue. Update all users.
12833 * cgraphunit.c (cgraph_assemble_pending_functions): Process
12834 cgraph_expand_queue.
12835 (cgraph_expand_all_functions): Likewise.
12836 (cgraph_finalize_pending_functions): Remove. Update callers.
12837
12838 * tree.h (OMP_DIRECTIVE_P): Define.
12839 (OMP_PARALLEL_FN): Define.
12840 (OMP_PARALLEL_DATA_ARG): Define.
12841 (OMP_SECTIONS_SECTIONS): Define.
12842 * tree-pass.h (pass_expand_omp): Declare.
12843 * omp-low.c (struct omp_region): Declare.
12844 (struct omp_context): Remove fields 'parallel_type',
12845 'parallel_start_ix' and 'parallel_start_additional_args'.
12846 Update all users.
12847 (struct omp_for_data): Rename from struct expand_omp_for_data.
12848 (omp_regions): New static variable.
12849 (root_omp_region): New static variable.
12850 (find_omp_clause): Make static.
12851 (is_in_combined_parallel_ctx): Remove.
12852 (is_combined_parallel): New.
12853 (extract_omp_for_data): Move earlier in the file.
12854 (workshare_safe_to_combine_p): New.
12855 (get_ws_args_for): New.
12856 (determine_parallel_type): Move earlier in the file.
12857 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
12858 child function.
12859 (omp_copy_decl): Likewise.
12860 (create_omp_child_function): Likewise.
12861 (lookup_omp_region): New.
12862 (dump_omp_region): New.
12863 (debug_omp_region): New.
12864 (debug_all_omp_regions): New.
12865 (new_omp_region): New.
12866 (scan_omp_parallel): If parallel_nesting_level > 1, the
12867 directive is nested within another parallel directive.
12868 Set OMP_PARALLEL_FN.
12869 (scan_omp_for): Do not try to handle combined parallel+for
12870 cases.
12871 Remove FIXME comment.
12872 (scan_omp_nested): Remove.
12873 (scan_omp_1): Do not call scan_omp_nested when
12874 parallel_nesting_level is > 1.
12875 Do not change the DECL_CONTEXT of local variables found.
12876 (lookup_decl_in_outer_ctx): New.
12877 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
12878 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
12879 (lower_reduction_clauses): Rename from expand_reduction_clauses.
12880 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
12881 If CTX is nested, lookup VAR in the outer context when
12882 building copy assignment.
12883 (lower_send_clauses): Rename from expand_send_clauses.
12884 If CTX is nested, lookup VAR in the outer context when
12885 building copy assignments.
12886 (lower_send_shared_vars): Rename from expand_send_shared_vars.
12887 If CTX is nested, lookup VAR in the outer context when
12888 building copy assignments.
12889 (expand_parallel_call): Rename from build_parallel_call.
12890 Handle combined parallel+workshare cases.
12891 Re-implement to emit code into the CFG.
12892 (list2chain): New.
12893 (expand_omp_parallel): Re-implement to emit code into the CFG.
12894 Call move_sese_region_to_fn to outline the sub-graph
12895 containing the parallel region.
12896 (expand_omp_for_1): Remove.
12897 (expand_omp_for_generic): Re-implement to emit code into the
12898 CFG.
12899 (expand_omp_for_static_nochunk): Likewise.
12900 (expand_omp_for_static_chunk): Likewise.
12901 (expand_omp_for): Likewise.
12902 (expand_omp_sections): Likewise.
12903 (remove_exit_barriers): New.
12904 (expand_omp_synch): New.
12905 (expand_omp): New.
12906 (build_omp_regions_1): New.
12907 (build_omp_regions): New.
12908 (execute_expand_omp): New.
12909 (gate_expand_omp): New.
12910 (pass_expand_omp): Define.
12911 (lower_omp_sections): Rename from expand_omp_sections.
12912 Set OMP_SECTIONS_SECTIONS.
12913 (lower_omp_single_simple): Rename from expand_omp_single_simple.
12914 (lower_omp_single_copy): Rename from expand_omp_single_copy.
12915 (lower_omp_single): Rename from expand_omp_simple.
12916 (lower_omp_master): Rename from expand_omp_master.
12917 (lower_omp_ordered): Rename from expand_omp_ordered.
12918 (lower_omp_critical): Rename from expand_omp_critical.
12919 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
12920 (lower_omp_for): Re-implement.
12921 (lower_omp_parallel): Re-implement.
12922 (lower_regimplify): Rename from expand_regimplify.
12923 (lower_omp_1): Rename from expand_omp_1.
12924 If there are syntax errors in the program, replace every
12925 OpenMP directive with NOP.
12926 Call lower_omp_* instead of expand_omp_*.
12927 (lower_omp): Rename from expand_omp.
12928
12929 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
12930 * tree-gimple.h (enum omp_parallel_type): Remove.
12931 (gimple_boolify): Declare extern.
12932 (find_omp_clause, determine_parallel_type): Remove.
12933
12934 * gimple-low.c (lower_omp_directive): New.
12935 (lower_stmt): Call it.
12936 (record_vars_into): Move from ...
12937 (record_vars): ... here.
12938 Call record_vars_into with current_function_decl.
12939
12940 * gimplify.c (struct gimplify_ctx): Remove fields
12941 combined_pre_p and combined_ctxp. Update users.
12942 (get_formal_tmp_var): Add documentation.
12943 (gimple_boolify): Make extern.
12944 (gimplify_expr_in_ctx): Remove. Update callers.
12945 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
12946 will always be a BIND_EXPR.
12947 (gimplify_expr): Handle OMP_RETURN_EXPR.
12948 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
12949 (OMP_PARALLEL): Add 3 operands.
12950 (OMP_SECTIONS): Add 1 operand.
12951 (OMP_RETURN_EXPR): Define.
12952
12953 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
12954 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
12955 * tree-iterator.c (alloc_stmt_list): Assert that we are not
12956 creating a circular free list.
12957 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
12958
12959 * tree-flow.h (move_sese_region_to_fn): Declare.
12960 (record_vars_into): Declare.
12961 * tree-cfg.c (make_omp_sections_edges): New.
12962 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
12963 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
12964 OMP_SECTIONS and OMP_SECTION.
12965 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
12966 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
12967 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
12968 (gather_blocks_in_sese_region): New.
12969 (struct move_stmt_d): Declare.
12970 (move_stmt_r): New.
12971 (move_block_to_fn): New.
12972 (move_sese_region_to_fn): New.
12973
12974 * passes.c (init_optimization_passes): Schedule
12975 pass_expand_omp after pass_init_datastructures.
12976
12977 * tree-ssa-operands.c (get_expr_operands): Handle
12978 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
12979 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
12980
12981 2006-01-19 Jeff Law <law@redhat.com>
12982
12983 * tree-vrp.c (extract_range_from_assert): Refine the result range
12984 if the variable referenced by the ASSERT_EXPR has a range and
12985 either the tentative result range or the previous range is a
12986 VR_ANTI_RANGE.
12987
12988 2006-01-19 Richard Sandiford <richard@codesourcery.com>
12989
12990 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
12991
12992 2006-01-19 Jan Hubicka <jh@suse.cz>
12993
12994 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
12995
12996 2006-01-19 Paolo Bonzini <bonzini@gnu.org>
12997
12998 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
12999 (expand_compound_operation, expand_field_assignment): Fail if the
13000 bit lengths of an extract operation are out of range.
13001 (make_extraction): Compute wanted_inner_mode based on the position
13002 and length of the extraction. Make it extraction_mode for non-constant
13003 positions, and do not modify offset in that case. When generating a
13004 new MEM, use a mode that can hold the extraction while keeping correct
13005 alignment. Remove code that supported MEMs wrapped by USEs.
13006 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
13007
13008 2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
13009
13010 * config/s390/s390.md ("Y", "y"): New mode attribute.
13011 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
13012 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
13013 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
13014 "*addsi3_imm_cc", "*addsi3_carry1_cc",
13015 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
13016 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
13017 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
13018 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
13019 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
13020 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
13021 "addsi3", "subsi3"): Insn patterns removed.
13022 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
13023 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
13024 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
13025 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
13026 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
13027 "*sub<mode>3_cconly2"): New insn patterns.
13028 ("addsi3", "subsi3"): New expanders.
13029
13030 2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
13031
13032 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
13033 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
13034 existing STMT_VINFO_VECTYPE if available.
13035 (vect_mark_relevant): Add special handling for stmts that are
13036 marked as STMT_VINFO_IN_PATTERN_P.
13037 (vect_analyze_loop): Call vect_pattern_recog.
13038 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
13039 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
13040 stmt_info.
13041 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
13042 (vect_recog_func_ptr): New function-pointer type.
13043 * tree-vect-patterns.c: New file.
13044 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
13045 (vect_recog_dot_prod_pattern, vect_pattern_recog):
13046 (vect_pattern_recog_1): New functions.
13047 (vect_pattern_recog_funcs): New array of function pointers.
13048
13049 * tree-vectorizer.h (ternary_op): New enum value.
13050 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
13051 declaration. Revised documentation. Removed redundant dump prints.
13052 Removed redundant argument. Added support for reduction patterns.
13053 (vectorizable_reduction): Added support for reduction patterns.
13054 (vect_transform_stmt): Added support for patterns.
13055
13056 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
13057 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
13058 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
13059 (expand_widen_pattern_expr): New function.
13060 (init_optabs): Initialize new optabs udot_prod_optab,
13061 sdot_prod_optab.
13062 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
13063 (sdot_prod_optab, udot_prod_optab): Define new optabs.
13064 (expand_widen_pattern_expr): New function declaration.
13065 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
13066 tree-codes.
13067 * tree-inline.c (estimate_num_insns_1): Added cases for new
13068 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13069 * tree-pretty-print.c (dump_generic_node): Likewise.
13070 (op_prio): Likewise.
13071 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13072 * tree-ssa-operands.c (get_expr_operands): Added case for
13073 DOT_PROD_EXPR.
13074 * tree-vect-patterns.c (widened_name_p): New function.
13075 (vect_recog_dot_prod_pattern): Added function implementation.
13076 * tree-vect-transform.c (get_initial_def_for_reduction): Added
13077 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
13078 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
13079 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
13080
13081 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
13082 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
13083 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
13084 (init_optabs): Initialize new optabs widen_ssum_optab,
13085 widen_usum_optab.
13086 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
13087 (widen_ssum_optab, widen_usum_optab): Define new optabs.
13088 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
13089 use instead of type of def.
13090 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
13091 function implementation.
13092 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
13093 widen_ssumv8hi): New.
13094
13095 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
13096 patterns.
13097
13098 2006-01-19 Richard Sandiford <richard@codesourcery.com>
13099
13100 PR c/25805
13101 * c-decl.c (add_flexible_array_elts_to_size): New function.
13102 (finish_decl): Use it.
13103
13104 2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
13105
13106 * diagnostic.h: Include options.h.
13107 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
13108 dependancies for diagnostic.h.
13109 * Makefile.in (DIAGNOSTIC_H): Add options.h.
13110
13111 2006-01-16 Daniel Berlin <dberlin@dberlin.org>
13112
13113 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
13114 (ssa_ro_call_cache_valid): Ditto.
13115 * tree-ssa-alias.c (sort_tags_by_id): New function.
13116 (init_transitive_clobber_worklist): Ditto.
13117 (add_to_worklist): Ditto.
13118 (mark_aliases_call_clobbered): Ditto.
13119 (compute_tag_properties): Ditto.
13120 (set_initial_properties): Ditto.
13121 (compute_call_clobbered): Ditto.
13122 (compute_may_aliases): Call compute_call_clobbered and grouping.
13123 (compute_flow_sensitive_aliasing): Remove clobbering related code.
13124 (compute_flow_insensitive_aliasing): Grouping now happens in our
13125 caller.
13126 (setup_pointers_and_addressables): Remove clobbering related code.
13127 (add_may_alias): Ditto.
13128 (replace_may_alias): Ditto.
13129 (get_nmt_for): Ditto.
13130 (create_global_var):
13131 (is_escape_site): Return an escape_type enumeration.
13132 * tree-flow-inline.h (is_call_clobbered): Global var does not
13133 imply call clobbered.
13134 (mark_call_clobbered): Take a reason for marking this. Remove
13135 marking of globalness, and cache invalidation.
13136 (clear_call_clobbered): Remove cache invalidation code.
13137 * tree-dfa.c (dump_variable): If details is on, dump the reason
13138 for escaping.
13139 * tree-outof-ssa.c (create_temp): Copy escape mask from original
13140 variable.
13141 * tree-flow.h (struct ptr_info_def): Add escape mask member.
13142 (struct var_ann_d): Ditto.
13143 (enum escape_type): New.
13144 (mark_call_clobbered): Adjust prototype.
13145 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
13146 are never call clobbered.
13147 Record reasons for escaping.
13148 * tree-ssa-structalias.h (is_escape_site): Update prototype.
13149 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
13150 (ssa_ro_call_cache_valid): Ditto.
13151 (clobbered_v_may_defs): Ditto.
13152 (clobbered_vuses): Ditto.
13153 (ro_call_vuses): Ditto.
13154 (clobber_stats): New.
13155 (init_ssa_operands): Zero out clobber stats.
13156 (fini_ssa_operands): Print out clobber stats.
13157 (get_call_expr_operands): Pass callee fndecl to
13158 add_call_read_ops).
13159 (add_call_clobber_ops): Remove use of cache.
13160 Add use of PURE_CONST information.
13161 (add_call_read_ops): Remove use of cache.
13162 Add use of static not_read information.
13163
13164 2006-01-18 Alexandre Oliva <aoliva@redhat.com>
13165
13166 Introduce TLS descriptors for i386 and x86_64.
13167 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
13168 (TARGET_ANY_GNU_TLS): New macro.
13169 (enum tls_dialect): Added TLS_DIALECT_GNU2.
13170 (struct machine_function): Add tls_descriptor_call_expanded_p.
13171 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
13172 (ix86_current_function_calls_tls_descriptor): Likewise.
13173 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
13174 (override_options): Introduce gnu2 tls dialect.
13175 (ix86_frame_pointer_required): Functions containing TLSCALLs are
13176 not leaves.
13177 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
13178 Likewise.
13179 (legitimize_tls_address): Adjust logic for GNU2 TLS.
13180 (ix86_init_machine_status): Initialize new field.
13181 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
13182 (ix86_tls_module_base): New.
13183 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
13184 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
13185 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
13186 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
13187 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
13188 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
13189 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
13190 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
13191 * config/i386/predicates.md (tls_modbase_operand): New.
13192 (tp_or_register_operand): New.
13193
13194 2006-01-18 Daniel Berlin <dberlin@dberlin.org>
13195
13196 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
13197 (look_for_address_of): Ditto.
13198 (ipa_init): Walk the function decls.
13199 (static_execute): Don't set readonly on FUNCTION_DECL's.
13200
13201 2006-01-18 Roger Sayle <roger@eyesopen.com>
13202
13203 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
13204 for shifts where the source and destination registers are different.
13205
13206 2006-01-18 Paul Brook <paul@codesourcery.com>
13207
13208 Merge from csl-arm-branch.
13209 2005-03-14 Julian Brown <julian@codesourcery.com>
13210 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
13211 (aeabi_llsl): Likewise.
13212 (ashrdi3): Likewise.
13213 (aeabi_lasr): Likewise.
13214 (lshrdi3): Likewise.
13215 (aeabi_llsr): Likewise.
13216 2005-03-10 Julian Brown <julian@codesourcery.com>
13217 * config.gcc: Disable shared libgcc for SymbianOS.
13218 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
13219
13220 2006-01-18 DJ Delorie <dj@redhat.com>
13221
13222 * c-pragma.c (handle_pragma_diagnostic): New.
13223 (init_pragma): Register it.
13224 * doc/extend.texi: Document it.
13225
13226 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
13227 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
13228 (diagnostic_context): Add classify_diagnostic[].
13229 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
13230 as errors if they're overridden to DK_WARNING.
13231 (diagnostic_initialize): Initialize classify_diagnostic[].
13232 (diagnostic_set_kind_override): New.
13233 (diagnostic_report_diagnostic): Check for kind changes.
13234 * opts.c (common_handle_option): Take lang_mask. Update callers.
13235 Handle OPT_Werror_.
13236 * common.opt (Werror=): New.
13237 * doc/invoke.texi: Document -Werror=*
13238
13239 2006-01-18 Jeff Law <law@redhat.com>
13240
13241 * tree-vrp.c (test_for_singularity): Correct test for new
13242 min limit. Use operand_equal_p rather than pointer equality
13243 for testing if new min/max values are equal.
13244
13245 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
13246 using range information until after propagation and folding.
13247
13248 2006-01-18 Richard Henderson <rth@redhat.com>
13249 Aldy Hernandez <aldyh@redhat.com>
13250 Jakub Jelinek <jakub@redhat.com>
13251 Diego Novillo <dnovillo@redhat.com>
13252
13253 * omp-low.c: New file.
13254 * c-omp.c: New file.
13255
13256 2006-01-18 Richard Henderson <rth@redhat.com>
13257 Jakub Jelinek <jakub@redhat.com>
13258 Diego Novillo <dnovillo@redhat.com>
13259
13260 * doc/invoke.texi: Document -fopenmp.
13261 * tree-dump.h (debug_function): Declare.
13262 * hooks.c (hook_bool_tree_bool_false): New function.
13263 (hook_tree_tree_null): Remove.
13264 (hook_tree_tree_tree_null): New.
13265 * hooks.h: Update to match.
13266 * tree-pretty-print.c (debug_tree_chain): New.
13267 (print_generic_expr): Handle TDF_CHAIN.
13268 (dump_generic_node): Handle BLOCK.
13269 Do not abort with incomplete SWITCH_EXPRs.
13270 Do not dump body of an OpenMP directive if TDF_SLIM is given.
13271 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
13272 print space after directive name.
13273 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
13274 Handle OMP_MASTER and OMP_ORDERED.
13275 Handle printing of OMP_BODY just in one place, goto
13276 dump_omp_body in the rest of OMP_* nodes that have
13277 OMP_BODY.
13278 Don't handle clause nodes here. Update omp statements to
13279 use dump_omp_clauses.
13280 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
13281 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
13282 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
13283 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
13284 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
13285 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
13286 Adjust output for GOMP_PARALLEL.
13287 (dump_omp_clauses): New.
13288 (print_declaration): Dump DECL_VALUE_EXPR.
13289 (op_symbol_1): Split out of op_symbol.
13290 (dumping_stmts): Remove. Update all users.
13291 * cgraph.c (cgraph_analyze_queue): New.
13292 (cgraph_add_new_function): New.
13293 * cgraph.h (cgraph_analyze_queue): Declare.
13294 (cgraph_add_new_function): Declare.
13295 (cgraph_lower_function): Remove.
13296 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
13297 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
13298 and TYPE_P nodes in its default clause.
13299 (empty_body_p): New.
13300 (tree_range_check_failed): New.
13301 (build5_stat): New.
13302 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
13303 OMP_CLAUSE_REDUCTION_MERGE,
13304 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
13305 OMP_CLAUSE_PRIVATE_DEBUG,
13306 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
13307 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
13308 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
13309 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
13310 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
13311 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
13312 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
13313 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
13314 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
13315 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
13316 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
13317 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
13318 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
13319 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
13320 (TREE_RANGE_CHECK): New.
13321 (empty_body_p): Declare.
13322 (enum omp_clause_default_kind): New.
13323 (build_string_literal): Declare.
13324 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
13325 (build5_stat, build5): Declare.
13326 * tree-pass.h (TDF_CHAIN): Define.
13327 * tree-pass.h (PROP_gimple_lomp): Define.
13328 (pass_lower_omp): Declare.
13329 * diagnostic.h (debug_tree_chain): Declare.
13330 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
13331 mode_for_size.
13332 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
13333 * builtins.c (build_string_literal): Make extern.
13334 * gcc.c (include_spec_function): New.
13335 (static_spec_functions): Add it.
13336 (main): Move load of libgomp.spec ...
13337 (LINK_COMMAND_SPEC): ... here.
13338 (link_gomp_spec): New.
13339 (static_specs): Include it.
13340 (LINK_COMMAND_SPEC): Add link_gomp.
13341 (GOMP_SELF_SPECS): New.
13342 (driver_self_specs): Include it.
13343 (switch_matches): Don't mark inline.
13344 (main): Load libgomp.spec.
13345 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
13346 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
13347 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
13348 * tree-gimple.h (enum omp_parallel): Declare.
13349 (determine_parallel_type): Declare.
13350 (omp_firstprivatize_variable): Declare.
13351 (omp_reduction_init): Declare.
13352 (diagnose_omp_structured_block_errors): Declare.
13353 (struct walk_stmt_info): Add want_return_expr.
13354 (struct walk_stmt_info): Add want_bind_expr, want_locations.
13355 (find_omp_clause): Declare.
13356 (insert_field_into_struct): Declare.
13357 (struct walk_stmt_info): Move from tree-nested.c
13358 (walk_stmts): Declare.
13359 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
13360 to 200505.
13361 * cgraphunit.c (cgraph_lower_function): Make static.
13362 (cgraph_finalize_pending_functions): New.
13363 (cgraph_finalize_function): Call it.
13364 (cgraph_finalize_compilation_unit): Likewise.
13365 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
13366 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
13367 (BT_FN_UINT_UINT): New.
13368 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
13369 DEF_FUNCTION_TYPE_VAR_4): Document.
13370 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
13371 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
13372 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
13373 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
13374 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
13375 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
13376 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
13377 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
13378 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
13379 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
13380 into separate files.
13381 (DEF_GOMP_BUILTIN): New.
13382 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
13383 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
13384 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
13385 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
13386 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
13387 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
13388 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
13389 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
13390 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
13391 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
13392 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
13393 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
13394 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
13395 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
13396 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
13397 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
13398 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
13399 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
13400 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
13401 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
13402 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
13403 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
13404 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
13405 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
13406 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
13407 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
13408 * sync-builtins.def: New file, moved from builtins.def.
13409 * omp-builtins.def: New file, moved from builtins.def.
13410 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
13411 * gimple-low.c (lower_function_body): Clear data.
13412 (lower_stmt): Do not handle COMPOUND_EXPR.
13413 Remove call to print_node_brief.
13414 * c-tree.h (c_finish_omp_clauses): New prototype.
13415 (C_DECL_THREADPRIVATE_P): Define.
13416 (lookup_name_no_remap, c_omp_remap_private): Remove
13417 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
13418 (check_for_loop_decls): Update decl.
13419 (lookup_name_no_remap, c_omp_remap_private): Declare.
13420 (build_indirect_ref, build_modify_expr, pushdecl,
13421 pushdecl_top_level): Move to c-common.h.
13422 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
13423 before the switch, but just in the 2 places that need it.
13424 * c-decl.c (diagnose_mismatched_decls): Do not check for
13425 mismatched thread-local attributes when OLDDECL is marked
13426 threadprivate and NEWDECL has no thread-local attributes.
13427 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
13428 (c_gimple_diagnostics_recursively): Rename from
13429 c_warn_unused_result_recursively. Invoke
13430 diagnose_omp_structured_block_errors.
13431 (check_for_loop_decls): Return a singular decl found.
13432 * langhooks.c (lhd_omp_predetermined_sharing): Return
13433 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
13434 (lhd_omp_firstprivatize_type_sizes): New.
13435 (lhd_omp_assignment): New.
13436 (lhd_omp_predetermined_sharing): New.
13437 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
13438 (struct lang_hooks_for_types): Add
13439 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
13440 omp_predetermined_sharing, omp_disregard_value_expr,
13441 omp_private_debug_clause, omp_clause_default_ctor,
13442 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
13443 (c_finish_omp_clauses): New.
13444 (c_finish_bc_stmt): Diagnose break within omp for.
13445 (c_begin_omp_parallel, c_finish_omp_parallel): New.
13446 (build_unary_op): Return error_mark after reporting
13447 a readonly_error.
13448 (build_modify_expr): Likewise.
13449 * gimplify.c: Include optabs.h and pointer-set.h.
13450 (enum gimplify_omp_var_data): Declare.
13451 (struct gimplify_omp_ctx): Declare.
13452 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13453 and combined_ctxp.
13454 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13455 (push_gimplify_context, pop_gimplify_context): Allow nesting.
13456 (splay_tree_compare_decl_uid): New.
13457 (new_omp_context): New.
13458 (delete_omp_context): New.
13459 (gimple_add_tmp_var): Call omp_add_variable.
13460 (gimplify_bind_expr): Likewise.
13461 (gimplify_var_or_parm_decl): If omp_notice_variable returned
13462 true, disregard DECL_VALUE_EXPR on the decl if any.
13463 (gimplify_expr_in_ctx): New.
13464 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13465 omp_add_variable, omp_notice_variable, omp_is_private
13466 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13467 gimplify_adjust_omp_clauses, gimplify_omp_parallel
13468 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13469 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13470 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13471 gimplify_omp_atomic): New.
13472 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13473 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13474 OMP_CRITICAL and OMP_ATOMIC.
13475 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13476 * c-pragma.h (enum pragma_kind): Add
13477 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13478 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13479 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13480 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13481 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13482 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13483 PRAGMA_OMP_THREADPRIVATE.
13484 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13485 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13486 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13487 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13488 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13489 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13490 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13491 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13492 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13493 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13494 * tree-ssa-dce.c (find_control_dependence): Do not assume that
13495 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13496 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13497 OpenMP directives.
13498 (struct nesting_info): Add field_map,
13499 suppress_expansion, debug_var_chain.
13500 (create_nesting_tree): Initialize them.
13501 (lookup_field_for_decl): Use field_map.
13502 (get_nonlocal_debug_decl, get_local_debug_decl): New.
13503 (convert_local_omp_clauses): New.
13504 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13505 (walk_body): Split out of walk_function.
13506 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13507 (convert_nonlocal_reference): Handle omp statements.
13508 (convert_local_reference): Likewise.
13509 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13510 (unnest_nesting_tree): New.
13511 (lower_nested_functions): Call it.
13512 (insert_field_into_struct): Make extern.
13513 (struct walk_stmt_info): Move to tree-gimple.h.
13514 (walk_stmts): Make extern.
13515 * omp-builtins.def: New file.
13516 * tree-iterator.c (expr_only): Clarify comment.
13517 * c-common.h (pushdecl_top_level, pushdecl,
13518 build_modify_expr, build_indirect_ref,
13519 c_finish_omp_master, c_finish_omp_critical,
13520 c_finish_omp_ordered, c_finish_omp_barrier,
13521 c_finish_omp_atomic, c_finish_omp_flush,
13522 c_finish_omp_for, c_split_parallel_clauses,
13523 omp_clause_default_kind, c_omp_sharing_predetermined,
13524 c_omp_remap_decl): Declare.
13525 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13526 (OBJS-common): Add omp-low.o.
13527 (c-omp.o, omp-low.o): Add.
13528 (gimplify.o): Add dependency on $(OPTABS_H).
13529 (GTFILES): Add omp-low.c.
13530 (gt-stringpool.h): Add.
13531 * tree-cfg.c (set_bb_for_stmt): Do not update the
13532 block-to-labels map if we are currently expanding to RTL.
13533 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13534 checks.
13535 Handle IDENTIFIER_NODE.
13536 (tree_verify_flow_info): Do not ICE when emitting error
13537 messages about invalid labels.
13538 (dump_function_to_file): Reset CFUN before emitting the body
13539 of the function.
13540 (debug_function): New.
13541 * passes.c (init_optimization_passes): Schedule
13542 pass_lower_omp.
13543 * langhooks-def.h (lhd_omp_predetermined_sharing,
13544 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13545 Declare.
13546 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13547 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13548 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13549 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13550 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13551 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13552 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13553 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13554 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13555 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13556 (LANG_HOOK_DECLS): Use them.
13557
13558 2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13559 Richard Henderson <rth@redhat.com>
13560 Jakub Jelinek <jakub@redhat.com>
13561 Diego Novillo <dnovillo@redhat.com>
13562
13563 * c-parser.c (pragma_omp_clause): Define.
13564 (c_parser_declaration_or_fndef): Document OpenMP syntax.
13565 (c_parser_compound_statement): Likewise.
13566 (c_parser_statement): Likewise.
13567 (c_parser_pragma): Handle omp pragmas.
13568 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13569 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13570 (c_parser_omp_clause_name, check_no_duplicate_clause,
13571 c_parser_omp_variable_list,
13572 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13573 c_parser_omp_clause_copyprivate,
13574 c_parser_omp_clause_default,
13575 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13576 c_parser_omp_clause_lastprivate,
13577 c_parser_omp_clause_nowait,
13578 c_parser_omp_clause_num_threads,
13579 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13580 c_parser_omp_clause_reduction,
13581 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13582 c_parser_omp_all_clauses, c_parser_omp_structured_block,
13583 c_parser_omp_atomic, c_parser_omp_barrier,
13584 c_parser_omp_critical, c_parser_omp_flush,
13585 c_parser_omp_for_loop, c_parser_omp_for,
13586 c_parser_omp_master, c_parser_omp_ordered,
13587 c_parser_omp_sections_scope, c_parser_omp_sections,
13588 c_parser_omp_parallel, c_parser_omp_single,
13589 c_parser_omp_construct, c_parser_omp_threadprivate): New.
13590 * c-pragma.c (init_pragma): Do omp pragma registration here.
13591 * c.opt (fopenmp): New flag.
13592
13593 2006-01-18 Eric Christopher <echristo@apple.com>
13594
13595 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13596 * config/darwin.h (GOMP_SELF_SPECS): Define.
13597
13598 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13599
13600 * rtl.h: Remove the prototype for reg_alloc.
13601
13602 2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13603
13604 PR target/25731
13605 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13606 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13607 sjlj and dwarf2 exception handling.
13608 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13609 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13610 * pa/pa.c (function_value): Treat complex and vector types as
13611 aggregates.
13612 (function_arg): Likewise. Only pass scalar floats in the floating
13613 point argument registers.
13614 * pa/t-slibgcc-dwarf-ver: New file.
13615 * pa/t-slibgcc-sjlj-ver: New file.
13616 * pa/t-slibgcc-elf-ver: Delete file.
13617
13618 2006-01-19 Alan Modra <amodra@bigpond.net.au>
13619
13620 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13621 unlikely_test_section_p test.
13622
13623 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13624
13625 * mode-switching.c (optimize_mode_switching): Make it static.
13626 * basic-block.h: Remove the prototype for
13627 optimize_mode_switching.
13628
13629 * modulo-sched.c (sms_schedule): Make it static.
13630 * rtl.h: Remove the prototype for sms_schedule.
13631
13632 * postreload-gcse.c (gcse_after_reload_main): Make it static.
13633 * rtl.h: Remove the prototype for gcse_after_reload_main.
13634
13635 * reg-stack.c (reg_to_stack): Make it static.
13636 * rtl.h: Remove the prototype for reg_to_stack.
13637
13638 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13639 Make them static.
13640 * rtl.h: Remove the prototypes for regrename_optimize and
13641 copyprop_hardreg_forward.
13642
13643 2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
13644
13645 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13646 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
13647 Test against the appropriate null constant for the mode.
13648 If 'fixup_overlap' is true, swap the operands if they overlap.
13649 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13650 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13651 alpha_split_tmode_pair and adjust for above change.
13652 * config/alpha/alpha.md (movtf_internal): Adjust call to
13653 alpha_split_tfmode_pair and rely on it to swap the operands.
13654 (movti_internal): New insn and post-reload splitter.
13655 (movti): New expander.
13656
13657 2006-01-18 Philippe De Muyter <phdm@macqel.be>
13658
13659 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13660 operands.
13661
13662 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13663
13664 * rtlanal.c (global_reg_mentioned_p_1,
13665 global_reg_mentioned_p): Remove.
13666 * rtl.h: Remove the prototype for global_reg_mentioned_p.
13667
13668 * flow.c (initialize_uninitialized_subregs): Make it static.
13669 * rtl.h: Remove the prototype for
13670 initialize_uninitialized_subregs.
13671
13672 * function.c (instantiate_virtual_regs): Make it static.
13673 * function.h: Remove the prototype for
13674 instantiate_virtual_regs.
13675
13676 * regmove.c (regmove_optimize, combine_stack_adjustments):
13677 Make them static.
13678 * rtl.h: Remove the prototypes for regmove_optimize and
13679 combine_stack_adjustments.
13680
13681 2006-01-17 Roger Sayle <roger@eyesopen.com>
13682
13683 * config/i386/i386.c (COSTS_N_BYTES): New macro.
13684 (size_cost): Encode costs in bytes so that a reg-reg addition is
13685 equivalent to COSTS_N_INSNS(1).
13686 (override_options): Use the size_cost.branch_cost as the default
13687 ix86_branch_cost when optimizing for size.
13688
13689 2006-01-18 Ben Elliston <bje@au.ibm.com>
13690
13691 * Makefile.in (D32PBIT_FUNCS): New.
13692 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13693 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13694 D64PBIT_FUNCS and D128PBIT_FUNCS.
13695 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13696 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13697 D128PBIT are set.
13698 (decnumber_dep): Define.
13699 * doc/libgcc.texi (Decimal float library routines): New node.
13700 * config/dfp-bit.h, config/dfp-bit.c: New files.
13701
13702 2006-01-18 Ben Elliston <bje@au.ibm.com>
13703
13704 * expr.c (emit_move_change_mode): Always adjust addresses, not
13705 just during reload. Copy replacements only during reload.
13706 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13707 emit_move_via_integer.
13708
13709 2006-01-17 Shantonu Sen <ssen@opendarwin.org>
13710
13711 * Makefile.in (check-%, check-consistency): Use $${srcdir}
13712 instead of $(srcdir) and ${srcdir}.
13713
13714 2006-01-17 Richard Earnshaw <rearnsha@arm.com>
13715
13716 PR target/592
13717 PR middle-end/11135
13718 * arm.h (struct machine_function): Add pic_reg.
13719 * arm.c (arm_pic_register): Make unsigned.
13720 (arm_override_options): Only set arm_pic_register if
13721 TARGET_SINGLE_PIC_BASE.
13722 (use_return_insn): Only test for a pic register if it is fixed.
13723 (arm_compute_save_reg0_reg12_mask): Likewise.
13724 (thumb_compute_save_reg_mask): Likewise.
13725 (legitimate_pic_operand): Factor out some known invariants.
13726 (legitimize_pic_address): If we don't have a fixed pic register,
13727 then set up a pseudo in the function entry sequence. Handle the
13728 pic base being in a pseudo.
13729 (arm_load_pic_register): Handle the pic register being in a pseudo.
13730 (arm_expand_prologue): Only set up the pic register if it is fixed.
13731 (thumb_expand_prologue): Likewise.
13732 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13733 (pic_load_addr_based_insn): Likewise.
13734 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13735 fixed.
13736
13737 2006-01-18 Ben Elliston <bje@au.ibm.com>
13738
13739 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13740 decimal float modes for all floating point registers.
13741
13742 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13743 match_code "mem" with match_test "macho_lo_sum_memory_operand".
13744
13745 2006-01-17 Jakub Jelinek <jakub@redhat.com>
13746
13747 PR c/25682
13748 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13749 even when the pointer is not NULL.
13750
13751 2006-01-16 Ian Lance Taylor <ian@airs.com>
13752
13753 * common.opt (ftoplevel-reorder): New option.
13754 * cgraph.c (cgraph_asm_nodes): New global variable.
13755 (cgraph_asm_last_node): New static variable.
13756 (cgraph_order): New global variable.
13757 (cgraph_create_node): Set new order field.
13758 (cgraph_varpool_node): Likewise.
13759 (decide_is_variable_needed): Return true if not
13760 flag_toplevel_reorder.
13761 (cgraph_add_asm_node): New function.
13762 * cgraph.h (struct cgraph_node): Add order field.
13763 (struct cgraph_varpool_node): Add order field.
13764 (struct cgraph_asm_node): Define.
13765 (cgraph_asm_nodes, cgraph_order): Declare.
13766 (cgraph_add_asm_node): Declare.
13767 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13768 function.
13769 (cgraph_varpool_assemble_pending_decls): Call it.
13770 (cgraph_output_pending_asms): New static function.
13771 (cgraph_finalize_compilation_unit): Call it.
13772 (struct cgraph_order_sort): Define.
13773 (cgraph_output_in_order): New static function.
13774 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
13775 !flag_toplevel_reorder case.
13776 * c-parser.c: Include "cgraph.h".
13777 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
13778 assemble_asm.
13779 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
13780 than -fno-unit-at-a-time.
13781 * doc/invoke.texi (Option Summary): Mention
13782 -fno-toplevel-reorder.
13783 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
13784 -funit-at-a-time documentation.
13785
13786 2006-01-17 Hans-Peter Nilsson <hp@axis.com>
13787 Kazu Hirata <kazu@codesourcery.com>
13788
13789 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
13790
13791 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
13792
13793 * Makefile.in (FUNCTION_H): New. Use it instead of
13794 function.h throughout the file.
13795 * function.h: Include tree.h.
13796
13797 2006-01-17 Ben Elliston <bje@au.ibm.com>
13798
13799 * recog.c: Separate some functions with whitespace.
13800
13801 2006-01-16 Richard Henderson <rth@redhat.com>
13802
13803 Merge from gomp branch:
13804 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
13805 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
13806 and rename from struct inline_data. Rename callee* to dst*;
13807 caller* to src*; add copy_decl hook, transform_call_graph_edges,
13808 transform_new_cfg, transform_return_to_modify, and
13809 transform_lang_insert_block flags; remove cloning_p, versioning_p,
13810 update_clones_p.
13811 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
13812 (copy_decl_for_dup): Remove.
13813 * tree-inline.c (struct inline_data): Move to header.
13814 (insert_decl_map): Export.
13815 (remap_decl): Update for member name changes. Use copy_decl hook.
13816 Allow for replacement to be a non-decl. Remove dead code.
13817 (remap_type_1): Check for existing mapping.
13818 (remap_type): Export.
13819 (remap_decls): Update for member name changes.
13820 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
13821 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
13822 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
13823 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
13824 (tree_function_versioning, build_duplicate_type): Likewise.
13825 (copy_body_r): Likewise. Export.
13826 (copy_decl_for_dup): Split into ...
13827 (copy_decl_for_dup_finish, copy_decl_to_var,
13828 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
13829 (replace_ref_tree, inlining_p): Remove.
13830
13831 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13832
13833 * ifcvt.c (if_convert): Make it static.
13834 * rtl.h: Remove the prototype for if_convert.
13835
13836 * local-alloc.c (local_alloc): Make it static.
13837 * rtl.h: Remove the prototype for local_alloc.
13838
13839 * loop.c (loop_optimize): Make it static.
13840 * cfgloop.h: Remove the prototype for loop_optimize.
13841 * rtl.h: Likewise.
13842
13843 2006-01-16 DJ Delorie <dj@redhat.com>
13844
13845 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
13846 mems.
13847
13848 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13849
13850 * pa.md: Disparage copies between general and floating-point registers
13851 in 32-bit move patterns.
13852
13853 2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
13854
13855 PR testsuite/25741
13856 * Makefile.in (check-%): Depend on site.exp instead of
13857 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
13858 directories.
13859
13860 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13861
13862 * global.c (global_alloc): Make it static.
13863 * rtl.h: Remove the prototype for global_alloc.
13864
13865 2006-01-16 Richard Guenther <rguenther@suse.de>
13866
13867 * tree-ssa-alias.c (struct used_part): Add write_only field.
13868 (get_or_create_used_part_for): Initialize it to true.
13869 (create_overlap_variables_for): Don't create structure variables
13870 for structures that only are written to.
13871 (find_used_portions): Handle MODIFY_EXPR to track whether a
13872 structure is only written to.
13873
13874 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13875
13876 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
13877 static.
13878 * basic-block.h: Remove the prototype for
13879 partition_hot_cold_basic_blocks.
13880
13881 2006-01-16 Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
13882
13883 * cppspec.c (lang_specific_spec_functions): Remove.
13884 * gcc.c (lookup_spec_function): Use static_spec_functions directly.
13885 * gcc.h (lang_specific_spec_functions): Remove.
13886 * gccspec.c (lang_specific_spec_functions): Remove.
13887
13888 2006-01-16 Paolo Bonzini <bonzini@gnu.org>
13889
13890 * combine.c (record_value_for_reg): Invalidate registers
13891 if INSN is null.
13892 (record_dead_and_set_regs_1): Likewise, by passing them to
13893 record_value_for_reg.
13894 (record_dead_and_set_regs): Invalidate stores made by a
13895 call. We do not combine across a call, but we still
13896 relied on equivalences.
13897
13898 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13899
13900 * tree-vrp.c (extract_range_from_binary_expr): Cope with
13901 vrp_int_const_binop returning non-constant nodes.
13902
13903 2006-01-16 Paul Brook <paul@codesourcery.com>
13904
13905 * config/m68k/m68k.c (output_move_const_into_data_reg):
13906 Output correct mnemonic for mvz and mvs.
13907
13908 2006-01-16 Gabor Loki <loki@gcc.gnu.org>
13909
13910 * rtl-factoring.c: Add sequence abstraction algorithm.
13911 * cfgcleanup.c (outgoing_edges_match): Extra checks.
13912 (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
13913 ABNORMAL edges.
13914 (block_has_preserve_label): New function.
13915 * common.opt: Register new pass.
13916 * Makefile.in: Ditto.
13917 * passes.c: Ditto.
13918 * timevar.def: Ditto.
13919 * tree-pass.h: Ditto.
13920 * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
13921 * rtl.h (make_jump_insn_raw): Add forward decl.
13922 * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
13923
13924 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13925 Roger Sayle <roger@eyesopen.com>
13926
13927 * fold-const.c (fold_minmax): New static function.
13928 (fold_binary) <MIN_EXPR>: Call it.
13929 <MAX_EXPR>: Likewise.
13930 * stor-layout.c (place_field): Use DECL_SIZE consistently
13931 in the computation of the new record size.
13932
13933 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13934
13935 * cse.c (cse_condition_code_reg): Make it static.
13936 * rtl.h: Remove the prototype for cse_condition_code_reg.
13937
13938 * combine.c (combine_instructions): Make it static.
13939 * rtl.h: Remove the prototype for combine_instructions.
13940
13941 2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13942
13943 PR target/25168
13944 * tree.c (get_file_function_name_long): Concatenate the first global
13945 object name with a string derived from the input filename of the object
13946 for type "F".
13947
13948 2006-01-16 Ben Elliston <bje@au.ibm.com>
13949
13950 * config/i386/winnt-stubs.c: Update FSF address.
13951 * config/xtensa/ieee754-df.S: Ditto.
13952 * config/xtensa/ieee754-sf.S: Ditto.
13953
13954 2006-01-14 Ian Lance Taylor <ian@airs.com>
13955
13956 * ifcvt.c (noce_init_if_info): New static function, broken out of
13957 noce_process_if_block.
13958 (noce_process_if_block): Call noce_init_if_info.
13959 (check_cond_move_block): New static function.
13960 (cond_move_process_if_block): New static function.
13961 (process_if_block): Call cond_move_process_if_block.
13962
13963 2006-01-15 Kazu Hirata <kazu@codesourcery.com>
13964
13965 * cselib.c (hash_table): Rename to cselib_hash_table.
13966 (cselib_clear_table, discard_useless_values,
13967 remove_useless_values, cselib_lookup_mem, cselib_lookup,
13968 cselib_init, cselib_finish): Adjust uses of hash_table.
13969
13970 2006-01-14 Kazu Hirata <kazu@codesourcery.com>
13971
13972 PR tree-optimization/25485
13973 * tree-vrp.c (extract_range_from_binary_expr): Handle cases
13974 where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
13975 is known to be false and true, respectively.
13976
13977 2006-01-14 Richard Guenther <rguenther@suse.de>
13978
13979 PR tree-optimization/22548
13980 PR tree-optimization/22555
13981 PR tree-optimization/22501
13982 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
13983 * params.def (salias-max-array-elements): New parameter.
13984 * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
13985 * doc/invoke.texi (salias-max-array-elements): Document.
13986 * tree-flow-inline.h (var_can_have_subvars): We also handle
13987 arrays now.
13988 * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
13989 COMPONENT_REF.
13990 * tree-ssa-structalias.c (params.h): Include.
13991 (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
13992 (find_func_aliases): Handle multiple constraints from ARRAY_REF.
13993 (get_constraint_for): For ADDR_EXPR operating on something
13994 containing an ARRAY_REF, add all subvars to the solution.
13995 (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
13996 * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
13997 for creating MUST_DEFs.
13998 (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
13999
14000 2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
14001
14002 * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
14003 functions.
14004 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
14005 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
14006 number_of_iterations_le): New functions.
14007 (number_of_iterations_special): Removed.
14008 (number_of_iterations_exit): Do not use number_of_iterations_special.
14009 * tree.c (unsigned_type_for): Always return integer type.
14010
14011 2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
14012 Richard Guenther <rguenther@suse.de>
14013
14014 PR rtl-optimization/24257
14015 * gcse.c (find_moveable_store): Only consider a store movable
14016 when the SET_SRC of the insn can be assigned to a register.
14017
14018 2006-01-14 Ian Lance Taylor <ian@airs.com>
14019
14020 * tree.c (tree_not_class_check_failed): New function.
14021 * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
14022 (tree_not_class_check_failed): Declare.
14023
14024 2006-01-13 Ian Lance Taylor <ian@airs.com>
14025
14026 * reload1.c (do_output_reload): Add assertion rejecting a
14027 CALL_INSN.
14028
14029 2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
14030
14031 * combine.c (struct reg_stat): Add new fields truncation_label and
14032 truncated_to_mode.
14033 (record_value_for_reg): Reset truncated_to_mode.
14034 (record_truncated_value): New function.
14035 (check_promoted_subreg): Call it. Rename to check_conversions.
14036 (combine_instructions): Rename check_promoted_subreg to
14037 check_conversions.
14038 (reg_truncated_to_mode): New function.
14039 (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
14040 (gen_lowpart_or_truncate): New function.
14041 (force_to_mode): Use it instead of gen_lowpart.
14042
14043 2006-01-13 Diego Novillo <dnovillo@redhat.com>
14044
14045 * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
14046 VAR is a tag, not its type tag.
14047
14048 2006-01-13 Alexandre Oliva <aoliva@redhat.com>
14049
14050 * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
14051 alternatives to match style of other entries.
14052 (*vec_extractv2di_1_sse): Likewise. Fix mode attr.
14053
14054 2006-01-13 Daniel Berlin <dberlin@dberlin.org>
14055
14056 PR tree-optimization/25771
14057 * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
14058 SSA_NAMES.
14059
14060 2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
14061
14062 PR tree-opt/24365
14063 * tree-inline.c (declare_return_variable): If the return variable
14064 was marked as a non gimple complex, set the return slot variable
14065 to be a non gimple comple variable.
14066
14067 2006-01-13 Richard Guenther <rguenther@suse.de>
14068
14069 * builtins.c (expand_builtin_sincos): New function.
14070 (expand_builtin_mathfn_3): Remove dead code, sin and cos
14071 do not set errno.
14072 (expand_builtin): Expand sincos using expand_builtin_sincos.
14073
14074 2006-01-12 DJ Delorie <dj@redhat.com>
14075
14076 * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
14077 shift counts, separate SI shifts for m32c vs m16c, pass shift type
14078 so that constant shifts can be split.
14079 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
14080 (m32c_valid_pointer_mode): Make static.
14081 (shift_gen_func_for): New.
14082 (m32c_prepare_shift): Use it. Split large const shifts into
14083 multiple shifts.
14084 * config/m32c/predicates.md (shiftcount_operand): Allow more
14085 general operands.
14086 (longshiftcount_operand): New.
14087 * doc/md.texi (Machine Constraints): Document In6.
14088
14089 2006-01-13 Ben Elliston <bje@au.ibm.com>
14090
14091 * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
14092 REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
14093 documentation.
14094
14095 2006-01-12 Daniel Berlin <dberlin@dberlin.org>
14096
14097 * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
14098 to try to avoid clobbering pieces of structures when we know
14099 something about the whole structure.
14100 * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
14101
14102 2006-01-13 Ben Elliston <bje@au.ibm.com>
14103
14104 * doc/rtl.texi (Insns): Remove statement that libcalls cannot
14105 return in memory, as this is no limitation is no longer present.
14106
14107 2006-01-12 DJ Delorie <dj@redhat.com>
14108
14109 * config/m32c/addsub.md (addhi3): Add two more alternatives, for
14110 mova with fb, and for fb+0 -> An.
14111
14112 * config/m32c/mov.md (peephole2): Fix enabling logic.
14113
14114 * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
14115 DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
14116 DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
14117 FINI_ARRAY_SECTION_ASM_OP): Define.
14118
14119 * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
14120 variable.
14121 (m32c_legitimize_reload_address): New logic to reload FB to An.
14122 (m32c_output_reg_push): Add newline.
14123 (m32c_output_reg_pop): Likewise.
14124
14125 2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
14126
14127 * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
14128
14129 2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
14130
14131 * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
14132
14133 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14134
14135 * config/sh/predicates.md (sh_rep_vec): Add parallel to
14136 match_code.
14137
14138 2006-01-11 Ben Elliston <bje@au.ibm.com>
14139
14140 * rtlanal.c (find_reg_note): Assert insn is not null.
14141
14142 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14143
14144 * df-scan.c (df_hard_reg_init): Move declaration of i outside
14145 ifdef.
14146
14147 2006-01-11 Jeff Law <law@redhat.com>
14148
14149 * tree-ssa-threadupdate.c (threaded_edges): New VEC to
14150 hold edge pairs.
14151 (mark_threaded_blocks, register_jump_thread): New functions.
14152 (thread_through_all_blocks): Remove unwanted argument. No
14153 longer rely on e->aux to communicate thread target info.
14154 Call mark_threaded_blocks. Release the threaded_blocks
14155 bitmap and threaded_edges vector when complete.
14156 * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
14157 (threaded_blocks): Remove.
14158 (tree_ssa_dominator_optimize): Remove initialization and
14159 finalization of threaded_blocks. Simplify call to
14160 thread_through_all_blocks.
14161 (thread_across_edge): Call register_jump_thread rather than
14162 storing thread information into e->aux.
14163 (free_all_edge_infos): Simplify now that e->aux is no longer
14164 used to communicate with thread_through_all_blocks.
14165 * tree-flow.h (thread_through_all_blocks): Update prototype.
14166 (register_jump_thread): Prototype.
14167
14168 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14169
14170 * df-core.c (df_compact_blocks, df_bb_replace): Use
14171 SET_BASIC_BLOCK instead of BASIC_BLOCK.
14172
14173 2006-01-11 Richard Guenther <rguenther@suse.de>
14174
14175 PR tree-optimization/25734
14176 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
14177 stop propagation after successful propagation to the LHS.
14178
14179 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14180
14181 * basic-block.h (control_flow_graph): Change the type of
14182 x_basic_block_info to VEC(basic_block,gc) *.
14183 (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
14184 basic_block_info.
14185 (SET_BASIC_BLOCK): New.
14186 * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
14187 instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
14188 * cfgbuild.c (find_basic_blocks): Likewise.
14189 * cfglayout.c (fixup_reorder_chain): Likewise.
14190 * cfgrtl.c (create_basic_block_structure,
14191 rtl_create_basic_block): Likewise.
14192 * ifcvt.c (find_if_case_1): Likewise.
14193 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
14194 Likewise.
14195
14196 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14197
14198 * Makefile.in: Removed rotted odf.c entry.
14199
14200 2006-01-11 Hans-Peter Nilsson <hp@axis.com>
14201
14202 PR target/25706
14203 * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
14204 ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
14205 ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
14206 output pattern modifier, not %e.
14207 * config/cris/cris.c (cris_op_str): Update comment about pattern
14208 modifier.
14209 (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
14210 before falling through into...
14211 <case 'E'>: Redefined from old 'e' case.
14212
14213 2006-01-11 Jan Hubicka <jh@suse.cz>
14214
14215 PR target/25042
14216 * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
14217
14218 2006-01-11 Jan Hubicka <jh@suse.cz>
14219
14220 * i386.h (TARGET_DECOMPOSE_LEA): Kill.
14221 * i386.c (x86_decompose_lea): Kill.
14222 (ix86_rtx_costs): Kill.
14223
14224 2006-01-11 Jan Hubicka <jh@suse.cz>
14225
14226 * cgraph.c (cgraph_insert_node_to_hashtable): New function.
14227 * cgraph.h (cgraph_node): Add inline_decl.
14228 (cgraph_insert_node_to_hashtable): Declare.
14229 (save_inline_function_body): Declare.
14230 * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
14231 clones.
14232 (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
14233 (cgraph_function_versioning): Update call of tree_function_versioning.
14234 (save_inline_function_body): New function.
14235 * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
14236 saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
14237 * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
14238 (cgraph_default_inline_p): Likewise.
14239 (cgraph_decide_inlining_incrementally): Likewise.
14240 * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
14241 (copy_bb): Kill saving; do updating of clones.
14242 (copy_cfg_body): Kill saving.
14243 (initialize_inlined-parameters): Likewise.
14244 (expand_call_inline): Likewise.
14245 (save_body): Kill.
14246 (tree_function_versioning): New parameter "update_clones".
14247 (inlining_p): Kill saving.
14248 * tree-inline.h (tree_function_versioning): Update prototype.
14249 * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
14250 saving.
14251
14252 2006-01-11 Ian Lance Taylor <ian@airs.com>
14253
14254 * combine.c (struct undo): Remove is_int. Enumify types of undos.
14255 Allow undoing set of machine mode.
14256 (do_SUBST): Use enums instead of is_int.
14257 (do_SUBST_MODE): New function.
14258 (SUBST_MODE): New macro.
14259 (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
14260 reg and trying to replace reg_regno_rtx with a new register.
14261 (undo_all): Use new enums, handle undoing a PUT_MODE change.
14262 (simplify_set): Use SUBST_MODE.
14263 (distribute_notes): Remove code that tried to update reg notes
14264 for regno_reg_rtx changes.
14265
14266 2006-01-11 Paolo Bonzini <bonzini@gnu.org>
14267
14268 PR tree-optimization/23109
14269 PR tree-optimization/23948
14270 PR tree-optimization/24123
14271
14272 * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
14273 * tree-cfg.c (single_noncomplex_succ): New.
14274 * tree-flow.h (single_noncomplex_succ): Declare it.
14275 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14276 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14277 (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
14278 insert_bb, register_division_in, insert_reciprocals,
14279 replace_reciprocal, free_bb): New.
14280 (execute_cse_reciprocals_1): Rewritten.
14281 (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
14282 Do not commit any edge insertion. Always compute dominators and
14283 create the allocation pool.
14284 * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
14285 * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
14286 * targhooks.c (default_min_divistions_for_recip_mul): New.
14287 * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
14288 * passes.c (init_optimization_passes): Run recip after tree loop
14289 optimizations.
14290 * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
14291
14292 2006-01-11 Danny Berlin <dberlin@dberlin.org>
14293 Kenneth Zadeck <zadeck@naturalbridge.com>
14294
14295 * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
14296 DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
14297 DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
14298 DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
14299 DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
14300 DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
14301 DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
14302 DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
14303 DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
14304 DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
14305 DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
14306 DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
14307 DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
14308 DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
14309 DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
14310 DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
14311 DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
14312 DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
14313 DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
14314 DF_SCAN_POST_ALLOC): New macros.
14315 (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
14316 df_free_bb_function, df_local_compute_function, df_init_function,
14317 df_dataflow_function, df_confluence_function_0,
14318 df_confluence_function_n, df_transfer_function,
14319 df_finalizer_function, df_free_function, df_dump_problem_function,
14320 df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
14321 df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
14322 df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
14323 df_urec_bb_info, ) New types.
14324 (df_invalidated_by_call, df_all_hard_regs, df_state) New public
14325 variables.
14326 (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
14327 df_analyze_simple_change_some_blocks,
14328 df_analyze_simple_change_one_block, df_compact_blocks,
14329 df_bb_replace, df_bb_regno_last_use_find,
14330 df_bb_regno_first_def_find, df_bb_regno_last_def_find,
14331 df_insn_regno_def_p, df_find_def, df_find_use,
14332 df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
14333 df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
14334 df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
14335 debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
14336 debug_df_chain, df_get_dependent_problem, df_chain_create,
14337 df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
14338 df_grow_bb_info, df_chain_dump, df_print_bb_index,
14339 df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
14340 df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
14341 df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
14342 df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
14343 df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
14344 df_rescan_blocks, df_ref_create, df_get_artificial_defs,
14345 df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
14346 df_ref_remove, df_insn_refs_delete, df_refs_delete,
14347 df_reorganize_refs, df_set_state, df_hard_reg_init,
14348 df_read_modify_subreg_p) New public functions.
14349 * df-core.c: The core dataflow solver and glue routines for rtl
14350 dataflow.
14351 (df_init, df_add_problem, df_set_blocks, df_finish,
14352 df_hybrid_search_forward, df_hybrid_search_backward,
14353 df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
14354 df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
14355 df_bb_regno_last_use_find, df_bb_regno_first_def_find,
14356 df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
14357 df_reg_defined, df_find_use, df_reg_used, df_dump,
14358 df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
14359 df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
14360 debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
14361 debug_df_useno, reset_df_after_reload): New functions.
14362 * df-scan.c: The scanning fuctions, once in df.c, completely
14363 rewritten so that they now fully model the functionality of
14364 register usage at the backend.
14365 (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
14366 df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
14367 df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
14368 df_grow_insn_info, df_rescan_blocks, df_ref_create,
14369 df_get_artificial_defs, df_get_artificial_uses,
14370 df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
14371 df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
14372 df_refs_delete, df_reorganize_refs, df_set_state,
14373 df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
14374 df_def_record_1, df_defs_record, df_uses_record,
14375 df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
14376 df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
14377 df_record_exit_block_uses, df_hard_reg_init): New functions.
14378
14379 * df-problems.c: Seven concrete dataflow problems that use the
14380 scanning in df-scan.c and are solved by the engine in df-core.c.
14381 (df_get_dependent_problem, df_chain_create, df_chain_unlink,
14382 df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
14383 df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
14384 df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
14385 df_ru_free_bb_info, df_ru_alloc,
14386 df_ru_bb_local_compute_process_def,
14387 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
14388 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
14389 df_ru_transfer_function, df_ru_free, df_ru_dump,
14390 df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
14391 df_rd_free_bb_info, df_rd_alloc,
14392 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
14393 df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
14394 df_rd_transfer_function, df_rd_free, df_rd_dump,
14395 df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
14396 df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
14397 df_lr_local_compute, df_lr_init, df_lr_confluence_0,
14398 df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
14399 df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
14400 df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
14401 df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
14402 df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
14403 df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
14404 df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
14405 df_urec_mark_reg_change, df_urec_check_earlyclobber,
14406 df_urec_mark_reg_use_for_earlyclobber,
14407 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
14408 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
14409 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
14410 df_urec_dump, df_urec_add_problem, df_chain_alloc,
14411 df_chain_create_bb_process_use, df_chain_create_bb,
14412 df_chain_finalize, df_chain_free, df_chains_dump,
14413 df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
14414 df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
14415 df_reg_lifetime): New functions.
14416 * df.c: Deleted file.
14417 * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
14418 consistent with new df api.
14419 * modulo-sched.c (sms_schedule, rest_of_handle_sms,
14420 rest_of_handle_sms): Ditto.
14421 * web.c (unionfind_union, union_defs, entry_register, web_main):
14422 Ditto.
14423 * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
14424 invariant_expr_equal_p, find_defs, check_dependencies,
14425 find_invariant_insn, find_invariants_to_move, move_invariant_reg,
14426 free_inv_motion_data, move_loop_invariants): Ditto.
14427 * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
14428 Update dependencies.
14429 (odf.c): Added defective entry that was deleted later in day.
14430 * sched-deps.c (sched_analyze_1): Ditto.
14431
14432 2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
14433
14434 * tree-ssa-operands.c (get_expr_operands): Record addressable
14435 variables directly. Do not call add_stmt_operands for CONST_DECLs
14436 and ARRAY_DECLs.
14437 (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
14438 (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
14439
14440 2006-01-11 Ben Elliston <bje@au.ibm.com>
14441
14442 * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
14443 function returns true in the positive case.
14444
14445 2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14446
14447 PR target/20754
14448 * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14449 for SI, DI, SF and DF modes. Add alternatives to copy between
14450 general and floating point registers to the 32-bit patterns.
14451 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14452 * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14453 (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14454 generating 64-bit code.
14455 * config/pa/pa.c (output_move_double): Handle copies between general
14456 and floating registers.
14457
14458 2006-01-10 Stuart Hastings <stuart@apple.com>
14459
14460 * config/i386/i386.md (set_got): Update.
14461 (set_got_labelled): New. (UNSPEC_LD_MPIC): New.
14462 (builtin_setjmp_receiver): Mach-O support.
14463 * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14464 (GOT_SYMBOL_NAME): Define.
14465 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14466 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14467 * config/i386/i386.c (override_options): Revise for Darwin.
14468 (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
14469 support. (darwin_x86_file_end): New. (output_set_got): Add label
14470 parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
14471 * config/i386/i386-protos.h (output_set_got): Likewise.
14472 * config/darwin.c (machopic_legitimize_pic_address): Update
14473 regs_ever_live[].
14474
14475 2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
14476
14477 * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14478 when MODE isn't BLKmode.
14479
14480 2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
14481
14482 PR rtl-optimization/25367
14483 * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14484
14485 2006-01-10 Hans-Peter Nilsson <hp@axis.com>
14486
14487 PR target/25718
14488 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14489 for a negative bound.
14490
14491 2006-01-10 Richard Guenther <rguenther@suse.de>
14492
14493 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14494 Never override with anything constraint.
14495
14496 2006-01-10 Jan Beulich <jbeulich@novell.com>
14497
14498 * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14499 256 bits when optimize_size.
14500
14501 2006-01-10 Jan Beulich <jbeulich@novell.com>
14502
14503 * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14504 MASK_ALIGN_DOUBLE.
14505 * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14506 * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14507 arguments.
14508
14509 2006-01-10 Ben Elliston <bje@au.ibm.com>
14510
14511 * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14512 float modes.
14513 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14514 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14515 (USE_FP_FOR_ARG): Reject decimal float modes.
14516 (function_arg_advance): Likewise.
14517 (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14518 (rs6000_handle_altivec_attribute): Do not permit decimal floating
14519 point types in AltiVec vectors.
14520 (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14521 (rs6000_libcall_value): Likewise.
14522
14523 2006-01-09 Bob Wilson <bob.wilson@acm.org>
14524
14525 * config/xtensa/ieee754-df.S: New file.
14526 * config/xtensa/ieee754-sf.S: New file.
14527 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14528 (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14529 * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14530
14531 2006-01-09 Kazu Hirata <kazu@codesourcery.com>
14532
14533 * config/sh/predicates.md (binary_float_operator,
14534 binary_logical_operator, commutative_float_operator,
14535 equality_comparison_operator, greater_comparison_operator,
14536 less_comparison_operator, logical_operator,
14537 noncommutative_float_operator, shift_operator,
14538 symbol_ref_operand, unary_float_operator): Remove redundant
14539 conditionals.
14540
14541 2006-01-09 Jeff Law <law@redhat.com>
14542
14543 * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14544 code to propagate the RHS of a cast into COND_EXPR_COND. Remove
14545 now unused arguments. Callers updated.
14546 (eliminate_redundant_computations): Remove now unused arguments,
14547 callers updated.
14548 (local_fold): Remove, no longer used.
14549 (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14550 and moved to...
14551 * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14552 (simplify_cond): New function.
14553 (forward_propagate_into_cond): Call simplify_cond.
14554
14555 2006-01-09 Alexandre Oliva <aoliva@redhat.com>
14556
14557 * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14558 (*vec_extractv2di_1_sse): New.
14559
14560 2006-01-09 Ben Elliston <bje@au.ibm.com>
14561
14562 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14563
14564 2006-01-08 Richard Guenther <rguenther@suse.de>
14565
14566 * tree-ssa-structalias.c (get_constraint_for): Remove
14567 anyoffset argument.
14568 (get_constraint_for_component_ref): Likewise.
14569 (do_deref): Likewise.
14570 (get_constraint_for): Likewise.
14571 (do_structure_copy): Likewise.
14572 (handle_ptr_arith): Likewise.
14573 (find_func_aliases): Likewise. Remove unused need_anyoffset
14574 variable.
14575
14576 2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
14577 Kaz Kojima <kkojima@gcc.gnu.org>
14578
14579 * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14580 (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14581 (EXTRA_CONSTRAINT_C16): Remove.
14582 (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14583 (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14584 EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14585 * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14586 constants of SHmedia. Handle nested constant expressions of
14587 SHmedia correctly.
14588 (andcosts): Fix the costs for SHmedia constants.
14589 (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14590 * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14591 (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14592 (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14593 (movv4hi_i, movv2si_i): Likewise.
14594 (movsi_const): Adjust the second operand of ior so to match with
14595 the Csu constraint.
14596 (movdi_const, movdi_const_32bit): Likewise.
14597 (movdi_const_16bit+1): Don't sign-extend LOW.
14598 (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
14599 step.
14600 (*double_shori): Fix the split condition. Use GEN_INT instead
14601 of get_int_mode calls. Mask lower 16-bit of the argument of
14602 the last GEN_INT.
14603 (sym2GOTPLT): Remove.
14604 (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14605 gen_rtx_UNSPEC.
14606 * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14607 instead of EXTRA_CONSTRAINT_C16.
14608
14609 2006-01-07 Ian Lance Taylor <ian@airs.com>
14610 David Edelsohn <edelsohn@gnu.org>
14611
14612 PR rtl-optimization/25662
14613 * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14614 for constant operands instead of simplify_gen_binary.
14615 * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14616 after trying simplify_binary_operation
14617
14618 2006-01-06 Daniel Berlin <dberlin@dberlin.org>
14619
14620 * tree.c (iterative_hash_expr): Hash decls based on UID.
14621
14622 2006-01-06 Eric Christopher <echristo@apple.com>
14623
14624 * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14625 (TARGET_UNWIND_EMIT): Fix spelling.
14626 * target.h (gcc_target): Add except_table_label.
14627 * except.c (output_function_exception_table): Use.
14628 * varasm.c (default_emit_except_table_label): New.
14629 * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14630 define.
14631 (asm_out): Add here.
14632 * output.h (default_emit_except_table_label): Prototype.
14633 * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14634 * config/darwin.c (darwin_emit_except_table_label): Define.
14635 * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14636
14637 2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
14638
14639 PR tree-optimization/18527
14640 * tree-ssa-loop-niter.c (number_of_iterations_cond,
14641 number_of_iterations_special, number_of_iterations_exit):
14642 Move base and step of an iv to a single structure. Add
14643 no_overflow flag, and use it in # of iterations analysis.
14644 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14645 folded_casts argument.
14646 (simple_iv): Pass base and step in a structure. Set no_overflow
14647 flag.
14648 (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14649 Evaluate expensiveness of computing # of iterations instead of
14650 the final expression.
14651 * tree-scalar-evolution.h (affine_iv): New structure.
14652 (simple_iv): Declaration changed.
14653 * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14654 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14655 find_givs_in_stmt): Changed due to simple_iv change.
14656
14657 2006-01-06 Jeff Law <law@redhat.com>
14658
14659 PR ada/24994
14660 * tree-cfg.c (bsi_replace): Rename final argument from
14661 PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
14662 change (stmt -> orig_stmt).
14663 * tree-eh.c (verify_eh_throw_stmt_node): New function.
14664 (bsi_remove): Add new argument. Remove EH information
14665 if requested.
14666 (verify_eh_throw_table_statements): New function.
14667 (bsi_remove): Add new argument REMOVE_EH_INFO. All callers
14668 updated.
14669 * tree-optimize.c (execute_free_cfg_annotations): Verify
14670 the EH throw statement table after removing annotations.
14671 * except.h (verify_eh_throw_table_statements): Prototype.
14672 * tree-flow.h (bsi_remove): Update prototype.
14673 * tree-vrp.c (remove_range_assertions): Add new argument to
14674 bsi_remove call.
14675 * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14676 * tree-complex.c (expand_complex_div_wide): Likewise.
14677 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14678 * tree-tailcall.c (eliminate_tailcall): Likewise.
14679 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14680 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14681 * tree-nrv.c (tree_nrv): Likewise.
14682 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14683 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14684 (combine_blocks): Likewise.
14685 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14686 * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14687 (cleanup_control_flow): Likewise.
14688 (remove_forwarder_block): Likewise.
14689 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14690 * tree-sra.c (sra_replace): Likewise.
14691 * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14692 (forward_propagate_single_use_vars): Likewise.
14693 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14694 * tree-inline.c (expand_call_inline): Likewise.
14695 * tree-vect-transform.c (vect_transform_loop): Likewise.
14696 * tree-outof-ssa.c (rewrite_trees): Likewise.
14697 * tree-cfg.c (make_goto_expr_edges): Likewise.
14698 (cleanup_dead_labels): Likewise.
14699 (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14700 (bsi_move_before, bsi_move_after): Likewise.
14701 (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14702 (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14703
14704 2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
14705
14706 PR tree-opt/25528
14707 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14708 and IMAGPART_EXPR.
14709 * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14710 on non gimple variables. Also add checks at the top for decls and
14711 mtags.
14712 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14713 complex types.
14714 * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14715 and IMAGPART_EXPR for creating MUST_DEFs.
14716 (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14717 and NAME_MEMORY_TAG separately from the DECLs.
14718
14719 2006-01-06 Richard Guenther <rguenther@suse.de>
14720
14721 * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14722 annotation, if necessary.
14723 * tree-ssa-pre.c (create_expression_by_pieces): Remove
14724 redundant calls to update_stmt.
14725 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14726 Likewise.
14727
14728 2006-01-05 Richard Henderson <rth@redhat.com>
14729
14730 * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14731
14732 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14733
14734 * c-typeck.c: Update copyright date.
14735
14736 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14737
14738 * c-typeck.c (build_c_cast): Always warn when casting
14739 from a pointer to an integer of different size, even if
14740 the node was constant.
14741
14742 2006-01-05 Richard Guenther <rguenther@suse.de>
14743
14744 PR tree-optimization/22555
14745 * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14746 if one structure field is an array.
14747 * tree-ssa-operands.c (get_expr_operands): Continue scanning
14748 operands even if we found a subvar, but ignore VOPs in this
14749 case.
14750 * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14751 for renaming.
14752 * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14753
14754 2006-01-05 Richard Earnshaw <rearnsha@arm.com>
14755
14756 PR middle-end/24998
14757 * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14758
14759 2006-01-05 Richard Guenther <rguenther@suse.de>
14760 Diego Novillo <dnovillo@redhat.com>
14761
14762 * tree-pass.h (TODO_remove_unused_locals): Define.
14763 * gimple-low.c (expand_var_p, remove_useless_vars,
14764 pass_remove_useless_vars): Remove. Update all users.
14765 * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14766 (remove_unused_locals): New function.
14767 * tree-flow.h (remove_unused_locals): Declare.
14768 * passes.c (execute_todo): Call remove_unused_locals if
14769 TODO_remove_unused_locals is set.
14770 * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14771 * tree-ssa-dce.c (pass_dce): Likewise.
14772 * tree-outof-ssa.c (pass_del_ssa): Likewise.
14773
14774 2006-01-05 Richard Guenther <rguenther@suse.de>
14775
14776 * tree-flow.h (struct fieldoff): Decompose field to
14777 type, size and decl.
14778 * tree-ssa-alias.c (create_sft): Take type as parameter.
14779 (create_overlap_variables_for): Store type, size and decl
14780 in the fieldoff structure.
14781 * tree-ssa-structalias.c (fieldoff_compare): Adjust users
14782 of struct fieldoff.
14783 (push_fields_onto_fieldstack): Likewise.
14784 (create_variable_info_for): Likewise. Use offset for the
14785 SFT name if the decl is not available.
14786
14787 2006-01-04 Paul Brook <paul@codesourcery.com>
14788
14789 * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
14790
14791 2006-01-04 Daniel Berlin <dberlin@dberlin.org>
14792
14793 * lambda-code.c (can_put_in_inner_loop): Relax
14794 restrictions.
14795 (can_put_after_inner_loop): New function.
14796 (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
14797 (perfect_nestify): Change to make copies and modify uses.
14798
14799 2006-01-04 Richard Henderson <rth@redhat.com>
14800
14801 Merge from gomp branch:
14802 * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
14803 via integer constant.
14804 (pragma_lex): Remove.
14805 * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
14806 rather than parsing it.
14807 * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
14808 handle_pragma_extern_prefix): Add %< %> quotes.
14809 (registered_pragmas): New.
14810 (c_register_pragma_1): New.
14811 (c_register_pragma): Use it.
14812 (c_register_pragma_with_expansion): Likewise.
14813 (c_invoke_pragma_handler): New.
14814 (init_pragma): Use cpp_register_deferred_pragma directly for
14815 pch_preprocess.
14816 * c-pragma.h (enum pragma_kind): New.
14817 (pragma_handler): New.
14818 (c_invoke_pragma_handler): Declare.
14819 * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
14820 CPP_PRAGMA_EOL.
14821 * c-common.h (c_common_pch_pragma): Update decl.
14822 * Makefile.in (c-parser.o): Update dependencies.
14823 (GTFILES): Add c-pragma.h.
14824 * c-parser.c (struct c_token): Add pragma_kind.
14825 (struct c_parser): Add in_pragma.
14826 (c_lex_one_token): Always initialize keyword and pragma_kind.
14827 Extract data for CPP_PRAGMA.
14828 (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
14829 (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
14830 Don't allow CPP_PRAGMA_EOL if in_pragma.
14831 (c_parser_consume_pragma): New.
14832 (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
14833 (c_parser_skip_to_end_of_parameter): Likewise.
14834 (c_parser_skip_to_end_of_block_or_statement): Likewise.
14835 (c_parser_skip_to_pragma_eol): New.
14836 (c_parser_external_declaration): Handle CPP_PRAGMA.
14837 (c_parser_compound_statement_nostart): Likewise.
14838 (c_parser_statement_after_labels): Likewise.
14839 (c_parser_pragma): New.
14840 (pragma_lex): Likewise.
14841 (c_parser_pragma_pch_preprocess): New.
14842 (c_parser_new): Merge into ...
14843 (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
14844
14845 2006-01-04 Jeff Law <law@redhat.com>
14846
14847 PR ada/24994
14848 * tree-cfg.c (bsi_replace): Remove the original statement
14849 from the EH throw statement table.
14850
14851 2006-01-04 Jakub Jelinek <jakub@redhat.com>
14852
14853 * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
14854 make the prototype extern "C" and add throw ().
14855
14856 PR target/25554
14857 * config/i386/i386.md (testqi_ext_3): Ensure len is positive
14858 and pos non-negative and pos + len <= 32.
14859 (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
14860 drop pos + len < HOST_BITS_PER_WIDE_INT test.
14861 (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
14862
14863 PR c/25559
14864 * c-common.c (handle_vector_size_attribute): Reject zero vector size
14865 as well as sizes not multiple of component size.
14866
14867 PR debug/25562
14868 * function.c (instantiate_expr): New function.
14869 (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
14870 walk its DECL_VALUE_EXPR with instantiate_expr.
14871
14872 * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
14873 DW_OP_deref{,_size} if address isn't going to be added.
14874
14875 2006-01-04 Ben Elliston <bje@au.ibm.com>
14876
14877 * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
14878 * config/fp-bit.c: Likewise.
14879
14880 2006-01-03 Daniel Berlin <dberlin@dberlin.org>
14881
14882 * dominance.c: Add comment about why we use DFS numbering
14883 of dominance tree.
14884
14885 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14886 Richard Henderson <rth@redhat.com>
14887
14888 Merge from gomp-branch:
14889 * varasm.c (assemble_variable): Handle thread-local COMMON data.
14890 * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
14891
14892 2006-01-03 Paolo Bonzini <bonzini@gnu.org>
14893
14894 PR rtl-optimization/25578
14895 * combine.c (combine_simplify_rtx, force_to_mode): Don't
14896 pass a parameter to simplify_shift_const if changing ASHIFTRT
14897 to LSHIFTRT.
14898
14899 2006-01-03 Adrian Straetling <straetling@de.ibm.com>
14900
14901 * builtins.c (get_builtin_sync_mem): New function.
14902 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
14903 expand_builtin_lock_test_and_set, expand_builtin_lock_release):
14904 Call get_builtin_sync_mem to generate mem rtx.
14905
14906 2006-01-03 Richard Guenther <rguenther@suse.de>
14907
14908 PR c/25183
14909 * stmt.c (add_case_node): Make sure to clear overflow flags
14910 from ranges.
14911
14912 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14913
14914 Merge from gomp-branch.
14915 * config/sparc/sync.md: New file.
14916 * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
14917 UNSPECV_LDSTUB): New constants.
14918 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
14919 * config/sparc/predicates.md (memory_reg_operand): New predicate.
14920 * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
14921 prototype.
14922
14923 2006-01-03 Roger Sayle <roger@eyesopen.com>
14924
14925 * combine.c (reg_subword_p): New predicate to test whether the
14926 destination of a set refers to a subword/piece of a register.
14927 (try_combine): Generalize the code to merge the setting of a
14928 pseudo to a constant followed by a set of a subword of that
14929 register to a constant.
14930
14931 2006-01-03 Kazu Hirata <kazu@codesourcery.com>
14932
14933 * basic-block.h (control_flow_graph): Change the type of
14934 x_label_to_block_map to VEC(basic_block,gc) *.
14935 * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
14936 set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
14937
14938 * tree-ssa-propagate.c (cfg_blocks): Change the type to
14939 VEC(basic_block,heap) *.
14940 (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
14941 ssa_prop_fini): Adjust the uses of cfg_blocks.
14942
14943 2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
14944
14945 * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
14946 COMPONENT_REFs.
14947 * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
14948 hashing trees instead of a pointer hash.
14949 (mem_attrs_htab_eq): Do a deep compare instead of a pointer
14950 compare for MEM_EXPR.
14951
14952 PR rtl-optimization/25130
14953 * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
14954 when comparing MEMs for GCSE
14955
14956 2006-01-03 Ben Elliston <bje@au.ibm.com>
14957
14958 * targhooks.h (default_decimal_float_supported_p): Declare.
14959 * targhooks.c (default_decimal_float_supported_p): Define.
14960 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
14961 `default_decimal_float_supported_p'.
14962 * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
14963
14964 2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
14965
14966 * combine.c (apply_distributive_law <SUBREG>): Check
14967 TRULY_NOOP_TRUNCATION.
14968
14969 2006-01-02 Geoffrey Keating <geoffk@apple.com>
14970
14971 * dwarf2out.c (have_switched_text_section): Delete.
14972 (have_multiple_function_sections): New.
14973 (have_location_lists): Make 'bool'.
14974 (add_AT_loc_list): Use 'true' not '1'.
14975 (dwarf2out_switch_text_section): Set have_multiple_function_sections.
14976 (output_loc_list): Use have_multiple_function_sections.
14977 (output_ranges): Likewise.
14978 (dwarf2out_begin_function): Set have_multiple_function_sections if
14979 necessary.
14980 (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
14981 Check function_section rather than DECL_SECTION_NAME.
14982 (dwarf2out_finish): Use have_multiple_function_sections.
14983 Don't clear have_location_lists.
14984
14985 2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
14986 Jan Hubicka <jh@suse.cz>
14987
14988 * cfglayout.c (fixup_reorder_chain): Remove kludge for the
14989 case of conditional jump jumping to the next instruction.
14990 * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
14991 cases of conditional jump jumping to the next instruction.
14992
14993 2006-01-02 Jan Hubicka <jh@suse.cz>
14994
14995 * i386.c (*_cost): Add COSTS_N_INSNS.
14996 (ix86_rtx_costs): Do not use COSTS_N_INSNS.
14997
14998 2006-01-02 Paolo Bonzini <bonzini@gnu.org>
14999
15000 PR target/25259
15001 * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
15002
15003 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
15004
15005 * config/arm/arm.c (all_fpus): Fix comment typo.
15006 * config/darwin.c: Likewise.
15007 * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
15008 * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
15009 * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
15010
15011 2006-01-01 David Edelsohn <edelsohn@gnu.org>
15012
15013 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
15014 (rs6000_split_compare_and_swapqhi): New.
15015 * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
15016 (sync_compare_and_swapqhi_internal): New.
15017 * config/rs6000/rs6000-protos.h: Declare.