]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
md.texi (-mshared): Mention that -mshared code can be linked into shared libraries.
[gcc.git] / gcc / ChangeLog
CommitLineData
bc4a3483
RS
12006-03-22 Richard Sandiford <richard@codesourcery.com>
2
3 * doc/md.texi (-mshared): Mention that -mshared code can be linked
4 into shared libraries.
5
08b1e29a
RS
62006-03-22 Richard Sandiford <richard@codesourcery.com>
7
8 * doc/md.texi: Refer to i386/constraints.md instead of
9 i386/predicates.md.
10 * config/i386/constraints.md: New file, extracted from...
11 * config/i386/predicates.md: ...here.
12 * config/i386/i386.md: Include constraints.md.
13
5b5cba1f
JM
142006-03-21 Jason Merrill <jason@redhat.com>
15
ac382b62
JM
16 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
17
5b5cba1f
JM
18 PR middle-end/20297
19 * expr.c (init_block_move_fn): Force default visibility.
20 (init_block_clear_fn): Likewise.
21 * builtins.c (expand_builtin_fork_or_exec): Likewise.
22 * targhooks.c (default_external_stack_protect_fail): Likewise.
23
d9870b7e
RS
242006-03-21 Richard Sandiford <richard@codesourcery.com>
25
26 * config/mips/predicates.md (const_call_insn_operand): Allow direct
27 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
28 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
29 Use TARGET_OLDABI instead of !TARGET_NEWABI.
30 (loadgp): Use mips_current_loadgp_style.
31 (loadgp_noshared): New pattern.
32 (sibcall_internal): Use MIPS_CALL.
33 (sibcall_value_internal): Likewise.
34 (sibcall_value_multiple_internal): Likewise.
35 (call_internal): Likewise.
36 (call_value_internal): Likewise.
37 (call_value_multiple_internal): Likewise.
38 (call_split): Use MIPS_CALL and add an 'S' constraint.
39 (call_value_split): Likewise.
40 (call_value_multiple_split): Likewise.
41 * config/mips/mips.opt (-mabicalls): Tweak docstring.
42 (-mshared): New option.
43 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
44 (mips_current_loadgp_style): Declare.
45 * config/mips/mips.c (mips_classify_symbol): Avoid using
46 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
47 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
48 TARGET_ABSOLUTE_ABICALLS.
49 (override_options): Adjust comments. Improve the warning that is
50 issued when -mabicalls and -G are used together.
51 (mips_file_start): Remove comment.
52 (mips_current_loadgp_style): New function.
53 (mips_gnu_local_gp): New variable.
54 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
55 LOADGP_ABSOLUTE.
56 (mips_output_function_prologue): Use mips_current_laodgp_style.
57 (mips_expand_prologue): Call mips_emit_loadgp before emitting
58 the cprestore instruction.
59 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
60 live for TARGET_ABSOLUTE_ABICALLS.
61 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
62 (ASM_SPEC): Pass down -mshared and -mno-shared.
63 (MIPS_CALL): New macro.
64 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
65 definition.
66 * doc/invoke.texi (-mabicalls): Update documentation.
67 (-mshared): Document.
68
487d9a61
SE
692006-03-21 Steve Ellcey <sje@cup.hp.com>
70
71 * config/ia64/unwind-hpux.c: New file.
72 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
73
f7da48ef
SE
742006-03-21 Steve Ellcey <sje@cup.hp.com>
75
76 PR libgomp/26384
77 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
78
a3b196e3
JL
792006-03-21 Jeff Law <law@redhat.com>
80
81 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
82 type conversions of a VR_VARYING source to a wider type.
83
ec23ed60
EB
842006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
85
86 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
87 tm_file on Solaris 10 and later.
88 (sparc64-*-solaris2*): Likewise.
89 (sparc-*-solaris2*): Likewise.
90 * config/sol26.h: Rename to config/sol2-6.h.
91 * config/sol2-10.h: New file.
92
5ded46eb
AP
932006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
94
95 PR tree-opt/26781
96 * tree-ssa-pre.c (create_component_ref_by_pieces):
97 Handle STRING_CST.
98
3c9bb46e
JJ
992006-03-21 Jakub Jelinek <jakub@redhat.com>
100
101 PR c++/26690
102 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
103 return it immediately.
104
b6bbd675
MM
1052006-03-21 Michael Matz <matz@suse.de>
106
107 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
108 New members.
109 (remove_arc, add_arc): Update num_out_arcs member.
110 (set_out_arc_insns_equiv_num): Returns nothing instead of number
111 of out arcs.
112 (cache_presence): New function.
113 (compare_states_for_equiv): New function.
114 (state_is_differed): Don't take number of outargs, adjust callers.
115 Use new invariant for speeding up.
116 (init_equiv_class): Create initial classes based on sorted
117 input.
118 (partition_equiv_class): Don't track out_arcs_num.
119 (evaluate_equiv_classes): Call cache_presence on all states and
120 sort them.
121
c4963a0a
BS
1222006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
123
124 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
125 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
126 (bfin_valid_reg_p): Test for pseudos explicitly and use only
127 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
128 callers changed.
129 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
130 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
131 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
132 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
133 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
134 macros.
135 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
136 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
137 (REGNO_REG_CLASS): ARGP is in PREGS.
138 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
139 IREGS.
140 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
141 to deal with those addresses.
142 * addresses.h: New file.
143 * caller-save.c: Include "addresses.h".
144 (init_caller_save): Use new base_reg_class function.
145 * rtl-factoring.c: Include "addresses.h".
146 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
147 * recog.c: Include "addresses.h".
148 (preprocess_constraints): Use new base_reg_class function.
149 * regrename.c: Include "addresses.h".
150 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
151 functions. Keep track of a new var INDEX_CODE to compute valid
152 classes.
153 (replace_oldest_value_addr): Likewise.
154 (replace_oldest_value_mem): Use base_reg_class.
155 * reload.c: Include "addresses.h".
156 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
157 (find_reloads): Use new base_reg_class function.
158 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
159 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
160 all callers and prototype changed.
161 * reload1.c: Include "addresses.h".
162 (maybe_fix_stack_asms): Use base_reg_class.
163 * regclass.c: Include "addresses.h".
164 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
165 (init_reg_autoinc): Use new base_reg_class function.
166 (record_reg_classes): Likewise.
167 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
168 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
169 Use new args to compute necessary class.
170
171 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
172 regrename.o, rtl-factoring.o): Update dependencies.
173 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
174 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
175 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
176 REG_OK_FOR_INDEX_P): Delete documentation.
177
69bdb292
AS
1782006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
179
180 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
181 from V7 to V9 for Solaris 7 and above.
182
0698a1d2
TM
1832006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
184
185 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
186 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
187 argument pointers may not alias any other storage.
188 * common.opt: Define option -fargument-noalias-anything.
189 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
190 alias semantics is specified by flag_argument_noalias > 2.
191
e67c25c7
JL
192
193 * tree-pass.h (pass_phi_only_copy_prop): Delete.
194 (pass_phi_only_cprop): Declare.
195 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
196 with phi_only_cprop
197 * tree-ssa-dom.c (degenerate_phi_result): New function.
198 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
199 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
200 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
201 (eliminate_degenerate_phis): Likewise.
202 (pass_phi_only_cprop): New pass descriptor.
203 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
204 support code. Callers updated.
205 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
206 (store_copy_prop): Likewise.
207 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
208
0ed5edac
JM
2092006-03-20 Jason Merrill <jason@redhat.com>
210
211 PR c++/21764
212 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
213 (push_visibility, pop_visibility): Likewise.
214 * c-pragma.h: Declare them.
215
c6d56443
KK
2162006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
217
218 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
219
220 * config/sh/sh.c (find_regmode_weight): Change the type of the first
221 parameter and use get_ebb_head_tail.
222 (sh_md_init_global): Adjust uses of find_regmode_weight.
223
ede497cf
SB
2242006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
225
226 * function.h (struct function) <x_tail_recursion_reentry>:
227 Rename to x_stack_check_probe_note.
228 (tail_recursion_reentry): Rename to stack_check_probe_note.
229 * function.c: Replace tail_recursion_reentry with
230 stack_check_probe_note everywhere.
231 (expand_function_start): Only emit a note for
232 stack_check_probe_note with -fstack-protect.
233 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
234
235 * emit-rtl.c (remove_unnecessary_notes): Remove.
236 (pass_remove_unnecessary_notes): Remove.
237 * rtl.h (remove_unnecessary_notes): Remove prototype.
238 * final.c (final_start_function): Don't call remove_unnecessary_notes.
239 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
240 * passes.c (pass_remove_unnecessary_notes): Don't run it.
241
e13f1c14
AP
2422006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
243
244 PR tree-opt/26629
245 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
246 (valid_in_set): Handle ARRAY_REF.
247 Change "if min_variant or VH" to asserts.
248 (create_component_ref_by_pieces): Handle ARRAY_REF.
249 (create_expression_by_pieces): Likewise.
250 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
251
7a22dbec
DE
2522006-03-20 David Edelsohn <edelsohn@gnu.org>
253
254 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
255 is operand of switch, not str[0].
256
e0bf274f
AM
2572006-03-20 Alan Modra <amodra@bigpond.net.au>
258
259 * config/rs6000/rs6000.c (rs6000_handle_option): Use
260 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
261
e800e79b
DE
2622006-03-19 David Edelsohn <edelsohn@gnu.org>
263
264 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
265 end of insn_extra_address_constraint declaration.
266
d2894ab5
DE
2672006-03-19 David Edelsohn <edelsohn@gnu.org>
268
269 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
270 (no-sum-in-toc): Same.
271 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
272 variables.
273 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
274 NO_FP_IN_TOC for -fPIC instead of mask.
275
276 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
277 (BOOT_LDFLAGS): Delete.
278 (LDFLAGS): Delete.
279 * config/rs6000/t-aix52: Same.
280
281 * config/rs6000/rs6000.md (store_multiple_power): Delete.
282 (stmsi[345678]_power): New.
283
30b82356
SE
2842006-03-17 Steve Ellcey <sje@cup.hp.com>
285
286 * config/ia64/ia64.opt: Add empty line to end of file.
287
445a6ba4
RG
2882006-03-17 Richard Guenther <rguenther@suse.de>
289
290 PR middle-end/26721
291 * builtins.c (get_pointer_alignment): For component style references
292 adjust alignment to the component type alignment. Make sure
293 to adjust alignment for component access of constants.
294
ea5bd0d8
DE
2952006-03-17 David Edelsohn <edelsohn@gnu.org>
296
297 * config/rs6000/rs6000.md (strlensi): Emit barrier after
298 unconditional jump.
299
3cf94279
PB
3002006-03-17 Paul Brook <paul@codesourcery.com>
301
302 * doc/install.texi: Docuemnt --with-mode.
303 * config.gcc: Add --with-mode for arm*-*-*.
304 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
305
4241ecb0
R
3062006-03-17 J"orn Rennecke <joern.rennecke@st.com>
307
308 * sh.c (max_labelno_before_reorg): New variable.
309 (sh_reorg): Initialize it.
310 (find_barrier): Check max_labelno_before_reorg before using
311 label_to_alignment. Take length of explicit alignment insns
312 into account. When seeing a UNSPECV_CONST_END, return it.
313
314 * sh.c (fixup_mova): Set mode of affected label to QImode.
315 (untangle_mova): New function.
316 (find_barrier): Use it. Check mode of label before decrementing
317 num_mova.
318 (sh_reorg): Likewise.
319 Set mode of all insns back to VOIDmode.
320
321 * sh.c (MOVA_LABELREF): New macro.
322 (mova_p, fixup_mova, sh_reorg): Use it.
323 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
324 ADDR_DIFF_VEC matches mova.
325
79252435
SB
3262006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
327
328 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
329 with ATTRIBUTE_UNUSED.
330
6a037308
AO
3312006-03-17 Alexandre Oliva <aoliva@redhat.com>
332
333 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
334 pointer, instead of assuming it is possible to derive the
335 correct args size from a call insn.
336
d97c1295
JBG
3372006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
338
339 * rtl.h (CONST_INT_P): Define.
340 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
341 instead of GET_CODE(x) == CONST_INT.
342 (vax_rtx_costs): Likewise.
343 (vax_output_int_move): Likewise.
344 (vax_output_int_add): Likewise.
345 (legitimate_constant_address_p): Likewise.
346 (index_term_p): Likewise.
347 * config/vax/vax.h (PRINT_OPERAND): Likewise.
348 * config/vax/vax.md (and<mode>3): Likewise.
349 (ashrsi3): Likewise.
350 (extv): Likewise.
351 (movstricthi): Likewise.
352 (movstrictqi): Likewise.
353 (rotrsi3): Likewise.
354 (five unnamed insns): Likewise.
355
192d0f89
GK
3562006-03-16 Geoffrey Keating <geoffk@apple.com>
357
358 * doc/tm.texi (SDB and DWARF): Add extra parameter to
359 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
360 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
361 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
362 Pass to ASM_OUTPUT_DWARF_OFFSET.
363 * dwarf2out.c (debug_frame_section): New.
364 (output_call_frame_info): Use debug_frame_section. Pass it to
365 dw2_asm_output_offset.
366 (output_die): Pass appropriate section to dw2_asm_output_offset.
367 (output_compilation_unit_header): Likewise.
368 (output_pubnames): Likewise.
369 (output_aranges): Likewise.
370 (enum dw_val_class): Break dw_val_class_lbl_offset into
371 dw_val_class_lineptr and dw_val_class_macptr.
372 (add_AT_lbl_offset): Delete.
373 (add_AT_lineptr): New.
374 (add_AT_macptr): New.
375 (AT_lbl): Expect a lineptr or macptr.
376 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
377 (attr_checksum): Likewise.
378 (same_dw_val_p): Likewise.
379 (size_of_die): Likewise.
380 (value_format): Likewise.
381 (output_die): Likewise.
382 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
383 add_AT_lbl_offset.
384 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
385 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
386 * config/darwin-protos.h (darwin_file_start): New.
387 (darwin_asm_output_dwarf_offset): New.
388 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
389 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
390 darwin_file_start.
391 * config/darwin.c (darwin_emit_unwind_label): Don't output label
392 if not EH section; simplify.
393 (darwin_file_start): New.
394 (darwin_asm_output_dwarf_offset): New.
395 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
396 mark as 'debug'.
397 (DEBUG_INFO_SECTION): Likewise.
398 (DEBUG_ABBREV_SECTION): Likewise.
399 (DEBUG_ARANGES_SECTION): Likewise.
400 (DEBUG_MACINFO_SECTION): Likewise.
401 (DEBUG_LINE_SECTION): Likewise.
402 (DEBUG_LOC_SECTION): Likewise.
403 (DEBUG_PUBNAMES_SECTION): Likewise.
404 (DEBUG_STR_SECTION): Likewise.
405 (DEBUG_RANGES_SECTION): Likewise.
406 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
407 (ASM_OUTPUT_DWARF_OFFSET): New.
408
620b87b3
JM
4092006-03-16 Joseph S. Myers <joseph@codesourcery.com>
410
411 * config.gcc (tm_defines): Always add to previous value rather
412 than replacing it.
413
ea462dd0
RS
4142006-03-16 Richard Sandiford <richard@codesourcery.com>
415
416 * config/mips/predicates.md (splittable_const_int_operand): New,
417 split from move_operand.
418 (splittable_symbolic_operand): New.
419 (move_operand): Add commentary. Use splittable_const_int_operand.
420 Inline mips_atomic_symbolic_constant_p.
421 * config/mips/mips.md: Add combine splitters for handling moves
422 of splittable_const_int_operands and splittable_symbolic_operands.
423 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
424 (mips_split_symbol): Declare.
425 (mips_move_integer): Declare.
426 * config/mips/mips.c (mips_split_p): Make global.
427 (TARGET_MIN_ANCHOR_OFFSET): Override default.
428 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
429 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
430 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
431 (mips_offset_within_object_p): Handle block symbols.
432 (mips_atomic_symbolic_constant_p): Delete.
433 (mips_cannot_force_const_mem): Return false for constants that
434 mips_legitimize_move can handle.
435 (mips_use_blocks_for_constant_p): New function.
436 (mips_split_symbol): Make global.
437 (mips_move_integer): Likewise. Add a temporary register argument.
438 (mips_legitimize_const_move): Use splittable_const_int_operand and
439 splittable_symbolic_operand.
440 (mips_use_anchors_for_symbol_p): New function.
441 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
442 (mips_split_p): Declare.
443
5d2a73d5
RS
4442006-03-16 Richard Sandiford <richard@codesourcery.com>
445
446 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
447 (mips*-*-linux*): Likewise.
448
da54e73b
RS
4492006-03-16 Roger Sayle <roger@eyesopen.com>
450 Daniel Speyer <dspeyer@wam.umd.edu>
451
452 PR middle-end/18259
453 * tree-dump.c (dump_real): New function.
454 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
455 * Makefile.in (REAL_H): New macro for dependencies on real.h.
456 (tree-dump.o): Add $(REAL_H) to the dependencies.
457
a47564c8
RS
4582006-03-16 Roger Sayle <roger@eyesopen.com>
459
460 PR middle-end/21781
461 * real.c (real_from_string): If the mantissa is zero, don't bother
462 parsing the exponent as the result should always be zero.
463
349f4ea1
AK
4642006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
465
466 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
467
048d0d36
MK
4682006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
469
470 * config/ia64/ia64.c (stops_p): Added explicit initialization.
471 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
472 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
473 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
474 ia64_sched_finish_global): New static functions to implement
475 hooks from gcc_target.sched.
476 (spec_check_no, max_uid, pending_data_specs): New static variables.
477 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
478 ia64_spec_check_src_p): New static functions.
479 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
480 (TARGET_SCHED_ADJUST_COST): Removed.
481 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
482 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
483 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
484 TARGET_SCHED_GEN_CHECK,
485 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
486 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
487 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
488 Fixed to handle speculation checks.
489 (rtx_needs_barrier): Fixed to handle speculative loads and
490 their checks.
491 (ia64_variable_issue): Added code to count speculative loads and their
492 checks.
493 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
494 speculative loads.
495 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
496 New enumerations.
497 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
498 New constants.
499 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
500 (ia64_reorg): Reset stops_p to NULL after it is freed.
501 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
502 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
503 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
504 chk_a.
505 (data_speculative, control_speculative, check_load): New attributes.
506 (mov<mode>_advanced, mov<mode>_speculative,
507 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
508 zero_extend<mode>di2_speculative,
509 zero_extend<mode>di2_speculative_advanced): New patterns for
510 data and control speculative loads.
511 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
512 check loads.
513 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
514 New pattern for data and control speculation checks.
515 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
516 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
517 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
518 Auxiliary definitions for the patterns.
519 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
520 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
521 constraints.
522 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
523 for speculation.
524 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
525 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
526 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
527 New resource constraints.
528 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
529 for speculation.
530 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
531 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
532 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
533 msched-in-control-spec, msched-ldc, msched-control-ldc,
534 msched-spec-verbose, msched-prefer-non-data-spec-insns,
535 msched-prefer-non-control-spec-insns,
536 msched-count-spec-in-critical-path): New flags to tune speculative
537 scheduling.
538 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
539 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
540 msched-in-control-spec, msched-ldc, msched-control-ldc,
541 msched-spec-verbose, msched-prefer-non-data-spec-insns,
542 msched-prefer-non-control-spec-insns,
543 msched-count-spec-in-critical-path): Document new flags.
544
496d7bb0
MK
5452006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
546
547 * target.h (struct spec_info_def): New opaque declaration.
548 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
549 speculate_insn, needs_block_p, gen_check,
550 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
551 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
552 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
553 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
554 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
555 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
556 gcc_target.sched.
557 (TARGET_SCHED): Use new macros.
558 * rtl.h (copy_DEPS_LIST_list): New prototype.
559 * sched-int.h (struct sched_info): Change signature of new_ready field,
560 adjust all initializations. New fields: add_remove_insn,
561 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
562 region_head_or_leaf_p.
563 (struct spec_info_def): New structure declaration.
564 (spec_info_t): New typedef.
565 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
566 recovery_block, orig_pat.
567 (glat_start, glat_end): New variables declaraions.
568 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
569 New access macros.
570 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
571 DETACH_LIFE_INFO, USE_GLAT.
572 (enum SPEC_SCHED_FLAGS): New enumeration.
573 (NOTE_NOTE_BB_P): New macro.
574 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
575 attach_life_info, debug_spec_status, check_reg_live): New functions.
576 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
577 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
578 sched-ebb.c
579 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
580 * ddg.c (get_block_head_tail): Adjust all uses.
581 * modulo-sched.c (get_block_head_tail): Adjust all uses.
582 (sms_sched_info): Initialize new fields.
583 (contributes_to_priority): Removed.
584 * haifa-sched.c (params.h): New include.
585 (get_block_head_tail): Adjust all uses.
586 (ISSUE_POINTS): New macro.
587 (glat_start, glat_end): New global variables.
588 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
589 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
590 old_last_basic_block, before_recovery, current_sched_info_var,
591 rgn_n_insns, luid): New static variables.
592 (insn_cost1): New function. Move logic from insn_cost to here.
593 (find_insn_reg_weight1): New function. Move logic from
594 find_insn_reg_weight to here.
595 (reemit_notes, move_insn, max_issue): Change signature.
596 (move_insn1): Removed.
597 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
598 extend_bb): New static functions to support extension of scheduler's
599 data structures.
600 (generate_recovery_code, process_insn_depend_be_in_spec,
601 begin_speculative_block, add_to_speculative_block,
602 init_before_recovery, create_recovery_block, create_check_block_twin,
603 fix_recovery_deps): New static functions to support
604 generation of recovery code.
605 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
606 restore_bb_notes, move_block_after_check, move_succs): New static
607 functions to support ebb scheduling.
608 (init_glat, init_glat1, attach_life_info1, free_glat): New static
609 functions to support handling of register live information.
610 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
611 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
612 add_jump_dependencies): New static functions.
613 (check_cfg, has_edge_p, check_sched_flags): New static functions for
614 consistancy checking.
615 (debug_spec_status): New function to call from debugger.
616 (priority): Added code to handle speculation checks.
617 (rank_for_schedule): Added code to distinguish speculative instructions.
618 (schedule_insn): Added code to handle speculation checks.
619 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
620 Fixed to handle ebbs.
621 (move_insn): Added code to handle ebb scheduling.
622 (max_issue): Added code to use ISSUE_POINTS of instructions.
623 (choose_ready): Added code to choose between speculative and
624 non-speculative instructions.
625 (schedule_block): Added code to handle ebb scheduling and scheduling of
626 speculative instructions.
627 (sched_init): Initialize new variables.
628 (sched_finish): Free new variables. Print statistics.
629 (try_ready): Added code to handle speculative instructions.
630 * lists.c (copy_DEPS_LIST_list): New function.
631 * sched-deps.c (extend_dependency_caches): New function. Move logic
632 from create_dependency_caches to here.
633 (get_dep_weak, ds_merge): Make global.
634 * genattr.c (main): Code to output prototype for
635 dfa_clear_single_insn_cache.
636 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
637 (output_dfa_clean_insn_cache_func): Code to output
638 dfa_clear_single_insn_cache function.
639 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
640 n_insns.
641 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
642 Removed.
643 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
644 New static variables.
645 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
646 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
647 struct sched_info.
648 (ebb_sched_info): Initialize new fields.
649 (get_block_head_tail): Adjust all uses.
650 (compute_jump_reg_dependencies): Fixed to use glat_start.
651 (schedule_ebb): Code to remove unreachable last block.
652 (schedule_ebbs): Added code to update register live information.
653 * sched-rgn.c (region_sched_info): Initialize new fields.
654 (get_block_head_tail): Adjust all uses.
655 (last_was_jump): Removed. Adjust users.
656 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
657 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
658 Implement new hooks.
659 (check_dead_notes1): New static function.
660 (struct region): New fields: dont_calc_deps, has_real_ebb.
661 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
662 (BB_TO_BLOCK): Fixed to handle EBBs.
663 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
664 (ebb_head): New static variable.
665 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
666 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
667 new fields.
668 (compute_dom_prob_ps): New assertion.
669 (check_live_1, update_live_1): Fixed to work with glat_start instead of
670 global_live_at_start.
671 (init_ready_list): New assertions.
672 (can_schedule_ready_p): Split update code to begin_schedule_ready.
673 (new_ready): Add support for BEGIN_CONTROL speculation.
674 (schedule_insns): Fixed code that updates register live information
675 to handle EBBs.
676 (schedule_region): Fixed to handle EBBs.
677 (init_regions): Use extend_regions and check_dead_notes1.
678 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
679 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
680 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
681 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
682 TARGET_SCHED_GEN_CHECK,
683 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
684 TARGET_SCHED_SET_SCHED_FLAGS): Document.
685 * doc/invoke.texi (max-sched-insn-conflict-delay,
686 sched-spec-prob-cutoff): Document.
687
63f54b1a
MK
6882006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
689
690 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
691 inter_tick, queue_index.
692 (struct sched_info): Change signature of init_ready_list field.
693 Adjust all initializations.
694 (RESOLVED_DEPS): New access macro.
695 (ready_add): Remove prototype.
696 (try_ready): Add prototype.
697 * sched-rgn.c (init_ready_list): Use try_ready.
698 (schedule_region): Initialize
699 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
700 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
701 (init_ready_list): Use try_ready.
702 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
703 * lists.c (remove_list_elem): Remove `static'.
704 (remove_free_INSN_LIST_elem): New function.
705 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
706 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
707 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
708 New constants.
709 (readyp): New variable.
710 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
711 change_queue_index, resolve_dep): New static functions.
712 (try_ready): New function. Adjust callers in sched-rgn.c and
713 sched-ebb.c to use it instead of ready_add.
714 (clock_var): Move at the begining of file.
715 (rank_for_schedule): Fix typo.
716 (queue_insn): Add assertion. Handle QUEUE_INDEX.
717 (ready_lastpos): Enforce assertion.
718 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
719 update all callers.
720 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
721 (schedule_insn): Rewrite to use try_ready and resolve_dep.
722 (queue_to_ready): Use free_INSN_LIST_list.
723 (early_queue_to_ready): Fix typo.
724 (schedule_block): Init readyp. Move init_ready_list call after the
725 initialization of clock_var. Fix error in rejecting insn by
726 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
727 that previously corrected INSN_TICKs. Add code for handling
728 QUEUE_INDEX.
729 (set_priorities): Fix typo.
730 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
731 Clarify comment and code that keeps current_sched_info->next_tail
732 non-null.
733
d08eefb9
MK
7342006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
735
736 * sched-rgn.c (extend_rgns): New static function.
737 (find_rgns): Use it.
738 (gather_region_statistics, print_region_statistics): New static
739 functions.
740 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
741 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
742
ddbd5439
MK
7432006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
744 Andrey Belevantsev <abel@ispras.ru>
745
746 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
747 * lists.c (unused_deps_list): New variable.
748 (free_list): Add assertions to verify the proper distinguishing
749 between INSN_LISTs and DEPS_LISTs.
750 (find_list_elem, remove_list_elem, remove_list_node): New static
751 functions.
752 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
753 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
754 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
755 (alloc_INSN_LIST): Assert that the list we're working on is indeed
756 an INSN_LIST.
757 (free_INSN_LIST_node): Likewise.
758 * modulo-sched.c (current_sched_info): Initialize flags field.
759 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
760 * rtl.def (DEPS_LIST): Define.
761 * rtl.h: Declare new functions from lists.c.
762 * sched-deps.c (spec_dependency_cache): New static variable.
763 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
764 (add_dependence): Change return type to void. Move the logic to ...
765 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
766 (delete_all_dependences): Add comment about forward_dependency_cache.
767 Handle spec_dependency_cache. Handle DEPS_LISTs.
768 (fixup_sched_groups): Clarify the change of priority of output
769 and anti dependencies.
770 (sched_analyze_2): Adjust add_dependence calls to create data
771 speculative dependence.
772 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
773 Adjust all callers. Handle DEPS_LISTS.
774 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
775 presence of speculation.
776 (init_dependency_caches, free_dependency_caches):
777 Handle spec_dependency_cache.
778 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
779 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
780 New static functions.
781 (add_or_update_back_dep, add_or_update_back_forw_dep,
782 add_back_forw_dep, delete_back_forw_dep): New functions.
783 * sched-int.h (ds_t, dw_t): New typedefs.
784 (struct sched_info): Add new field flags.
785 (struct haifa_insn_data): Add new bitfield has_internal_dep.
786 Prototype new sched-deps.c functions.
787 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
788 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
789 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
790 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
791 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
792 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
793 New constants.
794 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
795 New enums.
796 * sched-rgn.c (current_sched_info): Initialize flags field.
797 (schedule_insns): Initialize current_sched_info before the sched_init
798 call.
799 * sched-ebb.c (current_sched_info): Initialize flags field.
800 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
801 Call add_or_update_back_dep instead of add_dependence.
802 Create control speculative dependencies.
803 (schedule_insns): Initialize current_sched_info before the sched_init
804 call.
805
3062335c
KK
8062006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
807
808 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
809 fs->signal_frame.
810 (sh_fallback_frame_state): Likewise.
811
747b9f55
GK
8122006-03-15 Geoffrey Keating <geoffk@apple.com>
813
814 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
815 Do switch on default_use_cxa_atexit.
816 (powerpc*-*-darwin*): Build crt2.o on powerpc.
817 * config/darwin-crt3.o: New.
818 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
819 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
820 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
821 OS version.
822 * config/rs6000/t-darwin: Move crt2.o building to here.
823 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
824 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
825 of __cxa_atexit.
826
79166a87
JBG
8272006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
828
829 * config/vax/vax.c (nonindexed_address_p): Change logical negation
830 from '! xxx' to '!xxx' for coding-style conformance.
831 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
832 (EXTRA_CONSTRAINT): Likewise.
833 * config/vax/vax.md (four unnamed insns): Likewise.
834
34a9f549
PB
8352006-03-15 Paul Brook <paul@codesourcery.com>
836
837 * config/arm/arm.c (minipool_pad): New.
5a281edb 838 (add_minipool_forward_ref): Include pool alignment padding in address
34a9f549
PB
839 calculation.
840 (push_minipool_fix): Set minipool_pad.
841 (minipool_pad): Ditto.
842
ff9d4590
JBG
8432006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
844
845 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
846 instead of GET_CODE() == MEM and REG_P() instead of
847 GET_CODE() == REG.
848 (print_operand_address): Likewise.
849 (vax_address_cost): Likewise.
850 (vax_rtx_costs): Likewise.
851 (vax_notice_update_cc): Likewise.
852 (vax_output_int_add): Likewise.
853 (INDEX_REGISTER_P): Likewise.
854 (BASE_REGISTER_P): Likewise.
855 (nonindexed_address_p): Likewise.
856 (vax_mode_dependent_address_p): Likewise.
857 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
858 (PRINT_OPERAND): Likewise.
859 * config/vax/vax.md (ashlsi3): Likewise.
860 (ashlsi3): Likewise.
861 (some more unnamed insns): Likewise.
862
db490c39
KH
8632006-03-15 Kazu Hirata <kazu@codesourcery.com>
864
865 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
866 iterator-style macro.
867 (mark_control_dependent_edges_necessary): Update the use of
868 EXECUTE_IF_CONTROL_DEPENDENT.
869
f705a9a0
R
8702006-03-15 J"orn Rennecke <joern.rennecke@st.com>
871
872 * config/sh/predicates.md (cache_address_operand): Special.
873 (ua_address_operand): Likewise.
874
8b96512f
ZD
8752006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
876
877 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
878 loop notes.
879 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
880
c0fa4721
AS
8812006-03-15 Andreas Schwab <schwab@suse.de>
882
883 * gensupport.c (identify_predicable_attribute): Don't free p_false
884 when it is still in use.
885
cc0f8895
EB
8862006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
887
888 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
889 the default setting here.
890
1cba0d4e
SB
8912006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
892
893 * tree-pass.h (pass_cfg): Remove.
894 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
895 * passes.c (pass_cfg): Don't run it.
896
e4881f23
KH
8972006-03-14 Kazu Hirata <kazu@codesourcery.com>
898
899 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
900 * reg-stack.c (stack_regs_mentioned_data): Change the type to
901 VEC(char,heap) *.
902 (stack_regs_mentioned): Update the uses of
903 stack_regs_mentioned_data. Don't access the array beyond its
904 end.
905 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
906 Don't include gt-reg-stack.h.
907
02433683
KH
908 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
909 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
910
df6872b7
KH
911 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
912
5b94780f
KH
913 PR middle-end/26684
914 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
915 STACK_REGS.
916
e1835ff1
JDA
9172006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
918
919 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
920
b5564e87
RG
9212006-03-14 Richard Guenther <rguenther@suse.de>
922
923 PR tree-optimization/26672
924 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
925 SSA form.
926
6971d714
RG
9272006-03-14 Richard Guenther <rguenther@suse.de>
928
929 PR tree-optimization/26667
930 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
931 node for the callees. Always allow inlining if it will shrink
932 the function size.
933
7de80559
RG
9342006-03-14 Richard Guenther <rguenther@suse.de>
935
936 PR middle-end/26659
937 * builtins.c (get_pointer_alignment): Prefer alignment
938 information from decls over that from types.
939
0e512a4f
AP
9402006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
941
942 PR target/26657
943 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
944
716019c0
JM
9452006-03-14 Joseph S. Myers <joseph@codesourcery.com>
946
947 * config/rs6000/rs6000.opt (mdlmzb): New option.
948 (msched-prolog, msched-epilog): Use Var not Mask.
949 * doc/invoke.texi (-mdlmzb): Document.
950 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
951 MASK_SCHED_PROLOG.
952 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
953 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
954
a14df7da
UP
9552006-03-13 Uttam Pawar <uttamp@us.ibm.com>
956
957 PR rtl-optimization/25739
958 * bt-load.c (augment_live_range): Free tos pointer.
959
960 * gensupport.c (identify_predicable_attribute): Free
961 p_false pointer.
962 * gcov.c (create_file_names): Free name pointer.
963
f8318079
RS
9642006-03-13 Roger Sayle <roger@eyesopen.com>
965
966 PR middle-end/26557
967 * stmt.c (emit_case_nodes): Handle the case where the index is a
968 CONST_INT, where the comparison mode is specified by the index type.
969
26a851b9
JDA
9702006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
971
972 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
973 is defined.
974
94c5a841
RS
9752006-03-13 Richard Sandiford <richard@codesourcery.com>
976
977 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
978 (*branch_fp_inverted): Likewise.
979
5b4fc8fb
JJ
9802006-03-13 Jakub Jelinek <jakub@redhat.com>
981
982 PR middle-end/25989
983 * omp-low.c (expand_omp_for_generic): Mark istart0
984 and iend0 as addressable.
985
792e526b
JZ
9862006-03-13 Jie Zhang <jie.zhang@analog.com>
987
988 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
989
2bbec6d9
JL
9902006-03-13 Jeff Law <law@redhat.com>
991
992 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
993 virtual operands are interesting.
994 (vrp_visit_stmt): Corresponding changes.
995
a94aa272
BS
9962006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
997
998 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
999 of RETS.
4af990cd
BS
1000 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
1001 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
1002 * config/bfin/crti.S: Use it instead of __PIC__.
1003 * config/bfin/crtn.S: Likewise.
a94aa272 1004
96c30d2a
BS
1005 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
1006 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
1007 not if flag_pic.
1008 Lose 'G' modifier for call operand.
1009 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
1010 recognize 'G' modifier.
1011
3feaea00
EB
10122006-03-13 Eric Botcazou <ebotcazou@adacore.com>
1013
1014 PR middle-end/18859
1015 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
1016 * stmt.c (expand_case): Likewise.
1017
ba946209
ZD
10182006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1019
1020 PR rtl-optimization/26254
1021 * loop-invariant.c (seq_insns_valid_p): New function.
1022 (move_invariant_reg): Only emit new code if it is valid.
1023
96e82e0a
ZD
10242006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1025
1026 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
1027 Removed.
1028 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
1029 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
1030 (commit_one_edge_insertion): Do not look for loop notes.
1031
50af6384
ZD
10322006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1033
1034 * jump.c (follow_jumps): Do not check for loop notes. Move check for
1035 flag_test_coverage out of loop.
1036
80838531
ZD
10372006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1038
1039 * final.c (shorten_branches): Remove outdated comment, and turn
1040 the if branch that guards it to continue.
1041
7490e6c4
ZD
10422006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1043
1044 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
1045 * cfgloop.h (struct loop): Remove unused fields.
1046
5abcfa7e
KH
10472006-03-13 Kazu Hirata <kazu@codesourcery.com>
1048
1049 * doc/invoke.texi (-fdump-rtl-loop): Remove.
1050 (-dL, -fdump-rtl-loop2): Update the dump file names
1051
c6075909
KH
1052 * doc/invoke.texi: Update dump file names.
1053
3d47ea88
SB
10542006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
1055
1056 * predict.c (estimate_probability): Remove.
1057 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
1058 * basic-block.h (estimate_probability): Remove prototype.
1059 * passes.c (finish_optimization_passes): Dump branch prediction or
1060 profiling heuristics to the .profile tree dump.
1061 (init_optimization_passes): Unqueue pass_branch_prob.
1062
1063 * doc/invoke.texi (-fdump-rtl-bp): Remove.
1064
fc6c490e
SB
10652006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
1066
1067 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
1068 * rtl.h (LABEL_NEXTREF): Remove field accessor.
1069
9fb798d7
EB
10702006-03-11 Eric Botcazou <ebotcazou@adacore.com>
1071
1072 * function.h (frame_offset_overflow): Declare.
1073 * function.c (frame_offset_overflow): New function.
1074 (assign_stack_local_1): Call it to detect that the offset overflows.
1075 * cfgexpand.c (alloc_stack_frame_space): Likewise.
1076
6dd3c0a5
SB
10772006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
1078
1079 * config/sh/sh.c: Include alloc-pool.h.
1080 (label_ref_list_pool): New alloc pool.
1081 (label_ref_list_t): New type for lists of labels.
1082 (struct pool_node): Make wend a label_ref_list_t.
1083 (add_constant): Use the new type, eradicate LABEL_NEXTREF
1084 references.
1085 (dump_table): Likewise.
1086 (sh_reorg): Set up the alloc pool before using add_constant and
1087 dump_table, and destroy it when finishing.
1088
a70ec386
RS
10892006-03-11 Richard Sandiford <richard@codesourcery.com>
1090
1091 * config/mips/mips.c: Remove redundant comment.
1092
21f9ec0c
JM
10932006-03-10 Jason Merrill <jason@redhat.com>
1094
1095 PR c/26004
1096 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
1097 the target was declared 'register'.
1098
a8597866
AN
10992006-03-10 Adam Nemet <anemet@caviumnetworks.com>
1100
1101 * genpreds.c (write_insn_constraint_len): Change definition of
1102 insn_constraint_len to return size_t to match the declaration.
1103
8e4edce7
DD
11042006-03-10 DJ Delorie <dj@redhat.com>
1105
1106 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
1107 start at zero.
1108 (m32c_expand_insv): Fix test for an AND mask.
1109
891c0eee
RG
11102006-03-10 Richard Guenther <rguenther@suse.de>
1111
1112 PR middle-end/26565
1113 * builtins.c (get_pointer_alignment): Handle component
1114 references for field alignment.
1115
8c1aaf26
R
11162006-03-10 J"orn Rennecke <joern.rennecke@st.com>
1117
1118 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
1119 when building with libgloss.
1120 (sh*elf): Implement --without-fp option.
1121 (sh64-superh-linux*): Don't multilib.
1122
7a6164d4
R
11232006-03-10 J"orn Rennecke <joern.rennecke@st.com>
1124
1125 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
1126
3e0a08d7
AP
11272006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
1128
1129 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
1130 Set it when one of the replacement functions returned true.
1131 Return TODO_cleanup_cfg if cfgchanged is true.
1132 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
1133
f243cee6
AN
11342006-03-09 Adam Nemet <anemet@caviumnetworks.com>
1135
1136 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
1137 instead of gen_lowpart.
1138
a8c1d5f8
RS
11392006-03-09 Richard Sandiford <richard@codesourcery.com>
1140
1141 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
1142 interface.
1143 (mips_output_order_conditional_branch): Declare.
1144 * config/mips/mips.h (MIPS_BRANCH): New macro.
1145 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
1146 for the comparison. Use gen_condjump.
1147 (mips_output_conditional_branch): Rework interface to take the
1148 asm templates for a direct branch and the inverse of a direct branch.
1149 (mips_output_order_conditional_branch): New function.
1150 (mips_builtin_branch_and_move): New function.
1151 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
1152 branch condition. Use gen_single_cc as the condition for
1153 __builtin_mips_upper_* or __builtin_mips_lower_*.
1154 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
1155 Use VOIDmode for the branch condition.
1156 * config/mips/predicates.md (order_operator): New predicate.
1157 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
1158 (branch_fp): Rename to...
1159 (*branch_fp): ...this. Remove mode from comparison operator.
1160 Use new mips_output_conditional_branch interface.
1161 (branch_fp_inverted): Rename to...
1162 (*branch_fp_inverted): ...this and update as for *branch_fp.
1163 (*branch_zero<mode>): Rename to...
1164 (*branch_order<mode>): ...this. Remove mode from comparison operator.
1165 Use mips_output_order_conditional_branch. Only accept ordered
1166 comparisons.
1167 (*branch_zero<mode>_inverted): Rename to...
1168 (*branch_order<mode>_inverted): ...this and update as for
1169 *branch_order<mode>.
1170 (*branch_equality<mode>): Accept zero as the second operand to
1171 the equality operator. Use the new mips_output_conditional_branch
1172 interface.
1173 (*branch_equality<mode>_inverted): Likewise.
1174 (condjump): New expander.
1175 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
1176 operator.
1177 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
1178 (bc1any2t, bc1any2f): Likewise.
1179 (single_cc): New expander.
1180 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
1181
cbbb5b6d
RS
11822006-03-09 Richard Sandiford <richard@codesourcery.com>
1183
1184 * doc/md.texi: Update documentation of MIPS constraints.
1185 * config/mips/constraints.md: New file.
1186 * config/mips/mips.md: Include it.
1187 * config/mips/mips.c (mips_char_to_class): Delete.
1188 (override_options): Don't initialize mips_char_to_class.
1189 * config/mips/mips.h (mips_char_to_class): Delete.
1190 (REG_CLASS_FROM_LETTER): Delete.
1191 (CONST_OK_FOR_LETTER_P): Delete.
1192 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1193 (EXTRA_CONSTRAINT_Y): Delete.
1194 (EXTRA_CONSTRAINT_STR): Delete.
1195 (CONSTRAINT_LEN): Delete.
1196 (EXTRA_MEMORY_CONSTRAINT): Delete.
1197
1799e5d5
RH
11982006-03-09 Diego Novillo <dnovillo@redhat.com>
1199
1200 * tree-cfg.c (move_block_to_fn): Remove the statements from the
1201 original fn's eh regions.
1202
f8fe0545
EB
12032006-03-09 Eric Botcazou <ebotcazou@adacore.com>
1204
1205 * fold-const.c (build_range_check): Make sure to use a valid type to
1206 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
1207 transformation.
1208
1209 (range_predecessor): New static function.
1210 (range_successor): Likewise.
1211 (merge_ranges): Use them to compute predecessors and successors of
1212 range bounds.
1213
d56ee62b
RS
12142006-03-09 Roger Sayle <roger@eyesopen.com>
1215
1216 PR middle-end/26561
1217 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
1218 X op C3, consider whether C3 overflows towards +Inf or -Inf.
1219
07127a0a
DD
12202006-03-08 DJ Delorie <dj@redhat.com>
1221
1222 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
1223 (addpsi3): Expand to include memory operands. Remove
1224 reload-specific splits.
1225 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
1226 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
1227 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
1228 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
1229 (shift1_qi, shift1_hi, insv): New.
1230 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
1231 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
1232 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
1233 cond_to_int): New.
1234 * config/m32c/m32c-protos.h: Update as needed.
1235 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
1236 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
1237 Fail for unrecognized R* constraints.
1238 (m32c_cannot_change_mode_class): Be more picky about pseudos.
1239 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
1240 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
1241 Add Sp constraint.
1242 (m32c_init_libfuncs): New.
1243 (m32c_legitimate_address_p): Add debug wrapper.
1244 (m32c_rtx_costs): New.
1245 (m32c_address_cost): New.
1246 (conversions): Add 'B' prefix.
1247 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
1248 operands, or word regnames for QI operands. 'B' prints bit
1249 position.
1250 (m32c_expand_setmemhi): New.
1251 (m32c_expand_movmemhi): New.
1252 (m32c_expand_movstr): New.
1253 (m32c_expand_cmpstr): New.
1254 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
1255 (m32c_expand_neg_mulpsi3): Handle non-ints.
1256 (m32c_cmp_flg_0): New.
1257 (m32c_expand_movcc): New.
1258 (m32c_expand_insv): New.
1259 (m32c_scc_pattern): New.
1260 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
1261 a0/a1 out of SIregs.
1262 (STORE_FLAG_VALUE): New.
1263 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
1264 code macros.
1265 (no_insn): New.
1266 * config/m32c/mov.md: Make constraints more liberal.
1267 (zero_extendqihi2): Optimize r0/r1 case.
1268 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
1269 * config/m32c/predicates.md (m32c_any_operand): New.
1270 (m32c_nonimmediate_operand): New.
1271 (m32c_hl_operand): New.
1272 (m32c_r3_operand): New.
1273 (ap_operand): New.
1274 (ma_operand): New.
1275 (memsym_operand): New.
1276 (memimmed_operand): New.
1277 (a_qi_operand): New.
1278 (m32c_eqne_operator): New.
1279 (m32c_1bit8_operand): New.
1280 (m32c_1bit16_operand): New.
1281 (m32c_1mask8_operand): New.
1282 (m32c_1mask16_operand): New.
1283 * config/m32c/blkmov.md: New file.
1284 * config/m32c/t-m32c (MD_FILES): Add blkmov.
1285
6677e189
AT
12862006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
1287
8f4fc766
AT
1288 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
1289 unsigned to fix signed/unsigned comparison issue in
1290 DWARF2_FRAME_REG_OUT.
1291 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
1292 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
1293
6677e189
AT
1294 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
1295 of ptr into the ENABLE_CHECKING section.
1296
60c9ad46
JL
12972006-03-08 Jeff Law <law@redhat.com>
1298
1299 * tree-vrp.c (infer_value_range): Only count pointer uses
1300 and dereferences if -fdelete-null-pointer-checks is enabled.
1301
1302 * tree-vrp.c (find_assert_locations): Infer value ranges for
1303 single use pointers, but do not create ASSERT_EXPRs for them.
1304 When a non-null range is inferred for a pointer, backwards
1305 propagate that range to other equivalent pointers through the
1306 use-def chain.
1307
dedfa466
PB
13082006-03-08 Paolo Bonzini <bonzini@gnu.org>
1309
1310 PR bootstrap/26500
1311 * Makefile.in (dvi, html, install-info): Invoke the corresponding
1312 language hook targets.
1313 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
1314 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
1315 if language hook targets were missing.
1316
ac574e1b
ZD
13172006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
1318
1319 * tree-ssa-opfinalize.h: Removed.
1320 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
1321 dependency.
1322 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
1323 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
1324 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
1325 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
1326 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1327 finalize_ssa_v_must_def_ops): New.
1328
50d5ff7d
KZ
13292006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1330
1331 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
1332 block as parameter.
1333
fb638355
GK
13342006-03-07 Geoffrey Keating <geoffk@apple.com>
1335
cd554454
GK
1336 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
1337
dbde310d
GK
1338 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
1339 addresses with offsets; reorganize.
1340
fb638355
GK
1341 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
1342 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
1343 (expand_builtin_init_dwarf_reg_sizes): Likewise.
1344
0f047685
DB
13452006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
1346
1347 PR target/26588
1348 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
1349
c18f0c26
BE
13502006-03-08 Ben Elliston <bje@au.ibm.com>
1351
1352 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
1353
48fa3029
AH
13542006-03-07 Aldy Hernandez <aldyh@redhat.com>
1355
1356 PR gomp/26238
1357 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
1358 expansion.
1359
6f1be8e1
RG
13602006-03-07 Richard Guenther <rguenther@suse.de>
1361
1362 PR tree-optimization/26587
1363 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
1364
6410fb81
RS
13652006-03-07 Richard Sandiford <richard@codesourcery.com>
1366
1367 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
1368
1d3dbd99
RS
13692006-03-07 Richard Sandiford <richard@codesourcery.com>
1370
1371 * hooks.c (hook_bool_mode_rtx_true): New function.
1372 * hooks.h (hook_bool_mode_rtx_true): Declare.
1373 * toplev.c (compile_file): Call output_shared_constant_pool.
1374 * varasm.c (shared_constant_pool): New variable.
1375 (assemble_start_function, assemble_end_function): Remove arguments
1376 from call to output_constant_pool.
1377 (create_constant_pool): New function, split out from...
1378 (init_varasm_status): ...here.
1379 (force_const_mem): Choose between the shared and per-function constant
1380 pools. Set current_function_uses_const_pool when reusing old entries
1381 as well as when creating new ones.
1382 (mark_constant): Ignore data argument.
1383 (mark_constants): Remove pool argument.
1384 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
1385 to decide whether the function uses a constant pool.
1386 (output_constant_pool_contents): New function, split out from...
1387 (output_constant_pool): ...here.
1388 (output_shared_constant_pool): New function.
1389 (init_varasm_once): Initialize shared_constant_pool.
1390 * output.h (output_constant_pool): Delete.
1391 (output_shared_constant_pool): Declare.
1392 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
1393 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
1394
7d14f0fc
NC
13952006-03-06 Nick Clifton <nickc@redhat.com>
1396
1397 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
1398 flag_strength_reduce.
1399
d9b9633d
BE
14002006-03-06 Ben Elliston <bje@au.ibm.com>
1401
45b9a4e8
BE
1402 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
1403 x86_64-*-linux* configurations.
1404
d9b9633d 1405 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
c92f986f 1406 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
d9b9633d 1407
acfc4f0a
KH
14082006-03-05 Kazu Hirata <kazu@codesourcery.com>
1409
1410 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
1411 Remove.
1412 * basic-block.h: Remove the extern for
1413 rediscover_loops_after_threading.
1414
b00bf166
KH
1415 * cfgloop.c (cancel_loop): Make it static.
1416 * cfgloop.h: Remove the prototype for cancel_loop.
1417
a678e384
KH
1418 * flow.c (recompute_reg_usage): Make it static.
1419 * rtl.h: Remove the prototype for recompute_reg_usage.
1420
0bf8477d
KH
1421 * function.c (use_return_register): Make it static.
1422 * function.h: Remove the prototype.
1423
d42ee77a
KH
14242006-03-05 Kazu Hirata <kazu@codesourcery.com>
1425
1426 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
1427 Remove.
1428 * recog.h: Remove the prototype for
1429 validate_change_maybe_volatile.
1430
dc782dcd
KH
14312006-03-05 Kazu Hirata <kazu@codesourcery.com>
1432
1433 * rtlanal.c (replace_reg): Remove.
1434 * rtl.h: Remove the prototype for replace_reg.
1435
3c491cab
KH
14362006-03-05 Kazu Hirata <kazu@codesourcery.com>
1437
1438 * regclass.c (reg_scan_update): Remove.
1439 (reg_scan_mark_refs): Remove the last argument.
1440 * rtl.h: Remove the prototype for reg_scan_update.
1441
c0220ea4
KH
14422006-03-04 Kazu Hirata <kazu@codesourcery.com>
1443
1444 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
1445 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
1446 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
1447 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
1448 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
1449 loop-invariant.c, omp-low.c, opts.c, passes.c,
1450 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
1451 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
1452 tree-ssa-structalias.c, tree-ssa-threadedge.c,
1453 tree-ssa-threadupdate.c, tree-vect-patterns.c,
1454 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
1455 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
1456
ae3b9f19
KH
14572006-03-04 Kazu Hirata <kazu@codesourcery.com>
1458
1459 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
1460 * dwarf2out.h: Remove the prototype for
1461 dwarf2out_add_library_unit_info.
1462
a82db052
KH
14632006-03-04 Kazu Hirata <kazu@codesourcery.com>
1464
1465 * tree.c (add_var_to_bind_expr): Remove.
1466 * tree.h: Remove the prototype for add_var_to_bind_expr.
1467
3c6c67f8
KH
14682006-03-04 Kazu Hirata <kazu@codesourcery.com>
1469
1470 * regclass.c (n_non_fixed_regs): Remove.
1471 (init_reg_sets_1, globalize_reg): Remove all uses of
1472 n_non_fixed_regs.
1473 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
1474
22ec0cc8
KH
14752006-03-04 Kazu Hirata <kazu@codesourcery.com>
1476
1477 * rtlanal.c (insns_safe_to_move_p): Remove.
1478 * rtl.h: Remove the prototype for insns_safe_to_move_p.
1479
2f8dc5bb
KH
14802006-03-04 Kazu Hirata <kazu@codesourcery.com>
1481
1482 * expmed.c (expand_mult_add): Remove.
1483 * expr.h: Remove the prototype for expand_mult_add.
1484
4469af7a
JJ
14852006-03-04 Jakub Jelinek <jakub@redhat.com>
1486
1487 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
1488 and REG_SAVED_VAL_EXP constants.
1489 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
1490 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
1491 Handle regs stored by value.
1492 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
1493 (execute_cfa_program): Handle DW_CFA_val_offset,
1494 DW_CFA_val_offset_sf and DW_CFA_val_expression.
1495 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
1496 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
1497 (uw_install_context_1): Handle target regs stored by value.
1498
efdb3de9
DB
14992006-03-03 Daniel Berlin <dberlin@dberlin.org>
1500
1501 * tree-sra.c (tree_sra): Return todoflags;
1502 (generate_one_element): Set TODO_update_smt_usage if needed.
1503 (pass_sra): Remove TODO_update_smt_usage.
1504 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
1505 parameter.
1506 (tree_ssa_forward_propagate_single_use_vars): Return
1507 TODO_update_smt_usage if we need to update SMT usage.
1508 (pass_forwprop): Remove TODO_update_smt_usage.
1509
65ad7c63
DN
15102006-03-03 Diego Novillo <dnovillo@redhat.com>
1511
1512 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
1513 (correct_use_link): Remove reference to get_stmt_operands.
1514 (update_stmt_operands): Likewise.
1515 (get_modify_expr_operands): New function factored out of
1516 parse_ssa_operands and get_expr_operands.
1517 Try to create V_MUST_DEFs for LHS by default.
1518 (get_expr_operands) <case MODIFY_EXPR>: Call
1519 get_modify_expr_operands.
1520 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
1521 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
1522 (parse_ssa_operands) <case MODIFY_EXPR>: Call
1523 get_modify_expr_operands.
1524
417e90ca
KH
15252006-03-03 Kazu Hirata <kazu@codesourcery.com>
1526
1527 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
1528 * tree-flow.h: Remove the prototype for
1529 referenced_var_lookup_if_exists.
1530
f6d65153
SE
15312006-03-03 Steve Ellcey <sje@cup.hp.com>
1532
1533 PR rtl-optimization/26345
1534 PR target/19061
1535 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
1536
9a75ede0
RS
15372006-03-03 Roger Sayle <roger@eyesopen.com>
1538
1539 PR tree-optimization/26524
1540 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
1541 fold_convert to create a constant of the appropriate type.
1542
3fa9c136
RS
15432006-03-03 Richard Sandiford <richard@codesourcery.com>
1544
1545 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1546 SYMBOL_REF_IN_BLOCK_P.
1547 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
1548 of SYMBOL_FLAG_IN_BLOCK.
1549 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
1550 instead of SYMBOL_REF_IN_BLOCK_P.
1551 * explow.c (use_anchored_address): Likewise.
1552 * rtl.c (rtx_size): Likewise.
1553 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
1554 instead of SYMBOL_FLAG_IN_BLOCK.
1555 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1556 SYMBOL_REF_IN_BLOCK_P.
1557 (assemble_variable): Likewise.
1558 (output_constant_def_contents): Likewise.
1559 (output_constant_pool): Likewise.
1560 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
1561 instead of SYMBOL_FLAG_IN_BLOCK.
1562 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1563 SYMBOL_REF_IN_BLOCK_P.
1564 (SYMBOL_REF_BLOCK): Likewise.
1565 (SYMBOL_REF_OFFSET): Likewise.
1566 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1567 SYMBOL_REF_IN_BLOCK_P.
1568 (SYMBOL_FLAG_IN_BLOCK): Replace with...
1569 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
1570 (SYMBOL_REF_IN_BLOCK_P): Replace with...
1571 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
1572
f677599e
JJ
15732006-03-03 Jakub Jelinek <jakub@redhat.com>
1574
1575 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
1576
0f2f71b5
RS
15772006-03-02 Roger Sayle <roger@eyesopen.com>
1578
1579 * simplify-rtx.c (simplify_unary_operation): When simplifying
1580 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
1581 that we perform the right shift in the appropriate mode, and
1582 then extend or truncate the result to requested mode.
1583
f82783bd
ZD
15842006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
1585
1586 * gengtype.c (main): Handle double_int type.
1587 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
1588 * double-int.c: New file.
1589 * double-int.h: New file.
1590 * system.h: Include doubleint.h.
1591 * Makefile.in (SYSTEM_H): Include double-int.h.
1592 (double-int.o): Add.
1593
778f0e89
JM
15942006-03-03 Joseph S. Myers <joseph@codesourcery.com>
1595
1596 PR bootstrap/26478
1597 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
1598 copying over it.
1599
701b8964
ZD
16002006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
1601
0f2f71b5
RS
1602 * tree-vrp.c (remove_range_assertions): Do not update statements
1603 unnecessarily.
701b8964 1604
59994160
ZD
16052006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
1606
1607 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
1608 cleanup.
1609 * gcse.c (rest_of_handle_gcse): Ditto.
1610 * except.c (gate_handle_eh): Ditto.
1611 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
1612 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
1613
5143b5fc
EC
16142006-03-02 Eric Christopher <echristo@apple.com>
1615
1616 * config/i386/i386.c (machopic_output_stub): Add indirection to
1617 jump.
1618
c6ba18c6
ZD
16192006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
1620
1621 * loop.c: Removed.
1622
4c837a1e
DM
16232006-03-02 David S. Miller <davem@sunset.davemloft.net>
1624
1625 Sun Niagara specific optimizations.
1626 * config.gcc: Recognize niagara as target.
1627 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
1628 (TARGET_CPU_niagara): Define.
1629 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
1630 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
1631 (CPP_CPU_SPEC): Handle -mcpu=niagara.
1632 (ASM_CPU_SPEC): Likewise.
1633 (PROCESSOR_NIAGARA): New enum entry.
1634 (REGISTER_MOVE_COST): Handle Niagara.
1635 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
1636 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
1637 (sparc_override_options): Recognize "niagara", set appropriate
1638 default MASK_* values for it, and align functions to 32-bytes
1639 by default just like ULTRASPARC/ULTRASPARC3.
1640 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
1641 (sparc64_initialize_trampoline): Likewise.
1642 (sparc_use_sched_lookahead): Use zero for niagara.
1643 (sparc_issue_rate): Use one for niagara.
1644 * config/sparc/niagara.md: New file.
1645 * config/sparc/sparc.md: Include it.
1646 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
1647 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
1648 when default cpu is niagara.
1649 (CPP_CPU_SPEC): Handle -mcpu=niagara.
1650 (ASM_CPU_SPEC): Likewise.
1651 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
1652 when default cpu is niagara.
1653 (ASM_CPU_SPEC): Handle -mcpu=niagara.
1654 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
1655 just like v9/ultrasparc/ultrasparc3.
1656 * doc/invoke.texi: Add documentation for "niagara" and improve
1657 existing documentation for ultrasparc variants.
5143b5fc 1658
2434ab1d
DN
16592006-03-02 Diego Novillo <dnovillo@redhat.com>
1660
1661 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
1662
434aeebb
RS
16632006-03-02 Richard Sandiford <richard@codesourcery.com>
1664
1665 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
1666 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
1667 and say that only one is needed.
1668 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
1669 * target.h (have_switchable_bss_sections): New hook.
1670 * explow.c (use_anchored_address): Check that the symbol is in a block.
1671 * varasm.c (tls_comm_section, comm_section, lcomm_section)
1672 (bss_noswitch_section): New variables.
1673 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
1674 (get_noswitch_section): New function.
1675 (get_block_for_section): Allow SECT to be null.
1676 (unlikely_text_section_p): Use SECTION_STYLE.
1677 (bss_initializer_p): New function.
1678 (get_variable_section): Move earlier in file. Take a new argument,
1679 prefer_noswitch_p. Move bss checks from assemble_variable to here.
1680 Return one of the new *_sections in such cases.
1681 (get_block_for_decl): New function, extracting some logic from
1682 use_blocks_for_decl_p.
1683 (change_symbol_section): Remove in favor of...
1684 (change_symbol_block): ...this new function.
1685 (use_blocks_for_decl_p): Remove checks now performed by
1686 get_block_for_decl.
1687 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
1688 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
1689 (emit_local, emit_bss, emit_common): ...these new functions.
1690 Return true if the alignment was honored.
1691 (emit_tls_common): New function.
1692 (asm_emit_uninitialised): Delete.
1693 (assemble_variable_noswitch): New function, split out from...
1694 (assemble_variable): ...here. Don't make decisions about common
1695 variables here. Globalize all public decls that go into non-common
1696 sections. Check whether SYMBOL_REF_BLOCK is null.
1697 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
1698 (output_constant_pool): Likewise.
1699 (init_varasm_once): Initialize the new section variables.
1700 (have_global_bss_p): New function.
1701 (categorize_decl_for_section): Use bss_initializer_p.
1702 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
1703 (place_block_symbol): Assert that the symbol must be in a block.
1704 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
1705 (TARGET_INITIALIZER): Include it.
1706 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
1707 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
1708 (SECTION_MACH_DEP): Bump by two.
1709 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
1710 (unnamed_section): Mention SECTION_UNNAMED in comment.
1711 (named_section): Likewise SECTION_NAMED.
1712 (noswitch_section_callback): New type.
1713 (noswitch_section): New structure.
1714 (section): Add a noswitch_section alternative.
1715 (SECTION_STYLE): New macro.
1716 (tls_comm_section, comm_section, lcomm_section): Declare.
1717 (bss_noswitch_section, have_global_bss_p): Declare.
1718 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1719 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1720 Override.
1721 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1722 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1723 Override.
1724
c2924966
DB
17252006-03-02 Daniel Berlin <dberlin@dberlin.org>
1726
1727 * gcc/tree-vrp.c (execute_vrp): Return value.
1728 * gcc/regrename.c (rest_of_handle_regrename): Ditto.
1729 * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
1730 * gcc/tree-complex.c (tree_lower_complex): Ditto.
1731 (tree_lower_complex_O0): Ditto.
1732 * gcc/tracer.c (rest_of_handle_tracer): Ditto.
1733 * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
1734 * gcc/postreload.c (rest_of_handle_postreload): Ditto.
1735 * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
1736 (execute_tail_calls): Ditto.
1737 * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1738 * gcc/tree.h (init_function_for_compilation): Ditto.
1739 * gcc/ipa-cp.c (ipcp_driver): Ditto.
1740 * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
1741 * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
1742 * gcc/final.c (compute_alignments): Ditto.
1743 (rest_of_handle_final): Ditto.
1744 (rest_of_handle_shorten_branches): Ditto.
1745 (rest_of_clean_state): Ditto.
1746 * gcc/omp-low.c (execute_expand_omp): Ditto.
1747 (execute_lower_omp): Ditto.
1748 * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
1749 * gcc/ipa-reference.c (static_execute): Ditto.
1750 * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
1751 * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
1752 (rest_of_handle_machine_reorg): Ditto.
1753 * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
1754 * gcc/flow.c (recompute_reg_usage): Ditto.
1755 (rest_of_handle_remove_death_notes): Ditto.
1756 (rest_of_handle_life): Ditto.
1757 (rest_of_handle_flow2): Ditto.
1758 * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
1759 * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
1760 (do_ssa_store_ccp): Ditto.
1761 (execute_fold_all_builtins): Ditto.
1762 * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
1763 * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
1764 * gcc/ipa-pure-const.c (static_execute): Ditto.
1765 * gcc/cse.c (rest_of_handle_cse): Ditto.
1766 (rest_of_handle_cse2): Ditto.
1767 * gcc/web.c (rest_of_handle_web): Ditto.
1768 * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
1769 * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
1770 * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
1771 * gcc/tree-nrv.c (tree_nrv): Ditto.
1772 (execute_return_slot_opt): Ditto.
1773 * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
1774 (create_structure_vars): Ditto.
1775 * gcc/loop-init.c (rtl_loop_init): Ditto.
1776 (rtl_loop_done): Ditto.
1777 (rtl_move_loop_invariants): Ditto.
1778 (rtl_unswitch): Ditto.
1779 (rtl_unroll_and_peel_loops): Ditto.
1780 (rtl_doloop): Ditto.
1781 * gcc/gimple-low.c (lower_function_body): Ditto.
1782 (mark_used_blocks): Ditto.
1783 * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
1784 * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
1785 (cgraph_early_inlining): Ditto.
1786 * gcc/global.c (rest_of_handle_global_alloc): Ditto.
1787 * gcc/jump.c (cleanup_barriers): Ditto.
1788 (purge_line_number_notes): Ditto.
1789 * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
1790 (rest_of_handle_if_after_reload): Ditto.
1791 * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
1792 (tree_ssa_loop_im): Ditto.
1793 (tree_ssa_loop_unswitch): Ditto.
1794 (tree_vectorize): Ditto.
1795 (tree_linear_transform): Ditto.
1796 (tree_ssa_loop_ivcanon): Ditto.
1797 (tree_ssa_empty_loop): Ditto.
1798 (tree_ssa_loop_bounds): Ditto.
1799 (tree_complete_unroll): Ditto.
1800 (tree_ssa_loop_prefetch): Ditto.
1801 (tree_ssa_loop_ivopts): Ditto.
1802 (tree_ssa_loop_done): Ditto.
1803 * gcc/predict.c (tree_estimate_probability): Ditto.
1804 * gcc/recog.c (split_all_insns_noflow): Ditto.
1805 (rest_of_handle_peephole2): Ditto.
1806 (rest_of_handle_split_all_insns): Ditto.
1807 * gcc/tree-eh.c (lower_eh_constructs): Ditto.
1808 * gcc/regmove.c (rest_of_handle_regmove): Ditto.
1809 (rest_of_handle_stack_adjustments): Ditto.
1810 * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
1811 * gcc/function.c (instantiate_virtual_regs): Ditto.
1812 (init_function_for_compilation): Ditto.
1813 (rest_of_handle_check_leaf_regs): Ditto.
1814 * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
1815 (rest_of_handle_gcse): Ditto.
1816 * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
1817 * gcc/alias.c (rest_of_handle_cfg): Ditto.
1818 * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
1819 * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
1820 * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
1821 * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
1822 * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
1823 * gcc/tree-dfa.c (find_referenced_vars): Ditto.
1824 * gcc/except.c (set_nothrow_function_flags): Ditto.
1825 (convert_to_eh_region_ranges): Ditto.
1826 (rest_of_handle_eh): Ditto.
1827 * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
1828 (remove_unnecessary_notes): Ditto.
1829 * gcc/except.h (set_nothrow_function_flags): Ditto.
1830 (convert_to_eh_region_ranges): Ditto.
1831 * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
1832 * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
1833 * gcc/tree-ssa-pre.c (do_pre): Ditto.
1834 (execute_fre): Ditto.
1835 * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
1836 (rest_of_handle_jump2): Ditto.
1837 * gcc/tree-sra.c (tree_sra): Ditto.
1838 * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
1839 (execute_mudflap_function_decls): Ditto.
1840 * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
1841 (do_store_copy_prop): Ditto.
1842 * gcc/ipa-prop.h (ipcp_driver): Ditto.
1843 * gcc/cfglayout.c (insn_locators_initialize): Ditto.
1844 * gcc/tree-ssa-forwprop.c
1845 (tree_ssa_forward_propagate_single_use_vars): Ditto.
1846 * gcc/cfglayout.h (insn_locators_initialize): Ditto.
1847 * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
1848 * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
1849 (execute_late_warn_uninitialized): Ditto.
1850 * gcc/rtl.h (cleanup_barriers): Ditto.
1851 (split_all_insns_noflow): Ditto.
1852 (purge_line_number_notes): Ditto.
1853 (unshare_all_rtl): Ditto.
1854 (remove_unnecessary_notes): Ditto.
1855 (recompute_reg_usage): Ditto.
1856 (variable_tracking_main): Ditto.
1857 * gcc/integrate.c (emit_initial_value_sets): Ditto.
1858 * gcc/integrate.h (emit_initial_value_sets): Ditto.
1859 * gcc/tree-optimize.c (execute_free_datastructures): Ditto
1860 (execute_free_cfg_annotations): Ditto.
1861 (execute_fixup_cfg): Ditto.
1862 (execute_cleanup_cfg_pre_ipa): Ditto.
1863 (execute_cleanup_cfg_post_optimizing): Ditto.
1864 (execute_init_datastructures): Ditto.
1865 * gcc/tree-object-size.c (compute_object_sizes): Ditto.
1866 * gcc/combine.c (rest_of_handle_combine): Ditto.
1867 * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
1868 * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
1869 (rest_of_handle_reorder_blocks): Ditto.
1870 (rest_of_handle_partition_blocks): Ditto.
1871 * gcc/var-tracking.c (variable_tracking_main): Ditto.
1872 * gcc/tree-profile.c (tree_profiling): Ditto.
1873 * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
1874 * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
1875 * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
1876 (rest_of_handle_sched2): Ditto.
1877 * gcc/basic-block.h (free_bb_insn): Ditto.
1878 * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
1879 * gcc/tree-cfg.c (execute_build_cfg): Ditto.
1880 (remove_useless_stmts): Ditto.
1881 (split_critical_edges): Ditto.
1882 (execute_warn_function_return): Ditto.
1883 (execute_warn_function_noreturn): Ditto.
1884 * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
1885 * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
1886 * gcc/passes.c (execute_one_pass): Run additional
1887 todos returned by execute function.
1888 * gcc/tree-pass.h (struct tree_opt_pass): Make execute
1889 return a value.
1890
62c577fd
RG
18912006-03-02 Richard Guenther <rguenther@suse.de>
1892
1893 * tree-ssa-alias.c (find_used_portions): Consider taking
1894 the address as making the variable not write-only.
1895
c5dde55b
NC
18962006-03-02 Nick Clifton <nickc@redhat.com>
1897
1898 * config.gcc (default_use_cxa_atexit): Extend the description of
1899 this configure variable. Set its default value to "yes" for
1900 Linux, NetBSD and ELF targets on the assumption that they will
1901 use C libraries with the __cxa_atexit function.
1902
75334508
BE
19032006-03-02 Ben Elliston <bje@au.ibm.com>
1904
1905 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
1906 parameter as unused to suppress a build warning.
1907
16c44183
BE
19082006-03-02 Ben Elliston <bje@au.ibm.com>
1909
1910 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
1911 config/dfp-bit.c.
1912
a11dd268
RS
19132006-03-01 Roger Sayle <roger@eyesopen.com>
1914
1915 PR other/26489
1916 * gthr-posix.h (__gthrw2): Define to take three parameters, the
1917 declared name, the weak reference name, and the typeof name.
1918 (__gthrw): Avoid expanding the declared name suffix.
1919 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
1920
d213accd
JJ
19212006-03-01 Jakub Jelinek <jakub@redhat.com>
1922
1923 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
1924 from DWARF 3.
1925 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
1926 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
1927 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
1928 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
1929 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
1930 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
1931 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
1932 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
1933 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
1934 DW_DS_leading_separate, DW_DS_trailing_separate): New.
1935 (DW_END_default, DW_END_big, DW_END_little): New.
1936 (DW_END_lo_user, DW_END_hi_user): Define.
1937 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
1938 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
1939 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
1940 DW_LANG_D): New.
1941
18cd8a03
DN
19422006-03-01 Diego Novillo <dnovillo@redhat.com>
1943
1944 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
1945 Update all users.
1946 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
1947 Update all users.
1948 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
1949 Update all users.
1950 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
1951 Update all users.
1952 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
1953 to 'symbol_mem_tag'.
1954 Update all users.
1955 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
1956 rename.
1957
8acb1b3d
RS
19582006-03-01 Roger Sayle <roger@eyesopen.com>
1959
1960 * builtins.c (fold_builtin_copysign): Delete unreachable code.
1961
c446d1a7
AP
19622006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
1963
1964 PR target/25761
1965 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
1966 MACHO_DYNAMIC_NO_PIC_P.
1967 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
1968
ab0ff804
AP
19692006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
1970
1971 PR target/26389
1972 * config/darwin-protos.h (darwin_asm_output_anchor):
1973 Declare.
1974 * config/darwin-sections.def (cstring_section):
1975 Add SECTION_MERGE to the flags.
1976 (literal4_section): Likewise.
1977 (literal8_section): Likewise.
1978 (objc_selector_refs_section): Likewise.
1979 (objc_cls_refs_section): Likewise.
1980 * config/darwin.c (darwin_asm_output_anchor): New
1981 function.
1982 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
1983
607f460c 19842006-03-01 Daniel Berlin <dberlin@dberlin.org>
18cd8a03 1985
607f460c
DB
1986 Fix PR tree-optimization/26443
1987 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
1988 to todo and PROP_tmt_usage to properties_destroyed.
1989 * tree-ssa-ccp.c (pass_ccp): Ditto.
1990 (pass_store_ccp): Ditto.
1991 * tree-ssa-dom.c (pass_dominator): Ditto.
1992
02075bb2
DN
19932006-03-01 Diego Novillo <dnovillo@redhat.com>
1994
1995 * tree-ssa-operands.c: Cleanup whitespace.
1996 (get_asm_expr_operands): Move before first invocation.
1997 (get_indirect_ref_operands): Likewise.
1998 (get_tmr_operands): Likewise.
1999 (get_call_expr_operands): Likewise.
2000 (append_def): Likewise.
2001 (append_use): Likewise.
2002 (append_v_may_def): Likewise.
2003 (append_v_must_def): Likewise.
2004 (add_call_clobber_ops): Likewise.
2005 (add_call_read_ops): Likewise.
2006 (add_stmt_operand): Likewise.
2007 (add_virtual_operand): Likewise.
2008 (build_ssa_operands): Likewise.
2009
20102006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
1809ff6b
AP
2011
2012 PR middle-end/26022
2013 Revert:
2014 PR middle-end/24437
2015 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
2016 with a call expr to ...
2017 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
2018
6578c101
DN
20192006-03-01 Diego Novillo <dnovillo@redhat.com>
2020
2021 * tree-vrp.c (extract_range_from_assert): Remove special
2022 handling for types with super-types.
2023
0eafb3ec
BE
20242006-03-01 Ben Elliston <bje@au.ibm.com>
2025
ec09c26e
BE
2026 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
2027 and powerpc64-*-linux* configurations.
2028 * config/t-dfprules: New file.
2029
0eafb3ec
BE
2030 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
2031 Compile dfp-bit.c from the source directory using -DWIDTH and
2032 $DFP_CFLAGS to control the compilation of that file, rather than
2033 generating width-specific versions in the build directory.
2034 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
2035 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
2036
cccb0908
ZW
20372006-02-28 Zack Weinberg <zackw@panix.com>
2038
2039 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
2040 continues to work.
2041
31abac07
EC
20422006-02-28 Eric Christopher <echristo@apple.com>
2043
2044 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
2045 Set up IN_LIBGCC definition of TARGET_64BIT.
2046 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
2047
c457fcec
RS
20482006-02-28 Roger Sayle <roger@eyesopen.com>
2049
2050 PR middle-end/14752
2051 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
2052 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
2053 cases via the construction of "expr != 0".
2054
63292ebf
SB
20552006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
2056
2057 * alias.c (alias_invariant, alias_invariant_size): Remove.
2058 (record_base_value): Remove.
2059 (memrefs_conflict_p): Don't look at alias_invariant.
2060 (end_alias_analysis): Don't free it.
2061 * alias.h (record_base_value): Remove prototype.
2062
d3b72690
PB
20632006-02-28 Paolo Bonzini <bonzini@gnu.org>
2064 Adam Nemet <anemet@caviumnetworks.com>
2065
2066 * rtl.h (truncated_to_mode): Declare it.
2067 (struct rtl_hooks): Add reg_truncated_to_mode hook.
2068 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
2069 (RTL_HOOKS_INITIALIZER): Include it.
2070 * rtlhooks.c (reg_truncated_to_mode_general): New function.
2071 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
2072 reg_truncated_to_mode.
2073 * rtlanal.c (truncated_to_mode): Define it.
2074 * simplify-rtx.c (simplify_unary_operation_1): Use it.
2075
ea45681a
JL
20762006-02-28 Jeff Law <law@redhat.com>
2077
e5c7f9f5
JL
2078 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
2079 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
2080 the range allowed by TYPE_PRECISION.
2081
ea45681a
JL
2082 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
2083
7ffe0f0d
DN
20842006-02-28 Dorit Nuzman <dorit@il.ibm.com>
2085
2086 PR tree-optimization/26419
2087 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
2088 values of n.
2089
3fa1b0e5
ZW
20902006-02-27 Zack Weinberg <zackw@panix.com>
2091
2092 * doc/md.texi: Fix typo in previous change.
2093
75743f02
KZ
20942006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
2095
2096 * df.c: Remove.
2097
f38840db
ZW
20982006-02-27 Zack Weinberg <zackw@panix.com>
2099
2100 * rtl.def (define_constraint, define_register_constraint)
2101 (define_memory_constraint, define_address_constraint): New MD forms.
2102 * gensupport.c (process_rtx): Put define_constraint etc on the
2103 predicate queue.
2104 * genpreds.c (process_define_predicate): Adjust comment. Validate
2105 the name, and call validate_exp to validate the expression.
2106 (mark_mode_tests, write_extract_subexp): Can assume correct input.
2107 (write_predicate_expr): Likewise. NAME argument no longer necessary;
2108 all callers changed.
2109 (validate_exp, needs_variable, struct constraint_data)
2110 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
2111 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
2112 (const_dbl_constraints, constraint_max_namelen)
2113 (have_register_constraints, have_memory_constraints)
2114 (have_address_constraints, have_address_constraints)
2115 (have_extra_constraints, have_const_int_constraints)
2116 (have_const_dbl_constraints, mangle, add_constraint)
2117 (process_define_constraint, process_define_register_constraint)
2118 (write_enum_constraint_num, write_lookup_constraint)
2119 (write_insn_constraint_len, write_regclass_for_constraint)
2120 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
2121 (write_insn_extra_memory_constraint)
2122 (write_insn_extra_address_constraint)
2123 (write_satisfies_constraint_fns): New.
2124 (write_tm_preds_h): If we have new-style constraint definitions,
2125 prototype the functions generated from them, and define the
2126 old constraint interface (still used by generic code) in terms of
2127 those functions.
2128 (write_insn_preds_c): If we have new-style constraint definitions,
2129 generate all relevant functions from those definitions.
2130 (main): Handle define_constraint etc.
2131 * genoutput.c (struct constraint_data, indep_constraints)
2132 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
2133 (mdep_constraint_len): New data structures and functions, defined
2134 #ifdef USE_MD_CONSTRAINTS.
2135 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
2136 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
2137 use new logic to validate operand constraints against constraint
2138 definitions.
2139 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
2140 defined.
2141 * defaults.h: If none of the old-style constraint macros are
2142 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
2143 old-style macros; and poison REG_CLASS_FROM_LETTER,
2144 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
2145 EXTRA_CONSTRAINT.
2146 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
2147 * doc/md.texi: Document new constraint-definition mechanism and the
2148 C interface it provides. Remove references to old mechanism
2149 elsewhere in the document.
2150 (Machine Constraints): Use pathnames relative to gcc directory,
2151 i.e. config/ARCH/FILE. Change i386 section to refer to
2152 config/i386/predicates.md; update that section to match docstrings.
2153 * doc/tm.texi: Move all documentation of the old constraint-
2154 definition macros to their own section, clearly mark as obsolete.
2155
2156 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
2157 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
2158 definitions.
2159 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
2160 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2161 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
2162 constraint strings.
2163 (splits and peepholes): Use satisfies_constraint_*.
2164 * config/i386/i386.c (memory_address_length)
2165 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
2166
e3e868f6
DB
21672006-02-27 Daniel Berlin <dberlin@dberlin.org>
2168
2169 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
2170 scalar operation to be put back into the loop.
2171
754e45a8
JJ
21722006-02-27 Jakub Jelinek <jakub@redhat.com>
2173
2174 PR other/26208
2175 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
2176 (extract_cie_info): Handle S flag in augmentation string.
2177 (execute_cfa_program): If context->signal_frame, execute also
2178 fs->pc == context->ra instructions.
2179 (uw_frame_state_for): If context->signal_frame, don't subtract one
2180 from context->ra to find FDE.
2181 (uw_update_context_1): Set context->signal_frame to
2182 fs->signal_frame.
2183 (_Unwind_GetIPInfo): New function.
2184 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
2185 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
2186 of _Unwind_GetIP.
2187 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
2188 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
2189 * unwind-compat.c (_Unwind_GetIPInfo): New function.
2190 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
2191 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
2192 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
2193 * config/i386/linux-unwind.h (x86_fallback_frame_state,
2194 x86_64_fallback_frame_state): Set fs->signal_frame.
2195 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
2196 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
2197 (frob_update_context): Likewise. Workaround missing S flag in
2198 Linux 2.6.12 - 2.6.16 kernel vDSOs.
2199 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
2200 Remove the psw_addr + 1 hack.
2201
6df11ca1
DB
22022006-02-27 Daniel Berlin <dberlin@dberlin.org>
2203
2204 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
2205 with aggregates here.
2206 (find_func_aliases): Remove code for &<aggregate> from here.
2207
5881ad5d
RS
22082006-02-26 Roger Sayle <roger@eyesopen.com>
2209
2210 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
2211 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
2212 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
2213 as (X & C) ne/eq 0.
2214
53f1b560
RS
22152006-02-26 Roger Sayle <roger@eyesopen.com>
2216
2217 PR middle-end/19983
2218 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
2219
efa1cdf0
ZD
22202006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
2221
2222 * opts.c (decode_options): Do not handle flag_strength_reduce.
2223 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
2224 and OPT_fstrength_reduce.
2225 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
2226 flag_prefetch_loop_arrays for being nonzero.
2227 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
2228 no-ops.
2229 (fprefetch-loop-arrays-rtl): Removed.
2230 (flag_prefetch_loop_arrays): Do not specify the value.
2231
2232 * doc/passes.texi: Update documentation of loop optimizer
2233 passes.
2234 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
2235 -frerun-loop-opt): Remove.
2236
651402f1
RG
22372006-02-26 Richard Guenther <rguenther@suse.de>
2238
2239 PR tree-optimization/26421
2240 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
2241 in function calls that are ADDR_EXPRs as using the whole structure.
2242
37818e7c
SB
22432006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
2244
2245 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
2246 * tree-pass.h (pass_loop_optimize): Remove.
2247 * passes.c (pass_loop_optimize): Never run it.
2248 * toplev.c (backend_init): Don't call init_loop.
2249 * opts.c (flag_loop_optimize_set): Remove.
2250 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
2251 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
2252 the old RTL loop optimizer when profiling enabled.
2253 * predict.c (tree_estimate_probability): Always strip builtin_expect.
2254 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
2255 pre-headers for the sake of the old RTL loop optimizer.
2256 * Makefile.in: Remove all references to loop.o.
2257
2258 * doc/invoke.texi: Remove all references to -floop-optimize
2259 and -frerun-loop-opt.
2260
74fe790b
ZW
22612006-02-26 Zack Weinberg <zackw@panix.com>
2262
2263 * doc/md.texi (Machine Constraints): Refer to all files with paths
2264 relative to gcc directory (i.e. config/CPU/file). Add missing
2265 @table @code ... @end table to M32C subsection.
2266
cef65eaa
RS
22672006-02-26 Roger Sayle <roger@eyesopen.com>
2268
2269 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
2270 (X & 1) == 0.
2271 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
2272
a861485c
RS
22732006-02-26 Roger Sayle <roger@eyesopen.com>
2274 James A. Morrison <phython@gcc.gnu.org>
2275
2276 PR middle-end/21137
2277 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
2278 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
2279 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
2280 signedness of the shift operation.
2281
afa38a95
DN
22822006-02-26 Dorit Nuzman <dorit@il.ibm.com>
2283
2284 PR tree-optimization/26359
2285 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
2286
5484a3c3
RS
22872006-02-25 Roger Sayle <roger@eyesopen.com>
2288
2289 * simplify-rtx.c (simplify_relational_operation_1): Simplify
2290 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
2291 as X == 0, and some symmetry related transformations.
2292 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
2293
eb8dffe0
RS
22942006-02-25 Roger Sayle <roger@eyesopen.com>
2295
2296 PR middle-end/23673
2297 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
2298 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
2299 symmetry related transformations. Fold (X^C1) == C2 as
2300 X == (C1^C2).
2301
332cf1b3
JW
23022006-02-25 Juergen Weigert <jw@suse.de>
2303 Richard Guenther <rguenther@suse.de>
2304
2305 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
2306
a4876725
AN
23072006-02-24 Adam Nemet <anemet@caviumnetworks.com>
2308
2309 * combine.c (gen_lowpart_or_truncate): Call
2310 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
2311
8d669cbd
DN
23122006-02-24 Diego Novillo <dnovillo@redhat.com>
2313
2314 * doc/invoke.texi: Move -fopenmp description to "Options for
2315 Code Generation".
2316 Remove reference to -lgomp.
2317
f44a5ab6
DE
23182006-02-24 David Edelsohn <edelsohn@gnu.org>
2319
2320 * doc/install.texi: Require GNU tar version 1.14.
2321
c7b5e395
GK
23222006-02-24 Geoffrey Keating <geoffk@apple.com>
2323
2324 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
74fe790b 2325 * doc/invoke.texi (C++ Dialect Options): Document
c7b5e395
GK
2326 -fno-use-cxa-get-exception-ptr.
2327 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
2328 * configure: Regenerate.
2329 * c.opt (fuse-cxa-get-exception-ptr): New.
2330 * c-opts.c (c_common_handle_option): Handle
2331 OPT_fuse_cxa_get_exception_ptr.
2332 * c-common.c (flag_use_cxa_atexit): Update documentation.
2333 (flag_use_cxa_get_exception_ptr): New.
2334 * c-common.h (flag_use_cxa_get_exception_ptr): New.
2335 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
2336 documentation.
2337 (C_COMMON_OVERRIDE_OPTIONS): New.
2338
676cb929
RS
23392006-02-24 Roger Sayle <roger@eyesopen.com>
2340
2341 PR middle-end/24952
2342 * combine.c (try_combine): Explicitly check whether GET_CODE is
2343 a SET or a CLOBBER, instead on checking that it isn't a USE.
2344
e26ec0bb
RS
23452006-02-24 Roger Sayle <roger@eyesopen.com>
2346
2347 * fold-const.c (fold_comparison): New subroutine of fold_binary
2348 containing transformations common to both the equality and
2349 ordering relational operators, factored out of fold_binary.
2350 (fold_binary): Separate out the equality operators (EQ_EXPR
2351 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
2352 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
2353 transformations common to both.
74fe790b 2354 (fold_div_compare): Fix latent bugs in the previously unreachable
e26ec0bb
RS
2355 LT_EXPR and GE_EXPR cases.
2356
69ca3549
DE
23572006-02-24 David Edelsohn <edelsohn@gnu.org>
2358
2359 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
2360 decl libname for clog to __clog on AIX.
2361
2362 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
2363
8097c268
AM
23642006-02-24 Alan Modra <amodra@bigpond.net.au>
2365
2366 PR target/26453
2367 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
2368 output traceback table for thunks. Localise rs6000_stack_info call.
2369
efbbbb61
RS
23702006-02-23 Roger Sayle <roger@eyesopen.com>
2371 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2372
2373 * gthr-posix.h (__gthrw): Fix typo in comment.
2374
23752006-02-23 Geoffrey Keating <geoffk@apple.com>
c1e12409
GK
2376
2377 * doc/cpp.texi (Character sets): Document that we do support
2378 input files to be in any character set.
2379
e260a614
JL
23802006-02-23 Jeff Law <law@redhat.com>
2381
357e7a82
JL
2382 * tree.h (PHI_ARG_NONZERO): Remove.
2383 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
2384 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
2385 node to the new node.
2386
e260a614
JL
2387 PR tree-optimization/26425
2388 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
2389 min/max, then assume its varying.
2390
e755fcf5
ZD
23912006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
2392
2393 PR rtl-optimization/26316
2394 * rtlanal.c (enum may_trap_p_flags): New.
2395 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
2396 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
2397 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
2398 (may_trap_after_code_motion_p): New function.
2399 * loop-invariant.c (find_identical_invariants): Fix dump formating.
2400 (find_invariant_insn): Use may_trap_after_code_motion_p.
2401 * rtl.h (may_trap_after_code_motion_p): Declare.
2402
65acccdd
ZD
24032006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
2404
2405 * emit-rtl.c (immed_double_const): Cleanup.
2406
4b0e7346 24072006-02-23 Daniel Berlin <dberlin@dberlin.org>
74fe790b 2408
4b0e7346
DB
2409 Fix PR tree-optimization/26376
2410 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
2411 remove assert.
2412
a5c8d67f
JJ
24132006-02-23 Jakub Jelinek <jakub@redhat.com>
2414
2415 PR middle-end/26412
2416 * gimplify.c (omp_add_variable): Guard variable size decl test with
2417 DECL_SIZE (decl) check.
2418
98b2060a
RG
24192006-02-23 Richard Guenther <rguenther@suse.de>
2420
2421 PR middle-end/26439
2422 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
2423 like aggregate types.
2424
ed965309
JJ
24252006-02-23 Jakub Jelinek <jakub@redhat.com>
2426
2427 * configure.ac: Add --with{,out}-long-double-128 configure option.
2428 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
2429 * configure: Rebuilt.
2430 * config.in: Rebuilt.
2431 * doc/install.texi (Options specification): Document
2432 --with-long-double-128.
2433
2434 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2435 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2436 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2437 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2438
24392006-02-23 Aldy Hernandez <aldyh@redhat.com>
2440
2441 * config/s390/s390.c (override_options): Handle
2442 TARGET_DEFAULT_LONG_DOUBLE_128.
2443
2444 * config/alpha/alpha.c (override_options): Handle
2445 TARGET_DEFAULT_LONG_DOUBLE_128.
2446
2447 * config/sparc/sparc.c (sparc_override_options): Handle
2448 TARGET_DEFAULT_LONG_DOUBLE_128.
2449
9fb03bd8
DJ
24502006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
2451
2452 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
2453 (real-install-headers-tar, real-install-headers-cpio)
2454 (real-install-headers-cp): New targets.
2455
e8dad6f0
RS
24562006-02-22 Richard Sandiford <richard@codesourcery.com>
2457
2458 * tree.h (variable_section): Delete.
2459 * varasm.c (variable_section): Delete.
2460
d7f755c3
PB
24612006-02-22 Paolo Bonzini <bonzini@gnu.org>
2462
2463 * install.texi: Add notes on install.texi2html.
2464 (Building in parallel): Do not use footnotes.
2465
4fe7a8bc
AH
24662006-02-21 Aldy Hernandez <aldyh@redhat.com>
2467
2468 PR libgomp/26234
2469 * doc/install.texi (Configuration): Document --disable-libgomp.
2470
6070e8e5
GK
24712006-02-21 Geoffrey Keating <geoffk@apple.com>
2472
2473 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
2474
f8770111
AO
24752006-02-21 Alexandre Oliva <aoliva@redhat.com>
2476
2477 * config/i386/sse.md (vec_extractv2df_1_sse): New.
2478 (vec_extractv2df_0_sse): New.
2479
35d177a2
AO
24802006-02-21 Alexandre Oliva <aoliva@redhat.com>
2481
2482 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
2483 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
2484 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
2485 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
2486 to the result of the expression.
2487 (def_cfa_1): Adjust.
2488 (frame_pointer_cfa_offset): Rename to...
2489 (frame_pointer_fb_offset): ... this. Adjust all uses.
2490 (convert_cfa_to_loc_list): Rename to...
2491 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
2492 Pass it on to build_cfa_loc.
2493 (compute_frame_pointer_to_cfa_displacement): Rename to...
2494 (compute_frame_pointer_to_fb_displacement): ... this. New
2495 offset parameter. Use it in computation.
2496 (gen_subprogram_die): Compute cfa_fb_offset with the new
2497 macro, and use it to compute the fb loc list and the
2498 displacement.
2499
4729dc92
BS
25002006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
2501
2502 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
2503 replaced with register_operand.
2504 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
2505 non-DREG is expensive.
2506 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
2507 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
2508 involving memory.
2509
520bc8a2
JM
25102006-02-21 Joseph S. Myers <joseph@codesourcery.com>
2511
2512 * doc/install.texi2html: Use set -e.
2513
f5e605e5
RS
25142006-02-21 Richard Sandiford <richard@codesourcery.com>
2515
2516 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2517 (ASM_OUTPUT_SHARED_LOCAL): Delete.
2518 * doc/invoke.texi (-fshared-data): Delete.
2519 * common.opt (fshared-data): Delete.
2520 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
2521 (assemble_static_space): Remove #if 0 code.
2522 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2523 (ASM_OUTPUT_SHARED_LOCAL): Poison.
2524 * config/cris/cris.h: Remove FIXME.
2525
880b9e7b
PB
25262006-02-21 Paolo Bonzini <bonzini@gnu.org>
2527
2528 * doc/sourcebuild.texi (Front End Directory): No more double-colon
2529 hooks.
2530
5a9e432d
JJ
25312006-02-21 Jakub Jelinek <jakub@redhat.com>
2532
2533 PR middle-end/26379
2534 * combine.c (simplify_shift_const_1): Disable nested shifts
2535 optimization for vector shifts.
2536
c1a70a3c
RS
25372006-02-20 Roger Sayle <roger@eyesopen.com>
2538
2539 PR tree-optimization/26361
2540 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
2541 of unsigned integer types.
2542
0ff4040e
SP
25432006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
2544
2545 * tree-chrec.c (eq_evolutions_p): New.
2546 * tree-chrec.h (eq_evolutions_p): Declared.
2547 * tree-data-ref.c: Fix formatting.
2548 (datadep_stats, dependence_stats): New.
2549 (gcd): Moved...
2550 (print_direction_vector): New.
2551 (dump_data_dependence_relation): Use print_direction_vector.
2552 (object_analysis, create_data_ref): Handle COMPONENT_REF.
2553 (compute_subscript_distance): Static.
2554 (initialize_data_dependence_relation): Static. Get the number
2555 of loops surrounding the references from the callers, and initialize
2556 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
2557 base_object_differ_p analyzers.
74fe790b 2558 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
0ff4040e
SP
2559 compute_overlap_steps_for_affine_1_2,
2560 analyze_subscript_affine_affine): Count the classified dependences.
2561 Print a message when a test failed.
74fe790b 2562 (can_use_analyze_subscript_affine_affine): New.
0ff4040e
SP
2563 (analyze_siv_subscript): Compute the data dependences on symbolic
2564 scevs that verify can_use_analyze_subscript_affine_affine.
2565 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
2566 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
2567 Handle symbolic scevs.
2568 (analyze_overlapping_iterations): Let symbolic affine scevs to be
2569 analyzed.
2570 (subscript_dependence_tester): Moved...
74fe790b 2571 (build_classic_dist_vector, build_classic_dir_vector): Don't use
0ff4040e
SP
2572 lambda_vector_clear on newly allocated vectors. Get nb_loops from
2573 DDR_SIZE_VECT instead of getting it in parameter.
74fe790b 2574 (subscript_dependence_tester): ... here. Take as a parameter
0ff4040e
SP
2575 loop_nest_depth. Call build_classic_dist_vector and
2576 build_classic_dir_vector.
74fe790b
ZW
2577 (compute_affine_dependence): Update subscript_dependence_tester
2578 parameters. Update datadep_stats counters. Call
0ff4040e 2579 compute_subscript_distance.
74fe790b 2580 (compute_self_dependence): Save the dist and dir vectors. Call
0ff4040e
SP
2581 compute_subscript_distance.
2582 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
2583 (compute_all_dependences): Reorder parameters as they were before
2584 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
74fe790b 2585 compute_subscript_distance. Update the use of
0ff4040e
SP
2586 compute_affine_dependence and initialize_data_dependence_relation.
2587 (find_data_references_in_loop): Handle COMPONENT_REF.
2588 (compute_data_dependences_for_loop): Initialize dependence_stats.
2589 Don't call build_classic_dist_vector and build_classic_dir_vector.
74fe790b 2590 Update the parameters of initialize_data_dependence_relation and
0ff4040e
SP
2591 compute_all_dependences. Print the statistics from datadep_stats.
2592 (analyze_all_data_dependences): Static. Not used until the pass for
2593 checking the data dependences is contributed.
2594 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
2595 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
74fe790b 2596 (initialize_data_dependence_relation, compute_affine_dependence,
0ff4040e
SP
2597 analyze_all_data_dependences, compute_subscript_distance): Removed.
2598 (print_direction_vector): New.
2599 * lambda.h (gcd): ... here.
2600 (lambda_vector_gcd): Moved here from gcd_vector.
2601 * lambda-code.c (gcd, gcd_vector): Removed.
2602 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
2603 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
2604
643519b7
DN
26052006-02-20 Diego Novillo <dnovillo@redhat.com>
2606
2607 * ipa-type-escape.c: Tidy some comments and white space.
2608 * tree-ssa-operands.c: Likewise.
2609
406f9d5e
AP
26102006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
2611
2612 PR tree-opt/25879
2613 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
2614 (dump_decl_name): Do not walk the decl tree chains.
2615 * tree-pass.h (TDF_CHAIN): Remove.
2616
2617