basic-block.h (bb_has_eh_pred): Fix comment.
[gcc.git] / gcc / ChangeLog
1 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2
3 * basic_block.h (bb_has_eh_pred): Fix comment.
4
5 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
6
7 * flow.c (calculate_global_regs_live): Invalidate eh registers
8 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
9 (propagate_block): Handle eh registers as if they were set at basic
10 block start.
11 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
12 registers.
13 * global.c (global_conflicts): Make eh registers to conflict with
14 pseudos live at basic block begin.
15 * basic_block.h (bb_has_eh_pred): New function.
16
17 2006-09-13 Richard Sandiford <richard@codesourcery.com>
18
19 PR rtl-optimization/28982
20 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
21 index of a PRE_MODIFY or POST_MODIFY address.
22 * reload1.c (inc_for_reload): Use find_replacement on the original
23 base and index registers.
24
25 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
26
27 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
28 for -Os. Update __m128 alignment requirement.
29
30 2006-09-13 Jan Hubicka <jh@suse.cz>
31
32 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
33
34 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
35
36 PR rtl-optimization/28243
37 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
38 the insn to which the note was originally attached.
39
40 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
41 Roger Sayle <roger@eyesopen.com>
42
43 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
44 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
45 on platforms that don't use dwarf for debug info.
46
47 2006-09-12 Jason Merrill <jason@redhat.com>
48
49 PR middle-end/28493
50 * builtins.c (expand_builtin_setjmp_receiver): Clobber
51 hard_frame_pointer_rtx after using it to update the frame pointer.
52
53 2006-09-12 Roger Sayle <roger@eyesopen.com>
54
55 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
56 (TARGET_ASM_CLOSE_PAREN): Likewise.
57 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
58 (TARGET_ASM_CLOSE_PAREN): Likewise.
59
60 2006-09-12 Roger Sayle <roger@eyesopen.com>
61
62 PR target/22223
63 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
64 frame information for frames larger than 512 Kbytes on Tru64 when
65 using the native assembler.
66
67 2006-09-12 Roger Sayle <roger@eyesopen.com>
68
69 PR middle-end/4520
70 PR bootstrap/28784
71 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
72 and symbols. Instead use the implementation from cse.c's hash_rtx.
73
74 2006-09-12 Jan Hubicka <jh@suse.cz>
75
76 PR rtl-optimization/28071
77 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
78 (vect_transform_loop): Likewise.
79 * tree-vectorizer.c (new_loop_vec_info): Likewise.
80 (new_loop_vec_info): Likewise.
81 (destroy_loop_vec_info): Likewise.
82 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
83 (create_stmt_ann): Likewise.
84 (create_tree_ann): Rename to ...
85 (create_tree_common_ann): ... this one; allocate only the common part
86 of annotations.
87 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
88 (get_value_handle): Likewise.
89 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
90 get_tree_common_ann.
91 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
92 (vinfo_for_stmt): Use stmt annotations.
93 * tree-flow.h (tree_ann_common_t): New type.
94 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
95 (tree_ann, get_tree_ann, create_tree_ann): New.
96 * tree-flow-inline.h (get_function_ann): Do more type checking.
97 (stmt_ann): Likewise.
98 (tree_ann): Rename to ...
99 (tree_common_ann): ... this one; return ony common_ann
100 (get_tree_ann): Rename to ...
101 (tree_common_ann): This one; return only common_ann.
102 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
103 of set_stmt_info.
104
105 2006-09-11 Geoffrey Keating <geoffk@apple.com>
106
107 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
108 with_cpu by default.
109
110 * dwarf2out.c (dwarf_file_data): New.
111 (enum dw_val_class): Add dw_val_class_file.
112 (struct dw_val_struct): Add val_file.
113 (file_table): Change to a hash table.
114 (file_table_emitted): Delete.
115 (file_table_last_lookup_index): Delete.
116 (emitcount): Delete.
117 (last_emitted_file): New.
118 (lookup_filename): Change prototype to return a struct dwarf_file_data.
119 (init_file_table): Delete.
120 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
121 (AT_addr): Add comment.
122 (add_AT_file): New.
123 (AT_file): New.
124 (get_AT_file): New.
125 (print_die): Handle dw_val_class_file.
126 (print_dwarf_line_table): Update for new file table structure.
127 (attr_checksum): Do checksum a filename.
128 (same_dw_val_p, same_attr_p): Do compare a filename.
129 (size_of_die): Handle dw_val_class_file.
130 (value_format): Likewise.
131 (output_die): Likewise. Also, call maybe_emit_file here.
132 (struct file_info): Constify filenames. Make file_idx a pointer
133 to a struct dwarf_file_data.
134 (struct dir_info): Constify directory names. Remove 'used' field.
135 (struct file_name_acquire_data): New.
136 (file_name_acquire): New.
137 (output_file_names): Modify to handle new file data structures.
138 (add_src_coords_attributes): Use add_AT_file.
139 (add_call_src_coords_attributes): Likewise.
140 (dwarf2out_imported_module_or_decl): Likewise.
141 (gen_subprogram_die): Modify for new file data structures.
142 (gen_variable_die): Likewise.
143 (file_table_eq): New.
144 (file_table_hash): New.
145 (file_table_last_lookup): New.
146 (lookup_filename): Rewrite to handle new file data structures.
147 (maybe_emit_file): Rewrite to handle new file data structures.
148 (dwarf2out_source_line): Always call lookup_filename and
149 maybe_emit_file.
150 (dwarf2out_init): Create file_table here.
151 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
152 (file_table_relative_p): New.
153 (dwarf2out_finish): Change detection of relative filenames
154 to work with new file data structures. Move output_line_info call
155 after debug_info output.
156
157 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
158
159 PR target/13685
160 PR target/27537
161 PR target/28621
162 * config/i386/i386.c (override_options): Always default to 16
163 byte stack boundary.
164
165 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
166
167 PR target/28672
168 * var-tracking.c (dump_dataflow_set): Start dumping at
169 register zero.
170 (clobber_variable_part): Kill only the variable part in
171 registers holding it, leaving other variables alone.
172
173 2006-09-11 Josh Triplett <josh@freedesktop.org>
174
175 * doc/extend.texi (Other Builtins): Actually use the macro
176 argument in the documentation example for
177 __builtin_types_compatible_p.
178
179 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
180
181 PR rtl-optimization/28726
182 * sched-deps.c (sched_analyze_reg): New function extracted from...
183 (sched_analyze_1): ...here. Call it to analyze references to
184 registers. Treat again writes to a stack register as writing to the
185 register.
186 (sched_analyze_2): ...and here. Call it to analyze references to
187 registers. Treat again reads of a stack register as reading the
188 register.
189
190 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
191 David Edelsohn <edelsohn@gnu.org>
192
193 PR target/27287
194 * config/rs6000/spe.md (frob_df_di): Remove %H.
195 (frob_di_df): Remove %H. Change evmergelo to mr.
196 (frob_di_df_2): Remove %H. Change evldd to two loads.
197
198 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
199
200 * doc/cpp.texi: Fix names of charset options.
201
202 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
203
204 PR target/29009
205 * config/i386/i386.c (override_options): Use 128-bit
206 stack boundary always for 64bits.
207
208 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
209
210 PR rtl-optimization/28636
211 * combine.c (force_to_mode): Test for side-effects before
212 substituting by zero.
213 (simplify_shift_const): Likewise for zero or other constants.
214
215 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
216
217 PR middle-end/26983
218 * builtins.c (expand_builtin_setjmp): Force next_lab to be
219 preserved.
220
221 2006-09-10 Richard Sandiford <richard@codesourcery.com>
222
223 PR target/29006
224 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
225 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
226 returned by mode_for_size, rather than the mode of src itself,
227 to choose between 32-bit and 64-bit patterns.
228 (mips_mem_fits_mode_p): New function.
229 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
230 that the size of the source matches the size of the destination.
231 (mov_<store>l, mov_<store>r): Likewise.
232
233 2006-09-10 Eric Christopher <echristo@apple.com>
234
235 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
236 for literal16.
237
238 2006-09-09 Eric Christopher <echristo@apple.com>
239
240 PR target/28995
241 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
242 for literal16.
243
244 2006-09-09 Roger Sayle <roger@eyesopen.com>
245 Nicolas Setton <setton@adacore.com>
246
247 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
248
249 2006-09-10 Andreas Schwab <schwab@suse.de>
250
251 * config/m68k/m68k.md (bungt_rev): New pattern.
252
253 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
254 Dale Johannesen <dalej@apple.com>
255
256 PR target/26778
257 * regclass.c (struct reg_pref): Update documentation.
258 (regclass): Set prefclass to NO_REGS if memory is the best option.
259 (record_reg_classes): Cope with a prefclass set to NO_REGS.
260
261 2006-09-08 Eric Christopher <echristo@apple.com>
262
263 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
264 * config/t-slibgcc-darwin: Support x86_64 multilib.
265 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
266 Return 1 for x86_64-darwin.
267 * config/i386/t-darwin: Add m64 multilib.
268 (LIB2_SIDITI_CONV_FUNCS): Use.
269 (LIB2FUNCS_EXTRA): Ditto.
270 * config/i386/darwin.h: Support x86_64.
271 * config/i386/i386.c (override_options): Turn on flag_pic
272 for x86_64-darwin. Disable flag_omit_pointer.
273 (get_pc_thunk_name): Assert !TARGET_64BIT.
274 (legitimate_address_p): Disable machopic addressing for
275 x86_64.
276 (legitimize_pic_address): Ditto.
277 (ix86_expand_move): Ditto.
278 (ix86_expand_call): Ditto.
279 (machopic_output_stub): Ditto.
280 * config/darwin.c (machopic_select_section): Support literal16.
281 (machopic_select_rtx_section): Ditto.
282 * config/darwin-sections.def: Ditto.
283 * config/darwin-64.c: New.
284
285 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
286
287 PR c/28504
288 * c-tree.h (struct c_arg_info): Add pending_sizes.
289 * c-parser.c (c_parser_parms_declarator,
290 c_parser_parms_list_declarator): Initialize pending_sizes.
291 * c-decl.c (get_parm_info): Initialize pending_sizes.
292 (get_parm_info): Set pending_sizes.
293 (grokdeclarator): Call put_pending_sizes for parameters for
294 function definition only.
295
296 2006-09-07 Jason Merrill <jason@redhat.com>
297
298 PR middle-end/27724
299 * varasm.c (output_constant): Only strip actual no-op conversions.
300
301 PR target/13685
302 * config/i386/i386.c (override_options): Use 128-bit
303 stack boundary if -msse.
304
305 2006-09-07 Eric Christopher <echristo@apple.com>
306
307 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
308 comment.
309 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
310 Redefine.
311
312 2006-09-07 Geoffrey Keating <geoffk@apple.com>
313
314 * dwarf2out.c: Remove strange characters from comment above
315 dwarf2out_frame_debug_expr.
316
317 2006-09-07 Eric Christopher <echristo@apple.com>
318
319 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
320 * config/darwin.h: ... to here.
321
322 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
323
324 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
325
326 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
327 (TARGET_PARTIAL_FLAG_REG_STALL): New.
328
329 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
330 TARGET_PARTIAL_FLAG_REG_STALL.
331 (*ashldi3_cconly_rex64): Likewise.
332 (*ashlsi3_cmp): Likewise.
333 (*ashlsi3_cconly): Likewise.
334 (*ashlsi3_cmp_zext): Likewise.
335 (*ashlhi3_cmp): Likewise.
336 (*ashlhi3_cconly): Likewise.
337 (*ashlqi3_cmp): Likewise.
338 (*ashlqi3_cconly): Likewise.
339 (*ashrdi3_cmp_rex64): Likewise.
340 (*ashrdi3_cconly_rex64): Likewise.
341 (*ashrsi3_cmp): Likewise.
342 (*ashrsi3_cconly): Likewise.
343 (*ashrsi3_cmp_zext): Likewise.
344 (*ashrhi3_cmp): Likewise.
345 (*ashrhi3_cconly): Likewise.
346 (*ashrqi3_cmp): Likewise.
347 (*ashrqi3_cconly): Likewise.
348 (*lshrdi3_cmp_rex64): Likewise.
349 (*lshrdi3_cconly_rex64): Likewise.
350 (*lshrsi3_cmp): Likewise.
351 (*lshrsi3_cconly): Likewise.
352 (*lshrsi3_cmp_zext): Likewise.
353 (*lshrhi3_cmp): Likewise.
354 (*lshrhi3_cconly): Likewise.
355 (*lshrqi2_cmp): Likewise.
356 (*lshrqi2_cconly): Likewise.
357
358 2006-09-07 Uros Bizjak <uros@kss-loka.si>
359
360 PR target/28946
361 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
362 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
363 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
364 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
365 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
366 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
367 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
368 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
369 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
370 implement only CC setting effects of shift instructions.
371
372 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
373
374 * doc/contrib.texi: Add myself.
375
376 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
377
378 PR middle-end/28862
379 * stor-layout.c (relayout_decl): Don't zero the alignment if it
380 was set by the user.
381
382 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
383
384 PR target/27117
385 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
386 (divsi_inv_m1): Use them.
387 (UNSPEC_DIV_INV_TABLE): New constant.
388
389 2006-09-06 James E Wilson <wilson@specifix.com>
390
391 PR rtl-opt/27883
392 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
393 then call count_or_remove_death_notes.
394
395 2006-09-06 Jason Merrill <jason@redhat.com>
396
397 PR c++/27371
398 * tree-inline.c (copy_result_decl_to_var): New fn.
399 (declare_return_variable): Use it. Call declare_inline_vars here.
400 (expand_call_inline): Not here.
401
402 2006-09-06 Diego Novillo <dnovillo@redhat.com>
403
404 * doc/contrib.texi: Update my entry.
405
406 2006-09-06 Nick Clifton <nickc@redhat.com>
407
408 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
409
410 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
411
412 PR tree-opt/28937
413 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
414 (canonicalize_induction_variables): Likewise.
415 (tree_unroll_loops_completely): Likewise.
416 (tree_ssa_prefetch_arrays): Likewise.
417 (remove_empty_loops): Likewise.
418 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
419 TODO_cleanup_cfg instead of directly calling
420 cleanup_tree_cfg_loop.
421 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
422 Likewise.
423 (tree_unroll_loops_completely): Likewise.
424 (remove_empty_loops): Likewise.
425 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
426 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
427 of tree_ssa_unswitch_loops.
428 (tree_ssa_loop_ivcanon): Use the return value of
429 canonicalize_induction_variables.
430 (tree_ssa_empty_loop): Use the return value of
431 remove_empty_loops.
432 (tree_complete_unroll): Use the return value of
433 tree_unroll_loops_completely.
434 (tree_ssa_loop_prefetch): Use the return value of
435 tree_ssa_prefetch_arrays.
436 * passes.c (execute_todo): Before Cleanup CFG, set
437 updating_used_alone and after cleanup CFG, call
438 recalculate_used_alone.
439
440 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
441
442 PR tree-opt/28952
443 * tree-vect-transform.c (vectorizable_condition): Move the check
444 for the type after the check for simple condition.
445
446 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
447 Kaz Kojima <kkojima@gcc.gnu.org>
448
449 PR target/28764
450 * mode-switching.c (optimize_mode_switching): Make the destination
451 block of an abnormal edge have no anticipatable mode. Don't
452 insert mode switching code at the end of the source block of
453 an abnormal edge.
454
455 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
456
457 PR rtl-optimization/26847
458 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
459 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
460 (simplify_plus_minus): Count n_constants while filling ops. Replace
461 qsort with insertion sort. Before going through the array to simplify
462 pairs, sort it. Delay early exit until after the first sort, exiting
463 only if no swaps occurred. Simplify pairs in reversed order, without
464 special-casing the first iteration. Pack ops after simplifying pairs.
465
466 2006-09-05 Anatoly Sokolov <aesok@post.ru>
467
468 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
469 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
470 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
471 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
472
473 2006-09-05 Richard Guenther <rguenther@suse.de>
474
475 PR tree-optimization/28900
476 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
477 compound conditional before creating COND_EXPR condition.
478
479 2006-09-05 Richard Guenther <rguenther@suse.de>
480
481 PR tree-optimization/28905
482 * tree-vrp.c (fix_equivalence_set): Manually implement
483 !value_ranges_intersect_p to also handle symbolic ranges.
484
485 2006-09-05 Richard Guenther <rguenther@suse.de>
486
487 PR middle-end/28935
488 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
489 of a COND_EXPR.
490
491 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
492
493 PR rtl-optimization/27616
494 * cse.c (table_size): New static variable.
495 (new_basic_block): Initialize it to 0.
496 (remove_from_table): Decrement it.
497 (insert): Increment it.
498 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
499 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
500 fold_rtx_mem_1 if under the cap.
501 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
502 the lookup of the equivalent expression and test for equality of the
503 first operand of the equivalent expression before in turn looking up
504 an equivalent constant for the second operand.
505
506 2006-09-02 Geoffrey Keating <geoffk@apple.com>
507
508 Revert this change:
509 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
510 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
511 pointer, instead of assuming it is possible to derive the
512 correct args size from a call insn.
513
514 2006-09-02 Jakub Jelinek <jakub@redhat.com>
515
516 PR middle-end/27567
517 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
518 (fold_builtin_mempcpy): Rename to...
519 (fold_builtin_memory_op): ... this. Optimize one element copy
520 into an assignment.
521 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
522 functions.
523 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
524 (expand_builtin_memcpy, expand_builtin_mempcpy,
525 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
526 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
527 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
528 BUILT_IN_MEM{CPY,PCPY,MOVE}.
529
530 2006-09-01 DJ Delorie <dj@redhat.com>
531
532 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
533 (stzx_16): Likewise.
534 ("stzx_24_<mode>"): Likewise.
535 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
536 ("cmp<mode>_op"): New.
537 (cmp<mode>): Change to expander; just save operands.
538 (b<code>_op): New.
539 (b<code>): Change to expander, emit compare here.
540 (s<code>_op): Change to use split and expander.
541 (s<code>_24_op): Likewise.
542 (s<code>_<mode>): New.
543 (s<code>_<mode>_24): New.
544 (movqicc_<code>_<mode): New.
545 (movhicc_<code>_<mode>): New.
546 (s<code>): New.
547 (s<code>_24): New.
548 * config/m32c/m32c.c (compare_op0, compare_op1): New.
549 (m32c_pend_compare): New.
550 (m32c_unpend_compare): New.
551 (m32c_expand_scc): New.
552 (m32c_expand_movcc): Emit the compare also.
553 * config/m32c/predicates.md (mra_nopp_operand): New.
554
555 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
556 Richard Guenther <rguenther@suse.de>
557 Adam Nemet <anemet@caviumnetworks.com>
558
559 PR middle-end/27226
560 * builtins.c (get_pointer_alignment): Handle more forms
561 of base addresses that can be used to derive more precise
562 information about alignment.
563
564 2006-09-01 Jason Merrill <jason@redhat.com>
565
566 PR c++/28899
567 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
568 want_value.
569
570 * gimplify.c (voidify_wrapper_expr): Handle null type.
571
572 2006-09-01 Josh Conner <jconner@apple.com>
573
574 PR c++/25505
575 * tree-nrv.c (dest_safe_for_nrv_p): New function.
576 (execute_return_slot_opt): Use it.
577
578 2006-08-31 Josh Conner <jconner@apple.com>
579
580 PR c++/25505
581 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
582 returning aggregates.
583
584 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
585
586 PR tree-optimization/28839
587 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
588 blocks in that phi arguments appear.
589
590 2006-08-31 Roger Sayle <roger@eyesopen.com>
591
592 PR other/22313
593 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
594 NULL, otherwise use an advance_loc4 to adjust relative to the
595 current label.
596 (output_cfi) <DW_CFA_set_loc>: Update the current label.
597 (dwarf2out_switch_text_section): Reset the current label to avoid
598 using advance_loc4 over section boundaries.
599
600 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
601
602 PR target/24367
603 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
604 r12 + SYMBOLIC_CONST.
605
606 2006-08-30 Richard Guenther <rguenther@suse.de>
607
608 * Makefile.in (see.o): Add $(EXPR_H) dependency.
609
610 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
611
612 PR rtl-optimization/27735
613 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
614 Add new argument to keep track of whether an irreducible region
615 was affected. All callers changed.
616 (fix_irreducible_loops): Removed.
617 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
618 flags were invalidated.
619
620 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
621
622 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
623 instead of SF operands.
624 (*fop_df_comm_sse): Likewise.
625 (*fop_df_comm_i387): Likewise.
626 (*fop_df_1_mixed): Likewise.
627 (*fop_df_1_sse): Likewise.
628
629 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
630 J"orn Rennecke <joern.rennecke@st.com>
631
632 PR tree-optimization/17506
633 * tree-ssa.c (warn_uninit): If warning about a location outside of
634 the current function, note where the variable was declared.
635
636 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
637
638 PR tree-optimization/28411
639 * double-int.c (double_int_div): Use double_int_divmod.
640 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
641 double_int_mod, double_int_smod, double_int_umod): New functions.
642 * double-int.h (double_int_divmod, double_int_sdivmod,
643 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
644 Declare.
645 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
646 in double_int.
647 (get_computation_aff, get_computation_cost_at): Handle double_int
648 return type of constant_multiple_of.
649
650 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
651
652 PR middle-end/26632
653 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
654 an implicit conversion.
655
656 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
657
658 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
659
660 2006-08-27 Roger Sayle <roger@eyesopen.com>
661
662 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
663 x87 instructions.
664
665 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
666
667 * config/i386/crtfastmath.c: Fix a comment typo.
668
669 2006-08-26 Roger Sayle <roger@eyesopen.com>
670
671 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
672 temporary visit flags on CASE_LABEL_EXPRs.
673 * c-common.c (match_case_to_enum): Add function comment. Avoid
674 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
675 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
676 CASE_HIGH_SEEN for enumerated types. If the switch expression is
677 a constant, only warn if that constant value isn't handled.
678
679 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
680
681 PR c++/24009
682 * input.h (restore_input_file_stack): Declare.
683 (INPUT_FILE_STACK_BITS): Define.
684 * toplev.c (fs_p, input_file_stack_history,
685 input_file_stack_restored, restore_input_file_stack): New.
686 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
687 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
688 (pop_srcloc): Don't free old state of stack.
689
690 2006-08-26 David Edelsohn <edelsohn@gnu.org>
691
692 PR target/27544
693 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
694 (PowerPC Type Attributes): New.
695
696 2006-08-26 Bob Wilson <bob.wilson@acm.org>
697
698 * config/xtensa/xtensa.c (function_arg_boundary): New.
699 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
700 STACK_BOUNDARY.
701 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
702 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
703
704 2006-08-26 Jakub Jelinek <jakub@redhat.com>
705
706 PR middle-end/28683
707 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
708 3 following insns.
709
710 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
711
712 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
713 (verify_local_live_at_start): Likewise.
714
715 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
716
717 PR c/27893
718 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
719 omp_add_variable): Treat sizes as variable whenever not
720 INTEGER_CST.
721
722 2006-08-26 Richard Guenther <rguenther@suse.de>
723
724 PR middle-end/28814
725 * fold-const.c (fold_binary): Fold temporary to correct
726 type before constructing new comparison.
727
728 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
729
730 PR c/28418
731 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
732 variable again if DECL_SEEN_IN_BIND_EXPR_P.
733
734 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
735
736 PR c/28299
737 * c-decl.c (start_function): Don't try to process prototype
738 information from old declaration that isn't a function.
739
740 2006-08-25 Jan Hubicka <jh@suse.cz>
741
742 PR target/28621
743 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
744
745 2006-08-25 Alan Modra <amodra@bigpond.net.au>
746
747 PR target/27075
748 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
749 for 8 byte objects.
750
751 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
752
753 PR tree-optimization/16876
754 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
755 exit if PARM doesn't match VALUE.
756
757 2006-08-25 Bob Wilson <bob.wilson@acm.org>
758
759 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
760 literal_prefix directive.
761 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
762 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
763 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
764
765 2006-08-25 David Edelsohn <edelsohn@gnu.org>
766
767 PR target/28753
768 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
769 predicate to general_operand. Add 0->y and I->r alternatives.
770
771 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
772
773 * doc/tm.texi: Fix a typo.
774 * predict.c: Fix comment typos.
775
776 2006-08-25 Nick Clifton <nickc@redhat.com>
777
778 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
779 assertions of "cpu" and "machine".
780
781 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
782
783 PR tree-opt/28807
784 * tree-ssa-operands.c (access_can_touch_variable): Don't say
785 the access through a base which has an alias set of 0 cannot
786 touch the variable.
787
788 2006-08-24 Bill Wendling <wendling@apple.com>
789
790 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
791
792 2006-08-24 Jan Hubicka <jh@suse.cz>
793
794 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
795
796 2006-08-24 Jan Hubicka <jh@suse.cz>
797
798 PR debug/26881
799 * cgraph.c: Fix comments.
800 (cgraph_varpool_mark_needed_node): Mark only variables not already
801 output to file.
802 * cgraphunit.c: Update comments; include gt-cgraphunit.h
803 (cgraph_varpool_assembled_nodes_queue): New static variable.
804 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
805 (cgraph_varpool_output_debug_info): New function.
806 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
807 * Makefile.in: Add gt-cgraphunit.h
808
809 2006-08-24 Jan Hubicka <jh@suse.cz>
810
811 * predict.c (probability_reliable_p): New predicate.
812 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
813 (predict_loops): Do not predict loop exit with less than 2%
814 probability.
815 * basic-block.h (edge_probability_reliable_p,
816 br_prob_note_reliable_p): Declare.
817 * ia64.h (ia64_print_operand): Do not disable on-chip branch
818 prediction when static predictor is not reliable.
819 * rs6000.c (output_cbranch): Likewise.
820
821 2006-08-23 Stuart Hastings <stuart@apple.com>
822
823 PR 28825
824 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
825 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
826
827 2006-08-21 Geoffrey Keating <geoffk@apple.com>
828
829 PR debug/28692
830 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
831 complex values, nor for generic vector values.
832
833 2006-08-22 Richard Guenther <rguenther@suse.de>
834
835 PR middle-end/28776
836 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
837 parameter. Convert arguments to arithmetic expression to the
838 chrecs type.
839 (analyze_scalar_evolution_1): Adjust caller.
840
841 2006-08-22 Jan Hubicka <jh@suse.cz>
842
843 Patch by Paolo Bonzini
844 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
845 my previous patch.
846
847 2006-08-22 Daniel Berlin <dberlin@dberlin.org>
848
849 PR tree-optimization/28003
850 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
851 before grouping aliases.
852
853 2006-08-22 Roger Sayle <roger@eyesopen.com>
854
855 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
856 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
857
858 2006-08-21 Jason Merrill <jason@redhat.com>
859
860 PR c++/27115
861 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
862 wrapper. Loop to handle nested wrappers.
863 (gimplify_bind_expr): Remove temp parameter.
864 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
865 and STATEMENT_LIST on the rhs.
866 (gimplify_statement_list): Voidify the STATEMENT_LIST.
867 (gimplify_expr): Pass pre_p to gimplify_statement_list.
868 (gimplify_target_expr): Remove special BIND_EXPR handling.
869
870 2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
871
872 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
873 #if !__SHMEDIA__ .
874
875 2006-08-21 Olivier Hainque <hainque@adacore.com>
876
877 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
878 Arrange for the temporary captures of components overlapping the lhs
879 to happen before the lhs is possibly cleared.
880
881 2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
882
883 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
884 necessary places to pass the correct "number of registers" values
885 to _Unwind_VRS_Pop.
886
887 2006-08-20 Jan Hubicka <jh@suse.cz>
888
889 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
890 (create_name_tags): Instead of quadratic checking use hashtable.
891 * bitmap.h: Include hashtab.h.
892 (bitmap_hash): Declare.
893 * bitmap.c (bitmap_hash): New function.
894
895 2006-08-20 Jan Hubicka <jh@suse.cz>
896
897 PR rtl-optimization/28071
898 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
899 twice.
900 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
901 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
902 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
903 cgraph_decide_inlining_incrementally): Update use of
904 cgraph_check_inline_limits.
905 * cgraph.c (edge_hash, edge_eq): New function.
906 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
907 cgraph_edge_remove_caller, cgraph_node_remove_callees,
908 cgraph_remove_node): Maintain call site hash.
909 * cgraph.h (struct cgraph_node): Add call_site_hash.
910 (cgraph_set_call_stmt): New function.
911
912 2006-08-20 Jan Hubicka <jh@suse.cz>
913
914 PR rtl-optimization/28071
915 * reload1.c (reg_has_output_reload): Turn into regset.
916 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
917 choose_reload_regs, emit_reload_insns): Update to new
918 reg_has_output_reload.
919
920 2006-08-20 Jan Hubicka <jh@suse.cz>
921
922 PR middle-end/28779
923 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
924 function body sizes.
925 * cgraphunit.c (cgraph_analyze_function): Don't do so.
926
927 2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
928
929 PR target/28648 c:
930 * tree.c (handle_dll_attribute): Return early if not a
931 var or function decl.
932
933 2006-08-18 Joseph Myers <joseph@codesourcery.com>
934
935 PR target/27565
936 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
937 alignment of SPE vector types.
938
939 2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
940
941 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
942
943 2006-08-17 Jakub Jelinek <jakub@redhat.com>
944
945 PR c/28744
946 * cgraph.h (struct cgraph_node): Remove externally_visible
947 bitfield.
948 * cgraphunit.c (process_function_and_variable_attributes): Set
949 local.externally_visible rather than externally_visible.
950
951 PR c/28744
952 * c-common.c (handle_externally_visible_attribute): First look
953 at TREE_CODE and only if it is function or var decl, check for
954 non-public objects. Don't warn for DECL_EXTERNAL.
955 * cgraphunit.c (process_function_and_variable_attributes): Warn
956 if externally_visible attribute is used on non-public object.
957
958 2006-08-17 Jan Hubicka <jh@suse.cz>
959
960 PR tree-optimization/27865
961 * reload1.c (forget_marked_reloads): New function.
962 (forget_old_reloads_1): When data are passed, just mark the registers
963 for later removal.
964 (reload_as_needed): Use the new mechanizm.
965
966 2006-08-17 Alexandre Oliva <aoliva@redhat.com>
967
968 PR target/28146
969 * reload.h (reg_equiv_alt_mem_list): New declaration.
970 * reload1.c (reg_equiv_alt_mem_list): New definition.
971 (reload): Initialize it and release it.
972 (delete_output_reload): Use it.
973 * reload.c (push_reg_equiv_alt_mem): New function.
974 (find_reloads_toplev): Call it.
975 (find_reloads_address, find_reloads_address_1): Likewise.
976 (find_reloads_subreg_address): Likewise.
977
978 2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
979
980 PR rtl-optimization/28489
981 * sched-ebb.c (begin_schedule_ready): Create basic block
982 at the right place.
983 (advance_target_bb): Skip empty blocks.
984 * haifa-sched.c (bb_note): Make global.
985 * sched-int.h (bb_note): Add prototype.
986
987 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
988
989 PR tree-optimization/27865
990 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
991 for pointer types.
992 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
993 fold_used_pointer, pointer_used_p): New functions.
994 (analyze_scalar_evolution_1): Use fold_used_pointer.
995 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
996 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
997 for pointers.
998
999 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1000
1001 PR c++/28573
1002 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1003 or the INTEGER_CST. Fail on a CALL_EXPR.
1004 (fold_offsetof): Pass new argument to fold_offsetof_1.
1005 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1006 operand into an INDIRECT_REF.
1007 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1008
1009 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1010
1011 PR gcov/profile/26570
1012 * value-prof.c (static_values): Removed.
1013 (tree_find_values_to_profile): Do not set static_values.
1014 (find_values_to_profile): Do not free static_values.
1015 * profile.c (instrument_values): Do not free the values.
1016 (branch_prob): Free the values.
1017
1018 2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
1019
1020 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1021
1022 2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
1023
1024 PR c/27697
1025 * c-typeck.c (build_component_ref): Combine qualifiers of
1026 structure or union and field.
1027
1028 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1029
1030 PR rtl-optimization/28071
1031 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1032 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1033 * tree-into-ssa.c (struct dom_dfsnum): New.
1034 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1035 functions.
1036 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1037 compute_global_livein.
1038 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1039 in phi nodes in the correct blocks.
1040
1041 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1042
1043 PR tree-optimization/28364
1044 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1045 correctly.
1046 (fold_affine_expr): New function.
1047 (may_eliminate_iv): Use fold_affine_expr.
1048
1049 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1050
1051 PR c/27489
1052 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1053 Clean up.
1054
1055 2006-08-16 Mike Stump <mrs@apple.com>
1056
1057 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1058 * doc/cppopts.texi (-MD): Likewise.
1059
1060 2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
1061
1062 PR c/28287
1063 * c-common.c (handle_weak_attribute): Ignore and warn if
1064 not a FUNCTION_ or VAR_DECL.
1065
1066 2006-07-15 Mike Stump <mrs@apple.com>
1067
1068 PR c/28280
1069 * c-parser.c (c_parser_typeof_specifier): Don't use
1070 c_finish_expr_stmt, open code desired semantics instead.
1071
1072 2006-08-15 Nick Clifton <nickc@redhat.com>
1073
1074 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1075 fragment to tmake_file only if threads are enabled.
1076 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1077 * config/i386/t-gthr-win32: New file. ... here.
1078
1079 2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1080
1081 PR c/28649
1082 * c-parser.c (c_parser_compound_statement_nostart): Reset
1083 parser->error after each statement.
1084
1085 2006-08-15 Jakub Jelinek <jakub@redhat.com>
1086
1087 PR middle-end/28713
1088 * omp-low.c (lower_omp_parallel): Convert t to
1089 receiver_decl's type.
1090 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1091 source before comparison.
1092
1093 PR middle-end/28724
1094 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1095 to itype in assignment to oldival2.
1096
1097 2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
1098
1099 PR c/27490
1100 PR c/27489
1101 * c-typeck.c (build_compound_expr): If the second expression
1102 is an error mark, then just return an error mark instead of
1103 creating a COMPOUND_EXPR.
1104
1105 2006-07-14 Mike Stump <mrs@apple.com>
1106
1107 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1108
1109 2006-08-14 Kazu Hirata <kazu@codesourcery.com>
1110
1111 * c-decl.c, var-tracking.c: Fix comment typos.
1112
1113 2006-08-14 Richard Sandiford <richard@codesourcery.com>
1114
1115 PR rtl-optimization/28634
1116 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1117 for floating-point modes unless flag_unsafe_math_optimizations.
1118
1119 2006-08-13 Alexandre Oliva <aoliva@redhat.com>
1120 Andrew Pinski <pinskia@physics.uc.edu>
1121
1122 PR c/27184
1123 * tree.c (build_array_type): Unify array types with
1124 unspecified index_type.
1125 * c-decl.c (grokdeclarator): Make sure we do not modify a
1126 unified incomplete array type.
1127 * c-typeck.c (store_init_value): Create distinct type before
1128 filling in the index type in an initializer from a compound
1129 literal.
1130
1131 * c-decl.c (grokdeclarator): Remove code where we copy the
1132 array type over.
1133
1134 2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
1135
1136 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1137 into account for TODO_dump_cgraph.
1138 (TODO_update_ssa_no_phi): Likewise.
1139 (TODO_update_ssa_full_phi): Likewise.
1140 (TODO_update_ssa_only_virtuals): Likewise.
1141 (TODO_remove_unused_locals): Likewise.
1142 (TODO_set_props): Likewise.
1143 (TODO_update_stmt_usage): Likewise.
1144
1145 2006-08-13 Dirk Mueller <dmueller@suse.de>
1146
1147 * c-common.c (strict_aliasing_warning): Fix formatting.
1148
1149 2006-08-13 Matthias Klose <doko@debian.org>
1150
1151 * doc/invoke.texi: Fix spelling errors.
1152
1153 2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1154
1155 PR rtl-optimization/23454
1156 * reorg.c (relax_delay_slots): Update comment.
1157
1158 2006-08-11 Richard Guenther <rguenther@suse.de>
1159
1160 PR middle-end/28651
1161 * simplify-rtx.c (simplify_const_relational_operation):
1162 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1163 codes.
1164
1165 2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
1166
1167 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1168 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1169
1170 2006-08-10 Paul Brook <paul@codesourcery.com>
1171
1172 * final.c (final_scan_insn): Clear current_insn_predicate before
1173 outputting inline asm.
1174
1175 2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
1176
1177 PR tree-optimization/26197
1178 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1179 get_ref_base_and_extent and overlap_subvar to add only relevant
1180 subvars as may-aliases.
1181 (add_may_alias_for_new_tag): New function, factored out of
1182 new_type_alias.
1183 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1184 with additional argument.
1185 * tree-flow.h (new_type_alias): Takes additional argument.
1186
1187 2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
1188
1189 * gcov.c (no_data_file): New flag.
1190 (read_count_file): Set it if data file not present. Assume counts
1191 zero if not found.
1192 (output_lines): Don't name the data file, if there wasn't one.
1193
1194 2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
1195
1196 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1197 (rs6000_generate_compare): Tweak comments.
1198 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1199
1200 2006-08-09 Alexandre Oliva <aoliva@redhat.com>
1201
1202 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1203 (var_debug_decl): New function.
1204 (var_reg_set): Follow debug decl link. Add location even if
1205 reg is already known to hold some other variable.
1206 (var_mem_set): Follow debug decl link.
1207 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1208 decl link. Delete other known locations of the variable part
1209 if requested.
1210 (var_reg_delete, var_mem_delete): Delete other known locations
1211 of the variable part if requested.
1212 (same_variable_part_p): New function.
1213 (add_stores): Select MO_COPY when appropriate.
1214 (vt_initialize): Handle it.
1215 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
1216 known locations for MO_SET and MO_CLOBBER.
1217 (find_variable_location_part): New function.
1218 (set_variable_part, delete_variable_part): Use it.
1219 (clobber_variable_part): New function.
1220 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1221 decl link.
1222
1223 2006-08-07 Victor Kaplansky <victork@il.ibm.com>
1224
1225 PR tree-optimization/26969
1226 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1227 with an empty list of PHIs.
1228
1229 2006-08-06 Paolo Bonzini <bonzini@gnu.org>
1230
1231 PR target/27827
1232
1233 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1234 instructions.
1235
1236 2006-08-06 Andreas Schwab <schwab@suse.de>
1237
1238 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1239 string. Whitespace and comment fixup.
1240
1241 2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1242
1243 PR c/28502
1244 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1245 argument.
1246
1247 PR c/27721
1248 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1249
1250 PR c/28136
1251 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1252
1253 2006-08-04 Jan Hubicka <jh@suse.cz>
1254
1255 PR target/26655
1256 PR target/28270
1257 * reload.c (push_reload): Patch out the mismatching instruction;
1258 return early.
1259 (find_reload): Bail out if the instruction was patched out.
1260
1261 2006-08-04 Jan Hubicka <jh@suse.cz>
1262
1263 PR tree-optimization/24888
1264 * tree-inline.c (expand_call_inline): Do not re-record variables.
1265 (declare_inline_vars): Add variable to unexpanded_var_list.
1266
1267 2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1268 Roger Sayle <roger@eyesopen.com>
1269
1270 PR rtl-optimization/26244
1271 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
1272 inner_const are negative or greater than or equal to the bitsize of
1273 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
1274 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
1275 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
1276 CONST0_RTX (mode) when the new shift count is greater than or equal to
1277 to the bitsize of the object being shifted and XEXP (y, 0) has no side
1278 effects.
1279
1280 2006-08-04 Kazu Hirata <kazu@codesourcery.com>
1281
1282 * tree-cfg.c: Fix a comment typo.
1283
1284 2006-08-03 Mark Mitchell <mark@codesourcery.com>
1285
1286 PR c++/28148
1287 * varasm.c (output_constant): Give the front end another chance to
1288 expand constants, after stripping NOPs.
1289
1290 2006-08-03 Jan Hubicka <jh@suse.cz>
1291
1292 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
1293 implementation.
1294
1295 2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
1296
1297 PR tree-optimization/27770
1298 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
1299 declaration removed (moved to tree-flow.h).
1300 (vect_can_force_dr_alignment_p): Likewise.
1301 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
1302 (moved from tree-vectorizer.h).
1303 (vect_can_force_dr_alignment_p): Likewise.
1304 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1305 from outside the vectorizer - in particular from cgraph stage.
1306 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1307 the alignment of global arrays when -fsection-anchors is enabled.
1308 * cgraphunit.c (cgraph_increase_alignment): New function.
1309 (cgraph_optimize): Call cgraph_increase_alignment.
1310
1311 2006-08-03 David Edelsohn <edelsohn@gnu.org>
1312
1313 PR target/27566
1314 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1315 not reload a SPE symbol_ref into a lo_sum address.
1316
1317 2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
1318
1319 PR debug/28063
1320 * dwarf2out.c (prune_unused_types_prune): Move call to
1321 prune_unused_types_update_strings to cover the parent DIE also.
1322
1323 2006-08-02 Jan Hubicka <jh@suse.cz>
1324
1325 PR gcov/profile/28480
1326 * tree-cfg.c (change_bb_for_stmt): New function.
1327 (tree_merge_blocks, tree_split_blocks): Use it.
1328
1329 2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1330
1331 PR c++/28250
1332 PR c++/28257
1333 PR c++/28259
1334 PR c++/28267
1335 * toplev.c (compile_file): Return early on errorcount or sorrycount.
1336 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
1337 (cgraph_optimize): Likewise.
1338
1339 2006-08-01 Stuart Hastings <stuart@apple.com>
1340
1341 * rtl.h (UINTVAL) New.
1342 * config/rs6000/rs6000.c (SMALL_INT) Use it.
1343 * testsuite/gcc.dg/20060801-1.c: New.
1344
1345 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1346
1347 PR debug/23336
1348 * c-typeck.c (build_external_type): Mark used enum types.
1349 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
1350 cfun also.
1351 (gen_subprogram_die): Whitespace fix.
1352
1353 2006-08-01 Jan Hubicka <jh@suse.cz>
1354
1355 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
1356 bitmap when not needed.
1357 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
1358 bitmaps.
1359
1360 2006-08-01 Dirk Mueller <dmueller@suse.de>
1361
1362 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
1363
1364 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1365
1366 * Makefile.in: Revert part of previous patch:
1367 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
1368 and REGS_H.
1369
1370 2006-07-30 Eric Christopher <echristo@apple.com>
1371
1372 PR target/27543
1373 * doc/extend.texi (i386 Variable Attributes): Add anchor.
1374 (PowerPC Variable Attributes): New section.
1375
1376 2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
1377
1378 PR target/28126 (partial fix)
1379 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
1380
1381 2006-07-28 Jan Hubicka <jh@suse.cz>
1382
1383 PR rtl-optimization/28071
1384 * cfgrtl.c (rtl_delete_block): Free regsets.
1385 * flow.c (allocate_bb_life_data): Re-use regsets if available.
1386
1387 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1388
1389 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
1390 and variables used in dependencies.
1391
1392 2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
1393
1394 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
1395 %fs for -mcmodel=kernel.
1396 (stack_tls_protect_test_di): Likewise.
1397
1398 2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
1399
1400 * Makefile.in: Use mkinstalldirs.
1401
1402 2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
1403
1404 PR driver/28437
1405 * opts-common.c (prune_options): Skip joined switches.
1406
1407 2006-07-27 Jan Hubicka <jh@suse.cz>
1408
1409 PR rtl-optimization/28071
1410 * cselib.c (cselib_process_insn): Don't remove useless values too
1411 often for very large hashtables.
1412
1413 2006-07-27 Jan Hubicka <jh@suse.cz>
1414
1415 PR rtl-optimization/28071
1416 * global.c (greg_obstack): New obstack.
1417 (allocate_bb_info): Use it.
1418 (free_bb_info): Likewise.
1419 (modify_reg_pav): Likewise.
1420
1421 2006-07-27 Roger Sayle <roger@eyesopen.com>
1422
1423 * builtins.c (fold_fixed_mathfn): When long and long long are the
1424 same size, canonicalize llceil*, llfloor*, llround* and llrint*
1425 functions to their lceil*, lfloor*, lround* and lrint* forms.
1426
1427 2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1428
1429 PR gcc/28508
1430 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1431 branch.
1432 (rev_branch_insn): Likewise.
1433
1434 2006-07-27 Jan Hubicka <jh@suse.cz>
1435
1436 PR rtl-optimization/28071
1437 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1438 (reg_set_in_bb, max_reg_computed): New static variables.
1439 (regmove_optimize): Free the new array.
1440 (fixup_match_1): Update call of reg_is_remote_constant_p.
1441
1442 2006-07-26 Jan Hubicka <jh@suse.cz>
1443
1444 PR tree-optimization/27882
1445 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1446 and decl fields.
1447 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1448 next pointer
1449 (cgraph_analyze_compilation_unit): Likewise.
1450 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1451 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1452 (cgraph_early_inlinine): Make order garbage collected.
1453 * Makefile.in (gt-ipa-inline): New garbagecollected file.
1454
1455 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1456
1457 * dbxout.c (output_types_sort): Add a comment.
1458 (output_used_types): Free the VEC.
1459
1460 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1461
1462 * function.c (reorder_fix_fragments): Delete.
1463 (reorder_blocks): Don't call it.
1464 (reorder_blocks_1): Put all subblocks under the origin block.
1465
1466 2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
1467
1468 PR rtl-optimization/27907
1469 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1470 FLOAT_TRUNCATE.
1471
1472 2006-07-25 Roger Sayle <roger@eyesopen.com>
1473
1474 PR middle-end/28473
1475 * convert.c (convert_to_integer): When transforming (T)foo(x) into
1476 bar(x) check that bar's result type can represent all the values of T.
1477
1478 2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1479
1480 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1481
1482 2006-07-25 Nick Clifton <nickc@redhat.com>
1483
1484 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1485 size_lookup[] array.
1486 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1487 (ggc_pch_count_object): Likewise.
1488 (ggc_pch_alloc_object): Likewise.
1489 (ggc_pch_write_object): Likewise.
1490 (init_ggc): Do not attempt to initialize entries in the
1491 size_lookup[] array for objects whose size is greater than than
1492 the length of the array.
1493
1494 2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
1495
1496 * dbxout.c (output_used_types_helper): Push queued types
1497 on a VEC.
1498 (output_types_sort): New.
1499 (output_used_types): Collect used types on a VEC and sort them
1500 before emission.
1501
1502 2006-07-24 Richard Guenther <rguenther@suse.de>
1503
1504 PR middle-end/28463
1505 * cgraph.c (cgraph_remove_node): Do not check if dumps
1506 are enabled.
1507 * cgraphunit.c (cgraph_optimize): Likewise.
1508
1509 2006-07-24 Jan Hubicka <jh@suse.cz>
1510
1511 PR rtl-optimization/28071
1512 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1513 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1514 splitting before first stmt.
1515
1516 2006-07-24 Jan Hubicka <jh@suse.cz>
1517
1518 PR rtl-optimization/28071
1519 * ipa-inline.c (update_caller_keys): Remove edges that
1520 are no longer inline candidates.
1521
1522 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1523
1524 PR debug/27473
1525 * dbxout.c (output_used_types_helper, output_used_types): New.
1526 (dbxout_symbol): Call output_used_types.
1527
1528 2006-07-23 Jan Hubicka <jh@suse.cz>
1529
1530 PR c/25795
1531 PR c++/27369
1532 * cgraph.c (cgraph_varpool_nodes): Export.
1533 (decide_is_variable_needed): Ignored "used" attribute in
1534 unit-at-a-time mode.
1535 * cgraph.h (cgraph_varpool_nodes): Declare.
1536 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1537 unit-at-a-time mode.
1538
1539 2006-07-23 Roger Sayle <roger@eyesopen.com>
1540
1541 PR target/28247
1542 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1543 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
1544 the __gthrw form of thr_keycreate.
1545 (__gthread_key_delete): Silence the unused argument warning.
1546
1547 2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
1548
1549 PR debug/25468
1550 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1551 Cache the last found '\0' marker to avoid quadratic behavior.
1552
1553 2006-07-23 Jan Hubicka <jh@suse.cz>
1554
1555 * i386.md (subsi_3_zext): Fix output template.
1556
1557 2006-07-21 Mike Stump <mrs@apple.com>
1558
1559 * doc/invoke.texi (C++ Dialect Options): Note that
1560 -fvisibility-inlines-hidden doesn't affect explicitly
1561 instantiationed inline methods.
1562
1563 2006-07-20 Roger Sayle <roger@eyesopen.com>
1564
1565 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1566 if the target assembler is GNU binutils' gas.
1567 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1568 whether to pass GNU gas or native as command line options.
1569
1570 2006-07-20 Jason Merrill <jason@redhat.com>
1571
1572 * tree.c (remove_attribute): New fn.
1573 * tree.h: Declare it.
1574
1575 2006-07-20 Paul Brook <paul@codesourcery.com>
1576
1577 PR 27363
1578 * cse.c (cse_insn): Add destination addresses to hash table. Check if
1579 they are invalidated by this instruction.
1580
1581 2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
1582
1583 PR target/28427
1584 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1585
1586 2006-07-20 Eric Christopher <echristo@apple.com>
1587
1588 PR target/26877
1589 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1590
1591 2006-07-19 Eric Christopher <echristo@apple.com>
1592
1593 * config/t-slibgcc-darwin (stmp-lipo): Remove.
1594 Rewrite dependencies for libgcc_s.1.dylib.
1595
1596 2006-07-19 Jakub Jelinek <jakub@redhat.com>
1597
1598 * except.c (duplicate_eh_regions_1): Clear next_peer.
1599
1600 2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
1601
1602 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1603 -mlongcall does not guarantee all calls will be long.
1604 * doc/extend.texi (long_call/short_call): Document that longcall
1605 does not guarantee a long call will be used.
1606 (longcall/shortcall): Likewise.
1607
1608 2006-07-18 Roger Sayle <roger@eyesopen.com>
1609
1610 PR middle-end/28283
1611 * expmed.c (expand_shift): Additionally check that the shift_cost
1612 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1613 before implementing a LSHIFT_EXPR as a sequence of additions.
1614 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1615 middle-end that DImode shifts need to be synthesized by expand.
1616
1617 2006-07-18 Diego Novillo <dnovillo@redhat.com>
1618
1619 PR 28410
1620 * tree-ssa-operands.c (access_can_touch_variable): Update
1621 comment.
1622 Return true if ALIAS is .GLOBAL_VAR.
1623
1624 2006-07-18 David Daney <ddaney@avtrex.com>
1625
1626 * gcc.c (display_help): Fix typo in help text.
1627
1628 2006-07-18 Olivier Hainque <hainque@adacore.com>
1629
1630 * tree.h (categorize_ctor_elements): Adjust prototype and add
1631 descriptive comment, both in accordance with the interface change
1632 described below.
1633 * varasm.c (constructor_static_from_elts_p): New function.
1634 Whether a constructor node is a valid static constant initializer
1635 if all its elements are.
1636 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1637 * output.h: Declare it.
1638 * expr.c (categorize_ctor_elements_1): Return whether the constructor
1639 is a valid constant initializer instead of computing the number of
1640 non-constant elements. Use constructor_static_from_elts_p for this
1641 purpose. Replace the head comment with an indication that this is a
1642 helper for categorize_ctor_elements.
1643 (categorize_ctor_elements): Same interface change as for the _1
1644 helper. Former head comment from this helper moved here, adjusted to
1645 account for the interface changes.
1646 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1647 (all_zeros_p): Likewise.
1648 * gimplify.c (gimplify_init_constructor): Decide whether we can make
1649 static versions of the constructor from the categorize_ctor_elements
1650 return value instead of the formerly computed number of non-constant
1651 elements.
1652
1653 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
1654
1655 * configure: Regenerate.
1656 * Makefile.in (build_libsubdir): New configure substitution
1657 (build_libobjdir): New variable.
1658 (BUILD_LIBIBERTY): Use it.
1659
1660 2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1661
1662 PR c/28286
1663 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1664
1665 2006-07-18 Alexandre Oliva <aoliva@redhat.com>
1666
1667 PR c/26993
1668 * c-common.c (handle_weakref_attribute): Ignore attribute in
1669 the same conditions the alias attribute is ignored.
1670
1671 2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
1672
1673 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1674 (dbxout_begin_prologue): Increment scope_labelno.
1675
1676 2006-07-17 Richard Henderson <rth@redhat.com>
1677
1678 PR 27889
1679 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1680 if needed.
1681
1682 2006-07-17 Roger Sayle <roger@eyesopen.com>
1683 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1684
1685 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1686 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
1687 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
1688 functions such as sbrk, write, etc.. Add function prototypes.
1689 Convert function declarations from K&R to ISO C. Cast pointers
1690 to "long" and "unsigned long" instead of "int" and "unsigned int".
1691 Convert tokens following #endif into comments.
1692
1693 2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
1694
1695 * invoke.texi: Remove mention of f77; Reformat table for
1696 inline parameter options correctly; mention that -malign-double
1697 is default on x86-64 targets.
1698
1699 2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
1700
1701 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1702 (convert_affine_scev, chrec_convert_aggressive): Use
1703 avoid_arithmetics_in_type_p. Do not check for the subtypes
1704 separately.
1705
1706 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1707
1708 PR middle-end/28403
1709 * optabs.c (expand_doubleword_shift): Wrap the call to
1710 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1711
1712 2006-07-17 Richard Sandiford <richard@codesourcery.com>
1713
1714 PR middle-end/28402
1715 * optabs.c (expand_binop): Pass next_methods rather than methods
1716 to expand_doubleword_shift.
1717
1718 2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
1719
1720 PR other/28251
1721 * tree.h (dump_addr): Declare.
1722 * print-tree.c (dump_addr): New function.
1723 (print_node_brief, print_node): Use it.
1724 * print-rtl.c (print_rtx): Likewise.
1725 * common.opt (-fdump-noaddr): New option.
1726 * doc/invoke.texi (-fdump-noaddr): Document.
1727 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1728 (ve_info_hash): Likewise.
1729
1730 2006-07-13 Andrew Haley <aph@redhat.com>
1731
1732 PR tree-optimization/19505
1733 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1734 edge leaving this block, make sure that the destination of this
1735 block has only one predecessor.
1736
1737 2006-07-17 Richard Guenther <rguenther@suse.de>
1738
1739 PR tree-optimization/28238
1740 * tree-inline.c (copy_bb): Check if we produced valid
1741 gimple copying and substituting a stmt. If not, gimplify
1742 it.
1743
1744 2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
1745
1746 * optabs.c (maybe_encapsulate_block): New function extracted from...
1747 (emit_libcall_block): ...here. Invoke it on the block of insns to
1748 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
1749 (emit_no_conflict_block): Likewise.
1750
1751 2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1752
1753 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
1754
1755 2006-07-15 Roger Sayle <roger@eyesopen.com>
1756
1757 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
1758 a new NOP_EXPR case of the switch statement.
1759
1760 2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
1761
1762 PR middle-end/28160
1763 * stor-layout.c (place_field): Take the bit field with
1764 an excessive size into account in the ms-bitfiled case.
1765
1766 PR middle-end/28161
1767 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
1768 the previous bit field.
1769
1770 2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
1771
1772 PR target/27287
1773 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
1774
1775 2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
1776
1777 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
1778 signal frames correctly even when the signal was installed with
1779 sa_restorer set.
1780
1781 2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
1782
1783 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
1784 (dbxout_function_end): Use local label LFBB. Remove hook
1785 DBX_OUTPUT_NFUN.
1786 (dbxout_source_line): Use local label LFBB.
1787 (dbxout_block): Likewise.
1788 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
1789 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
1790 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
1791 and DBX_OUTPUT_NFUN.
1792
1793 2006-07-13 Janis Johnson <janis187@us.ibm.com>
1794
1795 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
1796
1797 2006-07-13 Jan Hubicka <jh@suse.cz>
1798
1799 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
1800 align_variable.
1801 * output.h (align_variable): Declare.
1802 * varasm.c (align_variable): Export.
1803 * value-prof.c (tree_value_profile_transformations): Recompute iterator
1804 when basic block changed.
1805
1806 2006-07-13 Nick Clifton <nickc@redhat.com>
1807
1808 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
1809 walking the LOG_LINKS chain.
1810
1811 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1812
1813 * doc/invoke.texi (C++ Dialect Options): Explain difference
1814 between -fvisibility-inlines-hidden and setting hidden
1815 visibility explicitly.
1816
1817 2006-07-12 Eric Christopher <echristo@apple.com>
1818
1819 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
1820 (stmp-lipo): Depend on libgcc.a.
1821
1822 2006-07-12 Kazu Hirata <kazu@codesourcery.com>
1823
1824 * tree.c: Fix a comment typo.
1825
1826 2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
1827
1828 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
1829 dest.
1830 (umulhisi3_r): Likewise.
1831
1832 2006-07-12 Paolo Carlini <pcarlini@suse.de>
1833
1834 PR libstdc++/27878
1835 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
1836 x < 19, vs wchar_t support.
1837
1838 2006-07-12 Nick Clifton <nickc@redhat.com>
1839
1840 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
1841 instead of -isa=sh4.
1842
1843 2006-07-12 Mike Stump <mrs@apple.com>
1844
1845 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
1846
1847 2006-07-10 Eric Christopher <echristo@apple.com>
1848
1849 * config/t-slibgcc-darwin: Rewrite.
1850
1851 2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1852
1853 PR bootstrap/20437
1854 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
1855 dependencies.
1856
1857 2006-07-08 Matthias Klose <doko@debian.org>
1858
1859 * doc/sourcebuild.texi: Fix typo.
1860
1861 2006-07-07 Mike Stump <mrs@apple.com>
1862
1863 * toplev.c (process_options): Don't give -ffunction-sections may
1864 affect debugging warning for Mach-O.
1865
1866 2006-07-07 James E Wilson <wilson@specifix.com>
1867
1868 * config/mips/mips.md (cpu): Add sb1a.
1869 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
1870 addition to sb1. Adjust comments to clarify SB-1A differences from
1871 SB-1.
1872 (ir_sb1a_load): New. Modify bypasses to use it.
1873 (ir_sb1a_simple_alu): Likewise.
1874 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1875 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1876 (mips_issue_rate): Add PROCESSOR_SB1A.
1877 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1878 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1879 (TARGET_SB1): Add PROCESSOR_SB1A check.
1880 (TUNE_SB1): Likewise.
1881
1882 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1883 * config/mips/mips.c (mips_store_data_bypass_p): New.
1884 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1885 store_data_bypass_p.
1886
1887 2006-07-08 Paul Brook <paul@codesourcery.com>
1888
1889 PR target/27991
1890 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1891
1892 2006-07-07 Richard Guenther <rguenther@suse.de>
1893
1894 PR middle-end/28268
1895 * tree.h (build_one_cst): Declare.
1896 * tree.c (build_one_cst): New function.
1897 * tree-ssa-math-opts.c (get_constant_one): Remove.
1898 (insert_reciprocals): Use build_one_cst.
1899 * fold-const.c (fold_plusminus_mult): Likewise.
1900
1901 2006-07-07 Roger Sayle <roger@eyesopen.com>
1902
1903 * pointer-set.c (pointer_set_destroy): Correct whitespace.
1904 * cfgloopanal.c (dump_graph): Likewise.
1905 * dojump.c (discard_pending_stack_adjust): Likewise.
1906 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1907 Likewise.
1908 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1909 * function.c (finalize_block_changes): Likewise.
1910 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1911 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1912 * rtl.c (dump_rtx_statistics): Likewise.
1913 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1914 Likewise.
1915 * varray.c (dump_varray_statistics): Likewise.
1916 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1917 decode_decimal64, encode_decimal128, decode_decimal128,
1918 decimal_real_to_decimal): Likewise.
1919
1920 2006-07-07 Richard Guenther <rguenther@suse.de>
1921
1922 PR tree-optimization/28187
1923 * tree-vrp.c (vrp_operand_equal_p): New function.
1924 (vrp_bitmap_equal_p): Likewise.
1925 (update_value_range): Use them to compare old and new
1926 max and min values.
1927
1928 2006-07-06 Roger Sayle <roger@eyesopen.com>
1929
1930 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
1931 a default case to switch statement to silence compiler warnings.
1932
1933 2006-07-06 Roger Sayle <roger@eyesopen.com>
1934
1935 PR target/27968
1936 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
1937 the configured assembler supports the x87's ffreep mnemonic.
1938 * configure: Regenerate.
1939 * config.in: Regenerate.
1940
1941 * config/i386/i386.c (output_387_ffreep): New function.
1942 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
1943 (output_387_reg_move): Likewise.
1944
1945 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
1946
1947 Port to hosts whose 'sort' and 'tail' implementations
1948 treat operands with leading '+' as file names, as POSIX
1949 has required since 2001. However, make sure the code still
1950 works on pre-POSIX hosts.
1951 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
1952 which says you should use "tail -c +N" rather than "tail +Nc".
1953 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
1954
1955 2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
1956
1957 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
1958 argument name.
1959
1960 2006-07-06 David Edelsohn <edelsohn@gnu.org>
1961
1962 PR target/28150
1963 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
1964 PRE_{INC,DEC} of TFmode.
1965
1966 2006-07-06 David Edelsohn <edelsohn@gnu.org>
1967 Alan Modra <amodra@bigpond.net.au>
1968
1969 PR target/28170
1970 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
1971 bounds. Simplify.
1972
1973 2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1974
1975 PR target/28285
1976 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
1977 Remove duplicate gtu.
1978
1979 2006-07-05 Jason Merrill <jason@redhat.com>
1980
1981 PR c++/13983
1982 PR c++/17519
1983 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
1984 * c-common.c (handle_packed_attribute): So don't copy it here.
1985 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
1986
1987 2006-07-05 Mike Stump <mrs@apple.com>
1988
1989 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
1990
1991 2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
1992
1993 PR target/26146
1994 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
1995
1996 2006-07-05 Richard Guenther <rguenther@suse.de>
1997
1998 PR target/28158
1999 * config/i386/i386.md (*negdf2_1): Restrict pattern to
2000 TARGET_SSE2 targets if using SSE math.
2001 (*absdf2_1): Likewise.
2002
2003 2006-07-05 Richard Guenther <rguenther@suse.de>
2004
2005 PR tree-optimization/28162
2006 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2007 make sure to convert the operands to the correct type.
2008
2009 2006-07-04 Paolo Bonzini <bonzini@gnu.org>
2010
2011 PR tree-optimization/28218
2012
2013 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2014 to calculate and free the dominator information.
2015
2016 2006-07-04 Peter O'Gorman <peter@pogma.com>
2017
2018 * mklibgcc.in: chmod 644 before ranlib during install.
2019
2020 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2021 J"orn Rennecke <joern.rennecke@st.com>
2022
2023 * configure.ac (.eh_frame data check): Use diff -b.
2024
2025 2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2026
2027 PR bootstrap/18058
2028 * Makefile.in (BUILD_RTL): Add build/vec.o.
2029 (build/gencondmd.o): Filter out -fkeep-inline-functions.
2030 (build/genextract): Delete.
2031 (build/genautomata): Likewise.
2032
2033 2006-07-04 Alan Modra <amodra@bigpond.net.au>
2034
2035 PR target/28207
2036 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2037 128-bit IBM long doubles for ABI_V4.
2038
2039 2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
2040
2041 * tree.c (range_in_array_bounds_p): New predicate.
2042 * tree.h (range_in_array_bounds_p): Declare it.
2043 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2044 return a less conservative answer.
2045 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2046 and flag 'is_group'.
2047 (IS_ELEMENT_FOR_GROUP): New macro.
2048 (FOR_EACH_ACTUAL_CHILD): Likewise.
2049 (next_child_for_group): New helper function.
2050 (can_completely_scalarize_p): Take into account groups.
2051 (sra_hash_tree): Handle RANGE_EXPR.
2052 (sra_elt_eq): Likewise.
2053 (lookup_element): Be prepared for handling groups.
2054 (is_valid_const_index): Delete.
2055 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2056 instead of is_valid_const_index.
2057 <ARRAY_RANGE_REF>: New case.
2058 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2059 is_valid_const_index.
2060 <ARRAY_RANGE_REF>: Do not unconditionally punt.
2061 (scan_dump): Dump info for groups too.
2062 (decide_instantiation_1): Likewise.
2063 (decide_block_copy): Assert that the element is not a group.
2064 Propagate decision to groups.
2065 (generate_one_element_ref): Handle RANGE_EXPR.
2066 (mark_no_warning): Iterate over actual childs.
2067 (generate_copy_inout): Likewise.
2068 (generate_element_copy): Likewise.
2069 (generate_element_zero): Likewise.
2070 (generate_element_init_1): Likewise.
2071 (dump_sra_elt_name): Handle RANGE_EXPR.
2072
2073 2006-07-03 Roger Sayle <roger@eyesopen.com>
2074
2075 PR tree-optimization/26251
2076 * tree-ssa-threadupdate.c (redirection_block_p): New function.
2077 (thread_block): When optimizing for size refuse to thread jumps
2078 that would require duplication of blocks other than redirection
2079 blocks.
2080
2081 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2082
2083 * configure.ac: Fix thinko in previous check-in.
2084 * configure: Regenerate.
2085
2086 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2087
2088 PR other/27063
2089 * configure.ac (for lang...): Simplify nesting of conditionals.
2090 Test subdir_requires for non-enabled languages. Move processing
2091 of lang_opt_files and lang_tree_fiels below that test.
2092 * configure: Regenerate.
2093 * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2094
2095 2006-07-01 Martin Michlmayr <tbm@cyrius.com>
2096
2097 * doc/gcov.texi (Invoking Gcov): Add a missing word.
2098
2099 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2100
2101 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2102 comment typos.
2103
2104 2006-06-29 Jason Merrill <jason@redhat.com>
2105
2106 PR c++/26905
2107 PR c++/26612
2108 PR c++/27000
2109 PR c++/26984
2110 PR c++/19134
2111 * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2112 * c-common.c (c_determine_visibility): Handle it here.
2113 * c-decl.c (finish_decl): Call c_determine_visibility for
2114 functions, too.
2115 * flags.h (enum symbol_visibility): Sort from most to least visibility.
2116 * tree.h: Likewise.
2117 * varasm.c (default_assemble_visibility): Likewise.
2118 * c-common.c (handle_visibility_attribute): Complain about trying
2119 to give visibility to an already defined class, or trying to change
2120 declared visibility. Always attach the attribute.
2121
2122 PR c++/26905
2123 PR c++/21675
2124 PR c++/17470
2125 * attribs.c (decl_attributes): Ignore type-in-place attributes
2126 once the type has been defined.
2127
2128 2006-06-29 Roger Sayle <roger@eyesopen.com>
2129
2130 PR middle-end/27428
2131 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2132 to indicate the cpplib has issued an error message for us.
2133
2134 2006-06-29 Asher Langton <langton2@llnl.gov>
2135
2136 PR target/25765
2137 * config/i386/i386.c (ix86_output_function_epilogue): Don't
2138 insert a label at the end of an function under Mach-O.
2139
2140 2006-06-29 Eric Christopher <echristo@apple.com>
2141 Evan Cheng <evan.cheng@apple.com>
2142
2143 * predicates.md (vector_all_ones_operand): New.
2144 (nonimmediate_or_sse_const_operand): Ditto.
2145 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2146 * config/i386/i386.c (standard_sse_constant_opcode): Define.
2147 (standard_sse_mode_p): Ditto.
2148 (standard_sse_constant_p): Add case for -1 vector.
2149 (ix86_expand_vector_move): Try to use.
2150 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2151 Call standard_sse_constant_opcode.
2152 (*movv4sf_internal): Ditto.
2153 (*movv2df_internal): Ditto.
2154
2155 2006-06-29 Roger Sayle <roger@eyesopen.com>
2156
2157 * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2158 of XEXP to extract the operands of a MATCH_CODE rtx.
2159
2160 2006-06-28 Andrew Pinski <pinskia@gmail.com>
2161
2162 * tree.c (tree_size): Do not waste tail padding in
2163 struct tree_string and make the size be the same as
2164 build_string will generate.
2165
2166 2006-06-28 Jason Merrill <jason@redhat.com>
2167
2168 PR c++/27768
2169 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2170 may_aliases already in the tag's annotations to the bitmap.
2171
2172 2006-06-28 Roger Sayle <roger@eyesopen.com>
2173
2174 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2175
2176 2006-06-28 Roger Sayle <roger@eyesopen.com>
2177
2178 * genpreds.c (generate_switch_p): New function.
2179 (add_mode_tests): Push the new mode test down inside an AND expr
2180 if this allows the switch-suitable MATCH_CODE to be near the root.
2181 (write_match_code_switch): New function to write a MATCH_CODE as
2182 a switch statement.
2183 (write_predicate_stmts): New function to write a predicate RTX
2184 expression as a sequence of statements.
2185 (write_one_predicate_function): Use write_predicate_stmts.
2186 (write_tm_constrs_h): Likewise.
2187
2188 2006-06-26 Fred Fish <fnf@specifix.com>
2189
2190 * config/mips/t-sb1: New file.
2191 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2192 tmake_file list.
2193
2194 2006-06-26 DJ Delorie <dj@redhat.com>
2195
2196 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2197
2198 2006-06-26 Naveen H.S <naveenh@kpitcummins.com>
2199 Jayant Sonar <jayants@kpitcummins.com>
2200 Jaydeep Vipradas <jaydeepv@kpitcummins.com>
2201
2202 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2203 (subsi3, subsi3_1, subsi3_2): New.
2204 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2205 * config/m32c/mov.md (SI mov peephole): New.
2206 * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2207 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2208
2209 2006-06-26 Olivier Hainque <hainque@adacore.com>
2210
2211 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2212 a CALL_EXPR target function declaration.
2213
2214 2006-06-26 Richard Guenther <rguenther@suse.de>
2215
2216 * tree.c (build_string): Do not waste tail padding in
2217 struct tree_string.
2218
2219 2006-06-26 Richard Guenther <rguenther@suse.de>
2220
2221 * ggc-page.c (init_ggc): Add missing element to size_lookup
2222 table.
2223
2224 Revert
2225 2006-06-23 Richard Guenther <rguenther@suse.de>
2226
2227 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2228 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2229 alignment requests instead. Add verification code.
2230 Add struct tree_function_decl and struct tree_binfo size to
2231 extra_order_size_table. Add missing element to size_lookup
2232 table.
2233
2234 2006-06-25 Eric Botcazou <ebotcazou@adacore.com>
2235
2236 PR middle-end/28151
2237 * fold-const.c (const_binop): Be prepared for self returning zero.
2238 Simplify code handling complex values.
2239
2240 2006-06-24 Olivier Hainque <hainque@adacore.com>
2241
2242 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2243 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2244 aggregate types.
2245
2246 2006-06-24 Olivier Hainque <hainque@adacore.com>
2247
2248 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2249 ARRAY_REF, so have the callback called for the low bound expression.
2250
2251 2006-06-23 Janis Johnson <janis187@us.ibm.com>
2252
2253 * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2254 * c-typeck.c (c_common_type): Disallow operations on decimal float
2255 types and other float types.
2256 * convert.c (convert_to_real): Don't ignore conversions involving
2257 decimal float types.
2258
2259 2006-06-23 Olivier Hainque <hainque@adacore.com>
2260
2261 * tree.c (max_int_size_in_bytes): New function, inspired from
2262 code in function.c:assign_temp.
2263 * tree.h (max_int_size_in_bytes): Declare.
2264 * function.c (assign_temp): Use it.
2265 * gimplify.c (create_tmp_var): Relax the assertions on the type
2266 properties, not mandating constant size any more.
2267 (force_constant_size): New static function.
2268 (gimple_add_tmp_var): Use it, forcing variable size to a
2269 constant upper bound if it is not constant on entry.
2270
2271 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2272
2273 PR target/27789
2274 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
2275 for initialization and setting of one_only flag to ...
2276 (i386_pe_encode_section_info): ...here.
2277 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
2278 Recheck that the symbol has not been defined.
2279
2280 2006-06-23 Richard Guenther <rguenther@suse.de>
2281
2282 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2283 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2284 alignment requests instead. Add verification code.
2285 Add struct tree_function_decl and struct tree_binfo size to
2286 extra_order_size_table. Add missing element to size_lookup
2287 table.
2288
2289 2006-06-22 Roger Sayle <roger@eyesopen.com>
2290 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2291
2292 PR middle-end/28131
2293 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
2294 call to lang_hooks.types.type_for_mode returned NULL_TREE.
2295
2296 2006-06-23 Ben Elliston <bje@au.ibm.com>
2297
2298 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
2299 negate dn -- manipulate it directly.
2300
2301 2006-06-22 Roger Sayle <roger@eyesopen.com>
2302 Steven Bosscher <stevenb.gcc@gmail.com>
2303
2304 PR target/27531
2305 * reload1.c (gen_reload): Call mark_jump_label on the new insns
2306 generated by gen_move_insn to add REG_LABEL notes if necessary.
2307
2308 2006-06-22 Bob Wilson <bob.wilson@acm.org>
2309
2310 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2311 (leaf_entry): Remove use of MIN_ESA.
2312
2313 2006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
2314
2315 PR rtl-optimization/28121
2316 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2317 the entry edge.
2318
2319 2006-06-21 DJ Delorie <dj@redhat.com>
2320
2321 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2322 (TN-16C-A156A/E).
2323 (mulhisi3_r): Likewise.
2324
2325 2006-06-21 Richard Sandiford <richard@codesourcery.com>
2326
2327 PR middle-end/28034
2328 * coverage.c (coverage_counter_alloc): Leave the index type
2329 unspecified.
2330 (coverage_counter_alloc): Use null arguments for operands 2 and 3
2331 of the ARRAY_REF.
2332
2333 2006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
2334
2335 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
2336 section from the "Options for Code Generation Conventions".
2337
2338 2006-06-21 Richard Henderson <rth@redhat.com>
2339
2340 PR target/26347
2341 PR target/27082
2342 * config/alpha/predicates.md (small_symbolic_operand): Deny weak
2343 symbols.
2344 (global_symbolic_operand): Allow weak symbols, even if local_p.
2345
2346 2006-06-21 Eric Botcazou <ebotcazou@adacore.com>
2347
2348 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
2349 (find_interesting_uses_address): Punt if above function returns true.
2350
2351 2006-06-21 Richard Guenther <rguenther@suse.de>
2352
2353 * configure: Regenerated.
2354
2355 2006-06-21 Joseph Myers <joseph@codesourcery.com>
2356
2357 * config/mips/mips.c (function_arg): Where one part of a
2358 complex argument is in registers and the other part in the stack,
2359 return a REG not a PARALLEL.
2360
2361 2006-06-21 Mark Mitchell <mark@codesourcery.com>
2362
2363 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
2364 when cross-compiling. Do not substitute libstdcxx_incdir.
2365 * configure: Regenerated.
2366
2367 2006-06-21 Jakub Jelinek <jakub@redhat.com>
2368
2369 * varasm.c (mergeable_string_section): Check for embedded NULs and
2370 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
2371 rather than TREE_STRING_LENGTH bytes.
2372
2373 2006-06-21 Richard Guenther <rguenther@suse.de>
2374
2375 * ggc-page.c (extra_order_size_table): Add var_ann_d,
2376 tree_ssa_name, bitmap_element and phi_node with 4 arguments
2377 sizes.
2378
2379 2006-06-21 Richrad Guenther <rguenther@suse.de>
2380
2381 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2382 Limit iteration over the dominators.
2383
2384 2006-06-20 Roger Sayle <roger@eyesopen.com>
2385
2386 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
2387 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2388
2389 2006-06-20 Richard Guenther <rguenther@suse.de>
2390 Michael Matz <matz@suse.de>
2391
2392 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
2393 function.
2394 * alloc-pool.c (free_alloc_pool_if_empty): New function.
2395 * et-forest.h (et_free_pools): Prototype new function.
2396 * et-forest.c (et_free_tree_force): Free parent occurrence.
2397 (et_free_pools): New function.
2398 * dominance.c (free_dominance_info): Free et-forest alloc
2399 pools.
2400
2401 2006-06-20 Roger Sayle <roger@eyesopen.com>
2402
2403 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
2404 integer modes, attempt to directly construct an integer constant.
2405
2406 * fold-const.c (native_encode_vector): Determine the size of each
2407 element from the vector type instead of the first vector element.
2408
2409 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2410 if all of its elements/components are constant.
2411 (build_constructor_from_list): Likewise.
2412
2413 2006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
2414
2415 PR tree-optimization/27331
2416 * tree-data-ref.c (free_data_ref): New function.
2417 (create_data_ref): Fail if the data reference has unknown access
2418 function.
2419 (free_data_refs): Use free_data_ref.
2420
2421 2006-06-19 Andrew Pinski <pinskia@gmail.com>
2422
2423 PR middle-end/28075
2424 * tree-inline.c (setup_one_parameter): Strip useless
2425 type conversion before adding it to the IR.
2426 (declare_return_variable): Likewise.
2427
2428 2006-06-19 Martin Michlmayr <tbm@cyrius.com>
2429
2430 PR c/27149
2431 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2432
2433 2006-06-19 Mike Stump <mrs@apple.com>
2434
2435 * tree.c (variably_modified_type_p): VM arguments don't make the
2436 type a VM type.
2437
2438 2006-06-19 Richard Guenther <rguenther@suse.de>
2439
2440 * tree-ssa-pre.c (try_combine_conversion): Strip useless
2441 type conversions after folding.
2442
2443 2006-06-19 Richard Guenther <rguenther@suse.de>
2444
2445 * ggc-page.c (extra_order_size_tab): Add entries with
2446 size of struct function and basic_block.
2447 (size_lookup): Extend to cover sizes up to 511.
2448 (ggc_alloc_stat): Adjust user.
2449 (ggc_pch_count_object): Likewise.
2450 (ggc_pch_alloc_object): Likewise.
2451 (ggc_pch_write_object): Likewise.
2452
2453 2006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
2454
2455 * tree-ssa-loop-niter.c (implies_ge_p): New function.
2456 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2457 correctly.
2458
2459 2006-06-19 Denis Chertykov <denisc@overta.ru>
2460
2461 * config/avr/libgcc.S : Correct my wrong previous commit.
2462
2463 2006-06-19 Roger Sayle <roger@eyesopen.com>
2464
2465 PR target/27861
2466 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2467 have stripped a SUBREG from the shift count, so we may need to
2468 convert_to_mode back to the type's mode before calling make_tree.
2469 Use new_amount instead of amount to avoid expanding a tree twice.
2470
2471 2006-06-19 Richard Guenther <rguenther@suse.de>
2472
2473 PR middle-end/28045
2474 * fold-const.c (operand_equal_p): Check if the argument types
2475 have the same precision before stripping NOPs.
2476
2477 2006-06-19 Daniel Berlin <dberlin@dberlin.org>
2478
2479 Fix PR tree-optimization/27341
2480 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2481 statement we get.
2482 * tree-complex.c (pass_lower_complex): Update SMT usage.
2483
2484 2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
2485
2486 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2487 Add a new alternative to the constraint strings. Add move of
2488 operand 1 to 3 to the splitter definition.
2489 ("doloop_si_long"): Second contraint alternative removed.
2490
2491 2006-06-08 Anatoly Sokolov <aesok@post.ru>
2492
2493 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2494 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2495 __AVR_HAVE_LPMX__.
2496 (AVR_HAVE_MOVW) Define.
2497 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2498 (ASM_SPEC): Add avr25.
2499 (LINK_SPEC): Add avr25.
2500 * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2501 (base_arch_s): Add new member 'have_movw_lpmx'.
2502 (avr_arch_types): Init 'have_movw_lpmx'.
2503 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2504 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2505 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2506 (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2507 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2508 AVR_HAVE_MOVW.
2509 (avr_file_start): Do not output '.arh' derective.
2510 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2511 (__do_copy_data): Use __AVR_HAVE_LPMX__.
2512 * config/avr/avr.md (mcu_enhanced): Delete.
2513 (mcu_have_movw): Define.
2514 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2515 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2516 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2517 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2518 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2519 attiny861 and at86rf401 devices.
2520
2521 2006-06-18 Jie Zhang <jie.zhang@analog.com>
2522
2523 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2524 of 4096.
2525
2526 2006-06-17 Karl Berry <karl@gnu.org>
2527
2528 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2529 doc/gccint.texi, doc/install.texi (@dircategory): Use
2530 "Software development" instead of "Programming", following
2531 the Free Software Directory.
2532
2533 2006-06-17 Alexandre Oliva <aoliva@redhat.com>
2534
2535 * config/i386/i386.c (legitimate_tls_address)
2536 <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2537 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2538 (*tls_dynamic_gnu2_combine_64): Likewise.
2539
2540 2006-06-16 Richard Guenther <rguenther@suse.de>
2541
2542 PR middle-end/27116
2543 * fold-const.c (negate_expr_p): Do not introduce undefined
2544 overflow in negating INTEGER_CSTs.
2545 (fold_negate_expr): Rename from negate_expr. Revert last
2546 change for folding BIT_NOT_EXPR. Change semantics to
2547 return NULL_TREE for non-simplified negations. Do not
2548 strip type conversions and unify type handling.
2549 (negate_expr): New function, wrap around fold_negate_expr
2550 but ensure building a tree always. Strip type conversions
2551 here, fold to result type.
2552 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2553
2554 2006-06-16 Roger Sayle <roger@eyesopen.com>
2555
2556 PR middle-end/27802
2557 * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2558 that (would) return their results in stack registers.
2559
2560 2006-06-16 Michael Matz <matz@suse.de>
2561 Richard Guenther <rguenther@suse.de>
2562
2563 * fold-const.c (fold_truthop): Only return new tree node if
2564 we canonicalized something.
2565
2566 2006-06-16 Richard Guenther <rguenther@suse.de>
2567
2568 * function.h (enum function_frequency): Move declaration
2569 out of struct function.
2570 (struct function): Move bool fields and the enum to the bitfield
2571 section. Reorder elements to avoid padding. Remove unused
2572 fields left over from the RTL inliner removal.
2573 * function.c (free_after_compilation): Do not zero removed fields.
2574 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2575 (ipa-type-escape.o): Likewise.
2576
2577 2006-06-16 Richard Guenther <rguenther@suse.de>
2578
2579 * cgraph.h (struct cgraph_local_info): Turn bool elements
2580 into a bitfield.
2581 (struct cgraph_node): Likewise.
2582 (struct cgraph_varpool_node): Likewise.
2583
2584 2006-06-15 Richard Guenther <rguenther@suse.de>
2585
2586 * fold-const.c (fold_truth_not_expr): Rename from
2587 invert_truthvalue. Give it fold_* semantics to avoid
2588 generating garbage.
2589 (invert_truthvalue): New function. Wrapper around
2590 fold_truth_not_expr.
2591 (optimize_minmax_comparison): Avoid creating garbage.
2592 (fold_unary): Use fold_truth_not_expr for folding
2593 TRUTH_NOT_EXPR.
2594 (fold_ternary): Replace uses of invert_truthvalue with
2595 fold_truth_not_expr where applicable.
2596 * tree.h (fold_truth_not_expr): Prototype.
2597
2598 2006-06-16 Richard Guenther <rguenther@suse.de>
2599
2600 PR tree-optimization/27781
2601 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2602 * ipa-pure-const.c (target.h): Include.
2603 (analyze_function): Do not analyze functions that do not
2604 bind locally.
2605
2606 2006-06-15 Andrew MacLeod <amacleod@redhat.com>
2607
2608 PR middle-end/27793
2609 * tree-dfa.c (referenced_vars_dup_list): Remove.
2610 (find_referenced_vars): Remove assert.
2611 (referenced_var_check_and_insert): Replace dup list with assert.
2612 * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2613 * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2614
2615 2006-06-15 Richard Guenther <rguenther@suse.de>
2616
2617 * tree-ssa-structalias.c (alias_get_name): Avoid creating
2618 extra unused identifiers if not dumping.
2619 (create_variable_info_for): Likewise.
2620
2621 2006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
2622
2623 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2624 (derive_constant_upper_bound): Derive more precise upper bound in
2625 common cases. Return type changed to double_int.
2626 (record_estimate): Reflect the changed return type of
2627 derive_constant_upper_bound.
2628 * double-int.c (double_int_zext, double_int_sext): Fix.
2629
2630 2006-06-15 Paolo Bonzini <bonzini@gnu.org>
2631
2632 * configure.ac (CFLAGS): Get them from the toplevel or from the
2633 configure invocation.
2634 * configure: Regenerate.
2635 * Makefile.in (CFLAGS): Substitute value provided by configure.
2636
2637 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2638
2639 PR c++/26559
2640 * c-common.h (c_finish_omp_atomic): Adjust declaration.
2641 * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2642 rather than calling add_stmt on it.
2643 * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2644
2645 2006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
2646
2647 PR middle-end/27959
2648 * reload1.c (reload): Remove registers returned by update_eliminables
2649 from used_spill_regs.
2650
2651 2006-06-13 DJ Delorie <dj@redhat.com>
2652
2653 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2654
2655 2006-06-13 Carlos O'Donell <carlos@codesourcery.com>
2656
2657 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2658 html__strip_dir, html__mkdir_p. Enhance install-html target.
2659 * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2660 * configure: Regenerate.
2661
2662 2006-06-13 Fariborz Jahanian <fjahanian@apple.com>
2663
2664 * fold-const.c (fold_cond_expr_with_comparison): Check for
2665 Objective-C++ as language in deciding COND_EXPR transformation.
2666
2667 2006-06-06 J"orn Rennecke <joern.rennecke@st.com>
2668
2669 PR target/28014:
2670 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2671 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2672 * config/sh/lib1funcs.h (SL, SL1): Define.
2673 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2674 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2675 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2676 (OBJS_Os_4_200): New variable.
2677 ($(T)libgcc-Os-4-200.a): Use it.
2678 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2679 when dividing 1 and/or by 0.
2680
2681 2006-06-13 Roger Sayle <roger@eyesopen.com>
2682
2683 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2684 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2685 * configure: Regenerate.
2686
2687 2006-06-13 Jie Zhang <jie.zhang@analog.com>
2688
2689 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2690 for real instruction.
2691
2692 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2693
2694 PR middle-end/26807
2695 * haifa-sched.c (check_cfg): Handle special case.
2696
2697 2006-06-13 Eric Botcazou <ebotcazou@adacore.com>
2698
2699 PR debug/26754
2700 * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2701 Add debug_info parameter. Chain the vars to the BLOCK instead
2702 of the BIND_EXPR if debug info are requested for them.
2703 (pop_gimplify_context): Adjust for above change.
2704 (gimple_add_tmp_var): Likewise.
2705 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2706 Add bool parameter.
2707 * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2708 (convert_local_reference): Likewise.
2709 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2710 (finalize_nesting_tree_1): Request that debug info be emitted
2711 for debug_var_chain.
2712
2713 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2714
2715 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2716 for PR target/27863.
2717
2718 2006-06-13 Richard Guenther <rguenther@suse.de>
2719
2720 PR middle-end/27536
2721 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2722
2723 2006-06-13 Richard Guenther <rguenther@suse.de>
2724
2725 PR tree-optimization/27830
2726 * tree-inline.c (copy_body_r): For copying the operand
2727 of an ADDR_EXPR make sure to fold &* afterwards.
2728
2729 2006-06-12 Eric Botcazou <ebotcazou@adacore.com>
2730
2731 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2732 lvalues in the fb_none case with side-effects.
2733
2734 2006-06-12 Kazu Hirata <kazu@codesourcery.com>
2735
2736 * tree-flow.h: Remove the prototype for
2737 compute_phi_arg_on_exit.
2738 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
2739 protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
2740 Remove.
2741
2742 2006-06-12 Mark Shinwell <shinwell@codesourcery.com>
2743
2744 * builtins.c (expand_builtin_return_addr): Only use
2745 frame_pointer_rtx when count == 0 and we are expanding
2746 __builtin_return_address.
2747
2748 2006-06-12 Fred Fish <fnf@specifix.com>
2749
2750 * config/mips/mips.c (mips_file_start): Create special section
2751 ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2752
2753 2006-06-11 Eric Christopher <echristo@apple.com>
2754
2755 PR middle-end/27948
2756 * stor-layout.c (place_field): Remove check for
2757 remaining_in_alignment when aligning at the end of a run.
2758
2759 2006-06-11 Eric Christopher <echristo@apple.com>
2760
2761 PR 27542
2762 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
2763 pragma.
2764
2765 2006-06-11 Roger Sayle <roger@eyesopen.com>
2766
2767 PR target/27858
2768 Revert incorrect fix for PR target/27158
2769 2006-05-08 Roger Sayle <roger@eyesopen.com>
2770 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2771 of a reg_equiv_constant if the result is a legitimate constant.
2772
2773 2006-06-11 Roger Sayle <roger@eyesopen.com>
2774
2775 PR target/27158
2776 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
2777 extract a CONST_VECTOR element and interpret it as an integer.
2778 (vspltis_constant): Use const_vector_elt_as_int instead of the
2779 macro CONST_VECTOR_ELT in order to handle FP vector modes.
2780 * config/rs6000/predicates.md (easy_vector_const): Consider
2781 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2782
2783 2006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2784
2785 PR middle-end/27942
2786 * stor-layout.c (update_alignment_for_field): Don't add extra
2787 alignment for packed non-bitfield fields in ms_bitfield_layout_p
2788 code.
2789
2790 2006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
2791
2792 * config/mips/t-rtems: Add EL/EB multilib variants.
2793
2794 2006-06-09 Mike Stump <mrs@apple.com>
2795
2796 * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2797
2798 2006-06-09 David Daney <ddaney@avtrex.com>
2799
2800 * doc/install.texi: Add binutils version recommendation for mips-*-*.
2801
2802 2006-06-09 Andreas Krebbel <krebbel1@de.ibm.com>
2803
2804 * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2805
2806 2006-06-09 Richard Guenther <rguenther@suse.de>
2807
2808 PR tree-optimization/26998
2809 * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
2810 of signed types, only TYPE_MIN_VALUE is special, but for both,
2811 minimum and maximum value. Likewise VR_ANTI_RANGE is special
2812 in this case, as is -fwrapv.
2813
2814 2006-06-08 Mike Stump <mrs@apple.com>
2815
2816 PR target/26427
2817 * config/darwin.c (darwin_asm_output_anchor): Disable
2818 -fsection-anchors on darwin for now.
2819 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
2820 * rs6000/rs6000.c (optimization_options): Likewise.
2821
2822 2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2823
2824 PR target/27421
2825 * config/i386/i386.c (classify_argument): Skip fields with invalid
2826 types in unions.
2827
2828 2006-06-08 Steven Bosscher <steven@gcc.gnu.org>
2829
2830 * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
2831 (cse_insn): Likewise for the stack_pointer_rtx.
2832
2833 2006-06-08 Roger Sayle <roger@eyesopen.com>
2834
2835 * tree-ssa-dom.c (record_conditions): Only record "unordered"
2836 conditions from floating point comparisons.
2837
2838 2006-06-08 Paolo Bonzini <bonzini@gnu.org>
2839
2840 PR middle-end/27733
2841 * expmed.c (struct alg_hash_entry): Fix type of field T
2842 to match synth_mult argument.
2843 (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2844
2845 2006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2846
2847 PR target/27863
2848 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
2849 block boundaries.
2850
2851 2006-06-08 Richard Guenther <rguenther@suse.de>
2852
2853 PR middle-end/27116
2854 * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
2855 only, if overflow is defined and not trapping.
2856 (negate_expr): Likewise.
2857
2858 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2859
2860 PR tree-optimization/27872
2861 * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
2862 flag on the new exit edge of the unrolled loop.
2863
2864 2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2865
2866 PR rtl-optimization/26449
2867 * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2868
2869 2006-06-07 Andrew MacLeod <amacleod@redhat.com>
2870
2871 PR middle-end/27793
2872 * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate
2873 referenced_variables with matching DECL_UID's.
2874 (find_referenced_vars): Make sure duplicate list is empty to start.
2875 (referenced_var_p): Remove.
2876 (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2877 Check if var is in the list, and add if needed. Update the duplicate
2878 list if a different var is in the list with the same DECL_UID.
2879 (add_referenced_var): Call routine to check and insert.
2880 * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2881 * tree-flow.h (referenced_vars_dup_list): External declaration.
2882
2883 2006-06-07 Fred Fish <fnf@specifix.com>
2884
2885 * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2886 into single entry.
2887
2888 2006-06-07 Paolo Bonzini <bonzini@gnu.org>
2889
2890 PR target/27390
2891 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2892 the imaginary and real parts of a clobbered register.
2893 Emit insn to set the imaginary part.
2894
2895 2006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
2896
2897 * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2898 in lieu of unwind-dw2-fde.c.
2899
2900 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2901
2902 * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2903
2904 2006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2905
2906 PR target/27842
2907 * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2908 ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2909 ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2910 V4SImode temporaries and operations instead.
2911
2912 2006-06-06 Joseph S. Myers <joseph@codesourcery.com>
2913
2914 * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2915 dp-bit.c.
2916
2917 2006-06-06 Mike Stump <mrs@apple.com>
2918
2919 * Makefile.in: Rename to htmldir to build_htmldir to avoid
2920 installing during build.
2921
2922 2006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2923
2924 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
2925 value to 0.
2926 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2927 * config/ia64/ia64.c (params.h): New header.
2928 (ia64_optimization_options): New function to adjust parameters.
2929 * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
2930 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
2931 * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2932
2933 2006-06-05 Kazu Hirata <kazu@codesourcery.com>
2934
2935 * stor-layout.c (debug_rli): Fix a typo in a debug message.
2936
2937 2006-06-05 Steve Ellcey <sje@cup.hp.com>
2938
2939 PR target/27051
2940 * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2941
2942 2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
2943 Victor Kaplansky <victork@il.ibm.com>
2944
2945 PR tree-optimization/26360
2946 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
2947 stmts.
2948
2949 2006-06-04 Roger Sayle <roger@eyesopen.com>
2950 Andrew Pinski <pinskia@physics.uc.edu>
2951
2952 PR middle-end/27382
2953 * c-common.c (c_common_truthvalue_conversion): Explicitly check
2954 for LABEL_DECL before calling DECL_WEAK.
2955
2956 PR c/27150
2957 * c-typeck.c (build_binary_op): Likewise, explicitly check for
2958 LABEL_DECL and PARM_DECL.
2959
2960 2006-06-05 Joseph S. Myers <joseph@codesourcery.com>
2961
2962 PR c/25161
2963 PR c/27020
2964 * c-decl.c (grokdeclarator): Disallow variably modified types at
2965 file scope. Avoid marking shared array type of constant size as
2966 VLA.
2967
2968 2006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2969
2970 PR c++/27601
2971 * c-common.c (fold_offsetof_1): Handle static members.
2972
2973 2006-06-04 Eric Christopher <echristo@apple.com>
2974
2975 * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
2976 (debug_rli): Output value for remaining_in_alignment.
2977 (update_alignment_for_field): Unconditionalize
2978 ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
2979 extra alignment code.
2980 (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
2981 ms_bitfield_layout_p code. Rewrite handling of structure fields.
2982 * tree.h (record_layout_info_s): Remove prev_packed.
2983 * doc/extend.texi (ms_struct): Add documentation of format.
2984
2985 2006-06-04 Mark Shinwell <shinwell@codesourcery.com>
2986
2987 * tree.h: Declare folding_initializer.
2988 * builtins.c (fold_builtin_constant_p): Give definite answer
2989 if folding inside an initializer.
2990 * fold-const.c: Define folding_initializer.
2991 (START_FOLD_INIT): Save and then set folding_initializer.
2992 (END_FOLD_INIT): Restore folding_initializer.
2993
2994 2006-06-04 Richard Guenther <rguenther@suse.de>
2995
2996 PR tree-optimization/27039
2997 * fold-const.c (fold_comparison): Handle pointer comparison
2998 again for all comparison codes. Compare offsets in signed
2999 size type.
3000 (fold_binary): Move code from here.
3001
3002 2006-06-03 Roger Sayle <roger@eyesopen.com>
3003
3004 PR target/26223
3005 * config/i386/i386.c (construct_container): Split static issued_error
3006 flag into issued_sse_arg_error, issued_sse_ret_error and
3007 issued_x87_ret_error. Issue a daignostic if the x86-64 ABI
3008 requires the use of x87 registers and the user explicitly
3009 specified the -mno-80387 command line option.
3010
3011 2006-06-02 Geoffrey Keating <geoffk@apple.com>
3012
3013 * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
3014 HAVE_DECL_SIGALTSTACK.
3015 (MC_FLD): New.
3016 (segv_handler): Use MC_FLD.
3017 * configure.ac: Check for a sigaltstack declaration.
3018 Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
3019 * configure: Regenerate.
3020 * config.in: Regenerate.
3021
3022 2006-06-03 J"orn Rennecke <joern.rennecke@st.com>
3023
3024 PR other/27850
3025 * Makefile.in (stmp-fixinc): Fix typo.
3026
3027 2006-06-02 Roger Sayle <roger@eyesopen.com>
3028
3029 * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
3030 are type correct. Clean-up.
3031 <REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z).
3032 <IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z).
3033
3034 2006-06-01 DJ Delorie <dj@redhat.com>
3035
3036 * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
3037 shift, as we've disabled the "switch" insn that needs it.
3038
3039 2006-06-01 Per Bothner <bothner@bothner.com>
3040
3041 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
3042 * c-opts.c (finish_options): Use internal line 0 for <command-line>.
3043 * c-ppoutput.c (cb_define): Don't increment line 0.
3044
3045 2006-06-01 Pete Steinmetz <steinmtz@us.ibm.com>
3046
3047 * doc/invoke.texi: Add cpu_type power6.
3048 * config.gcc: Add cpu_type power6.
3049 * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
3050 to power5+ with Altivec.
3051 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
3052 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
3053
3054 2006-05-30 Anatoly Sokolov <aesok@post.ru>
3055
3056 * config/avr/avr.h (SET_ASM_OP): Define.
3057
3058 2006-06-01 Kazu Hirata <kazu@codesourcery.com>
3059
3060 * config/bfin/bfin.c: Fix comment typos.
3061
3062 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
3063
3064 PR 25453
3065 * doc/install.texi: Document --enable-bootstrap and
3066 --disable-bootstrap.
3067
3068 2006-06-01 Paolo Bonzini <bonzini@gnu.org>
3069
3070 * doc/install.texi: Document that InfoZIP can replace jar.
3071
3072 2006-05-31 Roger Sayle <roger@eyesopen.com>
3073
3074 * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
3075 isn't available, directly generate the simpler x87 patterns without
3076 the (use (const_int 0)).
3077 * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
3078 implementation isn't available.
3079 (*negdf2_1): Likewise.
3080 (*negxf2_1): XF mode negation is always done using the x87.
3081 (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
3082
3083 2006-05-31 Roger Sayle <roger@eyesopen.com>
3084
3085 * builtins.c (fold_builtin_cabs): Delete prototype. Require an
3086 additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as
3087 cabs(z).
3088 (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
3089
3090 2006-05-31 Jie Zhang <jie.zhang@analog.com>
3091
3092 * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
3093 * config/bfin/bfin.c (basic-block.h): Include.
3094 (struct machine_function): New.
3095 (bfin_init_machine_status): New.
3096 (override_options): Initialize init_machine_status.
3097 (bfin_hardware_loop): New.
3098 (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
3099 (DEF_VEC_P (loop_info)): New.
3100 (DEF_VEC_ALLOC_P (loop_info,heap)): New.
3101 (struct loop_info): New.
3102 (loop_info): New typedef.
3103 (struct loop_work): New.
3104 (loop_work): New typedef.
3105 (DEF_VEC_O (loop_work)): New.
3106 (DEF_VEC_ALLOC_O (loop_work,heap)): New.
3107 (bfin_dump_loops): New.
3108 (bfin_bb_in_loop): New.
3109 (bfin_scan_loop): New.
3110 (bfin_optimize_loop): New.
3111 (bfin_reorg_loops): New.
3112 (bfin_reorg): Use bfin_reorg_loops.
3113 * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
3114 loop registers.
3115 (I_REGNO_P): Simplify.
3116 (DP_REGNO_P, DPREG_P): New macros.
3117 (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3118 REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
3119 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3120 Add LT_REGS, LC_REGS, LB_REGS.
3121 (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
3122 'l' for LB_REGS.
3123 (REGNO_REG_CLASS): Deal with loop registers.
3124 * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
3125 letters.
3126 (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
3127 New constants for loop registers.
3128 (UNSPEC_LSETUP_END): New.
3129 (seq_insns): New define_attr. Set it for appropriate insns.
3130 (movsi_insn): Add alternatives for move from/to
3131 loop count registers.
3132 (doloop_end): New define_expand.
3133 (loop_end): New define_insn.
3134 (define_split for bad doloop_end): New.
3135 (lsetup_with_autoinit): New define_insn.
3136 (lsetup_without_autoinit): New define_insn.
3137 (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
3138 * config/bfin/predicates.md (lc_register_operand): New.
3139 (lt_register_operand): New.
3140 (lb_register_operand): New.
3141 (nondp_register_operand): New.
3142 (nondp_reg_or_memory_operand): New.
3143 * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
3144
3145 2006-05-31 Jie Zhang <jie.zhang@analog.com>
3146
3147 * config/bfin/bfin.c (bfin_delegitimize_address): New.
3148 (TARGET_DELEGITIMIZE_ADDRESS): Define.
3149
3150 2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
3151
3152 * Makefile.in (CATALOGS): Add po/ prefix.
3153 * configure: Regenerated.
3154
3155 2006-05-31 Richard Earnshaw <richard.earnshaw@arm.com>
3156
3157 PR target/27829
3158 * arm.c (arm_print_operand case 'S'): Validate that the operand is
3159 a shift operand before calling shift_op. Avoid redundant call of
3160 shift_op.
3161
3162 2006-05-30 Naveen.H.S <naveenh@kpitcummins.com>
3163 DJ Delorie <dj@redhat.com>
3164
3165 * config/m32c/m32c.c (m32c_expand_insv): Check that the value
3166 we're inserting is a singlt-bit constant.
3167
3168 2006-05-30 Roger Sayle <roger@eyesopen.com>
3169
3170 * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
3171 width to HOST_WIDE_INT to avoid comparison warnings on some targets.
3172
3173 2006-05-30 Roger Sayle <roger@eyesopen.com>
3174
3175 PR tree-optimization/23452
3176 * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
3177 to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
3178 (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
3179 complex values and with -ffast-math for FP complex values.
3180
3181 2006-05-30 Kazu Hirata <kazu@codesourcery.com>
3182
3183 * c-common.h: Remove the prototype for yyparse.
3184 * rtl.h: Remove the prototype for init_loop.
3185
3186 2006-05-30 Andreas Krebbel <krebbel1@de.ibm.com>
3187
3188 * cse.c (validate_canon_reg, cse_insn): Don't change insns without
3189 calling recog.
3190
3191 2006-05-30 Roger Sayle <roger@eyesopen.com>
3192
3193 * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
3194 and rotate cases.
3195 <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
3196 log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
3197
3198 2006-05-30 Dirk Mueller <dmueller@suse.de>
3199
3200 PR c/27273
3201 * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
3202 for CONSTANT_CLASS_P expresisons.
3203
3204 2006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3205
3206 PR c/27718
3207 * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
3208
3209 2006-05-30 Zdenek Dvorak <dvorakz@suse.cz>
3210
3211 PR tree-optimization/27779
3212 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
3213 initial_condition instead of CHREC_LEFT.
3214
3215 2006-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
3216
3217 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
3218 * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
3219 Make prototypes ISO C90.
3220
3221 2006-05-30 Mircea Namolaru <namolaru@il.ibm.com>
3222 Leehod Baruch <leehod.baruch@weizmann.ac.il>
3223
3224 * see.c (see_analyze_one_def): Correct check.
3225 (see_get_extension_data): Check if extension is parallel.
3226 (see_get_extension_reg): Likewise.
3227
3228 2006-05-30 Uros Bizjak <uros@kss-loka.si>
3229
3230 PR target/27790
3231 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
3232 into register for (code == GTU).
3233
3234 2006-05-29 Roger Sayle <roger@eyesopen.com>
3235
3236 PR tree-optimization/24964
3237 * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
3238 <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor
3239 signaling NaNs. Optimize -x*-x as x*x for all float modes, and
3240 abs(x)*abs(x) as x*x for scalar floating point modes.
3241
3242 2006-05-29 Sebastian Pop <pop@cri.ensmp.fr>
3243
3244 PR middle-end/27745
3245 * lambda-code.c (perfect_nestify): Don't copy statements
3246 in the inner loop: move them to the inner loop header.
3247
3248 2006-05-29 Diego Novillo <dnovillo@redhat.com>
3249
3250 PR 26237
3251 * c-tree.texi: Document OpenMP directives and clauses.
3252
3253 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
3254
3255 * varasm.c (globalize_decl): Fix indentation.
3256
3257 2006-05-29 Diego Novillo <dnovillo@redhat.com>
3258
3259 PR 26242
3260 * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
3261 pass_fre, pass_store_ccp, pass_copy_prop,
3262 pass_store_copy_prop, pass_merge_phi, pass_nrv,
3263 pass_return_slot, pass_object_size, pass_lim,
3264 pass_linear_transform, pass_empty_loop, pass_complete_unroll,
3265 pass_loop_prefetch and pass_stdarg.
3266
3267 2005-05-29 Bernd Schmidt <bernd.schmidt@analog.com>
3268
3269 * config/bfin/bfin.opt (mfdpic): New option.
3270 * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
3271 (EXTRA_MULTILIB_PARTS): Likewise.
3272 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
3273 (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
3274 multilib.
3275 * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
3276 (CRT_CALL_STATIC_FUNCTION): New.
3277 * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
3278 -shared.
3279 (CRT_CALL_STATIC_FUNCTION): New.
3280 * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle
3281 FD-PIC moves.
3282 (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
3283 (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
3284 (initialize_trampoline): Changed to handle FD-PIC code generation.
3285 (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
3286 (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
3287 (override_options): Disallow -mid-shared-library -mfdpic combination.
3288 Can't do unaligned ops if FD-PIC.
3289 Turn off flag_pic if trying to generate non-id-shared-library
3290 non-fdpic code, since it's not supported.
3291 (bfin_assemble_integer): New function.
3292 (TARGET_ASM_INTEGER): Define.
3293 * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
3294 __BFIN_FDPIC__.
3295 * config/bfin/crtn.s: Restore them.
3296 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
3297 if TARGET_FDPIC.
3298 (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
3299 LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
3300 (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
3301 (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
3302 (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
3303 call-used.
3304 (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3305 FDPIC_REGS and FDPIC_FPTR_REGS.
3306 (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3307 * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3308 UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3309 (load_funcdescsi): New pattern.
3310 (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3311 sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3312 call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3313
3314 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
3315
3316 * gcse.c, rtlanal.c: Remove obsolete comments associated with
3317 loop.c.
3318
3319 * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3320
3321 * tree-flow.h: Remove the prototype for add_type_alias.
3322 * tree-ssa-alias.c (add_type_alias): Remove.
3323
3324 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
3325
3326 * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
3327 config/fr30/fr30.md, config/i386/i386-interix.h,
3328 config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
3329 config/sh/superh64.h, config/v850/v850.c, df-core.c,
3330 df-problems.c, df.h, except.c, final.c, haifa-sched.c,
3331 lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
3332 reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
3333 tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
3334 Follow spelling conventions.
3335 * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
3336 Follow spelling conventions.
3337
3338 2006-05-27 Richard Guenther <rguenther@suse.de>
3339
3340 PR middle-end/27773
3341 * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
3342 to produce a constant of value 1 of generic type.
3343
3344 2006-05-27 Dirk Mueller <dmueller@suse.de>
3345
3346 * cgraphunit.c (decide_is_function_needed): Fix wrong
3347 PR reference.
3348
3349 2006-05-26 Ulrich Weigand <uweigand@de.ibm.com>
3350
3351 PR rtl-optimization/27661
3352 * reload.c (find_reloads): When reloading a VOIDmode constant
3353 as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
3354 use Pmode as mode of the reload register.
3355
3356 2006-05-26 Eric Botcazou <ebotcazou@adacore.com>
3357
3358 * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
3359 is enabled at -O and above.
3360
3361 2006-05-26 Steven Bosscher <steven@gcc.gnu.org>
3362
3363 PR target/27571
3364 * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
3365 table data.
3366
3367 2006-05-25 Mark Mitchell <mark@codesourcery.com>
3368
3369 PR c++/20103
3370 * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
3371 for anonymous variables explicitly declared by front ends.
3372
3373 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
3374
3375 * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
3376 (struct alias_info): Add new field ref_all_symbol_mem_tag.
3377 * tree-ssa-alias.c (compute_may_aliases): If the program contains
3378 ref-all pointers, run a finalization pass for them.
3379 (compute_flow_insensitive_aliasing): Skip ref-all pointers.
3380 (finalize_ref_all_pointers): New function.
3381 (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
3382 regular pointer type to a ref-all pointer type.
3383 (get_tmt_for): Return the special memory tag for ref-all pointers.
3384
3385 2006-05-25 Richard Guenther <rguenther@suse.de>
3386
3387 PR middle-end/27743
3388 * fold-const.c (fold_binary): Do not look at the stripped
3389 op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
3390
3391 2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
3392
3393 * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
3394 for LT and GT if the computed range is effectively empty.
3395
3396 2006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3397
3398 PR target/27627
3399 * pa/pa-modes.def: Use mips_single_format, mips_double_format and
3400 mips_quad_format formats instead of ieee_single_format,
3401 ieee_double_format and ieee_quad_format formats, respectively.
3402
3403 2006-05-24 Zdenek Dvorak <dvorakz@suse.cz>
3404
3405 PR tree-optimization/27639
3406 PR tree-optimization/26719
3407 * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
3408 call to scev_probably_wraps_p.
3409 * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3410 used_in_pointer_arithmetic_p, convert_step): Removed.
3411 (nowrap_type_p): New function.
3412 (scev_probably_wraps_p): Rewritten.
3413 * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3414 chrec_convert if chrec_convert_aggressive might have been used.
3415 * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3416 scev_direction): New functions.
3417 (chrec_convert): Changed to a wrapper over chrec_convert_1.
3418 * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3419 instead of convert_step.
3420 * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3421 (convert_step): Declaration removed.
3422 (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3423
3424 2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
3425
3426 * df-core.c: Added to header comments.
3427 * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3428 df_ur_bb_info, df_urec_bb_info): Added comments.
3429 * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3430 urec, ri problems): Fixed header comments.
3431 (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3432 code from df_rd_transfer_function.
3433
3434 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3435
3436 * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3437 (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3438 MIN_UNITS_PER_WORD to set the default. Also use it in the guard.
3439
3440 2006-05-23 Joseph Myers <joseph@codesourcery.com>
3441
3442 * expr.c (undefined_operand_subword_p): New.
3443 (emit_move_multi_word): Do not generate move from undefined bits
3444 of a paradoxical subreg.
3445
3446 2006-05-23 Richard Sandiford <richard@codesourcery.com>
3447
3448 PR rtl-optimization/27736
3449 * combine.c (replaced_rhs_value): New variable.
3450 (combine_instructions): Set it.
3451 (distribute_notes): When distributing a note in replaced_rhs_insn,
3452 check whether the value was used in replaced_rhs_value.
3453
3454 2006-05-23 Andrew MacLeod <amacleod@redhat.com>
3455
3456 PR c++/26757
3457 * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3458 add_referenced_var instead of add_referenced_tmp_var.
3459 * tree-complex.c (create_one_component_var): Use add_referenced_var.
3460 * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3461 add_referenced_var.
3462 * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3463 tree_optimize_tail_calls_1): Use add_referenced_var.
3464 * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3465 * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3466 Use add_referenced_var.
3467 * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3468 * gimplify.c (force_gimple_operand): Use add_referenced_var.
3469 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3470 Use add_referenced_var.
3471 * tree-dfa.c (struct walk_state): Remove.
3472 (find_referenced_vars): Remove walk state and vars_found hash table.
3473 (make_rename_temp): Use add_referenced_var.
3474 (find_vars_r): Pass less parameters to add_referenced_var.
3475 (referenced_var_p): New. Is var in referenced_var hash table.
3476 (referenced_var_insert): Assert var isn't already in hash table.
3477 (add_referenced_var): Don't need walk_state parameter. Add var if it
3478 isn't already in the hash table.
3479 (add_referenced_tmp_var): Remove.
3480 (find_new_referenced_vars_1): Use add_referenced_var.
3481 * tree-ssa-pre.c (create_expression_by_pieces,
3482 insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3483 Use add_referenced_var.
3484 * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3485 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3486 lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3487 add_referenced_var.
3488 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3489 vect_create_data_ref_ptr, vect_create_destination_var,
3490 vect_init_vector, vect_build_loop_niters,
3491 vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3492 vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3493 Use add_referenced_var.
3494 * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3495 * tree-flow.h (add_referenced_tmp_var): Remove prototype
3496 (add_referenced_var): Add prototype.
3497 * tree-ssa-structalias.c (get_constraint_for,
3498 intra_create_variable_infos): Use add_referenced_var.
3499
3500 2006-05-23 Alexandre Oliva <aoliva@redhat.com>
3501
3502 * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3503 big-endian paradoxical subregs.
3504 * var-tracking.c (struct micro_operation_def): Document that,
3505 for modify micro operations, insn is the subsequent instruction.
3506 (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3507 (var_reg_set, var_mem_set): ... new functions.
3508 (add_stores): Record subsequent insn.
3509 (compute_bb_dataflow): Use new functions for MO_USE.
3510 (emit_notes_in_bb): Use new functions for MO_USE. Emit use
3511 notes after the insn, and modify notes before the insn known
3512 to be the subsequent one.
3513 (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3514
3515 2006-05-23 Kazu Hirata <kazu@codesourcery.com>
3516
3517 PR target/27696
3518 * config/i386/i386.c (ix86_expand_builtin): Use
3519 gen_sse3_monitor64 for TARGET_64BIT.
3520
3521 2006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com>
3522
3523 PR rtl-optimization/26375
3524 PR rtl-optimization/26855
3525 * df-problems (df_ru_bb_local_compute_process_def): Removed update
3526 to gen set.
3527 (df_ru_bb_local_compute): Reversed statements and removed bogus
3528 comment explaining why they should be in wrong order.
3529 (df_ru_dump, df_rd_dump): Enhanced debug info.
3530 * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3531 debug info.
3532 * ddg.c (add_deps_for_def): Converted use of reaching defs to
3533 reaching uses and fixed space problem.
3534
3535 2006-05-23 Jan Hubicka <jh@suse.cz>
3536
3537 * cgraphunit.c (decide_is_function_needed): Also nested functions
3538 and functions declared inline can be optimized out at -O0.
3539
3540 2006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
3541
3542 * doc/install.texi (Configuration): Remove reference to CrossGCC
3543 FAQ which was gone.
3544 (Building): Ditto.
3545
3546 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3547
3548 PR target/27266
3549 * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3550 ix86_compare_emitted is non-NULL.
3551
3552 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3553
3554 PR c++/27451
3555 * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3556 clobbers.
3557
3558 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3559
3560 PR rtl-optimization/25514
3561 * combine.c (replaced_rhs_insn): New variable.
3562 (combine_instructions): Set replaced_rhs_insn when trying to replace
3563 a SET_SRC with a REG_EQUAL note.
3564 (distribute_notes): Use replaced_rhs_insn when determining the live
3565 range of a REG_DEAD register.
3566
3567 2006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3568 Anatoly Sokolov <aesok@post.ru>
3569
3570 * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3571 attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3572 attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3573 atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3574 atmega3290, atmega649, atmega6490, atmega406, atmega640,
3575 atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3576 at90usb647, at90usb1286 and at90usb1287 devices.
3577 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3578 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3579
3580 2006-05-22 Richard Sandiford <richard@codesourcery.com>
3581
3582 * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3583
3584 2006-05-22 Richard Guenther <rguenther@suse.de>
3585
3586 Revert
3587 2006-01-31 Richard Guenther <rguenther@suse.de>
3588 Paolo Bonzini <bonzini@gnu.org>
3589
3590 * doc/install.texi (--disable-libgcc-math): Document.
3591
3592 2006-05-22 Richard Guenther <rguenther@suse.de>
3593
3594 Revert
3595 2006-01-31 Richard Guenther <rguenther@suse.de>
3596
3597 * doc/invoke.texi (-msselibm): Document.
3598 * target.h (expand_library_builtin): New target hook.
3599 * builtins.c (expand_builtin): Use expand_library_builtin.
3600 (default_expand_library_builtin): New function.
3601 * gcc.c (LINK_GCC_MATH_SPEC): Define.
3602 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3603 (link_gcc_math_spec): Declare.
3604 (static_specs): Add link_gcc_math_spec.
3605 * expr.h (default_expand_library_builtin): Declare.
3606 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3607 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3608 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3609 * config/i386/i386.opt (msselibm): New target option.
3610 * config/i386/i386.c (ix86_builtin_function_variants): New array.
3611 (ix86_init_sse_abi_builtins): New function.
3612 (ix86_expand_library_builtin): Likewise.
3613 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3614 (override_options): Handle error conditions wrt -msselibm.
3615 (ix86_builtins): Add function codes for SSE2 ABI builtins.
3616 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3617 * doc/extend.texi (__builtin_sse2_*): Document new target specific
3618 builtins.
3619
3620 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3621
3622 PR c/27420
3623 * c-common.c (self_promoting_args_p): Skip erroneous args.
3624
3625 PR c/26818
3626 * c-decl.c (finish_struct): Skip erroneous fields.
3627
3628 2006-05-22 Nick Clifton <nickc@redhat.com>
3629
3630 * config/cris/cris.opt (march): Remove VarExists attribute.
3631 (max-stackframe=): Likewise.
3632
3633 2006-05-22 Kazu Hirata <kazu@codesourcery.com>
3634
3635 * doc/rtl.texi: Fix a typo.
3636 * see.c: Fix comment typos.
3637
3638 * tree-ssa-structalias.h (alias_info): Remove num_references.
3639
3640 2006-05-21 Mike Stump <mrs@apple.com>
3641
3642 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3643 (BAD2): Add.
3644 (darwin_pragma_options): Use BAD instead.
3645 (darwin_pragma_unused): Likewise.
3646 (darwin_pragma_ms_struct): Likewise.
3647
3648 2006-05-21 David Edelsohn <edelsohn@gnu.org>
3649
3650 * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3651
3652 2006-05-21 Kazu Hirata <kazu@codesourcery.com>
3653
3654 PR rtl-optimization/27671
3655 * simplify-rtx.c (simplify_relational_operation_1): Fix
3656 simplifications of (eq/ne (xor x y) y) and
3657 (eq/ne (xor x y) x).
3658
3659 PR tree-optimization/26622.
3660 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3661 on arg1.
3662
3663 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3664
3665 * tree-cfg.c: Prune whitespace.
3666 (debug_tree_cfg): Point to correct header containing the
3667 TDF_* defines.
3668
3669 2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
3670
3671 PR middle-end/25776
3672 * cgraphunit.c (verify_cgraph_node): Typo in error message.
3673
3674 2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3675
3676 PR middle-end/25776
3677 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3678 or sorry count is non zero.
3679
3680 2006-05-20 Andreas Schwab <schwab@suse.de>
3681
3682 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3683
3684 2006-05-19 Daniel Berlin <dberlin@dberlin.org>
3685 Kenneth Zadeck <zadeck@naturalbridge.com>
3686
3687 PR rtl-optimization/26855
3688
3689 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3690 multiword refs.
3691 (df_scan_alloc): Added code to properly handle multiword hard
3692 registers and add all_blocks parameter.
3693 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3694 code to properly handle multiword hard registers.
3695 (df_rescan_blocks): Added code to remove deleted blocks from
3696 bitmap.
3697 (df_ref_create_structure, df_ref_record): Added code to properly
3698 handle subregs.
3699 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3700 and set DF_REF_PARTIAL.
3701 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3702 (df_uses_record): Added DF_REF_PARTIAL for subreg.
3703 (df_scan_add_problem): Added flags parameter.
3704 (df_ref_create_structure): Changed switching structure.
3705 (df_bb_refs_record): Fixed case where duplicate artificial refs
3706 were created. Changed location of flags.
3707 (df_record_entry_block_defs): Added code to make stack pointer
3708 live in entry block. Refined cases where frame pointer is needed.
3709 Changed location of flags.
3710 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3711 (df_set_state): Removed function.
3712 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3713 df_insn_create_insn_record, df_insn_refs_delete,
3714 df_ref_create_structure): Formatting changes.
3715 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3716 df_delete_basic_block): New function.
3717 (df_init): Changed location of flags.
3718 (df_add_problem): Added flags parameter and the way flags are
3719 processed.
3720 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3721 debug_df_chain): Improved debugging output.
3722 (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3723 (df_refs_chain_dump): Removed df parameter.
3724 (df_iterative_dataflow): Added consistency check.
3725 (df_prune_to_subcfg): Made public.
3726 (df_analyze_problem): Added blocks_to_init parameter and made
3727 public.
3728 (df_ref_record, df_bb_refs_record, df_mark_reg,
3729 df_record_exit_block_uses): Whitespace changes.
3730 (df_dump): Whitespace changes.
3731 * df.h: Some reordering to remove forward references.
3732 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3733 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3734 (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3735 (dataflow.flags): New field.
3736 (df.flag): Deleted field.
3737 (df_alloc_function): Added additional bitmap parameter.
3738 (df_dependent_problem_function): New type.
3739 (df_problem.changeable_flags): New field.
3740 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
3741 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
3742 (df_mw_hardreg): New struct.
3743 (DF_INSN_UID_MWS): New macro.
3744 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
3745 parameter.
3746 (df_add_problem, df_ru_add_problem, df_rd_add_problem,
3747 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
3748 df_ri_add_problem, df_scan_add_problem): Added flags parameter.
3749 (df_set_state): Removed function.
3750 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
3751 * df-problems.c (df_chain_dump): Removed df parameter.
3752 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
3753 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
3754 parameter.
3755 (df_ru_alloc, df_rd_alloc): Now resets all blocks.
3756 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
3757 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
3758 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
3759 DF_REF_MUST_CLOBBER cases.
3760 (df_ru_bb_local_compute_process_def,
3761 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
3762 df_lr_bb_local_compute, df_ur_bb_local_compute,
3763 df_chain_create_bb): Made subreg aware.
3764 (df_ru_bb_local_compute, df_rd_bb_local_compute,
3765 df_lr_bb_local_compute, df_lr_bb_local_compute,
3766 df_chain_create_bb): Cleanup to use proper macros.
3767 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
3768 code to fixup bitvectors.
3769 (df_ri_alloc): Cleared lifetime.
3770 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
3771 df_create_unused_note): New function.
3772 (df_ri_bb_compute, df_ri_compute): Added code to create/update
3773 REG_DEAD and REG_UNUSED notes as well as register information.
3774 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
3775 df_chains_dump): Fixed crash if problem was never run.
3776 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
3777 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
3778 df_ri_add_problem): Processes flags in uniform manner.
3779 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
3780 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
3781 df_rd_dump, df_urec_free_bb_info): Formatting changes.
3782 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
3783 df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
3784 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
3785 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
3786 df_ur_dump, df_urec_free_bb_info, df_urec_dump,
3787 df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
3788 * modulo-sched.c (sms_schedule): Added flag parameter to calls.
3789 * see.c (see_initialize_data): Ditto.
3790 * final.c (rest_of_clean_state) Added regstack_completed.
3791 * rtl.h (regstack_completed): Ditto.
3792 * reg-stack.c (regstack_completed): Ditto.
3793
3794 2006-05-19 Mike Stump <mrs@apple.com>
3795
3796 * c-tree.h (default_conversion): Remove.
3797 * c-common.h (default_conversion): Add.
3798
3799 2006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
3800
3801 * tree-vrp.c (valid_value_p): New function.
3802 (adjust_range_with_scev): Fail if the value of bound is not
3803 simple.
3804
3805 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3806
3807 * config/mips/linux-unwind.h: Include <asm/unistd.h>
3808 (mips_fallback_frame_state): Use syscall numbers to determine
3809 the appropriate li instruction for the current ABI. Only use
3810 __NR_sigreturn for o32.
3811
3812 2006-05-19 Nicolas Setton <setton@adacore.com>
3813
3814 * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
3815 * langhooks.c (lhd_dwarf_name): New function.
3816 * langhooks-def.h (lhd_dwarf_name): Declare.
3817 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
3818 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
3819 * ada/misc.c (gnat_dwarf_name): New function.
3820 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
3821
3822 2006-05-19 Richard Sandiford <richard@codesourcery.com>
3823
3824 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
3825 libgcc2.h.
3826 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
3827 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
3828 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
3829 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
3830 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
3831 determine the size of Wtype, etc.
3832 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
3833 (swfloatfuncs): New variable.
3834 (dwfloatfuncs): Likewise.
3835 (lib2funcs): Remove floating-point conversion functions from
3836 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
3837 the set of conversion routines needed. Allow entries to specify
3838 an object name, filename and word size. Update users accordingly.
3839 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
3840 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
3841
3842 Revert:
3843
3844 2006-02-08 Roger Sayle <roger@eyesopen.com>
3845
3846 PR target/22209
3847 * config/fixtfdi.c: New libgcc source file.
3848 * config/fixunstfdi.c: New source file.
3849 * config/floatditf.c: New source file.
3850 * config/floatunditf.c: New souce file.
3851 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3852 files above instead of config/mips/_tilib.c.
3853 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3854
3855 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3856
3857 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
3858 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
3859
3860 2006-05-18 Mike Stump <mrs@apple.com>
3861
3862 Fix up vla, vm and [*] sematics.
3863
3864 PR c/18740
3865 PR c/7948
3866 PR c/25802
3867 PR c/27673
3868 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
3869 (c_vla_unspec_p): Add.
3870 (c_vla_type_p): Add.
3871 * c-decl.c (struct c_scope): Add had_vla_unspec.
3872 (build_array_declarator): Add support for [*].
3873 (grokdeclarator): Likewise.
3874 (grokparms): Likewise.
3875 (get_parm_info): Likewise.
3876 * c-objc-common.c (c_vla_unspec_p): Likewise.
3877 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3878 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3879 typeof when argument is a variably modified type not inside sizeof or alignof.
3880 (c_parser_direct_declarator_inner): Propagate errors.
3881 (c_parser_sizeof_expression): Add support for [*].
3882 (c_parser_parms_declarator): Initialize had_vla_unspec.
3883 (c_parser_parms_list_declarator): Likewise.
3884 * c-typeck.c (c_vla_type_p): Add.
3885 (composite_type): Add support for vla compositing.
3886 (comptypes_internal): Add support for vla compatibility.
3887 (c_expr_sizeof_expr): Evaluate vla arguments.
3888 * tree.c (variably_modified_type_p): Update comment for [*].
3889
3890 2006-05-18 Michael Matz <matz@suse.de>
3891
3892 PR target/27599
3893 * config.host: Make assignments to host_xmake_file cumulative.
3894 * config.host (*-darwin*): Test $host, not $target.
3895
3896 2006-05-12 Stuart Hastings <stuart@apple.com>
3897
3898 * config/i386/i386.opt (-mstackrealign): New flag.
3899 * config/i386/i386.c (force_align_arg_pointer): New attribute.
3900 (ix86_handle_cconv_attribute): Emit error when
3901 force_align_arg_pointer attribute collides with too many regparms.
3902 (ix86_function_regparm): Limit regparms when used with
3903 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
3904 Support stack-realigning prologue in non-main functions. Emit
3905 warning for nested functions under -mstackrealign, emit error for
3906 nested functions with force_align_arg_pointer attribute.
3907 * doc/extend.texi (force_align_arg_pointer): Document it.
3908 * doc/invoke.texi (-mstackrealign): Document it.
3909
3910 2006-05-17 Kazu Hirata <kazu@codesourcery.com>
3911
3912 PR rtl-optimization/27477
3913 * combine.c (try_combine): Don't split a parallel consisting
3914 of two sets into two individual sets if both sets reference
3915 cc0.
3916
3917 2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
3918
3919 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
3920 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
3921
3922 * doc/options.texi (VarExists): Updated.
3923
3924 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3925
3926 * unwind-dw2.c: Add declarations for uw_update_context and
3927 uw_frame_state_for.
3928 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
3929 detected, advance frame state and context once to skip over stub.
3930
3931 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3932
3933 PR middle-end/20256
3934 PR middle-end/26435
3935 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
3936 Call rewrite_into_loop_closed_ssa only when something changed.
3937 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
3938 * lambda-code.c (can_convert_to_perfect_nest): Declared.
3939 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
3940 Test for perfect_nest_p here. Fix formating.
3941 (replace_uses_equiv_to_x_with_y): Fix formating.
3942 (stmt_uses_op): Removed.
3943 (can_convert_to_perfect_nest): Removed loopivs parameter.
3944 Complete the test by checking the scalar dependences.
3945 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
3946 Fix formating.
3947
3948 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
3949
3950 PR bootstrap/22541
3951 From Dan Kegel <dank@kegel.com>:
3952 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
3953
3954 2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
3955
3956 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
3957 if the element type is variably modified without recursing.
3958
3959 2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
3960
3961 PR middle-end/27332
3962 * tree-loop-linear.c (try_interchange_loops): Test for
3963 no data dependences.
3964
3965 2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
3966
3967 PR tree-optimization/27548
3968 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
3969 range of ssa names that appear on abnormal edges.
3970 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
3971 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
3972
3973 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
3974
3975 PR middle-end/27620
3976 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
3977
3978 2006-05-17 Jakub Jelinek <jakub@redhat.com>
3979
3980 PR middle-end/27415
3981 * tree.h (OMP_PARALLEL_COMBINED): Define.
3982 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
3983 (new_omp_context): Add is_combined_parallel argument.
3984 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
3985 new_omp_context caller.
3986 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3987 Adjust gimplify_scan_omp_clauses callers.
3988 (omp_is_private): Issue errors if iteration variable is firstprivate
3989 or reduction in the current context.
3990 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
3991 on combined parallel workshare constructs.
3992
3993 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3994
3995 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
3996 (gcc-options.o): New rule.
3997
3998 * optc-gen.awk: Protect variables for gcc-options.o with
3999 #ifdef GCC_DRIVER/#endif.
4000
4001 2006-05-16 Daniel Berlin <dberlin@dberlin.org>
4002
4003 Fix PR tree-optimization/27373
4004 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
4005 (forward_propagate_addr_expr): Update call.
4006
4007 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4008
4009 * doc/options.texi: Move the Negative option.
4010
4011 2006-05-16 Richard Guenther <rguenther@suse.de>
4012
4013 PR tree-optimization/22303
4014 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
4015 from STRING_CSTs.
4016 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
4017 ccp_fold did not simplify the statement.
4018
4019 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4020
4021 PR driver/26885
4022 * Makefile.in (GCC_OBJS): New.
4023 (OBJS-common): Add opts-common.o.
4024 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
4025 (cpp$(exeext)): Likewise.
4026 (gcc.o): Also depend on opts.h.
4027 (opts-common.o): New.
4028
4029 * common.opt (gcoff): Add Negative(gdwarf-2).
4030 (gdwarf-2): Add Negative(gstabs).
4031 (gstabs): Add Negative(gstabs+).
4032 (gstabs+): Add Negative(gvms).
4033 (gvms): Add Negative(gxcoff).
4034 (gxcoff): Add Negative(gxcoff+).
4035 (gxcoff+): Add Negative(gcoff).
4036 * config/i386/i386.opt (m32): Add Negative(m64).
4037 (m64): Add Negative(m32).
4038
4039 * doc/options.texi: Document the Negative option.
4040
4041 * gcc.c: Include "opts.h".
4042 (main): Call prune_options after expandargv.
4043
4044 * optc-gen.awk: Generate common declarations for all flag
4045 variables in options.c. Output the neg_index field.
4046
4047 * opts.c (find_opt): Moved to ...
4048 * opts-common.c: Here. New file.
4049
4050 * opts.h (cl_option): Add a neg_index field.
4051 (find_opt): New.
4052 (prune_options): Likewise.
4053
4054 2006-05-16 Jakub Jelinek <jakub@redhat.com>
4055
4056 PR middle-end/27573
4057 * omp-low.c (expand_omp_parallel): Don't assert
4058 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
4059 instead search for it.
4060
4061 PR c/27499
4062 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
4063 is signed.
4064
4065 2006-05-16 Andreas Schwab <schwab@suse.de>
4066
4067 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
4068 defmac.
4069
4070 2006-05-15 Roger Sayle <roger@eyesopen.com>
4071
4072 PR target/26600
4073 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
4074 integer constants other than zero are only legitimate on TARGET_64BIT.
4075 <CONST_VECTOR> Only zero vectors are legitimate.
4076 (ix86_cannot_force_const_mem): Integral and vector constants can
4077 always be put in the constant pool.
4078
4079 2006-05-16 DJ Delorie <dj@redhat.com>
4080
4081 * crtstuff.c (__dso_handle): Set section from
4082 TARGET_LBIGCC_SDATA_SECTION if defined.
4083 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
4084 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
4085
4086 2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
4087
4088 PR target/27599
4089 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
4090 host_xmake_file.
4091
4092 2006-05-16 Ben Elliston <bje@au.ibm.com>
4093
4094 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
4095
4096 2006-05-15 Per Bothner <per@bothner.com>
4097
4098 * tree.c: (last_annotated_node): Use source_locus typedef.
4099 This permits bootstrapping with --enable-mapped-location.
4100
4101 2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
4102
4103 PR tree-optimization/26830
4104 * tree-into-ssa.c (struct ssa_name_info): Add age field.
4105 (info_for_ssa_name, current_info_for_ssa_name_age,
4106 blocks_to_update): New variables.
4107 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
4108 (clear_ssa_name_info, initialize_flags_in_bb,
4109 mark_block_for_update): New functions.
4110 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
4111 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
4112 prepare_def_site_for): Use mark_block_for_update.
4113 (mark_def_interesting): Assert that the processed block is marked in
4114 blocks_to_update. Do not take blocks argument.
4115 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
4116 argument.
4117 (rewrite_update_init_block, rewrite_update_stmt): Only process
4118 blocks with statements to rewrite.
4119 (delete_update_ssa): Do not clear SSA_NAME_AUX.
4120 (update_ssa): Initialize and free blocks_to_update. Do not
4121 clear flags on statements. Do not use blocks bitmap.
4122 * tree.h (SSA_NAME_AUX): Removed.
4123 (struct tree_ssa_name): Removed aux field.
4124 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
4125
4126 2006-05-15 Richard Guenther <rguenther@suse.de>
4127
4128 PR tree-optimization/27603
4129 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4130 Do computations in original type.
4131
4132 2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
4133
4134 * see.c: Code style changes such as redundant paranthesis,
4135 redundant intialization of local variables etc.
4136 (see_main): Declared now as static.
4137 * doc/invoke.texi: Update that -fsee is not enabled by
4138 default at -O3.
4139
4140 2006-05-15 Jakub Jelinek <jakub@redhat.com>
4141
4142 * omp-low.c (check_omp_nesting_restrictions): New function.
4143 (scan_omp_1): Call it.
4144
4145 PR middle-end/27416
4146 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
4147 construct, return *VAR.
4148
4149 2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
4150
4151 PR rtl-optimization/27406
4152 * bt-load.c (migrate_btr_def): Skip the block having abnormal
4153 edges.
4154
4155 2006-05-14 Roger Sayle <roger@eyesopen.com>
4156
4157 PR rtl-optimization/27538
4158 * combine.c (expand_compound_operation): Call gen_lowpart
4159 before calling simplify_shift_const.
4160
4161 2006-05-14 Roger Sayle <roger@eyesopen.com>
4162
4163 PR rtl-optimization/22563
4164 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
4165 a fixed width bitfield, always force the intermediates into psuedos.
4166
4167 2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
4168
4169 PR 27501
4170 * mkconfig.sh: Use operator = instead of == for test.
4171
4172 2006-05-13 Nick Clifton <nickc@redhat.com>
4173
4174 * dwarf2out.c (dbx_reg_number): Check return value from
4175 LEAF_REG_REMAP and only use it if it is valid.
4176 (multiple_reg_loc_descriptor): Likewise.
4177
4178 2006-05-13 Richard Guenther <rguenther@suse.de>
4179
4180 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
4181 host_xmake_file.
4182
4183 2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
4184
4185 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
4186 information attached to non-INSNs such as NOTEs.
4187 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
4188
4189 2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
4190
4191 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
4192 On contraint.
4193 * config/s390/s390.md: Adjust comment describing On constraint.
4194
4195 2006-05-11 Jan Hubicka <jh@suse.cz>
4196
4197 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
4198 to be output at -O0.
4199
4200 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4201
4202 PR middle-end/27384
4203 * fold-const.c (size_binop): Move sanity check for arguments to
4204 the beginning of the function.
4205
4206 PR middle-end/27488
4207 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
4208 expression.
4209
4210 2006-05-11 Richard Guenther <rguenther@suse.de>
4211
4212 PR middle-end/27529
4213 * fold-const.c (fold_unary): Handle intermediate conversion
4214 to a pointer type like intermediate conversion to an integer
4215 type in folding of (T1)(T2)var to var.
4216 Match the code to the comment in the final conversion for
4217 (T1)(T2)var to (T1)var regarding to type precision. Rather
4218 than disallow T1 being of pointer type, assert that both T1
4219 and var are of pointer type or not. Make sure not to fall
4220 over the frontends lazyness wrt array to pointer decay though.
4221
4222 2006-05-10 Richard Earnshaw <rearnsha@arm.com>
4223
4224 * arm.c (arm_struct_value_rtx): Delete.
4225 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
4226 (arm_init_cumulative_args): Always initialize nregs to zero.
4227
4228 2006-05-10 Richard Guenther <rguenther@suse.de>
4229
4230 PR tree-optimization/27532
4231 * tree-object-size.c (plus_expr_object_size): Fix typo.
4232
4233 2006-05-10 Kazu Hirata <kazu@codesourcery.com>
4234
4235 PR target/24949
4236 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
4237 ashrdi_const, ashrdi3): Use a scratch register.
4238
4239 2006-05-10 Richard Guenther <rguenther@suse.de>
4240
4241 PR tree-optimization/27302
4242 * fold-const.c (operand_equal_p): For two comparisons,
4243 try comparison of one comparison code swapped if that yields
4244 the same code.
4245
4246 2006-05-10 Ben Elliston <bje@au.ibm.com>
4247
4248 * tree-pretty-print.c (pretty_print_string): No need to handle
4249 '\0' as a special character.
4250
4251 * tree.h: Include "hashtab.h".
4252 (iterative_hash_expr): Use hashval_t in its prototype.
4253 * Makefile.in (TREE_H): Add $(HASHTAB_H).
4254
4255 2006-05-09 Steve Ellcey <sje@cup.hp.com>
4256
4257 PR bootstrap/26872
4258 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
4259 (hppa*64*-*-hpux11*): Ditto.
4260 (hppa[12]*-*-hpux11*): Ditto.
4261
4262 2006-05-09 David Edelsohn <edelsohn@gnu.org>
4263
4264 PR target/26545
4265 * config/rs6000/aix41.h (TARGET_64BIT): Define.
4266
4267 2006-05-09 Michael Matz <matz@suse.de>
4268
4269 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
4270 host_extra_gcc_objs and host_xmake_file.
4271 (<*-*-linux*>): Don't overwrite host_xmake_file.
4272 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
4273 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
4274 (host_detect_local_cpu): Declare.
4275 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
4276 * config/i386/i386.c (override_options): Handle -mtune=native
4277 as -mtune=generic.
4278 * config/i386/x-i386: New file.
4279 * config/i386/driver-i386.c: New file.
4280 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
4281 cpu-type "native".
4282
4283 2006-05-09 Dirk Mueller <dmueller@suse.de>
4284 Richard Guenther <rguenther@suse.de>
4285
4286 PR middle-end/27498
4287 * fold-const.c (fold_read_from_constant_string): Relax check
4288 for matching types to matching modes.
4289
4290 2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
4291
4292 PR rtl-optimization/27335
4293 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
4294 loops.
4295
4296 2006-05-08 Chao-ying Fu <fu@mips.com>
4297 Richard Sandiford <richard@codesourcery.com>
4298
4299 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
4300 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
4301 * config/mips/mips.md (UNSPEC_SCC): New constant.
4302 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
4303 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4304 (mips_emit_compare): Use it.
4305 (mips_expand_vcondv2sf): New function.
4306
4307 2006-05-08 Daniel Berlin <dberlin@dberlin.org>
4308
4309 Fix PR tree-optimization/27093
4310 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
4311 renaming when they become not-used_alone.
4312
4313 2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4314
4315 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4316 relocation and relocation stubs.
4317
4318 2006-05-08 Eric Christopher <echristo@apple.com>
4319
4320 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4321 section for ppc.
4322
4323 2006-05-08 Jan Hubicka <jh@suse.cz>
4324
4325 PR middle-end/24561
4326 * cgraphunit.c (decide_is_function_needed): When not optimizing even
4327 unused static functions are needed.
4328
4329 2006-05-08 Roger Sayle <roger@eyesopen.com>
4330
4331 PR target/27158
4332 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
4333 of a reg_equiv_constant if the result is a legitimate constant.
4334
4335 2006-05-08 Uros Bizjak <uros@kss-loka.si>
4336
4337 PR target/27277
4338 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
4339 standard 80387 constants, raise the cost to prevent
4340 compress_float_constant() to generate load from memory.
4341
4342 2006-05-08 Kazu Hirata <kazu@codesourcery.com>
4343
4344 * config/arm/constraints.md (c): Fix a typo.
4345
4346 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
4347 typos.
4348
4349 2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
4350
4351 PR target/24879
4352 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
4353 inline function.
4354 (_mm_mwait): Likewise.
4355
4356 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
4357 "mwait".
4358 (sse3_monitor): Make it 32bit only.
4359 (sse3_monitor64): New. 64bit monitor.
4360
4361 2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4362
4363 PR target/27421
4364 * config/i386/i386.c (classify_argument): Skip fields with invalid
4365 types.
4366
4367 2006-05-07 Richard Guenther <rguenther@suse.de>
4368
4369 PR tree-optimization/27409
4370 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4371 Do not try to find zero-sized subvars.
4372
4373 2006-05-07 Richard Guenther <rguenther@suse.de>
4374
4375 PR tree-optimization/27136
4376 * tree-ssa-loop-niter.c (get_val_for): Correct function
4377 comment, assert requirements.
4378 (loop_niter_by_eval): Stop processing if the iterated
4379 value did not simplify.
4380
4381 2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
4382
4383 * opts.c (flag_see): remove its setting at -O3.
4384
4385 2006-05-07 Richard Earnshaw <rearnsha@arm.com>
4386
4387 * genpeep.c (main): Make insn-peep.c depend on flags.h.
4388 * arm/constraints.md: New file.
4389 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
4390 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
4391 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
4392 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
4393 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
4394 (EXTRA_MEMORY_CONSTRAINT): Likewise.
4395 * arm.md: Include constraints.md.
4396 (thumb_movsi_insn): Use satisfies_constraint_J.
4397 (movhi, movqi): Use satisfies_constraint_I.
4398
4399 2006-04-29 Anatoly Sokolov <aesok@post.ru>
4400
4401 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
4402 for atmeg a645 device.
4403
4404 2006-05-06 Richard Guenther <rguenther@suse.de>
4405
4406 PR tree-optimization/27151
4407 * tree-vect-transform.c (vectorizable_condition): Punt on
4408 values that have a different type than the condition.
4409
4410 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
4411
4412 PR/21391
4413 * c-parser.c (c_parser_cast_expression): Only insert casts into
4414 hash table if pointer.
4415 * function.c (used_types_insert_helper): Rename from
4416 used_types_insert.
4417 (used_types_insert): Call used_types_insert_helper.
4418 * function.h (used_types_insert): Accept only one argument.
4419
4420 2006-05-05 David Edelsohn <edesohn@gnu.org>
4421
4422 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4423 scratch with output modifier.
4424
4425 2006-05-04 David Edelsohn <edelsohn@gnu.org>
4426
4427 PR target/26481
4428 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4429 with output modifier.
4430
4431 2006-05-04 Richard Sandiford <richard@codesourcery.com>
4432
4433 PR target/26765
4434 * config/mips/mips.c (mips_symbolic_address_p): Return true
4435 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4436 SYMBOL_GOTTPREL, and SYMBOL_TLS.
4437
4438 2006-05-04 Richard Guenther <rguenther@suse.de>
4439
4440 PR tree-optimization/14287
4441 PR tree-optimization/14844
4442 PR tree-optimization/19792
4443 PR tree-optimization/21608
4444 PR tree-optimization/27090
4445 * tree-ssa-pre.c (try_combine_conversion): New function.
4446 (compute_avail): After constructing the value-handle
4447 expression, use try_combine_conversion to combine NOP_EXPRs
4448 with previous value-handle expressions and use the result if it
4449 is available.
4450
4451 2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
4452
4453 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4454
4455 2006-05-04 Jan Hubicka <jh@suse.cz>
4456
4457 PR middle-end/25962
4458 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4459
4460 2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
4461
4462 * config/bfin/predicates.md (const01_rtx): Tell generator programs
4463 that this only matches CONST_INTs. All users changed to VOIDmode
4464 operands.
4465
4466 * config/bfin/bfin.c: Include "optabs.h".
4467 (bfin_rtx_costs): Some costs for vector operations, to allow combine
4468 to do more work.
4469 (enum bfin_builtins): Add a number of fractional and vector builtins.
4470 (bfin_init_builtins): Likewise.
4471 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4472 (safe_vector_operand, bfin_expand_binop_builtin,
4473 bfin_expand_unop_builtin): New functions.
4474 (bfin_expand_builtin): Handle the new builtins.
4475 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4476 __ADSPBLACKFIN__.
4477
4478 2006-05-04 Leehod Baruch <leehod@il.ibm.com>
4479
4480 * see.c: New file.
4481 * Makefile.in (OBJS-common): Add see.o.
4482 (see.o): Add dependencies.
4483 * common.opt (fsee): New flag for the see optimization was added.
4484 * opts.c (flag_see): Initialized.
4485 * passes.c (init_optimization_passes, pass_see): New pass.
4486 * rtl.h (see_main): Declaration as extern.
4487 * timevar.def (TV_SEE): New.
4488 * tree-pass.h (pass_see): Declaration as extern.
4489 * invoke.texi (-fsee): Document.
4490 * recog.c (validate_simplify_insn): New function.
4491 * recog.h (validate_simplify_insn): Declaration as extern.
4492 * df-problems.c (df_chain_dump): Check for NULL.
4493
4494 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
4495 Daniel Berlin <dberlin@dberlin.org>
4496
4497 * cfgrtl.c (insert_insn_bb_end_new): New function.
4498 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4499
4500 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
4501
4502 * df.h (struct web_entry): Moved from web.c.
4503 (union_defs): Declaration as extern.
4504 (unionfind_root): Likewise.
4505 (unionfind_union): Likewise.
4506 * web.c (struct web_entry): Moved to df.h.
4507 (unionfind_root): Remove static declaration.
4508 (unionfind_union): Likewise.
4509 (union_defs): Likewise and generalize to use callback function.
4510 (web_main): Update arguments for union_defs function call.
4511
4512 2006-05-04 Richard Guenther <rguenther@suse.de>
4513
4514 PR tree-optimization/26447
4515 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4516 produce SSA_NAME copies before the store stmt to avoid
4517 breaking exception handling.
4518
4519 2006-05-04 Jakub Jelinek <jakub@redhat.com>
4520
4521 PR middle-end/27388
4522 * gimplify.c (omp_is_private): If var is shared in some outer context,
4523 return false instead of true. Stop searching on parallel context
4524 boundary.
4525
4526 2006-05-03 Alexandre Oliva <aoliva@redhat.com>
4527
4528 PR java/8260
4529 * coverage.c: Use get_gcov_unsigned_t() instead of
4530 unsigned_type_node all over.
4531
4532 2006-05-02 Andrew MacLeod <amacleod@redhat.com>
4533
4534 PR tree-optimization/27381
4535 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4536 maintain the same immediate_use links.
4537 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4538 node rather than segfaulting.
4539
4540 2006-05-03 Jakub Jelinek <jakub@redhat.com>
4541
4542 PR fortran/27395
4543 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4544 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
4545 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4546
4547 2006-05-02 Daniel Berlin <dberlin@dberlin.org>
4548
4549 Fix PR tree-optimization/26626
4550 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4551 always.
4552 * tree-ssa-operands.c (access_can_touch_variable): Allow
4553 typecasting through union pointers.
4554
4555 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4556
4557 PR c++/26943
4558 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4559 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4560 to find if var will be a global variable even in the nested context.
4561 (omp_copy_decl): Only check for global variable at the end, it might
4562 be overridden in outer contexts.
4563 (scan_sharing_clauses): For global variables don't create a field.
4564 (lower_rec_input_clauses): Do nothing for global shared variables.
4565 Emit a barrier at the end of ILIST if there were any decls in both
4566 firstprivate and lastprivate clauses.
4567 (lower_send_clauses): Do nothing for global variables except for
4568 COPYIN.
4569
4570 2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
4571
4572 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4573 of the correct signedness is returned.
4574
4575 2006-05-02 Jeff Law <law@redhat.com>
4576
4577 PR tree-optimization/27364
4578 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4579 multiply expressions.
4580
4581 2006-05-02 Tom Tromey <tromey@redhat.com>
4582
4583 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4584
4585 2006-05-02 Kazu Hirata <kazu@codesourcery.com>
4586
4587 PR target/27387
4588 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4589 -mthumb -fPIC are used.
4590
4591 2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
4592 Joshua Kinard <kumba@gentoo.org>
4593
4594 PR target/25871
4595 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4596 with 64-bit pointers.
4597
4598 2006-05-02 Paul Brook <paul@codesourcery.com>
4599
4600 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4601 and pool overlap.
4602 (create_fix_barrier): Check that a suitable barrier location is
4603 found.
4604 (arm_reorg): Include ftmp->address in allowable range of addresses.
4605
4606 2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
4607
4608 PR ada/27366
4609 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4610 on Cygwin.
4611
4612 2006-05-02 Jakub Jelinek <jakub@redhat.com>
4613
4614 PR middle-end/27337
4615 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4616 around RESULT_DECL for result passed by reference.
4617 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4618 * omp-low.c (use_pointer_for_field): Don't look at
4619 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4620 (scan_omp_1): Call remap_decl on RESULT_DECLs.
4621 (lower_rec_input_clauses): Don't allocate VLA memory for the second
4622 time or var for passing by reference for
4623 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
4624 TREE_ADDRESSABLE variables when passing by reference.
4625
4626 * omp-low.c (dump_omp_region): Fix output formatting.
4627
4628 PR middle-end/27328
4629 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4630 (expand_omp_parallel): Likewise.
4631 * tree-cfg.c (move_sese_region_to_fn): Likewise.
4632
4633 PR middle-end/27325
4634 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4635 on statement list containing also constructors and destructors.
4636 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4637
4638 PR middle-end/27310
4639 * except.c (duplicate_eh_regions): Fix clearing of
4640 cfun->eh->region_array entries.
4641
4642 2006-05-01 DJ Delorie <dj@redhat.com>
4643
4644 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4645 build!=host.
4646 (gcc_cv_objdump): Likewise.
4647 * configure: Regenerated.
4648
4649 2006-05-01 Kazu Hirata <kazu@codesourcery.com>
4650
4651 PR target/27374
4652 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4653 templates for case 3 and 4.
4654
4655 2006-05-01 DJ Delorie <dj@redhat.com>
4656
4657 * vec.c: Include bconfig.h when appropriate.
4658 * Makefile.in (build/vec.o): Adjust dependencies.
4659 * mkconfig.sh: Make sure config.h isn't used for build machine
4660 compiles.
4661
4662 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4663
4664 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4665 variables.
4666 (mark_phi_for_rewrite): New function.
4667 (insert_phi_nodes_for, mark_use_interesting): Call
4668 mark_phi_for_rewrite.
4669 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4670 (update_ssa): Initialize and free phis_to_rewrite.
4671
4672 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4673
4674 PR rtl-optimization/27291
4675 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4676 folded to a constant.
4677
4678 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4679
4680 PR tree-optimization/27283
4681 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4682 not whole # of iteration descriptions.
4683 (niter_for_exit): Return just # of iterations. Fail if # of iterations
4684 uses abnormal ssa name.
4685 (niter_for_single_dom_exit): Ditto.
4686 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4687 return just the number of iterations.
4688
4689 2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
4690
4691 PR tree-optimization/27144
4692 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4693 (record_estimate): Only record constant upper bound.
4694 (infer_loop_bounds_from_undefined): Call
4695 compute_estimated_nb_iterations just once.
4696 (proved_non_wrapping_p): Renamed to ...
4697 (n_of_executions_at_most): ... this. Expect bound to be a constant.
4698 (convert_step_widening, scev_probably_wraps_p): Call
4699 n_of_executions_at_most instead of proved_non_wrapping_p.
4700 (substitute_in_loop_info): Do not replace values in bounds.
4701 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
4702 comments.
4703
4704 2006-05-01 Richard Henderson <rth@redhat.com>
4705
4706 PR c/27358
4707 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4708 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
4709 CPP_PRAGMA.
4710
4711 2006-05-01 Roger Sayle <roger@eyesopen.com>
4712
4713 * c-typeck.c (parser_build_binary_op): Don't call the function
4714 unsigned_conversion_warning to spot operand/result type overflow.
4715 (build_binary_op): Instead, call convert_and_check instead of
4716 convert to report the problem when the operands are promoted.
4717 * c-common.c (unsigned_conversion_warning): Make static.
4718 * c-common.h (unsigned_conversion_warning): Delete prototype.
4719
4720 2006-05-01 Richard Guenther <rguenther@suse.de>
4721
4722 PR tree-optimization/26726
4723 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4724 problem ...
4725 (find_interesting_uses_address): ... we work around here
4726 by folding INDIRECT_REFs in the substituted base.
4727
4728 2006-05-01 Diego Novillo <dnovillo@redhat.com>
4729
4730 * omp-low.c (dump_omp_region): Add newlines.
4731
4732 2006-04-30 Roger Sayle <roger@eyesopen.com>
4733
4734 * common.opt (Woverflow): New command line option.
4735 * c-common.c (constant_expression_warning): Check warn_overflow.
4736 (overflow_waring): Pass OPT_Woverflow to warning.
4737 (unsigned_conversion_warning): Likewise.
4738 (convert_and_check): Likewise.
4739 * doc/invoke.texi: Document new command line option.
4740
4741 2006-04-30 David Edelsohn <edelsohn@gnu.org>
4742
4743 * config/rs6000/rs6000.c (rs6000_override_options): Enable
4744 TARGET_NO_FP_IN_TOC for section anchors.
4745 (optimization_options): Enable section anchors for all
4746 non-"Objective" languages.
4747
4748 2006-04-28 Eric Christopher <echristo@apple.com>
4749
4750 * config/darwin-c.c (darwin_ms_struct): Move this
4751 (darwin_set_default_type_attributes): and this...
4752 * config/darwin.c: ... here.
4753 * config/darwin.h (darwin_ms_struct): Declare.
4754
4755 2006-04-28 Andrew MacLeod <amacleod@redhat.com>
4756
4757 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
4758
4759 2006-04-28 Roger Sayle <roger@eyesopen.com>
4760
4761 PR c/25309
4762 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
4763 (push_array_bounds): Delete prototype. Change BOUNDS argument to
4764 an unsigned HOST_WIDE_INT.
4765 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
4766 array index.
4767 (really_start_incremental_init): No need to call convert because
4768 bitsize_zero_node is already of type bitsizetype.
4769 (push_init_level): Extract the value of constructor_index as an
4770 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
4771 (process_init_element): Likewise.
4772
4773 2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
4774
4775 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
4776 value before passing to make_relative_prefix.
4777
4778 2006-04-28 Alan Modra <amodra@bigpond.net.au>
4779
4780 PR middle-end/27260
4781 * builtins.c (expand_builtin_memset): Expand val in original mode.
4782
4783 2006-04-27 Eric Christopher <echristo@apple.com>
4784
4785 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
4786 with #ifndef/#endif.
4787 * config/darwin-c.c (darwin_ms_struct): New.
4788 (darwin_pragma_ms_struct): Ditto.
4789 (darwin_set_default_type_attributes): Ditto.
4790 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
4791 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
4792 Register ms_struct pragma.
4793 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
4794 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
4795 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
4796 darwin_set_default_type_attributes if TARGET_MACHO.
4797
4798 2006-04-27 Andrew MacLeod <amacleod@redhat.com>
4799
4800 PR tree-optimization/26854
4801 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
4802 * doc/tree-ssa.texi: Update immuse iterator documentation.
4803 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
4804 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
4805 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
4806 first_safe_imm_use, next_safe_imm_use): Remove.
4807 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
4808 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
4809 (move_use_after_head): New. Helper function to sort immuses in a stmt.
4810 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
4811 (first_imm_use_stmt): New. Get first stmt in an immuse list.
4812 (next_imm_use_stmt): New. Get next stmt in an immuse list.
4813 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
4814 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
4815 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
4816 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
4817 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
4818 (perfect_nestify): Use new iterator.
4819 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
4820 iterator.
4821 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
4822 (next_imm_name): New field in struct immediate_use_iterator_d.
4823 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
4824 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
4825 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
4826 * tree-cfg.c (replace_uses_by): Use new iterator.
4827 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
4828 * tree-ssa-operands.c (correct_use_link): Remove.
4829 (finalize_ssa_use_ops): No longer call correct_use_link.
4830
4831 2006-04-27 Stuart Hastings <stuart@apple.com>
4832
4833 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
4834 * config/t-darwin (crt3.o): Use it.
4835 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
4836 'pmode', use Pmode instead of SImode for SYMBOL_REF.
4837 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
4838 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
4839 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
4840 support.
4841
4842 2006-04-27 Roger Sayle <roger@eyesopen.com>
4843
4844 * expmed.c (store_fixed_bit_field): If we're not optimizing for
4845 size, force the intermediate into a new pseudo rather instead of
4846 performing both a bitwise AND and a bitwise IOR in memory.
4847
4848 2006-04-27 Richard Guenther <rguenther@suse.de>
4849
4850 PR rtl-optimization/26685
4851 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
4852 this one "max-flow-memory-locations".
4853
4854 2006-04-27 Richard Guenther <rguenther@suse.de>
4855
4856 PR tree-optimization/25148
4857 * tree-vrp.c (compare_values): Remove code dealing with
4858 comparisons against type min/max value. Honour overflow
4859 and negative constants in code dealing with comparisons
4860 of plus and minus expressions.
4861 (value_inside_range): Use fold_binary with LE_EXPR and
4862 GE_EXPR rather than compare_values.
4863
4864 2006-04-27 Dirk Mueller <dmueller@suse.de>
4865
4866 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
4867 prototype for SSE.
4868
4869 2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4870
4871 * basic-block.h (safe_insert_insn_on_edge): Removed.
4872 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
4873
4874 2006-04-26 David Edelsohn <edelsohn@gnu.org>
4875 Paolo Bonzini <bonzini@gnu.org>
4876
4877 PR middle-end/27282
4878 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
4879 (simplify_and_const_int): Same.
4880
4881 2006-04-26 Aldy Hernandez <aldyh@redhat.com>
4882
4883 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
4884
4885 2006-04-26 Jakub Jelinek <jakub@redhat.com>
4886
4887 PR c/26171
4888 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
4889 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
4890 cgraph_global_info_ready.
4891
4892 PR middle-end/26913
4893 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
4894
4895 PR c/25996
4896 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
4897 either decl or init is error_mark_node.
4898
4899 PR middle-end/25989
4900 * tree-flow.h (struct omp_region): Add sched_kind.
4901 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
4902 instead of extracting omp for data.
4903 (expand_omp_for): Save extracted sched_kind.
4904
4905 2006-04-25 Roger Sayle <roger@eyesopen.com>
4906
4907 * expmed.c (store_bit_field): Also check whether the bitsize is
4908 valid for the machine's "insv" instruction before moving the
4909 target into a pseudo for use with the insv.
4910 * config/i386/predicates.md (const8_operand): New predicate.
4911 * config/i386/i386.md (extv, extzv, insv): Use the new
4912 const8_operand predicate where appropriate.
4913
4914 2006-04-25 DJ Delorie <dj@redhat.com>
4915
4916 * doc/install.texi (Specific): Clarify that this is not a list of
4917 supported hosts or targets.
4918
4919 2006-04-25 Richard Sandiford <richard@codesourcery.com>
4920
4921 PR rtl-optimization/26725
4922 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
4923 block's BB_DIRTY flag.
4924
4925 2006-04-25 Geoffrey Keating <geoffk@apple.com>
4926
4927 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
4928 are no branches.
4929
4930 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
4931 to print an integer.
4932
4933 2006-04-25 David Edelsohn <edelsohn@gnu.org>
4934
4935 * varasm.c (align_variable): New function.
4936 (get_block_for_decl): Apply align_variable to DECL before
4937 calculating section information.
4938 (assemble_variable): Split out alignment computation.
4939
4940 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
4941
4942 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
4943 machines.
4944
4945 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
4946
4947 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
4948 MODE_PARTIAL_INT mode.
4949 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
4950 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
4951 for CONST_INTs.
4952 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
4953 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
4954 V2PDImode.
4955 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
4956 New predicates.
4957 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
4958 New constants.
4959 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
4960 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
4961 MACFLAG_IH): Likewise.
4962 (movstricthi_1): Renamed from "*movstricthi".
4963 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
4964 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
4965 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
4966 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
4967 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
4968 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
4969 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
4970 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
4971 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
4972 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
4973 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
4974 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
4975 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
4976 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
4977 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
4978
4979 * doc/rtl.texi (ss_ashift): Improve wording.
4980
4981 2006-04-24 Geoffrey Keating <geoffk@apple.com>
4982
4983 * dwarf2out.c (verify_marks_clear): New.
4984 (prune_unused_types): Call verify_marks_clear initially, not
4985 prune_unmark_dies.
4986
4987 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4988
4989 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
4990 * doc/rtl.texi: Document them.
4991 * simplify-rtx.c (simplify_unary_operation,
4992 simplify_binary_operation_1): Don't abort when we see them.
4993
4994 2006-04-24 Mark Mitchell <mark@codesourcery.com>
4995
4996 Revert:
4997 2006-04-23 Mark Mitchell <mark@codesourcery.com>
4998 * configure.ac: Completely disregard languages that are not
4999 enabled.
5000 * configure: Regenerated.
5001
5002 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5003 Richard Guenther <rguenther@suse.de>
5004
5005 PR tree-optimization/27236
5006 * tree-inline.c (copy_body_r): Make sure to copy
5007 TREE_THIS_VOLATILE flag.
5008
5009 2006-04-24 Richard Guenther <rguenther@suse.de>
5010
5011 PR middle-end/26869
5012 * tree-complex.c (update_parameter_components): Don't handle
5013 unused parameters which have no default def.
5014
5015 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5016 Richard Guenther <rguenther@suse.de>
5017
5018 PR tree-optimization/27218
5019 * tree-inline.c (expand_call_inline): Strip useless type
5020 conversions for the return slot address.
5021
5022 2006-04-24 Richard Guenther <rguenther@suse.de>
5023
5024 * cfgloop.h (struct loops): Remove unused field array. Reorder
5025 state after num.
5026 (LOOP_PREFETCH): Remove.
5027
5028 2006-04-24 Richard Guenther <rguenther@suse.de>
5029
5030 PR tree-optimization/22525
5031 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
5032 variable, adjust types of generated expressions.
5033
5034 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
5035
5036 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
5037 (tree-vect-patterns.o): Likewise.
5038 (jump.o): Likewise.
5039 (cselib.o): Likewise.
5040 (loop-doloop.o): Likewise.
5041 (regclass.o): Likewise.
5042 (reload1.o): Likewise.
5043 (explow.o): Replace target.h with $(TARGET_H).
5044 (ipa-prop.o): Likewise.
5045 (ipa-cp.o): Likewise.
5046 (ipa-inline.o): Likewise.
5047 (reorg.o): Likewise.
5048 (reg-stack.o): Likewise.
5049
5050 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5051
5052 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
5053
5054 2006-04-23 Mark Mitchell <mark@codesourcery.com>
5055
5056 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
5057
5058 * configure.ac: Completely disregard languages that are not
5059 enabled.
5060 * configure: Regenerated.
5061
5062 PR c++/26534
5063 * c-common.h (c_build_bitfield_integer_type): Declare.
5064 * c-decl.c (c_build_bitfield_integer_type): Move to ...
5065 * c-common.c (c_build_bitfield_integer_type): ... here.
5066
5067 2006-04-23 Roger Sayle <roger@eyesopen.com>
5068
5069 PR target/21283
5070 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
5071 a SImode SUBREG of a floating point register after no_new_pseudos.
5072
5073 2006-04-23 Roger Sayle <roger@eyesopen.com>
5074
5075 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
5076 identify potentially eliminable registers to additionally catch
5077 VIRTUAL_INCOMING_ARGS_REGNUM.
5078 (addsi3): Update the conditions on when to use addsi_small_int.
5079
5080 2006-04-23 Roger Sayle <roger@eyesopen.com>
5081
5082 PR target/16641
5083 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
5084 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
5085 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
5086
5087 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5088
5089 * fold-const.c (range_predecessor): Use operand_equal_p
5090 as the predicate for equality.
5091 (range_successor): Likewise.
5092
5093 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
5094
5095 Revert:
5096 * config/soft-fp/op-common.h: Fix a typo.
5097
5098 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
5099
5100 PR libmudflap/26864
5101 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
5102 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
5103
5104 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
5105
5106 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
5107 Fix comment typos.
5108 * doc/tm.texi: Fix a typo.
5109
5110 2006-04-21 Geoffrey Keating <geoffk@apple.com>
5111
5112 * dwarf2out.c (struct die_struct): Document that die_sib makes
5113 a circular linked list.
5114 (FOR_EACH_CHILD): New.
5115 (reverse_die_lists): Delete.
5116 (reverse_all_dies): Delete.
5117 (add_dwarf_attr): Correct documentation.
5118 (remove_child_with_prev): New.
5119 (remove_child_TAG): Update for change to die_struct, use
5120 remove_child_with_prev.
5121 (add_child_die): Update for change to die_struct.
5122 (splice_child_die): Use remove_child_with_prev and add_child_die.
5123 (print_die): Use FOR_EACH_CHILD.
5124 (die_checksum): Likewise.
5125 (assign_symbol_names): Likewise.
5126 (output_location_lists): Likewise.
5127 (build_abbrev_table): Likewise.
5128 (calc_die_sizes): Likewise.
5129 (mark_dies): Likewise.
5130 (unmark_dies): Likewise.
5131 (unmark_all_dies): Likewise.
5132 (output_die): Likewise.
5133 (prune_unused_types_mark): Likewise.
5134 (prune_unused_types_walk): Likewise.
5135 (same_die_p): Update for change to die_struct.
5136 (break_out_includes): Likewise.
5137 (prune_unused_types_prune): Likewise.
5138 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
5139 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
5140 it's already clear.
5141 (dwarf2out_finish): Don't call reverse_all_dies.
5142
5143 2006-04-21 Eric Christopher <echristo@apple.com>
5144
5145 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
5146 in comments and function names.
5147
5148 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5149
5150 PR c/25875
5151 * c-typeck.c (digest_init): Robustify.
5152
5153 * c-typeck.c (pop_init_level): Simplify.
5154
5155 2006-04-21 Steve Ellcey <sje@cup.hp.com>
5156
5157 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
5158
5159 2006-04-21 Paul Brook <paul@codesourcery.com>
5160
5161 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
5162 hardware floating point.
5163
5164 2006-04-21 David Edelsohn <edelsohn@gnu.org>
5165
5166 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
5167 NON_FLOAT_REGS.
5168
5169 2006-04-21 Nick Clifton <nickc@redhat.com>
5170
5171 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
5172 OPT_EXTRA_PARTS.
5173
5174 2006-04-21 Alan Modra <amodra@bigpond.net.au>
5175
5176 PR target/27230
5177 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
5178 C++ lang type in traceback table for Objective-C++.
5179
5180 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
5181
5182 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
5183
5184 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
5185
5186 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5187
5188 PR mudflap/26789
5189 * tree-mudflap.c (mudflap_finish_file): Skip function when there
5190 were errors. Remove check for erroneous objects.
5191
5192 2006-04-20 Jeff Law <law@redhat.com>
5193
5194 PR tree-optimization/26854
5195 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
5196 checking for zero or one use.
5197 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
5198 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
5199 * tree-ssa-reassoc.c (negate_value): Similarly.
5200 (reassociate_bb): Similarly.
5201
5202 2006-04-20 Jakub Jelinek <jakub@redhat.com>
5203
5204 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
5205 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
5206 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
5207
5208 2006-04-20 Alan Modra <amodra@bigpond.net.au>
5209
5210 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
5211 fp regs if the last fp arg doesn't fit in regs.
5212
5213 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
5214
5215 PR target/27182
5216 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
5217 that the last insn has the REG_INC note.
5218
5219 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
5220 Nathan Sidwell <nathan@codesourcery.com>
5221
5222 PR c/26774
5223 * stor-layout.c (update_alignment_for_field): Do not align
5224 ERROR_MARK nodes.
5225 (place_union_field): Place union field at the start of the union.
5226 (place_field): Move ERROR_MARK check later, and use the current
5227 allocation position to maintain monotonicity.
5228
5229 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
5230
5231 * dominance.c: Include timevar.h.
5232 (calculate_dominance_info): Use TV_DOMINANCE.
5233 * timevar.def (TV_DOMINANCE): New timevar.
5234 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
5235
5236 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5237
5238 PR rtl-optimization/14261
5239 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
5240 move would be an INSV insn.
5241 (noce_process_if_block): Don't optimize if the destination is a
5242 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
5243
5244 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5245
5246 * config/s390/s390.md: Add comments with the instructions emitted
5247 by an insn pattern if macros are used.
5248
5249 2006-04-19 Alan Modra <amodra@bigpond.net.au>
5250
5251 PR rtl-optimization/26026
5252 * fold-const.c (fold_binary): Optimize div and mod where the divisor
5253 is a known power of two shifted left a variable amount.
5254
5255 2006-04-18 Geoffrey Keating <geoffk@apple.com>
5256
5257 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
5258 to hash table twice when the debug_str section has SECTION_MERGE.
5259
5260 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
5261
5262 * config/soft-fp: New directory. From glibc.
5263 * config/soft-fp/t-softfp: New.
5264 * config/soft-fp/README: New.
5265 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
5266 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
5267 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
5268 (LIBGCC_DEPS): Add $(SFP_MACHINE).
5269 * config.gcc: Use rs6000/t-fprules-fpbit or
5270 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
5271 rs6000/t-fprules.
5272 * config/rs6000/sfp-machine.h: New. Based on glibc.
5273 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
5274 New.
5275 * config/rs6000/t-fprules: Remove fp-bit rules.
5276 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
5277 * config/rs6000/t-linux64: Likewise. Remove duplicates from
5278 LIB2FUNCS_EXTRA. Remove fp-bit rules.
5279 (softfp_wrap_start, softfp_wrap_end): New.
5280
5281 2006-04-18 DJ Delorie <dj@redhat.com>
5282
5283 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
5284
5285 2006-04-18 Devang Patel <dpatel@apple.com>
5286
5287 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
5288
5289 2006-04-18 Nick Clifton <nickc@redhat.com>
5290
5291 * config/sh/t-symbian: Add rule to build sh-c.o
5292 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
5293 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
5294 (sh_symbian_encode_section_info): Likewise.
5295
5296 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
5297
5298 * builtins.c (expand_builtin_strcmp): Cover label definition of
5299 do_libcall with HAVE_cmpstrnsi.
5300
5301 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
5302
5303 * function.c (temp_slots_at_level, max_slot_level): Use VEC
5304 instead of VARRAY.
5305 * function.h (temp_slot_p): New.
5306 (function): Change the type of x_used_temp_slots to
5307 VEC(temp_slot_p,gc) *.
5308
5309 2006-04-18 Nick Clifton <nickc@redhat.com>
5310
5311 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5312 flag_strength_reduce.
5313
5314 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5315
5316 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
5317
5318 PR target/27117
5319
5320 Partial revert of revision 112637
5321 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
5322 Dale Johannesen <dalej@apple.com>
5323
5324 PR target/19653
5325 * regclass.c (struct reg_pref): Update documentation.
5326 (regclass): Set prefclass to NO_REGS if memory is the best option.
5327 (record_reg_classes): Cope with a prefclass set to NO_REGS.
5328
5329 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
5330
5331 PR tree-optimization/26821
5332 * tree-ssa-math-opts.c (get_constant_one): New.
5333 (insert_reciprocals): Use it.
5334
5335 2006-04-17 Geoffrey Keating <geoffk@apple.com>
5336
5337 * dwarf2out.c (free_AT): Delete.
5338 (remove_AT): Update string ref counts.
5339 (remove_child_TAG): Don't call free_die.
5340 (free_die): Delete.
5341 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
5342 or DW_TAG_GNU_EINCL.
5343 (prune_unused_types_walk_attribs): Reset string refcounts.
5344 (prune_unused_types_update_strings): New.
5345 (prune_unused_types_prune): Don't make unnecessary stores. Don't
5346 call free_die. Do call prune_unused_types_update_strings.
5347 (prune_unused_types): Empty debug_str_hash.
5348
5349 2006-04-17 Roger Sayle <roger@eyesopen.com>
5350
5351 * expr.c (expand_assignment): Optimize away no-op moves where the
5352 source and destination are equal and have no side-effects.
5353
5354 2006-04-17 Richard Guenther <rguenther@suse.de>
5355
5356 PR target/26826
5357 * reload.c (push_reload): Guard calls to get_secondary_mem
5358 for memory subregs.
5359
5360 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
5361
5362 * alias.c (reg_base_value, old_reg_base_value): Change the
5363 type to VEC(rtx,gc) *.
5364 (REG_BASE_VALUE, find_base_value, record_set,
5365 init_alias_analysis): Use VEC instead of VARRAY.
5366
5367 * alias.c (alias_sets): Change the type to
5368 VEC(alias_set_entry,gc) *.
5369 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
5370 VEC instead of VARRAY.
5371 (last_alias_set): Remove.
5372
5373 * cgraph.h (cgraph_edge_p): New.
5374 Update the prototype of cgraph_function_versioning.
5375 * cgraphunit.c (cgraph_copy_node_for_versioning,
5376 cgraph_function_versioning): Use VEC instead of VARRAY.
5377 * ipa-cp.c (ipcp_insert_stage): Likewise.
5378
5379 2006-04-16 Roger Sayle <roger@eyesopen.com>
5380
5381 PR target/26961
5382 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
5383 "A op B" or "A op C", we may need to convert A to the type of B and C.
5384
5385 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
5386
5387 * target.h (struct gcc_target): Add mode_rep_extended.
5388 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
5389 (init_num_sign_bit_copies_in_rep): Initialize it using
5390 mode_rep_extended.
5391 (truncate_to_mode): Use it.
5392 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
5393 * targhooks.h (default_mode_rep_extended): Declare it.
5394 * targhooks.c (default_mode_rep_extended): Define it.
5395 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
5396 default_mode_rep_extended.
5397 (TARGET_INITIALIZER): Include it.
5398 * doc/tm.texi (Misc): Document it.
5399 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
5400 (mips_truncated_to_mode): New function.
5401
5402 2006-04-16 Roger Sayle <roger@eyesopen.com>
5403
5404 PR middle-end/25474
5405 * expr.c (compress_float_constant): Copy the narrow constant into
5406 a new pseudo before extending it to its final width.
5407
5408 2006-04-16 Roger Sayle <roger@eyesopen.com>
5409 Andrew Pinski <pinskia@gcc.gnu.org>
5410 Dale Johannesen <dalej@apple.com>
5411
5412 PR target/24076
5413 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5414 special case code to implement V8HImode and V16QImode with SSE2.
5415
5416 2006-04-15 Roger Sayle <roger@eyesopen.com>
5417
5418 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5419 trees are constructed with a suitable tree type.
5420
5421 2006-04-15 Roger Sayle <roger@eyesopen.com>
5422
5423 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5424 (integer_onep): Likewise.
5425 (integer_all_onesp): Likewise.
5426 (integer_pow2p): Likewise.
5427 (integer_nonzerop): Likewise.
5428 (real_zerop): Likewise.
5429 (real_onep): Likewise.
5430 (real_twop): Likewise.
5431 (real_minus_onep): Likewise.
5432 (int_size_in_bytes): Likewise.
5433 (host_integerp): Likewise.
5434
5435 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
5436
5437 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5438 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5439 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5440
5441 * tree-ssa-structalias.h (alias_info): Remove num_references.
5442
5443 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5444
5445 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5446 (output_bvb patterns): Likewise.
5447 * pa.c (output_bb): Use 'bb' insn for long branch case.
5448 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5449 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5450 1. Correct length operand for alternatives 1 and 2.
5451 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5452 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
5453
5454 2006-04-14 Roger Sayle <roger@eyesopen.com>
5455
5456 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5457 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5458 were accidentally reverted by r112959.
5459
5460 2006-04-15 Jakub Jelinek <jakub@redhat.com>
5461
5462 PR middle-end/26823
5463 * except.h (eh_region_outermost): New prototype.
5464 * except.c (eh_region_outermost): New function.
5465 * tree-cfg.c (find_outermost_region_in_block): Use it.
5466
5467 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5468
5469 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5470 of VARRAY.
5471 * reload1.c (reg_equiv_memory_loc_varray): Rename to
5472 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
5473 (init_reload, reload): Use VEC instead of VARRAY.
5474 * reload.h: Update the prototype for
5475 reg_equiv_memory_loc_varray.
5476
5477 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
5478 Eric Botcazou <ebotcazou@libertysurf.fr>
5479
5480 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5481 register save area.
5482
5483 2005-04-13 Uros Bizjak <uros@kss-loka.si>
5484
5485 PR middle-end/27134
5486 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5487 to expand fallback builtin function call.
5488
5489 2006-04-14 Alan Modra <amodra@bigpond.net.au>
5490
5491 PR middle-end/27095
5492 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5493 and emit libcall here in case the builtin fails.
5494 (expand_builtin_strcmp): Always emit the libcall here on failure.
5495
5496 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
5497
5498 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5499 * flow.c (reg_n_info): Change the type to
5500 VEC(reg_info_p,heap) *.
5501 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5502 instead of VARRAY.
5503 * regs.h (reg_info_p): New.
5504 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5505 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5506 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5507 instead of VARRAY.
5508
5509 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
5510
5511 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5512 defaulting to 100.
5513 * params.h (MAX_SCHED_READY_INSNS): New macro.
5514 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5515 past MAX_SCHED_READY_INSNS during the first scheduling pass.
5516 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5517 the ready list for 1 cycle during the first scheduling pass.
5518 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5519
5520 2006-04-13 Richard Henderson <rth@redhat.com>
5521
5522 PR libgomp/26651
5523 * gimple-low.c (lower_omp_directive): Remove dead code.
5524 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5525 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5526 * omp-low.c (struct omp_region): Move to tree-flow.h.
5527 (root_omp_region): Export.
5528 (omp_regions, lookup_omp_region): Remove.
5529 (determine_parallel_type): Update for struct omp_region changes.
5530 (dump_omp_region): Dump regions with block numbers.
5531 (new_omp_region): Take type and block instead of stmt; malloc
5532 instead of ggc.
5533 (free_omp_region_1, free_omp_regions): New.
5534 (expand_parallel_call): Take entry_stmt as argument; update for
5535 changes to omp_region.
5536 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5537 (remove_exit_barriers): New.
5538 (expand_omp_parallel): Update for struct omp_region changes.
5539 (expand_omp_synch): Likewise.
5540 (expand_omp): Likewise.
5541 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5542 (expand_omp_for_static_chunk): Likewise.
5543 (expand_omp_for): Likewise.
5544 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5545 (expand_omp_sections): Similarly, with GOMP_sections_end.
5546 (expand_omp_single): New.
5547 (build_omp_regions_1): Update for OMP_CONTINUE.
5548 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5549 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5550 OMP_SECTIONS_SECTIONS.
5551 (lower_omp_single_simple): Don't emit barrier here.
5552 (lower_omp_single_copy): Likewise.
5553 (lower_omp_single): Fix bindings, and lower to straightline now.
5554 (lower_omp_master, lower_omp_ordered): Likewise.
5555 (lower_omp_critical): Likewise.
5556 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
5557 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5558 omp edges, free it afterward.
5559 (make_omp_sections_edges): Remove.
5560 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5561 (move_stmt_r): Handle OMP_CONTINUE.
5562 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
5563 statement pointers to basic blocks. Add type member.
5564 (root_omp_region, new_omp_region, free_omp_regions): Declare.
5565 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5566 * tree-inline.c (estimate_num_insns_1): Likewise.
5567 * tree-pretty-print.c (dump_generic_node): Likewise.
5568 * tree-ssa-operands.c (get_expr_operands): Likewise.
5569 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5570 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5571 (OMP_CONTINUE): New.
5572 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5573 (OMP_SECTIONS_SECTIONS): Remove.
5574 (OMP_SECTION_LAST): New.
5575 (OMP_RETURN_NOWAIT): New.
5576
5577 2006-04-13 Roger Sayle <roger@eyesopen.com>
5578
5579 * fold-const.c (native_encode_vector, native_interpret_real):
5580 Correct obvious mistakes in the previous check-in.
5581
5582 2006-04-13 Roger Sayle <roger@eyesopen.com>
5583
5584 * fold-const.c (native_encode_expr): New function to encode
5585 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5586 or VECTOR_CST into a specified buffer.
5587 (native_encode_int): New function.
5588 (native_encode_real): New function.
5589 (native_encode_complex): New function.
5590 (native_encode_vector): New function.
5591 (native_interpret_expr): Inverse of native_encode_expr to convert
5592 a target representation into an INTEGER_CST, REAL_CST etc...
5593 (native_interpret_int): New function.
5594 (native_interpret_real): New function.
5595 (native_interpret_complex): New function.
5596 (native_interpret_vector): New function.
5597 (fold_view_convert_expr): New function to constant fold/evaluate
5598 a VIEW_CONVERT_EXPR of a suitable constant expression.
5599 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5600 Change call of build1 to fold_build1 when constructing a
5601 VIEW_CONVERT_EXPR.
5602
5603 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
5604 Ulrich Weigand <uweigand@de.ibm.com>
5605
5606 PR target/27006
5607 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5608 to be even.
5609
5610 2006-04-13 Alan Modra <amodra@bigpond.net.au>
5611
5612 PR target/26459
5613 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5614 optimize to lo_sum for DFmode if !TARGET_FPRS.
5615
5616 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5617
5618 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5619 delete_alias_info, compute_flow_sensitive_aliasing,
5620 group_aliases): Use VEC instead of VARRAY.
5621 * tree-ssa-structalias.c (update_alias_info): Likewise.
5622 * tree-ssa-structalias.h (alias_info): Change the type of
5623 processed_ptrs to VEC(tree,heap) *.
5624
5625 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
5626
5627 PR target/27060
5628 * config/sh/lib1funcs.h: New file, broken out of:
5629 * config/sh/lib1funcs.asm.
5630 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5631 New macros.
5632 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5633 * config/sh/lib1funcs-Os-4-200.asm: New file.
5634 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5635 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5636 (EXTRA_MULTILIB_PARTS): Include it.
5637 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5638 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5639 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5640 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5641 TARGET_SH2.
5642
5643 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
5644
5645 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5646 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5647 tpa_compact, root_var_init, type_var_init): Use VEC instead of
5648 VARRAY.
5649 * tree-ssa-live.h: Include vecprim.h.
5650 (tree_partition_associator_d): Change the type of
5651 first_partition to VEC(int,heap) *.
5652 (tpa_first_partition): Use VEC instead of VARRAY.
5653
5654 * Makefile.in (GTFILES): Move functions.h after tree.h.
5655 * function.c (reset_block_changes, record_block_change,
5656 check_block_change, free_block_changes): Use VEC instead of
5657 VARRAY.
5658 * function.h (function): Change the type of
5659 ib_boundaries_block to VEC(tree,gc) *.
5660 * tree-inline.c (copy_cfg_body): Initialize
5661 ib_boundaries_block to NULL instead of (varray_type) 0.
5662
5663 2006-04-12 Roger Sayle <roger@eyesopen.com>
5664
5665 * expr.c (emit_group_store): Correct operand order in call to
5666 subreg_lowpart_offset. Always create paradoxical SUBREGs with
5667 a SUBREG_BYTE of zero.
5668
5669 2006-04-12 Richard Guenther <rguenther@suse.de>
5670
5671 * profile.c (compute_branch_probabilities): Remove code
5672 encapsulated in !ir_type (), which are remanents of the
5673 removed RTL profiling code.
5674 * rtl-profile.c: Remove.
5675
5676 2006-04-12 Alan Modra <amodra@bigpond.net.au>
5677
5678 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5679 magic NULL_RTX comment.
5680 (function_arg): Store entire fp arg to mem if any part should go
5681 on stack.
5682 (rs6000_arg_partial_bytes): Adjust for above change.
5683
5684 2006-04-11 Roger Sayle <roger@eyesopen.com>
5685
5686 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5687 if it hasn't been initialized by dwarf2out_init.
5688
5689 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
5690
5691 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5692 symbolic constants in branch patterns.
5693
5694 2006-04-11 Roger Sayle <roger@eyesopen.com>
5695
5696 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5697
5698 2006-04-11 Richard Sandiford <richard@codesourcery.com>
5699
5700 PR rtl-optimization/27073
5701 * gcse.c (try_replace_reg): Revert last change. Continue to search
5702 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5703 on the former.
5704
5705 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
5706
5707 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5708 aggregate types other than record and union types.
5709 (function_arg): Likewise.
5710 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5711 small arrays.
5712 (function_value): In 64-bit mode, return objects that require it
5713 in FP registers.
5714
5715 2006-04-11 Roger Sayle <roger@eyesopen.com>
5716
5717 * dwarf2out.c (premark_used_types): Remove problematic prototype.
5718
5719 2006-04-11 Jakub Jelinek <jakub@redhat.com>
5720
5721 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5722
5723 2006-04-03 Jeff Law <law@redhat.com>
5724
5725 PR/27087
5726 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5727 alias information too.
5728
5729 2006-04-10 Mike Frysinger <vapier@gentoo.org>
5730
5731 * Makefile.in (gcc-cross): Add $(exeext) to target name.
5732
5733 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
5734
5735 PR/21391
5736 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5737 (premark_used_types_helper): New.
5738 (premark_used_types): New.
5739 (gen_subprogram_die): Call premark_used_types.
5740 (prune_unused_types_walk): Do not prune perennial dies.
5741 * function.c (used_types_insert): New.
5742 * function.h (struct function): Add used_types_hash field.
5743 (used_types_insert): Add prototype.
5744 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
5745 * c-parser.c (c_parser_cast_expression): Save casted types in used
5746 types hash table.
5747
5748 2006-04-11 Mark Mitchell <mark@codesourcery.com>
5749
5750 PR target/26459
5751 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
5752 rs6000_explicit_options.float_gprs.
5753
5754 2006-04-10 Roger Sayle <roger@eyesopen.com>
5755
5756 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
5757 from ix86_expand_vector_init_low_nonzero. Take an additional
5758 one_var argument indicating which element is non-zero. Support
5759 one_var != 0 for V4SFmode and V4SImode by permuting the result.
5760 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
5761 with one_var instead of ix86_expand_vector_init_low_nonzero.
5762
5763 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
5764
5765 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
5766 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
5767 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
5768 build/genextract.o): Depend on vecprim.h.
5769 * cfglayout.c, df-problems.c, function.c, genextract.c,
5770 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
5771 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
5772 vecprim.h.
5773 * vecprim.h: New.
5774
5775 2006-04-10 Geoffrey Keating <geoffk@apple.com>
5776
5777 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
5778 Declare VECs of this type.
5779 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
5780 (remove_children): Delete.
5781 (add_dwarf_attr): Use VEC routines.
5782 (add_AT_flag): Update for changes to add_dwarf_attr.
5783 (add_AT_int): Likewise.
5784 (add_AT_unsigned): Likewise.
5785 (add_AT_long_long): Likewise.
5786 (add_AT_vec): Likewise.
5787 (add_AT_string): Likewise.
5788 (add_AT_die_ref): Likewise.
5789 (add_AT_fde_ref): Likewise.
5790 (add_AT_loc): Likewise.
5791 (add_AT_loc_list): Likewise.
5792 (add_AT_addr): Likewise.
5793 (add_AT_lbl_id): Likewise.
5794 (add_AT_lineptr): Likewise.
5795 (add_AT_macptr): Likewise.
5796 (add_AT_offset): Likewise.
5797 (add_AT_range_list): Likewise.
5798 (get_AT): Use VEC_iterate.
5799 (remove_AT): Use VEC_ordered_remove.
5800 (free_die): Fold remove_children into here; have it use VEC_iterate.
5801 (print_die): Use VEC_iterate on attrs.
5802 (reverse_die_lists): Don't reverse attr lists.
5803 (die_checksum): Use VEC_iterate on attrs.
5804 (same_die_p): Likewise.
5805 (output_location_lists): Likewise.
5806 (build_abbrev_table): Likewise.
5807 (size_of_die): Likewise.
5808 (unmark_all_dies): Likewise.
5809 (output_abbrev_section): Likewise.
5810 (output_die): Likewise.
5811 (prune_unused_types_walk_attribs): Likewise.
5812
5813 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
5814
5815 * doc/install.texi (*-*-solaris2*): Point to the configure page.
5816
5817 2006-04-10 Jakub Jelinek <jakub@redhat.com>
5818
5819 PR debug/27057
5820 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
5821
5822 2006-04-09 Roger Sayle <roger@eyesopen.com>
5823
5824 * expr.c (store_constructor): Don't bother clearing target if
5825 we're about to assign a vector to it using vec_init_optab.
5826
5827 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
5828
5829 * tree-ssa-alias.c (lhs_may_store_to): New function.
5830 (recalculate_used_alone): Handle LHS of calls.
5831
5832 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5833
5834 PR target/27034
5835 PR target/26508
5836 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
5837 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
5838 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
5839 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
5840 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
5841 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
5842 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
5843 stubs. Add ".align 8" directives before all ".dword" directives.
5844 (GTHREAD_USE_WEAK): Revise comment.
5845 (TARGET_ATTRIBUTE_WEAK): Define.
5846 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
5847 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
5848 * stublib.c: New file.
5849
5850 PR target/26743
5851 PR target/11254
5852 PR target/10274
5853 * pa.md (cbranch patterns): Revise arguments used in calls to
5854 output_cbranch, output_bb and output_bvd. Add long branch length
5855 attributes.
5856 (fbranch patterns): Handle long branches.
5857 (jump): Revise length check. Revise arguments for output_lbranch call.
5858 Add long branch length attributes.
5859 (decrement_and_branch_until_zero): Add long branch length attributes.
5860 (output_movb, output_parallel_addb and output_parallel_movb patterns):
5861 Likewise. Revise arguments for output_parallel_addb and
5862 output_parallel_movb calls.
5863 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
5864 output_parallel_movb and output_parallel_addb): Update prototypes.
5865 * pa.c (output_cbranch): Revise arguments. Correct handling of
5866 nullification in long branches.
5867 (output_lbranch): Add new argument to control extraction of delay
5868 instruction.
5869 (output_bb): Handle long branches.
5870 (output_bvb, output_dbra, output_movb, output_parallel_movb,
5871 output_parallel_addb): Likewise.
5872
5873 2006-04-09 Richard Sandiford <richard@codesourcery.com>
5874
5875 PR rtl-optimization/27073
5876 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
5877 not REG_EQUIVs.
5878
5879 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
5880
5881 * tree.h (tree_memory_tag): Add old_used_alone.
5882 (SMT_OLD_USED_ALONE): New macro.
5883 * tree-ssa-alias.c (recalculate_used_alone): Stop
5884 marking things for renaming unnecessarily.
5885
5886 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
5887
5888 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
5889 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
5890 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
5891 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
5892 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
5893 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
5894 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
5895 spelling convensions.
5896 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
5897 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
5898 typos. Follow spelling conventions.
5899
5900 2006-04-07 DJ Delorie <dj@redhat.com>
5901
5902 * config/m32c/m32c.c (m32c_function_arg): Structures are always
5903 passed on the stack.
5904 (m32c_init_cumulative_args): When a function returns a structure,
5905 always pass the pointer to that return area on the stack.
5906 (m32c_function_arg_advance): Don't increment the parameter number
5907 if we're processing the returned structure pointer.
5908 (pushm_info): Reverse order of registers.
5909
5910 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
5911
5912 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
5913 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
5914 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
5915 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
5916 build_int_cst_type.
5917 * tree-chrec.c (chrec_fold_multiply_poly_poly,
5918 chrec_fold_multiply): Same.
5919 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
5920 force_expr_to_var_cost): Same.
5921 * tree-mudflap.c (mf_xform_derefs_1): Same.
5922 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
5923
5924 2006-04-07 David Edelsohn <edelsohn@gnu.org>
5925
5926 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
5927 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
5928 insn.
5929
5930 2006-04-07 Jan Hubicka <jh@suse.cz>
5931
5932 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
5933
5934 2006-04-07 Richard Guenther <rguenther@suse.de>
5935
5936 PR tree-optimization/26135
5937 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
5938 loads for store copy-prop.
5939 (copy_prop_visit_stmt): Likewise.
5940
5941 2006-04-05 Robert Millan <robertmh@gnu.org>
5942
5943 * config/i386/linux.h: Add a comment to mark macros that are
5944 being overriden in config/k*bsd-gnu.h.
5945 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
5946 DYNAMIC_LINKER.
5947 * config/knetbsd-gnu.h: Ditto.
5948
5949 2006-04-06 Jan Hubicka <jh@suse.cz>
5950
5951 PR profile/20815
5952 PR profile/26399
5953 * coverage.c (coverage_checksum_string): Reorganize loop to not read
5954 after buffer.
5955
5956 2006-04-06 Mike Stump <mrs@apple.com>
5957
5958 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
5959 for HAVE_nonlocal_goto to be consistent.
5960 (expand_builtin_nonlocal_goto): Likewise.
5961 (expand_builtin_strcmp): Use #ifdef instead of #if
5962 for HAVE_cmpstrnsi to be consistent.
5963
5964 2006-04-05 DJ Delorie <dj@redhat.com>
5965
5966 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
5967 vs m32c.
5968
5969 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
5970
5971 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
5972 got-relative addressing for anything but SImode.
5973
5974 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
5975 even if the calling function doesn't modify them.
5976
5977 2006-04-05 Richard Guenther <rguenther@suse.de>
5978
5979 PR tree-optimization/26919
5980 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
5981 to cgraph_estimate_size_after_inlining.
5982
5983 2006-04-05 Alan Modra <amodra@bigpond.net.au>
5984
5985 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
5986
5987 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
5988
5989 PR tree-optimization/26996
5990 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
5991 VECTOR_TYPE variables.
5992
5993 2006-04-05 Richard Guenther <rguenther@suse.de>
5994
5995 PR tree-optimization/26763
5996 * fold-const.c (fold_comparison): Move folding of
5997 PTR + CST CMP PTR + CST ...
5998 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
5999
6000 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
6001
6002 * doc/install.texi (Prerequisites): Refine some wording on
6003 bootstrapping and ksh.
6004 Move the version numbers of DejaGnu here from the testing section
6005 and fix casing of names.
6006 Fix markup and clarify wording for autogen requirements.
6007 Refer to GCJ instead of just java.
6008 Refer to SVN instead of CVS.
6009 Describe diffutils as useful instead of necessary.
6010 (Downloading the source): Refer to SVN instead of CVS.
6011 Adjust a link to our web site accordingly.
6012 (Configuration): Fix casing of Bison.
6013 (Building): Refer to SVN instead of CVS.
6014 Fix a sentence on the use of Bison and remove duplicate (and
6015 incorrect) version number of Bison requirement.
6016 Remove one redundant list of packages needed for building.
6017 (Specific): Avoid reference to CVS.
6018
6019 2006-04-04 Eric Christopher <echristo@apple.com>
6020
6021 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
6022 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
6023 (rs6000_handle_struct_attribute): New.
6024 (rs6000_ms_bitfield_layout_p): Ditto.
6025
6026 2006-04-04 Geoffrey Keating <geoffk@apple.com>
6027
6028 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
6029 NULL for dso parameter to atexit_common.
6030
6031 2006-04-04 Eric Christopher <echristo@apple.com>
6032
6033 * config/i386/i386.c (machopic_output_stub): Output \t
6034 between instructions and operands.
6035
6036 2006-04-04 David Edelsohn <edelsohn@gnu.org>
6037
6038 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
6039 satisfies_constraint_[IL] to explicit tests on value.
6040
6041 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
6042
6043 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6044 set_nb_iterations_in_loop): Use build_int_cst instead of
6045 build_int_cst_type.
6046 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
6047 build_int_cst instead of convert.
6048
6049 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
6050
6051 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
6052 new value 2 for incoming.
6053 * function.c (expand_function_start): Call struct_value_rtx
6054 with incoming as 2.
6055 * config/sparc/sparc.md: Comment updated_return.
6056 * config/sparc/sparc.opt: Add -mstd-struct-return option.
6057 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
6058 struct return if sparc_std_struct_return and incoming is 2.
6059 (print_operand): Do not adjust return if
6060 sparc_std_struct_return.
6061
6062 2006-04-04 Roger Sayle <roger@eyesopen.com>
6063
6064 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
6065 convert in the middle-end.
6066 * expr.c (store_expr, store_constructor, get_inner_reference,
6067 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
6068 Likewise.
6069 * tree.c (build_range_type): Likewise.
6070
6071 2006-04-04 Tom Tromey <tromey@redhat.com>
6072
6073 * doc/install.texi (Prerequisites): Mention jar.
6074
6075 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
6076
6077 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
6078 subsection.
6079
6080 2006-04-04 Matthias Klose <doko@debian.org>
6081
6082 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
6083 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
6084 strings.
6085
6086 2006-04-03 Geoffrey Keating <geoffk@apple.com>
6087
6088 * doc/extend.texi (Function Attributes): Rewrite visibility
6089 attribute documentation.
6090 * doc/invoke.texi (C++ Dialect Options): Rewrite
6091 -fvisibility-inlines-hidden documentation to describe something
6092 entirely different, although in practise compatible.
6093 (Code Gen Options): Warn about system headers in -fvisibility=
6094 documentation.
6095
6096 * doc/extend.texi (Other Builtins): Document that
6097 __builtin_nan is a compile-time constant only when its argument
6098 is valid.
6099
6100 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
6101
6102 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
6103 trying to remove TRUNCATE check if all bits outside the new mode
6104 are identical to the sign bit.
6105
6106 2006-04-03 Jeff Law <law@redhat.com>
6107
6108 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
6109 and operand scanning in some common cases.
6110
6111 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
6112 Dale Johannesen <dalej@apple.com>
6113
6114 PR target/19653
6115 * regclass.c (struct reg_pref): Update documentation.
6116 (regclass): Set prefclass to NO_REGS if memory is the best option.
6117 (record_reg_classes): Cope with a prefclass set to NO_REGS.
6118 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
6119 into account. For non-registers, equate an empty preferred
6120 reload class to a `!' in the constraint; move the if clause to
6121 do so after those that reject the insn.
6122 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
6123 return NO_REGS.
6124 (find_dummy_reload): Likewise.
6125 * doc/tm.texi (Register Classes): Document what it means
6126 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
6127 * config/i386/i386.c (ix86_preferred_reload_class): Force
6128 using SSE registers (and return NO_REGS for floating-point
6129 constants) if math is done with SSE.
6130 (ix86_preferred_output_reload_class): New.
6131 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
6132 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
6133 * config/i386/i386.md: Remove # register preferences.
6134
6135 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6136
6137 PR bootstrap/26992
6138 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6139 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
6140 the type of nb_iter.
6141 (instantiate_parameters_1): Convert the operands before calling
6142 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
6143 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
6144
6145 2006-04-02 Roger Sayle <roger@eyesopen.com>
6146
6147 * builtins.c (dummy_object): Use build_int_cst instead of convert.
6148 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
6149 instead of convert.
6150 * dojump.c (do_jump): Likewise.
6151 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
6152 * gimplify.c (gimple_boolify, gimplify_init_constructor,
6153 gimplify_boolean_expr): Likewise.
6154 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6155 * varasm.c (array_size_for_constructor): Likewise.
6156 * tree-object-size.c (compute_object_offset): Likewise.
6157
6158 2006-04-02 Roger Sayle <roger@eyesopen.com>
6159
6160 PR middle-end/26977
6161 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
6162 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
6163
6164 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6165
6166 PR tree-optimization/26939
6167 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
6168
6169 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6170
6171 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
6172 at_stmt. Convert the type of operands before calling
6173 build_polynomial_chrec.
6174 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
6175 add_to_evolution_1.
6176 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
6177 (instantiate_parameters_1): Convert the type of operands before calling
6178 build_polynomial_chrec.
6179 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6180 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
6181 reset_evolution_in_loop): Insert asserts to check the types of the
6182 operands.
6183 (chrec_type): Moved...
6184 (eq_evolutions_p): Use operand_equal_p.
6185 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
6186 the types of the operands.
6187 (chrec_type): ...here.
6188 * tree-data-ref.c (create_data_ref): Convert the operands before
6189 calling chrec_replace_initial_condition.
6190 (same_access_functions, analyze_subscript_affine_affine,
6191 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
6192 (compute_subscript_distance, analyze_ziv_subscript,
6193 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
6194 analyze_miv_subscript): Convert the operands before calling
6195 chrec_fold_minus or chrec_fold_plus.
6196
6197 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6198
6199 * tree-data-ref.c (compute_all_dependences): Use a pointer to
6200 the dependence_relations vector.
6201 (compute_data_dependences_for_loop): Adjust call to
6202 compute_all_dependences.
6203
6204 2006-04-01 Roger Sayle <roger@eyesopen.com>
6205 Richard Henderson <rth@redhat.com>
6206
6207 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
6208 gimple_boolify on the condition before calling gimplify_expr.
6209
6210 2006-03-31 Bob Wilson <bob.wilson@acm.org>
6211
6212 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
6213 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
6214 the frame size. Update to use the new macros.
6215 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
6216 * config/xtensa/ieee754-df.S: Likewise.
6217
6218 2006-03-31 Richard Henderson <rth@redhat.com>
6219
6220 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
6221 (make_edges): ... here. Control fallthru creation with a local
6222 variable. Do not play with fake edges.
6223 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
6224 (make_goto_expr_edges): Don't play with fake edges. Make for_call
6225 a boolean.
6226
6227 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
6228
6229 * dwarf2.h (DW64_CIE_ID): Define.
6230 * dwarf2out.c (DWARF_CIE_ID): Define.
6231 (output_call_frame_info): Output 0xffffffff before standard 8-byte
6232 length header. Use DWARF_CIE_ID.
6233 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
6234 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
6235
6236 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
6237
6238 * config/sh/linux-atomic.asm: New file.
6239 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
6240
6241 2006-03-31 DJ Delorie <dj@redhat.com>
6242
6243 * config/m32c/cond.md: Set condition flags properly throughout.
6244 * config/m32c/minmax.md: Likewise.
6245 * config/m32c/prologue.md: Likewise.
6246 * config/m32c/bitops.md: Likewise.
6247 * config/m32c/muldiv.md: Likewise.
6248 * config/m32c/mov.md: Likewise.
6249 * config/m32c/addsub.md: Likewise.
6250 * config/m32c/m32c.md: Likewise.
6251 * config/m32c/jump.md: Likewise.
6252 * config/m32c/shift.md: Likewise.
6253
6254 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
6255 conditionally output the pattern for this.
6256 * config/m32c/m32c.c (flags_needed_for_conditional): New.
6257 (m32c_compare_redundant): New.
6258 (m32c_output_compare): New.
6259 * config/m32c/m32c-protos.h (m32c_output_compare): New.
6260
6261 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
6262 dest, not src. Allow other 4-byte modes.
6263
6264 2006-03-30 Denis Chertykov <denisc@overta.ru>
6265
6266 * doc/md.texi: Refer to avr/constraints.md instead of
6267 avr/avr.h.
6268
6269 2006-03-30 Roger Sayle <roger@eyesopen.com>
6270
6271 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
6272 signed vs. unsigned comparison failures on some hosts.
6273
6274 2006-03-31 Alan Modra <amodra@bigpond.net.au>
6275
6276 PR target/26459
6277 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
6278 change to FLOAT_REGS.
6279
6280 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
6281 (rs6000_override_options): Use it.
6282 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
6283 only for -mabi=spe/no-spe and -mabi=altivec.
6284
6285 2006-03-30 Geoffrey Keating <geoffk@apple.com>
6286
6287 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
6288 !Zdynamiclib.
6289
6290 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
6291
6292 * Makefile.in: Rename docdir to gcc_docdir.
6293
6294 2006-03-30 Roger Sayle <roger@eyesopen.com>
6295
6296 PR target/17959
6297 * expr.c (emit_group_store): Optimize group stores into a pseudo
6298 register by using a paradoxical subreg to initialize the destination
6299 if the first or last member of the group specifies a "low part".
6300
6301 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6302
6303 PR target/26734
6304 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6305 * target.h (struct gcc_target.speculate_insn): Change type of the
6306 second parameter to 'int'.
6307 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
6308 the second operand of the DEPS_LIST.
6309 (copy_DEPS_LIST_list): Update reference to the second operand of the
6310 DEPS_LIST.
6311 * rtl.h (alloc_DEPS_LIST): Update signature.
6312 * sched-int.h (ds_t): Change typedef to 'int'.
6313 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6314
6315 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6316
6317 * haifa-sched.c (try_ready): Change condition to restore
6318 non-speculative pattern of the instruction.
6319 (process_insn_depend_be_in_spec): Code to keep probability of the
6320 speculative dependence non-decreasing.
6321
6322 2006-03-30 Jie Zhang <jie.zhang@analog.com>
6323
6324 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
6325 (single_move_for_movmem): ... this. Also change all uses.
6326 (bfin_expand_strmov): Renamed to...
6327 (bfin_expand_movmem): ... this. Also change all uses.
6328 * config/bfin/bfin.md (movstrsi): Renamed to...
6329 (movstrsi): ...this.
6330
6331 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
6332
6333 PR tree-optimization/26830
6334
6335 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
6336 (copy_prop_visit_stmt): Remove write-only variable ann.
6337 (init_copy_prop): Check variable loop depth here. Do not simulate
6338 memory-tag and virtual operand PHIs except for store copy prop.
6339
6340 2006-03-30 Richard Guenther <rguenther@suse.de>
6341
6342 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
6343 variants with double arguments.
6344
6345 2006-03-29 David Edelsohn <edelsohn@gnu.org>
6346
6347 * genpreds.c (write_tm_constrs_h): Delete variable p.
6348 * genconditions.c (write_header): Add tm-constrs.h to included
6349 headers.
6350 * genpeep.c (main): Add toplev.h to included headers.
6351 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
6352 (build/genpeep.o): Add toplev.h dependency.
6353 * config/rs6000/constraints.md: Add "W" constraint.
6354
6355 2006-03-29 Roger Sayle <roger@eyesopen.com>
6356
6357 * stor-layout.c (mode_for_size_tree): Remove restiction on type
6358 sizes by correctly testing whether the size fits a host integer.
6359 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
6360 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
6361 SImode range for the default sizetype and bitsizetype.
6362
6363 2006-03-29 Roger Sayle <roger@eyesopen.com>
6364
6365 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
6366 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
6367 quickly if the argument is already of the correct type.
6368 Call fold_build1 instead of build1. Tidy up blank lines.
6369
6370 2006-03-29 David Edelsohn <edelsohn@gnu.org>
6371
6372 * genemit.c (main): Add tm-constrs.h to included headers.
6373 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
6374 * genpeep.c (main): Add tm-constrs.h to included headers.
6375 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
6376 (write_tm_constrs_h): this and write complete file.
6377 (write_tm_preds_h): Do not emit satisfies_constraint fns.
6378 (write_insn_preds_c): Add tm-constrs.h to included headers.
6379 (gen_constrs): New variable.
6380 (parse_option): Parse "-c".
6381 (main): Invoke write_tm_constrs_h.
6382 * genrecog.c (write_header): Add tm-constrs.h to included headers.
6383 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
6384 (object_out_file): Add tm-constrs.h dependency.
6385 (insn-emit.o): Same.
6386 (insn-output.o): Same.
6387 (insn-peep.o): Same.
6388 (insn-preds.o): Same.
6389 (insn-recog.o): Same.
6390 (tm-constsr.h): New target.
6391 (s-constrs-h): New target.
6392
6393 * config/rs6000/constraints.md: New file.
6394 * config/rs6000/rs6000.c: Include tm-constrs.h.
6395 (num_insn_constant_wide): Convert to satisfies_constraint.
6396 (rs6000_rtx_costs): Convert to satisfies_constraint.
6397 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
6398 (CONST_OK_FOR_LETTER_P): Delete.
6399 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6400 (EXTRA_CONSTRAINT): Delete.
6401 (EXTRA_MEMORY_CONSTRAINT): Delete.
6402 (EXTRA_ADDRESS_CONSTRAINT): Delete.
6403 * config/rs6000/predicates.md: Convert to satisfies_constraint.
6404 * config/rs6000/rs6000.md: Include constraints.md. Convert to
6405 satisfies_constraint.
6406
6407 * config/i386/i386.c: Include tm-constrs.h.
6408
6409 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6410
6411 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6412 * tree-data-ref.c (find_data_references_in_loop,
6413 compute_data_dependences_for_loop): Use pointers to VEC.
6414 (analyze_all_data_dependences): Adjust calls.
6415 * tree-data-ref.h (find_data_references_in_loop,
6416 compute_data_dependences_for_loop): Adjust declarations.
6417 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6418 compute_data_dependences_for_loop.
6419
6420 2006-03-29 Paul Brook <paul@codesourcery.com>
6421
6422 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6423 (movdf_vfp): Ditto.
6424
6425 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
6426
6427 PR tree-optimization/26859
6428 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6429 division by zero.
6430 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6431 for the step after fold_convert.
6432
6433 2006-03-29 Paul Brook <paul@codesourcery.com>
6434
6435 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6436 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6437
6438 2006-03-29 Paul Brook <paul@codesourcery.com>
6439
6440 PR middle-end/23623
6441 * targhooks.c (default_narrow_bitfield): New fuction.
6442 * targhooks.h (default_narrow_bitfield): add prototype.
6443 * target.h (gcc_target): Add narrow_volatile_bitfield.
6444 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6445 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6446 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6447 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6448
6449 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
6450
6451 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6452 tmake_file.
6453 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6454 (NR_C_MODES): Add TDmode, DDmode and SDmode.
6455 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6456 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6457 (s390_function_arg_float): Allow SDmode and DDmode values to be
6458 passed in floating point registers.
6459 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6460 check with SCALAR_FLOAT_MODE_P.
6461 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6462
6463 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6464
6465 PR tree-optimization/25985
6466 * tree-ssa-loop-niter.c (number_of_iterations_le,
6467 number_of_iterations_ne): Make comments more precise.
6468 (number_of_iterations_cond): Add only_exit argument. Use the
6469 fact that signed variables do not overflow only when only_exit
6470 is true.
6471 (loop_only_exit_p): New.
6472 (number_of_iterations_exit): Pass result of loop_only_exit_p to
6473 number_of_iterations_cond.
6474
6475 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
6476
6477 PR tree-optimization/26643
6478 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6479 bit_field_refs.
6480
6481 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
6482
6483 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6484 (divsi3_i4_int): Likewise.
6485
6486 2006-03-28 Roger Sayle <roger@eyesopen.com>
6487
6488 * expr.c (emit_group_store): Only create a new pseudo reg if the
6489 quantity it needs to hold isn't already a suitable pseudo.
6490
6491 2006-03-28 Jeff Law <law@redhat.com>
6492
6493 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6494 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6495
6496 2006-03-28 Roger Sayle <roger@eyesopen.com>
6497
6498 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6499 the equivalent ~X & Y, and the symmetry related transformations.
6500 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6501 ~X & Y, and symmetry related transforms.
6502
6503 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6504
6505 Revert my 2006-03-27 patches.
6506
6507 2006-03-28 Roger Sayle <roger@eyesopen.com>
6508
6509 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6510 ~(T1)X, when T1 and T2 are integer types of the same precision
6511 and (T2)X isn't an extension.
6512
6513 2006-03-28 Jeff Law <law@redhat.com>
6514
6515 PR tree-optimization/26796
6516 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6517 need EH edge cleanups rather than purging them immediately.
6518 (eliminate_degenerate_phis): Handle queued EH cleanups.
6519
6520 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
6521
6522 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6523 from parent_var.
6524
6525 2006-03-27 Roger Sayle <roger@eyesopen.com>
6526
6527 PR middle-end/22524
6528 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6529 cast BIT_NOT_EXPR operand to the correct type.
6530
6531 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
6532
6533 * tree-loop-linear.c: Don't include varray.h.
6534 (gather_interchange_stats, try_interchange_loops,
6535 linear_transform_loops): Use VEC instead of VARRAY.
6536 * lambda-mat.c: Don't include varray.h.
6537 * tree-chrec.c: Same.
6538 * lambda-trans.c: Same.
6539 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6540 VEC instead of VARRAY.
6541 * tree-vectorizer.h: Idem.
6542 * tree-data-ref.c (dump_data_references,
6543 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6544 initialize_data_dependence_relation, finalize_ddr_dependent,
6545 compute_all_dependences, find_data_references_in_loop,
6546 compute_data_dependences_for_loop, analyze_all_data_dependences,
6547 free_dependence_relation, free_dependence_relations,
6548 free_data_refs): Idem.
6549 * tree-data-ref.h (data_reference_p, subscript_p): New.
6550 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6551 VEC instead of VARRAY.
6552 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6553 (find_data_references_in_loop, compute_data_dependences_for_loop,
6554 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6555 dump_data_dependence_relations, free_dependence_relations,
6556 free_data_refs): Adjust declaration.
6557 (lambda_transform_legal_p): Move declaration here...
6558 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6559 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6560 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6561 vect_analyze_data_refs): Use VEC instead of VARRAY.
6562 * lambda.h (lambda_transform_legal_p): ...from here.
6563 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6564 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6565 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6566 tree-chrec.o): Don't depend on VARRAY_H.
6567
6568 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6569
6570 * rtl.def (Copyright): Update date.
6571 (DEPS_LIST): Change type of the second operand to 'int'.
6572 * target.h (Copyright): Update date.
6573 (struct gcc_target.speculate_insn): Change type of the second parameter
6574 to 'int'.
6575 * lists.c (Copyright): Update date.
6576 (alloc_DEPS_LIST): Change signature. Update reference to the second
6577 operand of the DEPS_LIST.
6578 (copy_DEPS_LIST_list): Update reference to the second operand of the
6579 DEPS_LIST.
6580 * rtl.h (Copyright): Update date.
6581 (alloc_DEPS_LIST): Update signature.
6582 * sched-int.h (Copyright): Update date.
6583 (ds_t): Change typedef to 'int'.
6584 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6585
6586 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6587
6588 * haifa-sched.c (Copyright): Update date.
6589 (try_ready): Change condition to restore non-speculative pattern
6590 of the instruction.
6591 (process_insn_depend_be_in_spec): Code to keep probability of the
6592 speculative dependence non-decreasing.
6593
6594 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
6595
6596 * regrename.c (replace_oldest_value_addr): Initialize a variable to
6597 shut up the compiler.
6598
6599 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
6600
6601 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6602 to use lib prefix for target.
6603 ($(T)libic_invalidate_array_4-200.a): Likewise.
6604 ($(T)libic_invalidate_array_4a.a): Likewise.
6605
6606 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
6607 J"orn Rennecke <joern.rennecke@st.com>
6608
6609 * superh.opt: New file.
6610 * sh.c (boardtype, osruntime): Remove.
6611 * superh.h (SUBTARGET_OPTIONS): Remove.
6612 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6613
6614 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
6615 arguments with ^ and/or [].
6616
6617 * config.gcc (sh-*-*): Add quoting to account for quirk of
6618 Solaris /bin/sh.
6619 Replace == with = in enable_incomplete_targets test.
6620
6621 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6622 with MASK_LITTLE_ENDIAN.
6623
6624 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6625 * config/sh/sh.opt: Added to some comments.
6626 * config/sh/superh.h: Removed some chaff.
6627
6628 * config/sh/sh.opt: Add m4-[1234]00* options.
6629 * config/sh/sh.c (sh_handle_option): Likewise.
6630 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6631 (ic_invalidate_array_4-100.o): New rule.
6632 ($(T)libic_invalidate_array_4-100.a): Likewise.
6633 (ic_invalidate_array_4-200.o): Likewise.
6634 ($(T)libic_invalidate_array_4-200.a): Likewise.
6635 (ic_invalidate_array_4a.o): Likewise.
6636 ($(T)libic_invalidate_array_4a.a): Likewise.
6637 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6638 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6639 m4-200*, and m4a*.
6640 * config/sh/crt1.asm: Merged in profiling code.
6641 * config/sh/superh.h (STARTFILE_SPEC): Override.
6642 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6643 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6644 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6645
6646 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6647 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6648 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6649
6650 * sh.opt (mpretend-cmove): New option.
6651 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6652 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6653 (movsicc): Add TARGET_PRETEND_CMOVE code.
6654
6655 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
6656
6657 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6658 s390_class_max_nregs): New function prototypes.
6659 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6660 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6661 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6662 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6663
6664 2006-03-26 Geoffrey Keating <geoffk@apple.com>
6665
6666 * dwarf2out.c (add_location_or_const_value_attribute): Call
6667 tree_add_const_value_attribute if nothing else works.
6668 (reference_to_unused): New.
6669 (rtl_for_decl_init): Use reference_to_unused to decide whether
6670 to output an initializer.
6671
6672 2006-03-27 Alan Modra <amodra@bigpond.net.au>
6673
6674 PR target/26459
6675 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6676 peephole removing spe frob_di_df_2.
6677
6678 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
6679
6680 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6681 (subscript_dependence_tester_1): Declared.
6682 (print_dir_vectors, print_dist_vectors): New.
6683 (debug_data_dependence_relation): New.
6684 (dump_data_dependence_relation): Print more details.
6685 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6686 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6687 (save_dist_v, save_dir_v, add_outer_distances,
6688 build_classic_dist_vector_1): New.
6689 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6690 Don't test for lambda_vector_lexico_pos.
6691 (same_access_functions, add_multivariate_self_dist,
6692 add_other_self_distances, dir_from_dist): New.
6693 (build_classic_dir_vector): Replace implementation almost identical to
6694 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6695 dir_from_dist.
6696 (subscript_dependence_tester_1): New.
6697 (subscript_dependence_tester): Handle the lexicographically negative
6698 distance vectors by recomputing the dependence relation.
6699 (compute_affine_dependence): Remove parameter loop_nest_depth.
6700 (compute_self_dependence): Don't call compute_subscript_distance.
6701 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6702 Add a parameter for the loop_nest.
6703 (find_loop_nest_1, find_loop_nest): New.
6704 (compute_data_dependences_for_loop): Compute the loop nest, and give
6705 up if the nest is not well formed.
6706 * tree-data-ref.h (loop_p): New.
6707 (struct data_dependence_relation): Replace size_vect field with
6708 loop_nest, a vec of loops.
6709 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6710 (DDR_LOOP_NEST): New.
6711 (print_dir_vectors, print_dist_vectors,
6712 debug_data_dependence_relation): Declared.
6713 (index_in_loop_nest): New.
6714 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6715 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6716 distance.
6717
6718 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
6719
6720 * simplify-rtx.c (simplify_relational_operation): Call
6721 simplify_relational_operation_1 even if mode is VOIDmode.
6722
6723 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
6724
6725 PR tree-optimization/26804
6726 * tree.h (DECL_CALL_CLOBBERED): New macro.
6727 (tree_decl_common): Add call_clobbered_flag.
6728 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6729 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6730 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6731 (mark_non_addressable): Ditto.
6732 * tree-ssa.c (verify_call_clobbered): New function.
6733 (verify_alias_info): Use it.
6734 * tree-pass.h (pass_reset_cc_flags): New prototype.
6735 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6736 (reset_cc_flags): New function.
6737 * passes.c (init_optimization_passes): Call reset_cc_flags after
6738 initializing referenced_vars.
6739
6740 2006-03-25 Uros Bizjak <uros@kss-loka.si>
6741 Roger Sayle <roger@eyesopen.com>
6742
6743 PR middle-end/26717
6744 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
6745 to 1.0 for non-real operands. Implement A / A optimization for
6746 complex operands.
6747
6748 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
6749
6750 * config/i386/i386.c (size_cost): Correct the comment for
6751 cost of storing fp registers.
6752 (i386_cost): Likewise.
6753 (i486_cost): Likewise.
6754 (pentium_cost): Likewise.
6755 (pentiumpro_cost): Likewise.
6756 (k6_cost): Likewise.
6757 (athlon_cost): Likewise.
6758 (k8_cost): Likewise.
6759 (pentium4_cost): Likewise.
6760 (nocona_cost): Likewise.
6761 (generic64_cost): Likewise.
6762 (generic32_cost): Likewise.
6763
6764 2006-03-24 Denis Chertykov <denisc@overta.ru>
6765
6766 * config/avr/avr-protos.h (extra_constraint): Delete.
6767 (extra_constraint_Q): New declaration.
6768 * config/avr/constraints.md: New file.
6769 * config/avr/avr.md: Include it.
6770 (REG_X, REG_Y, REG_Z, REG_W): New constants.
6771 (TMP_REGNO, ZERO_REGNO): Likewise.
6772 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
6773 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
6774 (extra_constraint): Delete.
6775 (extra_constraint_Q): Test for memory constraint 'Q'.
6776 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
6777 (REG_CLASS_FROM_LETTER): Delete.
6778 (CONST_OK_FOR_LETTER_P): Delete.
6779 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6780 (EXTRA_CONSTRAINT): Delete.
6781 (TMP_REGNO): Delete.
6782 (ZERO_REGNO): Delete.
6783
6784 2006-03-24 Jeff Law <law@redhat.com>
6785
6786 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
6787 directly. Call mark_new_vars_to_rename slightly earlier.
6788
6789 2006-03-24 Geoffrey Keating <geoffk@apple.com>
6790
6791 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
6792 (is_cxx): Likewise.
6793 (gen_compile_unit_die): Use new language types for Objective-C and
6794 Objective-C++.
6795 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
6796 DW_LANG_C_plus_plus.
6797
6798 PR 26793
6799 * config/t-darwin (crt3.o): Work around bug 26840.
6800 * config/darwin-crt3.c: Rewrite.
6801 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
6802
6803 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
6804
6805 * doc/invoke.texi: Document -femit-class-debug-always
6806 * common.opt: Add -femit-class-debug-always.
6807
6808 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
6809
6810 * config/s390/s390.c (s390_decompose_address): Allow SImode for
6811 index and base register.
6812 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
6813 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
6814 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
6815 REGNO_OK_FOR_INDEX_P.
6816 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
6817 ADDR_REGNO_P.
6818 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
6819 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
6820 REG_OK_FOR_BASE_P): Definitions removed.
6821
6822 2006-03-24 Jakub Jelinek <jakub@redhat.com>
6823
6824 PR middle-end/26611
6825 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
6826 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
6827 set yet or weren't marked as local yet.
6828
6829 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
6830
6831 * regrename.c (scan_rtx_address): Initialize a variable to shut up
6832 the compiler.
6833
6834 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
6835
6836 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
6837 (rs6000_legitimate_small_data_p): Delete.
6838 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
6839 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
6840 and make static. Add forward declaration. Update uses.
6841 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
6842 of offsettable_memref_p.
6843 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
6844 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
6845
6846 2006-03-24 Jeff Law <law@redhat.com>
6847
6848 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
6849 around bug in immediate-use iterator.
6850
6851 2006-03-24 Alan Modra <amodra@bigpond.net.au>
6852
6853 PR target/26607
6854 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
6855 or __LITTLE_ENDIAN__.
6856
6857 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
6858
6859 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
6860 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
6861 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
6862 * config/sh/sh.opt (mdiv=): Amend description.
6863 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
6864 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
6865 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
6866 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
6867 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
6868 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
6869 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
6870 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
6871 TARGET_DIVIDE_CALL_FP.
6872
6873 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6874
6875 * haifa-sched.c (choose_ready): Fix type of the local variable.
6876 Move local variables. Add comment.
6877 (check_reg_live): Change signature. Make callable from debugger.
6878 * sched-int.h (check_reg_live): Update signature.
6879 * sched-ebb.c (check_reg_live): Update parameters.
6880 * sched-rgn.c (check_reg_live): Ditto.
6881 (region_head_or_leaf_p): Check pointer before dereferencing.
6882 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
6883 before reload on optimization levels below 1.
6884
6885 2006-03-23 Richard Henderson <rth@redhat.com>
6886
6887 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
6888 tls symbols.
6889
6890 PR target/26347
6891 * config/alpha/predicates.md (local_symbolic_operand): Reject
6892 weak symbols.
6893
6894 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
6895
6896 PR tree-opt/26795
6897 * tree-ssa-pre.c (create_value_expr_from): Don't reject
6898 expressions which have overflowed constants.
6899
6900 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6901
6902 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
6903
6904 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
6905
6906 * cfgloopmanip.c (create_loop_notes): Removed.
6907 * final.c (final_scan_insn): Do not handle loop notes.
6908 * jump.c (squeeze_notes): Ditto.
6909 * cfglayout.c (skip_insns_after_block,
6910 duplicate_insn_chain): Ditto.
6911 * cfgcleanup.c (rest_of_handle_jump2): Do not call
6912 create_loop_notes.
6913 * cfgloop.h (create_loop_notes): Declaration removed.
6914
6915 2006-03-23 Richard Sandiford <richard@codesourcery.com>
6916
6917 * varasm.c (output_constant_pool): Restore fnname and fndecl
6918 arguments.
6919 (assemble_start_function): Adjust call accordingly.
6920 (assemble_end_function): Likewise.
6921
6922 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6923
6924 PR mudflap/26789
6925 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
6926
6927 PR mudflap/26790
6928 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
6929
6930 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6931
6932 PR driver/22600
6933 * system.h (ICE_EXIT_CODE): New macro.
6934 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
6935 (diagnostic_action_after_output): Likewise.
6936 * gcc.c (fatal_ice): New function.
6937 (execute): Use it instead of fatal.
6938 (fancy_abort): Likewise.
6939 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
6940
6941 2006-03-22 Jeff Law <law@redhat.com>
6942
6943 * loop-unroll.c (analyze_iv_to_split_insn): Handle
6944 iv_analyze_result returning false.
6945
6946 2006-03-22 Jie Zhang <jie.zhang@analog.com>
6947
6948 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
6949
6950 2006-03-22 Richard Henderson <rth@redhat.com>
6951
6952 PR middle-end/26084
6953 * except.c (duplicate_eh_regions_0): New.
6954 (duplicate_eh_region_1): Duplicate the children of the node as
6955 well as the node itself. Link them up properly.
6956 (duplicate_eh_region_2): Merge into ...
6957 (duplicate_eh_regions): ... here. Take copy_region argument, and
6958 copy only a sub-tree if asked. Simplify copying and fixup.
6959 (eh_region_outer_p): New.
6960 * except.h (duplicate_eh_regions): Update decl.
6961 (eh_region_outer_p): Declare.
6962 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
6963 (lower_omp_master): Likewise.
6964 (lower_omp_ordered): Likewise.
6965 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
6966 (move_stmt_r): Use it to remap labels. Handle recursion vs
6967 remap_decls_p properly.
6968 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
6969 (find_outermost_region_in_block): New.
6970 (new_label_mapper): New.
6971 (move_sese_region_to_fn): Copy eh information to the new function
6972 properly.
6973 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
6974 argument.
6975 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
6976 number.
6977
6978 2006-03-22 Richard Sandiford <richard@codesourcery.com>
6979
6980 * doc/md.texi (-mshared): Mention that -mshared code can be linked
6981 into shared libraries.
6982
6983 2006-03-22 Richard Sandiford <richard@codesourcery.com>
6984
6985 * doc/md.texi: Refer to i386/constraints.md instead of
6986 i386/predicates.md.
6987 * config/i386/constraints.md: New file, extracted from...
6988 * config/i386/predicates.md: ...here.
6989 * config/i386/i386.md: Include constraints.md.
6990
6991 2006-03-21 Jason Merrill <jason@redhat.com>
6992
6993 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
6994
6995 PR middle-end/20297
6996 * expr.c (init_block_move_fn): Force default visibility.
6997 (init_block_clear_fn): Likewise.
6998 * builtins.c (expand_builtin_fork_or_exec): Likewise.
6999 * targhooks.c (default_external_stack_protect_fail): Likewise.
7000
7001 2006-03-21 Richard Sandiford <richard@codesourcery.com>
7002
7003 * config/mips/predicates.md (const_call_insn_operand): Allow direct
7004 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
7005 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
7006 Use TARGET_OLDABI instead of !TARGET_NEWABI.
7007 (loadgp): Use mips_current_loadgp_style.
7008 (loadgp_noshared): New pattern.
7009 (sibcall_internal): Use MIPS_CALL.
7010 (sibcall_value_internal): Likewise.
7011 (sibcall_value_multiple_internal): Likewise.
7012 (call_internal): Likewise.
7013 (call_value_internal): Likewise.
7014 (call_value_multiple_internal): Likewise.
7015 (call_split): Use MIPS_CALL and add an 'S' constraint.
7016 (call_value_split): Likewise.
7017 (call_value_multiple_split): Likewise.
7018 * config/mips/mips.opt (-mabicalls): Tweak docstring.
7019 (-mshared): New option.
7020 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
7021 (mips_current_loadgp_style): Declare.
7022 * config/mips/mips.c (mips_classify_symbol): Avoid using
7023 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
7024 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
7025 TARGET_ABSOLUTE_ABICALLS.
7026 (override_options): Adjust comments. Improve the warning that is
7027 issued when -mabicalls and -G are used together.
7028 (mips_file_start): Remove comment.
7029 (mips_current_loadgp_style): New function.
7030 (mips_gnu_local_gp): New variable.
7031 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
7032 LOADGP_ABSOLUTE.
7033 (mips_output_function_prologue): Use mips_current_laodgp_style.
7034 (mips_expand_prologue): Call mips_emit_loadgp before emitting
7035 the cprestore instruction.
7036 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
7037 live for TARGET_ABSOLUTE_ABICALLS.
7038 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
7039 (ASM_SPEC): Pass down -mshared and -mno-shared.
7040 (MIPS_CALL): New macro.
7041 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
7042 definition.
7043 * doc/invoke.texi (-mabicalls): Update documentation.
7044 (-mshared): Document.
7045
7046 2006-03-21 Steve Ellcey <sje@cup.hp.com>
7047
7048 * config/ia64/unwind-hpux.c: New file.
7049 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
7050
7051 2006-03-21 Steve Ellcey <sje@cup.hp.com>
7052
7053 PR libgomp/26384
7054 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
7055
7056 2006-03-21 Jeff Law <law@redhat.com>
7057
7058 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
7059 type conversions of a VR_VARYING source to a wider type.
7060
7061 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
7062
7063 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
7064 tm_file on Solaris 10 and later.
7065 (sparc64-*-solaris2*): Likewise.
7066 (sparc-*-solaris2*): Likewise.
7067 * config/sol26.h: Rename to config/sol2-6.h.
7068 * config/sol2-10.h: New file.
7069
7070 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
7071
7072 PR tree-opt/26781
7073 * tree-ssa-pre.c (create_component_ref_by_pieces):
7074 Handle STRING_CST.
7075
7076 2006-03-21 Jakub Jelinek <jakub@redhat.com>
7077
7078 PR c++/26690
7079 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
7080 return it immediately.
7081
7082 2006-03-21 Michael Matz <matz@suse.de>
7083
7084 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
7085 New members.
7086 (remove_arc, add_arc): Update num_out_arcs member.
7087 (set_out_arc_insns_equiv_num): Returns nothing instead of number
7088 of out arcs.
7089 (cache_presence): New function.
7090 (compare_states_for_equiv): New function.
7091 (state_is_differed): Don't take number of outargs, adjust callers.
7092 Use new invariant for speeding up.
7093 (init_equiv_class): Create initial classes based on sorted
7094 input.
7095 (partition_equiv_class): Don't track out_arcs_num.
7096 (evaluate_equiv_classes): Call cache_presence on all states and
7097 sort them.
7098
7099 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
7100
7101 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
7102 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
7103 (bfin_valid_reg_p): Test for pseudos explicitly and use only
7104 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
7105 callers changed.
7106 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
7107 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
7108 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
7109 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7110 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
7111 macros.
7112 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
7113 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
7114 (REGNO_REG_CLASS): ARGP is in PREGS.
7115 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
7116 IREGS.
7117 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
7118 to deal with those addresses.
7119 * addresses.h: New file.
7120 * caller-save.c: Include "addresses.h".
7121 (init_caller_save): Use new base_reg_class function.
7122 * rtl-factoring.c: Include "addresses.h".
7123 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
7124 * recog.c: Include "addresses.h".
7125 (preprocess_constraints): Use new base_reg_class function.
7126 * regrename.c: Include "addresses.h".
7127 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
7128 functions. Keep track of a new var INDEX_CODE to compute valid
7129 classes.
7130 (replace_oldest_value_addr): Likewise.
7131 (replace_oldest_value_mem): Use base_reg_class.
7132 * reload.c: Include "addresses.h".
7133 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
7134 (find_reloads): Use new base_reg_class function.
7135 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
7136 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
7137 all callers and prototype changed.
7138 * reload1.c: Include "addresses.h".
7139 (maybe_fix_stack_asms): Use base_reg_class.
7140 * regclass.c: Include "addresses.h".
7141 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
7142 (init_reg_autoinc): Use new base_reg_class function.
7143 (record_reg_classes): Likewise.
7144 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
7145 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
7146 Use new args to compute necessary class.
7147
7148 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
7149 regrename.o, rtl-factoring.o): Update dependencies.
7150 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
7151 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
7152 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
7153 REG_OK_FOR_INDEX_P): Delete documentation.
7154
7155 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
7156
7157 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
7158 from V7 to V9 for Solaris 7 and above.
7159
7160 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
7161
7162 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
7163 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
7164 argument pointers may not alias any other storage.
7165 * common.opt: Define option -fargument-noalias-anything.
7166 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
7167 alias semantics is specified by flag_argument_noalias > 2.
7168
7169 2006-03-20 Jeff Law <law@redhat.com>
7170
7171 * tree-pass.h (pass_phi_only_copy_prop): Delete.
7172 (pass_phi_only_cprop): Declare.
7173 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
7174 with phi_only_cprop
7175 * tree-ssa-dom.c (degenerate_phi_result): New function.
7176 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
7177 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
7178 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
7179 (eliminate_degenerate_phis): Likewise.
7180 (pass_phi_only_cprop): New pass descriptor.
7181 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
7182 support code. Callers updated.
7183 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
7184 (store_copy_prop): Likewise.
7185 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
7186
7187 2006-03-20 Jason Merrill <jason@redhat.com>
7188
7189 PR c++/21764
7190 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
7191 (push_visibility, pop_visibility): Likewise.
7192 * c-pragma.h: Declare them.
7193
7194 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
7195
7196 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
7197
7198 * config/sh/sh.c (find_regmode_weight): Change the type of the first
7199 parameter and use get_ebb_head_tail.
7200 (sh_md_init_global): Adjust uses of find_regmode_weight.
7201
7202 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
7203
7204 * function.h (struct function) <x_tail_recursion_reentry>:
7205 Rename to x_stack_check_probe_note.
7206 (tail_recursion_reentry): Rename to stack_check_probe_note.
7207 * function.c: Replace tail_recursion_reentry with
7208 stack_check_probe_note everywhere.
7209 (expand_function_start): Only emit a note for
7210 stack_check_probe_note with -fstack-protect.
7211 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
7212
7213 * emit-rtl.c (remove_unnecessary_notes): Remove.
7214 (pass_remove_unnecessary_notes): Remove.
7215 * rtl.h (remove_unnecessary_notes): Remove prototype.
7216 * final.c (final_start_function): Don't call remove_unnecessary_notes.
7217 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
7218 * passes.c (pass_remove_unnecessary_notes): Don't run it.
7219
7220 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
7221
7222 PR tree-opt/26629
7223 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
7224 (valid_in_set): Handle ARRAY_REF.
7225 Change "if min_variant or VH" to asserts.
7226 (create_component_ref_by_pieces): Handle ARRAY_REF.
7227 (create_expression_by_pieces): Likewise.
7228 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
7229
7230 2006-03-20 David Edelsohn <edelsohn@gnu.org>
7231
7232 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
7233 is operand of switch, not str[0].
7234
7235 2006-03-20 Alan Modra <amodra@bigpond.net.au>
7236
7237 * config/rs6000/rs6000.c (rs6000_handle_option): Use
7238 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
7239
7240 2006-03-19 David Edelsohn <edelsohn@gnu.org>
7241
7242 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
7243 end of insn_extra_address_constraint declaration.
7244
7245 2006-03-19 David Edelsohn <edelsohn@gnu.org>
7246
7247 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
7248 (no-sum-in-toc): Same.
7249 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
7250 variables.
7251 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
7252 NO_FP_IN_TOC for -fPIC instead of mask.
7253
7254 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
7255 (BOOT_LDFLAGS): Delete.
7256 (LDFLAGS): Delete.
7257 * config/rs6000/t-aix52: Same.
7258
7259 * config/rs6000/rs6000.md (store_multiple_power): Delete.
7260 (stmsi[345678]_power): New.
7261
7262 2006-03-17 Steve Ellcey <sje@cup.hp.com>
7263
7264 * config/ia64/ia64.opt: Add empty line to end of file.
7265
7266 2006-03-17 Richard Guenther <rguenther@suse.de>
7267
7268 PR middle-end/26721
7269 * builtins.c (get_pointer_alignment): For component style references
7270 adjust alignment to the component type alignment. Make sure
7271 to adjust alignment for component access of constants.
7272
7273 2006-03-17 David Edelsohn <edelsohn@gnu.org>
7274
7275 * config/rs6000/rs6000.md (strlensi): Emit barrier after
7276 unconditional jump.
7277
7278 2006-03-17 Paul Brook <paul@codesourcery.com>
7279
7280 * doc/install.texi: Docuemnt --with-mode.
7281 * config.gcc: Add --with-mode for arm*-*-*.
7282 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
7283
7284 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
7285
7286 * sh.c (max_labelno_before_reorg): New variable.
7287 (sh_reorg): Initialize it.
7288 (find_barrier): Check max_labelno_before_reorg before using
7289 label_to_alignment. Take length of explicit alignment insns
7290 into account. When seeing a UNSPECV_CONST_END, return it.
7291
7292 * sh.c (fixup_mova): Set mode of affected label to QImode.
7293 (untangle_mova): New function.
7294 (find_barrier): Use it. Check mode of label before decrementing
7295 num_mova.
7296 (sh_reorg): Likewise.
7297 Set mode of all insns back to VOIDmode.
7298
7299 * sh.c (MOVA_LABELREF): New macro.
7300 (mova_p, fixup_mova, sh_reorg): Use it.
7301 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
7302 ADDR_DIFF_VEC matches mova.
7303
7304 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
7305
7306 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7307 with ATTRIBUTE_UNUSED.
7308
7309 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
7310
7311 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7312 pointer, instead of assuming it is possible to derive the
7313 correct args size from a call insn.
7314
7315 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7316
7317 * rtl.h (CONST_INT_P): Define.
7318 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7319 instead of GET_CODE(x) == CONST_INT.
7320 (vax_rtx_costs): Likewise.
7321 (vax_output_int_move): Likewise.
7322 (vax_output_int_add): Likewise.
7323 (legitimate_constant_address_p): Likewise.
7324 (index_term_p): Likewise.
7325 * config/vax/vax.h (PRINT_OPERAND): Likewise.
7326 * config/vax/vax.md (and<mode>3): Likewise.
7327 (ashrsi3): Likewise.
7328 (extv): Likewise.
7329 (movstricthi): Likewise.
7330 (movstrictqi): Likewise.
7331 (rotrsi3): Likewise.
7332 (five unnamed insns): Likewise.
7333
7334 2006-03-16 Geoffrey Keating <geoffk@apple.com>
7335
7336 * doc/tm.texi (SDB and DWARF): Add extra parameter to
7337 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
7338 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
7339 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
7340 Pass to ASM_OUTPUT_DWARF_OFFSET.
7341 * dwarf2out.c (debug_frame_section): New.
7342 (output_call_frame_info): Use debug_frame_section. Pass it to
7343 dw2_asm_output_offset.
7344 (output_die): Pass appropriate section to dw2_asm_output_offset.
7345 (output_compilation_unit_header): Likewise.
7346 (output_pubnames): Likewise.
7347 (output_aranges): Likewise.
7348 (enum dw_val_class): Break dw_val_class_lbl_offset into
7349 dw_val_class_lineptr and dw_val_class_macptr.
7350 (add_AT_lbl_offset): Delete.
7351 (add_AT_lineptr): New.
7352 (add_AT_macptr): New.
7353 (AT_lbl): Expect a lineptr or macptr.
7354 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
7355 (attr_checksum): Likewise.
7356 (same_dw_val_p): Likewise.
7357 (size_of_die): Likewise.
7358 (value_format): Likewise.
7359 (output_die): Likewise.
7360 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
7361 add_AT_lbl_offset.
7362 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7363 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
7364 * config/darwin-protos.h (darwin_file_start): New.
7365 (darwin_asm_output_dwarf_offset): New.
7366 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7367 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
7368 darwin_file_start.
7369 * config/darwin.c (darwin_emit_unwind_label): Don't output label
7370 if not EH section; simplify.
7371 (darwin_file_start): New.
7372 (darwin_asm_output_dwarf_offset): New.
7373 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
7374 mark as 'debug'.
7375 (DEBUG_INFO_SECTION): Likewise.
7376 (DEBUG_ABBREV_SECTION): Likewise.
7377 (DEBUG_ARANGES_SECTION): Likewise.
7378 (DEBUG_MACINFO_SECTION): Likewise.
7379 (DEBUG_LINE_SECTION): Likewise.
7380 (DEBUG_LOC_SECTION): Likewise.
7381 (DEBUG_PUBNAMES_SECTION): Likewise.
7382 (DEBUG_STR_SECTION): Likewise.
7383 (DEBUG_RANGES_SECTION): Likewise.
7384 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
7385 (ASM_OUTPUT_DWARF_OFFSET): New.
7386
7387 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
7388
7389 * config.gcc (tm_defines): Always add to previous value rather
7390 than replacing it.
7391
7392 2006-03-16 Richard Sandiford <richard@codesourcery.com>
7393
7394 * config/mips/predicates.md (splittable_const_int_operand): New,
7395 split from move_operand.
7396 (splittable_symbolic_operand): New.
7397 (move_operand): Add commentary. Use splittable_const_int_operand.
7398 Inline mips_atomic_symbolic_constant_p.
7399 * config/mips/mips.md: Add combine splitters for handling moves
7400 of splittable_const_int_operands and splittable_symbolic_operands.
7401 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
7402 (mips_split_symbol): Declare.
7403 (mips_move_integer): Declare.
7404 * config/mips/mips.c (mips_split_p): Make global.
7405 (TARGET_MIN_ANCHOR_OFFSET): Override default.
7406 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
7407 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
7408 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7409 (mips_offset_within_object_p): Handle block symbols.
7410 (mips_atomic_symbolic_constant_p): Delete.
7411 (mips_cannot_force_const_mem): Return false for constants that
7412 mips_legitimize_move can handle.
7413 (mips_use_blocks_for_constant_p): New function.
7414 (mips_split_symbol): Make global.
7415 (mips_move_integer): Likewise. Add a temporary register argument.
7416 (mips_legitimize_const_move): Use splittable_const_int_operand and
7417 splittable_symbolic_operand.
7418 (mips_use_anchors_for_symbol_p): New function.
7419 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7420 (mips_split_p): Declare.
7421
7422 2006-03-16 Richard Sandiford <richard@codesourcery.com>
7423
7424 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7425 (mips*-*-linux*): Likewise.
7426
7427 2006-03-16 Roger Sayle <roger@eyesopen.com>
7428 Daniel Speyer <dspeyer@wam.umd.edu>
7429
7430 PR middle-end/18259
7431 * tree-dump.c (dump_real): New function.
7432 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7433 * Makefile.in (REAL_H): New macro for dependencies on real.h.
7434 (tree-dump.o): Add $(REAL_H) to the dependencies.
7435
7436 2006-03-16 Roger Sayle <roger@eyesopen.com>
7437
7438 PR middle-end/21781
7439 * real.c (real_from_string): If the mantissa is zero, don't bother
7440 parsing the exponent as the result should always be zero.
7441
7442 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
7443
7444 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7445
7446 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7447
7448 * config/ia64/ia64.c (stops_p): Added explicit initialization.
7449 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7450 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7451 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7452 ia64_sched_finish_global): New static functions to implement
7453 hooks from gcc_target.sched.
7454 (spec_check_no, max_uid, pending_data_specs): New static variables.
7455 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7456 ia64_spec_check_src_p): New static functions.
7457 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7458 (TARGET_SCHED_ADJUST_COST): Removed.
7459 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7460 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7461 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7462 TARGET_SCHED_GEN_CHECK,
7463 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7464 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7465 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7466 Fixed to handle speculation checks.
7467 (rtx_needs_barrier): Fixed to handle speculative loads and
7468 their checks.
7469 (ia64_variable_issue): Added code to count speculative loads and their
7470 checks.
7471 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7472 speculative loads.
7473 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7474 New enumerations.
7475 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7476 New constants.
7477 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7478 (ia64_reorg): Reset stops_p to NULL after it is freed.
7479 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7480 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7481 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
7482 chk_a.
7483 (data_speculative, control_speculative, check_load): New attributes.
7484 (mov<mode>_advanced, mov<mode>_speculative,
7485 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7486 zero_extend<mode>di2_speculative,
7487 zero_extend<mode>di2_speculative_advanced): New patterns for
7488 data and control speculative loads.
7489 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7490 check loads.
7491 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7492 New pattern for data and control speculation checks.
7493 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7494 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7495 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7496 Auxiliary definitions for the patterns.
7497 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7498 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7499 constraints.
7500 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7501 for speculation.
7502 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7503 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7504 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7505 New resource constraints.
7506 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7507 for speculation.
7508 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7509 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7510 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7511 msched-in-control-spec, msched-ldc, msched-control-ldc,
7512 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7513 msched-prefer-non-control-spec-insns,
7514 msched-count-spec-in-critical-path): New flags to tune speculative
7515 scheduling.
7516 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7517 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7518 msched-in-control-spec, msched-ldc, msched-control-ldc,
7519 msched-spec-verbose, msched-prefer-non-data-spec-insns,
7520 msched-prefer-non-control-spec-insns,
7521 msched-count-spec-in-critical-path): Document new flags.
7522
7523 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7524
7525 * target.h (struct spec_info_def): New opaque declaration.
7526 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7527 speculate_insn, needs_block_p, gen_check,
7528 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7529 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7530 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7531 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7532 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7533 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7534 gcc_target.sched.
7535 (TARGET_SCHED): Use new macros.
7536 * rtl.h (copy_DEPS_LIST_list): New prototype.
7537 * sched-int.h (struct sched_info): Change signature of new_ready field,
7538 adjust all initializations. New fields: add_remove_insn,
7539 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7540 region_head_or_leaf_p.
7541 (struct spec_info_def): New structure declaration.
7542 (spec_info_t): New typedef.
7543 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7544 recovery_block, orig_pat.
7545 (glat_start, glat_end): New variables declaraions.
7546 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7547 New access macros.
7548 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7549 DETACH_LIFE_INFO, USE_GLAT.
7550 (enum SPEC_SCHED_FLAGS): New enumeration.
7551 (NOTE_NOTE_BB_P): New macro.
7552 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7553 attach_life_info, debug_spec_status, check_reg_live): New functions.
7554 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7555 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7556 sched-ebb.c
7557 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7558 * ddg.c (get_block_head_tail): Adjust all uses.
7559 * modulo-sched.c (get_block_head_tail): Adjust all uses.
7560 (sms_sched_info): Initialize new fields.
7561 (contributes_to_priority): Removed.
7562 * haifa-sched.c (params.h): New include.
7563 (get_block_head_tail): Adjust all uses.
7564 (ISSUE_POINTS): New macro.
7565 (glat_start, glat_end): New global variables.
7566 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7567 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7568 old_last_basic_block, before_recovery, current_sched_info_var,
7569 rgn_n_insns, luid): New static variables.
7570 (insn_cost1): New function. Move logic from insn_cost to here.
7571 (find_insn_reg_weight1): New function. Move logic from
7572 find_insn_reg_weight to here.
7573 (reemit_notes, move_insn, max_issue): Change signature.
7574 (move_insn1): Removed.
7575 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7576 extend_bb): New static functions to support extension of scheduler's
7577 data structures.
7578 (generate_recovery_code, process_insn_depend_be_in_spec,
7579 begin_speculative_block, add_to_speculative_block,
7580 init_before_recovery, create_recovery_block, create_check_block_twin,
7581 fix_recovery_deps): New static functions to support
7582 generation of recovery code.
7583 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7584 restore_bb_notes, move_block_after_check, move_succs): New static
7585 functions to support ebb scheduling.
7586 (init_glat, init_glat1, attach_life_info1, free_glat): New static
7587 functions to support handling of register live information.
7588 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7589 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7590 add_jump_dependencies): New static functions.
7591 (check_cfg, has_edge_p, check_sched_flags): New static functions for
7592 consistancy checking.
7593 (debug_spec_status): New function to call from debugger.
7594 (priority): Added code to handle speculation checks.
7595 (rank_for_schedule): Added code to distinguish speculative instructions.
7596 (schedule_insn): Added code to handle speculation checks.
7597 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7598 Fixed to handle ebbs.
7599 (move_insn): Added code to handle ebb scheduling.
7600 (max_issue): Added code to use ISSUE_POINTS of instructions.
7601 (choose_ready): Added code to choose between speculative and
7602 non-speculative instructions.
7603 (schedule_block): Added code to handle ebb scheduling and scheduling of
7604 speculative instructions.
7605 (sched_init): Initialize new variables.
7606 (sched_finish): Free new variables. Print statistics.
7607 (try_ready): Added code to handle speculative instructions.
7608 * lists.c (copy_DEPS_LIST_list): New function.
7609 * sched-deps.c (extend_dependency_caches): New function. Move logic
7610 from create_dependency_caches to here.
7611 (get_dep_weak, ds_merge): Make global.
7612 * genattr.c (main): Code to output prototype for
7613 dfa_clear_single_insn_cache.
7614 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7615 (output_dfa_clean_insn_cache_func): Code to output
7616 dfa_clear_single_insn_cache function.
7617 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
7618 n_insns.
7619 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7620 Removed.
7621 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7622 New static variables.
7623 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7624 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7625 struct sched_info.
7626 (ebb_sched_info): Initialize new fields.
7627 (get_block_head_tail): Adjust all uses.
7628 (compute_jump_reg_dependencies): Fixed to use glat_start.
7629 (schedule_ebb): Code to remove unreachable last block.
7630 (schedule_ebbs): Added code to update register live information.
7631 * sched-rgn.c (region_sched_info): Initialize new fields.
7632 (get_block_head_tail): Adjust all uses.
7633 (last_was_jump): Removed. Adjust users.
7634 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7635 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7636 Implement new hooks.
7637 (check_dead_notes1): New static function.
7638 (struct region): New fields: dont_calc_deps, has_real_ebb.
7639 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7640 (BB_TO_BLOCK): Fixed to handle EBBs.
7641 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7642 (ebb_head): New static variable.
7643 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7644 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7645 new fields.
7646 (compute_dom_prob_ps): New assertion.
7647 (check_live_1, update_live_1): Fixed to work with glat_start instead of
7648 global_live_at_start.
7649 (init_ready_list): New assertions.
7650 (can_schedule_ready_p): Split update code to begin_schedule_ready.
7651 (new_ready): Add support for BEGIN_CONTROL speculation.
7652 (schedule_insns): Fixed code that updates register live information
7653 to handle EBBs.
7654 (schedule_region): Fixed to handle EBBs.
7655 (init_regions): Use extend_regions and check_dead_notes1.
7656 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7657 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7658 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7659 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7660 TARGET_SCHED_GEN_CHECK,
7661 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7662 TARGET_SCHED_SET_SCHED_FLAGS): Document.
7663 * doc/invoke.texi (max-sched-insn-conflict-delay,
7664 sched-spec-prob-cutoff): Document.
7665
7666 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7667
7668 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7669 inter_tick, queue_index.
7670 (struct sched_info): Change signature of init_ready_list field.
7671 Adjust all initializations.
7672 (RESOLVED_DEPS): New access macro.
7673 (ready_add): Remove prototype.
7674 (try_ready): Add prototype.
7675 * sched-rgn.c (init_ready_list): Use try_ready.
7676 (schedule_region): Initialize
7677 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7678 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
7679 (init_ready_list): Use try_ready.
7680 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7681 * lists.c (remove_list_elem): Remove `static'.
7682 (remove_free_INSN_LIST_elem): New function.
7683 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7684 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7685 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7686 New constants.
7687 (readyp): New variable.
7688 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7689 change_queue_index, resolve_dep): New static functions.
7690 (try_ready): New function. Adjust callers in sched-rgn.c and
7691 sched-ebb.c to use it instead of ready_add.
7692 (clock_var): Move at the begining of file.
7693 (rank_for_schedule): Fix typo.
7694 (queue_insn): Add assertion. Handle QUEUE_INDEX.
7695 (ready_lastpos): Enforce assertion.
7696 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
7697 update all callers.
7698 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7699 (schedule_insn): Rewrite to use try_ready and resolve_dep.
7700 (queue_to_ready): Use free_INSN_LIST_list.
7701 (early_queue_to_ready): Fix typo.
7702 (schedule_block): Init readyp. Move init_ready_list call after the
7703 initialization of clock_var. Fix error in rejecting insn by
7704 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
7705 that previously corrected INSN_TICKs. Add code for handling
7706 QUEUE_INDEX.
7707 (set_priorities): Fix typo.
7708 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7709 Clarify comment and code that keeps current_sched_info->next_tail
7710 non-null.
7711
7712 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7713
7714 * sched-rgn.c (extend_rgns): New static function.
7715 (find_rgns): Use it.
7716 (gather_region_statistics, print_region_statistics): New static
7717 functions.
7718 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7719 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7720
7721 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7722 Andrey Belevantsev <abel@ispras.ru>
7723
7724 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7725 * lists.c (unused_deps_list): New variable.
7726 (free_list): Add assertions to verify the proper distinguishing
7727 between INSN_LISTs and DEPS_LISTs.
7728 (find_list_elem, remove_list_elem, remove_list_node): New static
7729 functions.
7730 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7731 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7732 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7733 (alloc_INSN_LIST): Assert that the list we're working on is indeed
7734 an INSN_LIST.
7735 (free_INSN_LIST_node): Likewise.
7736 * modulo-sched.c (current_sched_info): Initialize flags field.
7737 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7738 * rtl.def (DEPS_LIST): Define.
7739 * rtl.h: Declare new functions from lists.c.
7740 * sched-deps.c (spec_dependency_cache): New static variable.
7741 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
7742 (add_dependence): Change return type to void. Move the logic to ...
7743 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
7744 (delete_all_dependences): Add comment about forward_dependency_cache.
7745 Handle spec_dependency_cache. Handle DEPS_LISTs.
7746 (fixup_sched_groups): Clarify the change of priority of output
7747 and anti dependencies.
7748 (sched_analyze_2): Adjust add_dependence calls to create data
7749 speculative dependence.
7750 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
7751 Adjust all callers. Handle DEPS_LISTS.
7752 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
7753 presence of speculation.
7754 (init_dependency_caches, free_dependency_caches):
7755 Handle spec_dependency_cache.
7756 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
7757 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
7758 New static functions.
7759 (add_or_update_back_dep, add_or_update_back_forw_dep,
7760 add_back_forw_dep, delete_back_forw_dep): New functions.
7761 * sched-int.h (ds_t, dw_t): New typedefs.
7762 (struct sched_info): Add new field flags.
7763 (struct haifa_insn_data): Add new bitfield has_internal_dep.
7764 Prototype new sched-deps.c functions.
7765 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
7766 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
7767 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
7768 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
7769 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
7770 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
7771 New constants.
7772 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
7773 New enums.
7774 * sched-rgn.c (current_sched_info): Initialize flags field.
7775 (schedule_insns): Initialize current_sched_info before the sched_init
7776 call.
7777 * sched-ebb.c (current_sched_info): Initialize flags field.
7778 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
7779 Call add_or_update_back_dep instead of add_dependence.
7780 Create control speculative dependencies.
7781 (schedule_insns): Initialize current_sched_info before the sched_init
7782 call.
7783
7784 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
7785
7786 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
7787 fs->signal_frame.
7788 (sh_fallback_frame_state): Likewise.
7789
7790 2006-03-15 Geoffrey Keating <geoffk@apple.com>
7791
7792 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
7793 Do switch on default_use_cxa_atexit.
7794 (powerpc*-*-darwin*): Build crt2.o on powerpc.
7795 * config/darwin-crt3.o: New.
7796 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
7797 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
7798 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
7799 OS version.
7800 * config/rs6000/t-darwin: Move crt2.o building to here.
7801 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
7802 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
7803 of __cxa_atexit.
7804
7805 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7806
7807 * config/vax/vax.c (nonindexed_address_p): Change logical negation
7808 from '! xxx' to '!xxx' for coding-style conformance.
7809 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
7810 (EXTRA_CONSTRAINT): Likewise.
7811 * config/vax/vax.md (four unnamed insns): Likewise.
7812
7813 2006-03-15 Paul Brook <paul@codesourcery.com>
7814
7815 * config/arm/arm.c (minipool_pad): New.
7816 (add_minipool_forward_ref): Include pool alignment padding in address
7817 calculation.
7818 (push_minipool_fix): Set minipool_pad.
7819 (minipool_pad): Ditto.
7820
7821 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7822
7823 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
7824 instead of GET_CODE() == MEM and REG_P() instead of
7825 GET_CODE() == REG.
7826 (print_operand_address): Likewise.
7827 (vax_address_cost): Likewise.
7828 (vax_rtx_costs): Likewise.
7829 (vax_notice_update_cc): Likewise.
7830 (vax_output_int_add): Likewise.
7831 (INDEX_REGISTER_P): Likewise.
7832 (BASE_REGISTER_P): Likewise.
7833 (nonindexed_address_p): Likewise.
7834 (vax_mode_dependent_address_p): Likewise.
7835 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
7836 (PRINT_OPERAND): Likewise.
7837 * config/vax/vax.md (ashlsi3): Likewise.
7838 (ashlsi3): Likewise.
7839 (some more unnamed insns): Likewise.
7840
7841 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
7842
7843 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
7844 iterator-style macro.
7845 (mark_control_dependent_edges_necessary): Update the use of
7846 EXECUTE_IF_CONTROL_DEPENDENT.
7847
7848 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
7849
7850 * config/sh/predicates.md (cache_address_operand): Special.
7851 (ua_address_operand): Likewise.
7852
7853 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
7854
7855 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
7856 loop notes.
7857 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
7858
7859 2006-03-15 Andreas Schwab <schwab@suse.de>
7860
7861 * gensupport.c (identify_predicable_attribute): Don't free p_false
7862 when it is still in use.
7863
7864 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
7865
7866 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
7867 the default setting here.
7868
7869 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
7870
7871 * tree-pass.h (pass_cfg): Remove.
7872 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
7873 * passes.c (pass_cfg): Don't run it.
7874
7875 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
7876
7877 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
7878 * reg-stack.c (stack_regs_mentioned_data): Change the type to
7879 VEC(char,heap) *.
7880 (stack_regs_mentioned): Update the uses of
7881 stack_regs_mentioned_data. Don't access the array beyond its
7882 end.
7883 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
7884 Don't include gt-reg-stack.h.
7885
7886 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
7887 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
7888
7889 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
7890
7891 PR middle-end/26684
7892 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
7893 STACK_REGS.
7894
7895 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7896
7897 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
7898
7899 2006-03-14 Richard Guenther <rguenther@suse.de>
7900
7901 PR tree-optimization/26672
7902 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
7903 SSA form.
7904
7905 2006-03-14 Richard Guenther <rguenther@suse.de>
7906
7907 PR tree-optimization/26667
7908 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
7909 node for the callees. Always allow inlining if it will shrink
7910 the function size.
7911
7912 2006-03-14 Richard Guenther <rguenther@suse.de>
7913
7914 PR middle-end/26659
7915 * builtins.c (get_pointer_alignment): Prefer alignment
7916 information from decls over that from types.
7917
7918 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
7919
7920 PR target/26657
7921 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
7922
7923 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
7924
7925 * config/rs6000/rs6000.opt (mdlmzb): New option.
7926 (msched-prolog, msched-epilog): Use Var not Mask.
7927 * doc/invoke.texi (-mdlmzb): Document.
7928 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
7929 MASK_SCHED_PROLOG.
7930 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
7931 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
7932
7933 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
7934
7935 PR rtl-optimization/25739
7936 * bt-load.c (augment_live_range): Free tos pointer.
7937
7938 * gensupport.c (identify_predicable_attribute): Free
7939 p_false pointer.
7940 * gcov.c (create_file_names): Free name pointer.
7941
7942 2006-03-13 Roger Sayle <roger@eyesopen.com>
7943
7944 PR middle-end/26557
7945 * stmt.c (emit_case_nodes): Handle the case where the index is a
7946 CONST_INT, where the comparison mode is specified by the index type.
7947
7948 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7949
7950 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
7951 is defined.
7952
7953 2006-03-13 Richard Sandiford <richard@codesourcery.com>
7954
7955 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
7956 (*branch_fp_inverted): Likewise.
7957
7958 2006-03-13 Jakub Jelinek <jakub@redhat.com>
7959
7960 PR middle-end/25989
7961 * omp-low.c (expand_omp_for_generic): Mark istart0
7962 and iend0 as addressable.
7963
7964 2006-03-13 Jie Zhang <jie.zhang@analog.com>
7965
7966 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
7967
7968 2006-03-13 Jeff Law <law@redhat.com>
7969
7970 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
7971 virtual operands are interesting.
7972 (vrp_visit_stmt): Corresponding changes.
7973
7974 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
7975
7976 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
7977 of RETS.
7978 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
7979 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
7980 * config/bfin/crti.S: Use it instead of __PIC__.
7981 * config/bfin/crtn.S: Likewise.
7982
7983 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
7984 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
7985 not if flag_pic.
7986 Lose 'G' modifier for call operand.
7987 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
7988 recognize 'G' modifier.
7989
7990 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
7991
7992 PR middle-end/18859
7993 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
7994 * stmt.c (expand_case): Likewise.
7995
7996 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
7997
7998 PR rtl-optimization/26254
7999 * loop-invariant.c (seq_insns_valid_p): New function.
8000 (move_invariant_reg): Only emit new code if it is valid.
8001
8002 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8003
8004 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
8005 Removed.
8006 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
8007 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
8008 (commit_one_edge_insertion): Do not look for loop notes.
8009
8010 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8011
8012 * jump.c (follow_jumps): Do not check for loop notes. Move check for
8013 flag_test_coverage out of loop.
8014
8015 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8016
8017 * final.c (shorten_branches): Remove outdated comment, and turn
8018 the if branch that guards it to continue.
8019
8020 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8021
8022 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
8023 * cfgloop.h (struct loop): Remove unused fields.
8024
8025 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
8026
8027 * doc/invoke.texi (-fdump-rtl-loop): Remove.
8028 (-dL, -fdump-rtl-loop2): Update the dump file names
8029
8030 * doc/invoke.texi: Update dump file names.
8031
8032 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
8033
8034 * predict.c (estimate_probability): Remove.
8035 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
8036 * basic-block.h (estimate_probability): Remove prototype.
8037 * passes.c (finish_optimization_passes): Dump branch prediction or
8038 profiling heuristics to the .profile tree dump.
8039 (init_optimization_passes): Unqueue pass_branch_prob.
8040
8041 * doc/invoke.texi (-fdump-rtl-bp): Remove.
8042
8043 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8044
8045 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
8046 * rtl.h (LABEL_NEXTREF): Remove field accessor.
8047
8048 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
8049
8050 * function.h (frame_offset_overflow): Declare.
8051 * function.c (frame_offset_overflow): New function.
8052 (assign_stack_local_1): Call it to detect that the offset overflows.
8053 * cfgexpand.c (alloc_stack_frame_space): Likewise.
8054
8055 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8056
8057 * config/sh/sh.c: Include alloc-pool.h.
8058 (label_ref_list_pool): New alloc pool.
8059 (label_ref_list_t): New type for lists of labels.
8060 (struct pool_node): Make wend a label_ref_list_t.
8061 (add_constant): Use the new type, eradicate LABEL_NEXTREF
8062 references.
8063 (dump_table): Likewise.
8064 (sh_reorg): Set up the alloc pool before using add_constant and
8065 dump_table, and destroy it when finishing.
8066
8067 2006-03-11 Richard Sandiford <richard@codesourcery.com>
8068
8069 * config/mips/mips.c: Remove redundant comment.
8070
8071 2006-03-10 Jason Merrill <jason@redhat.com>
8072
8073 PR c/26004
8074 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
8075 the target was declared 'register'.
8076
8077 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
8078
8079 * genpreds.c (write_insn_constraint_len): Change definition of
8080 insn_constraint_len to return size_t to match the declaration.
8081
8082 2006-03-10 DJ Delorie <dj@redhat.com>
8083
8084 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
8085 start at zero.
8086 (m32c_expand_insv): Fix test for an AND mask.
8087
8088 2006-03-10 Richard Guenther <rguenther@suse.de>
8089
8090 PR middle-end/26565
8091 * builtins.c (get_pointer_alignment): Handle component
8092 references for field alignment.
8093
8094 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8095
8096 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
8097 when building with libgloss.
8098 (sh*elf): Implement --without-fp option.
8099 (sh64-superh-linux*): Don't multilib.
8100
8101 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8102
8103 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
8104
8105 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
8106
8107 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
8108 Set it when one of the replacement functions returned true.
8109 Return TODO_cleanup_cfg if cfgchanged is true.
8110 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
8111
8112 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
8113
8114 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
8115 instead of gen_lowpart.
8116
8117 2006-03-09 Richard Sandiford <richard@codesourcery.com>
8118
8119 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
8120 interface.
8121 (mips_output_order_conditional_branch): Declare.
8122 * config/mips/mips.h (MIPS_BRANCH): New macro.
8123 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
8124 for the comparison. Use gen_condjump.
8125 (mips_output_conditional_branch): Rework interface to take the
8126 asm templates for a direct branch and the inverse of a direct branch.
8127 (mips_output_order_conditional_branch): New function.
8128 (mips_builtin_branch_and_move): New function.
8129 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
8130 branch condition. Use gen_single_cc as the condition for
8131 __builtin_mips_upper_* or __builtin_mips_lower_*.
8132 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
8133 Use VOIDmode for the branch condition.
8134 * config/mips/predicates.md (order_operator): New predicate.
8135 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
8136 (branch_fp): Rename to...
8137 (*branch_fp): ...this. Remove mode from comparison operator.
8138 Use new mips_output_conditional_branch interface.
8139 (branch_fp_inverted): Rename to...
8140 (*branch_fp_inverted): ...this and update as for *branch_fp.
8141 (*branch_zero<mode>): Rename to...
8142 (*branch_order<mode>): ...this. Remove mode from comparison operator.
8143 Use mips_output_order_conditional_branch. Only accept ordered
8144 comparisons.
8145 (*branch_zero<mode>_inverted): Rename to...
8146 (*branch_order<mode>_inverted): ...this and update as for
8147 *branch_order<mode>.
8148 (*branch_equality<mode>): Accept zero as the second operand to
8149 the equality operator. Use the new mips_output_conditional_branch
8150 interface.
8151 (*branch_equality<mode>_inverted): Likewise.
8152 (condjump): New expander.
8153 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
8154 operator.
8155 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
8156 (bc1any2t, bc1any2f): Likewise.
8157 (single_cc): New expander.
8158 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
8159
8160 2006-03-09 Richard Sandiford <richard@codesourcery.com>
8161
8162 * doc/md.texi: Update documentation of MIPS constraints.
8163 * config/mips/constraints.md: New file.
8164 * config/mips/mips.md: Include it.
8165 * config/mips/mips.c (mips_char_to_class): Delete.
8166 (override_options): Don't initialize mips_char_to_class.
8167 * config/mips/mips.h (mips_char_to_class): Delete.
8168 (REG_CLASS_FROM_LETTER): Delete.
8169 (CONST_OK_FOR_LETTER_P): Delete.
8170 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8171 (EXTRA_CONSTRAINT_Y): Delete.
8172 (EXTRA_CONSTRAINT_STR): Delete.
8173 (CONSTRAINT_LEN): Delete.
8174 (EXTRA_MEMORY_CONSTRAINT): Delete.
8175
8176 2006-03-09 Diego Novillo <dnovillo@redhat.com>
8177
8178 * tree-cfg.c (move_block_to_fn): Remove the statements from the
8179 original fn's eh regions.
8180
8181 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
8182
8183 * fold-const.c (build_range_check): Make sure to use a valid type to
8184 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
8185 transformation.
8186
8187 (range_predecessor): New static function.
8188 (range_successor): Likewise.
8189 (merge_ranges): Use them to compute predecessors and successors of
8190 range bounds.
8191
8192 2006-03-09 Roger Sayle <roger@eyesopen.com>
8193
8194 PR middle-end/26561
8195 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
8196 X op C3, consider whether C3 overflows towards +Inf or -Inf.
8197
8198 2006-03-08 DJ Delorie <dj@redhat.com>
8199
8200 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
8201 (addpsi3): Expand to include memory operands. Remove
8202 reload-specific splits.
8203 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
8204 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
8205 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
8206 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
8207 (shift1_qi, shift1_hi, insv): New.
8208 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
8209 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
8210 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
8211 cond_to_int): New.
8212 * config/m32c/m32c-protos.h: Update as needed.
8213 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
8214 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
8215 Fail for unrecognized R* constraints.
8216 (m32c_cannot_change_mode_class): Be more picky about pseudos.
8217 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
8218 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
8219 Add Sp constraint.
8220 (m32c_init_libfuncs): New.
8221 (m32c_legitimate_address_p): Add debug wrapper.
8222 (m32c_rtx_costs): New.
8223 (m32c_address_cost): New.
8224 (conversions): Add 'B' prefix.
8225 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
8226 operands, or word regnames for QI operands. 'B' prints bit
8227 position.
8228 (m32c_expand_setmemhi): New.
8229 (m32c_expand_movmemhi): New.
8230 (m32c_expand_movstr): New.
8231 (m32c_expand_cmpstr): New.
8232 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
8233 (m32c_expand_neg_mulpsi3): Handle non-ints.
8234 (m32c_cmp_flg_0): New.
8235 (m32c_expand_movcc): New.
8236 (m32c_expand_insv): New.
8237 (m32c_scc_pattern): New.
8238 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
8239 a0/a1 out of SIregs.
8240 (STORE_FLAG_VALUE): New.
8241 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
8242 code macros.
8243 (no_insn): New.
8244 * config/m32c/mov.md: Make constraints more liberal.
8245 (zero_extendqihi2): Optimize r0/r1 case.
8246 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
8247 * config/m32c/predicates.md (m32c_any_operand): New.
8248 (m32c_nonimmediate_operand): New.
8249 (m32c_hl_operand): New.
8250 (m32c_r3_operand): New.
8251 (ap_operand): New.
8252 (ma_operand): New.
8253 (memsym_operand): New.
8254 (memimmed_operand): New.
8255 (a_qi_operand): New.
8256 (m32c_eqne_operator): New.
8257 (m32c_1bit8_operand): New.
8258 (m32c_1bit16_operand): New.
8259 (m32c_1mask8_operand): New.
8260 (m32c_1mask16_operand): New.
8261 * config/m32c/blkmov.md: New file.
8262 * config/m32c/t-m32c (MD_FILES): Add blkmov.
8263
8264 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
8265
8266 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
8267 unsigned to fix signed/unsigned comparison issue in
8268 DWARF2_FRAME_REG_OUT.
8269 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
8270 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
8271
8272 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
8273 of ptr into the ENABLE_CHECKING section.
8274
8275 2006-03-08 Jeff Law <law@redhat.com>
8276
8277 * tree-vrp.c (infer_value_range): Only count pointer uses
8278 and dereferences if -fdelete-null-pointer-checks is enabled.
8279
8280 * tree-vrp.c (find_assert_locations): Infer value ranges for
8281 single use pointers, but do not create ASSERT_EXPRs for them.
8282 When a non-null range is inferred for a pointer, backwards
8283 propagate that range to other equivalent pointers through the
8284 use-def chain.
8285
8286 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
8287
8288 PR bootstrap/26500
8289 * Makefile.in (dvi, html, install-info): Invoke the corresponding
8290 language hook targets.
8291 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
8292 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
8293 if language hook targets were missing.
8294
8295 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
8296
8297 * tree-ssa-opfinalize.h: Removed.
8298 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
8299 dependency.
8300 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
8301 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
8302 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
8303 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8304 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8305 finalize_ssa_v_must_def_ops): New.
8306
8307 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
8308
8309 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8310 block as parameter.
8311
8312 2006-03-07 Geoffrey Keating <geoffk@apple.com>
8313
8314 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8315
8316 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8317 addresses with offsets; reorganize.
8318
8319 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8320 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8321 (expand_builtin_init_dwarf_reg_sizes): Likewise.
8322
8323 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
8324
8325 PR target/26588
8326 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
8327
8328 2006-03-08 Ben Elliston <bje@au.ibm.com>
8329
8330 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
8331
8332 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
8333
8334 PR gomp/26238
8335 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
8336 expansion.
8337
8338 2006-03-07 Richard Guenther <rguenther@suse.de>
8339
8340 PR tree-optimization/26587
8341 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
8342
8343 2006-03-07 Richard Sandiford <richard@codesourcery.com>
8344
8345 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
8346
8347 2006-03-07 Richard Sandiford <richard@codesourcery.com>
8348
8349 * hooks.c (hook_bool_mode_rtx_true): New function.
8350 * hooks.h (hook_bool_mode_rtx_true): Declare.
8351 * toplev.c (compile_file): Call output_shared_constant_pool.
8352 * varasm.c (shared_constant_pool): New variable.
8353 (assemble_start_function, assemble_end_function): Remove arguments
8354 from call to output_constant_pool.
8355 (create_constant_pool): New function, split out from...
8356 (init_varasm_status): ...here.
8357 (force_const_mem): Choose between the shared and per-function constant
8358 pools. Set current_function_uses_const_pool when reusing old entries
8359 as well as when creating new ones.
8360 (mark_constant): Ignore data argument.
8361 (mark_constants): Remove pool argument.
8362 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
8363 to decide whether the function uses a constant pool.
8364 (output_constant_pool_contents): New function, split out from...
8365 (output_constant_pool): ...here.
8366 (output_shared_constant_pool): New function.
8367 (init_varasm_once): Initialize shared_constant_pool.
8368 * output.h (output_constant_pool): Delete.
8369 (output_shared_constant_pool): Declare.
8370 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
8371 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
8372
8373 2006-03-06 Nick Clifton <nickc@redhat.com>
8374
8375 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
8376 flag_strength_reduce.
8377
8378 2006-03-06 Ben Elliston <bje@au.ibm.com>
8379
8380 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
8381 x86_64-*-linux* configurations.
8382
8383 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
8384 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
8385
8386 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8387
8388 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
8389 Remove.
8390 * basic-block.h: Remove the extern for
8391 rediscover_loops_after_threading.
8392
8393 * cfgloop.c (cancel_loop): Make it static.
8394 * cfgloop.h: Remove the prototype for cancel_loop.
8395
8396 * flow.c (recompute_reg_usage): Make it static.
8397 * rtl.h: Remove the prototype for recompute_reg_usage.
8398
8399 * function.c (use_return_register): Make it static.
8400 * function.h: Remove the prototype.
8401
8402 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8403
8404 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
8405 Remove.
8406 * recog.h: Remove the prototype for
8407 validate_change_maybe_volatile.
8408
8409 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8410
8411 * rtlanal.c (replace_reg): Remove.
8412 * rtl.h: Remove the prototype for replace_reg.
8413
8414 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
8415
8416 * regclass.c (reg_scan_update): Remove.
8417 (reg_scan_mark_refs): Remove the last argument.
8418 * rtl.h: Remove the prototype for reg_scan_update.
8419
8420 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8421
8422 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8423 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8424 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8425 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8426 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8427 loop-invariant.c, omp-low.c, opts.c, passes.c,
8428 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8429 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8430 tree-ssa-structalias.c, tree-ssa-threadedge.c,
8431 tree-ssa-threadupdate.c, tree-vect-patterns.c,
8432 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8433 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
8434
8435 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8436
8437 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8438 * dwarf2out.h: Remove the prototype for
8439 dwarf2out_add_library_unit_info.
8440
8441 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8442
8443 * tree.c (add_var_to_bind_expr): Remove.
8444 * tree.h: Remove the prototype for add_var_to_bind_expr.
8445
8446 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8447
8448 * regclass.c (n_non_fixed_regs): Remove.
8449 (init_reg_sets_1, globalize_reg): Remove all uses of
8450 n_non_fixed_regs.
8451 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8452
8453 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8454
8455 * rtlanal.c (insns_safe_to_move_p): Remove.
8456 * rtl.h: Remove the prototype for insns_safe_to_move_p.
8457
8458 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
8459
8460 * expmed.c (expand_mult_add): Remove.
8461 * expr.h: Remove the prototype for expand_mult_add.
8462
8463 2006-03-04 Jakub Jelinek <jakub@redhat.com>
8464
8465 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8466 and REG_SAVED_VAL_EXP constants.
8467 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8468 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8469 Handle regs stored by value.
8470 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8471 (execute_cfa_program): Handle DW_CFA_val_offset,
8472 DW_CFA_val_offset_sf and DW_CFA_val_expression.
8473 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8474 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8475 (uw_install_context_1): Handle target regs stored by value.
8476
8477 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
8478
8479 * tree-sra.c (tree_sra): Return todoflags;
8480 (generate_one_element): Set TODO_update_smt_usage if needed.
8481 (pass_sra): Remove TODO_update_smt_usage.
8482 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8483 parameter.
8484 (tree_ssa_forward_propagate_single_use_vars): Return
8485 TODO_update_smt_usage if we need to update SMT usage.
8486 (pass_forwprop): Remove TODO_update_smt_usage.
8487
8488 2006-03-03 Diego Novillo <dnovillo@redhat.com>
8489
8490 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
8491 (correct_use_link): Remove reference to get_stmt_operands.
8492 (update_stmt_operands): Likewise.
8493 (get_modify_expr_operands): New function factored out of
8494 parse_ssa_operands and get_expr_operands.
8495 Try to create V_MUST_DEFs for LHS by default.
8496 (get_expr_operands) <case MODIFY_EXPR>: Call
8497 get_modify_expr_operands.
8498 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8499 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8500 (parse_ssa_operands) <case MODIFY_EXPR>: Call
8501 get_modify_expr_operands.
8502
8503 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
8504
8505 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8506 * tree-flow.h: Remove the prototype for
8507 referenced_var_lookup_if_exists.
8508
8509 2006-03-03 Steve Ellcey <sje@cup.hp.com>
8510
8511 PR rtl-optimization/26345
8512 PR target/19061
8513 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8514
8515 2006-03-03 Roger Sayle <roger@eyesopen.com>
8516
8517 PR tree-optimization/26524
8518 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8519 fold_convert to create a constant of the appropriate type.
8520
8521 2006-03-03 Richard Sandiford <richard@codesourcery.com>
8522
8523 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8524 SYMBOL_REF_IN_BLOCK_P.
8525 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8526 of SYMBOL_FLAG_IN_BLOCK.
8527 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8528 instead of SYMBOL_REF_IN_BLOCK_P.
8529 * explow.c (use_anchored_address): Likewise.
8530 * rtl.c (rtx_size): Likewise.
8531 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8532 instead of SYMBOL_FLAG_IN_BLOCK.
8533 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8534 SYMBOL_REF_IN_BLOCK_P.
8535 (assemble_variable): Likewise.
8536 (output_constant_def_contents): Likewise.
8537 (output_constant_pool): Likewise.
8538 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8539 instead of SYMBOL_FLAG_IN_BLOCK.
8540 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8541 SYMBOL_REF_IN_BLOCK_P.
8542 (SYMBOL_REF_BLOCK): Likewise.
8543 (SYMBOL_REF_OFFSET): Likewise.
8544 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8545 SYMBOL_REF_IN_BLOCK_P.
8546 (SYMBOL_FLAG_IN_BLOCK): Replace with...
8547 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8548 (SYMBOL_REF_IN_BLOCK_P): Replace with...
8549 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8550
8551 2006-03-03 Jakub Jelinek <jakub@redhat.com>
8552
8553 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8554
8555 2006-03-02 Roger Sayle <roger@eyesopen.com>
8556
8557 * simplify-rtx.c (simplify_unary_operation): When simplifying
8558 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8559 that we perform the right shift in the appropriate mode, and
8560 then extend or truncate the result to requested mode.
8561
8562 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
8563
8564 * gengtype.c (main): Handle double_int type.
8565 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8566 * double-int.c: New file.
8567 * double-int.h: New file.
8568 * system.h: Include doubleint.h.
8569 * Makefile.in (SYSTEM_H): Include double-int.h.
8570 (double-int.o): Add.
8571
8572 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
8573
8574 PR bootstrap/26478
8575 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8576 copying over it.
8577
8578 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8579
8580 * tree-vrp.c (remove_range_assertions): Do not update statements
8581 unnecessarily.
8582
8583 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8584
8585 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8586 cleanup.
8587 * gcse.c (rest_of_handle_gcse): Ditto.
8588 * except.c (gate_handle_eh): Ditto.
8589 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8590 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8591
8592 2006-03-02 Eric Christopher <echristo@apple.com>
8593
8594 * config/i386/i386.c (machopic_output_stub): Add indirection to
8595 jump.
8596
8597 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
8598
8599 * loop.c: Removed.
8600
8601 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
8602
8603 Sun Niagara specific optimizations.
8604 * config.gcc: Recognize niagara as target.
8605 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8606 (TARGET_CPU_niagara): Define.
8607 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8608 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8609 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8610 (ASM_CPU_SPEC): Likewise.
8611 (PROCESSOR_NIAGARA): New enum entry.
8612 (REGISTER_MOVE_COST): Handle Niagara.
8613 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8614 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8615 (sparc_override_options): Recognize "niagara", set appropriate
8616 default MASK_* values for it, and align functions to 32-bytes
8617 by default just like ULTRASPARC/ULTRASPARC3.
8618 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8619 (sparc64_initialize_trampoline): Likewise.
8620 (sparc_use_sched_lookahead): Use zero for niagara.
8621 (sparc_issue_rate): Use one for niagara.
8622 * config/sparc/niagara.md: New file.
8623 * config/sparc/sparc.md: Include it.
8624 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8625 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8626 when default cpu is niagara.
8627 (CPP_CPU_SPEC): Handle -mcpu=niagara.
8628 (ASM_CPU_SPEC): Likewise.
8629 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8630 when default cpu is niagara.
8631 (ASM_CPU_SPEC): Handle -mcpu=niagara.
8632 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8633 just like v9/ultrasparc/ultrasparc3.
8634 * doc/invoke.texi: Add documentation for "niagara" and improve
8635 existing documentation for ultrasparc variants.
8636
8637 2006-03-02 Diego Novillo <dnovillo@redhat.com>
8638
8639 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8640
8641 2006-03-02 Richard Sandiford <richard@codesourcery.com>
8642
8643 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8644 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8645 and say that only one is needed.
8646 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8647 * target.h (have_switchable_bss_sections): New hook.
8648 * explow.c (use_anchored_address): Check that the symbol is in a block.
8649 * varasm.c (tls_comm_section, comm_section, lcomm_section)
8650 (bss_noswitch_section): New variables.
8651 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8652 (get_noswitch_section): New function.
8653 (get_block_for_section): Allow SECT to be null.
8654 (unlikely_text_section_p): Use SECTION_STYLE.
8655 (bss_initializer_p): New function.
8656 (get_variable_section): Move earlier in file. Take a new argument,
8657 prefer_noswitch_p. Move bss checks from assemble_variable to here.
8658 Return one of the new *_sections in such cases.
8659 (get_block_for_decl): New function, extracting some logic from
8660 use_blocks_for_decl_p.
8661 (change_symbol_section): Remove in favor of...
8662 (change_symbol_block): ...this new function.
8663 (use_blocks_for_decl_p): Remove checks now performed by
8664 get_block_for_decl.
8665 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8666 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8667 (emit_local, emit_bss, emit_common): ...these new functions.
8668 Return true if the alignment was honored.
8669 (emit_tls_common): New function.
8670 (asm_emit_uninitialised): Delete.
8671 (assemble_variable_noswitch): New function, split out from...
8672 (assemble_variable): ...here. Don't make decisions about common
8673 variables here. Globalize all public decls that go into non-common
8674 sections. Check whether SYMBOL_REF_BLOCK is null.
8675 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8676 (output_constant_pool): Likewise.
8677 (init_varasm_once): Initialize the new section variables.
8678 (have_global_bss_p): New function.
8679 (categorize_decl_for_section): Use bss_initializer_p.
8680 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
8681 (place_block_symbol): Assert that the symbol must be in a block.
8682 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8683 (TARGET_INITIALIZER): Include it.
8684 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8685 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8686 (SECTION_MACH_DEP): Bump by two.
8687 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8688 (unnamed_section): Mention SECTION_UNNAMED in comment.
8689 (named_section): Likewise SECTION_NAMED.
8690 (noswitch_section_callback): New type.
8691 (noswitch_section): New structure.
8692 (section): Add a noswitch_section alternative.
8693 (SECTION_STYLE): New macro.
8694 (tls_comm_section, comm_section, lcomm_section): Declare.
8695 (bss_noswitch_section, have_global_bss_p): Declare.
8696 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8697 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8698 Override.
8699 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8700 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8701 Override.
8702
8703 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
8704
8705 * tree-vrp.c (execute_vrp): Return value.
8706 * regrename.c (rest_of_handle_regrename): Ditto.
8707 * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8708 * tree-complex.c (tree_lower_complex): Ditto.
8709 (tree_lower_complex_O0): Ditto.
8710 * tracer.c (rest_of_handle_tracer): Ditto.
8711 * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8712 * postreload.c (rest_of_handle_postreload): Ditto.
8713 * tree-tailcall.c (execute_tail_recursion): Ditto.
8714 (execute_tail_calls): Ditto.
8715 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8716 * tree.h (init_function_for_compilation): Ditto.
8717 * ipa-cp.c (ipcp_driver): Ditto.
8718 * tree-scalar-evolution.c (scev_const_prop): Ditto.
8719 * tree-scalar-evolution.h (scev_const_prop): Ditto.
8720 * final.c (compute_alignments): Ditto.
8721 (rest_of_handle_final): Ditto.
8722 (rest_of_handle_shorten_branches): Ditto.
8723 (rest_of_clean_state): Ditto.
8724 * omp-low.c (execute_expand_omp): Ditto.
8725 (execute_lower_omp): Ditto.
8726 * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8727 * ipa-reference.c (static_execute): Ditto.
8728 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8729 * reorg.c (rest_of_handle_delay_slots): Ditto.
8730 (rest_of_handle_machine_reorg): Ditto.
8731 * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8732 * flow.c (recompute_reg_usage): Ditto.
8733 (rest_of_handle_remove_death_notes): Ditto.
8734 (rest_of_handle_life): Ditto.
8735 (rest_of_handle_flow2): Ditto.
8736 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8737 * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8738 (do_ssa_store_ccp): Ditto.
8739 (execute_fold_all_builtins): Ditto.
8740 * mode-switching.c (rest_of_handle_mode_switching): Ditto.
8741 * modulo-sched.c (rest_of_handle_sms): Ditto.
8742 * ipa-pure-const.c (static_execute): Ditto.
8743 * cse.c (rest_of_handle_cse): Ditto.
8744 (rest_of_handle_cse2): Ditto.
8745 * web.c (rest_of_handle_web): Ditto.
8746 * tree-stdarg.c (execute_optimize_stdarg): Ditto.
8747 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
8748 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
8749 * tree-nrv.c (tree_nrv): Ditto.
8750 (execute_return_slot_opt): Ditto.
8751 * tree-ssa-alias.c (compute_may_aliases): Ditto.
8752 (create_structure_vars): Ditto.
8753 * loop-init.c (rtl_loop_init): Ditto.
8754 (rtl_loop_done): Ditto.
8755 (rtl_move_loop_invariants): Ditto.
8756 (rtl_unswitch): Ditto.
8757 (rtl_unroll_and_peel_loops): Ditto.
8758 (rtl_doloop): Ditto.
8759 * gimple-low.c (lower_function_body): Ditto.
8760 (mark_used_blocks): Ditto.
8761 * tree-ssa-sink.c (execute_sink_code): Ditto.
8762 * ipa-inline.c (cgraph_decide_inlining): Ditto.
8763 (cgraph_early_inlining): Ditto.
8764 * global.c (rest_of_handle_global_alloc): Ditto.
8765 * jump.c (cleanup_barriers): Ditto.
8766 (purge_line_number_notes): Ditto.
8767 * ifcvt.c (rest_of_handle_if_conversion): Ditto.
8768 (rest_of_handle_if_after_reload): Ditto.
8769 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
8770 (tree_ssa_loop_im): Ditto.
8771 (tree_ssa_loop_unswitch): Ditto.
8772 (tree_vectorize): Ditto.
8773 (tree_linear_transform): Ditto.
8774 (tree_ssa_loop_ivcanon): Ditto.
8775 (tree_ssa_empty_loop): Ditto.
8776 (tree_ssa_loop_bounds): Ditto.
8777 (tree_complete_unroll): Ditto.
8778 (tree_ssa_loop_prefetch): Ditto.
8779 (tree_ssa_loop_ivopts): Ditto.
8780 (tree_ssa_loop_done): Ditto.
8781 * predict.c (tree_estimate_probability): Ditto.
8782 * recog.c (split_all_insns_noflow): Ditto.
8783 (rest_of_handle_peephole2): Ditto.
8784 (rest_of_handle_split_all_insns): Ditto.
8785 * tree-eh.c (lower_eh_constructs): Ditto.
8786 * regmove.c (rest_of_handle_regmove): Ditto.
8787 (rest_of_handle_stack_adjustments): Ditto.
8788 * local-alloc.c (rest_of_handle_local_alloc): Ditto.
8789 * function.c (instantiate_virtual_regs): Ditto.
8790 (init_function_for_compilation): Ditto.
8791 (rest_of_handle_check_leaf_regs): Ditto.
8792 * gcse.c (rest_of_handle_jump_bypass): Ditto.
8793 (rest_of_handle_gcse): Ditto.
8794 * ipa-type-escape.c (type_escape_execute): Ditto.
8795 * alias.c (rest_of_handle_cfg): Ditto.
8796 * tree-if-conv.c (main_tree_if_conversion): Ditto.
8797 * profile.c (rest_of_handle_branch_prob): Ditto.
8798 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
8799 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
8800 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
8801 * tree-dfa.c (find_referenced_vars): Ditto.
8802 * except.c (set_nothrow_function_flags): Ditto.
8803 (convert_to_eh_region_ranges): Ditto.
8804 (rest_of_handle_eh): Ditto.
8805 * emit-rtl.c (unshare_all_rtl): Ditto.
8806 (remove_unnecessary_notes): Ditto.
8807 * except.h (set_nothrow_function_flags): Ditto.
8808 (convert_to_eh_region_ranges): Ditto.
8809 * cfgexpand.c (tree_expand_cfg): Ditto.
8810 * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
8811 * tree-ssa-pre.c (do_pre): Ditto.
8812 (execute_fre): Ditto.
8813 * cfgcleanup.c (rest_of_handle_jump): Ditto.
8814 (rest_of_handle_jump2): Ditto.
8815 * tree-sra.c (tree_sra): Ditto.
8816 * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
8817 (execute_mudflap_function_decls): Ditto.
8818 * tree-ssa-copy.c (do_copy_prop): Ditto.
8819 (do_store_copy_prop): Ditto.
8820 * ipa-prop.h (ipcp_driver): Ditto.
8821 * cfglayout.c (insn_locators_initialize): Ditto.
8822 * tree-ssa-forwprop.c
8823 (tree_ssa_forward_propagate_single_use_vars): Ditto.
8824 * cfglayout.h (insn_locators_initialize): Ditto.
8825 * tree-ssa-dce.c (tree_ssa_dce): Ditto.
8826 * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
8827 (execute_late_warn_uninitialized): Ditto.
8828 * rtl.h (cleanup_barriers): Ditto.
8829 (split_all_insns_noflow): Ditto.
8830 (purge_line_number_notes): Ditto.
8831 (unshare_all_rtl): Ditto.
8832 (remove_unnecessary_notes): Ditto.
8833 (recompute_reg_usage): Ditto.
8834 (variable_tracking_main): Ditto.
8835 * integrate.c (emit_initial_value_sets): Ditto.
8836 * integrate.h (emit_initial_value_sets): Ditto.
8837 * tree-optimize.c (execute_free_datastructures): Ditto
8838 (execute_free_cfg_annotations): Ditto.
8839 (execute_fixup_cfg): Ditto.
8840 (execute_cleanup_cfg_pre_ipa): Ditto.
8841 (execute_cleanup_cfg_post_optimizing): Ditto.
8842 (execute_init_datastructures): Ditto.
8843 * tree-object-size.c (compute_object_sizes): Ditto.
8844 * combine.c (rest_of_handle_combine): Ditto.
8845 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
8846 * bb-reorder.c (duplicate_computed_gotos): Ditto.
8847 (rest_of_handle_reorder_blocks): Ditto.
8848 (rest_of_handle_partition_blocks): Ditto.
8849 * var-tracking.c (variable_tracking_main): Ditto.
8850 * tree-profile.c (tree_profiling): Ditto.
8851 * tree-vect-generic.c (expand_vector_operations): Ditto.
8852 * reg-stack.c (rest_of_handle_stack_regs): Ditto.
8853 * sched-rgn.c (rest_of_handle_sched): Ditto.
8854 (rest_of_handle_sched2): Ditto.
8855 * basic-block.h (free_bb_insn): Ditto.
8856 * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
8857 * tree-cfg.c (execute_build_cfg): Ditto.
8858 (remove_useless_stmts): Ditto.
8859 (split_critical_edges): Ditto.
8860 (execute_warn_function_return): Ditto.
8861 (execute_warn_function_noreturn): Ditto.
8862 * tree-ssa-reassoc.c (execute_reassoc): Ditto.
8863 * cfgrtl.c (free_bb_for_insn): Ditto.
8864 * passes.c (execute_one_pass): Run additional
8865 todos returned by execute function.
8866 * tree-pass.h (struct tree_opt_pass): Make execute
8867 return a value.
8868
8869 2006-03-02 Richard Guenther <rguenther@suse.de>
8870
8871 * tree-ssa-alias.c (find_used_portions): Consider taking
8872 the address as making the variable not write-only.
8873
8874 2006-03-02 Nick Clifton <nickc@redhat.com>
8875
8876 * config.gcc (default_use_cxa_atexit): Extend the description of
8877 this configure variable. Set its default value to "yes" for
8878 Linux, NetBSD and ELF targets on the assumption that they will
8879 use C libraries with the __cxa_atexit function.
8880
8881 2006-03-02 Ben Elliston <bje@au.ibm.com>
8882
8883 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
8884 parameter as unused to suppress a build warning.
8885
8886 2006-03-02 Ben Elliston <bje@au.ibm.com>
8887
8888 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
8889 config/dfp-bit.c.
8890
8891 2006-03-01 Roger Sayle <roger@eyesopen.com>
8892
8893 PR other/26489
8894 * gthr-posix.h (__gthrw2): Define to take three parameters, the
8895 declared name, the weak reference name, and the typeof name.
8896 (__gthrw): Avoid expanding the declared name suffix.
8897 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
8898
8899 2006-03-01 Jakub Jelinek <jakub@redhat.com>
8900
8901 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
8902 from DWARF 3.
8903 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
8904 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
8905 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
8906 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
8907 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
8908 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
8909 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
8910 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
8911 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
8912 DW_DS_leading_separate, DW_DS_trailing_separate): New.
8913 (DW_END_default, DW_END_big, DW_END_little): New.
8914 (DW_END_lo_user, DW_END_hi_user): Define.
8915 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
8916 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
8917 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
8918 DW_LANG_D): New.
8919
8920 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8921
8922 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
8923 Update all users.
8924 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
8925 Update all users.
8926 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
8927 Update all users.
8928 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
8929 Update all users.
8930 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
8931 to 'symbol_mem_tag'.
8932 Update all users.
8933 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
8934 rename.
8935
8936 2006-03-01 Roger Sayle <roger@eyesopen.com>
8937
8938 * builtins.c (fold_builtin_copysign): Delete unreachable code.
8939
8940 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8941
8942 PR target/25761
8943 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
8944 MACHO_DYNAMIC_NO_PIC_P.
8945 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
8946
8947 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8948
8949 PR target/26389
8950 * config/darwin-protos.h (darwin_asm_output_anchor):
8951 Declare.
8952 * config/darwin-sections.def (cstring_section):
8953 Add SECTION_MERGE to the flags.
8954 (literal4_section): Likewise.
8955 (literal8_section): Likewise.
8956 (objc_selector_refs_section): Likewise.
8957 (objc_cls_refs_section): Likewise.
8958 * config/darwin.c (darwin_asm_output_anchor): New
8959 function.
8960 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
8961
8962 2006-03-01 Daniel Berlin <dberlin@dberlin.org>
8963
8964 Fix PR tree-optimization/26443
8965 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
8966 to todo and PROP_tmt_usage to properties_destroyed.
8967 * tree-ssa-ccp.c (pass_ccp): Ditto.
8968 (pass_store_ccp): Ditto.
8969 * tree-ssa-dom.c (pass_dominator): Ditto.
8970
8971 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8972
8973 * tree-ssa-operands.c: Cleanup whitespace.
8974 (get_asm_expr_operands): Move before first invocation.
8975 (get_indirect_ref_operands): Likewise.
8976 (get_tmr_operands): Likewise.
8977 (get_call_expr_operands): Likewise.
8978 (append_def): Likewise.
8979 (append_use): Likewise.
8980 (append_v_may_def): Likewise.
8981 (append_v_must_def): Likewise.
8982 (add_call_clobber_ops): Likewise.
8983 (add_call_read_ops): Likewise.
8984 (add_stmt_operand): Likewise.
8985 (add_virtual_operand): Likewise.
8986 (build_ssa_operands): Likewise.
8987
8988 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
8989
8990 PR middle-end/26022
8991 Revert:
8992 PR middle-end/24437
8993 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
8994 with a call expr to ...
8995 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
8996
8997 2006-03-01 Diego Novillo <dnovillo@redhat.com>
8998
8999 * tree-vrp.c (extract_range_from_assert): Remove special
9000 handling for types with super-types.
9001
9002 2006-03-01 Ben Elliston <bje@au.ibm.com>
9003
9004 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
9005 and powerpc64-*-linux* configurations.
9006 * config/t-dfprules: New file.
9007
9008 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
9009 Compile dfp-bit.c from the source directory using -DWIDTH and
9010 $DFP_CFLAGS to control the compilation of that file, rather than
9011 generating width-specific versions in the build directory.
9012 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
9013 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
9014
9015 2006-02-28 Zack Weinberg <zackw@panix.com>
9016
9017 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
9018 continues to work.
9019
9020 2006-02-28 Eric Christopher <echristo@apple.com>
9021
9022 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
9023 Set up IN_LIBGCC definition of TARGET_64BIT.
9024 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
9025
9026 2006-02-28 Roger Sayle <roger@eyesopen.com>
9027
9028 PR middle-end/14752
9029 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
9030 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
9031 cases via the construction of "expr != 0".
9032
9033 2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
9034
9035 * alias.c (alias_invariant, alias_invariant_size): Remove.
9036 (record_base_value): Remove.
9037 (memrefs_conflict_p): Don't look at alias_invariant.
9038 (end_alias_analysis): Don't free it.
9039 * alias.h (record_base_value): Remove prototype.
9040
9041 2006-02-28 Paolo Bonzini <bonzini@gnu.org>
9042 Adam Nemet <anemet@caviumnetworks.com>
9043
9044 * rtl.h (truncated_to_mode): Declare it.
9045 (struct rtl_hooks): Add reg_truncated_to_mode hook.
9046 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
9047 (RTL_HOOKS_INITIALIZER): Include it.
9048 * rtlhooks.c (reg_truncated_to_mode_general): New function.
9049 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
9050 reg_truncated_to_mode.
9051 * rtlanal.c (truncated_to_mode): Define it.
9052 * simplify-rtx.c (simplify_unary_operation_1): Use it.
9053
9054 2006-02-28 Jeff Law <law@redhat.com>
9055
9056 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
9057 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
9058 the range allowed by TYPE_PRECISION.
9059
9060 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
9061
9062 2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
9063
9064 PR tree-optimization/26419
9065 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
9066 values of n.
9067
9068 2006-02-27 Zack Weinberg <zackw@panix.com>
9069
9070 * doc/md.texi: Fix typo in previous change.
9071
9072 2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
9073
9074 * df.c: Remove.
9075
9076 2006-02-27 Zack Weinberg <zackw@panix.com>
9077
9078 * rtl.def (define_constraint, define_register_constraint)
9079 (define_memory_constraint, define_address_constraint): New MD forms.
9080 * gensupport.c (process_rtx): Put define_constraint etc on the
9081 predicate queue.
9082 * genpreds.c (process_define_predicate): Adjust comment. Validate
9083 the name, and call validate_exp to validate the expression.
9084 (mark_mode_tests, write_extract_subexp): Can assume correct input.
9085 (write_predicate_expr): Likewise. NAME argument no longer necessary;
9086 all callers changed.
9087 (validate_exp, needs_variable, struct constraint_data)
9088 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
9089 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
9090 (const_dbl_constraints, constraint_max_namelen)
9091 (have_register_constraints, have_memory_constraints)
9092 (have_address_constraints, have_address_constraints)
9093 (have_extra_constraints, have_const_int_constraints)
9094 (have_const_dbl_constraints, mangle, add_constraint)
9095 (process_define_constraint, process_define_register_constraint)
9096 (write_enum_constraint_num, write_lookup_constraint)
9097 (write_insn_constraint_len, write_regclass_for_constraint)
9098 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
9099 (write_insn_extra_memory_constraint)
9100 (write_insn_extra_address_constraint)
9101 (write_satisfies_constraint_fns): New.
9102 (write_tm_preds_h): If we have new-style constraint definitions,
9103 prototype the functions generated from them, and define the
9104 old constraint interface (still used by generic code) in terms of
9105 those functions.
9106 (write_insn_preds_c): If we have new-style constraint definitions,
9107 generate all relevant functions from those definitions.
9108 (main): Handle define_constraint etc.
9109 * genoutput.c (struct constraint_data, indep_constraints)
9110 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
9111 (mdep_constraint_len): New data structures and functions, defined
9112 #ifdef USE_MD_CONSTRAINTS.
9113 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
9114 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
9115 use new logic to validate operand constraints against constraint
9116 definitions.
9117 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
9118 defined.
9119 * defaults.h: If none of the old-style constraint macros are
9120 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
9121 old-style macros; and poison REG_CLASS_FROM_LETTER,
9122 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
9123 EXTRA_CONSTRAINT.
9124 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
9125 * doc/md.texi: Document new constraint-definition mechanism and the
9126 C interface it provides. Remove references to old mechanism
9127 elsewhere in the document.
9128 (Machine Constraints): Use pathnames relative to gcc directory,
9129 i.e. config/ARCH/FILE. Change i386 section to refer to
9130 config/i386/predicates.md; update that section to match docstrings.
9131 * doc/tm.texi: Move all documentation of the old constraint-
9132 definition macros to their own section, clearly mark as obsolete.
9133
9134 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
9135 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
9136 definitions.
9137 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
9138 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9139 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
9140 constraint strings.
9141 (splits and peepholes): Use satisfies_constraint_*.
9142 * config/i386/i386.c (memory_address_length)
9143 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
9144
9145 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
9146
9147 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
9148 scalar operation to be put back into the loop.
9149
9150 2006-02-27 Jakub Jelinek <jakub@redhat.com>
9151
9152 PR other/26208
9153 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
9154 (extract_cie_info): Handle S flag in augmentation string.
9155 (execute_cfa_program): If context->signal_frame, execute also
9156 fs->pc == context->ra instructions.
9157 (uw_frame_state_for): If context->signal_frame, don't subtract one
9158 from context->ra to find FDE.
9159 (uw_update_context_1): Set context->signal_frame to
9160 fs->signal_frame.
9161 (_Unwind_GetIPInfo): New function.
9162 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
9163 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
9164 of _Unwind_GetIP.
9165 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
9166 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
9167 * unwind-compat.c (_Unwind_GetIPInfo): New function.
9168 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
9169 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
9170 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
9171 * config/i386/linux-unwind.h (x86_fallback_frame_state,
9172 x86_64_fallback_frame_state): Set fs->signal_frame.
9173 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
9174 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
9175 (frob_update_context): Likewise. Workaround missing S flag in
9176 Linux 2.6.12 - 2.6.16 kernel vDSOs.
9177 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
9178 Remove the psw_addr + 1 hack.
9179
9180 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
9181
9182 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
9183 with aggregates here.
9184 (find_func_aliases): Remove code for &<aggregate> from here.
9185
9186 2006-02-26 Roger Sayle <roger@eyesopen.com>
9187
9188 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
9189 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
9190 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
9191 as (X & C) ne/eq 0.
9192
9193 2006-02-26 Roger Sayle <roger@eyesopen.com>
9194
9195 PR middle-end/19983
9196 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
9197
9198 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
9199
9200 * opts.c (decode_options): Do not handle flag_strength_reduce.
9201 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
9202 and OPT_fstrength_reduce.
9203 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
9204 flag_prefetch_loop_arrays for being nonzero.
9205 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
9206 no-ops.
9207 (fprefetch-loop-arrays-rtl): Removed.
9208 (flag_prefetch_loop_arrays): Do not specify the value.
9209
9210 * doc/passes.texi: Update documentation of loop optimizer
9211 passes.
9212 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
9213 -frerun-loop-opt): Remove.
9214
9215 2006-02-26 Richard Guenther <rguenther@suse.de>
9216
9217 PR tree-optimization/26421
9218 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
9219 in function calls that are ADDR_EXPRs as using the whole structure.
9220
9221 2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
9222
9223 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
9224 * tree-pass.h (pass_loop_optimize): Remove.
9225 * passes.c (pass_loop_optimize): Never run it.
9226 * toplev.c (backend_init): Don't call init_loop.
9227 * opts.c (flag_loop_optimize_set): Remove.
9228 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
9229 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
9230 the old RTL loop optimizer when profiling enabled.
9231 * predict.c (tree_estimate_probability): Always strip builtin_expect.
9232 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
9233 pre-headers for the sake of the old RTL loop optimizer.
9234 * Makefile.in: Remove all references to loop.o.
9235
9236 * doc/invoke.texi: Remove all references to -floop-optimize
9237 and -frerun-loop-opt.
9238
9239 2006-02-26 Zack Weinberg <zackw@panix.com>
9240
9241 * doc/md.texi (Machine Constraints): Refer to all files with paths
9242 relative to gcc directory (i.e. config/CPU/file). Add missing
9243 @table @code ... @end table to M32C subsection.
9244
9245 2006-02-26 Roger Sayle <roger@eyesopen.com>
9246
9247 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
9248 (X & 1) == 0.
9249 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
9250
9251 2006-02-26 Roger Sayle <roger@eyesopen.com>
9252 James A. Morrison <phython@gcc.gnu.org>
9253
9254 PR middle-end/21137
9255 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
9256 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
9257 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
9258 signedness of the shift operation.
9259
9260 2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
9261
9262 PR tree-optimization/26359
9263 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
9264
9265 2006-02-25 Roger Sayle <roger@eyesopen.com>
9266
9267 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9268 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
9269 as X == 0, and some symmetry related transformations.
9270 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
9271
9272 2006-02-25 Roger Sayle <roger@eyesopen.com>
9273
9274 PR middle-end/23673
9275 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
9276 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
9277 symmetry related transformations. Fold (X^C1) == C2 as
9278 X == (C1^C2).
9279
9280 2006-02-25 Juergen Weigert <jw@suse.de>
9281 Richard Guenther <rguenther@suse.de>
9282
9283 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
9284
9285 2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
9286
9287 * combine.c (gen_lowpart_or_truncate): Call
9288 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
9289
9290 2006-02-24 Diego Novillo <dnovillo@redhat.com>
9291
9292 * doc/invoke.texi: Move -fopenmp description to "Options for
9293 Code Generation".
9294 Remove reference to -lgomp.
9295
9296 2006-02-24 David Edelsohn <edelsohn@gnu.org>
9297
9298 * doc/install.texi: Require GNU tar version 1.14.
9299
9300 2006-02-24 Geoffrey Keating <geoffk@apple.com>
9301
9302 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
9303 * doc/invoke.texi (C++ Dialect Options): Document
9304 -fno-use-cxa-get-exception-ptr.
9305 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9306 * configure: Regenerate.
9307 * c.opt (fuse-cxa-get-exception-ptr): New.
9308 * c-opts.c (c_common_handle_option): Handle
9309 OPT_fuse_cxa_get_exception_ptr.
9310 * c-common.c (flag_use_cxa_atexit): Update documentation.
9311 (flag_use_cxa_get_exception_ptr): New.
9312 * c-common.h (flag_use_cxa_get_exception_ptr): New.
9313 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9314 documentation.
9315 (C_COMMON_OVERRIDE_OPTIONS): New.
9316
9317 2006-02-24 Roger Sayle <roger@eyesopen.com>
9318
9319 PR middle-end/24952
9320 * combine.c (try_combine): Explicitly check whether GET_CODE is
9321 a SET or a CLOBBER, instead on checking that it isn't a USE.
9322
9323 2006-02-24 Roger Sayle <roger@eyesopen.com>
9324
9325 * fold-const.c (fold_comparison): New subroutine of fold_binary
9326 containing transformations common to both the equality and
9327 ordering relational operators, factored out of fold_binary.
9328 (fold_binary): Separate out the equality operators (EQ_EXPR
9329 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
9330 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
9331 transformations common to both.
9332 (fold_div_compare): Fix latent bugs in the previously unreachable
9333 LT_EXPR and GE_EXPR cases.
9334
9335 2006-02-24 David Edelsohn <edelsohn@gnu.org>
9336
9337 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
9338 decl libname for clog to __clog on AIX.
9339
9340 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
9341
9342 2006-02-24 Alan Modra <amodra@bigpond.net.au>
9343
9344 PR target/26453
9345 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
9346 output traceback table for thunks. Localise rs6000_stack_info call.
9347
9348 2006-02-23 Roger Sayle <roger@eyesopen.com>
9349 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9350
9351 * gthr-posix.h (__gthrw): Fix typo in comment.
9352
9353 2006-02-23 Geoffrey Keating <geoffk@apple.com>
9354
9355 * doc/cpp.texi (Character sets): Document that we do support
9356 input files to be in any character set.
9357
9358 2006-02-23 Jeff Law <law@redhat.com>
9359
9360 * tree.h (PHI_ARG_NONZERO): Remove.
9361 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
9362 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
9363 node to the new node.
9364
9365 PR tree-optimization/26425
9366 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
9367 min/max, then assume its varying.
9368
9369 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
9370
9371 PR rtl-optimization/26316
9372 * rtlanal.c (enum may_trap_p_flags): New.
9373 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
9374 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
9375 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
9376 (may_trap_after_code_motion_p): New function.
9377 * loop-invariant.c (find_identical_invariants): Fix dump formating.
9378 (find_invariant_insn): Use may_trap_after_code_motion_p.
9379 * rtl.h (may_trap_after_code_motion_p): Declare.
9380
9381 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
9382
9383 * emit-rtl.c (immed_double_const): Cleanup.
9384
9385 2006-02-23 Daniel Berlin <dberlin@dberlin.org>
9386
9387 Fix PR tree-optimization/26376
9388 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
9389 remove assert.
9390
9391 2006-02-23 Jakub Jelinek <jakub@redhat.com>
9392
9393 PR middle-end/26412
9394 * gimplify.c (omp_add_variable): Guard variable size decl test with
9395 DECL_SIZE (decl) check.
9396
9397 2006-02-23 Richard Guenther <rguenther@suse.de>
9398
9399 PR middle-end/26439
9400 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
9401 like aggregate types.
9402
9403 2006-02-23 Jakub Jelinek <jakub@redhat.com>
9404
9405 * configure.ac: Add --with{,out}-long-double-128 configure option.
9406 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
9407 * configure: Rebuilt.
9408 * config.in: Rebuilt.
9409 * doc/install.texi (Options specification): Document
9410 --with-long-double-128.
9411
9412 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9413 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9414 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9415 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9416
9417 2006-02-23 Aldy Hernandez <aldyh@redhat.com>
9418
9419 * config/s390/s390.c (override_options): Handle
9420 TARGET_DEFAULT_LONG_DOUBLE_128.
9421
9422 * config/alpha/alpha.c (override_options): Handle
9423 TARGET_DEFAULT_LONG_DOUBLE_128.
9424
9425 * config/sparc/sparc.c (sparc_override_options): Handle
9426 TARGET_DEFAULT_LONG_DOUBLE_128.
9427
9428 2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
9429
9430 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9431 (real-install-headers-tar, real-install-headers-cpio)
9432 (real-install-headers-cp): New targets.
9433
9434 2006-02-22 Richard Sandiford <richard@codesourcery.com>
9435
9436 * tree.h (variable_section): Delete.
9437 * varasm.c (variable_section): Delete.
9438
9439 2006-02-22 Paolo Bonzini <bonzini@gnu.org>
9440
9441 * install.texi: Add notes on install.texi2html.
9442 (Building in parallel): Do not use footnotes.
9443
9444 2006-02-21 Aldy Hernandez <aldyh@redhat.com>
9445
9446 PR libgomp/26234
9447 * doc/install.texi (Configuration): Document --disable-libgomp.
9448
9449 2006-02-21 Geoffrey Keating <geoffk@apple.com>
9450
9451 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9452
9453 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9454
9455 * config/i386/sse.md (vec_extractv2df_1_sse): New.
9456 (vec_extractv2df_0_sse): New.
9457
9458 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
9459
9460 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9461 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9462 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9463 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
9464 to the result of the expression.
9465 (def_cfa_1): Adjust.
9466 (frame_pointer_cfa_offset): Rename to...
9467 (frame_pointer_fb_offset): ... this. Adjust all uses.
9468 (convert_cfa_to_loc_list): Rename to...
9469 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
9470 Pass it on to build_cfa_loc.
9471 (compute_frame_pointer_to_cfa_displacement): Rename to...
9472 (compute_frame_pointer_to_fb_displacement): ... this. New
9473 offset parameter. Use it in computation.
9474 (gen_subprogram_die): Compute cfa_fb_offset with the new
9475 macro, and use it to compute the fb loc list and the
9476 displacement.
9477
9478 2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
9479
9480 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
9481 replaced with register_operand.
9482 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9483 non-DREG is expensive.
9484 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9485 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9486 involving memory.
9487
9488 2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
9489
9490 * doc/install.texi2html: Use set -e.
9491
9492 2006-02-21 Richard Sandiford <richard@codesourcery.com>
9493
9494 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9495 (ASM_OUTPUT_SHARED_LOCAL): Delete.
9496 * doc/invoke.texi (-fshared-data): Delete.
9497 * common.opt (fshared-data): Delete.
9498 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9499 (assemble_static_space): Remove #if 0 code.
9500 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9501 (ASM_OUTPUT_SHARED_LOCAL): Poison.
9502 * config/cris/cris.h: Remove FIXME.
9503
9504 2006-02-21 Paolo Bonzini <bonzini@gnu.org>
9505
9506 * doc/sourcebuild.texi (Front End Directory): No more double-colon
9507 hooks.
9508
9509 2006-02-21 Jakub Jelinek <jakub@redhat.com>
9510
9511 PR middle-end/26379
9512 * combine.c (simplify_shift_const_1): Disable nested shifts
9513 optimization for vector shifts.
9514
9515 2006-02-20 Roger Sayle <roger@eyesopen.com>
9516
9517 PR tree-optimization/26361
9518 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9519 of unsigned integer types.
9520
9521 2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
9522
9523 * tree-chrec.c (eq_evolutions_p): New.
9524 * tree-chrec.h (eq_evolutions_p): Declared.
9525 * tree-data-ref.c: Fix formatting.
9526 (datadep_stats, dependence_stats): New.
9527 (gcd): Moved...
9528 (print_direction_vector): New.
9529 (dump_data_dependence_relation): Use print_direction_vector.
9530 (object_analysis, create_data_ref): Handle COMPONENT_REF.
9531 (compute_subscript_distance): Static.
9532 (initialize_data_dependence_relation): Static. Get the number
9533 of loops surrounding the references from the callers, and initialize
9534 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
9535 base_object_differ_p analyzers.
9536 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9537 compute_overlap_steps_for_affine_1_2,
9538 analyze_subscript_affine_affine): Count the classified dependences.
9539 Print a message when a test failed.
9540 (can_use_analyze_subscript_affine_affine): New.
9541 (analyze_siv_subscript): Compute the data dependences on symbolic
9542 scevs that verify can_use_analyze_subscript_affine_affine.
9543 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9544 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9545 Handle symbolic scevs.
9546 (analyze_overlapping_iterations): Let symbolic affine scevs to be
9547 analyzed.
9548 (subscript_dependence_tester): Moved...
9549 (build_classic_dist_vector, build_classic_dir_vector): Don't use
9550 lambda_vector_clear on newly allocated vectors. Get nb_loops from
9551 DDR_SIZE_VECT instead of getting it in parameter.
9552 (subscript_dependence_tester): ... here. Take as a parameter
9553 loop_nest_depth. Call build_classic_dist_vector and
9554 build_classic_dir_vector.
9555 (compute_affine_dependence): Update subscript_dependence_tester
9556 parameters. Update datadep_stats counters. Call
9557 compute_subscript_distance.
9558 (compute_self_dependence): Save the dist and dir vectors. Call
9559 compute_subscript_distance.
9560 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9561 (compute_all_dependences): Reorder parameters as they were before
9562 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
9563 compute_subscript_distance. Update the use of
9564 compute_affine_dependence and initialize_data_dependence_relation.
9565 (find_data_references_in_loop): Handle COMPONENT_REF.
9566 (compute_data_dependences_for_loop): Initialize dependence_stats.
9567 Don't call build_classic_dist_vector and build_classic_dir_vector.
9568 Update the parameters of initialize_data_dependence_relation and
9569 compute_all_dependences. Print the statistics from datadep_stats.
9570 (analyze_all_data_dependences): Static. Not used until the pass for
9571 checking the data dependences is contributed.
9572 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9573 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9574 (initialize_data_dependence_relation, compute_affine_dependence,
9575 analyze_all_data_dependences, compute_subscript_distance): Removed.
9576 (print_direction_vector): New.
9577 * lambda.h (gcd): ... here.
9578 (lambda_vector_gcd): Moved here from gcd_vector.
9579 * lambda-code.c (gcd, gcd_vector): Removed.
9580 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
9581 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9582
9583 2006-02-20 Diego Novillo <dnovillo@redhat.com>
9584
9585 * ipa-type-escape.c: Tidy some comments and white space.
9586 * tree-ssa-operands.c: Likewise.
9587
9588 2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
9589
9590 PR tree-opt/25879
9591 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9592 (dump_decl_name): Do not walk the decl tree chains.
9593 * tree-pass.h (TDF_CHAIN): Remove.
9594
9595 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9596
9597 * Makefile.in (C): Remove
9598 (PROTO): Remove
9599 (.PHONY): Remove C and PROTO
9600
9601 2006-02-20 Roger Sayle <roger@eyesopen.com>
9602
9603 PR middle-end/26236
9604 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9605 deprecated CHAR_TYPE tree code.
9606
9607 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9608
9609 * configure.ac (target_list): Add install-info, dvi, html.
9610 * configure: Regenerate.
9611
9612 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9613 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9614 treelang/Make-lang.in: Do not use double-colon rules.
9615
9616 2006-02-20 Daniel Berlin <dberlin@dberlin.org>
9617
9618 * tree.h (struct tree_memory_tag): Add is_used_alone member.
9619 (TMT_USED_ALONE): New macro.
9620 * tree-pass.h (PROP_tmt_usage): New property.
9621 (TODO_update_tmt_usage): New todo.
9622 * tree-ssa-alias.c (updating_used_alone): New variable.
9623 (recalculate_used_alone): New function.
9624 (compute_may_aliases): Set updating_used_alone, call
9625 recalculate_used_alone.
9626 * tree-sra.c (pass_sra): Note that this pass destroys
9627 PROP_tmt_usage, and add TODO_update_tmt_usage.
9628 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9629 * tree-flow.h (updating_used_alone): Prototype.
9630 (recalculate_used_alone): Ditto.
9631 * passes.c (execute_todo): Add code to set updating_used_alone,
9632 and call recalculate.
9633 * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9634 for clobber if used alone, and add assert to verify used_alone
9635 status.
9636
9637 2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
9638
9639 * config/s390/s390.c (legitimize_pic_address): Assertions checking
9640 for non tls symbols added.
9641 (legitimize_address): Do nothing for PLUS expressions if one of the
9642 addends is a tls symbol reference.
9643
9644 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
9645
9646 PR bootstrap/25476
9647
9648 * Makefile.in (LDFLAGS): Define from autoconf substitution.
9649
9650 * Makefile.in (BOOTSTRAPPING): New.
9651 (quickstrap): New definition if BOOTSTRAPPING=yes.
9652
9653 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9654 * configure.ac: Substitute all_selected_languages with the languages
9655 that were configured. For all the other variables except
9656 lang_specs_files, include all the languages in the tree.
9657 * configure: Regenerate.
9658
9659 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9660 if there is one. Run the commands to run fixincludes in the same
9661 subshell.
9662
9663 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9664 * doc/install.texi: Document exact conventions for searching target tools.
9665 Document --with-build-time-tools. Document toplevel bootstrap. Document
9666 something more about building an Ada cross-compiler. Don't list GNU Make
9667 requirements which affect all platforms.
9668
9669 2006-02-19 Roger Sayle <roger@eyesopen.com>
9670
9671 PR middle-end/19543
9672 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9673 only equivalent if the have both the same mode and precision.
9674
9675 2006-02-20 Ben Elliston <bje@au.ibm.com>
9676
9677 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9678
9679 2006-02-19 Roger Sayle <roger@eyesopen.com>
9680 Steven Bosscher <stevenb.gcc@gmail.com>
9681
9682 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9683 constant pool references to identify stack mode constants.
9684 * rtlanal.c (constant_pool_constant_p): New predicate to check
9685 whether operand is a floating point constant in the pool.
9686 * rtl.h (constant_pool_constant_p): Prototype here.
9687 * loop.c (scan_loop): Avoid hoisting constants from the constant
9688 pool on STACK_REGS targets.
9689 (load_mems): Likewise.
9690 * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9691 loads into x87 registers expensive in terms of register pressure.
9692
9693 2006-02-19 Roger Sayle <roger@eyesopen.com>
9694
9695 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9696 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9697
9698 2006-02-19 David Edelsohn <edelsohn@gnu.org>
9699
9700 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9701 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9702
9703 2006-02-19 Daniel Berlin <dberlin@dberlin.org>
9704
9705 * doc/invoke.texi: Document -fipa-pta.
9706 * common.opt: Add ipa-pta option.
9707 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9708 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9709 (do_ds_constraint): Ditto.
9710 (get_constraint_for): Only add to referenced_vars if
9711 referenced_vars exists.
9712 (insert_into_field_list): Rewrite to do this unsorted.
9713 (insert_into_field_list_sorted): Rename old insert_into_field_list
9714 to this.
9715 (create_function_info_for): Use insert_into_field_list_sorted.
9716 (create_variable_info_for): Rewrite so it uses unsorted version,
9717 since the field list is sorted.
9718 (intra_create_variable_infos): Only add to referenced_vars if
9719 referenced_vars exists.
9720 (ipa_pta_execute): Init heapvars, and delete when done.
9721 * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9722
9723 2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9724
9725 * doc/install.texi: Add missing `@samp'.
9726
9727 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9728
9729 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9730 Use the arguments.
9731
9732 2006-02-18 Mark Wielaard <mark@klomp.org>
9733
9734 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9735 who added new 4.1 features, bug fixes and integration support.
9736
9737 2006-02-18 David Edelsohn <edelsohn@gnu.org>
9738
9739 PR target/26350
9740 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
9741 MEM for ABI_V4 pic.
9742
9743 2006-02-18 Richard Sandiford <richard@codesourcery.com>
9744
9745 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
9746 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
9747 (copy_insn_1): Likewise. Don't copy each field individually.
9748 Reindent.
9749 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
9750 of RTX_SIZE.
9751 * reload1.c (eliminate_regs): Use shallow_copy_rtx.
9752 * rtl.c (rtx_size): Rename variable to...
9753 (rtx_code_size): ...this.
9754 (rtx_size): New function.
9755 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
9756 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
9757 Reindent.
9758 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
9759 * rtl.h (rtx_code_size): New variable.
9760 (rtx_size): Change from a variable to a function.
9761 (RTX_SIZE): Rename to...
9762 (RTX_CODE_SIZE): ...this.
9763
9764 PR target/9703
9765 PR tree-optimization/17106
9766 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
9767 (Anchored Addresses): New section.
9768 * doc/invoke.texi (-fsection-anchors): Document.
9769 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
9770 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
9771 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
9772 * hooks.c (hook_bool_mode_rtx_false): New function.
9773 * hooks.h (hook_bool_mode_rtx_false): Declare.
9774 * gengtype.c (create_optional_field): New function.
9775 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
9776 SYMBOL_REF_IN_BLOCK_P is true.
9777 * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
9778 (min_anchor_offset, max_anchor_offset): Likewise.
9779 (use_anchors_for_symbol_p): New hook.
9780 * toplev.c (compile_file): Call output_object_blocks.
9781 (target_supports_section_anchors_p): New function.
9782 (process_options): Check that -fsection-anchors is only used on
9783 targets that support it and when -funit-at-a-time is in effect.
9784 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
9785 if the decl doesn't have one.
9786 * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
9787 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
9788 of force_const_mem through use_anchored_address.
9789 (expand_expr_constant): New function.
9790 (expand_expr_addr_expr_1): Call it. Use the same modifier when
9791 calling expand_expr for INDIRECT_REF.
9792 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
9793 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
9794 * expr.h (use_anchored_address): Declare.
9795 * loop-unroll.c: Don't declare rtx vectors here.
9796 * explow.c: Include output.h.
9797 (validize_mem): Call use_anchored_address.
9798 (use_anchored_address): New function.
9799 * common.opt (-fsection-anchors): New switch.
9800 * varasm.c (object_block_htab, anchor_labelno): New variables.
9801 (hash_section, object_block_entry_eq, object_block_entry_hash)
9802 (use_object_blocks_p, get_block_for_section, create_block_symbol)
9803 (use_blocks_for_decl_p, change_symbol_section): New functions.
9804 (get_variable_section): New function, split out from assemble_variable.
9805 (make_decl_rtl): Create a block symbol if use_object_blocks_p and
9806 use_blocks_for_decl_p say so. Use change_symbol_section if the
9807 symbol has already been created.
9808 (assemble_variable_contents): New function, split out from...
9809 (assemble_variable): ...here. Don't output any code for
9810 block symbols; just pass them to place_block_symbol.
9811 Use get_variable_section and assemble_variable_contents.
9812 (get_constant_alignment, get_constant_section, get_constant_size): New
9813 functions, split from output_constant_def_contents.
9814 (build_constant_desc): Create a block symbol if use_object_blocks_p
9815 says so. Or into SYMBOL_REF_FLAGS.
9816 (assemble_constant_contents): New function, split from...
9817 (output_constant_def_contents): ...here. Don't output any code
9818 for block symbols; just pass them to place_section_symbol.
9819 Use get_constant_section and get_constant_alignment.
9820 (force_const_mem): Create a block symbol if use_object_blocks_p and
9821 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
9822 (output_constant_pool_1): Add an explicit alignment argument.
9823 Don't switch sections here.
9824 (output_constant_pool): Adjust call to output_constant_pool_1.
9825 Switch sections here instead. Don't output anything for block symbols;
9826 just pass them to place_block_symbol.
9827 (init_varasm_once): Initialize object_block_htab.
9828 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
9829 (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
9830 (place_block_symbol, get_section_anchor, output_object_block)
9831 (output_object_block_htab, output_object_blocks): New functions.
9832 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
9833 (TARGET_ASM_OUT): Include it.
9834 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
9835 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
9836 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
9837 (TARGET_INITIALIZER): Include them.
9838 * rtl.c (rtl_check_failed_block_symbol): New function.
9839 * rtl.h: Include vec.h. Declare heap and gc rtx vectors.
9840 (block_symbol, object_block): New structures.
9841 (rtx_def): Add a block_symbol field to the union.
9842 (BLOCK_SYMBOL_CHECK): New macro.
9843 (rtl_check_failed_block_symbol): Declare.
9844 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
9845 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
9846 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
9847 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
9848 * output.h (output_section_symbols): Declare.
9849 (object_block): Name structure.
9850 (place_section_symbol, get_section_anchor, default_asm_output_anchor)
9851 (default_use_anchors_for_symbol_p): Declare.
9852 * Makefile.in (RTL_BASE_H): Add vec.h.
9853 (explow.o): Depend on output.h.
9854 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
9855 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
9856 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9857 (rs6000_use_blocks_for_constant_p): New function.
9858
9859 2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9860
9861 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
9862
9863 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
9864
9865 PR tree-opt/25680
9866 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
9867 IMAGPART_EXPR.
9868
9869 2006-02-18 Diego Novillo <dnovillo@redhat.com>
9870
9871 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
9872 is_aliased.
9873 Update all users.
9874
9875 2006-02-18 Jakub Jelinek <jakub@redhat.com>
9876
9877 PR middle-end/26334
9878 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
9879 instead of DECL_REGISTER.
9880
9881 2006-02-18 Olivier Hainque <hainque@adacore.com>
9882
9883 PR ada/13408
9884 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
9885
9886 2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
9887
9888 PR target/24837
9889 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
9890 * opth-gen.awk: Handle Var and InverseMask together.
9891 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
9892 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
9893 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
9894 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
9895 used together.
9896 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9897 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9898 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
9899 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9900 LINUX_DYNAMIC_LINKER): Define.
9901 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
9902 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
9903 TARGET_GLIBC.
9904 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9905 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
9906 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9907 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9908 (TARGET_C99_FUNCTIONS): Don't define.
9909 * config/i386/linux.h (DYNAMIC_LINKER): Rename to
9910 GLIBC_DYNAMIC_LINKER.
9911 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
9912 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
9913 GLIBC_DYNAMIC_LINKER64): Define.
9914 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9915 LINUX_DYNAMIC_LINKER64.
9916 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9917 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9918 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
9919 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9920 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9921 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9922 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
9923 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
9924 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
9925 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
9926 and LINUX_DYNAMIC_LINKER32.
9927 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9928 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9929 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
9930 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9931 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
9932 TARGET_GLIBC.
9933 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
9934 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
9935 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9936 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9937 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9938 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
9939 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
9940 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
9941 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9942 LINUX_DYNAMIC_LINKER): Define.
9943 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
9944 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
9945 GLIBC_DYNAMIC_LINKER64): Define.
9946 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9947 LINUX_DYNAMIC_LINKER64.
9948 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9949 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9950 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
9951 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9952 LINUX_DYNAMIC_LINKER): Define.
9953 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9954 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9955 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
9956 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
9957 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
9958 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9959 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
9960 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
9961 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9962 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9963 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9964 * doc/invoke.texi (-muclibc): Remove caveat about supported
9965 targets.
9966
9967 2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
9968
9969 * doc/cpp.texi (__TIMESTAMP__): Document.
9970
9971 2006-02-17 Roger Sayle <roger@eyesopen.com>
9972
9973 PR middle-end/25600
9974 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
9975 C is one less than the width of X (and related transformations).
9976 * simplify-rtx.c (simplify_unary_operation_1): Transform
9977 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
9978 depending on STORE_FLAG_VALUE, were C is one less then the
9979 width of X.
9980
9981 2006-02-17 Daniel Berlin <dberlin@dberlin.org>
9982
9983 Fix PR tree-optimization/26341
9984 * tree-ssa-operands.c (add_virtual_operand): Remove assert
9985 about NAME_MEMORY_TAG's.
9986
9987 2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9988
9989 PR target/26255
9990 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
9991 with hardware float support, and software float support. Add fcpy
9992 alternative to hardware patterns. Add alternatives to copy between
9993 general and floating-point registers to the 32-bit pattern.
9994 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
9995 secondary reload to load a QI or HI mode constant into a floating
9996 point register.
9997 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
9998 * pa64-regs.h (VALID_FP_MODE_P): Likewise.
9999
10000 2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
10001
10002 PR target/26272
10003 * config/rs6000/darwin.md (load_macho_picbase_si): Add
10004 pc to the pattern.
10005 (load_macho_picbase_di): Likewise.
10006
10007 2006-02-16 Jeff Law <law@redhat.com>
10008
10009 * tree-vrp.c (set_value_range_to_nonnegative): New function.
10010 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
10011 (ssa_name_nonzero_p): Likewise.
10012 (get_value_range): Return NULL if VRP is not running.
10013 (extract_range_from_expr): Fallback to tree_expr_XXX_p if
10014 VRP routines do not discover a range.
10015 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
10016 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
10017 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
10018 (tree_expr_nonnegative_p): Similarly.
10019 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
10020 (restore_nonzero_vars_to_original_value): Remove.
10021 (unsafe_associative_fp_binop): Remove.
10022 (tree_ssa_dominator_optimize): Remove initialization and
10023 finalization of nonzero_vars and nonzero_vars_stack.
10024 (dom_opt_initialize_block): No longer push marker on
10025 nonzero_vars_stack.
10026 (dom_opt_finalize_block): No longer call
10027 restore_nonzero_vars_to_original_value.
10028 (record_equivalences_from_phis): No longer look for
10029 nonzero PHI arguments.
10030 (cprop_into_successor_phis): No longer propagate nonzero
10031 property into PHI arguments. Lose unused argument. Caller
10032 updated.
10033 (record_equivalences_from_stmt): No longer record nonzero
10034 values for SSA_NAMEs.
10035 (lookup_avail_expr): No longer use nonzero_vars.
10036
10037 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
10038 for sizetype when sizetype is unsigned.
10039
10040 2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
10041
10042 PR rtl-optimization/25603
10043 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
10044 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
10045 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
10046 with new meaning of SETS.
10047
10048 2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
10049
10050 PR target/20353
10051 PR target/24578
10052 PR target/24837
10053 * config/linux.opt: New file.
10054 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10055 LINUX_DYNAMIC_LINKER): Define.
10056 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
10057 * config.gcc (*-*-linux*): Define extra_options.
10058 (*-*-*uclibc*): Define UCLIBC_DEFAULT.
10059 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
10060 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
10061 GLIBC_DYNAMIC_LINKER.
10062 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
10063 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10064 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
10065 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
10066 * doc/invoke.texi (GNU/Linux Options): New section.
10067
10068 2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
10069
10070 * config/sparc/sparc.md (setjmp): Rewrite.
10071 (setjmp_32): Delete.
10072 (setjmp_64): Likewise.
10073
10074 2006-02-16 Daniel Berlin <dberlin@dberlin.org>
10075
10076 * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
10077 previous change.
10078
10079 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
10080
10081 * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
10082 read-write uses.
10083
10084 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
10085
10086 PR rtl-optimization/26296
10087 * Makefile.in (loop-invariant.c): Add except.h dependency.
10088 * loop-invariant.c: Include except.h.
10089 (find_invariant_insn): Ignore insns satisfying can_throw_internal.
10090
10091 2005-02-16 Paul Brook <paul@codesourcery.com>
10092
10093 * reload1.c (emit_reload_insns): Invalidate dead input registers used
10094 for reloads.
10095
10096 2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
10097
10098 PR rtl-optimization/25636
10099 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
10100 when deciding whether an insn is an initializing insn.
10101
10102 2006-02-15 Daniel Berlin <dberlin@dberlin.org>
10103
10104 * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
10105 (tree_code_size): Ditto.
10106 * tree.h (struct tree_memory_tag): Remove parent_var.
10107 (struct tree_struct_field_tag): New.
10108 (SFT_OFFSET): New.
10109 (SFT_SIZE): New.
10110 (union tree_node): Add sft member.
10111 * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
10112 specially here.
10113 (create_sft): Add size and offset argument, set SFT_OFFSET and
10114 SFT_SIZE.
10115 (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
10116 * treestruct.def: Add TS_STRUCT_FIELD_TAG.
10117 * tree-flow-inline.h (get_subvar_at): Update for
10118 SFT_OFFSET/SFT_SIZE.
10119 (var_can_have_subvars): Ditto.
10120 (overlap_subvar): Ditto.
10121 * print-tree.c (print_node): Print out interesting things for
10122 SFT's.
10123 * tree-flow.h (struct subvar): Remove offset and size members.
10124 * tree-ssa-operands.c (get_expr_operands): Update for
10125 get_indirect_ref_operands changes.
10126 (get_indirect_ref_operands): Call add_virtual_operand instead of
10127 add_stmt_operand. Only recurse on base var if requested.
10128 (access_can_touch_variable): New function.
10129 (add_stmt_operand): Split virtual operand handling into ...
10130 (add_virtual_operand): Here. Add offset, size, and for_clobber
10131 arguments. Prune alias sets.
10132 (add_call_clobber_ops): Call add_virtual_operand.
10133
10134 2006-02-15 Jakub Jelinek <jakub@redhat.com>
10135
10136 PR middle-end/26300
10137 * combine.c (make_extraction): Bail out if ORIG_POS is negative.
10138
10139 * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
10140 than TREE_CODE as index into omp_clause_num_ops array.
10141
10142 2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
10143
10144 PR rtl-optimization/26184
10145 * modulo-sched.c (generate_reg_moves): Free bitmap vector
10146 uses_of_defs.
10147 * modulo-sched.c (sms_schedule): Free g_arr pointer.
10148 * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
10149 must_precede, must_follow and tobe_scheduled.
10150
10151 PR other/26147
10152 * opts.c (common_handle_option): Free new_option pointer.
10153 * df-core.c (df_analyze): Free postorder pointer.
10154
10155 2006-02-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10156
10157 * Makefile.in: Fix the examples about the use of stamps
10158
10159 2006-02-15 Michael Matz <matz@suse.de>
10160
10161 PR middle-end/22275
10162
10163 * stor-layout.c (layout_decl): Zero-width bitfields aren't
10164 influenced by maximum_field_alignment or DECL_PACKED.
10165 (update_alignment_for_field): Ditto.
10166 (place_field): Ditto.
10167 * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
10168 this behaviour.
10169
10170 2006-02-15 Paolo Bonzini <bonzini@gnu.org>
10171
10172 * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
10173 (debug_flow_info): Pass it.
10174 * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
10175 * bb-reorder.c (reorder_basic_blocks): Likewise.
10176 * cfgcleanup.c (rest_of_handle_jump2): Likewise.
10177 * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
10178 * flow.c (life_analysis, recompute_reg_usage): Likewise.
10179 * gcse.c (gcse_main, bypass_jumps): Likewise.
10180 * ifcvt.c (rest_of_handle_if_conversion): Likewise.
10181 * local-alloc.c (rest_of_handle_local_alloc): Likewise.
10182 * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
10183 * profile.c (compute_branch_probabilities, branch_prob): Likewise.
10184 * rtl.h (dump_flow_info): Adjust prototype.
10185 * tracer.c (rest_of_handle_tracer, tracer): Likewise.
10186 * var-tracking.c (variable_tracking_main): Likewise.
10187 * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
10188 * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
10189 options.
10190
10191 2006-02-15 Marcin Dalecki <martin@dalecki.de>
10192
10193 * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
10194 construction.
10195
10196 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
10197
10198 PR tree-optimization/26209
10199 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
10200 * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
10201 eh edges.
10202 * tree-cfg.c (replace_uses_by): Do not alter cfg.
10203
10204 2006-02-14 Roger Sayle <roger@eyesopen.com>
10205
10206 PR middle-end/23670
10207 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
10208 (X,Y) and the corresponding symmetry related transformations.
10209 (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
10210 (X,Y) and its symmetry related transformations.
10211
10212 2006-02-14 Roger Sayle <roger@eyesopen.com>
10213
10214 * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
10215 and GEU.
10216
10217 2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
10218
10219 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
10220
10221 2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10222
10223 PR bootstrap/26053
10224 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
10225 support COMDAT group.
10226 * configure: Regenerate.
10227
10228 2006-02-14 Roger Sayle <roger@eyesopen.com>
10229
10230 PR middle-end/26279
10231 PR middle-end/26280
10232 PR middle-end/26283
10233 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
10234
10235 2006-02-14 Daniel Berlin <dberlin@dberlin.org>
10236
10237 Fix PR tree-optimization/26260
10238
10239 * doc/invoke.texi (max-fields-for-field-sensitive): Document
10240 param.
10241 * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
10242 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
10243 * tree-ssa-structalias.c (create_variable_info_for): Use
10244 MAX_FIELDS_FOR_FIELD_SENSITIVE.
10245
10246 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
10247
10248 * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
10249 Document.
10250 * tree-ssa-loop-niter.c (number_of_iterations_ne,
10251 number_of_iterations_lt, number_of_iterations_cond): Remember the shape
10252 of the ending condition.
10253 * tree-ssa-loop-manip.c: Include params.h.
10254 (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
10255 tree_unroll_loop): New functions.
10256 * tree-pass.h (pass_loop_prefetch): Declare.
10257 * loop.c (rest_of_handle_loop_optimize): Test for
10258 -fprefetch-loop-arrays-rtl.
10259 * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
10260 * timevar.def (TV_TREE_PREFETCH): New timevar.
10261 * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
10262 pass_loop_prefetch): New.
10263 * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
10264 (cleanup_tree_cfg_loop): Call scev_reset.
10265 * common.opt (fprefetch-loop-arrays-rtl): Add.
10266 * tree-ssa-loop-prefetch.c: New file.
10267 * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
10268 (new_temp_expr_table): Initialize expr_vars.
10269 (free_temp_expr_table): Cleanup expr_vars.
10270 (check_replaceable, find_replaceable_in_bb): Prevent accumulating
10271 expressions from being merged into one.
10272 * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
10273 (struct tree_niter_desc): Add control, bound and cmp fields.
10274 (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
10275 Declare.
10276 * Makefile.in (tree-ssa-loop-prefetch.o): Add.
10277 (tree-cfgcleanup.o): Add SCEV_H dependency.
10278 (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
10279 * passes.c (init_optimization_passes): Add pass_loop_prefetch.
10280
10281 2006-02-14 Richard Guenther <rguenther@suse.de>
10282
10283 PR tree-optimization/26258
10284 * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
10285 in PHI argument processing.
10286
10287 2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
10288
10289 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
10290 new expression in the requested machine mode.
10291
10292 2006-02-13 Roger Sayle <roger@eyesopen.com>
10293
10294 * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
10295 directly, instead let do_compare_rtx_and_jump handle this for us.
10296 * expr.c (expand_expr_real_1): Likewise.
10297 * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
10298 before do_jump_by_parts_greater.
10299 (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
10300 * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
10301
10302 2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10303
10304 * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
10305
10306 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
10307
10308 PR rtl-optimization/26235
10309 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
10310 (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
10311 format.
10312
10313 2006-02-13 Jeff Law <law@redhat.com>
10314
10315 * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
10316 TRUTH_XOR_EPR.
10317
10318 2006-02-13 Jakub Jelinek <jakub@redhat.com>
10319
10320 PR middle-end/26092
10321 * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
10322 twice if decl is a builtin. When trying again, call get_callee_fndecl
10323 first to verify it is still a builtin.
10324
10325 2006-02-13 Geoffrey Keating <geoffk@apple.com>
10326
10327 * dwarf2out.c (base_type_die): Don't add AT_name here.
10328 (subrange_type_die): Don't add AT_name here.
10329 (modified_type_die): Rearrange code flow. Do add AT_name here.
10330
10331 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
10332
10333 PR rtl-optimization/26247
10334 PR rtl-optimization/26248
10335 * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
10336
10337 2006-02-13 Richard Sandiford <richard@codesourcery.com>
10338
10339 * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
10340 * config/fixtfdi.c: Likewise.
10341 * config/fixunstfdi.c: Likewise.
10342 * config/floatditf.c: Likewise.
10343
10344 2006-02-13 Roger Sayle <roger@eyesopen.com>
10345
10346 PR middle-end/24427
10347 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
10348 into (X,C2) if C1 is a subset of the bits of C2. Transform
10349 (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
10350 (X&(C1&~C2))|C2.
10351 <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
10352
10353 2006-02-13 Josh Conner <jconner@apple.com>
10354
10355 PR target/25376
10356 * varasm.c (function_section): Check for section name before
10357 calling select_section on targets that define
10358 USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
10359 unlikely_text_section instead of hot_function_section if
10360 first_function_block_is_cold.
10361
10362 2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
10363
10364 PR middle-end/25335
10365 * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
10366
10367 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10368
10369 PR rtl-optimization/26222
10370 * function.c (assign_stack_temp_for_type): Do not reuse stack slots
10371 after tree->rtl expansion.
10372 * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
10373 before passing it to emit_move_insn.
10374
10375 2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
10376
10377 * doc/invoke.texi (-Write-strings): Document that it is enabled by
10378 default.
10379 * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
10380 Clarify documentation.
10381 * c-common.h (warn_write_strings): Remove.
10382 * c-common.c (warn_write_strings): Likewise.
10383 * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
10384 default for C++.
10385
10386 2006-02-12 Roger Sayle <roger@eyesopen.com>
10387
10388 PR middle-end/25724
10389 * dojump.c (do_jump): Call do_compare_rtx_and_jump.
10390 (do_jump_parts_zero_rtx): New function renamed from
10391 do_jump_parts_equality_rtx. Made static. Add a mode argument.
10392 (do_jump_parts_equality_rtx): New function split out from
10393 do_jump_parts_equality. Old implementation renamed as above.
10394 Call do_jump_parts_zero_rtx if either operand is zero.
10395 (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
10396 do all of the heavy lifting.
10397 (do_compare_rtx_and_jump): Handle multi-word comparisons by
10398 calling either do_jump_by_parts_greater_rtx or
10399 do_jump_by_parts_equality_rtx.
10400 * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
10401 * expmed.c (do_cmp_and_jump): Now multi-word optimization has
10402 moved to do_compare_rtx_and_jump, call it directly.
10403 * stmt.c (do_jump_if_equal): Remove static prototype. Add a
10404 mode argument. Call do_compare_rtx_and_jump.
10405 (emit_case_nodes): Update calls to do_jump_if_equal.
10406
10407 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10408
10409 PR rtl-optimization/26225
10410 * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10411
10412 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
10413
10414 PR rtl-optimization/26232
10415 * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10416
10417 2006-02-11 Jason Merrill <jason@redhat.com>
10418
10419 PR tree-opt/24365
10420 * tree-inline.c (declare_return_variable): Just don't use the
10421 modify target if it's a gimple complex reg and the return slot
10422 isn't.
10423
10424 2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10425
10426 * doc/contrib.texi: Update my entry.
10427
10428 2006-02-10 Geoffrey Keating <geoffk@apple.com>
10429
10430 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10431
10432 2006-02-10 Diego Novillo <dnovillo@redhat.com>
10433
10434 * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10435 expensive.
10436
10437 2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
10438
10439 * doc/invoke.texi (-floop-optimize2): Removed.
10440 * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10441 * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10442 Test flag_branch_on_count_reg only if HAVE_doloop_end.
10443 * common.opt (floop-optimize2): Removed.
10444 (fmove-loop-invariants): Enabled by default.
10445
10446 2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
10447
10448 * tree-if-conv.c (combine_blocks): Free the result of
10449 get_loop_exit_edges.
10450
10451 2006-02-10 Jeff Law <law@redhat.com>
10452
10453 * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10454
10455 PR tree-optimization/26213
10456 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10457 loop trying to follow SSA_NAME_VALUE chains.
10458
10459 2006-02-10 Richard Guenther <rguenther@suse.de>
10460
10461 * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10462 deal with structures that end in implicitly variable sized arrays.
10463
10464 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10465
10466 PR rtl-optimization/24762
10467 * df-scan.c (df_bb_refs_record): Record correct registers defined on
10468 eh edges.
10469
10470 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
10471
10472 * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10473 (struct ivopts_data): Add regs_used field.
10474 (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10475 (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10476 instead of loop_data->regs_used;
10477 (free_loop_data): Do not free aux fields for loops.
10478 (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10479 and tree_ssa_iv_optimize_finalize.
10480
10481 2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
10482
10483 * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10484
10485 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10486
10487 PR target/26141
10488 * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10489 computing the effective result type.
10490
10491 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
10492
10493 PR inline-asm/16194
10494 * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10495 (tree_overlaps_hard_reg_set): Declare.
10496 * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
10497 type and signature to match function type expected by walk_tree.
10498 (tree_overlaps_hard_reg_set): New function.
10499 (decl_conflicts_with_clobbers_p): Rename to:
10500 (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
10501 Use tree_overlaps_hard_reg_set. Changed caller.
10502 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10503 decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10504 * cris.c (cris_md_asm_clobbers): Likewise.
10505
10506 2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
10507
10508 * reload1.c (emit_input_reload_insns): Delete code that tries to
10509 inherit using find_equiv_reg.
10510
10511 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
10512
10513 * c-common.h (flag_const_strings): Don't declare.
10514 * c-common.c (flag_const_strings): Remove.
10515 * c.opt (fconst_strings): Remove.
10516 * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10517 <OPT_Wwrite_strings>: Don't set flag_const_strings.
10518 (c_common_init_options): Don't set flag_const_strings.
10519 * doc/invoke.texi (-fno-const-strings): Remove documentation.
10520
10521 2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
10522
10523 * arm.md (tlobits_cbranch): New pattern.
10524 * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10525 testing a single bit.
10526
10527 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10528
10529 PR tree-opt/26179
10530 * tree-ssa-pre.c (create_component_ref_by_pieces):
10531 Handle RETURN_DECL like VAR_DECL.
10532
10533 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10534
10535 PR middle-end/26134
10536 * fold-const.c (fold_indirect_ref_1): Fold
10537 "*(foo *)&complexfoo" to "__real__ complexfoo"
10538 and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10539
10540 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
10541
10542 * tree-flow-inline.h (var_can_have_subvars):
10543 Volatile variables should not have subvariables.
10544
10545 2006-02-09 Diego Novillo <dnovillo@redhat.com>
10546
10547 PR 26180
10548 * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10549 multiplying unsigned values.
10550 Tidy comments.
10551
10552 2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
10553
10554 * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10555
10556 2006-02-08 Jason Merrill <jason@redhat.com>
10557
10558 PR c++/25979
10559 * tree.def: Elaborate on difference from MODIFY_EXPR.
10560 * doc/c-tree.texi (INIT_EXPR): Likewise.
10561 * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10562 (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10563 (gimplify_target_expr): Likewise.
10564 (gimplify_cond_expr): Remove target handling.
10565 (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10566 (gimplify_expr): Clobber it here.
10567 (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10568 Do return slot optimization if we have an INIT_EXPR.
10569
10570 PR tree-opt/24365
10571 * tree-inline.c (declare_return_variable): Also clear
10572 DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10573
10574 PR c++/16405
10575 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10576
10577 PR middle-end/22439
10578 * gimplify.c (gimplify_one_sizepos): Fix typo.
10579
10580 2006-02-08 Jeff Law <law@redhat.com>
10581
10582 PR tree-optimization/21417
10583 * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10584 across a backedge if the control statement at the end of the
10585 block is data dependent on other statements in the same block.
10586 (record_temporary_equivalences_from_stmts): Remove over-conservative
10587 test for threading across backedges.
10588
10589 * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10590 control statement, handle all three special cases in the same
10591 manner as they all have the same desired solution. No longer
10592 special case edge flag updating when the post dominator is
10593 the exit block.
10594
10595 2006-02-08 Roger Sayle <roger@eyesopen.com>
10596
10597 * tree.def (CHAR_TYPE): Remove.
10598 * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10599 * dwarf2out.c (base_type_die, is_base_type): Likewise.
10600 (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10601 (gen_string_type_die): Delete unreachable function.
10602
10603 * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10604 * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10605 type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10606 * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10607 * builtins.c (type_to_class): Likewise.
10608 * fold-const.c (fold_convert, build_range_check,
10609 merge_ranges): Likewise.
10610 * expr.c (count_type_elements): Likewise.
10611 * c-pretty-print.c (pp_c_type_specifier): Likewise.
10612 * stor-layout.c (layout_type): Likewise.
10613 * ipa-type-escape.c (type_to_consider): Likewise.
10614 * gimplify.c (omp_firstprivatize_type_sizes,
10615 gimplify_type_sizes): Likewise.
10616 * explow.c (promote_mode): Likewise.
10617 * tree-sra.c (is_sra_scalar_type): Likewise.
10618 * varasm.c (output_constant): Likewise.
10619 * tree-inline.c (remap_type_1): Likewise.
10620 * convert.c (convert_to_pointer, convert_to_real,
10621 convert_to_integer, convert_to_complex): Likewise.
10622
10623 2006-02-08 Daniel Berlin <dberlin@dberlin.org>
10624
10625 * df-scan.c (df_def_record_1): A set destination may
10626 be a parallel regardless of mode.
10627
10628 2006-02-08 Roger Sayle <roger@eyesopen.com>
10629
10630 PR target/22209
10631 * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10632 * config/mips/_tilib.c: Remove.
10633 * config/fixtfdi.c: New libgcc source file.
10634 * config/fixunstfdi.c: New source file.
10635 * config/floatditf.c: New source file.
10636 * config/floatunditf.c: New souce file.
10637 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10638 files above instead of config/mips/_tilib.c.
10639 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10640
10641 2006-02-08 Jeff Law <law@redhat.com>
10642
10643 PR tree-optimization/26169
10644 * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10645 threading jumps.
10646
10647 2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
10648
10649 * df.h (DF_REG_SIZE): Return the length of the initialized
10650 part of the array.
10651
10652 2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
10653
10654 * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10655 __muldf3): Return a correctly signed zero.
10656
10657 2006-02-08 Paolo Bonzini <bonzini@gnu.org>
10658
10659 * passes.c (register_one_dump_file): Accept the current properties
10660 instead of pass number. Adjust call to dump_register. Remove
10661 duplicated code.
10662 (register_dump_files): Now a wrapper around...
10663 (register_dump_files_1): ... this one. Do not modify the pass
10664 structure.
10665 (next_pass_1): Cosmetic fix.
10666 (execute_todo): Keep second parameter only. Use curr_properties
10667 instead of fetching it from the pass structure. Check and set
10668 last_verified.
10669 (execute_one_pass): Handle TODO_set_props. Use curr_properties
10670 instead of fetching it from the pass structure. Fix calls to
10671 execute_todo. Update curr_properties and initialize .vcg RTL dump
10672 after running the pass. Reset last_verified.
10673 * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
10674 at the beginning.
10675 (FIRST_AUTO_NUMBERED_DUMP): New.
10676 (dump_register): Remove "num" parameter, assign it within the
10677 function.
10678 (get_dump_file_name): Modify template for dumps.
10679 * tree-dump.h (dump_register): Adjust prototype.
10680 * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10681 (PROP_trees): Add PROP_gimple_lomp.
10682 (TODO_set_props): New.
10683 * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10684 * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10685 * cfgexpand.c (pass_expand): Destroy PROP_trees.
10686
10687 2006-02-08 Jakub Jelinek <jakub@redhat.com>
10688
10689 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10690 (sparc64-*-linux*): Likewise.
10691 * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10692 * config/sparc/t-linux: New file.
10693 * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10694 __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10695 (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10696 -m32 -mlong-double-128.
10697
10698 * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10699 * config/alpha/t-linux: New file.
10700 * config/alpha/libgcc-alpha-ldbl.ver: New file.
10701
10702 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10703 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10704 (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10705 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10706 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10707 (CPP_ARCH32_SPEC): Remove.
10708
10709 2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
10710
10711 PR tree-optimization/26145
10712 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10713 bbs pointer.
10714
10715 2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10716
10717 PR target/26109
10718 * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10719 >= 240000 when generating code for SOM runtime.
10720 (output_indirect_call): Don't use "b,l" instruction for indirect calls
10721 to $$dyncall when generating code for SOM runtime..
10722
10723 2006-02-07 Dirk Mueller <dmueller@suse.com>
10724
10725 PR c++/18150
10726 * doc/invoke.texi (-Wsequence-point): Update documentation
10727 that -Wsequence-point is implemented for C++ as well.
10728
10729 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10730
10731 * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10732 * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10733 (LIB_SPEC): Likewise.
10734 * doc/invoke.texi (SPARC options): Document -pthread.
10735
10736 2006-02-07 Geoffrey Keating <geoffk@apple.com>
10737
10738 * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
10739 PIC addresses.
10740
10741 2006-02-07 Roger Sayle <roger@eyesopen.com>
10742
10743 * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
10744 Correct comment describing BOOLEAN_TYPE.
10745
10746 2006-02-07 Dirk Mueller <dmueller@suse.com>
10747
10748 * c.opt: C++ frontend supports -Wdiv-by-zero.
10749 * c-opts.c (c_common_handle_option): Remove dead case.
10750
10751 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10752
10753 * configure.ac (TLS assembler check): Do not enable TLS by
10754 default on SPARC/Solaris before version 10.
10755 * configure: Regenerate.
10756
10757 2006-02-07 David Edelsohn <edelsohn@gnu.org>
10758
10759 * doc/invoke.texi (xl-compat): Document conversion and support
10760 routine names.
10761
10762 2006-02-07 Jeff Law <law@redhat.com>
10763
10764 * tree-vrp.c (find_conditional_asserts): Update comments.
10765 (simplify_stmt_for_jump_threading): New.
10766 (identify_jump_threads, finalize_jump_threads): New.
10767 (vrp_finalize): Call identify_jump_threads.
10768 (execute_vrp): Call finalize_jump_threads.
10769 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
10770 (vrp_element, vrp_data, vrp_element_p): Remove.
10771 (vrp_hash_elt, vrp_variables_stack): Remove.
10772 (vrp_hash, vrp_eq, record_range): Remove.
10773 (simplify_cond_and_lookup_avail_expr): Remove.
10774 (extract_range_from_cond): Remove.
10775 (thread_across_edge): Relocated into tree-ssa-threadedge.c.
10776 (simplify_stmt_for_jump_threading): New.
10777 (dom_thread_across_edge): New wrapper.
10778 (tree_ssa_dominator_optimize): No longer initialize or
10779 finalize any of the VRP datastructures. Remove iteration
10780 step and simplify as a result of removal of iteration step.
10781 (pass_dominator): Perform a cfg cleanup after DOM.
10782 (dom_opt_finalize_block): Use the new common routines
10783 for threading jumps. Simplify stack management slightly.
10784 No longer need to unwind VRP state.
10785 (record_equivalences_from_incoming_edge): No longer record
10786 VRP information.
10787 (eliminate_redundant_computations): No longer call
10788 simplify_cond_and_lookup_avail_expr.
10789 * tree-flow.h (potentially_threadable_block): Prototype.
10790 (thread_across_edge): Likewise.
10791 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
10792 (tree-ssa-threadedge.o): Add dependencies.
10793 * tree-ssa-threadedge.c: New file.
10794 * passes.c (init_optimization_passes): Merge PHIs before
10795 calling VRP. Run VRP again late in the SSA optimization pipeline.
10796
10797 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10798
10799 * df-core.c (df_set_blocks): Do not dereference function pointers.
10800 (df_finish1): Likewise.
10801 (df_hybrid_search_forward): Likewise.
10802 (df_hybrid_search_backward): Likewise.
10803 (df_iterative_dataflow): Likewise.
10804 (df_analyze_problem): Likewise.
10805 (df_compact_blocks): Likewise.
10806 (df_dump): Likewise.
10807 * df-scan.c (df_rescan_blocks): Likewise.
10808 (df_record_entry_block_defs): Likewise.
10809
10810 * genconditions.c (write_conditions): Guard the definition of
10811 'insn_conditions' with the check on GCC version.
10812 (write_writer): Guard the traversal 'insn_conditions' with
10813 the check on GCC version.
10814
10815 2006-02-07 Richard Guenther <rguenther@suse.de>
10816
10817 PR c++/26140
10818 Revert
10819 2006-01-30 Richard Guenther <rguenther@suse.de>
10820 PR c++/23372
10821 * gimplify.c (gimplify_target_expr): Handle easy cases
10822 without creating a temporary.
10823
10824 2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
10825
10826 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
10827 use of float in probability computations. Use edge probabilities
10828 in place of statically computed probabilities.
10829 (min_spec_prob): New static variable.
10830 (schedule_insns): Initialize it.
10831 (GET_SRC_PROB): Removed.
10832 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
10833
10834 2006-02-07 Alexandre Oliva <aoliva@redhat.com>
10835
10836 PR debug/24444
10837 * config/ia64/unwind-ia64.c: Revert last change.
10838 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
10839 (INCOMING_FRAME_SP_OFFSET): Define.
10840
10841 2006-02-06 Roger Sayle <roger@eyesopen.com>
10842
10843 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
10844
10845 2006-02-07 Ben Elliston <bje@au.ibm.com>
10846
10847 * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
10848 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
10849 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
10850 (ix86_return_in_memory): Handle TDmode.
10851 (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
10852 (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
10853
10854 2006-02-06 Richard Sandiford <richard@codesourcery.com>
10855
10856 * reorg.c (dbr_schedule): Use dump_file instead of file.
10857
10858 2006-02-06 Steve Ellcey <sje@cup.hp.com>
10859
10860 PR target/25917
10861 * config/ia64/predicates.md (extr_len_operand): New predicate.
10862 * config/ia64/ia64.md (extv): Tighten constraints.
10863 (extzv): Ditto.
10864 (*tbit_and_2): Ditto.
10865 (*tbit_and_3): Ditto.
10866 (*tbit_or_2): Ditto.
10867 (*tbit_or_3): Ditto.
10868 (*bit_zero): Ditto.
10869 (*bit_one): Ditto.
10870
10871 2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
10872
10873 PR target/23359
10874 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
10875
10876 2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
10877
10878 * tree-vrp.c (execute_vrp): Do not pass dump argument to.
10879 loop_optimizer_init and loop_optimizer_finalize
10880 * tree-ssa-sink.c (execute_sink_code): Ditto.
10881 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10882 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
10883 tree_ssa_loop_done): Ditto.
10884 * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
10885 * sched-ebb.c: Include output.h.
10886 (schedule_ebbs): Do not use dump argument.
10887 * value-prof.h (struct profile_hooks): Remove profile_dump_file.
10888 * loop.c (loop_dump_stream): Removed.
10889 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
10890 argument.
10891 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
10892 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
10893 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
10894 loop_iterations, strength_reduce, record_biv, record_giv,
10895 final_giv_value, check_final_value, check_ext_dependent_givs,
10896 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
10897 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
10898 dump_file instead of loop_dump_stream.
10899 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
10900 argument dump_file.
10901 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
10902 dump argument.
10903 * flow.c (life_analysis, rest_of_handle_life): Ditto.
10904 * haifa-sched.c: Include output.h
10905 (schedule_insns, sched_init): Do not use dump argument.
10906 * mode-switching.c (optimize_mode_switching): Ditto.
10907 * modulo-sched.c (stats_file): Removed.
10908 (print_node_sched_params): Do not call argument dump_file.
10909 (sms_schedule_by_order, loop_canon_p, sms_schedule,
10910 rest_of_handle_sms): Do not use dump argument. Use dump_file instead
10911 of stats_file.
10912 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
10913 use dump argument.
10914 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
10915 rtl_loop_init, rtl_loop_done): Ditto.
10916 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
10917 * predict.c (combine_predictions_for_bb, tree_estimate_probability):
10918 Ditto.
10919 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
10920 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
10921 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
10922 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
10923 * emit-rtl.c (renumber_insns): Ditto.
10924 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
10925 expand_gimple_basic_block, tree_expand_cfg): Ditto.
10926 * regclass.c (regclass): Ditto.
10927 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
10928 remove_ssa_form, rewrite_out_of_ssa): Ditto.
10929 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
10930 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
10931 Ditto.
10932 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
10933 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
10934 to regclass.
10935 * gcse.c (gcse_file, debug_stderr): Removed.
10936 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
10937 rest_of_handle_gcse): Do not use dump argument.
10938 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
10939 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
10940 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
10941 compute_code_hoist_vbeinout, compute_code_hoist_data,
10942 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
10943 compute_store_table, build_store_vectors, insert_insn_start_bb,
10944 insert_store, remove_reachable_equiv_notes, replace_store_insn,
10945 store_motion): Use dump_file instead of gcse_file.
10946 * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
10947 * profile.c (profile_dump_file): Removed.
10948 (branch_prob): Use dump_file instead of profile_dump_file.
10949 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
10950 dump_file.
10951 * tree-ssa-copy.c (dump_copy_of): Ditto.
10952 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
10953 dump file to life_analysis.
10954 * bt-load.c (branch_target_load_optimize): Ditto.
10955 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
10956 renumber_insns.
10957 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
10958 regclass, dbr_schedule): Declaration changed.
10959 * sched-int.h (sched_init): Declaration changed.
10960 * tree-profile.c (tree_profile_dump_file): Removed.
10961 (tree_profile_hooks): Removed profile_dump_file hook.
10962 * rtl-profile (rtl_profile_dump_file): Removed.
10963 (rtl_profile_hooks): emoved profile_dump_file hook.
10964 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
10965 changed.
10966 * c-gimplify.c (c_genericize): Do not call local variable dump_file.
10967 * tree-cfg.c (build_tree_cfg): Ditto.
10968 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
10969 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
10970 Declaration changed.
10971 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
10972 life_analysis and schedule_insns.
10973 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
10974 life_analysis.
10975 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
10976 dbr_schedule.
10977 * config/mips/mips.c (mips_reorg): Ditto.
10978 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
10979 schedule_ebbs.
10980
10981 2006-02-06 Aldy Hernandez <aldyh@redhat.com>
10982
10983 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10984 (s390_mangle_fundamental_type): New.
10985 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10986 Define.
10987
10988 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10989 (alpha_mangle_fundamental_type): New.
10990 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10991 Define.
10992
10993 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10994 Define.
10995 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10996 Define.
10997 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10998 (sparc_mangle_fundamental_type): New.
10999
11000 2006-02-06 Jakub Jelinek <jakub@redhat.com>
11001
11002 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
11003 (s390x-*-linux*): Likewise.
11004 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
11005 * config/s390/t-linux: New file.
11006
11007 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
11008
11009 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
11010 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
11011
11012 2006-02-06 Daniel Berlin <dberlin@dberlin.org>
11013
11014 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
11015 (ANTIC_SAFE_LOADS): New macro.
11016 (find_or_generate_expression): Add prototype.
11017 (set_contains_value): Allow null set for sake of not always having
11018 to allocate ANTIC_SAFE_LOADS.
11019 (phi_translate): Move placement of AGGREGATE_TYPE_P check.
11020 Allow COMPONENT_REF too.
11021 (valid_in_set): Allow COMPONENT_REF.
11022 Check ANTIC_SAFE_LOADS too.
11023 (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
11024 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
11025 rename.
11026 (can_PRE_operation): Add COMPONENT_REF.
11027 (create_component_ref_by_pieces): New function.
11028 (create_expression_by_pieces): Use create_component_ref_by_pieces.
11029 (insert_aux): Move AGGREGATE_TYPE_P check here.
11030 (compute_avail): Set bb local stmt uids.
11031 (pass_pre): Use TODO_update_ssa_only_virtuals.
11032
11033 2006-02-06 Ben Elliston <bje@au.ibm.com>
11034
11035 * configure.ac: Unconditionally disable decimal float by default.
11036 * configure: Regenerate.
11037
11038 2006-02-06 Ben Elliston <bje@au.ibm.com>
11039
11040 * read-rtl.c (read_name): Terminate reading on EOF.
11041
11042 2006-02-06 Ben Elliston <bje@au.ibm.com>
11043
11044 * dfp.c (decimal_real_arithmetic): Change second argument type
11045 from int to enum tree_code. Do not always return true, but now
11046 return result of any call to decimal_do helper functions.
11047 * dfp.h (decimal_real_arithmetic): Update prototype.
11048
11049 2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
11050
11051 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
11052
11053 2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
11054
11055 PR tree-opt/25251
11056 * tree-cfg.c (cleanup_dead_labels): Also don't remove
11057 forced labels.
11058
11059 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
11060
11061 * tree-vrp.c (cfg_loops): Removed.
11062 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
11063 Use current_loops instead of cfg_loops. Pass flags to
11064 loop_optimizer_init.
11065 * cfgloopmanip.c (fix_loop_structure): Update only available
11066 information.
11067 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
11068 loop_optimizer_init.
11069 * modulo-sched.c (build_loops_structure): Removed.
11070 (sms_schedule): Use loop_optimizer_init.
11071 * loop-init.c (loop_optimizer_init): Use flags to determine
11072 which properties of loops to prepare.
11073 (rtl_loop_init): Pass flags to loop_optimizer_init.
11074 * tree-ssa-sink.c (execute_sink_code): Ditto.
11075 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
11076 * tree-ssa-pre.c (init_pre): Ditto.
11077 * cfgloop.h (LOOPS_NORMAL): New.
11078 (loop_optimizer_init): Declaration changed.
11079
11080 2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11081
11082 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
11083 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
11084 pa/t-pa.
11085 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
11086 pa/t-pa.
11087 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
11088 pa/x-ada.
11089 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
11090 * pa/t-pa64: Delete quadlib.c rule.
11091 * pa/x-ada: Revert last change.
11092 * pa/t-pa: Revert last change. Delete quadlib.c rule.
11093
11094 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
11095
11096 PR rtl-optimization/26087
11097 * rtlanal.c (canonicalize_condition): Do not cross basic block
11098 boundaries.
11099
11100 2006-02-04 Alexandre Oliva <aoliva@redhat.com>
11101
11102 PR debug/24444
11103 * config/ia64/ia64.c: Include debug.h.
11104 (MAX_ARTIFICIAL_LABEL_BYTES): New.
11105 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
11106 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
11107 (process_epilogue, process_set, process_for_unwind_directive):
11108 Output unwind info only if requested. Add CFA info if requested.
11109 Add new arguments as needed. Adjust callers.
11110 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
11111 incorrect default.
11112 (DWARF2_FRAME_INFO): Define to zero.
11113 * config/ia64/unwind-ia64.c: Remove code that compensated for
11114 the CFA offset error fixed above.
11115 * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
11116 * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
11117 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
11118 -funwind-tables and -fexceptions to enable frame info.
11119 (dwarf2out_frame_init): Define initial CFA even if
11120 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
11121 DWARF2_UNWIND_INFO is nonzero, not just defined.
11122 (dwarf2out_frame_finish): Output non-EH call frame info only
11123 if DWARF2_FRAME_INFO is nonzero.
11124 (convert_cfa_to_loc_list,
11125 compute_frame_pointer_to_cfa_displacement): Define even if
11126 unwind info is not supported.
11127 (gen_subprogram_die): Use the above unconditionally. Remove
11128 legacy alternate code.
11129 * toplev.c (compile_file): Compile in call to
11130 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
11131 (lang_dependent_init): Ditto for dwarf2out_frame_init.
11132
11133 2006-02-04 David Edelsohn <edelsohn@gnu.org>
11134 Jakub Jelinek <jakub@redhat.com>
11135
11136 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
11137 IBM extended float format long double as "g" on powerpc*-linux.
11138
11139 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11140
11141 PR target/25926
11142 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
11143 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
11144
11145 2006-02-03 Jason Merrill <jason@redhat.com>
11146
11147 PR c++/25979
11148 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
11149
11150 PR middle-end/25977
11151 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
11152 on the return slot if it's an NRV.
11153
11154 2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
11155
11156 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
11157 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
11158 rewrite_use): Do not handle USE_OUTER.
11159 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
11160 add_iv_outer_candidates, may_replace_final_value,
11161 determine_use_iv_cost_outer, rewrite_use_outer): Removed.
11162 (find_interesting_uses_op): Functionality of
11163 find_interesting_uses_outer_or_nonlin moved here.
11164 (find_interesting_uses_outside): Use find_interesting_uses_op.
11165
11166 2006-02-03 Alan Modra <amodra@bigpond.net.au>
11167
11168 PR target/25960
11169 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
11170
11171 2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
11172 Ulrich Weigand <uweigand@de.ibm.com>
11173
11174 PR target/25864
11175 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
11176 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
11177 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
11178 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
11179 and dxr fields.
11180 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
11181 (s390_rtx_costs): Use the new fields to calculate rtx costs.
11182 (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
11183 Define secondary reloads for TFmode moves.
11184 (constant_modes): Add TFmode.
11185 (NR_C_MODES): Set to 8.
11186 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
11187 builtin define.
11188 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
11189 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
11190 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
11191 CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
11192 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
11193 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
11194 (FPR mode macro): Add TFmode.
11195 (DSF mode macro): New.
11196 (<de>, <dee> mode attributes): Removed.
11197 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
11198 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
11199 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
11200 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
11201 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
11202 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
11203 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
11204 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
11205 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
11206 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
11207 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
11208 "*negabs<mode>2", "sqrt<mode>2"):
11209 Changed <de> to <xde>. R constraint replaced by <Rf>.
11210 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
11211 <Rf>.
11212 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
11213 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
11214 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
11215 splitters.
11216 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
11217 "extenddftf2", "extendsftf2"): New expanders.
11218 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11219 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
11220 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
11221 * config/s390/s390.opt (mlong-double-128, mlong-double-64):
11222 New options.
11223 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
11224 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
11225 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
11226 __floatditf): Add a GCC_4.1.0 symbol version tag.
11227 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
11228 the new options.
11229
11230 2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
11231
11232 PR target/25377
11233 * config/i386/i386.c (ix86_function_ok_for_sibcall):
11234 Use targetm.binds_local_p instead of TREE_PUBLIC.
11235
11236 2006-02-02 Roger Sayle <roger@eyesopen.com>
11237
11238 * tree.h (TYPE_STRING_FLAG): Document that this field may be used
11239 on INTEGER_TYPEs to indicate that it denotes a character type.
11240 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
11241 signed_char_type_node, unsigned_char_type_node and char_type_node.
11242 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
11243 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
11244 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
11245
11246 2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
11247 Daniel Berlin <dberlin@dberlin.org>
11248
11249 * tree-tailcall.c (arg_needs_copy_p): New function.
11250 (eliminate_tail_call): Use arg_needs_copy_p.
11251 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
11252 (add_virtual_phis): New function.
11253
11254 2006-02-02 Jakub Jelinek <jakub@redhat.com>
11255
11256 * config/sparc/sparc.c (sparc_output_scratch_registers): Use
11257 #ignore instead of #scratch for %g7 .register directive.
11258
11259 2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
11260
11261 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
11262 object files.
11263
11264 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
11265
11266 * flow.c (calculate_global_regs_live): Assert that there aren't any
11267 EDGE_FAKE edges.
11268
11269 2006-02-02 Paolo Bonzini <bonzini@gnu.org>
11270
11271 * tree-flow-inline.h (bsi_after_labels): Rewrite, return
11272 what its name says.
11273 * lambda-code.c (perfect_nestify): Use bsi_insert_before on
11274 bsi_after_labels iterator.
11275 * tree-if-conv.c (find_phi_replacement_condition,
11276 replace_phi_with_cond_modify_expr): Likewise.
11277 * tree-scalar-evolution.c (scev_const_prop): Likewise.
11278 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
11279
11280 2006-02-02 Diego Novillo <dnovillo@redhat.com>
11281
11282 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
11283
11284 2006-02-02 Diego Novillo <dnovillo@redhat.com>
11285
11286 PR 25990
11287 * tree-cfg.c (move_block_to_fn): Clear out the basic block
11288 array after growing it.
11289
11290 2006-02-01 Steve Ellcey <sje@cup.hp.com>
11291
11292 PR middle-end/24901
11293 * fold-const.c (fold_checksum_tree): Change type of buf.
11294
11295 2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
11296
11297 * reload.c (push_secondary_reload): Initialize t_icode.
11298
11299 2006-02-01 Jakub Jelinek <jakub@redhat.com>
11300
11301 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
11302 -msoft-float -mlong-double-128 only issue a warning, but don't
11303 swich to DFmode long double.
11304
11305 2006-02-01 Hans-Peter Nilsson <hp@axis.com>
11306
11307 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
11308 has a constant equivalent, iterate over equivalents for arg0,
11309 calling simplify_relational_operation and if there's a result
11310 cheaper than X, apply fold_rtx and return the result.
11311
11312 2006-02-01 Jan Hubicka <jh@suse.cz>
11313
11314 * opts.c (no_unit_at_a_time_default): New global variable.
11315 (decode_options): Use it.
11316 * opts.h (no_unit_at_a_time_default): Declare.
11317
11318 2006-02-01 Paul Brook <paul@codesourcery.com>
11319
11320 * function.c (assign_parm_setup_reg): Use function argument promotion
11321 rules.
11322 * expr.c (expand_expr_real_1): Use function argument promotion rules
11323 for PARM_DECLs.
11324
11325 2006-02-01 Steve Ellcey <sje@cup.hp.com>
11326
11327 * gcc.c (process_command): Change j to 'unsigned int'.
11328
11329 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11330
11331 PR middle-end/26001
11332 * expr.c (expand_expr_real_1) <case ARRAY_REF>:
11333 Use the corrected index for the character
11334 out of the string constant.
11335
11336 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11337
11338 * mode-switching.c (optimize_mode_switching): Fix size
11339 allocated for bb_info[n_entities].
11340
11341 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
11342
11343 * gcc.c (main): Correct type that is allocated for
11344 explicit_link_files.
11345
11346 2006-01-31 Jakub Jelinek <jakub@redhat.com>
11347
11348 * config/s390/s390.c (init_alignment_context): Set
11349 ALIAS_SET_MEMORY_BARRIER on the MEM.
11350 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
11351
11352 2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
11353
11354 PR middle-end/25933
11355 * loop-unroll.c (unroll_loop_runtime_iterations): Free
11356 dom_bbs pointer.
11357 * tree-ssa-live.c (type_var_init): Allocate bitmap after
11358 call to tpa_init.
11359
11360 2006-01-31 Marcin Dalecki <martin@dalecki.de>
11361
11362 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
11363 * regrename.c: Ditto.
11364 * tree-ssa-loop-im.c: Ditto.
11365 * tree-dump.c: Ditto.
11366 * tree-complex.c: Ditto.
11367 * genrecog.c: Ditto.
11368 * tree-ssa-threadupdate.c: Ditto.
11369 * tracer.c: Ditto.
11370 * java/class.c: Ditto.
11371 * java/jcf-parse.c: Ditto.
11372 * java/resource.c: Ditto.
11373 * java/except.c: Ditto.
11374 * java/jvspec.c: Ditto.
11375 * java/jcf-write.c: Ditto.
11376 * java/jcf-path.c: Ditto.
11377 * java/gjavah.c: Ditto.
11378 * java/zextract.c: Ditto.
11379 * java/jcf-io.c: Ditto.
11380 * java/jcf.h: Ditto.
11381 * java/buffer.c: Ditto.
11382 * java/lang.c: Ditto.
11383 * java/parse-scan.y: Ditto.
11384 * java/lex.c: Ditto.
11385 * java/lex.h: Ditto.
11386 * cfgloopmanip.c: Ditto.
11387 * postreload-gcse.c: Ditto.
11388 * tree-ssa-loop-manip.c: Ditto.
11389 * postreload.c: Ditto.
11390 * tree-ssa-loop-ch.c: Ditto.
11391 * loop.c: Ditto.
11392 * ipa-cp.c: Ditto.
11393 * cppspec.c: Ditto.
11394 * diagnostic.c: Ditto.
11395 * final.c: Ditto.
11396 * genoutput.c: Ditto.
11397 * gcc.c: Ditto.
11398 * cfghooks.c: Ditto.
11399 * cfgloopanal.c: Ditto.
11400 * objc/objc-act.c: Ditto.
11401 * gcov.c: Ditto.
11402 * genextract.c: Ditto.
11403 * genautomata.c: Ditto.
11404 * pretty-print.c: Ditto.
11405 * genemit.c: Ditto.
11406 * cgraphunit.c: Ditto.
11407 * flow.c: Ditto.
11408 * df-scan.c: Ditto.
11409 * haifa-sched.c: Ditto.
11410 * dominance.c: Ditto.
11411 * dbxout.c: Ditto.
11412 * tree-ssa-loop-ivopts.c: Ditto.
11413 * df-core.c: Ditto.
11414 * mode-switching.c: Ditto.
11415 * modulo-sched.c: Ditto.
11416 * graph.c: Ditto.
11417 * ipa-pure-const.c: Ditto.
11418 * cse.c: Ditto.
11419 * fix-header.c: Ditto.
11420 * web.c: Ditto.
11421 * tree-stdarg.c: Ditto.
11422 * ipa-utils.c: Ditto.
11423 * loop-init.c: Ditto.
11424 * ipa-inline.c: Ditto.
11425 * cfganal.c: Ditto.
11426 * global.c: Ditto.
11427 * alloc-pool.c: Ditto.
11428 * dwarf2out.c: Ditto.
11429 * opts.c: Ditto.
11430 * genattrtab.c: Ditto.
11431 * tree-ssa-loop-ivcanon.c: Ditto.
11432 * predict.c: Ditto.
11433 * timevar.c: Ditto.
11434 * lcm.c: Ditto.
11435 * fortran/gfortranspec.c: Ditto.
11436 * regmove.c: Ditto.
11437 * local-alloc.c: Ditto.
11438 * langhooks.c: Ditto.
11439 * function.c: Ditto.
11440 * tree-vectorizer.c: Ditto.
11441 * gcse.c: Ditto.
11442 * ipa-type-escape.c: Ditto.
11443 * alias.c: Ditto.
11444 * tree-if-conv.c: Ditto.
11445 * profile.c: Ditto.
11446 * ipa.c: Ditto.
11447 * tree-data-ref.c: Ditto.
11448 * loop-unroll.c: Ditto.
11449 * treelang/treetree.c: Ditto.
11450 * calls.c: Ditto.
11451 * bt-load.c: Ditto.
11452 * ggc-common.c: Ditto.
11453 * except.c: Ditto.
11454 * coverage.c: Ditto.
11455 * cselib.c: Ditto.
11456 * tree-cfgcleanup.c: Ditto.
11457 * tree-ssa-pre.c: Ditto.
11458 * cfgcleanup.c: Ditto.
11459 * loop-invariant.c: Ditto.
11460 * loop-iv.c: Ditto.
11461 * ipa-prop.c: Ditto.
11462 * print-tree.c: Ditto.
11463 * conflict.c: Ditto.
11464 * ggc-page.c: Ditto.
11465 * sched-deps.c: Ditto.
11466 * regclass.c: Ditto.
11467 * tree-object-size.c: Ditto.
11468 * combine.c: Ditto.
11469 * bb-reorder.c: Ditto.
11470 * resource.c: Ditto.
11471 * var-tracking.c: Ditto.
11472 * cfgloop.c: Ditto.
11473 * df-problems.c: Ditto.
11474 * reg-stack.c: Ditto.
11475 * tlink.c: Ditto.
11476 * gccspec.c: Ditto.
11477 * sched-rgn.c: Ditto.
11478 * tree-ssa-structalias.c: Ditto.
11479 * tree-ssa-reassoc.c: Ditto.
11480 * config/darwin-c.c: Ditto.
11481 * config/darwin.c: Ditto.
11482 * config/arm/arm.c: Ditto.
11483 * cfgrtl.c: Ditto.
11484 * collect2.c: Ditto.
11485 * reload1.c: Ditto.
11486
11487 2006-01-31 Nicolas Pitre <nico@cam.org>
11488
11489 * arm.md (smaxsi3): Make aware of smax_m1.
11490 (smax_m1): New.
11491
11492 2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
11493
11494 * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11495
11496 2006-01-31 Richard Guenther <rguenther@suse.de>
11497
11498 * doc/invoke.texi (-msselibm): Document.
11499 * target.h (expand_library_builtin): New target hook.
11500 * builtins.c (expand_builtin): Use expand_library_builtin.
11501 (default_expand_library_builtin): New function.
11502 * gcc.c (LINK_GCC_MATH_SPEC): Define.
11503 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11504 (link_gcc_math_spec): Declare.
11505 (static_specs): Add link_gcc_math_spec.
11506 * expr.h (default_expand_library_builtin): Declare.
11507 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11508 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11509 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11510 * config/i386/i386.opt (msselibm): New target option.
11511 * config/i386/i386.c (ix86_builtin_function_variants): New array.
11512 (ix86_init_sse_abi_builtins): New function.
11513 (ix86_expand_library_builtin): Likewise.
11514 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11515 (override_options): Handle error conditions wrt -msselibm.
11516 (ix86_builtins): Add function codes for SSE2 ABI builtins.
11517 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11518 * doc/extend.texi (__builtin_sse2_*): Document new target specific
11519 builtins.
11520
11521 2006-01-31 Richard Guenther <rguenther@suse.de>
11522 Paolo Bonzini <bonzini@gnu.org>
11523
11524 * doc/install.texi (--disable-libgcc-math): Document.
11525
11526 2006-01-30 Marcin Dalecki <martin@dalecki.de>
11527
11528 * expr.h (expand_normal): new inline function.
11529 * builtins.c: use it, use EXPAND_NORMAL explicitely.
11530 * dojump.c: use it.
11531 * dwarf2out.c: use it.
11532 * expr.c: use it.
11533 * calls.c: use it.
11534 * expmed.c: use it.
11535 * except.c: use it.
11536 * config/sparc/sparc.c: use it.
11537 * config/i386/i386.c: use it.
11538 * config/rs6000/rs6000.c: use it.
11539 * config/arm/arm.c: use it.
11540 * config/mips/mips.c: use it.
11541 * stmt.c: use it, use EXPAND_NORMAL explicitely.
11542
11543 2006-01-30 Roger Sayle <roger@eyesopen.com>
11544
11545 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11546 argv to the appropriate type.
11547
11548 2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
11549
11550 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11551 unreachable code.
11552
11553 2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
11554
11555 PR target/26018
11556 * config/s390/s390.c (struct machine_function): New flag
11557 decomposed_literal_pool_addresses_ok_p.
11558 (s390_reorg): Set it before final stage of literal pool transforms.
11559 (s390_decompose_address): Only accept displacements of the form
11560 (minus (label_ref ...) (label_ref ...)) if that flag is set.
11561
11562 2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
11563
11564 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11565 the comparison routine return.
11566
11567 2006-01-30 Michael Matz <matz@suse.de>
11568
11569 * global.c (find_reg): Only evict for global regs.
11570 Take n_refs into account and dump more info.
11571
11572 2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
11573
11574 PR target/14798:
11575 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11576 (pragma_trap, pragma_nosave_low_regs): Likewise.
11577 (current_function_anonymous_args): Likewise.
11578 (sh_deferred_function_attributes): New variable.
11579 (sh_deferred_function_attributes_tail): Likewise.
11580 (print_operand): For '@', look up trap_exit attribute.
11581 (calc_live_regs): Look up trapa_handler attribute. For trapa
11582 handlers, save/restore fpscr, but don't do any other
11583 interrupt-specific saves.
11584 Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11585 Fix check for partially saved registers to check for SHmedia.
11586 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11587 (sh_output_function_epilogue): Don't clear any of the removed
11588 variables.
11589 (sh_insert_attributes): Don't check pragma_interrupt.
11590 Insert deferred attributes. Check that interrupt attribute is
11591 present for other attributes that require its presence.
11592 (sh_attribute_table): Add new attributes trapa_handler and
11593 nosave_low_regs.
11594 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11595 Don't check for pragma_interrupt. Don't store argument.
11596 * sh.h (pragma_interrupt, sp_switch): Don't declare.
11597 (sh_deferred_function_attributes): Declare.
11598 (sh_deferred_function_attributes_tail): Likewise.
11599 * sh.md (sp_switch_1): Add operand. Change generator caller.
11600 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11601 (*return_i): Don't use when trap_exit attribute is in effect.
11602 (*return_trapa): New insn pattern.
11603 * sh-c.c: New file.
11604 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11605 setting c_target_objs and cxx_target_objs.
11606 * t-sh: Add rule for sh-c.o.
11607
11608 2006-01-30 Richard Guenther <rguenther@suse.de>
11609
11610 PR c++/23372
11611 * gimplify.c (gimplify_target_expr): Handle easy cases
11612 without creating a temporary.
11613
11614 2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
11615
11616 * vec.h (safe_grow): Remove duplicated line.
11617
11618 2006-01-29 Diego Novillo <dnovillo@redhat.com>
11619
11620 PR 25874
11621 * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11622 (expand_omp): ... here.
11623 (expand_omp_parallel): Only remove barriers for combined
11624 parallel+workshare constructs.
11625
11626 2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
11627
11628 Revert
11629
11630 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
11631 * tree.c (build_qualified_type): Chain the new type to the original
11632 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11633 a POINTER_TYPE or a REFERENCE_TYPE respectively.
11634 (build_pointer_type_for_mode): Only return unqualified types.
11635 (build_reference_type_for_mode): Likewise.
11636
11637 2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
11638
11639 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11640 * Makefile.in (CXX_COMPAT_WARN): Define.
11641 * configure: Regenerate.
11642
11643 2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
11644
11645 PR tree-opt/25911
11646 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11647 to an if check.
11648
11649 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11650
11651 * toplev.c: Fix thinko.
11652
11653 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
11654 Marcin Dalecki <martin@dalecki.de>
11655
11656 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11657 (push_srcloc): Use XNEW.
11658 (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11659
11660 2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
11661
11662 * df-core.c (df_set_blocks): Deleted all variable.
11663
11664 2006-01-28 Ian Lance Taylor <ian@airs.com>
11665
11666 * cgraphunit.c (cgraph_assemble_pending_functions): Call
11667 cgraph_output_pending_asms.
11668
11669 2006-01-28 Zack Weinberg <zackw@panix.com>
11670
11671 * c.opt: Add -W(no-)overlength-strings.
11672 * doc/invoke.texi: Document it.
11673 * c-opts.c (c_common_handle_option): -pedantic implies
11674 -Woverlength-strings, if not explicitly disabled already.
11675 (c_common_post_options): -Woverlength-strings defaults to off, and
11676 is always off for C++.
11677 * c-common.c (fix_string_type): Issue warning about strings longer
11678 than is portable only if warn_overlength_strings. Rearrange code
11679 a little for clarity.
11680 * configure.in: Check for -Wno-overlength-strings as well before
11681 enabling -pedantic in stage 1.
11682 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11683 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11684
11685 * genconditions.c (write_header, write_one_condition)
11686 (write_conditions, write_writer): Consolidate very long strings
11687 that were broken up to fit in C89 portable limit. Don't use
11688 printf when fputs will do.
11689
11690 2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
11691
11692 * combine.c (simplify_comparison <AND>): Check
11693 TRULY_NOOP_TRUNCATION before start using a subreg.
11694
11695 * config/mips/mips.md (*branch_zero<mode>,
11696 *branch_zero<mode>_inverted, *branch_equality<mode>,
11697 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11698 Remove mode check from comparisons.
11699
11700 2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
11701
11702 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11703
11704 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11705
11706 * expmed.c (const_mult_add_overflow_p): Remove.
11707 * expr.h: Remove the prototype for const_mult_add_overflow_p.
11708
11709 * recog.c (validate_replace_rtx_subexp): Remove.
11710 * recog.h: Remove the prototype for
11711 validate_replace_rtx_subexp.
11712
11713 * integrate.h: Remove the prototype for
11714 copy_decl_for_inlining.
11715 * rtl.h: Remove the prototype for mark_constant_function.
11716 * tree-vectorizer.h: Remove the prototype for
11717 vect_strip_conversion.
11718
11719 * modulo-sched.c (create_partial_schedule,
11720 free_partial_schedule, reset_partial_schedule): Make them
11721 static.
11722
11723 * hooks.c (hook_bool_rtx_int_false): Remove.
11724 * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11725
11726 2006-01-28 David Edelsohn <edelsohn@gnu.org>
11727
11728 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11729 and -mlong-double-128 are incompatible.
11730 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11731 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11732 (TARGET_LIBGCC2_CFLAGS): Define.
11733 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11734 (TARGET_LIBGCC2_CFLAGS): Same.
11735 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11736
11737 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
11738
11739 PR c/19606.
11740 * c-typeck.c (build_binary_op): Perform implicit casts of
11741 operands before shortening them.
11742
11743 * cfgloopmanip.c (split_loop_bb): Remove.
11744 * cfgloop.h: Remove the prototype for split_loop_bb.
11745
11746 * cfgloop.c (flow_loop_outside_edge_p): Remove.
11747 * cfgloop.h: Remove the prototype for
11748 flow_loop_outside_edge_p.
11749
11750 * emit-rtl.c (init_virtual_regs): Make it static.
11751 * function.h: Remove the prototype for init_virtual_regs.
11752
11753 * recog.c (peephole2_optimize): Make it static.
11754 * recog.h: Remove the prototype for peephole2_optimize.
11755
11756 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11757
11758 * df-scan.c (df_record_entry_block_defs): Check if
11759 INCOMING_RETURN_ADDR_RTX is defined.
11760
11761 2006-01-27 Daniel Berlin <dberlin@dberlin.org>
11762 Kenneth Zadeck <zadeck@naturalbridge.com>
11763
11764 PR rtl-optimization/24762
11765 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11766 * targhooks.c (hook_void_bitmap): New hook prototype.
11767 * targhoohs.h (hook_void_bitmap): Ditto.
11768 * bitmap.h (bitmap_head_def): Moved to coretypes.h.
11769 * coretypes.h (bitmap_head_def): Moved from bitmap.h.
11770 * target.h (live_on_entry): New function pointer.
11771 * df-scan.c (df_all_hard_regs): Removed.
11772 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
11773 (df_scan_free_internal): Added df->entry_block_defs.
11774 (df_scan_alloc): Ditto.
11775 (df_scan_dump): Ditto.
11776 (df_uses_record): Plumbed flag field properly thru calls.
11777 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
11778 This part fixes PR24762.
11779 (df_bb_refs_record): Added code to make the frame and arg
11780 pointers live in EH blocks.
11781 (df_refs_record): Added call to df_record_entry_block_defs.
11782 (df_record_entry_block_defs): New function.
11783 * df-core.c: Added comments to describe new artifical defs.
11784 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
11785 (entry_block_defs): New field in struct df.
11786 (df_all_hard_regs): Deleted.
11787 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11788 * df-problems.c (df_ru_bb_local_compute_process_def):
11789 Added code to handle artifical defs in the entry to a function.
11790 (df_ru_bb_local_compute): Ditto.
11791 (df_rd_bb_local_compute_process_def): Ditto.
11792 (df_rd_bb_local_compute): Ditto.
11793 (df_lr_bb_local_compute): Ditto.
11794 (df_ur_bb_local_compute): Ditto.
11795 (df_urec_bb_local_compute): Ditto.
11796 (df_chain_create_bb): Ditto.
11797 (df_ur_local_finalize): Removed entry.
11798 (df_urec_init): Ditto.
11799 (df_urec_local_finalize): Ditto.
11800 (df_ri_bb_compute): Added detection of last use of pseudos.
11801 * Makefile.in (df-scan.o): Updated dependencies.
11802 * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
11803 * config/mips/mips.c (mips_set_live_on_entry): Added.
11804 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
11805 for target hook.
11806 * dce.c (marked_insn_p): Added code to handle artifical defs.
11807
11808 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
11809
11810 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
11811 intrinsic.
11812 (_mm_cvtsi128_si64): Likewise.
11813 (_mm_cvtsd_si64): Likewise.
11814 (_mm_cvttsd_si64): Likewise.
11815 (_mm_cvtsi64_sd): Likewise.
11816 (_mm_cvtsi64_si128): Likewise.
11817 * config/i386/mmintrin.h (_m_from_int64): Likewise.
11818 (_mm_cvtsi64_m64): Likewise.
11819 (_m_to_int64): Likewise.
11820 (_mm_cvtm64_si64): Likewise.
11821 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
11822 (_mm_cvttss_si64): Likewise.
11823 (_mm_cvtsi64_ss): Likewise.
11824 (_mm_cvtss_f32): Likewise.
11825
11826 2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
11827
11828 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
11829 for pragma redefine_extname.
11830
11831 2006-01-27 Jakub Jelinek <jakub@redhat.com>
11832
11833 PR target/25864
11834 * libgcc-std.ver: Add GCC_4.1.0 symbol version.
11835 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
11836 -mno-minimal-toc to previous content.
11837 (bispecs): Remove goal.
11838 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
11839 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
11840 compatibility aliases on powerpc-*-*gnu*.
11841 * config/rs6000/libgcc-ppc-glibc.ver: New file.
11842 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
11843 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
11844 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
11845 (ldblspecs): New goal.
11846 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
11847 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
11848 _df_to_tf.
11849 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
11850 L_sf_to_tf or L_df_to_tf is defined.
11851
11852 2006-01-27 David Edelsohn <edelsohn@gnu.org>
11853 Alan Modra <amodra@bigpond.net.au>
11854
11855 PR target/25864
11856 * config/rs6000/linux.h (POWERPC_LINUX): Define.
11857 * config/rs6000/linux64.h (POWERPC_LINUX): Define.
11858 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
11859 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
11860 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
11861 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
11862 (rs6000_override_options): Initialize rs6000_ieeequad.
11863 Initialize TFmode format to ibm_extended_format if not
11864 TARGET_IEEEQUAD.
11865 (rs6000_handle_option): Accept -mabi= ibmlongdouble and
11866 ieeelongdouble.
11867 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
11868 (rs6000_return_in_memory): Only return IEEEQUAD in memory.
11869 (function_arg_advance): IBM long double passed in two FPRs, not
11870 split.
11871 (function_arg): IBM long double passed in FPRs.
11872 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
11873 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
11874 Only multireg GPR aligned.
11875 (rs6000_init_libfuncs): Enable IBM long double functions if not
11876 IEEEQUAD.
11877 (rs6000_generate_compare): Use IBM long double compare if not
11878 TARGET_IEEEQUAD.
11879 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
11880 (TARGET_IEEEQUAD): Define.
11881 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
11882 not TARGET_IEEEQUAD.
11883 * config/rs6000/rs6000.md: Enable TFmode patterns if
11884 !TARGET_IEEEQUAD.
11885 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11886 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11887 and -mlong-double-128 are incompatible.
11888 * doc/invoke.texi (-mabi): Collect options together. Add
11889 ibmlongdouble and ieeelongdouble.
11890
11891 2006-01-27 Richard Sandiford <richard@codesourcery.com>
11892
11893 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
11894 opaque type.
11895 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
11896 * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
11897 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
11898 * rtl.h (rtunion_def): Remove rt_ptr.
11899 (X0PTR): Delete.
11900 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
11901 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
11902 * config/i386/winnt.c (i386_pe_mark_dllexport)
11903 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
11904
11905 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
11906
11907 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
11908
11909 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11910
11911 PR other/24829
11912 PR target/24831
11913 * gthr-dce.h: Do not gthrw-ify pthread_once_init,
11914 pthread_key_delete. From John David Anglin. gthrw-ify
11915 pthread_getunique_np only if it it's not a macro. Delete
11916 UNUSED macro.
11917 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
11918 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
11919 __gthread_objc_condition_signal, __gthread_key_delete): Add
11920 "__attribute__ ((__unused__))" to unused arguments.
11921 (__gthread_recursive_mutex_init_function): Add missing return.
11922 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
11923 gthr-posix95.h: Use macro-based approach for name redirection
11924 on targets missing weakref.
11925
11926 2006-01-26 Zack Weinberg <zackw@panix.com>
11927
11928 * genconditions.c (write_header): In generated code, #ifdef out
11929 all includes and fake declarations, except includes of bconfig.h
11930 and system.h, unless GCC_VERSION >= 3001. Do not include
11931 gensupport.h in any case.
11932 (write_conditions): Generate a definition of struct c_test. Add
11933 a comment to the generated #endif.
11934 (write_one_condition): Escape backslashes in string too.
11935 (write_writer): Generated code must escape backslashes and quote
11936 marks (but not newlines) in the strings it writes.
11937 * Makefile.in (build/gencondmd.o): Update dependencies.
11938
11939 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11940
11941 PR target/25961
11942 * Makefile.in (insn-automata.o): Add header file dependencies.
11943 * genautomata.c: Add includes.
11944
11945 2006-01-26 Steve Ellcey <sje@cup.hp.com>
11946
11947 PR target/25961
11948 * Makefile.in (insn-automata.o): Add -Wno-error flag.
11949
11950 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
11951
11952 * configure.ac: Expect target tools paths to be passed from the toplevel
11953 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
11954 AS_SET_VAR_IF.
11955 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
11956
11957 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
11958
11959 PR c/25892
11960 * c.opt (Wpointer-sign): Init to -1.
11961 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
11962 OPT_pedantic, to 0 otherwise.
11963 * doc/invoke.texi: Update.
11964
11965 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
11966
11967 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
11968 constants provided by 80387 instructions in the destination mode.
11969
11970 2006-01-26 Richard Guenther <rguenther@suse.de>
11971 Andrew Pinski <pinskia@physics.uc.edu>
11972
11973 PR tree-opt/21470
11974 partial PR tree-opt/17064
11975 * tree-ssa-structalias.c (intra_create_variable_infos):
11976 Create heap variables for incoming parameters if
11977 flag_argument_noalias > 1.
11978 (find_what_p_points_to): Look through default defs of
11979 parameter decls.
11980
11981 2006-01-26 Jeff Law <law@redhat.com>
11982
11983 PR ada/25900
11984 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
11985 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
11986 within the VR_RANGE, use the VR_RANGE as the result, not the
11987 VR_ANTI_RANGE.
11988 (adjust_range_with_scev): Reject ranges from SCEV which are out of
11989 bounds for the type.
11990
11991 2006-01-26 Daniel Berlin <dberlin@dberlin.org>
11992
11993 * tree-ssa-alias.c (maybe_create_global_var): Change
11994 subvar walking to an assertion that we don't have subvar'd variables.
11995
11996 2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
11997
11998 PR C/25861
11999 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
12000 Use a new variable, inner. PARM_DECLs are always non-weak.
12001
12002 2006-01-26 Shantonu Sen <ssen@opendarwin.org>
12003
12004 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
12005 --disable-checking.
12006
12007 2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
12008
12009 * config/mips/mips.md (*clear_upper32): New combiner pattern.
12010
12011 2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
12012
12013 * arm.md (smaxsi3, sminsi3): Convert to define_expand.
12014 (smax_insn, smin_insn, smax_0, smin_0): New.
12015
12016 2006-01-26 Hans-Peter Nilsson <hp@axis.com>
12017
12018 PR target/25947
12019 * config/cris/cris.c (cris_order_for_addsi3): New function.
12020 * config/cris/cris-protos.h: Prototype it.
12021 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
12022 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
12023 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
12024 (split for "op.S1 [rx=rx+i],ry (swapped)")
12025 (split for "op(s|u).S1 [rx=rx+i],ry")
12026 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
12027 Apply cris_order_for_addsi3 when generating addsi3 insns.
12028
12029 2006-01-25 Diego Novillo <dnovillo@redhat.com>
12030
12031 * tree.h (TREE_RANGE_CHECK): Fix range predicate.
12032 (TREE_BLOCK): Add call to EXPR_CHECK.
12033
12034 2006-01-25 Diego Novillo <dnovillo@redhat.com>
12035
12036 PR 25886
12037 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
12038 * tree-pretty-print.c (dump_omp_clause): Extract from ...
12039 (dump_omp_clauses): ... here.
12040 (dump_generic_node): Handle OMP_CLAUSE.
12041 * tree.c (omp_clause_num_ops): New.
12042 (omp_clause_code_name): New.
12043 (tree_code_size): Handle OMP_CLAUSE.
12044 (tree_size): Likewise.
12045 (make_node): Document handling of OMP_CLAUSE.
12046 (tree_node_structure): Handle OMP_CLAUSE.
12047 (omp_clause_check_failed): New.
12048 (omp_clause_range_check_failed): New.
12049 (omp_clause_operand_check_failed): New.
12050 (build_omp_clause): New.
12051 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
12052 * tree.h (enum omp_clause_code): Declare.
12053 (OMP_CLAUSE_SUBCODE_CHECK): Define.
12054 (OMP_CLAUSE_RANGE_CHECK): Define.
12055 (OMP_CLAUSE_ELT_CHECK): Define.
12056 (omp_clause_check_failed): Declare.
12057 (omp_clause_operand_check_failed): Declare.
12058 (omp_clause_range_check_failed): Declare.
12059 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
12060 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
12061 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
12062 (OMP_CLAUSE_LASTPRIVATE): Likewise.
12063 (OMP_CLAUSE_IF_EXPR): Likewise.
12064 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
12065 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
12066 (OMP_CLAUSE_REDUCTION_CODE): Likewise.
12067 (OMP_CLAUSE_REDUCTION_INIT): Likewise.
12068 (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
12069 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
12070 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
12071 (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
12072 (OMP_CLAUSE_DEFAULT_KIND): Likewise.
12073 (OMP_CLAUSE_CODE): Define.
12074 (OMP_CLAUSE_SET_CODE): Define.
12075 (OMP_CLAUSE_CODE): Define.
12076 (OMP_CLAUSE_OPERAND): Define.
12077 (struct tree_omp_clause): Declare.
12078 (union tree_node): Add field 'omp_clause'.
12079 * treestruct.def (TS_OMP_CLAUSE): Define.
12080 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
12081 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
12082 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
12083 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
12084 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
12085 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
12086 (OMP_CLAUSE): Define.
12087 * print-tree.c (print_node): Handle OMP_CLAUSE.
12088 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
12089 * c-typeck.c: Likewise.
12090 * gimplify.c: Likewise.
12091 * c-omp.c: Likewise.
12092 * tree-nested.c: Likewise.
12093 * tree-inline.c: Likewise.
12094 * c-parser.c: Likewise.
12095 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
12096 clauses.
12097
12098 2006-01-25 Roger Sayle <roger@eyesopen.com>
12099
12100 PR rtl-optimization/25703
12101 * combine.c (try_combine): Handle zero_extract and strict_low_part
12102 of non-lowpart SUBREGs for constant reg_subword_p set optimization.
12103
12104 2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
12105
12106 * global.c: Fix comment typos.
12107
12108 2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
12109
12110 PR target/25758
12111 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
12112 Use output_addr_const instead of assemble_name.
12113
12114 2006-01-25 Paolo Bonzini <bonzini@gnu.org>
12115
12116 * Makefile.in (sched-vis.o): Update dependencies.
12117 * haifa-sched.c (sched_finish): Clear current_sched_info.
12118 * cfg.c (dump_bb_info): New, split from dump_flow_info.
12119 (dump_flow_info): Call it.
12120 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
12121 a slim RTL dump.
12122 * basic-block.h (dump_bb_info): Declare.
12123 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
12124 option, and apply options only for dump files whose TDF_RTL,
12125 TDF_TREE, or TDF_IPA bits match.
12126 * rtl.h: Declare new functions exported from sched-vis.c.
12127 * sched-vis.c: Enable also if scheduling is not used.
12128 (print_value): Print the mode of registers if not inside scheduling.
12129 (print_insn): Make it work outside the scheduler. Beautify the output
12130 a bit.
12131 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
12132
12133 2006-01-25 Richard Sandiford <richard@codesourcery.com>
12134
12135 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
12136 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
12137 a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
12138 depending on the value of CONSTANT_POOL_ADDRESS_P.
12139 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
12140 SYMBOL_REF_DECL.
12141 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
12142 rather than SYMBOL_REF_DECL.
12143 (rtx_constant_pool): Remove const_rtx_sym_htab.
12144 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
12145 (init_varasm_status): Don't initialize const_rtx_sym_htab.
12146 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
12147 Remove handling of const_rtx_sym_htab.
12148 (find_pool_constant): Delete.
12149 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
12150 rather than find_pool_constant.
12151 (get_pool_constant_for_function): Delete.
12152 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
12153 find_pool_constant.
12154 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
12155 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
12156 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
12157 (SYMBOL_REF_CONSTANT): New macro.
12158 (get_pool_constant_for_function): Delete.
12159 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
12160 rather than SYMBOL_REF_DECL.
12161 (i386_pe_mark_dllimport): Likewise.
12162 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
12163 rather than SYMBOL_REF_DECL.
12164 * config/darwin.c (machopic_indirect_data_reference): Likewise.
12165 (machopic_indirect_call_target): Likewise.
12166
12167 2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
12168
12169 * flow.c (delete_noop_moves): Add missing EOL to dump message.
12170
12171 2006-01-25 Richard Sandiford <richard@codesourcery.com>
12172
12173 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
12174
12175 2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
12176
12177 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
12178
12179 2006-01-24 David Daney <ddaney@avtrex.com>
12180
12181 PR java/25816
12182 * configure.ac (enable_tls): New enable option.
12183 (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
12184 * configure: Regenerate.
12185 * doc/install.texi (--enable-tls): Document new option.
12186 (--disable-tls): Ditto.
12187
12188 2006-01-24 Richard Henderson <rth@redehat.com>
12189
12190 * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
12191 * alias.c (true_dependence): Respect it.
12192 (canon_true_dependence, write_dependence_p): Likewise.
12193 * builtins.c (get_builtin_sync_mem): Set it.
12194
12195 2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
12196
12197 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
12198 efficient way.
12199
12200 2006-01-24 DJ Delorie <dj@redhat.com>
12201
12202 * expmed.c (store_bit_field): Don't arbitrarily deny using insv
12203 for storing constants in single-bit bitfields.
12204
12205 2006-01-25 Ben Elliston <bje@au.ibm.com>
12206
12207 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
12208
12209 2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
12210
12211 PR tree-opt/25860
12212 * tree-ssa-pre.c (phi_translate): Return NULL
12213 for AGGREGATE_TYPE's.
12214
12215 2006-01-24 Zack Weinberg <zackw@panix.com>
12216
12217 * genautomata.c (process_state_for_insn_equiv_partition):
12218 Use xcalloc for insn_arcs_array.
12219 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
12220 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
12221
12222 2006-01-24 Richard Henderson <rth@redhat.com>
12223
12224 * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
12225 update all callers.
12226
12227 2006-01-23 Paolo Bonzini <bonzini@gnu.org>
12228
12229 PR rtl-optimization/25890
12230 PR rtl-optimization/25905
12231 * combine.c (expand_compound_operation, expand_field_assignment):
12232 Fail if the bitfield's final position is out of bounds.
12233
12234 2006-01-24 Ian Lance Taylor <ian@airs.com>
12235
12236 PR middle-end/25930
12237 * cgraphunit.c (cgraph_output_in_order): Don't clear
12238 cgraph_asm_nodes until after asm strings have been output.
12239
12240 2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
12241
12242 * fix-header.c (read_scan_file): Add new parameter imultilib when
12243 calling register_include_chains.
12244
12245 2006-01-23 Diego Novillo <dnovillo@redhat.com>
12246
12247 * omp-low.c: Update documentation.
12248
12249 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
12250 Daniel Berlin <dberlin@dberlin.org>
12251
12252 PR tree-opt/25315
12253 PR tree-opt/25857
12254 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
12255 return from the function.
12256
12257 2006-01-22 Zack Weinberg <zackw@panix.com>
12258
12259 * rtl.def (match_code): Add second argument.
12260 * genpreds.c (write_extract_subexp): New function.
12261 (write_match_code): Add path argument. Use write_extract_subexp.
12262 (write_predicate_expr): Pass path to write_match_code.
12263 (mark_mode_tests): MATCH_CODE applied to a subexpression does
12264 not perform a mode test.
12265 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
12266 a subexpression does not constrain the top-level code set.
12267 * read-rtl.c (read_rtx_variadic): New function.
12268 (read_rtx_1): Use it; allow AND and IOR to be variadic.
12269 * doc/md.texi: Document new notation.
12270 * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
12271 (cmpsi_operand): ... here, using new notation.
12272
12273 2006-01-22 Zack Weinberg <zackw@panix.com>
12274
12275 * varray.c: Remove GENERATOR_FILE #ifdefs.
12276
12277 2006-01-22 Zack Weinberg <zackw@panix.com>
12278
12279 * genautomata.c (output_reserved_units_table): Emit nothing if
12280 description->query_units_num is zero. Remove extra blank line.
12281 (output_cpu_unit_reservation_p): Short circuit
12282 if description->query_units_num is zero.
12283
12284 2006-01-22 Zack Weinberg <zackw@panix.com>
12285
12286 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
12287 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
12288 nor any of the random handful of variables that used to be necessary
12289 when this program was linked with rtlanal.o. Prune set of forward
12290 function declarations.
12291 (struct attr_desc): Remove static_p field.
12292 (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
12293 (check_attr_test, make_internal_attr, make_numeric_value): Make static.
12294 (attr_string): Do not read the character one past the length of
12295 the string.
12296 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
12297 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
12298 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
12299 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
12300 (make_automaton_attrs): New.
12301 (main): Do not call into genautomata. Call local gen_bypass
12302 and gen_insn_reserv as appropriate. Call make_automaton_attrs.
12303 Remove special case for insn_alts.
12304 * genautomata.c: Include gensupport.h; not genattrtab.h nor
12305 varray.h (leftover from previous change). Prune set of forward
12306 function declarations. Remove state_alts fields from all
12307 structures. Remove state_alts_table from struct automaton.
12308 Make everything except main static. Do not maintain num_dfa_decls.
12309 Do not maintain state_alts fields of various structures.
12310 (process_decls): Don't validate condexp for dm_insn_reserv decls.
12311 (add_arc): Remove state_alts argument. All callers updated.
12312 (output_reserved_units_table): Emit #ifdef here...
12313 (output_tables): ...not here. Don't generate state_alts tables.
12314 (expand_automata): Don't generate attributes.
12315 (write_automata): Don't generate state_alts functions.
12316 (main): New function.
12317 (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
12318 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
12319 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
12320 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
12321 (BYPASS_P_FUNC_NAME, output_state_alts_table)
12322 (output_automata_list_state_alts_code, output_internal_state_alts_func)
12323 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
12324 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
12325 Delete.
12326 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
12327 * genattrtab.h: Delete file.
12328 * Makefile.in (OBJS-common): Add insn-automata.o.
12329 (insn-automata.o): New rule.
12330 (simple_generated_c): Add insn-automata.c.
12331 (build/genattrtab.o, build/genautomata.o): Update dependencies.
12332 (genprogmd): Add automata.
12333 (build/genattrtab): Needs no extra objects nor libraries.
12334 (build/genautomata): Needs build/vec.o and -lm.
12335
12336 2006-01-22 Zack Weinberg <zackw@panix.com>
12337
12338 * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
12339 (output_dfa_max_issue_rate, locked_states_num): Delete.
12340 (struct automaton): Add locked_states field.
12341 (output_dead_lock_vect): Save number of locked states in
12342 automaton->locked_states. If it is zero, don't print anything.
12343 (output_max_insn_queue_index_def): Define max_insn_queue_index const.
12344 (output_internal_dead_lock_func): Only test the dead_lock_vect
12345 for automata that have locked states.
12346 (output_statistics): Always print the number of locked states for
12347 each automaton. Calculate total number of locked states here.
12348 (write_automata): Don't call output_dfa_max_issue_rate.
12349 * genattrtab.c: Define length_unit_log as a const variable.
12350 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
12351 max_insn_queue_index const.
12352 * final.c (length_unit_log): Declare const.
12353 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
12354
12355 2006-01-22 Zack Weinberg <zackw@panix.com>
12356
12357 * genautomata.c: Include vec.h, not varray.h.
12358 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
12359 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
12360 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
12361 VEC_* macros operating on appropriately typed vectors, or to
12362 malloced arrays when the size is known in advance. Const-ify
12363 many char* variables and function arguments. No functional changes.
12364 * Makefile.in (build/varray.o): Delete rule.
12365 (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
12366 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
12367
12368 2006-01-22 Zack Weinberg <zackw@panix.com>
12369
12370 * gensupport.c: Define get_insn_name and record_insn_name here.
12371 (read_md_rtx): Call record_insn_name as appropriate.
12372 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12373 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12374 * genpreds.c, genrecog.c: Don't define get_insn_name nor
12375 record_insn_name.
12376 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
12377 (BUILD_VARRAY): Delete.
12378 (genprognormal): Rename genprogmd. Fold in all programs from
12379 genprognoprint; also attrtab.
12380 (build/genattrtab): Just mention genautomata.o and varray.o.
12381 Reorganize a bit, add comments to make the categories clearer.
12382
12383 2006-01-22 Zack Weinberg <zackw@panix.com>
12384
12385 * genconditions.c (condition_table, add_condition): Delete.
12386 (write_conditions): Don't emit n_insn_conditions nor
12387 insn_elision_unavailable. Issue the gcc version #ifdef here,
12388 inside the table, with no #else clause ...
12389 (write_header): ...not here.
12390 (write_writer): New function.
12391 (main): Don't initialize condition_table. Use add_c_test.
12392 Call write_writer.
12393 * gensupport.c (init_md_reader_args_cb): Handle multiple input
12394 files on the command line.
12395 (maybe_eval_c_test): Don't check insn_elision_unavailable.
12396 Return -1 if there is no entry in the table, don't abort.
12397 (add_c_test, traverse_c_tests): New functions.
12398 * gensupport.h (insn_elision_unavailable, insn_conditions)
12399 (n_insn_conditions): Delete declarations.
12400 (add_c_test, traverse_c_tests): Declare.
12401 * read-rtl.c: Include gensupport.h.
12402 (read_conditions): New function.
12403 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
12404 (read_rtx_1): If we get EOF when we were looking for an initial
12405 open paren, return 0. Call read_conditions when appropriate.
12406 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
12407 dummy-conditions.o. Eliminate references to insn-conditions.o,
12408 or change them to build/gencondmd.o, as appropriate. Remove
12409 insn-constants.h from $(simple_generated_h) and insn-conditions.c
12410 from $(simple_generated_c). For all files remaining in those
12411 two lists, add insn-conditions.md to the generator command line.
12412 Give insn-constants.h/s-constants their own rules. Add rules
12413 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12414 (build/read-rtl.o): Depend on gensupport.h.
12415 (genprognormal): Include preds.
12416 (genprogearly): Rename genprognoprint; only difference is now that
12417 they don't link with $(BUILD_PRINT).
12418 * dummy-conditions.c: Delete.
12419
12420 2006-01-22 Zack Weinberg <zackw@panix.com>
12421
12422 * genextract.c: Don't include insn-config.h. Do include vec.h.
12423 Declare vectors of int, char, and locstr.
12424 (locstr): New typedef.
12425 (struct extraction): Make all array fields into bare pointers.
12426 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12427 (insn_code_number): Delete.
12428 (accum_extract): New struct.
12429 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12430 (gen_insn): Take insn_code_number as an argument. Use an
12431 accum_extract structure instead of loading data directly into
12432 a struct extraction, and having to know how big it might get.
12433 (walk_rtx): Operate entirely on an accum_extract structure.
12434 (print_path): Avoid unnecessary use of printf.
12435 (print_header): New function, split out of main. Distinguish
12436 more carefully between an unrecognizable insn and an insn that
12437 has the code number of a define_expand.
12438 (main): Pass insn_code_number to gen_insn. Call print_header
12439 only after parsing. Avoid unnecessary use of printf.
12440 * Makefile.in (build/vec.o): New rule.
12441 (build/genextract): Depend on build/vec.o.
12442 (build/genextract.o): Don't depend on insn-config.h.
12443
12444 2006-01-22 Zack Weinberg <zackw@panix.com>
12445
12446 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12447 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
12448 practical. Eliminate per-generator-program link rules.
12449
12450 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
12451
12452 PR middle-end/24437
12453 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12454 with a call expr to ...
12455 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12456
12457 2006-01-23 Richard Guenther <rguenther@suse.de>
12458
12459 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12460 before make_edge with conditional EDGE_TRUE_VALUE.
12461
12462 2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
12463 Jan Hubicka <jh@suse.cz>
12464 Richard Guenther <rguenther@suse.de>
12465
12466 PR rtl-optimization/25654
12467 * cfgexpand.c (aggregate_contains_union_type): New function.
12468 (add_alias_set_conflicts): Call it. Make sure to add conflicts
12469 for structure variables that contain a union type.
12470
12471 2006-01-23 Richard Sandiford <richard@codesourcery.com>
12472
12473 * gengtype.c (new_structure): Return the structure.
12474 (create_option): Add an extra "next" argument.
12475 (create_field): New function.
12476 (adjust_field_rtx_def): Use create_option and create_field.
12477 Remove a now-unnecessary call to find_structure.
12478 (adjust_field_tree_def): Likewise.
12479 (note_yacc_type): Remove an unnecessary call to find_structure.
12480 * gengtype.h (new_structure): Return the structure.
12481 (create_option): Add an extra argument.
12482 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12483 (option): Adjust calls to create_option.
12484
12485 2006-01-22 David Edelsohn <edelsohn@gnu.org>
12486
12487 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12488
12489 2006-01-22 Paul Brook <paul@codesourcery.com>
12490 Peter Barada <peter@the-baradas.com>
12491
12492 * config/m68k/m68k.md: Add Coldfire FPU support.
12493 Define FP mode macro and associated attributes.
12494 Use it for float mode patterns.
12495 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12496 (LIBCALL_VALUE): Use m68k_libcall_value.
12497 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12498 (m68k_function_value): Ditto.
12499 (emit_move_sequence): Ditto.
12500 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12501 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12502 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12503 (MULTILIB_EXCEPTIONS): Ditto.
12504 * config/m68k/m68k.opt: Add mcfv4e.
12505 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12506 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12507 (m68k_output_function_prologue): Save ColdFire FPU registers.
12508 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12509 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12510 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12511 ColdFire FPU registers.
12512 (m68k_libcall_value, m68k_function_value): New functions.
12513 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12514 (LIBCALL_VALUE): Use m68k_libcall_value.
12515 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12516 (MASK_COLDFIRE): Add MASK_CFV4E.
12517 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12518 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12519 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12520 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12521 (GO_IF_LEGITIMATE_ADDRESS): Use it.
12522 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12523 * doc/invoke.tex: Document -mcfv4e on m68k.
12524
12525 2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
12526
12527 * doc/contribute.texi: Change CVS to SVN and update the corresponding
12528 URL.
12529
12530 2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
12531
12532 PR c++/16190
12533 * c-opts.c (c_common_handle_option): Don't include
12534 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12535 * doc/invoke.texi (C++ Dialect Options): Document that
12536 -Wnon-virtual-dtor is no longer included in -Wall.
12537
12538 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
12539
12540 * gcov.c (print_version), gcov-dump.c (print_version),
12541 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12542 dates.
12543
12544 2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
12545
12546 * df-scan.c (problem_SCAN): Added NULL reset function.
12547 (df_scan_reset_blocks): Added code to call reset block function
12548 (df_bb_refs_delete) Fixed comment.
12549 (df_insn_refs_delete): Made tolerant of deleting non existent info
12550 for dataflow problems that need to be reset.
12551 * df-core.c (df_set_blocks): Ditto.
12552 * df.h (struct df_problem): Added reset_fun.
12553 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12554 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12555 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12556 functions to clear out all references to def-use or use-def chains.
12557
12558 2006-01-21 Ben Elliston <bje@au.ibm.com>
12559
12560 * varasm.c (assemble_real): Initialise data array.
12561
12562 2006-01-20 Paul Brook <paul@codesourcery.com>
12563
12564 Merge from csl-arm-branch.
12565 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
12566 * config/arm/arm.md (movdi): Force operands[1] to a register
12567 if we have a non-register source.
12568 (*arm_movdi, *movdf_soft_insn): Require that one of the
12569 operands be a register.
12570 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12571 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12572
12573 2006-01-20 DJ Delorie <dj@redhat.com>
12574
12575 * varasm.c (initializer_constant_valid_p): Allow pointers
12576 initialized from integer constants of lesser precision.
12577 (output_constant): Allow non-int-sized pointer modes to be
12578 initialized from integer constants.
12579
12580 2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
12581
12582 PR libstdc++/25524
12583 * cppdefault.h (struct default_include): Add multilib flag.
12584 * cppdefault.c (cpp_include_defaults): Set it.
12585 * c.opt (-imultilib): New option.
12586 * c-opts.c (imultilib): New.
12587 (c_common_handle_option): Handle -imultilib.
12588 (c_common_post_options): Likewise.
12589 * c-incpath.c (add_standard_paths, register_include_chains):
12590 Likewise.
12591 * c-incpath.h (register_include_chains): Add extra parameter.
12592 * gcc.c (do_spec_1): Generate -imultilib option.
12593 (The Specs Language): Update %I description.
12594 (process_command): Update copyright notice.
12595 * doc/cppopts.texi (-imultilib): Document.
12596 * doc/invoke.texi (-imultilib): Include in option summary.
12597 (%I): Update specs documentation.
12598
12599 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12600
12601 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12602
12603 2006-01-20 Richard Sandiford <richard@codesourcery.com>
12604
12605 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12606 label numbers.
12607
12608 2006-01-20 Richard Guenther <rguenther@suse.de>
12609 Steven Bosscher <stevenb.gcc@gmail.com>
12610
12611 PR rtl-optimization/24626
12612 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12613 EDGE_TRUE_VALUE if in RTL mode.
12614
12615 Revert
12616 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12617 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12618
12619 2006-01-20 Dirk Mueller <dmueller@suse.com>
12620
12621 PR c++/5520
12622 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12623 instead of a special NOP marker.
12624 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12625 NOP marker handling.
12626 * c-common.h (empty_body_warning): Add forward declaration.
12627 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12628 Now uses IS_EMPTY_STMT() instead of special NOP markers.
12629
12630 2006-01-20 Paul Brook <paul@codesourcery.com>
12631
12632 * Makefile.in (lang_checks): Keep going if mkdir fails.
12633
12634 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12635
12636 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12637 be able to clean out basic block when not necessary.
12638 (df_scan_free): Fixed to properly delete information if df is
12639 unused before calling df_finish.
12640 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12641 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12642 or comment typos.
12643 (df_bb_refs_delete): New function.
12644 (df_refs_delete): Moved per block code to df_bb_refs_delete.
12645 * df-core.c (df_set_blocks): Added code to properly clean out
12646 unused blocks if they are not part of the blocks to consider.
12647 Added additional null check.
12648 (df_compact_blocks): Added basic block parameter to free_bb_fun to
12649 be able to clean out basic block when not necessary
12650 * df.h (df_free_bb_function): Ditto.
12651 (df_bb_refs_delete): New function.
12652 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12653 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12654 basic block parameter to be able to clean out basic block when not
12655 necessary.
12656 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12657 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12658 Fixed to properly delete information if df is unused before
12659 calling df_finish.
12660
12661 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
12662
12663 PR rtl-optimization/25799
12664 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12665 Corrected confluence operator to remove bits from op2 before oring
12666 with op1 rather than removing bits from op1.
12667 (df_ru_transfer_function): Corrected test on wrong bitmap which
12668 caused infinite loop. Both of these problems were introduced in
12669 the dataflow rewrite.
12670
12671 2006-01-19 DJ Delorie <dj@redhat.com>
12672
12673 * reload1.c (find_reload_regs): Note the details of reload
12674 failures in the dump file.
12675 (spill_failure): Likewise.
12676
12677 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
12678
12679 * loop-iv.c: Include df.h and hashtab.h.
12680 (enum iv_grd_result): New enum.
12681 (DF_REF_IV, DF_REF_IV_SET): New macros.
12682 (struct biv_entry): New.
12683 (df, bivs): New global variables.
12684 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12685 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12686 Removed.
12687 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12688 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12689 analyzed_for_bivness_p, record_biv): New functions.
12690 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12691 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12692 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12693 UD chains.
12694 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12695 analysed.
12696 (iv_number_of_iterations): Use new interface to iv analysis.
12697 * loop-unroll.c: Do not include varray.h.
12698 (analyze_iv_to_split_insn): Use new interface to iv
12699 analysis.
12700 * loop-unswitch.c (may_unswitch_on): Ditto.
12701 * df.c (df_bitmaps_free): Only work for bbs for that structures are
12702 allocated.
12703 (df_bb_modify): Realloc tables to the new index.
12704 (df_find_use): New function.
12705 * df.h (df_find_use): Declare.
12706 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12707 outmode.
12708 * cfgloop.h (struct rtx_iv): Remove analysed field.
12709 (iv_get_reaching_def): Removed.
12710 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12711 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12712 (loop-iv.o): Add df.h and hashtab.h dependency.
12713 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12714
12715 2006-01-20 Alan Modra <amodra@bigpond.net.au>
12716
12717 PR target/25668
12718 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12719 Double TFmode.
12720 (__floatundisf, __floatundidf): Likewise.
12721 * libgcc2.h (IS_IBM_EXTENDED): Define.
12722
12723 2006-01-19 DJ Delorie <dj@redhat.com>
12724
12725 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12726
12727 2006-01-19 Paul Brook <paul@codesourcery.com>
12728
12729 * config/arm/arm.c (arm_compute_func_type): Treat all functions
12730 as nothrow when unwinding tables are disabled.
12731
12732 2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12733
12734 PR testsuite/25171
12735 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12736 of bit-field" when in system header.
12737
12738 2006-01-19 DJ Delorie <dj@redhat.com>
12739
12740 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
12741 the 16 bit shift limit of the m16c.
12742
12743 2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
12744
12745 PR target/22099
12746 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
12747 * config/i386/i386.c (output_set_got): Output the label if we have one
12748 for the TARGET_DEEP_BRANCH_PREDICTION case.
12749
12750 2006-01-19 Jan Hubicka <jh@suse.cz>
12751 H.J. Lu <hongjiu.lu@intel.com>
12752 Evandro Menezes <evandro.menezes@amd.com>
12753
12754 * invoke.texi (generic): Document
12755 (i686) Update.
12756 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
12757 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
12758 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
12759 (x86_use_incdec, x86_pad_returns): New variables
12760 (TARGET_CPU_DEFAULT_generic): New constant
12761 (TARGET_CPU_DEFAULT_NAMES): Add generic.
12762 (enum processor_type): Add generic32 and generic64.
12763 * i386.md (cpu attribute): Add generic32/generic64
12764 (movhi splitter): Behave sanely when both partial_reg_dependency and
12765 partial_reg_stall are set.
12766 (K8 splitters): Enable for generic as well.
12767 * predicates.md (incdec_operand): Use TARGET_INCDEC
12768 (aligned_operand): Avoid memory mismatch stalls.
12769 * athlon.md: Enable for generic64, new patterns for 128bit moves.
12770 * ppro.md: Enable for generic32
12771 * i386.c (generic64_cost, generic32_cost): New.
12772 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
12773 (x86_use_leave): Enable for generic64. (x86_use_sahf,
12774 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
12775 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
12776 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
12777 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12778 x86_partial_reg_dependency, x86_memory_mismatch_stall,
12779 x86_accumulate_outgoing_args, x86_prologue_using_move,
12780 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
12781 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
12782 Enable for generic.
12783 (x86_use_incdec, x86_pad_returns): New.
12784 (override_options): Add generic32 and generic64, translate "generic"
12785 to generic32/generic64 and "i686" to "generic32", refuse
12786 "generic32"/"generic64" as arch target.
12787 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
12788 (ix86_reorg): Honor PAD_RETURNS.
12789
12790 2006-01-19 Diego Novillo <dnovillo@redhat.com>
12791
12792 * tree-pretty-print.c (dump_generic_node): Handle
12793 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
12794 * cgraph.c (cgraph_expand_queue): Rename from
12795 cgraph_analyze_queue. Update all users.
12796 * cgraphunit.c (cgraph_assemble_pending_functions): Process
12797 cgraph_expand_queue.
12798 (cgraph_expand_all_functions): Likewise.
12799 (cgraph_finalize_pending_functions): Remove. Update callers.
12800
12801 * tree.h (OMP_DIRECTIVE_P): Define.
12802 (OMP_PARALLEL_FN): Define.
12803 (OMP_PARALLEL_DATA_ARG): Define.
12804 (OMP_SECTIONS_SECTIONS): Define.
12805 * tree-pass.h (pass_expand_omp): Declare.
12806 * omp-low.c (struct omp_region): Declare.
12807 (struct omp_context): Remove fields 'parallel_type',
12808 'parallel_start_ix' and 'parallel_start_additional_args'.
12809 Update all users.
12810 (struct omp_for_data): Rename from struct expand_omp_for_data.
12811 (omp_regions): New static variable.
12812 (root_omp_region): New static variable.
12813 (find_omp_clause): Make static.
12814 (is_in_combined_parallel_ctx): Remove.
12815 (is_combined_parallel): New.
12816 (extract_omp_for_data): Move earlier in the file.
12817 (workshare_safe_to_combine_p): New.
12818 (get_ws_args_for): New.
12819 (determine_parallel_type): Move earlier in the file.
12820 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
12821 child function.
12822 (omp_copy_decl): Likewise.
12823 (create_omp_child_function): Likewise.
12824 (lookup_omp_region): New.
12825 (dump_omp_region): New.
12826 (debug_omp_region): New.
12827 (debug_all_omp_regions): New.
12828 (new_omp_region): New.
12829 (scan_omp_parallel): If parallel_nesting_level > 1, the
12830 directive is nested within another parallel directive.
12831 Set OMP_PARALLEL_FN.
12832 (scan_omp_for): Do not try to handle combined parallel+for
12833 cases.
12834 Remove FIXME comment.
12835 (scan_omp_nested): Remove.
12836 (scan_omp_1): Do not call scan_omp_nested when
12837 parallel_nesting_level is > 1.
12838 Do not change the DECL_CONTEXT of local variables found.
12839 (lookup_decl_in_outer_ctx): New.
12840 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
12841 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
12842 (lower_reduction_clauses): Rename from expand_reduction_clauses.
12843 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
12844 If CTX is nested, lookup VAR in the outer context when
12845 building copy assignment.
12846 (lower_send_clauses): Rename from expand_send_clauses.
12847 If CTX is nested, lookup VAR in the outer context when
12848 building copy assignments.
12849 (lower_send_shared_vars): Rename from expand_send_shared_vars.
12850 If CTX is nested, lookup VAR in the outer context when
12851 building copy assignments.
12852 (expand_parallel_call): Rename from build_parallel_call.
12853 Handle combined parallel+workshare cases.
12854 Re-implement to emit code into the CFG.
12855 (list2chain): New.
12856 (expand_omp_parallel): Re-implement to emit code into the CFG.
12857 Call move_sese_region_to_fn to outline the sub-graph
12858 containing the parallel region.
12859 (expand_omp_for_1): Remove.
12860 (expand_omp_for_generic): Re-implement to emit code into the
12861 CFG.
12862 (expand_omp_for_static_nochunk): Likewise.
12863 (expand_omp_for_static_chunk): Likewise.
12864 (expand_omp_for): Likewise.
12865 (expand_omp_sections): Likewise.
12866 (remove_exit_barriers): New.
12867 (expand_omp_synch): New.
12868 (expand_omp): New.
12869 (build_omp_regions_1): New.
12870 (build_omp_regions): New.
12871 (execute_expand_omp): New.
12872 (gate_expand_omp): New.
12873 (pass_expand_omp): Define.
12874 (lower_omp_sections): Rename from expand_omp_sections.
12875 Set OMP_SECTIONS_SECTIONS.
12876 (lower_omp_single_simple): Rename from expand_omp_single_simple.
12877 (lower_omp_single_copy): Rename from expand_omp_single_copy.
12878 (lower_omp_single): Rename from expand_omp_simple.
12879 (lower_omp_master): Rename from expand_omp_master.
12880 (lower_omp_ordered): Rename from expand_omp_ordered.
12881 (lower_omp_critical): Rename from expand_omp_critical.
12882 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
12883 (lower_omp_for): Re-implement.
12884 (lower_omp_parallel): Re-implement.
12885 (lower_regimplify): Rename from expand_regimplify.
12886 (lower_omp_1): Rename from expand_omp_1.
12887 If there are syntax errors in the program, replace every
12888 OpenMP directive with NOP.
12889 Call lower_omp_* instead of expand_omp_*.
12890 (lower_omp): Rename from expand_omp.
12891
12892 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
12893 * tree-gimple.h (enum omp_parallel_type): Remove.
12894 (gimple_boolify): Declare extern.
12895 (find_omp_clause, determine_parallel_type): Remove.
12896
12897 * gimple-low.c (lower_omp_directive): New.
12898 (lower_stmt): Call it.
12899 (record_vars_into): Move from ...
12900 (record_vars): ... here.
12901 Call record_vars_into with current_function_decl.
12902
12903 * gimplify.c (struct gimplify_ctx): Remove fields
12904 combined_pre_p and combined_ctxp. Update users.
12905 (get_formal_tmp_var): Add documentation.
12906 (gimple_boolify): Make extern.
12907 (gimplify_expr_in_ctx): Remove. Update callers.
12908 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
12909 will always be a BIND_EXPR.
12910 (gimplify_expr): Handle OMP_RETURN_EXPR.
12911 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
12912 (OMP_PARALLEL): Add 3 operands.
12913 (OMP_SECTIONS): Add 1 operand.
12914 (OMP_RETURN_EXPR): Define.
12915
12916 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
12917 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
12918 * tree-iterator.c (alloc_stmt_list): Assert that we are not
12919 creating a circular free list.
12920 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
12921
12922 * tree-flow.h (move_sese_region_to_fn): Declare.
12923 (record_vars_into): Declare.
12924 * tree-cfg.c (make_omp_sections_edges): New.
12925 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
12926 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
12927 OMP_SECTIONS and OMP_SECTION.
12928 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
12929 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
12930 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
12931 (gather_blocks_in_sese_region): New.
12932 (struct move_stmt_d): Declare.
12933 (move_stmt_r): New.
12934 (move_block_to_fn): New.
12935 (move_sese_region_to_fn): New.
12936
12937 * passes.c (init_optimization_passes): Schedule
12938 pass_expand_omp after pass_init_datastructures.
12939
12940 * tree-ssa-operands.c (get_expr_operands): Handle
12941 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
12942 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
12943
12944 2006-01-19 Jeff Law <law@redhat.com>
12945
12946 * tree-vrp.c (extract_range_from_assert): Refine the result range
12947 if the variable referenced by the ASSERT_EXPR has a range and
12948 either the tentative result range or the previous range is a
12949 VR_ANTI_RANGE.
12950
12951 2006-01-19 Richard Sandiford <richard@codesourcery.com>
12952
12953 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
12954
12955 2006-01-19 Jan Hubicka <jh@suse.cz>
12956
12957 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
12958
12959 2006-01-19 Paolo Bonzini <bonzini@gnu.org>
12960
12961 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
12962 (expand_compound_operation, expand_field_assignment): Fail if the
12963 bit lengths of an extract operation are out of range.
12964 (make_extraction): Compute wanted_inner_mode based on the position
12965 and length of the extraction. Make it extraction_mode for non-constant
12966 positions, and do not modify offset in that case. When generating a
12967 new MEM, use a mode that can hold the extraction while keeping correct
12968 alignment. Remove code that supported MEMs wrapped by USEs.
12969 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
12970
12971 2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
12972
12973 * config/s390/s390.md ("Y", "y"): New mode attribute.
12974 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
12975 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
12976 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
12977 "*addsi3_imm_cc", "*addsi3_carry1_cc",
12978 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
12979 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
12980 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
12981 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
12982 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
12983 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
12984 "addsi3", "subsi3"): Insn patterns removed.
12985 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
12986 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
12987 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
12988 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
12989 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
12990 "*sub<mode>3_cconly2"): New insn patterns.
12991 ("addsi3", "subsi3"): New expanders.
12992
12993 2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
12994
12995 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
12996 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
12997 existing STMT_VINFO_VECTYPE if available.
12998 (vect_mark_relevant): Add special handling for stmts that are
12999 marked as STMT_VINFO_IN_PATTERN_P.
13000 (vect_analyze_loop): Call vect_pattern_recog.
13001 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
13002 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
13003 stmt_info.
13004 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
13005 (vect_recog_func_ptr): New function-pointer type.
13006 * tree-vect-patterns.c: New file.
13007 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
13008 (vect_recog_dot_prod_pattern, vect_pattern_recog):
13009 (vect_pattern_recog_1): New functions.
13010 (vect_pattern_recog_funcs): New array of function pointers.
13011
13012 * tree-vectorizer.h (ternary_op): New enum value.
13013 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
13014 declaration. Revised documentation. Removed redundant dump prints.
13015 Removed redundant argument. Added support for reduction patterns.
13016 (vectorizable_reduction): Added support for reduction patterns.
13017 (vect_transform_stmt): Added support for patterns.
13018
13019 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
13020 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
13021 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
13022 (expand_widen_pattern_expr): New function.
13023 (init_optabs): Initialize new optabs udot_prod_optab,
13024 sdot_prod_optab.
13025 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
13026 (sdot_prod_optab, udot_prod_optab): Define new optabs.
13027 (expand_widen_pattern_expr): New function declaration.
13028 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
13029 tree-codes.
13030 * tree-inline.c (estimate_num_insns_1): Added cases for new
13031 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13032 * tree-pretty-print.c (dump_generic_node): Likewise.
13033 (op_prio): Likewise.
13034 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
13035 * tree-ssa-operands.c (get_expr_operands): Added case for
13036 DOT_PROD_EXPR.
13037 * tree-vect-patterns.c (widened_name_p): New function.
13038 (vect_recog_dot_prod_pattern): Added function implementation.
13039 * tree-vect-transform.c (get_initial_def_for_reduction): Added
13040 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
13041 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
13042 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
13043
13044 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
13045 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
13046 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
13047 (init_optabs): Initialize new optabs widen_ssum_optab,
13048 widen_usum_optab.
13049 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
13050 (widen_ssum_optab, widen_usum_optab): Define new optabs.
13051 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
13052 use instead of type of def.
13053 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
13054 function implementation.
13055 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
13056 widen_ssumv8hi): New.
13057
13058 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
13059 patterns.
13060
13061 2006-01-19 Richard Sandiford <richard@codesourcery.com>
13062
13063 PR c/25805
13064 * c-decl.c (add_flexible_array_elts_to_size): New function.
13065 (finish_decl): Use it.
13066
13067 2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
13068
13069 * diagnostic.h: Include options.h.
13070 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
13071 dependancies for diagnostic.h.
13072 * Makefile.in (DIAGNOSTIC_H): Add options.h.
13073
13074 2006-01-16 Daniel Berlin <dberlin@dberlin.org>
13075
13076 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
13077 (ssa_ro_call_cache_valid): Ditto.
13078 * tree-ssa-alias.c (sort_tags_by_id): New function.
13079 (init_transitive_clobber_worklist): Ditto.
13080 (add_to_worklist): Ditto.
13081 (mark_aliases_call_clobbered): Ditto.
13082 (compute_tag_properties): Ditto.
13083 (set_initial_properties): Ditto.
13084 (compute_call_clobbered): Ditto.
13085 (compute_may_aliases): Call compute_call_clobbered and grouping.
13086 (compute_flow_sensitive_aliasing): Remove clobbering related code.
13087 (compute_flow_insensitive_aliasing): Grouping now happens in our
13088 caller.
13089 (setup_pointers_and_addressables): Remove clobbering related code.
13090 (add_may_alias): Ditto.
13091 (replace_may_alias): Ditto.
13092 (get_nmt_for): Ditto.
13093 (create_global_var):
13094 (is_escape_site): Return an escape_type enumeration.
13095 * tree-flow-inline.h (is_call_clobbered): Global var does not
13096 imply call clobbered.
13097 (mark_call_clobbered): Take a reason for marking this. Remove
13098 marking of globalness, and cache invalidation.
13099 (clear_call_clobbered): Remove cache invalidation code.
13100 * tree-dfa.c (dump_variable): If details is on, dump the reason
13101 for escaping.
13102 * tree-outof-ssa.c (create_temp): Copy escape mask from original
13103 variable.
13104 * tree-flow.h (struct ptr_info_def): Add escape mask member.
13105 (struct var_ann_d): Ditto.
13106 (enum escape_type): New.
13107 (mark_call_clobbered): Adjust prototype.
13108 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
13109 are never call clobbered.
13110 Record reasons for escaping.
13111 * tree-ssa-structalias.h (is_escape_site): Update prototype.
13112 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
13113 (ssa_ro_call_cache_valid): Ditto.
13114 (clobbered_v_may_defs): Ditto.
13115 (clobbered_vuses): Ditto.
13116 (ro_call_vuses): Ditto.
13117 (clobber_stats): New.
13118 (init_ssa_operands): Zero out clobber stats.
13119 (fini_ssa_operands): Print out clobber stats.
13120 (get_call_expr_operands): Pass callee fndecl to
13121 add_call_read_ops).
13122 (add_call_clobber_ops): Remove use of cache.
13123 Add use of PURE_CONST information.
13124 (add_call_read_ops): Remove use of cache.
13125 Add use of static not_read information.
13126
13127 2006-01-18 Alexandre Oliva <aoliva@redhat.com>
13128
13129 Introduce TLS descriptors for i386 and x86_64.
13130 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
13131 (TARGET_ANY_GNU_TLS): New macro.
13132 (enum tls_dialect): Added TLS_DIALECT_GNU2.
13133 (struct machine_function): Add tls_descriptor_call_expanded_p.
13134 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
13135 (ix86_current_function_calls_tls_descriptor): Likewise.
13136 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
13137 (override_options): Introduce gnu2 tls dialect.
13138 (ix86_frame_pointer_required): Functions containing TLSCALLs are
13139 not leaves.
13140 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
13141 Likewise.
13142 (legitimize_tls_address): Adjust logic for GNU2 TLS.
13143 (ix86_init_machine_status): Initialize new field.
13144 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
13145 (ix86_tls_module_base): New.
13146 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
13147 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
13148 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
13149 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
13150 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
13151 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
13152 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
13153 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
13154 * config/i386/predicates.md (tls_modbase_operand): New.
13155 (tp_or_register_operand): New.
13156
13157 2006-01-18 Daniel Berlin <dberlin@dberlin.org>
13158
13159 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
13160 (look_for_address_of): Ditto.
13161 (ipa_init): Walk the function decls.
13162 (static_execute): Don't set readonly on FUNCTION_DECL's.
13163
13164 2006-01-18 Roger Sayle <roger@eyesopen.com>
13165
13166 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
13167 for shifts where the source and destination registers are different.
13168
13169 2006-01-18 Paul Brook <paul@codesourcery.com>
13170
13171 Merge from csl-arm-branch.
13172 2005-03-14 Julian Brown <julian@codesourcery.com>
13173 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
13174 (aeabi_llsl): Likewise.
13175 (ashrdi3): Likewise.
13176 (aeabi_lasr): Likewise.
13177 (lshrdi3): Likewise.
13178 (aeabi_llsr): Likewise.
13179 2005-03-10 Julian Brown <julian@codesourcery.com>
13180 * config.gcc: Disable shared libgcc for SymbianOS.
13181 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
13182
13183 2006-01-18 DJ Delorie <dj@redhat.com>
13184
13185 * c-pragma.c (handle_pragma_diagnostic): New.
13186 (init_pragma): Register it.
13187 * doc/extend.texi: Document it.
13188
13189 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
13190 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
13191 (diagnostic_context): Add classify_diagnostic[].
13192 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
13193 as errors if they're overridden to DK_WARNING.
13194 (diagnostic_initialize): Initialize classify_diagnostic[].
13195 (diagnostic_set_kind_override): New.
13196 (diagnostic_report_diagnostic): Check for kind changes.
13197 * opts.c (common_handle_option): Take lang_mask. Update callers.
13198 Handle OPT_Werror_.
13199 * common.opt (Werror=): New.
13200 * doc/invoke.texi: Document -Werror=*
13201
13202 2006-01-18 Jeff Law <law@redhat.com>
13203
13204 * tree-vrp.c (test_for_singularity): Correct test for new
13205 min limit. Use operand_equal_p rather than pointer equality
13206 for testing if new min/max values are equal.
13207
13208 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
13209 using range information until after propagation and folding.
13210
13211 2006-01-18 Richard Henderson <rth@redhat.com>
13212 Aldy Hernandez <aldyh@redhat.com>
13213 Jakub Jelinek <jakub@redhat.com>
13214 Diego Novillo <dnovillo@redhat.com>
13215
13216 * omp-low.c: New file.
13217 * c-omp.c: New file.
13218
13219 2006-01-18 Richard Henderson <rth@redhat.com>
13220 Jakub Jelinek <jakub@redhat.com>
13221 Diego Novillo <dnovillo@redhat.com>
13222
13223 * doc/invoke.texi: Document -fopenmp.
13224 * tree-dump.h (debug_function): Declare.
13225 * hooks.c (hook_bool_tree_bool_false): New function.
13226 (hook_tree_tree_null): Remove.
13227 (hook_tree_tree_tree_null): New.
13228 * hooks.h: Update to match.
13229 * tree-pretty-print.c (debug_tree_chain): New.
13230 (print_generic_expr): Handle TDF_CHAIN.
13231 (dump_generic_node): Handle BLOCK.
13232 Do not abort with incomplete SWITCH_EXPRs.
13233 Do not dump body of an OpenMP directive if TDF_SLIM is given.
13234 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
13235 print space after directive name.
13236 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
13237 Handle OMP_MASTER and OMP_ORDERED.
13238 Handle printing of OMP_BODY just in one place, goto
13239 dump_omp_body in the rest of OMP_* nodes that have
13240 OMP_BODY.
13241 Don't handle clause nodes here. Update omp statements to
13242 use dump_omp_clauses.
13243 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
13244 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
13245 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
13246 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
13247 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
13248 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
13249 Adjust output for GOMP_PARALLEL.
13250 (dump_omp_clauses): New.
13251 (print_declaration): Dump DECL_VALUE_EXPR.
13252 (op_symbol_1): Split out of op_symbol.
13253 (dumping_stmts): Remove. Update all users.
13254 * cgraph.c (cgraph_analyze_queue): New.
13255 (cgraph_add_new_function): New.
13256 * cgraph.h (cgraph_analyze_queue): Declare.
13257 (cgraph_add_new_function): Declare.
13258 (cgraph_lower_function): Remove.
13259 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
13260 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
13261 and TYPE_P nodes in its default clause.
13262 (empty_body_p): New.
13263 (tree_range_check_failed): New.
13264 (build5_stat): New.
13265 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
13266 OMP_CLAUSE_REDUCTION_MERGE,
13267 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
13268 OMP_CLAUSE_PRIVATE_DEBUG,
13269 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
13270 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
13271 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
13272 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
13273 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
13274 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
13275 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
13276 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
13277 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
13278 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
13279 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
13280 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
13281 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
13282 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
13283 (TREE_RANGE_CHECK): New.
13284 (empty_body_p): Declare.
13285 (enum omp_clause_default_kind): New.
13286 (build_string_literal): Declare.
13287 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
13288 (build5_stat, build5): Declare.
13289 * tree-pass.h (TDF_CHAIN): Define.
13290 * tree-pass.h (PROP_gimple_lomp): Define.
13291 (pass_lower_omp): Declare.
13292 * diagnostic.h (debug_tree_chain): Declare.
13293 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
13294 mode_for_size.
13295 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
13296 * builtins.c (build_string_literal): Make extern.
13297 * gcc.c (include_spec_function): New.
13298 (static_spec_functions): Add it.
13299 (main): Move load of libgomp.spec ...
13300 (LINK_COMMAND_SPEC): ... here.
13301 (link_gomp_spec): New.
13302 (static_specs): Include it.
13303 (LINK_COMMAND_SPEC): Add link_gomp.
13304 (GOMP_SELF_SPECS): New.
13305 (driver_self_specs): Include it.
13306 (switch_matches): Don't mark inline.
13307 (main): Load libgomp.spec.
13308 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
13309 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
13310 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
13311 * tree-gimple.h (enum omp_parallel): Declare.
13312 (determine_parallel_type): Declare.
13313 (omp_firstprivatize_variable): Declare.
13314 (omp_reduction_init): Declare.
13315 (diagnose_omp_structured_block_errors): Declare.
13316 (struct walk_stmt_info): Add want_return_expr.
13317 (struct walk_stmt_info): Add want_bind_expr, want_locations.
13318 (find_omp_clause): Declare.
13319 (insert_field_into_struct): Declare.
13320 (struct walk_stmt_info): Move from tree-nested.c
13321 (walk_stmts): Declare.
13322 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
13323 to 200505.
13324 * cgraphunit.c (cgraph_lower_function): Make static.
13325 (cgraph_finalize_pending_functions): New.
13326 (cgraph_finalize_function): Call it.
13327 (cgraph_finalize_compilation_unit): Likewise.
13328 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
13329 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
13330 (BT_FN_UINT_UINT): New.
13331 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
13332 DEF_FUNCTION_TYPE_VAR_4): Document.
13333 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
13334 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
13335 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
13336 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
13337 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
13338 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
13339 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
13340 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
13341 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
13342 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
13343 into separate files.
13344 (DEF_GOMP_BUILTIN): New.
13345 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
13346 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
13347 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
13348 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
13349 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
13350 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
13351 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
13352 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
13353 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
13354 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
13355 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
13356 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
13357 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
13358 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
13359 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
13360 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
13361 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
13362 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
13363 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
13364 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
13365 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
13366 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
13367 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
13368 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
13369 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
13370 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
13371 * sync-builtins.def: New file, moved from builtins.def.
13372 * omp-builtins.def: New file, moved from builtins.def.
13373 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
13374 * gimple-low.c (lower_function_body): Clear data.
13375 (lower_stmt): Do not handle COMPOUND_EXPR.
13376 Remove call to print_node_brief.
13377 * c-tree.h (c_finish_omp_clauses): New prototype.
13378 (C_DECL_THREADPRIVATE_P): Define.
13379 (lookup_name_no_remap, c_omp_remap_private): Remove
13380 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
13381 (check_for_loop_decls): Update decl.
13382 (lookup_name_no_remap, c_omp_remap_private): Declare.
13383 (build_indirect_ref, build_modify_expr, pushdecl,
13384 pushdecl_top_level): Move to c-common.h.
13385 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
13386 before the switch, but just in the 2 places that need it.
13387 * c-decl.c (diagnose_mismatched_decls): Do not check for
13388 mismatched thread-local attributes when OLDDECL is marked
13389 threadprivate and NEWDECL has no thread-local attributes.
13390 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
13391 (c_gimple_diagnostics_recursively): Rename from
13392 c_warn_unused_result_recursively. Invoke
13393 diagnose_omp_structured_block_errors.
13394 (check_for_loop_decls): Return a singular decl found.
13395 * langhooks.c (lhd_omp_predetermined_sharing): Return
13396 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
13397 (lhd_omp_firstprivatize_type_sizes): New.
13398 (lhd_omp_assignment): New.
13399 (lhd_omp_predetermined_sharing): New.
13400 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
13401 (struct lang_hooks_for_types): Add
13402 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
13403 omp_predetermined_sharing, omp_disregard_value_expr,
13404 omp_private_debug_clause, omp_clause_default_ctor,
13405 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
13406 (c_finish_omp_clauses): New.
13407 (c_finish_bc_stmt): Diagnose break within omp for.
13408 (c_begin_omp_parallel, c_finish_omp_parallel): New.
13409 (build_unary_op): Return error_mark after reporting
13410 a readonly_error.
13411 (build_modify_expr): Likewise.
13412 * gimplify.c: Include optabs.h and pointer-set.h.
13413 (enum gimplify_omp_var_data): Declare.
13414 (struct gimplify_omp_ctx): Declare.
13415 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13416 and combined_ctxp.
13417 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13418 (push_gimplify_context, pop_gimplify_context): Allow nesting.
13419 (splay_tree_compare_decl_uid): New.
13420 (new_omp_context): New.
13421 (delete_omp_context): New.
13422 (gimple_add_tmp_var): Call omp_add_variable.
13423 (gimplify_bind_expr): Likewise.
13424 (gimplify_var_or_parm_decl): If omp_notice_variable returned
13425 true, disregard DECL_VALUE_EXPR on the decl if any.
13426 (gimplify_expr_in_ctx): New.
13427 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13428 omp_add_variable, omp_notice_variable, omp_is_private
13429 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13430 gimplify_adjust_omp_clauses, gimplify_omp_parallel
13431 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13432 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13433 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13434 gimplify_omp_atomic): New.
13435 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13436 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13437 OMP_CRITICAL and OMP_ATOMIC.
13438 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13439 * c-pragma.h (enum pragma_kind): Add
13440 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13441 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13442 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13443 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13444 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13445 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13446 PRAGMA_OMP_THREADPRIVATE.
13447 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13448 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13449 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13450 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13451 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13452 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13453 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13454 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13455 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13456 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13457 * tree-ssa-dce.c (find_control_dependence): Do not assume that
13458 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13459 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13460 OpenMP directives.
13461 (struct nesting_info): Add field_map,
13462 suppress_expansion, debug_var_chain.
13463 (create_nesting_tree): Initialize them.
13464 (lookup_field_for_decl): Use field_map.
13465 (get_nonlocal_debug_decl, get_local_debug_decl): New.
13466 (convert_local_omp_clauses): New.
13467 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13468 (walk_body): Split out of walk_function.
13469 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13470 (convert_nonlocal_reference): Handle omp statements.
13471 (convert_local_reference): Likewise.
13472 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13473 (unnest_nesting_tree): New.
13474 (lower_nested_functions): Call it.
13475 (insert_field_into_struct): Make extern.
13476 (struct walk_stmt_info): Move to tree-gimple.h.
13477 (walk_stmts): Make extern.
13478 * omp-builtins.def: New file.
13479 * tree-iterator.c (expr_only): Clarify comment.
13480 * c-common.h (pushdecl_top_level, pushdecl,
13481 build_modify_expr, build_indirect_ref,
13482 c_finish_omp_master, c_finish_omp_critical,
13483 c_finish_omp_ordered, c_finish_omp_barrier,
13484 c_finish_omp_atomic, c_finish_omp_flush,
13485 c_finish_omp_for, c_split_parallel_clauses,
13486 omp_clause_default_kind, c_omp_sharing_predetermined,
13487 c_omp_remap_decl): Declare.
13488 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13489 (OBJS-common): Add omp-low.o.
13490 (c-omp.o, omp-low.o): Add.
13491 (gimplify.o): Add dependency on $(OPTABS_H).
13492 (GTFILES): Add omp-low.c.
13493 (gt-stringpool.h): Add.
13494 * tree-cfg.c (set_bb_for_stmt): Do not update the
13495 block-to-labels map if we are currently expanding to RTL.
13496 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13497 checks.
13498 Handle IDENTIFIER_NODE.
13499 (tree_verify_flow_info): Do not ICE when emitting error
13500 messages about invalid labels.
13501 (dump_function_to_file): Reset CFUN before emitting the body
13502 of the function.
13503 (debug_function): New.
13504 * passes.c (init_optimization_passes): Schedule
13505 pass_lower_omp.
13506 * langhooks-def.h (lhd_omp_predetermined_sharing,
13507 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13508 Declare.
13509 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13510 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13511 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13512 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13513 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13514 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13515 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13516 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13517 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13518 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13519 (LANG_HOOK_DECLS): Use them.
13520
13521 2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13522 Richard Henderson <rth@redhat.com>
13523 Jakub Jelinek <jakub@redhat.com>
13524 Diego Novillo <dnovillo@redhat.com>
13525
13526 * c-parser.c (pragma_omp_clause): Define.
13527 (c_parser_declaration_or_fndef): Document OpenMP syntax.
13528 (c_parser_compound_statement): Likewise.
13529 (c_parser_statement): Likewise.
13530 (c_parser_pragma): Handle omp pragmas.
13531 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13532 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13533 (c_parser_omp_clause_name, check_no_duplicate_clause,
13534 c_parser_omp_variable_list,
13535 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13536 c_parser_omp_clause_copyprivate,
13537 c_parser_omp_clause_default,
13538 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13539 c_parser_omp_clause_lastprivate,
13540 c_parser_omp_clause_nowait,
13541 c_parser_omp_clause_num_threads,
13542 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13543 c_parser_omp_clause_reduction,
13544 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13545 c_parser_omp_all_clauses, c_parser_omp_structured_block,
13546 c_parser_omp_atomic, c_parser_omp_barrier,
13547 c_parser_omp_critical, c_parser_omp_flush,
13548 c_parser_omp_for_loop, c_parser_omp_for,
13549 c_parser_omp_master, c_parser_omp_ordered,
13550 c_parser_omp_sections_scope, c_parser_omp_sections,
13551 c_parser_omp_parallel, c_parser_omp_single,
13552 c_parser_omp_construct, c_parser_omp_threadprivate): New.
13553 * c-pragma.c (init_pragma): Do omp pragma registration here.
13554 * c.opt (fopenmp): New flag.
13555
13556 2006-01-18 Eric Christopher <echristo@apple.com>
13557
13558 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13559 * config/darwin.h (GOMP_SELF_SPECS): Define.
13560
13561 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13562
13563 * rtl.h: Remove the prototype for reg_alloc.
13564
13565 2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13566
13567 PR target/25731
13568 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13569 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13570 sjlj and dwarf2 exception handling.
13571 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13572 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13573 * pa/pa.c (function_value): Treat complex and vector types as
13574 aggregates.
13575 (function_arg): Likewise. Only pass scalar floats in the floating
13576 point argument registers.
13577 * pa/t-slibgcc-dwarf-ver: New file.
13578 * pa/t-slibgcc-sjlj-ver: New file.
13579 * pa/t-slibgcc-elf-ver: Delete file.
13580
13581 2006-01-19 Alan Modra <amodra@bigpond.net.au>
13582
13583 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13584 unlikely_test_section_p test.
13585
13586 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13587
13588 * mode-switching.c (optimize_mode_switching): Make it static.
13589 * basic-block.h: Remove the prototype for
13590 optimize_mode_switching.
13591
13592 * modulo-sched.c (sms_schedule): Make it static.
13593 * rtl.h: Remove the prototype for sms_schedule.
13594
13595 * postreload-gcse.c (gcse_after_reload_main): Make it static.
13596 * rtl.h: Remove the prototype for gcse_after_reload_main.
13597
13598 * reg-stack.c (reg_to_stack): Make it static.
13599 * rtl.h: Remove the prototype for reg_to_stack.
13600
13601 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13602 Make them static.
13603 * rtl.h: Remove the prototypes for regrename_optimize and
13604 copyprop_hardreg_forward.
13605
13606 2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
13607
13608 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13609 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
13610 Test against the appropriate null constant for the mode.
13611 If 'fixup_overlap' is true, swap the operands if they overlap.
13612 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13613 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13614 alpha_split_tmode_pair and adjust for above change.
13615 * config/alpha/alpha.md (movtf_internal): Adjust call to
13616 alpha_split_tfmode_pair and rely on it to swap the operands.
13617 (movti_internal): New insn and post-reload splitter.
13618 (movti): New expander.
13619
13620 2006-01-18 Philippe De Muyter <phdm@macqel.be>
13621
13622 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13623 operands.
13624
13625 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
13626
13627 * rtlanal.c (global_reg_mentioned_p_1,
13628 global_reg_mentioned_p): Remove.
13629 * rtl.h: Remove the prototype for global_reg_mentioned_p.
13630
13631 * flow.c (initialize_uninitialized_subregs): Make it static.
13632 * rtl.h: Remove the prototype for
13633 initialize_uninitialized_subregs.
13634
13635 * function.c (instantiate_virtual_regs): Make it static.
13636 * function.h: Remove the prototype for
13637 instantiate_virtual_regs.
13638
13639 * regmove.c (regmove_optimize, combine_stack_adjustments):
13640 Make them static.
13641 * rtl.h: Remove the prototypes for regmove_optimize and
13642 combine_stack_adjustments.
13643
13644 2006-01-17 Roger Sayle <roger@eyesopen.com>
13645
13646 * config/i386/i386.c (COSTS_N_BYTES): New macro.
13647 (size_cost): Encode costs in bytes so that a reg-reg addition is
13648 equivalent to COSTS_N_INSNS(1).
13649 (override_options): Use the size_cost.branch_cost as the default
13650 ix86_branch_cost when optimizing for size.
13651
13652 2006-01-18 Ben Elliston <bje@au.ibm.com>
13653
13654 * Makefile.in (D32PBIT_FUNCS): New.
13655 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13656 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13657 D64PBIT_FUNCS and D128PBIT_FUNCS.
13658 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13659 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13660 D128PBIT are set.
13661 (decnumber_dep): Define.
13662 * doc/libgcc.texi (Decimal float library routines): New node.
13663 * config/dfp-bit.h, config/dfp-bit.c: New files.
13664
13665 2006-01-18 Ben Elliston <bje@au.ibm.com>
13666
13667 * expr.c (emit_move_change_mode): Always adjust addresses, not
13668 just during reload. Copy replacements only during reload.
13669 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13670 emit_move_via_integer.
13671
13672 2006-01-17 Shantonu Sen <ssen@opendarwin.org>
13673
13674 * Makefile.in (check-%, check-consistency): Use $${srcdir}
13675 instead of $(srcdir) and ${srcdir}.
13676
13677 2006-01-17 Richard Earnshaw <rearnsha@arm.com>
13678
13679 PR target/592
13680 PR middle-end/11135
13681 * arm.h (struct machine_function): Add pic_reg.
13682 * arm.c (arm_pic_register): Make unsigned.
13683 (arm_override_options): Only set arm_pic_register if
13684 TARGET_SINGLE_PIC_BASE.
13685 (use_return_insn): Only test for a pic register if it is fixed.
13686 (arm_compute_save_reg0_reg12_mask): Likewise.
13687 (thumb_compute_save_reg_mask): Likewise.
13688 (legitimate_pic_operand): Factor out some known invariants.
13689 (legitimize_pic_address): If we don't have a fixed pic register,
13690 then set up a pseudo in the function entry sequence. Handle the
13691 pic base being in a pseudo.
13692 (arm_load_pic_register): Handle the pic register being in a pseudo.
13693 (arm_expand_prologue): Only set up the pic register if it is fixed.
13694 (thumb_expand_prologue): Likewise.
13695 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13696 (pic_load_addr_based_insn): Likewise.
13697 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13698 fixed.
13699
13700 2006-01-18 Ben Elliston <bje@au.ibm.com>
13701
13702 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13703 decimal float modes for all floating point registers.
13704
13705 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13706 match_code "mem" with match_test "macho_lo_sum_memory_operand".
13707
13708 2006-01-17 Jakub Jelinek <jakub@redhat.com>
13709
13710 PR c/25682
13711 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13712 even when the pointer is not NULL.
13713
13714 2006-01-16 Ian Lance Taylor <ian@airs.com>
13715
13716 * common.opt (ftoplevel-reorder): New option.
13717 * cgraph.c (cgraph_asm_nodes): New global variable.
13718 (cgraph_asm_last_node): New static variable.
13719 (cgraph_order): New global variable.
13720 (cgraph_create_node): Set new order field.
13721 (cgraph_varpool_node): Likewise.
13722 (decide_is_variable_needed): Return true if not
13723 flag_toplevel_reorder.
13724 (cgraph_add_asm_node): New function.
13725 * cgraph.h (struct cgraph_node): Add order field.
13726 (struct cgraph_varpool_node): Add order field.
13727 (struct cgraph_asm_node): Define.
13728 (cgraph_asm_nodes, cgraph_order): Declare.
13729 (cgraph_add_asm_node): Declare.
13730 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13731 function.
13732 (cgraph_varpool_assemble_pending_decls): Call it.
13733 (cgraph_output_pending_asms): New static function.
13734 (cgraph_finalize_compilation_unit): Call it.
13735 (struct cgraph_order_sort): Define.
13736 (cgraph_output_in_order): New static function.
13737 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
13738 !flag_toplevel_reorder case.
13739 * c-parser.c: Include "cgraph.h".
13740 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
13741 assemble_asm.
13742 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
13743 than -fno-unit-at-a-time.
13744 * doc/invoke.texi (Option Summary): Mention
13745 -fno-toplevel-reorder.
13746 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
13747 -funit-at-a-time documentation.
13748
13749 2006-01-17 Hans-Peter Nilsson <hp@axis.com>
13750 Kazu Hirata <kazu@codesourcery.com>
13751
13752 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
13753
13754 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
13755
13756 * Makefile.in (FUNCTION_H): New. Use it instead of
13757 function.h throughout the file.
13758 * function.h: Include tree.h.
13759
13760 2006-01-17 Ben Elliston <bje@au.ibm.com>
13761
13762 * recog.c: Separate some functions with whitespace.
13763
13764 2006-01-16 Richard Henderson <rth@redhat.com>
13765
13766 Merge from gomp branch:
13767 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
13768 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
13769 and rename from struct inline_data. Rename callee* to dst*;
13770 caller* to src*; add copy_decl hook, transform_call_graph_edges,
13771 transform_new_cfg, transform_return_to_modify, and
13772 transform_lang_insert_block flags; remove cloning_p, versioning_p,
13773 update_clones_p.
13774 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
13775 (copy_decl_for_dup): Remove.
13776 * tree-inline.c (struct inline_data): Move to header.
13777 (insert_decl_map): Export.
13778 (remap_decl): Update for member name changes. Use copy_decl hook.
13779 Allow for replacement to be a non-decl. Remove dead code.
13780 (remap_type_1): Check for existing mapping.
13781 (remap_type): Export.
13782 (remap_decls): Update for member name changes.
13783 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
13784 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
13785 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
13786 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
13787 (tree_function_versioning, build_duplicate_type): Likewise.
13788 (copy_body_r): Likewise. Export.
13789 (copy_decl_for_dup): Split into ...
13790 (copy_decl_for_dup_finish, copy_decl_to_var,
13791 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
13792 (replace_ref_tree, inlining_p): Remove.
13793
13794 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13795
13796 * ifcvt.c (if_convert): Make it static.
13797 * rtl.h: Remove the prototype for if_convert.
13798
13799 * local-alloc.c (local_alloc): Make it static.
13800 * rtl.h: Remove the prototype for local_alloc.
13801
13802 * loop.c (loop_optimize): Make it static.
13803 * cfgloop.h: Remove the prototype for loop_optimize.
13804 * rtl.h: Likewise.
13805
13806 2006-01-16 DJ Delorie <dj@redhat.com>
13807
13808 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
13809 mems.
13810
13811 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13812
13813 * pa.md: Disparage copies between general and floating-point registers
13814 in 32-bit move patterns.
13815
13816 2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
13817
13818 PR testsuite/25741
13819 * Makefile.in (check-%): Depend on site.exp instead of
13820 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
13821 directories.
13822
13823 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13824
13825 * global.c (global_alloc): Make it static.
13826 * rtl.h: Remove the prototype for global_alloc.
13827
13828 2006-01-16 Richard Guenther <rguenther@suse.de>
13829
13830 * tree-ssa-alias.c (struct used_part): Add write_only field.
13831 (get_or_create_used_part_for): Initialize it to true.
13832 (create_overlap_variables_for): Don't create structure variables
13833 for structures that only are written to.
13834 (find_used_portions): Handle MODIFY_EXPR to track whether a
13835 structure is only written to.
13836
13837 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13838
13839 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
13840 static.
13841 * basic-block.h: Remove the prototype for
13842 partition_hot_cold_basic_blocks.
13843
13844 2006-01-16 Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
13845
13846 * cppspec.c (lang_specific_spec_functions): Remove.
13847 * gcc.c (lookup_spec_function): Use static_spec_functions directly.
13848 * gcc.h (lang_specific_spec_functions): Remove.
13849 * gccspec.c (lang_specific_spec_functions): Remove.
13850
13851 2006-01-16 Paolo Bonzini <bonzini@gnu.org>
13852
13853 * combine.c (record_value_for_reg): Invalidate registers
13854 if INSN is null.
13855 (record_dead_and_set_regs_1): Likewise, by passing them to
13856 record_value_for_reg.
13857 (record_dead_and_set_regs): Invalidate stores made by a
13858 call. We do not combine across a call, but we still
13859 relied on equivalences.
13860
13861 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13862
13863 * tree-vrp.c (extract_range_from_binary_expr): Cope with
13864 vrp_int_const_binop returning non-constant nodes.
13865
13866 2006-01-16 Paul Brook <paul@codesourcery.com>
13867
13868 * config/m68k/m68k.c (output_move_const_into_data_reg):
13869 Output correct mnemonic for mvz and mvs.
13870
13871 2006-01-16 Gabor Loki <loki@gcc.gnu.org>
13872
13873 * rtl-factoring.c: Add sequence abstraction algorithm.
13874 * cfgcleanup.c (outgoing_edges_match): Extra checks.
13875 (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
13876 ABNORMAL edges.
13877 (block_has_preserve_label): New function.
13878 * common.opt: Register new pass.
13879 * Makefile.in: Ditto.
13880 * passes.c: Ditto.
13881 * timevar.def: Ditto.
13882 * tree-pass.h: Ditto.
13883 * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
13884 * rtl.h (make_jump_insn_raw): Add forward decl.
13885 * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
13886
13887 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
13888 Roger Sayle <roger@eyesopen.com>
13889
13890 * fold-const.c (fold_minmax): New static function.
13891 (fold_binary) <MIN_EXPR>: Call it.
13892 <MAX_EXPR>: Likewise.
13893 * stor-layout.c (place_field): Use DECL_SIZE consistently
13894 in the computation of the new record size.
13895
13896 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
13897
13898 * cse.c (cse_condition_code_reg): Make it static.
13899 * rtl.h: Remove the prototype for cse_condition_code_reg.
13900
13901 * combine.c (combine_instructions): Make it static.
13902 * rtl.h: Remove the prototype for combine_instructions.
13903
13904 2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13905
13906 PR target/25168
13907 * tree.c (get_file_function_name_long): Concatenate the first global
13908 object name with a string derived from the input filename of the object
13909 for type "F".
13910
13911 2006-01-16 Ben Elliston <bje@au.ibm.com>
13912
13913 * config/i386/winnt-stubs.c: Update FSF address.
13914 * config/xtensa/ieee754-df.S: Ditto.
13915 * config/xtensa/ieee754-sf.S: Ditto.
13916
13917 2006-01-14 Ian Lance Taylor <ian@airs.com>
13918
13919 * ifcvt.c (noce_init_if_info): New static function, broken out of
13920 noce_process_if_block.
13921 (noce_process_if_block): Call noce_init_if_info.
13922 (check_cond_move_block): New static function.
13923 (cond_move_process_if_block): New static function.
13924 (process_if_block): Call cond_move_process_if_block.
13925
13926 2006-01-15 Kazu Hirata <kazu@codesourcery.com>
13927
13928 * cselib.c (hash_table): Rename to cselib_hash_table.
13929 (cselib_clear_table, discard_useless_values,
13930 remove_useless_values, cselib_lookup_mem, cselib_lookup,
13931 cselib_init, cselib_finish): Adjust uses of hash_table.
13932
13933 2006-01-14 Kazu Hirata <kazu@codesourcery.com>
13934
13935 PR tree-optimization/25485
13936 * tree-vrp.c (extract_range_from_binary_expr): Handle cases
13937 where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
13938 is known to be false and true, respectively.
13939
13940 2006-01-14 Richard Guenther <rguenther@suse.de>
13941
13942 PR tree-optimization/22548
13943 PR tree-optimization/22555
13944 PR tree-optimization/22501
13945 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
13946 * params.def (salias-max-array-elements): New parameter.
13947 * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
13948 * doc/invoke.texi (salias-max-array-elements): Document.
13949 * tree-flow-inline.h (var_can_have_subvars): We also handle
13950 arrays now.
13951 * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
13952 COMPONENT_REF.
13953 * tree-ssa-structalias.c (params.h): Include.
13954 (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
13955 (find_func_aliases): Handle multiple constraints from ARRAY_REF.
13956 (get_constraint_for): For ADDR_EXPR operating on something
13957 containing an ARRAY_REF, add all subvars to the solution.
13958 (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
13959 * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
13960 for creating MUST_DEFs.
13961 (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
13962
13963 2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
13964
13965 * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
13966 functions.
13967 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
13968 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
13969 number_of_iterations_le): New functions.
13970 (number_of_iterations_special): Removed.
13971 (number_of_iterations_exit): Do not use number_of_iterations_special.
13972 * tree.c (unsigned_type_for): Always return integer type.
13973
13974 2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
13975 Richard Guenther <rguenther@suse.de>
13976
13977 PR rtl-optimization/24257
13978 * gcse.c (find_moveable_store): Only consider a store movable
13979 when the SET_SRC of the insn can be assigned to a register.
13980
13981 2006-01-14 Ian Lance Taylor <ian@airs.com>
13982
13983 * tree.c (tree_not_class_check_failed): New function.
13984 * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
13985 (tree_not_class_check_failed): Declare.
13986
13987 2006-01-13 Ian Lance Taylor <ian@airs.com>
13988
13989 * reload1.c (do_output_reload): Add assertion rejecting a
13990 CALL_INSN.
13991
13992 2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
13993
13994 * combine.c (struct reg_stat): Add new fields truncation_label and
13995 truncated_to_mode.
13996 (record_value_for_reg): Reset truncated_to_mode.
13997 (record_truncated_value): New function.
13998 (check_promoted_subreg): Call it. Rename to check_conversions.
13999 (combine_instructions): Rename check_promoted_subreg to
14000 check_conversions.
14001 (reg_truncated_to_mode): New function.
14002 (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
14003 (gen_lowpart_or_truncate): New function.
14004 (force_to_mode): Use it instead of gen_lowpart.
14005
14006 2006-01-13 Diego Novillo <dnovillo@redhat.com>
14007
14008 * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
14009 VAR is a tag, not its type tag.
14010
14011 2006-01-13 Alexandre Oliva <aoliva@redhat.com>
14012
14013 * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
14014 alternatives to match style of other entries.
14015 (*vec_extractv2di_1_sse): Likewise. Fix mode attr.
14016
14017 2006-01-13 Daniel Berlin <dberlin@dberlin.org>
14018
14019 PR tree-optimization/25771
14020 * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
14021 SSA_NAMES.
14022
14023 2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
14024
14025 PR tree-opt/24365
14026 * tree-inline.c (declare_return_variable): If the return variable
14027 was marked as a non gimple complex, set the return slot variable
14028 to be a non gimple comple variable.
14029
14030 2006-01-13 Richard Guenther <rguenther@suse.de>
14031
14032 * builtins.c (expand_builtin_sincos): New function.
14033 (expand_builtin_mathfn_3): Remove dead code, sin and cos
14034 do not set errno.
14035 (expand_builtin): Expand sincos using expand_builtin_sincos.
14036
14037 2006-01-12 DJ Delorie <dj@redhat.com>
14038
14039 * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
14040 shift counts, separate SI shifts for m32c vs m16c, pass shift type
14041 so that constant shifts can be split.
14042 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
14043 (m32c_valid_pointer_mode): Make static.
14044 (shift_gen_func_for): New.
14045 (m32c_prepare_shift): Use it. Split large const shifts into
14046 multiple shifts.
14047 * config/m32c/predicates.md (shiftcount_operand): Allow more
14048 general operands.
14049 (longshiftcount_operand): New.
14050 * doc/md.texi (Machine Constraints): Document In6.
14051
14052 2006-01-13 Ben Elliston <bje@au.ibm.com>
14053
14054 * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
14055 REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
14056 documentation.
14057
14058 2006-01-12 Daniel Berlin <dberlin@dberlin.org>
14059
14060 * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
14061 to try to avoid clobbering pieces of structures when we know
14062 something about the whole structure.
14063 * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
14064
14065 2006-01-13 Ben Elliston <bje@au.ibm.com>
14066
14067 * doc/rtl.texi (Insns): Remove statement that libcalls cannot
14068 return in memory, as this is no limitation is no longer present.
14069
14070 2006-01-12 DJ Delorie <dj@redhat.com>
14071
14072 * config/m32c/addsub.md (addhi3): Add two more alternatives, for
14073 mova with fb, and for fb+0 -> An.
14074
14075 * config/m32c/mov.md (peephole2): Fix enabling logic.
14076
14077 * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
14078 DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
14079 DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
14080 FINI_ARRAY_SECTION_ASM_OP): Define.
14081
14082 * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
14083 variable.
14084 (m32c_legitimize_reload_address): New logic to reload FB to An.
14085 (m32c_output_reg_push): Add newline.
14086 (m32c_output_reg_pop): Likewise.
14087
14088 2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
14089
14090 * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
14091
14092 2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
14093
14094 * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
14095
14096 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14097
14098 * config/sh/predicates.md (sh_rep_vec): Add parallel to
14099 match_code.
14100
14101 2006-01-11 Ben Elliston <bje@au.ibm.com>
14102
14103 * rtlanal.c (find_reg_note): Assert insn is not null.
14104
14105 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14106
14107 * df-scan.c (df_hard_reg_init): Move declaration of i outside
14108 ifdef.
14109
14110 2006-01-11 Jeff Law <law@redhat.com>
14111
14112 * tree-ssa-threadupdate.c (threaded_edges): New VEC to
14113 hold edge pairs.
14114 (mark_threaded_blocks, register_jump_thread): New functions.
14115 (thread_through_all_blocks): Remove unwanted argument. No
14116 longer rely on e->aux to communicate thread target info.
14117 Call mark_threaded_blocks. Release the threaded_blocks
14118 bitmap and threaded_edges vector when complete.
14119 * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
14120 (threaded_blocks): Remove.
14121 (tree_ssa_dominator_optimize): Remove initialization and
14122 finalization of threaded_blocks. Simplify call to
14123 thread_through_all_blocks.
14124 (thread_across_edge): Call register_jump_thread rather than
14125 storing thread information into e->aux.
14126 (free_all_edge_infos): Simplify now that e->aux is no longer
14127 used to communicate with thread_through_all_blocks.
14128 * tree-flow.h (thread_through_all_blocks): Update prototype.
14129 (register_jump_thread): Prototype.
14130
14131 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14132
14133 * df-core.c (df_compact_blocks, df_bb_replace): Use
14134 SET_BASIC_BLOCK instead of BASIC_BLOCK.
14135
14136 2006-01-11 Richard Guenther <rguenther@suse.de>
14137
14138 PR tree-optimization/25734
14139 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
14140 stop propagation after successful propagation to the LHS.
14141
14142 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
14143
14144 * basic-block.h (control_flow_graph): Change the type of
14145 x_basic_block_info to VEC(basic_block,gc) *.
14146 (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
14147 basic_block_info.
14148 (SET_BASIC_BLOCK): New.
14149 * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
14150 instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
14151 * cfgbuild.c (find_basic_blocks): Likewise.
14152 * cfglayout.c (fixup_reorder_chain): Likewise.
14153 * cfgrtl.c (create_basic_block_structure,
14154 rtl_create_basic_block): Likewise.
14155 * ifcvt.c (find_if_case_1): Likewise.
14156 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
14157 Likewise.
14158
14159 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14160
14161 * Makefile.in: Removed rotted odf.c entry.
14162
14163 2006-01-11 Hans-Peter Nilsson <hp@axis.com>
14164
14165 PR target/25706
14166 * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
14167 ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
14168 ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
14169 output pattern modifier, not %e.
14170 * config/cris/cris.c (cris_op_str): Update comment about pattern
14171 modifier.
14172 (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
14173 before falling through into...
14174 <case 'E'>: Redefined from old 'e' case.
14175
14176 2006-01-11 Jan Hubicka <jh@suse.cz>
14177
14178 PR target/25042
14179 * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
14180
14181 2006-01-11 Jan Hubicka <jh@suse.cz>
14182
14183 * i386.h (TARGET_DECOMPOSE_LEA): Kill.
14184 * i386.c (x86_decompose_lea): Kill.
14185 (ix86_rtx_costs): Kill.
14186
14187 2006-01-11 Jan Hubicka <jh@suse.cz>
14188
14189 * cgraph.c (cgraph_insert_node_to_hashtable): New function.
14190 * cgraph.h (cgraph_node): Add inline_decl.
14191 (cgraph_insert_node_to_hashtable): Declare.
14192 (save_inline_function_body): Declare.
14193 * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
14194 clones.
14195 (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
14196 (cgraph_function_versioning): Update call of tree_function_versioning.
14197 (save_inline_function_body): New function.
14198 * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
14199 saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
14200 * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
14201 (cgraph_default_inline_p): Likewise.
14202 (cgraph_decide_inlining_incrementally): Likewise.
14203 * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
14204 (copy_bb): Kill saving; do updating of clones.
14205 (copy_cfg_body): Kill saving.
14206 (initialize_inlined-parameters): Likewise.
14207 (expand_call_inline): Likewise.
14208 (save_body): Kill.
14209 (tree_function_versioning): New parameter "update_clones".
14210 (inlining_p): Kill saving.
14211 * tree-inline.h (tree_function_versioning): Update prototype.
14212 * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
14213 saving.
14214
14215 2006-01-11 Ian Lance Taylor <ian@airs.com>
14216
14217 * combine.c (struct undo): Remove is_int. Enumify types of undos.
14218 Allow undoing set of machine mode.
14219 (do_SUBST): Use enums instead of is_int.
14220 (do_SUBST_MODE): New function.
14221 (SUBST_MODE): New macro.
14222 (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
14223 reg and trying to replace reg_regno_rtx with a new register.
14224 (undo_all): Use new enums, handle undoing a PUT_MODE change.
14225 (simplify_set): Use SUBST_MODE.
14226 (distribute_notes): Remove code that tried to update reg notes
14227 for regno_reg_rtx changes.
14228
14229 2006-01-11 Paolo Bonzini <bonzini@gnu.org>
14230
14231 PR tree-optimization/23109
14232 PR tree-optimization/23948
14233 PR tree-optimization/24123
14234
14235 * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
14236 * tree-cfg.c (single_noncomplex_succ): New.
14237 * tree-flow.h (single_noncomplex_succ): Declare it.
14238 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14239 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
14240 (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
14241 insert_bb, register_division_in, insert_reciprocals,
14242 replace_reciprocal, free_bb): New.
14243 (execute_cse_reciprocals_1): Rewritten.
14244 (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
14245 Do not commit any edge insertion. Always compute dominators and
14246 create the allocation pool.
14247 * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
14248 * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
14249 * targhooks.c (default_min_divistions_for_recip_mul): New.
14250 * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
14251 * passes.c (init_optimization_passes): Run recip after tree loop
14252 optimizations.
14253 * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
14254
14255 2006-01-11 Danny Berlin <dberlin@dberlin.org>
14256 Kenneth Zadeck <zadeck@naturalbridge.com>
14257
14258 * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
14259 DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
14260 DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
14261 DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
14262 DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
14263 DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
14264 DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
14265 DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
14266 DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
14267 DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
14268 DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
14269 DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
14270 DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
14271 DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
14272 DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
14273 DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
14274 DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
14275 DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
14276 DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
14277 DF_SCAN_POST_ALLOC): New macros.
14278 (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
14279 df_free_bb_function, df_local_compute_function, df_init_function,
14280 df_dataflow_function, df_confluence_function_0,
14281 df_confluence_function_n, df_transfer_function,
14282 df_finalizer_function, df_free_function, df_dump_problem_function,
14283 df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
14284 df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
14285 df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
14286 df_urec_bb_info, ) New types.
14287 (df_invalidated_by_call, df_all_hard_regs, df_state) New public
14288 variables.
14289 (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
14290 df_analyze_simple_change_some_blocks,
14291 df_analyze_simple_change_one_block, df_compact_blocks,
14292 df_bb_replace, df_bb_regno_last_use_find,
14293 df_bb_regno_first_def_find, df_bb_regno_last_def_find,
14294 df_insn_regno_def_p, df_find_def, df_find_use,
14295 df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
14296 df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
14297 df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
14298 debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
14299 debug_df_chain, df_get_dependent_problem, df_chain_create,
14300 df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
14301 df_grow_bb_info, df_chain_dump, df_print_bb_index,
14302 df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
14303 df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
14304 df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
14305 df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
14306 df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
14307 df_rescan_blocks, df_ref_create, df_get_artificial_defs,
14308 df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
14309 df_ref_remove, df_insn_refs_delete, df_refs_delete,
14310 df_reorganize_refs, df_set_state, df_hard_reg_init,
14311 df_read_modify_subreg_p) New public functions.
14312 * df-core.c: The core dataflow solver and glue routines for rtl
14313 dataflow.
14314 (df_init, df_add_problem, df_set_blocks, df_finish,
14315 df_hybrid_search_forward, df_hybrid_search_backward,
14316 df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
14317 df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
14318 df_bb_regno_last_use_find, df_bb_regno_first_def_find,
14319 df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
14320 df_reg_defined, df_find_use, df_reg_used, df_dump,
14321 df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
14322 df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
14323 debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
14324 debug_df_useno, reset_df_after_reload): New functions.
14325 * df-scan.c: The scanning fuctions, once in df.c, completely
14326 rewritten so that they now fully model the functionality of
14327 register usage at the backend.
14328 (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
14329 df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
14330 df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
14331 df_grow_insn_info, df_rescan_blocks, df_ref_create,
14332 df_get_artificial_defs, df_get_artificial_uses,
14333 df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
14334 df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
14335 df_refs_delete, df_reorganize_refs, df_set_state,
14336 df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
14337 df_def_record_1, df_defs_record, df_uses_record,
14338 df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
14339 df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
14340 df_record_exit_block_uses, df_hard_reg_init): New functions.
14341
14342 * df-problems.c: Seven concrete dataflow problems that use the
14343 scanning in df-scan.c and are solved by the engine in df-core.c.
14344 (df_get_dependent_problem, df_chain_create, df_chain_unlink,
14345 df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
14346 df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
14347 df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
14348 df_ru_free_bb_info, df_ru_alloc,
14349 df_ru_bb_local_compute_process_def,
14350 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
14351 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
14352 df_ru_transfer_function, df_ru_free, df_ru_dump,
14353 df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
14354 df_rd_free_bb_info, df_rd_alloc,
14355 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
14356 df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
14357 df_rd_transfer_function, df_rd_free, df_rd_dump,
14358 df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
14359 df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
14360 df_lr_local_compute, df_lr_init, df_lr_confluence_0,
14361 df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
14362 df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
14363 df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
14364 df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
14365 df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
14366 df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
14367 df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
14368 df_urec_mark_reg_change, df_urec_check_earlyclobber,
14369 df_urec_mark_reg_use_for_earlyclobber,
14370 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
14371 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
14372 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
14373 df_urec_dump, df_urec_add_problem, df_chain_alloc,
14374 df_chain_create_bb_process_use, df_chain_create_bb,
14375 df_chain_finalize, df_chain_free, df_chains_dump,
14376 df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
14377 df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
14378 df_reg_lifetime): New functions.
14379 * df.c: Deleted file.
14380 * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
14381 consistent with new df api.
14382 * modulo-sched.c (sms_schedule, rest_of_handle_sms,
14383 rest_of_handle_sms): Ditto.
14384 * web.c (unionfind_union, union_defs, entry_register, web_main):
14385 Ditto.
14386 * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
14387 invariant_expr_equal_p, find_defs, check_dependencies,
14388 find_invariant_insn, find_invariants_to_move, move_invariant_reg,
14389 free_inv_motion_data, move_loop_invariants): Ditto.
14390 * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
14391 Update dependencies.
14392 (odf.c): Added defective entry that was deleted later in day.
14393 * sched-deps.c (sched_analyze_1): Ditto.
14394
14395 2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
14396
14397 * tree-ssa-operands.c (get_expr_operands): Record addressable
14398 variables directly. Do not call add_stmt_operands for CONST_DECLs
14399 and ARRAY_DECLs.
14400 (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
14401 (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
14402
14403 2006-01-11 Ben Elliston <bje@au.ibm.com>
14404
14405 * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
14406 function returns true in the positive case.
14407
14408 2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14409
14410 PR target/20754
14411 * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14412 for SI, DI, SF and DF modes. Add alternatives to copy between
14413 general and floating point registers to the 32-bit patterns.
14414 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14415 * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14416 (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14417 generating 64-bit code.
14418 * config/pa/pa.c (output_move_double): Handle copies between general
14419 and floating registers.
14420
14421 2006-01-10 Stuart Hastings <stuart@apple.com>
14422
14423 * config/i386/i386.md (set_got): Update.
14424 (set_got_labelled): New. (UNSPEC_LD_MPIC): New.
14425 (builtin_setjmp_receiver): Mach-O support.
14426 * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14427 (GOT_SYMBOL_NAME): Define.
14428 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14429 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14430 * config/i386/i386.c (override_options): Revise for Darwin.
14431 (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
14432 support. (darwin_x86_file_end): New. (output_set_got): Add label
14433 parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
14434 * config/i386/i386-protos.h (output_set_got): Likewise.
14435 * config/darwin.c (machopic_legitimize_pic_address): Update
14436 regs_ever_live[].
14437
14438 2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
14439
14440 * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14441 when MODE isn't BLKmode.
14442
14443 2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
14444
14445 PR rtl-optimization/25367
14446 * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14447
14448 2006-01-10 Hans-Peter Nilsson <hp@axis.com>
14449
14450 PR target/25718
14451 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14452 for a negative bound.
14453
14454 2006-01-10 Richard Guenther <rguenther@suse.de>
14455
14456 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14457 Never override with anything constraint.
14458
14459 2006-01-10 Jan Beulich <jbeulich@novell.com>
14460
14461 * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14462 256 bits when optimize_size.
14463
14464 2006-01-10 Jan Beulich <jbeulich@novell.com>
14465
14466 * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14467 MASK_ALIGN_DOUBLE.
14468 * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14469 * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14470 arguments.
14471
14472 2006-01-10 Ben Elliston <bje@au.ibm.com>
14473
14474 * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14475 float modes.
14476 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14477 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14478 (USE_FP_FOR_ARG): Reject decimal float modes.
14479 (function_arg_advance): Likewise.
14480 (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14481 (rs6000_handle_altivec_attribute): Do not permit decimal floating
14482 point types in AltiVec vectors.
14483 (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14484 (rs6000_libcall_value): Likewise.
14485
14486 2006-01-09 Bob Wilson <bob.wilson@acm.org>
14487
14488 * config/xtensa/ieee754-df.S: New file.
14489 * config/xtensa/ieee754-sf.S: New file.
14490 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14491 (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14492 * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14493
14494 2006-01-09 Kazu Hirata <kazu@codesourcery.com>
14495
14496 * config/sh/predicates.md (binary_float_operator,
14497 binary_logical_operator, commutative_float_operator,
14498 equality_comparison_operator, greater_comparison_operator,
14499 less_comparison_operator, logical_operator,
14500 noncommutative_float_operator, shift_operator,
14501 symbol_ref_operand, unary_float_operator): Remove redundant
14502 conditionals.
14503
14504 2006-01-09 Jeff Law <law@redhat.com>
14505
14506 * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14507 code to propagate the RHS of a cast into COND_EXPR_COND. Remove
14508 now unused arguments. Callers updated.
14509 (eliminate_redundant_computations): Remove now unused arguments,
14510 callers updated.
14511 (local_fold): Remove, no longer used.
14512 (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14513 and moved to...
14514 * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14515 (simplify_cond): New function.
14516 (forward_propagate_into_cond): Call simplify_cond.
14517
14518 2006-01-09 Alexandre Oliva <aoliva@redhat.com>
14519
14520 * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14521 (*vec_extractv2di_1_sse): New.
14522
14523 2006-01-09 Ben Elliston <bje@au.ibm.com>
14524
14525 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14526
14527 2006-01-08 Richard Guenther <rguenther@suse.de>
14528
14529 * tree-ssa-structalias.c (get_constraint_for): Remove
14530 anyoffset argument.
14531 (get_constraint_for_component_ref): Likewise.
14532 (do_deref): Likewise.
14533 (get_constraint_for): Likewise.
14534 (do_structure_copy): Likewise.
14535 (handle_ptr_arith): Likewise.
14536 (find_func_aliases): Likewise. Remove unused need_anyoffset
14537 variable.
14538
14539 2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
14540 Kaz Kojima <kkojima@gcc.gnu.org>
14541
14542 * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14543 (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14544 (EXTRA_CONSTRAINT_C16): Remove.
14545 (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14546 (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14547 EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14548 * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14549 constants of SHmedia. Handle nested constant expressions of
14550 SHmedia correctly.
14551 (andcosts): Fix the costs for SHmedia constants.
14552 (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14553 * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14554 (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14555 (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14556 (movv4hi_i, movv2si_i): Likewise.
14557 (movsi_const): Adjust the second operand of ior so to match with
14558 the Csu constraint.
14559 (movdi_const, movdi_const_32bit): Likewise.
14560 (movdi_const_16bit+1): Don't sign-extend LOW.
14561 (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
14562 step.
14563 (*double_shori): Fix the split condition. Use GEN_INT instead
14564 of get_int_mode calls. Mask lower 16-bit of the argument of
14565 the last GEN_INT.
14566 (sym2GOTPLT): Remove.
14567 (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14568 gen_rtx_UNSPEC.
14569 * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14570 instead of EXTRA_CONSTRAINT_C16.
14571
14572 2006-01-07 Ian Lance Taylor <ian@airs.com>
14573 David Edelsohn <edelsohn@gnu.org>
14574
14575 PR rtl-optimization/25662
14576 * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14577 for constant operands instead of simplify_gen_binary.
14578 * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14579 after trying simplify_binary_operation
14580
14581 2006-01-06 Daniel Berlin <dberlin@dberlin.org>
14582
14583 * tree.c (iterative_hash_expr): Hash decls based on UID.
14584
14585 2006-01-06 Eric Christopher <echristo@apple.com>
14586
14587 * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14588 (TARGET_UNWIND_EMIT): Fix spelling.
14589 * target.h (gcc_target): Add except_table_label.
14590 * except.c (output_function_exception_table): Use.
14591 * varasm.c (default_emit_except_table_label): New.
14592 * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14593 define.
14594 (asm_out): Add here.
14595 * output.h (default_emit_except_table_label): Prototype.
14596 * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14597 * config/darwin.c (darwin_emit_except_table_label): Define.
14598 * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14599
14600 2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
14601
14602 PR tree-optimization/18527
14603 * tree-ssa-loop-niter.c (number_of_iterations_cond,
14604 number_of_iterations_special, number_of_iterations_exit):
14605 Move base and step of an iv to a single structure. Add
14606 no_overflow flag, and use it in # of iterations analysis.
14607 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14608 folded_casts argument.
14609 (simple_iv): Pass base and step in a structure. Set no_overflow
14610 flag.
14611 (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14612 Evaluate expensiveness of computing # of iterations instead of
14613 the final expression.
14614 * tree-scalar-evolution.h (affine_iv): New structure.
14615 (simple_iv): Declaration changed.
14616 * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14617 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14618 find_givs_in_stmt): Changed due to simple_iv change.
14619
14620 2006-01-06 Jeff Law <law@redhat.com>
14621
14622 PR ada/24994
14623 * tree-cfg.c (bsi_replace): Rename final argument from
14624 PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
14625 change (stmt -> orig_stmt).
14626 * tree-eh.c (verify_eh_throw_stmt_node): New function.
14627 (bsi_remove): Add new argument. Remove EH information
14628 if requested.
14629 (verify_eh_throw_table_statements): New function.
14630 (bsi_remove): Add new argument REMOVE_EH_INFO. All callers
14631 updated.
14632 * tree-optimize.c (execute_free_cfg_annotations): Verify
14633 the EH throw statement table after removing annotations.
14634 * except.h (verify_eh_throw_table_statements): Prototype.
14635 * tree-flow.h (bsi_remove): Update prototype.
14636 * tree-vrp.c (remove_range_assertions): Add new argument to
14637 bsi_remove call.
14638 * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14639 * tree-complex.c (expand_complex_div_wide): Likewise.
14640 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14641 * tree-tailcall.c (eliminate_tailcall): Likewise.
14642 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14643 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14644 * tree-nrv.c (tree_nrv): Likewise.
14645 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14646 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14647 (combine_blocks): Likewise.
14648 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14649 * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14650 (cleanup_control_flow): Likewise.
14651 (remove_forwarder_block): Likewise.
14652 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14653 * tree-sra.c (sra_replace): Likewise.
14654 * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14655 (forward_propagate_single_use_vars): Likewise.
14656 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14657 * tree-inline.c (expand_call_inline): Likewise.
14658 * tree-vect-transform.c (vect_transform_loop): Likewise.
14659 * tree-outof-ssa.c (rewrite_trees): Likewise.
14660 * tree-cfg.c (make_goto_expr_edges): Likewise.
14661 (cleanup_dead_labels): Likewise.
14662 (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14663 (bsi_move_before, bsi_move_after): Likewise.
14664 (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14665 (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14666
14667 2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
14668
14669 PR tree-opt/25528
14670 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14671 and IMAGPART_EXPR.
14672 * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14673 on non gimple variables. Also add checks at the top for decls and
14674 mtags.
14675 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14676 complex types.
14677 * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14678 and IMAGPART_EXPR for creating MUST_DEFs.
14679 (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14680 and NAME_MEMORY_TAG separately from the DECLs.
14681
14682 2006-01-06 Richard Guenther <rguenther@suse.de>
14683
14684 * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14685 annotation, if necessary.
14686 * tree-ssa-pre.c (create_expression_by_pieces): Remove
14687 redundant calls to update_stmt.
14688 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14689 Likewise.
14690
14691 2006-01-05 Richard Henderson <rth@redhat.com>
14692
14693 * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14694
14695 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14696
14697 * c-typeck.c: Update copyright date.
14698
14699 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
14700
14701 * c-typeck.c (build_c_cast): Always warn when casting
14702 from a pointer to an integer of different size, even if
14703 the node was constant.
14704
14705 2006-01-05 Richard Guenther <rguenther@suse.de>
14706
14707 PR tree-optimization/22555
14708 * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14709 if one structure field is an array.
14710 * tree-ssa-operands.c (get_expr_operands): Continue scanning
14711 operands even if we found a subvar, but ignore VOPs in this
14712 case.
14713 * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14714 for renaming.
14715 * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14716
14717 2006-01-05 Richard Earnshaw <rearnsha@arm.com>
14718
14719 PR middle-end/24998
14720 * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14721
14722 2006-01-05 Richard Guenther <rguenther@suse.de>
14723 Diego Novillo <dnovillo@redhat.com>
14724
14725 * tree-pass.h (TODO_remove_unused_locals): Define.
14726 * gimple-low.c (expand_var_p, remove_useless_vars,
14727 pass_remove_useless_vars): Remove. Update all users.
14728 * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14729 (remove_unused_locals): New function.
14730 * tree-flow.h (remove_unused_locals): Declare.
14731 * passes.c (execute_todo): Call remove_unused_locals if
14732 TODO_remove_unused_locals is set.
14733 * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14734 * tree-ssa-dce.c (pass_dce): Likewise.
14735 * tree-outof-ssa.c (pass_del_ssa): Likewise.
14736
14737 2006-01-05 Richard Guenther <rguenther@suse.de>
14738
14739 * tree-flow.h (struct fieldoff): Decompose field to
14740 type, size and decl.
14741 * tree-ssa-alias.c (create_sft): Take type as parameter.
14742 (create_overlap_variables_for): Store type, size and decl
14743 in the fieldoff structure.
14744 * tree-ssa-structalias.c (fieldoff_compare): Adjust users
14745 of struct fieldoff.
14746 (push_fields_onto_fieldstack): Likewise.
14747 (create_variable_info_for): Likewise. Use offset for the
14748 SFT name if the decl is not available.
14749
14750 2006-01-04 Paul Brook <paul@codesourcery.com>
14751
14752 * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
14753
14754 2006-01-04 Daniel Berlin <dberlin@dberlin.org>
14755
14756 * lambda-code.c (can_put_in_inner_loop): Relax
14757 restrictions.
14758 (can_put_after_inner_loop): New function.
14759 (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
14760 (perfect_nestify): Change to make copies and modify uses.
14761
14762 2006-01-04 Richard Henderson <rth@redhat.com>
14763
14764 Merge from gomp branch:
14765 * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
14766 via integer constant.
14767 (pragma_lex): Remove.
14768 * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
14769 rather than parsing it.
14770 * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
14771 handle_pragma_extern_prefix): Add %< %> quotes.
14772 (registered_pragmas): New.
14773 (c_register_pragma_1): New.
14774 (c_register_pragma): Use it.
14775 (c_register_pragma_with_expansion): Likewise.
14776 (c_invoke_pragma_handler): New.
14777 (init_pragma): Use cpp_register_deferred_pragma directly for
14778 pch_preprocess.
14779 * c-pragma.h (enum pragma_kind): New.
14780 (pragma_handler): New.
14781 (c_invoke_pragma_handler): Declare.
14782 * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
14783 CPP_PRAGMA_EOL.
14784 * c-common.h (c_common_pch_pragma): Update decl.
14785 * Makefile.in (c-parser.o): Update dependencies.
14786 (GTFILES): Add c-pragma.h.
14787 * c-parser.c (struct c_token): Add pragma_kind.
14788 (struct c_parser): Add in_pragma.
14789 (c_lex_one_token): Always initialize keyword and pragma_kind.
14790 Extract data for CPP_PRAGMA.
14791 (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
14792 (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
14793 Don't allow CPP_PRAGMA_EOL if in_pragma.
14794 (c_parser_consume_pragma): New.
14795 (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
14796 (c_parser_skip_to_end_of_parameter): Likewise.
14797 (c_parser_skip_to_end_of_block_or_statement): Likewise.
14798 (c_parser_skip_to_pragma_eol): New.
14799 (c_parser_external_declaration): Handle CPP_PRAGMA.
14800 (c_parser_compound_statement_nostart): Likewise.
14801 (c_parser_statement_after_labels): Likewise.
14802 (c_parser_pragma): New.
14803 (pragma_lex): Likewise.
14804 (c_parser_pragma_pch_preprocess): New.
14805 (c_parser_new): Merge into ...
14806 (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
14807
14808 2006-01-04 Jeff Law <law@redhat.com>
14809
14810 PR ada/24994
14811 * tree-cfg.c (bsi_replace): Remove the original statement
14812 from the EH throw statement table.
14813
14814 2006-01-04 Jakub Jelinek <jakub@redhat.com>
14815
14816 * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
14817 make the prototype extern "C" and add throw ().
14818
14819 PR target/25554
14820 * config/i386/i386.md (testqi_ext_3): Ensure len is positive
14821 and pos non-negative and pos + len <= 32.
14822 (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
14823 drop pos + len < HOST_BITS_PER_WIDE_INT test.
14824 (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
14825
14826 PR c/25559
14827 * c-common.c (handle_vector_size_attribute): Reject zero vector size
14828 as well as sizes not multiple of component size.
14829
14830 PR debug/25562
14831 * function.c (instantiate_expr): New function.
14832 (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
14833 walk its DECL_VALUE_EXPR with instantiate_expr.
14834
14835 * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
14836 DW_OP_deref{,_size} if address isn't going to be added.
14837
14838 2006-01-04 Ben Elliston <bje@au.ibm.com>
14839
14840 * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
14841 * config/fp-bit.c: Likewise.
14842
14843 2006-01-03 Daniel Berlin <dberlin@dberlin.org>
14844
14845 * dominance.c: Add comment about why we use DFS numbering
14846 of dominance tree.
14847
14848 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14849 Richard Henderson <rth@redhat.com>
14850
14851 Merge from gomp-branch:
14852 * varasm.c (assemble_variable): Handle thread-local COMMON data.
14853 * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
14854
14855 2006-01-03 Paolo Bonzini <bonzini@gnu.org>
14856
14857 PR rtl-optimization/25578
14858 * combine.c (combine_simplify_rtx, force_to_mode): Don't
14859 pass a parameter to simplify_shift_const if changing ASHIFTRT
14860 to LSHIFTRT.
14861
14862 2006-01-03 Adrian Straetling <straetling@de.ibm.com>
14863
14864 * builtins.c (get_builtin_sync_mem): New function.
14865 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
14866 expand_builtin_lock_test_and_set, expand_builtin_lock_release):
14867 Call get_builtin_sync_mem to generate mem rtx.
14868
14869 2006-01-03 Richard Guenther <rguenther@suse.de>
14870
14871 PR c/25183
14872 * stmt.c (add_case_node): Make sure to clear overflow flags
14873 from ranges.
14874
14875 2006-01-03 Jakub Jelinek <jakub@redhat.com>
14876
14877 Merge from gomp-branch.
14878 * config/sparc/sync.md: New file.
14879 * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
14880 UNSPECV_LDSTUB): New constants.
14881 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
14882 * config/sparc/predicates.md (memory_reg_operand): New predicate.
14883 * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
14884 prototype.
14885
14886 2006-01-03 Roger Sayle <roger@eyesopen.com>
14887
14888 * combine.c (reg_subword_p): New predicate to test whether the
14889 destination of a set refers to a subword/piece of a register.
14890 (try_combine): Generalize the code to merge the setting of a
14891 pseudo to a constant followed by a set of a subword of that
14892 register to a constant.
14893
14894 2006-01-03 Kazu Hirata <kazu@codesourcery.com>
14895
14896 * basic-block.h (control_flow_graph): Change the type of
14897 x_label_to_block_map to VEC(basic_block,gc) *.
14898 * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
14899 set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
14900
14901 * tree-ssa-propagate.c (cfg_blocks): Change the type to
14902 VEC(basic_block,heap) *.
14903 (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
14904 ssa_prop_fini): Adjust the uses of cfg_blocks.
14905
14906 2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
14907
14908 * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
14909 COMPONENT_REFs.
14910 * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
14911 hashing trees instead of a pointer hash.
14912 (mem_attrs_htab_eq): Do a deep compare instead of a pointer
14913 compare for MEM_EXPR.
14914
14915 PR rtl-optimization/25130
14916 * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
14917 when comparing MEMs for GCSE
14918
14919 2006-01-03 Ben Elliston <bje@au.ibm.com>
14920
14921 * targhooks.h (default_decimal_float_supported_p): Declare.
14922 * targhooks.c (default_decimal_float_supported_p): Define.
14923 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
14924 `default_decimal_float_supported_p'.
14925 * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
14926
14927 2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
14928
14929 * combine.c (apply_distributive_law <SUBREG>): Check
14930 TRULY_NOOP_TRUNCATION.
14931
14932 2006-01-02 Geoffrey Keating <geoffk@apple.com>
14933
14934 * dwarf2out.c (have_switched_text_section): Delete.
14935 (have_multiple_function_sections): New.
14936 (have_location_lists): Make 'bool'.
14937 (add_AT_loc_list): Use 'true' not '1'.
14938 (dwarf2out_switch_text_section): Set have_multiple_function_sections.
14939 (output_loc_list): Use have_multiple_function_sections.
14940 (output_ranges): Likewise.
14941 (dwarf2out_begin_function): Set have_multiple_function_sections if
14942 necessary.
14943 (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
14944 Check function_section rather than DECL_SECTION_NAME.
14945 (dwarf2out_finish): Use have_multiple_function_sections.
14946 Don't clear have_location_lists.
14947
14948 2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
14949 Jan Hubicka <jh@suse.cz>
14950
14951 * cfglayout.c (fixup_reorder_chain): Remove kludge for the
14952 case of conditional jump jumping to the next instruction.
14953 * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
14954 cases of conditional jump jumping to the next instruction.
14955
14956 2006-01-02 Jan Hubicka <jh@suse.cz>
14957
14958 * i386.c (*_cost): Add COSTS_N_INSNS.
14959 (ix86_rtx_costs): Do not use COSTS_N_INSNS.
14960
14961 2006-01-02 Paolo Bonzini <bonzini@gnu.org>
14962
14963 PR target/25259
14964 * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
14965
14966 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14967
14968 * config/arm/arm.c (all_fpus): Fix comment typo.
14969 * config/darwin.c: Likewise.
14970 * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
14971 * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
14972 * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
14973
14974 2006-01-01 David Edelsohn <edelsohn@gnu.org>
14975
14976 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
14977 (rs6000_split_compare_and_swapqhi): New.
14978 * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
14979 (sync_compare_and_swapqhi_internal): New.
14980 * config/rs6000/rs6000-protos.h: Declare.