]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
Whitespace fixups
[gcc.git] / gcc / ChangeLog
CommitLineData
52ffd86e
MS
12006-05-18 Mike Stump <mrs@apple.com>
2
3 Fix up vla, vm and [*] sematics.
4
5 PR c/18740
6 PR c/7948
7 PR c/25802
8 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
9 (c_vla_unspec_p): Add.
10 (c_vla_type_p): Add.
11 * c-decl.c (struct c_scope): Add had_vla_unspec.
12 (build_array_declarator): Add support for [*].
13 (grokdeclarator): Likewise.
14 (grokparms): Likewise.
15 (get_parm_info): Likewise.
16 * c-objc-common.c (c_vla_unspec_p): Likewise.
17 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
18 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
19 typeof when argument is a variably modified type not inside sizeof or alignof.
20 (c_parser_direct_declarator_inner): Propagate errors.
21 (c_parser_sizeof_expression): Add support for [*].
22 * c-typeck.c (c_vla_type_p): Add.
23 (composite_type): Add support for vla compositing.
24 (comptypes_internal): Add support for vla compatibility.
25 (c_expr_sizeof_expr): Evaluate vla arguments.
26 * tree.c (variably_modified_type_p): Update comment for [*].
27
eaec4980
MM
282006-05-18 Michael Matz <matz@suse.de>
29
30 PR target/27599
31 * config.host: Make assignments to host_xmake_file cumulative.
32 * config.host (*-darwin*): Test $host, not $target.
33
33932946
SH
342006-05-12 Stuart Hastings <stuart@apple.com>
35
a1d1988f
MS
36 * config/i386/i386.opt (-mstackrealign): New flag.
37 * config/i386/i386.c (force_align_arg_pointer): New attribute.
33932946
SH
38 (ix86_handle_cconv_attribute): Emit error when
39 force_align_arg_pointer attribute collides with too many regparms.
40 (ix86_function_regparm): Limit regparms when used with
41 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
42 Support stack-realigning prologue in non-main functions. Emit
43 warning for nested functions under -mstackrealign, emit error for
44 nested functions with force_align_arg_pointer attribute.
a1d1988f
MS
45 * doc/extend.texi (force_align_arg_pointer): Document it.
46 * doc/invoke.texi (-mstackrealign): Document it.
e8366202 47
c8983342
KH
482006-05-17 Kazu Hirata <kazu@codesourcery.com>
49
50 PR rtl-optimization/27477
51 * combine.c (try_combine): Don't split a parallel consisting
52 of two sets into two individual sets if both sets reference
53 cc0.
54
344185f1
L
552006-05-17 H.J. Lu <hongjiu.lu@intel.com>
56
57 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
58 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
59
60 * doc/options.texi (VarExists): Updated.
61
edbaf6a2
JDA
622006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
63
64 * unwind-dw2.c: Add declarations for uw_update_context and
65 uw_frame_state_for.
66 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
67 detected, advance frame state and context once to skip over stub.
68
c93c5025
SP
692006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
70
71 PR middle-end/20256
72 PR middle-end/26435
73 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
74 Call rewrite_into_loop_closed_ssa only when something changed.
75 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
76 * lambda-code.c (can_convert_to_perfect_nest): Declared.
77 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
78 Test for perfect_nest_p here. Fix formating.
79 (replace_uses_equiv_to_x_with_y): Fix formating.
80 (stmt_uses_op): Removed.
81 (can_convert_to_perfect_nest): Removed loopivs parameter.
82 Complete the test by checking the scalar dependences.
83 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
84 Fix formating.
85
be448346
BS
862005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
87
88 PR bootstrap/22541
89 From Dan Kegel <dank@kegel.com>:
90 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
91
2e3b8fe7
EB
922006-05-17 Eric Botcazou <ebotcazou@adacore.com>
93
94 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
95 if the element type is variably modified without recursing.
96
9cb8f1ba
SP
972006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
98
99 PR middle-end/27332
e8366202 100 * tree-loop-linear.c (try_interchange_loops): Test for
9cb8f1ba
SP
101 no data dependences.
102
e5db3515
ZD
1032006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
104
105 PR tree-optimization/27548
106 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
107 range of ssa names that appear on abnormal edges.
108 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
109 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
110
33598a1b
BS
1112005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
112
113 PR middle-end/27620
114 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
115
761041be
JJ
1162006-05-17 Jakub Jelinek <jakub@redhat.com>
117
118 PR middle-end/27415
119 * tree.h (OMP_PARALLEL_COMBINED): Define.
120 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
121 (new_omp_context): Add is_combined_parallel argument.
122 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
123 new_omp_context caller.
124 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
125 Adjust gimplify_scan_omp_clauses callers.
126 (omp_is_private): Issue errors if iteration variable is firstprivate
127 or reduction in the current context.
128 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
129 on combined parallel workshare constructs.
130
8dc3f290
L
1312006-05-16 H.J. Lu <hongjiu.lu@intel.com>
132
133 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
134 (gcc-options.o): New rule.
135
136 * optc-gen.awk: Protect variables for gcc-options.o with
137 #ifdef GCC_DRIVER/#endif.
138
2ed4b0ce 1392006-05-16 Daniel Berlin <dberlin@dberlin.org>
e8366202 140
2ed4b0ce
DB
141 Fix PR tree-optimization/27373
142 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
143 (forward_propagate_addr_expr): Update call.
144
48b06e94
L
1452006-05-16 H.J. Lu <hongjiu.lu@intel.com>
146
147 * doc/options.texi: Move the Negative option.
148
faaf1436
RG
1492006-05-16 Richard Guenther <rguenther@suse.de>
150
151 PR tree-optimization/22303
152 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
153 from STRING_CSTs.
154 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
155 ccp_fold did not simplify the statement.
156
14c7833c
L
1572006-05-16 H.J. Lu <hongjiu.lu@intel.com>
158
159 PR driver/26885
160 * Makefile.in (GCC_OBJS): New.
161 (OBJS-common): Add opts-common.o.
162 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
163 (cpp$(exeext)): Likewise.
164 (gcc.o): Also depend on opts.h.
165 (opts-common.o): New.
166
167 * common.opt (gcoff): Add Negative(gdwarf-2).
168 (gdwarf-2): Add Negative(gstabs).
169 (gstabs): Add Negative(gstabs+).
170 (gstabs+): Add Negative(gvms).
171 (gvms): Add Negative(gxcoff).
172 (gxcoff): Add Negative(gxcoff+).
173 (gxcoff+): Add Negative(gcoff).
174 * config/i386/i386.opt (m32): Add Negative(m64).
175 (m64): Add Negative(m32).
176
177 * doc/options.texi: Document the Negative option.
178
179 * gcc.c: Include "opts.h".
180 (main): Call prune_options after expandargv.
181
182 * optc-gen.awk: Generate common declarations for all flag
183 variables in options.c. Output the neg_index field.
184
185 * opts.c (find_opt): Moved to ...
186 * opts-common.c: Here. New file.
187
188 * opts.h (cl_option): Add a neg_index field.
189 (find_opt): New.
190 (prune_options): Likewise.
191
4156f84b
JJ
1922006-05-16 Jakub Jelinek <jakub@redhat.com>
193
b570947c
JJ
194 PR middle-end/27573
195 * omp-low.c (expand_omp_parallel): Don't assert
196 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
197 instead search for it.
198
4156f84b
JJ
199 PR c/27499
200 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
201 is signed.
202
726e9992
AS
2032006-05-16 Andreas Schwab <schwab@suse.de>
204
205 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
206 defmac.
207
d0b89852
RS
2082006-05-15 Roger Sayle <roger@eyesopen.com>
209
210 PR target/26600
211 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
212 integer constants other than zero are only legitimate on TARGET_64BIT.
213 <CONST_VECTOR> Only zero vectors are legitimate.
214 (ix86_cannot_force_const_mem): Integral and vector constants can
215 always be put in the constant pool.
216
a0cfeb0f
DD
2172006-05-16 DJ Delorie <dj@redhat.com>
218
219 * crtstuff.c (__dso_handle): Set section from
220 TARGET_LBIGCC_SDATA_SECTION if defined.
726e9992 221 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
a0cfeb0f
DD
222 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
223
21028020
DS
2242006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
225
eaec4980 226 PR target/27599
21028020
DS
227 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
228 host_xmake_file.
229
4741d956
BE
2302006-05-16 Ben Elliston <bje@au.ibm.com>
231
232 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
233
44422aa3
PB
2342006-05-15 Per Bothner <per@bothner.com>
235
236 * tree.c: (last_annotated_node): Use sources_locus typedef.
237 This permits bootstrapping with --enable-mapped-location.
238
95dd3097
ZD
2392006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
240
241 PR tree-optimization/26830
242 * tree-into-ssa.c (struct ssa_name_info): Add age field.
243 (info_for_ssa_name, current_info_for_ssa_name_age,
244 blocks_to_update): New variables.
245 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
246 (clear_ssa_name_info, initialize_flags_in_bb,
247 mark_block_for_update): New functions.
248 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
249 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
250 prepare_def_site_for): Use mark_block_for_update.
251 (mark_def_interesting): Assert that the processed block is marked in
252 blocks_to_update. Do not take blocks argument.
253 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
254 argument.
255 (rewrite_update_init_block, rewrite_update_stmt): Only process
256 blocks with statements to rewrite.
257 (delete_update_ssa): Do not clear SSA_NAME_AUX.
258 (update_ssa): Initialize and free blocks_to_update. Do not
259 clear flags on statements. Do not use blocks bitmap.
260 * tree.h (SSA_NAME_AUX): Removed.
261 (struct tree_ssa_name): Removed aux field.
262 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
263
7136db7a
RG
2642006-05-15 Richard Guenther <rguenther@suse.de>
265
266 PR tree-optimization/27603
267 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
268 Do computations in original type.
269
a0145633
MN
2702006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
271
f8f80cbb
ZD
272 * see.c: Code style changes such as redundant paranthesis,
273 redundant intialization of local variables etc.
274 (see_main): Declared now as static.
275 * doc/invoke.texi: Update that -fsee is not enabled by
276 default at -O3.
a0145633 277
eeb1d9e0
JJ
2782006-05-15 Jakub Jelinek <jakub@redhat.com>
279
a6fc8e21
JJ
280 * omp-low.c (check_omp_nesting_restrictions): New function.
281 (scan_omp_1): Call it.
282
eeb1d9e0
JJ
283 PR middle-end/27416
284 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
285 construct, return *VAR.
286
a1709769
KK
2872006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
288
289 PR rtl-optimization/27406
290 * bt-load.c (migrate_btr_def): Skip the block having abnormal
291 edges.
292
56106c2e
RS
2932006-05-14 Roger Sayle <roger@eyesopen.com>
294
295 PR rtl-optimization/27538
296 * combine.c (expand_compound_operation): Call gen_lowpart
297 before calling simplify_shift_const.
298
c505fc06
RS
2992006-05-14 Roger Sayle <roger@eyesopen.com>
300
301 PR rtl-optimization/22563
302 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
303 a fixed width bitfield, always force the intermediates into psuedos.
304
f9a4b91e
BF
3052006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
306
307 PR 27501
308 * mkconfig.sh: Use operator = instead of == for test.
309
83409463
NC
3102006-05-13 Nick Clifton <nickc@redhat.com>
311
312 * dwarf2out.c (dbx_reg_number): Check return value from
313 LEAF_REG_REMAP and only use it if it is valid.
314 (multiple_reg_loc_descriptor): Likewise.
315
75c3fb73
RG
3162006-05-13 Richard Guenther <rguenther@suse.de>
317
318 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
319 host_xmake_file.
320
a1b53177
SB
3212006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
322
323 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
324 information attached to non-INSNs such as NOTEs.
325 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
326
651a36e3
AK
3272006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
328
329 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
330 On contraint.
331 * config/s390/s390.md: Adjust comment describing On constraint.
332
5d342ef9
JH
3332006-05-11 Jan Hubicka <jh@suse.cz>
334
335 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
336 to be output at -O0.
337
81e61fb4
VR
3382006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
339
7ebcc52c
VR
340 PR middle-end/27384
341 * fold-const.c (size_binop): Move sanity check for arguments to
342 the beginning of the function.
343
81e61fb4
VR
344 PR middle-end/27488
345 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
346 expression.
347
497cfe24
RG
3482006-05-11 Richard Guenther <rguenther@suse.de>
349
350 PR middle-end/27529
351 * fold-const.c (fold_unary): Handle intermediate conversion
352 to a pointer type like intermediate conversion to an integer
353 type in folding of (T1)(T2)var to var.
354 Match the code to the comment in the final conversion for
355 (T1)(T2)var to (T1)var regarding to type precision. Rather
356 than disallow T1 being of pointer type, assert that both T1
357 and var are of pointer type or not. Make sure not to fall
358 over the frontends lazyness wrt array to pointer decay though.
359
29e339b9
RE
3602006-05-10 Richard Earnshaw <rearnsha@arm.com>
361
362 * arm.c (arm_struct_value_rtx): Delete.
363 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
364 (arm_init_cumulative_args): Always initialize nregs to zero.
365
5ac4f3bb
RG
3662006-05-10 Richard Guenther <rguenther@suse.de>
367
368 PR tree-optimization/27532
369 * tree-object-size.c (plus_expr_object_size): Fix typo.
370
e43d8b8a
KH
3712006-05-10 Kazu Hirata <kazu@codesourcery.com>
372
373 PR target/24949
374 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
375 ashrdi_const, ashrdi3): Use a scratch register.
376
a04d8591
RG
3772006-05-10 Richard Guenther <rguenther@suse.de>
378
379 PR tree-optimization/27302
380 * fold-const.c (operand_equal_p): For two comparisons,
381 try comparison of one comparison code swapped if that yields
382 the same code.
383
9c5835d5
BE
3842006-05-10 Ben Elliston <bje@au.ibm.com>
385
4db60bd0
BE
386 * tree-pretty-print.c (pretty_print_string): No need to handle
387 '\0' as a special character.
388
9c5835d5
BE
389 * tree.h: Include "hashtab.h".
390 (iterative_hash_expr): Use hashval_t in its prototype.
391 * Makefile.in (TREE_H): Add $(HASHTAB_H).
392
543b6009
SE
3932006-05-09 Steve Ellcey <sje@cup.hp.com>
394
395 PR bootstrap/26872
396 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
397 (hppa*64*-*-hpux11*): Ditto.
398 (hppa[12]*-*-hpux11*): Ditto.
399
7ac159a5
DE
4002006-05-09 David Edelsohn <edelsohn@gnu.org>
401
402 PR target/26545
403 * config/rs6000/aix41.h (TARGET_64BIT): Define.
404
fa959ce4
MM
4052006-05-09 Michael Matz <matz@suse.de>
406
407 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
408 host_extra_gcc_objs and host_xmake_file.
409 (<*-*-linux*>): Don't overwrite host_xmake_file.
410 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
411 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
412 (host_detect_local_cpu): Declare.
413 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
414 * config/i386/i386.c (override_options): Handle -mtune=native
415 as -mtune=generic.
416 * config/i386/x-i386: New file.
417 * config/i386/driver-i386.c: New file.
418 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
419 cpu-type "native".
420
f9c3744b
DM
4212006-05-09 Dirk Mueller <dmueller@suse.de>
422 Richard Guenther <rguenther@suse.de>
423
424 PR middle-end/27498
425 * fold-const.c (fold_read_from_constant_string): Relax check
426 for matching types to matching modes.
427
2c790a28
ZD
4282006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
429
430 PR rtl-optimization/27335
431 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
432 loops.
433
ec4fc7ed
RS
4342006-05-08 Chao-ying Fu <fu@mips.com>
435 Richard Sandiford <richard@codesourcery.com>
436
437 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
438 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
439 * config/mips/mips.md (UNSPEC_SCC): New constant.
440 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
441 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
442 (mips_emit_compare): Use it.
443 (mips_expand_vcondv2sf): New function.
444
74be08f8
DB
4452006-05-08 Daniel Berlin <dberlin@dberlin.org>
446
447 Fix PR tree-optimization/27093
e8366202 448 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
74be08f8
DB
449 renaming when they become not-used_alone.
450
fdaaf002
JDA
4512006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
452
453 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
454 relocation and relocation stubs.
455
90c92323
EC
4562006-05-08 Eric Christopher <echristo@apple.com>
457
458 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
459 section for ppc.
460
04f77d0f
JH
4612006-05-08 Jan Hubicka <jh@suse.cz>
462
463 PR middle-end/25962
464 * cgraphunit.c (decide_is_function_needed): When not optimizing even
465 unused static functions are needed.
466
857e5753
RS
4672006-05-08 Roger Sayle <roger@eyesopen.com>
468
469 PR target/27158
470 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
471 of a reg_equiv_constant if the result is a legitimate constant.
472
b81bd6c9
UB
4732006-05-08 Uros Bizjak <uros@kss-loka.si>
474
475 PR target/27277
476 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
477 standard 80387 constants, raise the cost to prevent
478 compress_float_constant() to generate load from memory.
479
923d16d4
KH
4802006-05-08 Kazu Hirata <kazu@codesourcery.com>
481
482 * config/arm/constraints.md (c): Fix a typo.
483
bca50406
KH
484 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
485 typos.
486
67a4b391
L
4872006-05-07 H.J. Lu <hongjiu.lu@intel.com>
488
489 PR target/24879
490 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
491 inline function.
492 (_mm_mwait): Likewise.
493
494 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
495 "mwait".
496 (sse3_monitor): Make it 32bit only.
497 (sse3_monitor64): New. 64bit monitor.
498
f7360901
VR
4992006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
500
501 PR target/27421
502 * config/i386/i386.c (classify_argument): Skip fields with invalid
503 types.
504
18455d17
RG
5052006-05-07 Richard Guenther <rguenther@suse.de>
506
507 PR tree-optimization/27409
508 * tree-ssa-structalias.c (get_constraint_for_component_ref):
509 Do not try to find zero-sized subvars.
510
ed52affe
RG
5112006-05-07 Richard Guenther <rguenther@suse.de>
512
513 PR tree-optimization/27136
514 * tree-ssa-loop-niter.c (get_val_for): Correct function
515 comment, assert requirements.
516 (loop_niter_by_eval): Stop processing if the iterated
517 value did not simplify.
518
ef5d0a89
MN
5192006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
520
e8366202 521 * opts.c (flag_see): remove its setting at -O3.
90c92323 522
ce92b223
RE
5232006-05-07 Richard Earnshaw <rearnsha@arm.com>
524
525 * genpeep.c (main): Make insn-peep.c depend on flags.h.
526 * arm/constraints.md: New file.
527 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
528 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
529 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
530 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
531 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
532 (EXTRA_MEMORY_CONSTRAINT): Likewise.
533 * arm.md: Include constraints.md.
534 (thumb_movsi_insn): Use satisfies_constraint_J.
535 (movhi, movqi): Use satisfies_constraint_I.
536
ed1a08a7
AS
5372006-04-29 Anatoly Sokolov <aesok@post.ru>
538
e8366202 539 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
ed1a08a7
AS
540 for atmeg a645 device.
541
75bfa678
RG
5422006-05-06 Richard Guenther <rguenther@suse.de>
543
544 PR tree-optimization/27151
545 * tree-vect-transform.c (vectorizable_condition): Punt on
546 values that have a different type than the condition.
547
8d8d1a28
AH
5482006-05-03 Aldy Hernandez <aldyh@redhat.com>
549
550 PR/21391
551 * c-parser.c (c_parser_cast_expression): Only insert casts into
552 hash table if pointer.
553 * function.c (used_types_insert_helper): Rename from
554 used_types_insert.
555 (used_types_insert): Call used_types_insert_helper.
556 * function.h (used_types_insert): Accept only one argument.
557
edd54d25
DE
5582006-05-05 David Edelsohn <edesohn@gnu.org>
559
560 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
561 scratch with output modifier.
562
1958f718
DE
5632006-05-04 David Edelsohn <edelsohn@gnu.org>
564
565 PR target/26481
566 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
567 with output modifier.
568
05431b85
KH
5692006-05-04 Richard Sandiford <richard@codesourcery.com>
570
571 PR target/26765
572 * config/mips/mips.c (mips_symbolic_address_p): Return true
573 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
574 SYMBOL_GOTTPREL, and SYMBOL_TLS.
575
d818832c
RG
5762006-05-04 Richard Guenther <rguenther@suse.de>
577
578 PR tree-optimization/14287
579 PR tree-optimization/14844
580 PR tree-optimization/19792
581 PR tree-optimization/21608
582 PR tree-optimization/27090
583 * tree-ssa-pre.c (try_combine_conversion): New function.
584 (compute_avail): After constructing the value-handle
585 expression, use try_combine_conversion to combine NOP_EXPRs
586 with previous value-handle expressions and use the result if it
587 is available.
588
6c4b5a19
JM
5892006-05-04 Joseph S. Myers <joseph@codesourcery.com>
590
591 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
592
69fb1284
JH
5932006-05-04 Jan Hubicka <jh@suse.cz>
594
595 PR middle-end/25962
596 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
597
554006bd
BS
5982006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
599
600 * config/bfin/predicates.md (const01_rtx): Tell generator programs
601 that this only matches CONST_INTs. All users changed to VOIDmode
602 operands.
603
42da70b7
BS
604 * config/bfin/bfin.c: Include "optabs.h".
605 (bfin_rtx_costs): Some costs for vector operations, to allow combine
606 to do more work.
607 (enum bfin_builtins): Add a number of fractional and vector builtins.
608 (bfin_init_builtins): Likewise.
609 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
610 (safe_vector_operand, bfin_expand_binop_builtin,
611 bfin_expand_unop_builtin): New functions.
612 (bfin_expand_builtin): Handle the new builtins.
613 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
614 __ADSPBLACKFIN__.
615
8cd37d0b
RL
6162006-05-04 Leehod Baruch <leehod@il.ibm.com>
617
e8366202
MS
618 * see.c: New file.
619 * Makefile.in (OBJS-common): Add see.o.
620 (see.o): Add dependencies.
621 * common.opt (fsee): New flag for the see optimization was added.
622 * opts.c (flag_see): Initialized.
623 * passes.c (init_optimization_passes, pass_see): New pass.
624 * rtl.h (see_main): Declaration as extern.
625 * timevar.def (TV_SEE): New.
626 * tree-pass.h (pass_see): Declaration as extern.
627 * invoke.texi (-fsee): Document.
628 * recog.c (validate_simplify_insn): New function.
629 * recog.h (validate_simplify_insn): Declaration as extern.
630 * df-problems.c (df_chain_dump): Check for NULL.
8cd37d0b
RL
631
6322006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
e8366202 633 Daniel Berlin <dberlin@dberlin.org>
8cd37d0b 634
e8366202
MS
635 * cfgrtl.c (insert_insn_bb_end_new): New function.
636 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
8cd37d0b
RL
637
6382006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
639
e8366202
MS
640 * df.h (struct web_entry): Moved from web.c.
641 (union_defs): Declaration as extern.
642 (unionfind_root): Likewise.
643 (unionfind_union): Likewise.
644 * web.c (struct web_entry): Moved to df.h.
645 (unionfind_root): Remove static declaration.
646 (unionfind_union): Likewise.
647 (union_defs): Likewise and generalize to use callback function.
648 (web_main): Update arguments for union_defs function call.
8cd37d0b 649
23ba9627
RG
6502006-05-04 Richard Guenther <rguenther@suse.de>
651
652 PR tree-optimization/26447
653 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
654 produce SSA_NAME copies before the store stmt to avoid
655 breaking exception handling.
656
f6a5ffbf
JJ
6572006-05-04 Jakub Jelinek <jakub@redhat.com>
658
659 PR middle-end/27388
660 * gimplify.c (omp_is_private): If var is shared in some outer context,
661 return false instead of true. Stop searching on parallel context
662 boundary.
663
0ef1a537
AO
6642006-05-03 Alexandre Oliva <aoliva@redhat.com>
665
666 PR java/8260
667 * coverage.c: Use get_gcov_unsigned_t() instead of
668 unsigned_type_node all over.
669
afd83fe4
AM
6702006-05-02 Andrew MacLeod <amacleod@redhat.com>
671
672 PR tree-optimization/27381
90c92323 673 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
afd83fe4 674 maintain the same immediate_use links.
90c92323 675 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
afd83fe4
AM
676 node rather than segfaulting.
677
693d710f
JJ
6782006-05-03 Jakub Jelinek <jakub@redhat.com>
679
680 PR fortran/27395
681 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
682 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
683 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
684
832a0c1d
DB
6852006-05-02 Daniel Berlin <dberlin@dberlin.org>
686
687 Fix PR tree-optimization/26626
688 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
689 always.
690 * tree-ssa-operands.c (access_can_touch_variable): Allow
691 typecasting through union pointers.
692
8ca5b2a2
JJ
6932006-05-02 Jakub Jelinek <jakub@redhat.com>
694
695 PR c++/26943
696 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
697 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
698 to find if var will be a global variable even in the nested context.
699 (omp_copy_decl): Only check for global variable at the end, it might
700 be overridden in outer contexts.
701 (scan_sharing_clauses): For global variables don't create a field.
702 (lower_rec_input_clauses): Do nothing for global shared variables.
703 Emit a barrier at the end of ILIST if there were any decls in both
704 firstprivate and lastprivate clauses.
705 (lower_send_clauses): Do nothing for global variables except for
706 COPYIN.
707
a3428e07
ZD
7082006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
709
710 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
711 of the correct signedness is returned.
712
26ef4301
JL
7132006-05-02 Jeff Law <law@redhat.com>
714
715 PR tree-optimization/27364
716 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
717 multiply expressions.
718
263bb8fb
TT
7192006-05-02 Tom Tromey <tromey@redhat.com>
720
721 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
722
54b9e939
KH
7232006-05-02 Kazu Hirata <kazu@codesourcery.com>
724
725 PR target/27387
726 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
727 -mthumb -fPIC are used.
728
2297e173
SS
7292006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
730 Joshua Kinard <kumba@gentoo.org>
d541888b
SS
731
732 PR target/25871
a1d1988f 733 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
d541888b
SS
734 with 64-bit pointers.
735
7a7017bc
PB
7362006-05-02 Paul Brook <paul@codesourcery.com>
737
738 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
739 and pool overlap.
740 (create_fix_barrier): Check that a suitable barrier location is
741 found.
742 (arm_reorg): Include ftmp->address in allowable range of addresses.
743
3beef5cb
DB
7442006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
745
746 PR ada/27366
90c92323 747 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
7a7017bc 748 on Cygwin.
3beef5cb 749
d5d86fde
JJ
7502006-05-02 Jakub Jelinek <jakub@redhat.com>
751
077b0dfb
JJ
752 PR middle-end/27337
753 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
754 around RESULT_DECL for result passed by reference.
755 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
756 * omp-low.c (use_pointer_for_field): Don't look at
757 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
758 (scan_omp_1): Call remap_decl on RESULT_DECLs.
759 (lower_rec_input_clauses): Don't allocate VLA memory for the second
760 time or var for passing by reference for
761 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
762 TREE_ADDRESSABLE variables when passing by reference.
763
764 * omp-low.c (dump_omp_region): Fix output formatting.
765
2aee3e57
JJ
766 PR middle-end/27328
767 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
768 (expand_omp_parallel): Likewise.
769 * tree-cfg.c (move_sese_region_to_fn): Likewise.
770
4a31b7ee
JJ
771 PR middle-end/27325
772 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
773 on statement list containing also constructors and destructors.
774 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
775
d5d86fde
JJ
776 PR middle-end/27310
777 * except.c (duplicate_eh_regions): Fix clearing of
778 cfun->eh->region_array entries.
779
c15b113b
DD
7802006-05-01 DJ Delorie <dj@redhat.com>
781
782 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
783 build!=host.
784 (gcc_cv_objdump): Likewise.
785 * configure: Regenerated.
786
94634f14
KH
7872006-05-01 Kazu Hirata <kazu@codesourcery.com>
788
789 PR target/27374
790 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
791 templates for case 3 and 4.
792
2d5bc016
DD
7932006-05-01 DJ Delorie <dj@redhat.com>
794
795 * vec.c: Include bconfig.h when appropriate.
796 * Makefile.in (build/vec.o): Adjust dependencies.
797 * mkconfig.sh: Make sure config.h isn't used for build machine
798 compiles.
799
2ce79879
ZD
8002006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
801
802 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
803 variables.
804 (mark_phi_for_rewrite): New function.
805 (insert_phi_nodes_for, mark_use_interesting): Call
806 mark_phi_for_rewrite.
807 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
808 (update_ssa): Initialize and free phis_to_rewrite.
809
ed541ddb
ZD
8102006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
811
812 PR rtl-optimization/27291
813 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
814 folded to a constant.
815
dcccd88d
ZD
8162006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
817
818 PR tree-optimization/27283
819 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
820 not whole # of iteration descriptions.
821 (niter_for_exit): Return just # of iterations. Fail if # of iterations
822 uses abnormal ssa name.
823 (niter_for_single_dom_exit): Ditto.
824 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
825 return just the number of iterations.
826
763f4527
ZD
8272006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
828
829 PR tree-optimization/27144
830 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
831 (record_estimate): Only record constant upper bound.
832 (infer_loop_bounds_from_undefined): Call
833 compute_estimated_nb_iterations just once.
834 (proved_non_wrapping_p): Renamed to ...
835 (n_of_executions_at_most): ... this. Expect bound to be a constant.
836 (convert_step_widening, scev_probably_wraps_p): Call
837 n_of_executions_at_most instead of proved_non_wrapping_p.
838 (substitute_in_loop_info): Do not replace values in bounds.
839 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
840 comments.
841
2a83cc52
RH
8422006-05-01 Richard Henderson <rth@redhat.com>
843
844 PR c/27358
845 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
846 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
847 CPP_PRAGMA.
848
0f57299d
RS
8492006-05-01 Roger Sayle <roger@eyesopen.com>
850
851 * c-typeck.c (parser_build_binary_op): Don't call the function
852 unsigned_conversion_warning to spot operand/result type overflow.
853 (build_binary_op): Instead, call convert_and_check instead of
854 convert to report the problem when the operands are promoted.
855 * c-common.c (unsigned_conversion_warning): Make static.
856 * c-common.h (unsigned_conversion_warning): Delete prototype.
857
ea643120
RG
8582006-05-01 Richard Guenther <rguenther@suse.de>
859
860 PR tree-optimization/26726
861 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
862 problem ...
863 (find_interesting_uses_address): ... we work around here
864 by folding INDIRECT_REFs in the substituted base.
865
444e96af
DN
8662006-05-01 Diego Novillo <dnovillo@redhat.com>
867
868 * omp-low.c (dump_omp_region): Add newlines.
869
71834ad3
RS
8702006-04-30 Roger Sayle <roger@eyesopen.com>
871
872 * common.opt (Woverflow): New command line option.
873 * c-common.c (constant_expression_warning): Check warn_overflow.
874 (overflow_waring): Pass OPT_Woverflow to warning.
875 (unsigned_conversion_warning): Likewise.
876 (convert_and_check): Likewise.
877 * doc/invoke.texi: Document new command line option.
878
194c524a
DE
8792006-04-30 David Edelsohn <edelsohn@gnu.org>
880
881 * config/rs6000/rs6000.c (rs6000_override_options): Enable
882 TARGET_NO_FP_IN_TOC for section anchors.
883 (optimization_options): Enable section anchors for all
884 non-"Objective" languages.
885
4f8bdef9
EC
8862006-04-28 Eric Christopher <echristo@apple.com>
887
888 * config/darwin-c.c (darwin_ms_struct): Move this
889 (darwin_set_default_type_attributes): and this...
890 * config/darwin.c: ... here.
891 * config/darwin.h (darwin_ms_struct): Declare.
892
a5f84464
AM
8932006-04-28 Andrew MacLeod <amacleod@redhat.com>
894
895 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
896
a0f0ab9f
RS
8972006-04-28 Roger Sayle <roger@eyesopen.com>
898
899 PR c/25309
900 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
901 (push_array_bounds): Delete prototype. Change BOUNDS argument to
902 an unsigned HOST_WIDE_INT.
903 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
904 array index.
905 (really_start_incremental_init): No need to call convert because
906 bitsize_zero_node is already of type bitsizetype.
907 (push_init_level): Extract the value of constructor_index as an
908 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
909 (process_init_element): Likewise.
910
c7370b83
JM
9112006-04-28 Joseph S. Myers <joseph@codesourcery.com>
912
913 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
914 value before passing to make_relative_prefix.
915
bb6a0ee1
AM
9162006-04-28 Alan Modra <amodra@bigpond.net.au>
917
918 PR middle-end/27260
919 * builtins.c (expand_builtin_memset): Expand val in original mode.
920
16d6f994
EC
9212006-04-27 Eric Christopher <echristo@apple.com>
922
923 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
924 with #ifndef/#endif.
925 * config/darwin-c.c (darwin_ms_struct): New.
926 (darwin_pragma_ms_struct): Ditto.
927 (darwin_set_default_type_attributes): Ditto.
928 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
929 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
930 Register ms_struct pragma.
931 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
932 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
933 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
934 darwin_set_default_type_attributes if TARGET_MACHO.
935
6c00f606
AM
9362006-04-27 Andrew MacLeod <amacleod@redhat.com>
937
938 PR tree-optimization/26854
939 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
940 * doc/tree-ssa.texi: Update immuse iterator documentation.
941 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
942 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
943 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
944 first_safe_imm_use, next_safe_imm_use): Remove.
945 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
946 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
947 (move_use_after_head): New. Helper function to sort immuses in a stmt.
948 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
949 (first_imm_use_stmt): New. Get first stmt in an immuse list.
950 (next_imm_use_stmt): New. Get next stmt in an immuse list.
951 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
952 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
953 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
954 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
955 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
956 (perfect_nestify): Use new iterator.
16d6f994 957 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
6c00f606
AM
958 iterator.
959 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
960 (next_imm_name): New field in struct immediate_use_iterator_d.
961 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
16d6f994 962 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
6c00f606
AM
963 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
964 * tree-cfg.c (replace_uses_by): Use new iterator.
965 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
966 * tree-ssa-operands.c (correct_use_link): Remove.
967 (finalize_ssa_use_ops): No longer call correct_use_link.
968
9613eaff
SH
9692006-04-27 Stuart Hastings <stuart@apple.com>
970
971 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
972 * config/t-darwin (crt3.o): Use it.
973 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
974 'pmode', use Pmode instead of SImode for SYMBOL_REF.
975 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
976 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
977 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
978 support.
16d6f994 979
135c2bd4
RS
9802006-04-27 Roger Sayle <roger@eyesopen.com>
981
982 * expmed.c (store_fixed_bit_field): If we're not optimizing for
983 size, force the intermediate into a new pseudo rather instead of
984 performing both a bitwise AND and a bitwise IOR in memory.
985
921b02cd
RG
9862006-04-27 Richard Guenther <rguenther@suse.de>
987
988 PR rtl-optimization/26685
989 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
990 this one "max-flow-memory-locations".
991
67ac6e63
RG
9922006-04-27 Richard Guenther <rguenther@suse.de>
993
994 PR tree-optimization/25148
995 * tree-vrp.c (compare_values): Remove code dealing with
996 comparisons against type min/max value. Honour overflow
997 and negative constants in code dealing with comparisons
998 of plus and minus expressions.
999 (value_inside_range): Use fold_binary with LE_EXPR and
1000 GE_EXPR rather than compare_values.
1001
869170df
DM
10022006-04-27 Dirk Mueller <dmueller@suse.de>
1003
1004 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
1005 prototype for SSE.
1006
3bf7d5e7
KZ
10072006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
1008
1009 * basic-block.h (safe_insert_insn_on_edge): Removed.
1010 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
1011
7b282ff9
DE
10122006-04-26 David Edelsohn <edelsohn@gnu.org>
1013 Paolo Bonzini <bonzini@gnu.org>
1014
1015 PR middle-end/27282
1016 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
1017 (simplify_and_const_int): Same.
1018
44470433
AH
10192006-04-26 Aldy Hernandez <aldyh@redhat.com>
1020
e8366202 1021 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
44470433 1022
21a66e91
JJ
10232006-04-26 Jakub Jelinek <jakub@redhat.com>
1024
91b6c26d
JJ
1025 PR c/26171
1026 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
1027 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
1028 cgraph_global_info_ready.
1029
07ed51c9
JJ
1030 PR middle-end/26913
1031 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
1032
1562e1fe
JJ
1033 PR c/25996
1034 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
1035 either decl or init is error_mark_node.
1036
21a66e91
JJ
1037 PR middle-end/25989
1038 * tree-flow.h (struct omp_region): Add sched_kind.
1039 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
1040 instead of extracting omp for data.
1041 (expand_omp_for): Save extracted sched_kind.
1042
f7acbf4c
RS
10432006-04-25 Roger Sayle <roger@eyesopen.com>
1044
1045 * expmed.c (store_bit_field): Also check whether the bitsize is
1046 valid for the machine's "insv" instruction before moving the
1047 target into a pseudo for use with the insv.
1048 * config/i386/predicates.md (const8_operand): New predicate.
1049 * config/i386/i386.md (extv, extzv, insv): Use the new
1050 const8_operand predicate where appropriate.
1051
c9936427
DD
10522006-04-25 DJ Delorie <dj@redhat.com>
1053
1054 * doc/install.texi (Specific): Clarify that this is not a list of
1055 supported hosts or targets.
1056
c0c5d392
RS
10572006-04-25 Richard Sandiford <richard@codesourcery.com>
1058
1059 PR rtl-optimization/26725
1060 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
1061 block's BB_DIRTY flag.
1062
d61772b2
GK
10632006-04-25 Geoffrey Keating <geoffk@apple.com>
1064
887dc802
GK
1065 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
1066 are no branches.
1067
d61772b2
GK
1068 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
1069 to print an integer.
1070
d5fa3ec8
DE
10712006-04-25 David Edelsohn <edelsohn@gnu.org>
1072
1073 * varasm.c (align_variable): New function.
1074 (get_block_for_decl): Apply align_variable to DECL before
1075 calculating section information.
1076 (assemble_variable): Split out alignment computation.
1077
495db1a1
AK
10782006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
1079
1080 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
1081 machines.
1082
75d8b2d0
BS
10832006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
1084
1085 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
1086 MODE_PARTIAL_INT mode.
1087 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
1088 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
1089 for CONST_INTs.
1090 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
1091 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
1092 V2PDImode.
1093 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
1094 New predicates.
1095 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
1096 New constants.
1097 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
1098 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
1099 MACFLAG_IH): Likewise.
1100 (movstricthi_1): Renamed from "*movstricthi".
1101 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
1102 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
1103 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
1104 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
1105 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
1106 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
1107 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
1108 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
1109 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
1110 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
1111 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
1112 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
1113 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
1114 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
1115 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
1116
6d75cd5f
BS
1117 * doc/rtl.texi (ss_ashift): Improve wording.
1118
6f8d8ef0
GK
11192006-04-24 Geoffrey Keating <geoffk@apple.com>
1120
1121 * dwarf2out.c (verify_marks_clear): New.
1122 (prune_unused_types): Call verify_marks_clear initially, not
1123 prune_unmark_dies.
1124
e551ad26
BS
11252006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1126
1127 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
1128 * doc/rtl.texi: Document them.
1129 * simplify-rtx.c (simplify_unary_operation,
1130 simplify_binary_operation_1): Don't abort when we see them.
1131
bfa11223
MM
11322006-04-24 Mark Mitchell <mark@codesourcery.com>
1133
1134 Revert:
1135 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1136 * configure.ac: Completely disregard languages that are not
1137 enabled.
1138 * configure: Regenerated.
1139
d84b37b0
AP
11402006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1141 Richard Guenther <rguenther@suse.de>
1142
1143 PR tree-optimization/27236
1144 * tree-inline.c (copy_body_r): Make sure to copy
1145 TREE_THIS_VOLATILE flag.
1146
c0a3f887
RG
11472006-04-24 Richard Guenther <rguenther@suse.de>
1148
1149 PR middle-end/26869
1150 * tree-complex.c (update_parameter_components): Don't handle
1151 unused parameters which have no default def.
1152
72fa5e06
AP
11532006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
1154 Richard Guenther <rguenther@suse.de>
1155
1156 PR tree-optimization/27218
1157 * tree-inline.c (expand_call_inline): Strip useless type
1158 conversions for the return slot address.
1159
0162f155
RG
11602006-04-24 Richard Guenther <rguenther@suse.de>
1161
1162 * cfgloop.h (struct loops): Remove unused field array. Reorder
1163 state after num.
1164 (LOOP_PREFETCH): Remove.
1165
7e1584f8
RG
11662006-04-24 Richard Guenther <rguenther@suse.de>
1167
1168 PR tree-optimization/22525
1169 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
1170 variable, adjust types of generated expressions.
1171
d24b23bb
L
11722006-04-23 H.J. Lu <hongjiu.lu@intel.com>
1173
1174 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
1175 (tree-vect-patterns.o): Likewise.
1176 (jump.o): Likewise.
1177 (cselib.o): Likewise.
1178 (loop-doloop.o): Likewise.
1179 (regclass.o): Likewise.
1180 (reload1.o): Likewise.
1181 (explow.o): Replace target.h with $(TARGET_H).
1182 (ipa-prop.o): Likewise.
1183 (ipa-cp.o): Likewise.
1184 (ipa-inline.o): Likewise.
1185 (reorg.o): Likewise.
1186 (reg-stack.o): Likewise.
1187
e8c3ff97
EB
11882006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1189
1190 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
1191
38a4afee
MM
11922006-04-23 Mark Mitchell <mark@codesourcery.com>
1193
bfa11223
MM
1194 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
1195
1196 * configure.ac: Completely disregard languages that are not
1197 enabled.
1198 * configure: Regenerated.
1199
38a4afee
MM
1200 PR c++/26534
1201 * c-common.h (c_build_bitfield_integer_type): Declare.
1202 * c-decl.c (c_build_bitfield_integer_type): Move to ...
1203 * c-common.c (c_build_bitfield_integer_type): ... here.
1204
acb188c1
RS
12052006-04-23 Roger Sayle <roger@eyesopen.com>
1206
1207 PR target/21283
1208 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
1209 a SImode SUBREG of a floating point register after no_new_pseudos.
1210
a02ee5b2
RS
12112006-04-23 Roger Sayle <roger@eyesopen.com>
1212
1213 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
1214 identify potentially eliminable registers to additionally catch
1215 VIRTUAL_INCOMING_ARGS_REGNUM.
1216 (addsi3): Update the conditions on when to use addsi_small_int.
1217
c21242e8
RS
12182006-04-23 Roger Sayle <roger@eyesopen.com>
1219
1220 PR target/16641
1221 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
1222 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
1223 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
1224
1464eeb8
EB
12252006-04-23 Eric Botcazou <ebotcazou@adacore.com>
1226
1227 * fold-const.c (range_predecessor): Use operand_equal_p
1228 as the predicate for equality.
1229 (range_successor): Likewise.
1230
9542abd3
KH
12312006-04-22 Kazu Hirata <kazu@codesourcery.com>
1232
1233 Revert:
1234 * config/soft-fp/op-common.h: Fix a typo.
1235
110c4563
FCE
12362006-04-22 Frank Ch. Eigler <fche@redhat.com>
1237
1238 PR libmudflap/26864
1239 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
1240 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
1241
66a4ad37
KH
12422006-04-22 Kazu Hirata <kazu@codesourcery.com>
1243
1244 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
1245 Fix comment typos.
1246 * doc/tm.texi: Fix a typo.
1247
d6eeb3ba
GK
12482006-04-21 Geoffrey Keating <geoffk@apple.com>
1249
1250 * dwarf2out.c (struct die_struct): Document that die_sib makes
1251 a circular linked list.
1252 (FOR_EACH_CHILD): New.
1253 (reverse_die_lists): Delete.
1254 (reverse_all_dies): Delete.
1255 (add_dwarf_attr): Correct documentation.
1256 (remove_child_with_prev): New.
1257 (remove_child_TAG): Update for change to die_struct, use
1258 remove_child_with_prev.
1259 (add_child_die): Update for change to die_struct.
1260 (splice_child_die): Use remove_child_with_prev and add_child_die.
1261 (print_die): Use FOR_EACH_CHILD.
1262 (die_checksum): Likewise.
1263 (assign_symbol_names): Likewise.
1264 (output_location_lists): Likewise.
1265 (build_abbrev_table): Likewise.
1266 (calc_die_sizes): Likewise.
1267 (mark_dies): Likewise.
1268 (unmark_dies): Likewise.
1269 (unmark_all_dies): Likewise.
1270 (output_die): Likewise.
1271 (prune_unused_types_mark): Likewise.
1272 (prune_unused_types_walk): Likewise.
1273 (same_die_p): Update for change to die_struct.
1274 (break_out_includes): Likewise.
1275 (prune_unused_types_prune): Likewise.
1276 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
1277 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
1278 it's already clear.
1279 (dwarf2out_finish): Don't call reverse_all_dies.
1280
7a0b46c9
EC
12812006-04-21 Eric Christopher <echristo@apple.com>
1282
1283 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
1284 in comments and function names.
1285
5d5e98dc
VR
12862006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1287
f01da1a5
VR
1288 PR c/25875
1289 * c-typeck.c (digest_init): Robustify.
1290
5d5e98dc
VR
1291 * c-typeck.c (pop_init_level): Simplify.
1292
3144998a
SE
12932006-04-21 Steve Ellcey <sje@cup.hp.com>
1294
1295 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
1296
87b24aaf
PB
12972006-04-21 Paul Brook <paul@codesourcery.com>
1298
1299 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
1300 hardware floating point.
1301
e3604432
DE
13022006-04-21 David Edelsohn <edelsohn@gnu.org>
1303
1304 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
1305 NON_FLOAT_REGS.
1306
15eaa78f
NC
13072006-04-21 Nick Clifton <nickc@redhat.com>
1308
1309 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
1310 OPT_EXTRA_PARTS.
1311
56438901
AM
13122006-04-21 Alan Modra <amodra@bigpond.net.au>
1313
1314 PR target/27230
1315 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
1316 C++ lang type in traceback table for Objective-C++.
1317
1318 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
1319
a46cec70
L
13202006-04-20 H.J. Lu <hongjiu.lu@intel.com>
1321
1322 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
1323
06866a73
VR
13242006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1325
1326 PR mudflap/26789
1327 * tree-mudflap.c (mudflap_finish_file): Skip function when there
1328 were errors. Remove check for erroneous objects.
1329
bfc646bf
JL
13302006-04-20 Jeff Law <law@redhat.com>
1331
1332 PR tree-optimization/26854
1333 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
1334 checking for zero or one use.
1335 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
1336 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
1337 * tree-ssa-reassoc.c (negate_value): Similarly.
1338 (reassociate_bb): Similarly.
1339
455f78d9
JJ
13402006-04-20 Jakub Jelinek <jakub@redhat.com>
1341
1342 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
1343 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
1344 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
1345
9a74f8ee
AM
13462006-04-20 Alan Modra <amodra@bigpond.net.au>
1347
1348 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
1349 fp regs if the last fp arg doesn't fit in regs.
1350
904b6a0e
KK
13512006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
1352
1353 PR target/27182
1354 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
1355 that the last insn has the REG_INC note.
1356
9dfb66b9
CD
13572006-04-19 Carlos O'Donell <carlos@codesourcery.com>
1358 Nathan Sidwell <nathan@codesourcery.com>
1359
1360 PR c/26774
7a0b46c9 1361 * stor-layout.c (update_alignment_for_field): Do not align
9dfb66b9
CD
1362 ERROR_MARK nodes.
1363 (place_union_field): Place union field at the start of the union.
1364 (place_field): Move ERROR_MARK check later, and use the current
1365 allocation position to maintain monotonicity.
1366
74c96e0c
ZD
13672006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
1368
1369 * dominance.c: Include timevar.h.
1370 (calculate_dominance_info): Use TV_DOMINANCE.
1371 * timevar.def (TV_DOMINANCE): New timevar.
1372 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
1373
e90cd854
AK
13742006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1375
4414de4a 1376 PR rtl-optimization/14261
e90cd854
AK
1377 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
1378 move would be an INSV insn.
7a0b46c9 1379 (noce_process_if_block): Don't optimize if the destination is a
e90cd854
AK
1380 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
1381
43a09b63
AK
13822006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
1383
1384 * config/s390/s390.md: Add comments with the instructions emitted
1385 by an insn pattern if macros are used.
1386
0f35201e
AM
13872006-04-19 Alan Modra <amodra@bigpond.net.au>
1388
1389 PR rtl-optimization/26026
1390 * fold-const.c (fold_binary): Optimize div and mod where the divisor
1391 is a known power of two shifted left a variable amount.
1392
76f7a74f
GK
13932006-04-18 Geoffrey Keating <geoffk@apple.com>
1394
1395 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
1396 to hash table twice when the debug_str section has SECTION_MERGE.
1397
49721058
JM
13982006-04-18 Joseph S. Myers <joseph@codesourcery.com>
1399
1400 * config/soft-fp: New directory. From glibc.
1401 * config/soft-fp/t-softfp: New.
1402 * config/soft-fp/README: New.
1403 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
1404 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
1405 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
1406 (LIBGCC_DEPS): Add $(SFP_MACHINE).
1407 * config.gcc: Use rs6000/t-fprules-fpbit or
1408 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
1409 rs6000/t-fprules.
1410 * config/rs6000/sfp-machine.h: New. Based on glibc.
1411 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
1412 New.
1413 * config/rs6000/t-fprules: Remove fp-bit rules.
1414 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
1415 * config/rs6000/t-linux64: Likewise. Remove duplicates from
1416 LIB2FUNCS_EXTRA. Remove fp-bit rules.
1417 (softfp_wrap_start, softfp_wrap_end): New.
1418
7e96ee36
DD
14192006-04-18 DJ Delorie <dj@redhat.com>
1420
1421 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
1422
d955420e
DP
14232006-04-18 Devang Patel <dpatel@apple.com>
1424
1425 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
7a0b46c9 1426
503b5c9f
NC
14272006-04-18 Nick Clifton <nickc@redhat.com>
1428
1429 * config/sh/t-symbian: Add rule to build sh-c.o
1430 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
1431 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
1432 (sh_symbian_encode_section_info): Likewise.
1433
c2f07c00
AK
14342006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
1435
7a0b46c9 1436 * builtins.c (expand_builtin_strcmp): Cover label definition of
c2f07c00
AK
1437 do_libcall with HAVE_cmpstrnsi.
1438
6370682a
KH
14392006-04-18 Kazu Hirata <kazu@codesourcery.com>
1440
1441 * function.c (temp_slots_at_level, max_slot_level): Use VEC
1442 instead of VARRAY.
1443 * function.h (temp_slot_p): New.
1444 (function): Change the type of x_used_temp_slots to
1445 VEC(temp_slot_p,gc) *.
1446
224504d2
NC
14472006-04-18 Nick Clifton <nickc@redhat.com>
1448
13a41b42
NC
1449 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1450 flag_strength_reduce.
1451
224504d2
NC
1452 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1453
6ee2e158
PB
14542006-04-18 Paolo Bonzini <bonzini@gnu.org>
1455
e8366202 1456 PR target/27117
6ee2e158
PB
1457
1458 Partial revert of revision 112637
1459 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1460 Dale Johannesen <dalej@apple.com>
1461
1462 PR target/19653
1463 * regclass.c (struct reg_pref): Update documentation.
1464 (regclass): Set prefclass to NO_REGS if memory is the best option.
1465 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1466
e3949961
PB
14672006-04-18 Paolo Bonzini <bonzini@gnu.org>
1468
e8366202
MS
1469 PR tree-optimization/26821
1470 * tree-ssa-math-opts.c (get_constant_one): New.
1471 (insert_reciprocals): Use it.
e3949961 1472
e26303c2
GK
14732006-04-17 Geoffrey Keating <geoffk@apple.com>
1474
1475 * dwarf2out.c (free_AT): Delete.
1476 (remove_AT): Update string ref counts.
1477 (remove_child_TAG): Don't call free_die.
1478 (free_die): Delete.
1479 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1480 or DW_TAG_GNU_EINCL.
1481 (prune_unused_types_walk_attribs): Reset string refcounts.
1482 (prune_unused_types_update_strings): New.
1483 (prune_unused_types_prune): Don't make unnecessary stores. Don't
1484 call free_die. Do call prune_unused_types_update_strings.
1485 (prune_unused_types): Empty debug_str_hash.
1486
6cc1d694
RS
14872006-04-17 Roger Sayle <roger@eyesopen.com>
1488
1489 * expr.c (expand_assignment): Optimize away no-op moves where the
1490 source and destination are equal and have no side-effects.
1491
71a9b19a
RG
14922006-04-17 Richard Guenther <rguenther@suse.de>
1493
1494 PR target/26826
1495 * reload.c (push_reload): Guard calls to get_secondary_mem
1496 for memory subregs.
1497
08c79682
KH
14982006-04-16 Kazu Hirata <kazu@codesourcery.com>
1499
1500 * alias.c (reg_base_value, old_reg_base_value): Change the
1501 type to VEC(rtx,gc) *.
1502 (REG_BASE_VALUE, find_base_value, record_set,
1503 init_alias_analysis): Use VEC instead of VARRAY.
1504
1a5640b4
KH
1505 * alias.c (alias_sets): Change the type to
1506 VEC(alias_set_entry,gc) *.
1507 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1508 VEC instead of VARRAY.
1509 (last_alias_set): Remove.
1510
b2c0ad40
KH
1511 * cgraph.h (cgraph_edge_p): New.
1512 Update the prototype of cgraph_function_versioning.
1513 * cgraphunit.c (cgraph_copy_node_for_versioning,
1514 cgraph_function_versioning): Use VEC instead of VARRAY.
1515 * ipa-cp.c (ipcp_insert_stage): Likewise.
1516
726ac11e
RS
15172006-04-16 Roger Sayle <roger@eyesopen.com>
1518
1519 PR target/26961
1520 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1521 "A op B" or "A op C", we may need to convert A to the type of B and C.
1522
b12cbf2c
AN
15232006-04-16 Adam Nemet <anemet@caviumnetworks.com>
1524
1525 * target.h (struct gcc_target): Add mode_rep_extended.
1526 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1527 (init_num_sign_bit_copies_in_rep): Initialize it using
1528 mode_rep_extended.
1529 (truncate_to_mode): Use it.
1530 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1531 * targhooks.h (default_mode_rep_extended): Declare it.
1532 * targhooks.c (default_mode_rep_extended): Define it.
1533 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
1534 default_mode_rep_extended.
1535 (TARGET_INITIALIZER): Include it.
1536 * doc/tm.texi (Misc): Document it.
1537 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1538 (mips_truncated_to_mode): New function.
1539
d763e130
RS
15402006-04-16 Roger Sayle <roger@eyesopen.com>
1541
1542 PR middle-end/25474
1543 * expr.c (compress_float_constant): Copy the narrow constant into
1544 a new pseudo before extending it to its final width.
1545
2ff61948
RS
15462006-04-16 Roger Sayle <roger@eyesopen.com>
1547 Andrew Pinski <pinskia@gcc.gnu.org>
1548 Dale Johannesen <dalej@apple.com>
1549
1550 PR target/24076
1551 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1552 special case code to implement V8HImode and V16QImode with SSE2.
1553
3db8a113
RS
15542006-04-15 Roger Sayle <roger@eyesopen.com>
1555
1556 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1557 trees are constructed with a suitable tree type.
1558
7fe25d1a
RS
15592006-04-15 Roger Sayle <roger@eyesopen.com>
1560
1561 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1562 (integer_onep): Likewise.
1563 (integer_all_onesp): Likewise.
1564 (integer_pow2p): Likewise.
1565 (integer_nonzerop): Likewise.
1566 (real_zerop): Likewise.
1567 (real_onep): Likewise.
1568 (real_twop): Likewise.
1569 (real_minus_onep): Likewise.
1570 (int_size_in_bytes): Likewise.
1571 (host_integerp): Likewise.
1572
75c40d56
KH
15732006-04-15 Kazu Hirata <kazu@codesourcery.com>
1574
1575 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1576 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1577 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1578
aacac31f
KH
1579 * tree-ssa-structalias.h (alias_info): Remove num_references.
1580
8370f6fa
JDA
15812006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1582
1583 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1584 (output_bvb patterns): Likewise.
1585 * pa.c (output_bb): Use 'bb' insn for long branch case.
1586 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1587 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1588 1. Correct length operand for alternatives 1 and 2.
1589 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1590 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
1591
bed575d5
RS
15922006-04-14 Roger Sayle <roger@eyesopen.com>
1593
1594 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1595 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1596 were accidentally reverted by r112959.
1597
7e2df4a1
JJ
15982006-04-15 Jakub Jelinek <jakub@redhat.com>
1599
1600 PR middle-end/26823
1601 * except.h (eh_region_outermost): New prototype.
1602 * except.c (eh_region_outermost): New function.
1603 * tree-cfg.c (find_outermost_region_in_block): Use it.
1604
43b373a2
KH
16052006-04-14 Kazu Hirata <kazu@codesourcery.com>
1606
1607 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1608 of VARRAY.
1609 * reload1.c (reg_equiv_memory_loc_varray): Rename to
1610 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
1611 (init_reload, reload): Use VEC instead of VARRAY.
1612 * reload.h: Update the prototype for
1613 reg_equiv_memory_loc_varray.
1614
68ba34f3 16152006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
e8366202 1616 Eric Botcazou <ebotcazou@libertysurf.fr>
68ba34f3
AS
1617
1618 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1619 register save area.
1620
39b1ec97
UB
16212005-04-13 Uros Bizjak <uros@kss-loka.si>
1622
1623 PR middle-end/27134
1624 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1625 to expand fallback builtin function call.
1626
880864cf
AM
16272006-04-14 Alan Modra <amodra@bigpond.net.au>
1628
1629 PR middle-end/27095
1630 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1631 and emit libcall here in case the builtin fails.
1632 (expand_builtin_strcmp): Always emit the libcall here on failure.
1633
1935e8a8
KH
16342006-04-14 Kazu Hirata <kazu@codesourcery.com>
1635
1636 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1637 * flow.c (reg_n_info): Change the type to
1638 VEC(reg_info_p,heap) *.
1639 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1640 instead of VARRAY.
1641 * regs.h (reg_info_p): New.
1642 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1643 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1644 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1645 instead of VARRAY.
1646
6f8dd94b
EB
16472006-04-13 Eric Botcazou <ebotcazou@adacore.com>
1648
1649 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1650 defaulting to 100.
1651 * params.h (MAX_SCHED_READY_INSNS): New macro.
1652 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1653 past MAX_SCHED_READY_INSNS during the first scheduling pass.
1654 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1655 the ready list for 1 cycle during the first scheduling pass.
1656 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1657
777f7f9a
RH
16582006-04-13 Richard Henderson <rth@redhat.com>
1659
bed575d5 1660 PR libgomp/26651
777f7f9a
RH
1661 * gimple-low.c (lower_omp_directive): Remove dead code.
1662 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1663 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1664 * omp-low.c (struct omp_region): Move to tree-flow.h.
1665 (root_omp_region): Export.
1666 (omp_regions, lookup_omp_region): Remove.
1667 (determine_parallel_type): Update for struct omp_region changes.
1668 (dump_omp_region): Dump regions with block numbers.
1669 (new_omp_region): Take type and block instead of stmt; malloc
1670 instead of ggc.
1671 (free_omp_region_1, free_omp_regions): New.
1672 (expand_parallel_call): Take entry_stmt as argument; update for
1673 changes to omp_region.
1674 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1675 (remove_exit_barriers): New.
1676 (expand_omp_parallel): Update for struct omp_region changes.
1677 (expand_omp_synch): Likewise.
1678 (expand_omp): Likewise.
1679 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1680 (expand_omp_for_static_chunk): Likewise.
1681 (expand_omp_for): Likewise.
1682 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1683 (expand_omp_sections): Similarly, with GOMP_sections_end.
1684 (expand_omp_single): New.
1685 (build_omp_regions_1): Update for OMP_CONTINUE.
1686 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1687 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1688 OMP_SECTIONS_SECTIONS.
1689 (lower_omp_single_simple): Don't emit barrier here.
1690 (lower_omp_single_copy): Likewise.
1691 (lower_omp_single): Fix bindings, and lower to straightline now.
1692 (lower_omp_master, lower_omp_ordered): Likewise.
1693 (lower_omp_critical): Likewise.
1694 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
1695 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1696 omp edges, free it afterward.
1697 (make_omp_sections_edges): Remove.
1698 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1699 (move_stmt_r): Handle OMP_CONTINUE.
7a0b46c9 1700 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
777f7f9a
RH
1701 statement pointers to basic blocks. Add type member.
1702 (root_omp_region, new_omp_region, free_omp_regions): Declare.
1703 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1704 * tree-inline.c (estimate_num_insns_1): Likewise.
1705 * tree-pretty-print.c (dump_generic_node): Likewise.
1706 * tree-ssa-operands.c (get_expr_operands): Likewise.
1707 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1708 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1709 (OMP_CONTINUE): New.
1710 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1711 (OMP_SECTIONS_SECTIONS): Remove.
1712 (OMP_SECTION_LAST): New.
1713 (OMP_RETURN_NOWAIT): New.
1714
15b1c12a
RS
17152006-04-13 Roger Sayle <roger@eyesopen.com>
1716
1717 * fold-const.c (native_encode_vector, native_interpret_real):
1718 Correct obvious mistakes in the previous check-in.
1719
78bf6e2f
RS
17202006-04-13 Roger Sayle <roger@eyesopen.com>
1721
1722 * fold-const.c (native_encode_expr): New function to encode
1723 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1724 or VECTOR_CST into a specified buffer.
1725 (native_encode_int): New function.
1726 (native_encode_real): New function.
1727 (native_encode_complex): New function.
1728 (native_encode_vector): New function.
1729 (native_interpret_expr): Inverse of native_encode_expr to convert
1730 a target representation into an INTEGER_CST, REAL_CST etc...
1731 (native_interpret_int): New function.
1732 (native_interpret_real): New function.
1733 (native_interpret_complex): New function.
1734 (native_interpret_vector): New function.
1735 (fold_view_convert_expr): New function to constant fold/evaluate
1736 a VIEW_CONVERT_EXPR of a suitable constant expression.
1737 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1738 Change call of build1 to fold_build1 when constructing a
1739 VIEW_CONVERT_EXPR.
1740
76492753
PB
17412006-04-13 Paolo Bonzini <bonzini@gnu.org>
1742 Ulrich Weigand <uweigand@de.ibm.com>
1743
1744 PR target/27006
1745 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1746 to be even.
1747
7b5d92b2
AM
17482006-04-13 Alan Modra <amodra@bigpond.net.au>
1749
1750 PR target/26459
1751 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1752 optimize to lo_sum for DFmode if !TARGET_FPRS.
1753
d96f49bf
KH
17542006-04-12 Kazu Hirata <kazu@codesourcery.com>
1755
1756 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1757 delete_alias_info, compute_flow_sensitive_aliasing,
1758 group_aliases): Use VEC instead of VARRAY.
1759 * tree-ssa-structalias.c (update_alias_info): Likewise.
1760 * tree-ssa-structalias.h (alias_info): Change the type of
1761 processed_ptrs to VEC(tree,heap) *.
1762
3f1d3526
R
17632006-04-12 J"orn Rennecke <joern.rennecke@st.com>
1764
1765 PR target/27060
e8366202
MS
1766 * config/sh/lib1funcs.h: New file, broken out of:
1767 * config/sh/lib1funcs.asm.
1768 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
3f1d3526
R
1769 New macros.
1770 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
e8366202 1771 * config/sh/lib1funcs-Os-4-200.asm: New file.
3f1d3526
R
1772 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1773 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1774 (EXTRA_MULTILIB_PARTS): Include it.
1775 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1776 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1777 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1778 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1779 TARGET_SH2.
1780
dacb336e
KH
17812006-04-12 Kazu Hirata <kazu@codesourcery.com>
1782
1783 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1784 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1785 tpa_compact, root_var_init, type_var_init): Use VEC instead of
1786 VARRAY.
1787 * tree-ssa-live.h: Include vecprim.h.
1788 (tree_partition_associator_d): Change the type of
1789 first_partition to VEC(int,heap) *.
1790 (tpa_first_partition): Use VEC instead of VARRAY.
1791
597d6703
KH
1792 * Makefile.in (GTFILES): Move functions.h after tree.h.
1793 * function.c (reset_block_changes, record_block_change,
1794 check_block_change, free_block_changes): Use VEC instead of
1795 VARRAY.
1796 * function.h (function): Change the type of
1797 ib_boundaries_block to VEC(tree,gc) *.
1798 * tree-inline.c (copy_cfg_body): Initialize
1799 ib_boundaries_block to NULL instead of (varray_type) 0.
1800
7488662d
RS
18012006-04-12 Roger Sayle <roger@eyesopen.com>
1802
1803 * expr.c (emit_group_store): Correct operand order in call to
1804 subreg_lowpart_offset. Always create paradoxical SUBREGs with
1805 a SUBREG_BYTE of zero.
1806
76783bc2
RG
18072006-04-12 Richard Guenther <rguenther@suse.de>
1808
1809 * profile.c (compute_branch_probabilities): Remove code
1810 encapsulated in !ir_type (), which are remanents of the
1811 removed RTL profiling code.
1812 * rtl-profile.c: Remove.
1813
79773478
AM
18142006-04-12 Alan Modra <amodra@bigpond.net.au>
1815
1816 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1817 magic NULL_RTX comment.
1818 (function_arg): Store entire fp arg to mem if any part should go
1819 on stack.
1820 (rs6000_arg_partial_bytes): Adjust for above change.
1821
10934c3b
RS
18222006-04-11 Roger Sayle <roger@eyesopen.com>
1823
1824 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1825 if it hasn't been initialized by dwarf2out_init.
1826
58be56ea
JDA
18272006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
1828
1829 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1830 symbolic constants in branch patterns.
1831
f6c4ed08
RS
18322006-04-11 Roger Sayle <roger@eyesopen.com>
1833
1834 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1835
205eb6e7
RS
18362006-04-11 Richard Sandiford <richard@codesourcery.com>
1837
1838 PR rtl-optimization/27073
1839 * gcse.c (try_replace_reg): Revert last change. Continue to search
1840 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1841 on the former.
1842
ef6843ed
EB
18432006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1844
1845 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1846 aggregate types other than record and union types.
1847 (function_arg): Likewise.
1848 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1849 small arrays.
1850 (function_value): In 64-bit mode, return objects that require it
1851 in FP registers.
1852
b4426e0a
RS
18532006-04-11 Roger Sayle <roger@eyesopen.com>
1854
1855 * dwarf2out.c (premark_used_types): Remove problematic prototype.
1856
8beb0d9e
JJ
18572006-04-11 Jakub Jelinek <jakub@redhat.com>
1858
1859 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1860
cf282d0a
JL
18612006-04-03 Jeff Law <law@redhat.com>
1862
1863 PR/27087
1864 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1865 alias information too.
1866
b3b2cbc4
MF
18672006-04-10 Mike Frysinger <vapier@gentoo.org>
1868
a1d1988f 1869 * Makefile.in (gcc-cross): Add $(exeext) to target name.
b3b2cbc4 1870
33c9159e
AH
18712006-04-10 Aldy Hernandez <aldyh@redhat.com>
1872
1873 PR/21391
1874 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1875 (premark_used_types_helper): New.
1876 (premark_used_types): New.
1877 (gen_subprogram_die): Call premark_used_types.
1878 (prune_unused_types_walk): Do not prune perennial dies.
1879 * function.c (used_types_insert): New.
1880 * function.h (struct function): Add used_types_hash field.
1881 (used_types_insert): Add prototype.
1882 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1883 * c-parser.c (c_parser_cast_expression): Save casted types in used
1884 types hash table.
1885
ab9260ac
MM
18862006-04-11 Mark Mitchell <mark@codesourcery.com>
1887
1888 PR target/26459
1889 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1890 rs6000_explicit_options.float_gprs.
1891
acef130f
RS
18922006-04-10 Roger Sayle <roger@eyesopen.com>
1893
1894 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1895 from ix86_expand_vector_init_low_nonzero. Take an additional
1896 one_var argument indicating which element is non-zero. Support
1897 one_var != 0 for V4SFmode and V4SImode by permuting the result.
1898 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1899 with one_var instead of ix86_expand_vector_init_low_nonzero.
1900
e3df376d
KH
19012006-04-10 Kazu Hirata <kazu@codesourcery.com>
1902
1903 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1904 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1905 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1906 build/genextract.o): Depend on vecprim.h.
1907 * cfglayout.c, df-problems.c, function.c, genextract.c,
1908 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1909 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1910 vecprim.h.
1911 * vecprim.h: New.
1912
1a27722f
GK
19132006-04-10 Geoffrey Keating <geoffk@apple.com>
1914
1915 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1916 Declare VECs of this type.
1917 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1918 (remove_children): Delete.
1919 (add_dwarf_attr): Use VEC routines.
1920 (add_AT_flag): Update for changes to add_dwarf_attr.
1921 (add_AT_int): Likewise.
1922 (add_AT_unsigned): Likewise.
1923 (add_AT_long_long): Likewise.
1924 (add_AT_vec): Likewise.
1925 (add_AT_string): Likewise.
1926 (add_AT_die_ref): Likewise.
1927 (add_AT_fde_ref): Likewise.
1928 (add_AT_loc): Likewise.
1929 (add_AT_loc_list): Likewise.
1930 (add_AT_addr): Likewise.
1931 (add_AT_lbl_id): Likewise.
1932 (add_AT_lineptr): Likewise.
1933 (add_AT_macptr): Likewise.
1934 (add_AT_offset): Likewise.
1935 (add_AT_range_list): Likewise.
1936 (get_AT): Use VEC_iterate.
1937 (remove_AT): Use VEC_ordered_remove.
1938 (free_die): Fold remove_children into here; have it use VEC_iterate.
1939 (print_die): Use VEC_iterate on attrs.
1940 (reverse_die_lists): Don't reverse attr lists.
1941 (die_checksum): Use VEC_iterate on attrs.
1942 (same_die_p): Likewise.
1943 (output_location_lists): Likewise.
1944 (build_abbrev_table): Likewise.
1945 (size_of_die): Likewise.
1946 (unmark_all_dies): Likewise.
1947 (output_abbrev_section): Likewise.
1948 (output_die): Likewise.
1949 (prune_unused_types_walk_attribs): Likewise.
1950
1da1ce3f
EB
19512006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1952
1f3d30ed 1953 * doc/install.texi (*-*-solaris2*): Point to the configure page.
1da1ce3f 1954
ef85ac9a
JJ
19552006-04-10 Jakub Jelinek <jakub@redhat.com>
1956
1957 PR debug/27057
1958 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1959
cf26aa89
RS
19602006-04-09 Roger Sayle <roger@eyesopen.com>
1961
1962 * expr.c (store_constructor): Don't bother clearing target if
1963 we're about to assign a vector to it using vec_init_optab.
1964
ef2bb311 19652006-04-10 Daniel Berlin <dberlin@dberlin.org>
7a0b46c9 1966
ef2bb311
DB
1967 * tree-ssa-alias.c (lhs_may_store_to): New function.
1968 (recalculate_used_alone): Handle LHS of calls.
1969
8b89a26a
JDA
19702006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1971
1972 PR target/27034
1973 PR target/26508
1974 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1975 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
1976 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
1977 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1978 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1979 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1980 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1981 stubs. Add ".align 8" directives before all ".dword" directives.
1982 (GTHREAD_USE_WEAK): Revise comment.
1983 (TARGET_ATTRIBUTE_WEAK): Define.
1984 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1985 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1986 * stublib.c: New file.
16d74a3c
JDA
1987
1988 PR target/26743
1989 PR target/11254
1990 PR target/10274
1991 * pa.md (cbranch patterns): Revise arguments used in calls to
1992 output_cbranch, output_bb and output_bvd. Add long branch length
1993 attributes.
1994 (fbranch patterns): Handle long branches.
1995 (jump): Revise length check. Revise arguments for output_lbranch call.
1996 Add long branch length attributes.
1997 (decrement_and_branch_until_zero): Add long branch length attributes.
1998 (output_movb, output_parallel_addb and output_parallel_movb patterns):
1999 Likewise. Revise arguments for output_parallel_addb and
2000 output_parallel_movb calls.
2001 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
2002 output_parallel_movb and output_parallel_addb): Update prototypes.
2003 * pa.c (output_cbranch): Revise arguments. Correct handling of
2004 nullification in long branches.
2005 (output_lbranch): Add new argument to control extraction of delay
2006 instruction.
2007 (output_bb): Handle long branches.
2008 (output_bvb, output_dbra, output_movb, output_parallel_movb,
2009 output_parallel_addb): Likewise.
2010
c3a50ca3
RS
20112006-04-09 Richard Sandiford <richard@codesourcery.com>
2012
2013 PR rtl-optimization/27073
2014 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
2015 not REG_EQUIVs.
2016
9ccfe0cd
DB
20172006-04-08 Daniel Berlin <dberlin@dberlin.org>
2018
2019 * tree.h (tree_memory_tag): Add old_used_alone.
2020 (SMT_OLD_USED_ALONE): New macro.
2021 * tree-ssa-alias.c (recalculate_used_alone): Stop
2022 marking things for renaming unnecessarily.
2023
917f1b7e
KH
20242006-04-08 Kazu Hirata <kazu@codesourcery.com>
2025
2026 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
2027 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
2028 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
2029 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
2030 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
2031 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
2032 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
2033 spelling convensions.
2034 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
2035 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
2036 typos. Follow spelling conventions.
2037
9d746d5e
DD
20382006-04-07 DJ Delorie <dj@redhat.com>
2039
2040 * config/m32c/m32c.c (m32c_function_arg): Structures are always
2041 passed on the stack.
2042 (m32c_init_cumulative_args): When a function returns a structure,
2043 always pass the pointer to that return area on the stack.
2044 (m32c_function_arg_advance): Don't increment the parameter number
2045 if we're processing the returned structure pointer.
2046 (pushm_info): Reverse order of registers.
2047
ff5e9a94
SP
20482006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
2049
2050 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
2051 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
2052 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
7a0b46c9 2053 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
ff5e9a94
SP
2054 build_int_cst_type.
2055 * tree-chrec.c (chrec_fold_multiply_poly_poly,
2056 chrec_fold_multiply): Same.
2057 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
2058 force_expr_to_var_cost): Same.
2059 * tree-mudflap.c (mf_xform_derefs_1): Same.
2060 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
2061
f6fe3a22
DE
20622006-04-07 David Edelsohn <edelsohn@gnu.org>
2063
2064 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
2065 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
2066 insn.
28e6f134
JH
2067
20682006-04-07 Jan Hubicka <jh@suse.cz>
2069
2070 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
2071
fcfa143a
RB
20722006-04-07 Richard Guenther <rguenther@suse.de>
2073
2074 PR tree-optimization/26135
2075 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
2076 loads for store copy-prop.
2077 (copy_prop_visit_stmt): Likewise.
2078
20792006-04-05 Robert Millan <robertmh@gnu.org>
8224ee20 2080
e8366202 2081 * config/i386/linux.h: Add a comment to mark macros that are
8224ee20 2082 being overriden in config/k*bsd-gnu.h.
e8366202 2083 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
8224ee20 2084 DYNAMIC_LINKER.
e8366202 2085 * config/knetbsd-gnu.h: Ditto.
8224ee20 2086
1f651229
JH
20872006-04-06 Jan Hubicka <jh@suse.cz>
2088
2089 PR profile/20815
2090 PR profile/26399
2091 * coverage.c (coverage_checksum_string): Reorganize loop to not read
2092 after buffer.
2093
3425c35f
MS
20942006-04-06 Mike Stump <mrs@apple.com>
2095
2096 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
2097 for HAVE_nonlocal_goto to be consistent.
2098 (expand_builtin_nonlocal_goto): Likewise.
2099 (expand_builtin_strcmp): Use #ifdef instead of #if
2100 for HAVE_cmpstrnsi to be consistent.
2101
0f681872
DD
21022006-04-05 DJ Delorie <dj@redhat.com>
2103
2104 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
2105 vs m32c.
2106
300adfc2
BS
21072006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
2108
2109 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
2110 got-relative addressing for anything but SImode.
2111
dcef6aba
BS
2112 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
2113 even if the calling function doesn't modify them.
2114
cf51dca2
RG
21152006-04-05 Richard Guenther <rguenther@suse.de>
2116
2117 PR tree-optimization/26919
2118 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
2119 to cgraph_estimate_size_after_inlining.
2120
e17e34d8
AM
21212006-04-05 Alan Modra <amodra@bigpond.net.au>
2122
2123 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
2124
42d375ed
SP
21252006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
2126
2127 PR tree-optimization/26996
2128 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
2129 VECTOR_TYPE variables.
2130
6eee9893
RG
21312006-04-05 Richard Guenther <rguenther@suse.de>
2132
2133 PR tree-optimization/26763
2134 * fold-const.c (fold_comparison): Move folding of
2135 PTR + CST CMP PTR + CST ...
2136 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
2137
80521187
GP
21382006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
2139
2140 * doc/install.texi (Prerequisites): Refine some wording on
2141 bootstrapping and ksh.
2142 Move the version numbers of DejaGnu here from the testing section
2143 and fix casing of names.
2144 Fix markup and clarify wording for autogen requirements.
2145 Refer to GCJ instead of just java.
2146 Refer to SVN instead of CVS.
2147 Describe diffutils as useful instead of necessary.
2148 (Downloading the source): Refer to SVN instead of CVS.
2149 Adjust a link to our web site accordingly.
2150 (Configuration): Fix casing of Bison.
7a0b46c9 2151 (Building): Refer to SVN instead of CVS.
80521187
GP
2152 Fix a sentence on the use of Bison and remove duplicate (and
2153 incorrect) version number of Bison requirement.
2154 Remove one redundant list of packages needed for building.
2155 (Specific): Avoid reference to CVS.
2156
77ccdfed
EC
21572006-04-04 Eric Christopher <echristo@apple.com>
2158
2159 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
2160 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
2161 (rs6000_handle_struct_attribute): New.
2162 (rs6000_ms_bitfield_layout_p): Ditto.
2163
b3c2c547
GK
21642006-04-04 Geoffrey Keating <geoffk@apple.com>
2165
2166 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
2167 NULL for dso parameter to atexit_common.
2168
4b1c1f6f
EC
21692006-04-04 Eric Christopher <echristo@apple.com>
2170
2171 * config/i386/i386.c (machopic_output_stub): Output \t
2172 between instructions and operands.
2173
547b216d
DE
21742006-04-04 David Edelsohn <edelsohn@gnu.org>
2175
2176 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
2177 satisfies_constraint_[IL] to explicit tests on value.
2178
dc61cc6b
SP
21792006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
2180
2181 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2182 set_nb_iterations_in_loop): Use build_int_cst instead of
2183 build_int_cst_type.
2184 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
2185 build_int_cst instead of convert.
2186
2225b57c
CD
21872006-04-04 Carlos O'Donell <carlos@codesourcery.com>
2188
2189 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
2190 new value 2 for incoming.
2191 * function.c (expand_function_start): Call struct_value_rtx
2192 with incoming as 2.
2193 * config/sparc/sparc.md: Comment updated_return.
2194 * config/sparc/sparc.opt: Add -mstd-struct-return option.
2195 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
2196 struct return if sparc_std_struct_return and incoming is 2.
2197 (print_operand): Do not adjust return if
2198 sparc_std_struct_return.
2199
3967bc2d
RS
22002006-04-04 Roger Sayle <roger@eyesopen.com>
2201
2202 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
2203 convert in the middle-end.
2204 * expr.c (store_expr, store_constructor, get_inner_reference,
2205 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
2206 Likewise.
2207 * tree.c (build_range_type): Likewise.
2208
b52be2c8
TT
22092006-04-04 Tom Tromey <tromey@redhat.com>
2210
2211 * doc/install.texi (Prerequisites): Mention jar.
2212
d9d93d96
DB
22132006-04-04 Daniel Berlin <dberlin@dberlin.org>
2214
2215 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
2216 subsection.
2217
8160ab35
MK
22182006-04-04 Matthias Klose <doko@debian.org>
2219
2220 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
9edaf51e
MK
2221 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
2222 strings.
8160ab35 2223
a7d37464
GK
22242006-04-03 Geoffrey Keating <geoffk@apple.com>
2225
4b1c1f6f 2226 * doc/extend.texi (Function Attributes): Rewrite visibility
46bdbc00
GK
2227 attribute documentation.
2228 * doc/invoke.texi (C++ Dialect Options): Rewrite
2229 -fvisibility-inlines-hidden documentation to describe something
2230 entirely different, although in practise compatible.
2231 (Code Gen Options): Warn about system headers in -fvisibiltity=
2232 documentation.
2233
a7d37464
GK
2234 * doc/extend.texi (Other Builtins): Document that
2235 __builtin_nan is a compile-time constant only when its argument
2236 is valid.
2237
2332d585
AN
22382006-04-03 Adam Nemet <anemet@caviumnetworks.com>
2239
2240 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
2241 trying to remove TRUNCATE check if all bits outside the new mode
2242 are identical to the sign bit.
2243
cbc75e62
JL
22442006-04-03 Jeff Law <law@redhat.com>
2245
2246 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
2247 and operand scanning in some common cases.
2248
4735cca6 22492006-04-03 Paolo Bonzini <bonzini@gnu.org>
b5c82fa1
PB
2250 Dale Johannesen <dalej@apple.com>
2251
2252 PR target/19653
2253 * regclass.c (struct reg_pref): Update documentation.
2254 (regclass): Set prefclass to NO_REGS if memory is the best option.
2255 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2256 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
2257 into account. For non-registers, equate an empty preferred
2258 reload class to a `!' in the constraint; move the if clause to
2259 do so after those that reject the insn.
2260 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
2261 return NO_REGS.
2262 (find_dummy_reload): Likewise.
2263 * doc/tm.texi (Register Classes): Document what it means
2264 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
2265 * config/i386/i386.c (ix86_preferred_reload_class): Force
2266 using SSE registers (and return NO_REGS for floating-point
2267 constants) if math is done with SSE.
2268 (ix86_preferred_output_reload_class): New.
2269 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
2270 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
2271 * config/i386/i386.md: Remove # register preferences.
2272
16a2acea
SP
22732006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2274
2275 PR bootstrap/26992
2276 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2277 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
2278 the type of nb_iter.
2279 (instantiate_parameters_1): Convert the operands before calling
2280 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
2281 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
2282
b6f65e3c
RS
22832006-04-02 Roger Sayle <roger@eyesopen.com>
2284
2285 * builtins.c (dummy_object): Use build_int_cst instead of convert.
2286 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
2287 instead of convert.
2288 * dojump.c (do_jump): Likewise.
2289 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
2290 * gimplify.c (gimple_boolify, gimplify_init_constructor,
2291 gimplify_boolean_expr): Likewise.
2292 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2293 * varasm.c (array_size_for_constructor): Likewise.
2294 * tree-object-size.c (compute_object_offset): Likewise.
2295
9fd20553
RS
22962006-04-02 Roger Sayle <roger@eyesopen.com>
2297
2298 PR middle-end/26977
2299 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
2300 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
2301
ace23abf
SP
23022006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2303
2304 PR tree-optimization/26939
2305 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
2306
e2157b49
SP
23072006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2308
2309 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
4b1c1f6f 2310 at_stmt. Convert the type of operands before calling
e2157b49
SP
2311 build_polynomial_chrec.
2312 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
2313 add_to_evolution_1.
2314 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
4b1c1f6f 2315 (instantiate_parameters_1): Convert the type of operands before calling
e2157b49
SP
2316 build_polynomial_chrec.
2317 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2318 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
2319 reset_evolution_in_loop): Insert asserts to check the types of the
2320 operands.
2321 (chrec_type): Moved...
2322 (eq_evolutions_p): Use operand_equal_p.
2323 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
2324 the types of the operands.
2325 (chrec_type): ...here.
2326 * tree-data-ref.c (create_data_ref): Convert the operands before
2327 calling chrec_replace_initial_condition.
2328 (same_access_functions, analyze_subscript_affine_affine,
2329 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
2330 (compute_subscript_distance, analyze_ziv_subscript,
2331 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
2332 analyze_miv_subscript): Convert the operands before calling
2333 chrec_fold_minus or chrec_fold_plus.
2334
a84481aa
SP
23352006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
2336
2337 * tree-data-ref.c (compute_all_dependences): Use a pointer to
2338 the dependence_relations vector.
2339 (compute_data_dependences_for_loop): Adjust call to
2340 compute_all_dependences.
2341
d568d1a8
RS
23422006-04-01 Roger Sayle <roger@eyesopen.com>
2343 Richard Henderson <rth@redhat.com>
2344
2345 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
2346 gimple_boolify on the condition before calling gimplify_expr.
2347
b7974b3a
BW
23482006-03-31 Bob Wilson <bob.wilson@acm.org>
2349
2350 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
2351 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
2352 the frame size. Update to use the new macros.
2353 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
2354 * config/xtensa/ieee754-df.S: Likewise.
2355
23562006-03-31 Richard Henderson <rth@redhat.com>
56e84019
RH
2357
2358 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
2359 (make_edges): ... here. Control fallthru creation with a local
2360 variable. Do not play with fake edges.
2361 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
2362 (make_goto_expr_edges): Don't play with fake edges. Make for_call
2363 a boolean.
2364
0c33762a
JM
23652006-04-01 Joseph S. Myers <joseph@codesourcery.com>
2366
2367 * dwarf2.h (DW64_CIE_ID): Define.
2368 * dwarf2out.c (DWARF_CIE_ID): Define.
2369 (output_call_frame_info): Output 0xffffffff before standard 8-byte
2370 length header. Use DWARF_CIE_ID.
2371 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
2372 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
2373
b890ea50
KK
23742006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
2375
2376 * config/sh/linux-atomic.asm: New file.
2377 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
2378
16659fcf
DD
23792006-03-31 DJ Delorie <dj@redhat.com>
2380
2381 * config/m32c/cond.md: Set condition flags properly throughout.
2382 * config/m32c/minmax.md: Likewise.
2383 * config/m32c/prologue.md: Likewise.
2384 * config/m32c/bitops.md: Likewise.
2385 * config/m32c/muldiv.md: Likewise.
2386 * config/m32c/mov.md: Likewise.
2387 * config/m32c/addsub.md: Likewise.
2388 * config/m32c/m32c.md: Likewise.
2389 * config/m32c/jump.md: Likewise.
2390 * config/m32c/shift.md: Likewise.
2391
2392 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
2393 conditionally output the pattern for this.
2394 * config/m32c/m32c.c (flags_needed_for_conditional): New.
2395 (m32c_compare_redundant): New.
2396 (m32c_output_compare): New.
2397 * config/m32c/m32c-protos.h (m32c_output_compare): New.
2398
2399 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
2400 dest, not src. Allow other 4-byte modes.
2401
fc262682
DC
24022006-03-30 Denis Chertykov <denisc@overta.ru>
2403
2404 * doc/md.texi: Refer to avr/constraints.md instead of
2405 avr/avr.h.
2406
5650dfbd
RS
24072006-03-30 Roger Sayle <roger@eyesopen.com>
2408
2409 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
2410 signed vs. unsigned comparison failures on some hosts.
2411
d3603e8c
AM
24122006-03-31 Alan Modra <amodra@bigpond.net.au>
2413
ca0e79d9
AM
2414 PR target/26459
2415 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
2416 change to FLOAT_REGS.
2417
d3603e8c
AM
2418 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
2419 (rs6000_override_options): Use it.
2420 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
2421 only for -mabi=spe/no-spe and -mabi=altivec.
2422
24cec83c
GK
24232006-03-30 Geoffrey Keating <geoffk@apple.com>
2424
2425 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
2426 !Zdynamiclib.
2427
ad3a7ce3
CD
24282006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2429
2430 * Makefile.in: Rename docdir to gcc_docdir.
2431
79edfde8
RS
24322006-03-30 Roger Sayle <roger@eyesopen.com>
2433
2434 PR target/17959
e8366202 2435 * expr.c (emit_group_store): Optimize group stores into a pseudo
79edfde8
RS
2436 register by using a paradoxical subreg to initialize the destination
2437 if the first or last member of the group specifies a "low part".
2438
c7ec5472
MK
24392006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2440
2441 PR target/26734
2442 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2443 * target.h (struct gcc_target.speculate_insn): Change type of the
2444 second parameter to 'int'.
2445 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
2446 the second operand of the DEPS_LIST.
2447 (copy_DEPS_LIST_list): Update reference to the second operand of the
2448 DEPS_LIST.
2449 * rtl.h (alloc_DEPS_LIST): Update signature.
2450 * sched-int.h (ds_t): Change typedef to 'int'.
2451 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2452
682b6a9e
MK
24532006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2454
2455 * haifa-sched.c (try_ready): Change condition to restore
2456 non-speculative pattern of the instruction.
2457 (process_insn_depend_be_in_spec): Code to keep probability of the
2458 speculative dependence non-decreasing.
2459
144f8315
JZ
24602006-03-30 Jie Zhang <jie.zhang@analog.com>
2461
2462 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2463 (single_move_for_movmem): ... this. Also change all uses.
2464 (bfin_expand_strmov): Renamed to...
2465 (bfin_expand_movmem): ... this. Also change all uses.
2466 * config/bfin/bfin.md (movstrsi): Renamed to...
2467 (movstrsi): ...this.
2468
ae25dbda
PB
24692006-03-30 Paolo Bonzini <bonzini@gnu.org>
2470
2471 PR tree-optimization/26830
2472
2473 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2474 (copy_prop_visit_stmt): Remove write-only variable ann.
2475 (init_copy_prop): Check variable loop depth here. Do not simulate
2476 memory-tag and virtual operand PHIs except for store copy prop.
2477
7d3a3b01
RG
24782006-03-30 Richard Guenther <rguenther@suse.de>
2479
2480 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2481 variants with double arguments.
2482
10a27391
DE
24832006-03-29 David Edelsohn <edelsohn@gnu.org>
2484
2485 * genpreds.c (write_tm_constrs_h): Delete variable p.
f8569394
DE
2486 * genconditions.c (write_header): Add tm-constrs.h to included
2487 headers.
f160357f 2488 * genpeep.c (main): Add toplev.h to included headers.
92cf85e9 2489 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
c13a761d 2490 (build/genpeep.o): Add toplev.h dependency.
40377a6d 2491 * config/rs6000/constraints.md: Add "W" constraint.
10a27391 2492
a6a12bb9
RS
24932006-03-29 Roger Sayle <roger@eyesopen.com>
2494
2495 * stor-layout.c (mode_for_size_tree): Remove restiction on type
2496 sizes by correctly testing whether the size fits a host integer.
2497 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2498 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2499 SImode range for the default sizetype and bitsizetype.
2500
0a931ce5
RS
25012006-03-29 Roger Sayle <roger@eyesopen.com>
2502
2503 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2504 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
2505 quickly if the argument is already of the correct type.
2506 Call fold_build1 instead of build1. Tidy up blank lines.
2507
279bb624
DE
25082006-03-29 David Edelsohn <edelsohn@gnu.org>
2509
2510 * genemit.c (main): Add tm-constrs.h to included headers.
2511 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2512 * genpeep.c (main): Add tm-constrs.h to included headers.
2513 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2514 (write_tm_constrs_h): this and write complete file.
2515 (write_tm_preds_h): Do not emit satisfies_constraint fns.
2516 (write_insn_preds_c): Add tm-constrs.h to included headers.
2517 (gen_constrs): New variable.
2518 (parse_option): Parse "-c".
2519 (main): Invoke write_tm_constrs_h.
2520 * genrecog.c (write_header): Add tm-constrs.h to included headers.
2521 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2522 (object_out_file): Add tm-constrs.h dependency.
2523 (insn-emit.o): Same.
2524 (insn-output.o): Same.
2525 (insn-peep.o): Same.
2526 (insn-preds.o): Same.
2527 (insn-recog.o): Same.
2528 (tm-constsr.h): New target.
2529 (s-constrs-h): New target.
2530
2531 * config/rs6000/constraints.md: New file.
2532 * config/rs6000/rs6000.c: Include tm-constrs.h.
2533 (num_insn_constant_wide): Convert to satisfies_constraint.
2534 (rs6000_rtx_costs): Convert to satisfies_constraint.
2535 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2536 (CONST_OK_FOR_LETTER_P): Delete.
2537 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2538 (EXTRA_CONSTRAINT): Delete.
2539 (EXTRA_MEMORY_CONSTRAINT): Delete.
2540 (EXTRA_ADDRESS_CONSTRAINT): Delete.
2541 * config/rs6000/predicates.md: Convert to satisfies_constraint.
2542 * config/rs6000/rs6000.md: Include constraints.md. Convert to
2543 satisfies_constraint.
2544
2545 * config/i386/i386.c: Include tm-constrs.h.
2546
e14b10df
SP
25472006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2548
2549 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2550 * tree-data-ref.c (find_data_references_in_loop,
2551 compute_data_dependences_for_loop): Use pointers to VEC.
2552 (analyze_all_data_dependences): Adjust calls.
2553 * tree-data-ref.h (find_data_references_in_loop,
2554 compute_data_dependences_for_loop): Adjust declarations.
2555 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2556 compute_data_dependences_for_loop.
2557
221b2a64
PB
25582006-03-29 Paul Brook <paul@codesourcery.com>
2559
2560 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2561 (movdf_vfp): Ditto.
2562
d31db22f
SP
25632006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
2564
2565 PR tree-optimization/26859
2566 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2567 division by zero.
2568 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2569 for the step after fold_convert.
2570
67f07489
PB
25712006-03-29 Paul Brook <paul@codesourcery.com>
2572
2573 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2574 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2575
c2a64439
PB
25762006-03-29 Paul Brook <paul@codesourcery.com>
2577
2578 PR middle-end/23623
2579 * targhooks.c (default_narrow_bitfield): New fuction.
2580 * targhooks.h (default_narrow_bitfield): add prototype.
2581 * target.h (gcc_target): Add narrow_volatile_bitfield.
2582 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2583 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2584 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2585 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2586
4dc19cc0
AK
25872006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
2588
4b1c1f6f 2589 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
4dc19cc0
AK
2590 tmake_file.
2591 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2592 (NR_C_MODES): Add TDmode, DDmode and SDmode.
2593 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2594 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2595 (s390_function_arg_float): Allow SDmode and DDmode values to be
2596 passed in floating point registers.
4b1c1f6f 2597 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
4dc19cc0
AK
2598 check with SCALAR_FLOAT_MODE_P.
2599 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2600
f08ac361
ZD
26012006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2602
2603 PR tree-optimization/25985
2604 * tree-ssa-loop-niter.c (number_of_iterations_le,
2605 number_of_iterations_ne): Make comments more precise.
2606 (number_of_iterations_cond): Add only_exit argument. Use the
2607 fact that signed variables do not overflow only when only_exit
2608 is true.
2609 (loop_only_exit_p): New.
2610 (number_of_iterations_exit): Pass result of loop_only_exit_p to
2611 number_of_iterations_cond.
2612
dd79d394
ZD
26132006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
2614
2615 PR tree-optimization/26643
2616 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2617 bit_field_refs.
2618
95ec2af0
KK
26192006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
2620
2621 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2622 (divsi3_i4_int): Likewise.
2623
e8366202 26242006-03-28 Roger Sayle <roger@eyesopen.com>
5ac60669
RS
2625
2626 * expr.c (emit_group_store): Only create a new pseudo reg if the
2627 quantity it needs to hold isn't already a suitable pseudo.
2628
b6313dcf
JL
26292006-03-28 Jeff Law <law@redhat.com>
2630
2631 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2632 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2633
dd2c62dc
RS
26342006-03-28 Roger Sayle <roger@eyesopen.com>
2635
2636 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2637 the equivalent ~X & Y, and the symmetry related transformations.
4b1c1f6f 2638 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
dd2c62dc
RS
2639 ~X & Y, and symmetry related transforms.
2640
3cc82eea
MK
26412006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2642
2643 Revert my 2006-03-27 patches.
2644
e8206491
RS
26452006-03-28 Roger Sayle <roger@eyesopen.com>
2646
2647 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2648 ~(T1)X, when T1 and T2 are integer types of the same precision
2649 and (T2)X isn't an extension.
2650
72922229
JL
26512006-03-28 Jeff Law <law@redhat.com>
2652
2653 PR tree-optimization/26796
2654 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2655 need EH edge cleanups rather than purging them immediately.
2656 (eliminate_degenerate_phis): Handle queued EH cleanups.
2657
c245c134
DB
26582006-03-28 Daniel Berlin <dberlin@dberlin.org>
2659
2660 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2661 from parent_var.
2662
7f166b0a
RS
26632006-03-27 Roger Sayle <roger@eyesopen.com>
2664
2665 PR middle-end/22524
2666 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2667 cast BIT_NOT_EXPR operand to the correct type.
2668
ebf78a47
SP
26692006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
2670
2671 * tree-loop-linear.c: Don't include varray.h.
2672 (gather_interchange_stats, try_interchange_loops,
2673 linear_transform_loops): Use VEC instead of VARRAY.
2674 * lambda-mat.c: Don't include varray.h.
2675 * tree-chrec.c: Same.
2676 * lambda-trans.c: Same.
2677 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2678 VEC instead of VARRAY.
2679 * tree-vectorizer.h: Idem.
2680 * tree-data-ref.c (dump_data_references,
2681 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2682 initialize_data_dependence_relation, finalize_ddr_dependent,
2683 compute_all_dependences, find_data_references_in_loop,
2684 compute_data_dependences_for_loop, analyze_all_data_dependences,
2685 free_dependence_relation, free_dependence_relations,
2686 free_data_refs): Idem.
2687 * tree-data-ref.h (data_reference_p, subscript_p): New.
2688 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2689 VEC instead of VARRAY.
2690 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2691 (find_data_references_in_loop, compute_data_dependences_for_loop,
2692 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2693 dump_data_dependence_relations, free_dependence_relations,
2694 free_data_refs): Adjust declaration.
2695 (lambda_transform_legal_p): Move declaration here...
2696 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2697 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2698 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2699 vect_analyze_data_refs): Use VEC instead of VARRAY.
2700 * lambda.h (lambda_transform_legal_p): ...from here.
2701 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2702 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2703 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2704 tree-chrec.o): Don't depend on VARRAY_H.
2705
5edb2b13
MK
27062006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2707
2708 * rtl.def (Copyright): Update date.
2709 (DEPS_LIST): Change type of the second operand to 'int'.
2710 * target.h (Copyright): Update date.
2711 (struct gcc_target.speculate_insn): Change type of the second parameter
2712 to 'int'.
2713 * lists.c (Copyright): Update date.
2714 (alloc_DEPS_LIST): Change signature. Update reference to the second
2715 operand of the DEPS_LIST.
2716 (copy_DEPS_LIST_list): Update reference to the second operand of the
2717 DEPS_LIST.
2718 * rtl.h (Copyright): Update date.
2719 (alloc_DEPS_LIST): Update signature.
2720 * sched-int.h (Copyright): Update date.
2721 (ds_t): Change typedef to 'int'.
2722 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2723
c96a7cc5
MK
27242006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2725
2726 * haifa-sched.c (Copyright): Update date.
2727 (try_ready): Change condition to restore non-speculative pattern
2728 of the instruction.
2729 (process_insn_depend_be_in_spec): Code to keep probability of the
2730 speculative dependence non-decreasing.
2731
b256fbaf
BS
27322006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
2733
2734 * regrename.c (replace_oldest_value_addr): Initialize a variable to
2735 shut up the compiler.
2736
575066d2
R
27372006-03-27 J"orn Rennecke <joern.rennecke@st.com>
2738
2739 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2740 to use lib prefix for target.
2741 ($(T)libic_invalidate_array_4-200.a): Likewise.
2742 ($(T)libic_invalidate_array_4a.a): Likewise.
2743
25e651ca
AS
27442006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
2745 J"orn Rennecke <joern.rennecke@st.com>
2746
2747 * superh.opt: New file.
2748 * sh.c (boardtype, osruntime): Remove.
2749 * superh.h (SUBTARGET_OPTIONS): Remove.
2750 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2751
2752 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
2753 arguments with ^ and/or [].
2754
2755 * config.gcc (sh-*-*): Add quoting to account for quirk of
2756 Solaris /bin/sh.
2757 Replace == with = in enable_incomplete_targets test.
2758
2759 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2760 with MASK_LITTLE_ENDIAN.
2761
2762 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2763 * config/sh/sh.opt: Added to some comments.
2764 * config/sh/superh.h: Removed some chaff.
2765
2766 * config/sh/sh.opt: Add m4-[1234]00* options.
2767 * config/sh/sh.c (sh_handle_option): Likewise.
2768 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2769 (ic_invalidate_array_4-100.o): New rule.
2770 ($(T)libic_invalidate_array_4-100.a): Likewise.
2771 (ic_invalidate_array_4-200.o): Likewise.
2772 ($(T)libic_invalidate_array_4-200.a): Likewise.
2773 (ic_invalidate_array_4a.o): Likewise.
2774 ($(T)libic_invalidate_array_4a.a): Likewise.
2775 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2776 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2777 m4-200*, and m4a*.
2778 * config/sh/crt1.asm: Merged in profiling code.
2779 * config/sh/superh.h (STARTFILE_SPEC): Override.
2780 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2781 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2782 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2783
2784 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2785 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2786 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2787
2788 * sh.opt (mpretend-cmove): New option.
2789 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2790 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2791 (movsicc): Add TARGET_PRETEND_CMOVE code.
2792
74aa8b4b
AK
27932006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
2794
4b1c1f6f 2795 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
74aa8b4b
AK
2796 s390_class_max_nregs): New function prototypes.
2797 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2798 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2799 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2800 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2801
0d06ead5
GK
28022006-03-26 Geoffrey Keating <geoffk@apple.com>
2803
2804 * dwarf2out.c (add_location_or_const_value_attribute): Call
2805 tree_add_const_value_attribute if nothing else works.
2806 (reference_to_unused): New.
2807 (rtl_for_decl_init): Use reference_to_unused to decide whether
2808 to output an initializer.
2809
036aadfc
AM
28102006-03-27 Alan Modra <amodra@bigpond.net.au>
2811
2812 PR target/26459
2813 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2814 peephole removing spe frob_di_df_2.
2815
ba42e045
SP
28162006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
2817
2818 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2819 (subscript_dependence_tester_1): Declared.
2820 (print_dir_vectors, print_dist_vectors): New.
2821 (debug_data_dependence_relation): New.
2822 (dump_data_dependence_relation): Print more details.
2823 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2824 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2825 (save_dist_v, save_dir_v, add_outer_distances,
2826 build_classic_dist_vector_1): New.
2827 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2828 Don't test for lambda_vector_lexico_pos.
2829 (same_access_functions, add_multivariate_self_dist,
2830 add_other_self_distances, dir_from_dist): New.
4b1c1f6f 2831 (build_classic_dir_vector): Replace implementation almost identical to
ba42e045
SP
2832 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2833 dir_from_dist.
2834 (subscript_dependence_tester_1): New.
2835 (subscript_dependence_tester): Handle the lexicographically negative
2836 distance vectors by recomputing the dependence relation.
2837 (compute_affine_dependence): Remove parameter loop_nest_depth.
2838 (compute_self_dependence): Don't call compute_subscript_distance.
2839 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2840 Add a parameter for the loop_nest.
2841 (find_loop_nest_1, find_loop_nest): New.
2842 (compute_data_dependences_for_loop): Compute the loop nest, and give
2843 up if the nest is not well formed.
2844 * tree-data-ref.h (loop_p): New.
4b1c1f6f 2845 (struct data_dependence_relation): Replace size_vect field with
ba42e045
SP
2846 loop_nest, a vec of loops.
2847 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2848 (DDR_LOOP_NEST): New.
2849 (print_dir_vectors, print_dist_vectors,
2850 debug_data_dependence_relation): Declared.
2851 (index_in_loop_nest): New.
2852 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2853 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2854 distance.
2855
30a440a7
AN
28562006-03-25 Adam Nemet <anemet@caviumnetworks.com>
2857
2858 * simplify-rtx.c (simplify_relational_operation): Call
2859 simplify_relational_operation_1 even if mode is VOIDmode.
2860
fe1f8f44
DB
28612006-03-25 Daniel Berlin <dberlin@dberlin.org>
2862
2863 PR tree-optimization/26804
2864 * tree.h (DECL_CALL_CLOBBERED): New macro.
2865 (tree_decl_common): Add call_clobbered_flag.
2866 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2867 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2868 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2869 (mark_non_addressable): Ditto.
2870 * tree-ssa.c (verify_call_clobbered): New function.
2871 (verify_alias_info): Use it.
2872 * tree-pass.h (pass_reset_cc_flags): New prototype.
2873 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2874 (reset_cc_flags): New function.
2875 * passes.c (init_optimization_passes): Call reset_cc_flags after
2876 initializing referenced_vars.
2877
1d8b38a0
UB
28782006-03-25 Uros Bizjak <uros@kss-loka.si>
2879 Roger Sayle <roger@eyesopen.com>
2880
2881 PR middle-end/26717
2882 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2883 to 1.0 for non-real operands. Implement A / A optimization for
2884 complex operands.
2885
75bcbcdb
L
28862006-03-25 H.J. Lu <hongjiu.lu@intel.com>
2887
2888 * config/i386/i386.c (size_cost): Correct the comment for
2889 cost of storing fp registers.
2890 (i386_cost): Likewise.
2891 (i486_cost): Likewise.
2892 (pentium_cost): Likewise.
2893 (pentiumpro_cost): Likewise.
2894 (k6_cost): Likewise.
2895 (athlon_cost): Likewise.
2896 (k8_cost): Likewise.
2897 (pentium4_cost): Likewise.
2898 (nocona_cost): Likewise.
2899 (generic64_cost): Likewise.
2900 (generic32_cost): Likewise.
2901
625a46d9
DC
29022006-03-24 Denis Chertykov <denisc@overta.ru>
2903
2904 * config/avr/avr-protos.h (extra_constraint): Delete.
2905 (extra_constraint_Q): New declaration.
2906 * config/avr/constraints.md: New file.
2907 * config/avr/avr.md: Include it.
2908 (REG_X, REG_Y, REG_Z, REG_W): New constants.
2909 (TMP_REGNO, ZERO_REGNO): Likewise.
2910 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2911 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2912 (extra_constraint): Delete.
2913 (extra_constraint_Q): Test for memory constraint 'Q'.
2914 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2915 (REG_CLASS_FROM_LETTER): Delete.
2916 (CONST_OK_FOR_LETTER_P): Delete.
2917 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2918 (EXTRA_CONSTRAINT): Delete.
2919 (TMP_REGNO): Delete.
2920 (ZERO_REGNO): Delete.
2921
3ae194cd
JL
29222006-03-24 Jeff Law <law@redhat.com>
2923
2924 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2925 directly. Call mark_new_vars_to_rename slightly earlier.
2926
895de5a8
GK
29272006-03-24 Geoffrey Keating <geoffk@apple.com>
2928
9e51ddaa
GK
2929 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2930 (is_cxx): Likewise.
2931 (gen_compile_unit_die): Use new language types for Objective-C and
2932 Objective-C++.
2933 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2934 DW_LANG_C_plus_plus.
2935
895de5a8
GK
2936 PR 26793
2937 * config/t-darwin (crt3.o): Work around bug 26840.
2938 * config/darwin-crt3.c: Rewrite.
2939 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2940
e713adf6
CD
29412006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2942
2943 * doc/invoke.texi: Document -femit-class-debug-always
2944 * common.opt: Add -femit-class-debug-always.
2945
93fa8428
AK
29462006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
2947
2948 * config/s390/s390.c (s390_decompose_address): Allow SImode for
2949 index and base register.
2950 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2951 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2952 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2953 REGNO_OK_FOR_INDEX_P.
2954 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2955 ADDR_REGNO_P.
2956 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2957 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2958 REG_OK_FOR_BASE_P): Definitions removed.
2959
8cb86b65
JJ
29602006-03-24 Jakub Jelinek <jakub@redhat.com>
2961
2962 PR middle-end/26611
2963 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2964 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2965 set yet or weren't marked as local yet.
2966
84c9cb12
BS
29672006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
2968
2969 * regrename.c (scan_rtx_address): Initialize a variable to shut up
2970 the compiler.
2971
d04b6e6e
EB
29722006-03-24 Eric Botcazou <ebotcazou@adacore.com>
2973
2974 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2975 (rs6000_legitimate_small_data_p): Delete.
2976 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2977 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2978 and make static. Add forward declaration. Update uses.
2979 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2980 of offsettable_memref_p.
2981 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2982 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2983
243cc836
JL
29842006-03-24 Jeff Law <law@redhat.com>
2985
2986 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2987 around bug in immediate-use iterator.
2988
5b314bb3
AM
29892006-03-24 Alan Modra <amodra@bigpond.net.au>
2990
2991 PR target/26607
2992 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2993 or __LITTLE_ENDIAN__.
2994
b368d6b8
R
29952006-03-23 J"orn Rennecke <joern.rennecke@st.com>
2996
2997 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2998 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2999 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
3000 * config/sh/sh.opt (mdiv=): Amend description.
3001 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
3002 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
3003 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
3004 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
3005 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
3006 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
3007 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
3008 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
3009 TARGET_DIVIDE_CALL_FP.
3010
a57aee2a
MK
30112006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3012
3013 * haifa-sched.c (choose_ready): Fix type of the local variable.
3014 Move local variables. Add comment.
3015 (check_reg_live): Change signature. Make callable from debugger.
3016 * sched-int.h (check_reg_live): Update signature.
3017 * sched-ebb.c (check_reg_live): Update parameters.
3018 * sched-rgn.c (check_reg_live): Ditto.
3019 (region_head_or_leaf_p): Check pointer before dereferencing.
3020 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
3021 before reload on optimization levels below 1.
3022
dec6909b
RH
30232006-03-23 Richard Henderson <rth@redhat.com>
3024
e584065d
RH
3025 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
3026 tls symbols.
3027
dec6909b
RH
3028 PR target/26347
3029 * config/alpha/predicates.md (local_symbolic_operand): Reject
3030 weak symbols.
3031
60fee157
AP
30322006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
3033
3034 PR tree-opt/26795
3035 * tree-ssa-pre.c (create_value_expr_from): Don't reject
3036 expressions which have overflowed constants.
3037
79b9dd8c
ZD
30382006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3039
3040 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
3041
054a09fb
ZD
30422006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
3043
3044 * cfgloopmanip.c (create_loop_notes): Removed.
3045 * final.c (final_scan_insn): Do not handle loop notes.
3046 * jump.c (squeeze_notes): Ditto.
3047 * cfglayout.c (skip_insns_after_block,
3048 duplicate_insn_chain): Ditto.
3049 * cfgcleanup.c (rest_of_handle_jump2): Do not call
3050 create_loop_notes.
3051 * cfgloop.h (create_loop_notes): Declaration removed.
3052
c16ba1d5
RS
30532006-03-23 Richard Sandiford <richard@codesourcery.com>
3054
3055 * varasm.c (output_constant_pool): Restore fnname and fndecl
3056 arguments.
3057 (assemble_start_function): Adjust call accordingly.
3058 (assemble_end_function): Likewise.
3059
698cf1c8
VR
30602006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3061
91d876d9 3062 PR mudflap/26789
7a752640
VR
3063 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
3064
91d876d9 3065 PR mudflap/26790
698cf1c8
VR
3066 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
3067
ddaf3b86
VR
30682006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3069
3070 PR driver/22600
3071 * system.h (ICE_EXIT_CODE): New macro.
3072 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
3073 (diagnostic_action_after_output): Likewise.
3074 * gcc.c (fatal_ice): New function.
3075 (execute): Use it instead of fatal.
3076 (fancy_abort): Likewise.
3077 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
3078
4dc7782d
JL
30792006-03-22 Jeff Law <law@redhat.com>
3080
3081 * loop-unroll.c (analyze_iv_to_split_insn): Handle
3082 iv_analyze_result returning false.
3083
f328a23a
JZ
30842006-03-22 Jie Zhang <jie.zhang@analog.com>
3085
3086 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
3087
fad41cd7
RH
30882006-03-22 Richard Henderson <rth@redhat.com>
3089
3090 PR middle-end/26084
3091 * except.c (duplicate_eh_regions_0): New.
3092 (duplicate_eh_region_1): Duplicate the children of the node as
3093 well as the node itself. Link them up properly.
3094 (duplicate_eh_region_2): Merge into ...
3095 (duplicate_eh_regions): ... here. Take copy_region argument, and
3096 copy only a sub-tree if asked. Simplify copying and fixup.
3097 (eh_region_outer_p): New.
3098 * except.h (duplicate_eh_regions): Update decl.
3099 (eh_region_outer_p): Declare.
3100 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
3101 (lower_omp_master): Likewise.
3102 (lower_omp_ordered): Likewise.
3103 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
3104 (move_stmt_r): Use it to remap labels. Handle recursion vs
3105 remap_decls_p properly.
3106 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
3107 (find_outermost_region_in_block): New.
3108 (new_label_mapper): New.
3109 (move_sese_region_to_fn): Copy eh information to the new function
3110 properly.
3111 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
3112 argument.
3113 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
3114 number.
3115
bc4a3483
RS
31162006-03-22 Richard Sandiford <richard@codesourcery.com>
3117
3118 * doc/md.texi (-mshared): Mention that -mshared code can be linked
3119 into shared libraries.
3120
08b1e29a
RS
31212006-03-22 Richard Sandiford <richard@codesourcery.com>
3122
3123 * doc/md.texi: Refer to i386/constraints.md instead of
3124 i386/predicates.md.
3125 * config/i386/constraints.md: New file, extracted from...
3126 * config/i386/predicates.md: ...here.
3127 * config/i386/i386.md: Include constraints.md.
3128
5b5cba1f
JM
31292006-03-21 Jason Merrill <jason@redhat.com>
3130
ac382b62
JM
3131 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
3132
5b5cba1f
JM
3133 PR middle-end/20297
3134 * expr.c (init_block_move_fn): Force default visibility.
3135 (init_block_clear_fn): Likewise.
3136 * builtins.c (expand_builtin_fork_or_exec): Likewise.
3137 * targhooks.c (default_external_stack_protect_fail): Likewise.
3138
d9870b7e
RS
31392006-03-21 Richard Sandiford <richard@codesourcery.com>
3140
3141 * config/mips/predicates.md (const_call_insn_operand): Allow direct
3142 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
3143 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
3144 Use TARGET_OLDABI instead of !TARGET_NEWABI.
3145 (loadgp): Use mips_current_loadgp_style.
3146 (loadgp_noshared): New pattern.
3147 (sibcall_internal): Use MIPS_CALL.
3148 (sibcall_value_internal): Likewise.
3149 (sibcall_value_multiple_internal): Likewise.
3150 (call_internal): Likewise.
3151 (call_value_internal): Likewise.
3152 (call_value_multiple_internal): Likewise.
3153 (call_split): Use MIPS_CALL and add an 'S' constraint.
3154 (call_value_split): Likewise.
3155 (call_value_multiple_split): Likewise.
3156 * config/mips/mips.opt (-mabicalls): Tweak docstring.
3157 (-mshared): New option.
3158 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
3159 (mips_current_loadgp_style): Declare.
3160 * config/mips/mips.c (mips_classify_symbol): Avoid using
3161 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
3162 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
3163 TARGET_ABSOLUTE_ABICALLS.
3164 (override_options): Adjust comments. Improve the warning that is
3165 issued when -mabicalls and -G are used together.
3166 (mips_file_start): Remove comment.
3167 (mips_current_loadgp_style): New function.
3168 (mips_gnu_local_gp): New variable.
3169 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
3170 LOADGP_ABSOLUTE.
3171 (mips_output_function_prologue): Use mips_current_laodgp_style.
3172 (mips_expand_prologue): Call mips_emit_loadgp before emitting
3173 the cprestore instruction.
3174 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
3175 live for TARGET_ABSOLUTE_ABICALLS.
3176 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
3177 (ASM_SPEC): Pass down -mshared and -mno-shared.
3178 (MIPS_CALL): New macro.
3179 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
3180 definition.
3181 * doc/invoke.texi (-mabicalls): Update documentation.
3182 (-mshared): Document.
3183
487d9a61
SE
31842006-03-21 Steve Ellcey <sje@cup.hp.com>
3185
3186 * config/ia64/unwind-hpux.c: New file.
3187 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
3188
f7da48ef
SE
31892006-03-21 Steve Ellcey <sje@cup.hp.com>
3190
3191 PR libgomp/26384
3192 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
3193
a3b196e3
JL
31942006-03-21 Jeff Law <law@redhat.com>
3195
3196 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
3197 type conversions of a VR_VARYING source to a wider type.
3198
ec23ed60
EB
31992006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3200
3201 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
3202 tm_file on Solaris 10 and later.
3203 (sparc64-*-solaris2*): Likewise.
3204 (sparc-*-solaris2*): Likewise.
3205 * config/sol26.h: Rename to config/sol2-6.h.
3206 * config/sol2-10.h: New file.
3207
5ded46eb
AP
32082006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
3209
3210 PR tree-opt/26781
3211 * tree-ssa-pre.c (create_component_ref_by_pieces):
3212 Handle STRING_CST.
3213
3c9bb46e
JJ
32142006-03-21 Jakub Jelinek <jakub@redhat.com>
3215
3216 PR c++/26690
3217 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
3218 return it immediately.
3219
b6bbd675
MM
32202006-03-21 Michael Matz <matz@suse.de>
3221
3222 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
3223 New members.
3224 (remove_arc, add_arc): Update num_out_arcs member.
3225 (set_out_arc_insns_equiv_num): Returns nothing instead of number
3226 of out arcs.
3227 (cache_presence): New function.
3228 (compare_states_for_equiv): New function.
3229 (state_is_differed): Don't take number of outargs, adjust callers.
3230 Use new invariant for speeding up.
3231 (init_equiv_class): Create initial classes based on sorted
3232 input.
3233 (partition_equiv_class): Don't track out_arcs_num.
3234 (evaluate_equiv_classes): Call cache_presence on all states and
3235 sort them.
3236
c4963a0a
BS
32372006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
3238
3239 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
3240 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
3241 (bfin_valid_reg_p): Test for pseudos explicitly and use only
3242 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
3243 callers changed.
3244 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
3245 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
3246 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
3247 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
3248 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
3249 macros.
3250 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
3251 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
3252 (REGNO_REG_CLASS): ARGP is in PREGS.
3253 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
3254 IREGS.
3255 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
3256 to deal with those addresses.
3257 * addresses.h: New file.
3258 * caller-save.c: Include "addresses.h".
3259 (init_caller_save): Use new base_reg_class function.
3260 * rtl-factoring.c: Include "addresses.h".
3261 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
3262 * recog.c: Include "addresses.h".
3263 (preprocess_constraints): Use new base_reg_class function.
3264 * regrename.c: Include "addresses.h".
3265 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
3266 functions. Keep track of a new var INDEX_CODE to compute valid
3267 classes.
3268 (replace_oldest_value_addr): Likewise.
3269 (replace_oldest_value_mem): Use base_reg_class.
3270 * reload.c: Include "addresses.h".
3271 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
3272 (find_reloads): Use new base_reg_class function.
3273 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
3274 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
3275 all callers and prototype changed.
3276 * reload1.c: Include "addresses.h".
3277 (maybe_fix_stack_asms): Use base_reg_class.
3278 * regclass.c: Include "addresses.h".
3279 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
3280 (init_reg_autoinc): Use new base_reg_class function.
3281 (record_reg_classes): Likewise.
3282 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
3283 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
3284 Use new args to compute necessary class.
3285
3286 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
3287 regrename.o, rtl-factoring.o): Update dependencies.
3288 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
3289 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3290 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
3291 REG_OK_FOR_INDEX_P): Delete documentation.
3292
69bdb292
AS
32932006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
3294
3295 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
3296 from V7 to V9 for Solaris 7 and above.
3297
0698a1d2
TM
32982006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
3299
3300 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
3301 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
3302 argument pointers may not alias any other storage.
3303 * common.opt: Define option -fargument-noalias-anything.
3304 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
3305 alias semantics is specified by flag_argument_noalias > 2.
3306
ee51e035 33072006-03-20 Jeff Law <law@redhat.com>
e67c25c7
JL
3308
3309 * tree-pass.h (pass_phi_only_copy_prop): Delete.
3310 (pass_phi_only_cprop): Declare.
3311 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
3312 with phi_only_cprop
3313 * tree-ssa-dom.c (degenerate_phi_result): New function.
3314 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
3315 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
3316 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
3317 (eliminate_degenerate_phis): Likewise.
3318 (pass_phi_only_cprop): New pass descriptor.
3319 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
3320 support code. Callers updated.
3321 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
3322 (store_copy_prop): Likewise.
3323 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
3324
0ed5edac
JM
33252006-03-20 Jason Merrill <jason@redhat.com>
3326
3327 PR c++/21764
3328 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
3329 (push_visibility, pop_visibility): Likewise.
3330 * c-pragma.h: Declare them.
3331
c6d56443
KK
33322006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
3333
3334 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
3335
3336 * config/sh/sh.c (find_regmode_weight): Change the type of the first
3337 parameter and use get_ebb_head_tail.
3338 (sh_md_init_global): Adjust uses of find_regmode_weight.
3339
ede497cf
SB
33402006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
3341
3342 * function.h (struct function) <x_tail_recursion_reentry>:
3343 Rename to x_stack_check_probe_note.
3344 (tail_recursion_reentry): Rename to stack_check_probe_note.
3345 * function.c: Replace tail_recursion_reentry with
3346 stack_check_probe_note everywhere.
3347 (expand_function_start): Only emit a note for
3348 stack_check_probe_note with -fstack-protect.
3349 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
3350
3351 * emit-rtl.c (remove_unnecessary_notes): Remove.
3352 (pass_remove_unnecessary_notes): Remove.
3353 * rtl.h (remove_unnecessary_notes): Remove prototype.
3354 * final.c (final_start_function): Don't call remove_unnecessary_notes.
3355 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
3356 * passes.c (pass_remove_unnecessary_notes): Don't run it.
3357
e13f1c14
AP
33582006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
3359
3360 PR tree-opt/26629
3361 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
3362 (valid_in_set): Handle ARRAY_REF.
3363 Change "if min_variant or VH" to asserts.
3364 (create_component_ref_by_pieces): Handle ARRAY_REF.
3365 (create_expression_by_pieces): Likewise.
3366 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
3367
7a22dbec
DE
33682006-03-20 David Edelsohn <edelsohn@gnu.org>
3369
3370 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
3371 is operand of switch, not str[0].
3372
e0bf274f
AM
33732006-03-20 Alan Modra <amodra@bigpond.net.au>
3374
3375 * config/rs6000/rs6000.c (rs6000_handle_option): Use
3376 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
3377
e800e79b
DE
33782006-03-19 David Edelsohn <edelsohn@gnu.org>
3379
3380 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
3381 end of insn_extra_address_constraint declaration.
3382
d2894ab5
DE
33832006-03-19 David Edelsohn <edelsohn@gnu.org>
3384
3385 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
3386 (no-sum-in-toc): Same.
3387 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
3388 variables.
3389 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
3390 NO_FP_IN_TOC for -fPIC instead of mask.
3391
3392 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
3393 (BOOT_LDFLAGS): Delete.
3394 (LDFLAGS): Delete.
3395 * config/rs6000/t-aix52: Same.
3396
3397 * config/rs6000/rs6000.md (store_multiple_power): Delete.
3398 (stmsi[345678]_power): New.
3399
30b82356
SE
34002006-03-17 Steve Ellcey <sje@cup.hp.com>
3401
3402 * config/ia64/ia64.opt: Add empty line to end of file.
3403
445a6ba4
RG
34042006-03-17 Richard Guenther <rguenther@suse.de>
3405
3406 PR middle-end/26721
3407 * builtins.c (get_pointer_alignment): For component style references
3408 adjust alignment to the component type alignment. Make sure
3409 to adjust alignment for component access of constants.
3410
ea5bd0d8
DE
34112006-03-17 David Edelsohn <edelsohn@gnu.org>
3412
3413 * config/rs6000/rs6000.md (strlensi): Emit barrier after
3414 unconditional jump.
3415
3cf94279
PB
34162006-03-17 Paul Brook <paul@codesourcery.com>
3417
3418 * doc/install.texi: Docuemnt --with-mode.
3419 * config.gcc: Add --with-mode for arm*-*-*.
3420 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
3421
4241ecb0
R
34222006-03-17 J"orn Rennecke <joern.rennecke@st.com>
3423
3424 * sh.c (max_labelno_before_reorg): New variable.
3425 (sh_reorg): Initialize it.
3426 (find_barrier): Check max_labelno_before_reorg before using
3427 label_to_alignment. Take length of explicit alignment insns
3428 into account. When seeing a UNSPECV_CONST_END, return it.
3429
3430 * sh.c (fixup_mova): Set mode of affected label to QImode.
3431 (untangle_mova): New function.
3432 (find_barrier): Use it. Check mode of label before decrementing
3433 num_mova.
3434 (sh_reorg): Likewise.
3435 Set mode of all insns back to VOIDmode.
3436
3437 * sh.c (MOVA_LABELREF): New macro.
3438 (mova_p, fixup_mova, sh_reorg): Use it.
3439 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
3440 ADDR_DIFF_VEC matches mova.
3441
79252435
SB
34422006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
3443
3444 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3445 with ATTRIBUTE_UNUSED.
3446
6a037308
AO
34472006-03-17 Alexandre Oliva <aoliva@redhat.com>
3448
3449 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3450 pointer, instead of assuming it is possible to derive the
3451 correct args size from a call insn.
3452
d97c1295
JBG
34532006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3454
3455 * rtl.h (CONST_INT_P): Define.
3456 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3457 instead of GET_CODE(x) == CONST_INT.
3458 (vax_rtx_costs): Likewise.
3459 (vax_output_int_move): Likewise.
3460 (vax_output_int_add): Likewise.
3461 (legitimate_constant_address_p): Likewise.
3462 (index_term_p): Likewise.
3463 * config/vax/vax.h (PRINT_OPERAND): Likewise.
3464 * config/vax/vax.md (and<mode>3): Likewise.
3465 (ashrsi3): Likewise.
3466 (extv): Likewise.
3467 (movstricthi): Likewise.
3468 (movstrictqi): Likewise.
3469 (rotrsi3): Likewise.
3470 (five unnamed insns): Likewise.
3471
192d0f89
GK
34722006-03-16 Geoffrey Keating <geoffk@apple.com>
3473
3474 * doc/tm.texi (SDB and DWARF): Add extra parameter to
3475 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
3476 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
3477 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
3478 Pass to ASM_OUTPUT_DWARF_OFFSET.
3479 * dwarf2out.c (debug_frame_section): New.
3480 (output_call_frame_info): Use debug_frame_section. Pass it to
3481 dw2_asm_output_offset.
3482 (output_die): Pass appropriate section to dw2_asm_output_offset.
3483 (output_compilation_unit_header): Likewise.
3484 (output_pubnames): Likewise.
3485 (output_aranges): Likewise.
3486 (enum dw_val_class): Break dw_val_class_lbl_offset into
3487 dw_val_class_lineptr and dw_val_class_macptr.
3488 (add_AT_lbl_offset): Delete.
3489 (add_AT_lineptr): New.
3490 (add_AT_macptr): New.
3491 (AT_lbl): Expect a lineptr or macptr.
3492 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
3493 (attr_checksum): Likewise.
3494 (same_dw_val_p): Likewise.
3495 (size_of_die): Likewise.
3496 (value_format): Likewise.
3497 (output_die): Likewise.
3498 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
3499 add_AT_lbl_offset.
3500 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3501 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
3502 * config/darwin-protos.h (darwin_file_start): New.
3503 (darwin_asm_output_dwarf_offset): New.
3504 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3505 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
3506 darwin_file_start.
3507 * config/darwin.c (darwin_emit_unwind_label): Don't output label
3508 if not EH section; simplify.
3509 (darwin_file_start): New.
3510 (darwin_asm_output_dwarf_offset): New.
3511 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
3512 mark as 'debug'.
3513 (DEBUG_INFO_SECTION): Likewise.
3514 (DEBUG_ABBREV_SECTION): Likewise.
3515 (DEBUG_ARANGES_SECTION): Likewise.
3516 (DEBUG_MACINFO_SECTION): Likewise.
3517 (DEBUG_LINE_SECTION): Likewise.
3518 (DEBUG_LOC_SECTION): Likewise.
3519 (DEBUG_PUBNAMES_SECTION): Likewise.
3520 (DEBUG_STR_SECTION): Likewise.
3521 (DEBUG_RANGES_SECTION): Likewise.
3522 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
3523 (ASM_OUTPUT_DWARF_OFFSET): New.
3524
620b87b3
JM
35252006-03-16 Joseph S. Myers <joseph@codesourcery.com>
3526
3527 * config.gcc (tm_defines): Always add to previous value rather
3528 than replacing it.
3529
ea462dd0
RS
35302006-03-16 Richard Sandiford <richard@codesourcery.com>
3531
3532 * config/mips/predicates.md (splittable_const_int_operand): New,
3533 split from move_operand.
3534 (splittable_symbolic_operand): New.
3535 (move_operand): Add commentary. Use splittable_const_int_operand.
3536 Inline mips_atomic_symbolic_constant_p.
3537 * config/mips/mips.md: Add combine splitters for handling moves
3538 of splittable_const_int_operands and splittable_symbolic_operands.
3539 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
3540 (mips_split_symbol): Declare.
3541 (mips_move_integer): Declare.
3542 * config/mips/mips.c (mips_split_p): Make global.
3543 (TARGET_MIN_ANCHOR_OFFSET): Override default.
3544 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3545 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3546 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
3547 (mips_offset_within_object_p): Handle block symbols.
3548 (mips_atomic_symbolic_constant_p): Delete.
3549 (mips_cannot_force_const_mem): Return false for constants that
3550 mips_legitimize_move can handle.
3551 (mips_use_blocks_for_constant_p): New function.
3552 (mips_split_symbol): Make global.
3553 (mips_move_integer): Likewise. Add a temporary register argument.
3554 (mips_legitimize_const_move): Use splittable_const_int_operand and
3555 splittable_symbolic_operand.
3556 (mips_use_anchors_for_symbol_p): New function.
3557 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
4b1c1f6f 3558 (mips_split_p): Declare.
ea462dd0 3559
5d2a73d5
RS
35602006-03-16 Richard Sandiford <richard@codesourcery.com>
3561
3562 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3563 (mips*-*-linux*): Likewise.
3564
da54e73b
RS
35652006-03-16 Roger Sayle <roger@eyesopen.com>
3566 Daniel Speyer <dspeyer@wam.umd.edu>
3567
3568 PR middle-end/18259
3569 * tree-dump.c (dump_real): New function.
3570 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3571 * Makefile.in (REAL_H): New macro for dependencies on real.h.
3572 (tree-dump.o): Add $(REAL_H) to the dependencies.
3573
a47564c8
RS
35742006-03-16 Roger Sayle <roger@eyesopen.com>
3575
3576 PR middle-end/21781
3577 * real.c (real_from_string): If the mantissa is zero, don't bother
3578 parsing the exponent as the result should always be zero.
3579
349f4ea1
AK
35802006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
3581
3582 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3583
048d0d36
MK
35842006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3585
dec6909b
RH
3586 * config/ia64/ia64.c (stops_p): Added explicit initialization.
3587 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3588 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3589 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
048d0d36
MK
3590 ia64_sched_finish_global): New static functions to implement
3591 hooks from gcc_target.sched.
3592 (spec_check_no, max_uid, pending_data_specs): New static variables.
dec6909b 3593 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
048d0d36 3594 ia64_spec_check_src_p): New static functions.
dec6909b
RH
3595 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3596 (TARGET_SCHED_ADJUST_COST): Removed.
3597 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
048d0d36
MK
3598 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3599 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3600 TARGET_SCHED_GEN_CHECK,
3601 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
dec6909b
RH
3602 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3603 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
048d0d36 3604 Fixed to handle speculation checks.
dec6909b
RH
3605 (rtx_needs_barrier): Fixed to handle speculative loads and
3606 their checks.
3607 (ia64_variable_issue): Added code to count speculative loads and their
3608 checks.
3609 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3610 speculative loads.
3611 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3612 New enumerations.
3613 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3614 New constants.
3615 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
048d0d36 3616 (ia64_reorg): Reset stops_p to NULL after it is freed.
dec6909b 3617 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
048d0d36 3618 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
dec6909b
RH
3619 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
3620 chk_a.
3621 (data_speculative, control_speculative, check_load): New attributes.
3622 (mov<mode>_advanced, mov<mode>_speculative,
3623 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3624 zero_extend<mode>di2_speculative,
3625 zero_extend<mode>di2_speculative_advanced): New patterns for
3626 data and control speculative loads.
3627 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3628 check loads.
3629 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3630 New pattern for data and control speculation checks.
048d0d36
MK
3631 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3632 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3633 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3634 Auxiliary definitions for the patterns.
dec6909b
RH
3635 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3636 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3637 constraints.
048d0d36 3638 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
dec6909b
RH
3639 for speculation.
3640 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3641 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
048d0d36
MK
3642 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3643 New resource constraints.
3644 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
dec6909b
RH
3645 for speculation.
3646 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3647 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3648 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3649 msched-in-control-spec, msched-ldc, msched-control-ldc,
3650 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3651 msched-prefer-non-control-spec-insns,
048d0d36
MK
3652 msched-count-spec-in-critical-path): New flags to tune speculative
3653 scheduling.
3654 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
dec6909b
RH
3655 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3656 msched-in-control-spec, msched-ldc, msched-control-ldc,
3657 msched-spec-verbose, msched-prefer-non-data-spec-insns,
3658 msched-prefer-non-control-spec-insns,
048d0d36
MK
3659 msched-count-spec-in-critical-path): Document new flags.
3660
496d7bb0
MK
36612006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3662
dec6909b
RH
3663 * target.h (struct spec_info_def): New opaque declaration.
3664 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3665 speculate_insn, needs_block_p, gen_check,
3666 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3667 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3668 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3669 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3670 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3671 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3672 gcc_target.sched.
3673 (TARGET_SCHED): Use new macros.
3674 * rtl.h (copy_DEPS_LIST_list): New prototype.
3675 * sched-int.h (struct sched_info): Change signature of new_ready field,
496d7bb0 3676 adjust all initializations. New fields: add_remove_insn,
dec6909b 3677 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
496d7bb0 3678 region_head_or_leaf_p.
dec6909b
RH
3679 (struct spec_info_def): New structure declaration.
3680 (spec_info_t): New typedef.
3681 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3682 recovery_block, orig_pat.
3683 (glat_start, glat_end): New variables declaraions.
3684 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
496d7bb0 3685 New access macros.
dec6909b
RH
3686 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3687 DETACH_LIFE_INFO, USE_GLAT.
3688 (enum SPEC_SCHED_FLAGS): New enumeration.
3689 (NOTE_NOTE_BB_P): New macro.
3690 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3691 attach_life_info, debug_spec_status, check_reg_live): New functions.
3692 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3693 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3694 sched-ebb.c
496d7bb0 3695 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
dec6909b
RH
3696 * ddg.c (get_block_head_tail): Adjust all uses.
3697 * modulo-sched.c (get_block_head_tail): Adjust all uses.
496d7bb0
MK
3698 (sms_sched_info): Initialize new fields.
3699 (contributes_to_priority): Removed.
dec6909b 3700 * haifa-sched.c (params.h): New include.
496d7bb0 3701 (get_block_head_tail): Adjust all uses.
dec6909b
RH
3702 (ISSUE_POINTS): New macro.
3703 (glat_start, glat_end): New global variables.
3704 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
496d7bb0
MK
3705 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3706 old_last_basic_block, before_recovery, current_sched_info_var,
3707 rgn_n_insns, luid): New static variables.
dec6909b
RH
3708 (insn_cost1): New function. Move logic from insn_cost to here.
3709 (find_insn_reg_weight1): New function. Move logic from
3710 find_insn_reg_weight to here.
3711 (reemit_notes, move_insn, max_issue): Change signature.
3712 (move_insn1): Removed.
3713 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3714 extend_bb): New static functions to support extension of scheduler's
3715 data structures.
3716 (generate_recovery_code, process_insn_depend_be_in_spec,
3717 begin_speculative_block, add_to_speculative_block,
3718 init_before_recovery, create_recovery_block, create_check_block_twin,
3719 fix_recovery_deps): New static functions to support
3720 generation of recovery code.
3721 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3722 restore_bb_notes, move_block_after_check, move_succs): New static
3723 functions to support ebb scheduling.
3724 (init_glat, init_glat1, attach_life_info1, free_glat): New static
3725 functions to support handling of register live information.
3726 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
496d7bb0
MK
3727 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3728 add_jump_dependencies): New static functions.
dec6909b 3729 (check_cfg, has_edge_p, check_sched_flags): New static functions for
496d7bb0
MK
3730 consistancy checking.
3731 (debug_spec_status): New function to call from debugger.
3732 (priority): Added code to handle speculation checks.
3733 (rank_for_schedule): Added code to distinguish speculative instructions.
3734 (schedule_insn): Added code to handle speculation checks.
3735 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3736 Fixed to handle ebbs.
dec6909b 3737 (move_insn): Added code to handle ebb scheduling.
496d7bb0 3738 (max_issue): Added code to use ISSUE_POINTS of instructions.
dec6909b
RH
3739 (choose_ready): Added code to choose between speculative and
3740 non-speculative instructions.
3741 (schedule_block): Added code to handle ebb scheduling and scheduling of
3742 speculative instructions.
3743 (sched_init): Initialize new variables.
3744 (sched_finish): Free new variables. Print statistics.
3745 (try_ready): Added code to handle speculative instructions.
3746 * lists.c (copy_DEPS_LIST_list): New function.
3747 * sched-deps.c (extend_dependency_caches): New function. Move logic
3748 from create_dependency_caches to here.
496d7bb0 3749 (get_dep_weak, ds_merge): Make global.
dec6909b
RH
3750 * genattr.c (main): Code to output prototype for
3751 dfa_clear_single_insn_cache.
3752 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3753 (output_dfa_clean_insn_cache_func): Code to output
3754 dfa_clear_single_insn_cache function.
3755 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
496d7bb0 3756 n_insns.
dec6909b
RH
3757 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3758 Removed.
3759 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3760 New static variables.
3761 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
496d7bb0
MK
3762 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3763 struct sched_info.
dec6909b 3764 (ebb_sched_info): Initialize new fields.
496d7bb0
MK
3765 (get_block_head_tail): Adjust all uses.
3766 (compute_jump_reg_dependencies): Fixed to use glat_start.
3767 (schedule_ebb): Code to remove unreachable last block.
dec6909b
RH
3768 (schedule_ebbs): Added code to update register live information.
3769 * sched-rgn.c (region_sched_info): Initialize new fields.
496d7bb0
MK
3770 (get_block_head_tail): Adjust all uses.
3771 (last_was_jump): Removed. Adjust users.
dec6909b 3772 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
496d7bb0
MK
3773 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3774 Implement new hooks.
dec6909b
RH
3775 (check_dead_notes1): New static function.
3776 (struct region): New fields: dont_calc_deps, has_real_ebb.
3777 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3778 (BB_TO_BLOCK): Fixed to handle EBBs.
3779 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3780 (ebb_head): New static variable.
3781 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3782 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
496d7bb0
MK
3783 new fields.
3784 (compute_dom_prob_ps): New assertion.
dec6909b
RH
3785 (check_live_1, update_live_1): Fixed to work with glat_start instead of
3786 global_live_at_start.
496d7bb0
MK
3787 (init_ready_list): New assertions.
3788 (can_schedule_ready_p): Split update code to begin_schedule_ready.
3789 (new_ready): Add support for BEGIN_CONTROL speculation.
dec6909b
RH
3790 (schedule_insns): Fixed code that updates register live information
3791 to handle EBBs.
3792 (schedule_region): Fixed to handle EBBs.
496d7bb0 3793 (init_regions): Use extend_regions and check_dead_notes1.
dec6909b
RH
3794 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3795 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
496d7bb0
MK
3796 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3797 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3798 TARGET_SCHED_GEN_CHECK,
3799 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3800 TARGET_SCHED_SET_SCHED_FLAGS): Document.
dec6909b 3801 * doc/invoke.texi (max-sched-insn-conflict-delay,
496d7bb0
MK
3802 sched-spec-prob-cutoff): Document.
3803
63f54b1a
MK
38042006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3805
dec6909b 3806 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
63f54b1a
MK
3807 inter_tick, queue_index.
3808 (struct sched_info): Change signature of init_ready_list field.
3809 Adjust all initializations.
3810 (RESOLVED_DEPS): New access macro.
3811 (ready_add): Remove prototype.
3812 (try_ready): Add prototype.
3813 * sched-rgn.c (init_ready_list): Use try_ready.
3814 (schedule_region): Initialize
3815 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3816 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
3817 (init_ready_list): Use try_ready.
3818 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3819 * lists.c (remove_list_elem): Remove `static'.
3820 (remove_free_INSN_LIST_elem): New function.
3821 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3822 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3823 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3824 New constants.
3825 (readyp): New variable.
3826 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3827 change_queue_index, resolve_dep): New static functions.
3828 (try_ready): New function. Adjust callers in sched-rgn.c and
3829 sched-ebb.c to use it instead of ready_add.
3830 (clock_var): Move at the begining of file.
3831 (rank_for_schedule): Fix typo.
3832 (queue_insn): Add assertion. Handle QUEUE_INDEX.
3833 (ready_lastpos): Enforce assertion.
3834 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
3835 update all callers.
3836 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3837 (schedule_insn): Rewrite to use try_ready and resolve_dep.
3838 (queue_to_ready): Use free_INSN_LIST_list.
3839 (early_queue_to_ready): Fix typo.
3840 (schedule_block): Init readyp. Move init_ready_list call after the
3841 initialization of clock_var. Fix error in rejecting insn by
3842 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
3843 that previously corrected INSN_TICKs. Add code for handling
3844 QUEUE_INDEX.
3845 (set_priorities): Fix typo.
3846 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3847 Clarify comment and code that keeps current_sched_info->next_tail
3848 non-null.
3849
d08eefb9
MK
38502006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3851
3852 * sched-rgn.c (extend_rgns): New static function.
3853 (find_rgns): Use it.
3854 (gather_region_statistics, print_region_statistics): New static
3855 functions.
3856 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
dec6909b 3857 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
d08eefb9 3858
ddbd5439 38592006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
dec6909b 3860 Andrey Belevantsev <abel@ispras.ru>
ddbd5439
MK
3861
3862 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
dec6909b 3863 * lists.c (unused_deps_list): New variable.
4b1c1f6f 3864 (free_list): Add assertions to verify the proper distinguishing
dec6909b
RH
3865 between INSN_LISTs and DEPS_LISTs.
3866 (find_list_elem, remove_list_elem, remove_list_node): New static
ddbd5439 3867 functions.
dec6909b
RH
3868 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3869 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3870 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3871 (alloc_INSN_LIST): Assert that the list we're working on is indeed
ddbd5439 3872 an INSN_LIST.
dec6909b 3873 (free_INSN_LIST_node): Likewise.
ddbd5439
MK
3874 * modulo-sched.c (current_sched_info): Initialize flags field.
3875 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3876 * rtl.def (DEPS_LIST): Define.
dec6909b
RH
3877 * rtl.h: Declare new functions from lists.c.
3878 * sched-deps.c (spec_dependency_cache): New static variable.
3879 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3880 (add_dependence): Change return type to void. Move the logic to ...
3881 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
3882 (delete_all_dependences): Add comment about forward_dependency_cache.
ddbd5439 3883 Handle spec_dependency_cache. Handle DEPS_LISTs.
dec6909b
RH
3884 (fixup_sched_groups): Clarify the change of priority of output
3885 and anti dependencies.
3886 (sched_analyze_2): Adjust add_dependence calls to create data
ddbd5439 3887 speculative dependence.
dec6909b 3888 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
ddbd5439 3889 Adjust all callers. Handle DEPS_LISTS.
dec6909b 3890 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
ddbd5439 3891 presence of speculation.
dec6909b 3892 (init_dependency_caches, free_dependency_caches):
ddbd5439 3893 Handle spec_dependency_cache.
dec6909b 3894 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
ddbd5439
MK
3895 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3896 New static functions.
dec6909b 3897 (add_or_update_back_dep, add_or_update_back_forw_dep,
ddbd5439
MK
3898 add_back_forw_dep, delete_back_forw_dep): New functions.
3899 * sched-int.h (ds_t, dw_t): New typedefs.
3900 (struct sched_info): Add new field flags.
3901 (struct haifa_insn_data): Add new bitfield has_internal_dep.
3902 Prototype new sched-deps.c functions.
dec6909b 3903 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
ddbd5439
MK
3904 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3905 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3906 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3907 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3908 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3909 New constants.
dec6909b 3910 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
ddbd5439
MK
3911 New enums.
3912 * sched-rgn.c (current_sched_info): Initialize flags field.
3913 (schedule_insns): Initialize current_sched_info before the sched_init
3914 call.
3915 * sched-ebb.c (current_sched_info): Initialize flags field.
3916 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3917 Call add_or_update_back_dep instead of add_dependence.
3918 Create control speculative dependencies.
3919 (schedule_insns): Initialize current_sched_info before the sched_init
3920 call.
3921
3062335c
KK
39222006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
3923
3924 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3925 fs->signal_frame.
3926 (sh_fallback_frame_state): Likewise.
3927
747b9f55
GK
39282006-03-15 Geoffrey Keating <geoffk@apple.com>
3929
3930 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3931 Do switch on default_use_cxa_atexit.
3932 (powerpc*-*-darwin*): Build crt2.o on powerpc.
3933 * config/darwin-crt3.o: New.
3934 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3935 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
3936 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3937 OS version.
3938 * config/rs6000/t-darwin: Move crt2.o building to here.
3939 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3940 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
3941 of __cxa_atexit.
3942
79166a87
JBG
39432006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3944
3945 * config/vax/vax.c (nonindexed_address_p): Change logical negation
3946 from '! xxx' to '!xxx' for coding-style conformance.
3947 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3948 (EXTRA_CONSTRAINT): Likewise.
3949 * config/vax/vax.md (four unnamed insns): Likewise.
4b1c1f6f 3950
34a9f549
PB
39512006-03-15 Paul Brook <paul@codesourcery.com>
3952
3953 * config/arm/arm.c (minipool_pad): New.
5a281edb 3954 (add_minipool_forward_ref): Include pool alignment padding in address
34a9f549
PB
3955 calculation.
3956 (push_minipool_fix): Set minipool_pad.
3957 (minipool_pad): Ditto.
3958
ff9d4590
JBG
39592006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3960
3961 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3962 instead of GET_CODE() == MEM and REG_P() instead of
3963 GET_CODE() == REG.
3964 (print_operand_address): Likewise.
3965 (vax_address_cost): Likewise.
3966 (vax_rtx_costs): Likewise.
3967 (vax_notice_update_cc): Likewise.
3968 (vax_output_int_add): Likewise.
3969 (INDEX_REGISTER_P): Likewise.
3970 (BASE_REGISTER_P): Likewise.
3971 (nonindexed_address_p): Likewise.
3972 (vax_mode_dependent_address_p): Likewise.
3973 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3974 (PRINT_OPERAND): Likewise.
3975 * config/vax/vax.md (ashlsi3): Likewise.
3976 (ashlsi3): Likewise.
3977 (some more unnamed insns): Likewise.
3978
db490c39
KH
39792006-03-15 Kazu Hirata <kazu@codesourcery.com>
3980
3981 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3982 iterator-style macro.
3983 (mark_control_dependent_edges_necessary): Update the use of
3984 EXECUTE_IF_CONTROL_DEPENDENT.
3985
f705a9a0
R
39862006-03-15 J"orn Rennecke <joern.rennecke@st.com>
3987
3988 * config/sh/predicates.md (cache_address_operand): Special.
3989 (ua_address_operand): Likewise.
3990
8b96512f
ZD
39912006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
3992
3993 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
3994 loop notes.
3995 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
3996
c0fa4721
AS
39972006-03-15 Andreas Schwab <schwab@suse.de>
3998
3999 * gensupport.c (identify_predicable_attribute): Don't free p_false
4000 when it is still in use.
4001
cc0f8895
EB
40022006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
4003
4004 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
4005 the default setting here.
4006
1cba0d4e
SB
40072006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
4008
4009 * tree-pass.h (pass_cfg): Remove.
4010 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
4011 * passes.c (pass_cfg): Don't run it.
4012
e4881f23
KH
40132006-03-14 Kazu Hirata <kazu@codesourcery.com>
4014
4015 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
4016 * reg-stack.c (stack_regs_mentioned_data): Change the type to
4017 VEC(char,heap) *.
4018 (stack_regs_mentioned): Update the uses of
4019 stack_regs_mentioned_data. Don't access the array beyond its
4020 end.
4021 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
4022 Don't include gt-reg-stack.h.
4023
02433683
KH
4024 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
4025 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
4026
df6872b7
KH
4027 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
4028
5b94780f
KH
4029 PR middle-end/26684
4030 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
4031 STACK_REGS.
4032
e1835ff1
JDA
40332006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4034
4035 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
4036
b5564e87
RG
40372006-03-14 Richard Guenther <rguenther@suse.de>
4038
4039 PR tree-optimization/26672
4040 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
4041 SSA form.
4042
6971d714
RG
40432006-03-14 Richard Guenther <rguenther@suse.de>
4044
4045 PR tree-optimization/26667
4046 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
4047 node for the callees. Always allow inlining if it will shrink
4048 the function size.
4049
7de80559
RG
40502006-03-14 Richard Guenther <rguenther@suse.de>
4051
4052 PR middle-end/26659
4053 * builtins.c (get_pointer_alignment): Prefer alignment
4054 information from decls over that from types.
4055
0e512a4f
AP
40562006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
4057
4058 PR target/26657
4059 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
4060
716019c0
JM
40612006-03-14 Joseph S. Myers <joseph@codesourcery.com>
4062
4063 * config/rs6000/rs6000.opt (mdlmzb): New option.
4064 (msched-prolog, msched-epilog): Use Var not Mask.
4065 * doc/invoke.texi (-mdlmzb): Document.
4066 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
4067 MASK_SCHED_PROLOG.
4068 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
4069 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
4070
a14df7da
UP
40712006-03-13 Uttam Pawar <uttamp@us.ibm.com>
4072
4073 PR rtl-optimization/25739
4074 * bt-load.c (augment_live_range): Free tos pointer.
4075
4076 * gensupport.c (identify_predicable_attribute): Free
4077 p_false pointer.
4078 * gcov.c (create_file_names): Free name pointer.
4079
f8318079
RS
40802006-03-13 Roger Sayle <roger@eyesopen.com>
4081
4082 PR middle-end/26557
4083 * stmt.c (emit_case_nodes): Handle the case where the index is a
4084 CONST_INT, where the comparison mode is specified by the index type.
4085
26a851b9
JDA
40862006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4087
4088 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
4089 is defined.
4090
94c5a841
RS
40912006-03-13 Richard Sandiford <richard@codesourcery.com>
4092
4093 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
4094 (*branch_fp_inverted): Likewise.
4095
5b4fc8fb
JJ
40962006-03-13 Jakub Jelinek <jakub@redhat.com>
4097
4098 PR middle-end/25989
4099 * omp-low.c (expand_omp_for_generic): Mark istart0
4100 and iend0 as addressable.
4101
792e526b
JZ
41022006-03-13 Jie Zhang <jie.zhang@analog.com>
4103
4104 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
4105
2bbec6d9
JL
41062006-03-13 Jeff Law <law@redhat.com>
4107
4108 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
4109 virtual operands are interesting.
4110 (vrp_visit_stmt): Corresponding changes.
4111
a94aa272
BS
41122006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
4113
4114 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
4115 of RETS.
4af990cd
BS
4116 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
4117 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
4118 * config/bfin/crti.S: Use it instead of __PIC__.
4119 * config/bfin/crtn.S: Likewise.
a94aa272 4120
96c30d2a
BS
4121 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
4122 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
4123 not if flag_pic.
4124 Lose 'G' modifier for call operand.
4125 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
4126 recognize 'G' modifier.
4127
3feaea00
EB
41282006-03-13 Eric Botcazou <ebotcazou@adacore.com>
4129
4130 PR middle-end/18859
4131 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
4132 * stmt.c (expand_case): Likewise.
4133
ba946209
ZD
41342006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4135
4136 PR rtl-optimization/26254
4137 * loop-invariant.c (seq_insns_valid_p): New function.
4138 (move_invariant_reg): Only emit new code if it is valid.
4139
96e82e0a
ZD
41402006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4141
4142 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
4143 Removed.
4144 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
4145 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
4146 (commit_one_edge_insertion): Do not look for loop notes.
4147
50af6384
ZD
41482006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4149
4150 * jump.c (follow_jumps): Do not check for loop notes. Move check for
4151 flag_test_coverage out of loop.
4152
80838531
ZD
41532006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4154
4155 * final.c (shorten_branches): Remove outdated comment, and turn
4156 the if branch that guards it to continue.
4157
7490e6c4
ZD
41582006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4159
4160 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
4161 * cfgloop.h (struct loop): Remove unused fields.
4162
5abcfa7e
KH
41632006-03-13 Kazu Hirata <kazu@codesourcery.com>
4164
4165 * doc/invoke.texi (-fdump-rtl-loop): Remove.
4b1c1f6f 4166 (-dL, -fdump-rtl-loop2): Update the dump file names
5abcfa7e 4167
c6075909
KH
4168 * doc/invoke.texi: Update dump file names.
4169
3d47ea88
SB
41702006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
4171
4172 * predict.c (estimate_probability): Remove.
4173 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
4174 * basic-block.h (estimate_probability): Remove prototype.
4175 * passes.c (finish_optimization_passes): Dump branch prediction or
4176 profiling heuristics to the .profile tree dump.
4177 (init_optimization_passes): Unqueue pass_branch_prob.
4178
4179 * doc/invoke.texi (-fdump-rtl-bp): Remove.
4180
fc6c490e
SB
41812006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
4182
4183 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
4184 * rtl.h (LABEL_NEXTREF): Remove field accessor.
4185
9fb798d7
EB
41862006-03-11 Eric Botcazou <ebotcazou@adacore.com>
4187
4188 * function.h (frame_offset_overflow): Declare.
4189 * function.c (frame_offset_overflow): New function.
4190 (assign_stack_local_1): Call it to detect that the offset overflows.
4191 * cfgexpand.c (alloc_stack_frame_space): Likewise.
4192
6dd3c0a5
SB
41932006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
4194
4195 * config/sh/sh.c: Include alloc-pool.h.
4196 (label_ref_list_pool): New alloc pool.
4197 (label_ref_list_t): New type for lists of labels.
4198 (struct pool_node): Make wend a label_ref_list_t.
4199 (add_constant): Use the new type, eradicate LABEL_NEXTREF
4200 references.
4201 (dump_table): Likewise.
4202 (sh_reorg): Set up the alloc pool before using add_constant and
4203 dump_table, and destroy it when finishing.
4204
a70ec386
RS
42052006-03-11 Richard Sandiford <richard@codesourcery.com>
4206
4207 * config/mips/mips.c: Remove redundant comment.
4208
21f9ec0c
JM
42092006-03-10 Jason Merrill <jason@redhat.com>
4210
4211 PR c/26004
4b1c1f6f 4212 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
21f9ec0c
JM
4213 the target was declared 'register'.
4214
a8597866
AN
42152006-03-10 Adam Nemet <anemet@caviumnetworks.com>
4216
4217 * genpreds.c (write_insn_constraint_len): Change definition of
4218 insn_constraint_len to return size_t to match the declaration.
4219
8e4edce7
DD
42202006-03-10 DJ Delorie <dj@redhat.com>
4221
4222 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
4223 start at zero.
4224 (m32c_expand_insv): Fix test for an AND mask.
4225
891c0eee
RG
42262006-03-10 Richard Guenther <rguenther@suse.de>
4227
4228 PR middle-end/26565
4229 * builtins.c (get_pointer_alignment): Handle component
4230 references for field alignment.
4231
8c1aaf26
R
42322006-03-10 J"orn Rennecke <joern.rennecke@st.com>
4233
4234 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
4235 when building with libgloss.
4236 (sh*elf): Implement --without-fp option.
4b1c1f6f 4237 (sh64-superh-linux*): Don't multilib.
8c1aaf26 4238
7a6164d4
R
42392006-03-10 J"orn Rennecke <joern.rennecke@st.com>
4240
4241 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
4242
3e0a08d7
AP
42432006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
4244
4245 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
4246 Set it when one of the replacement functions returned true.
4247 Return TODO_cleanup_cfg if cfgchanged is true.
4248 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
4249
f243cee6
AN
42502006-03-09 Adam Nemet <anemet@caviumnetworks.com>
4251
4252 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
4253 instead of gen_lowpart.
4254
a8c1d5f8
RS
42552006-03-09 Richard Sandiford <richard@codesourcery.com>
4256
4257 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
4258 interface.
4259 (mips_output_order_conditional_branch): Declare.
4260 * config/mips/mips.h (MIPS_BRANCH): New macro.
4261 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
4262 for the comparison. Use gen_condjump.
4263 (mips_output_conditional_branch): Rework interface to take the
4264 asm templates for a direct branch and the inverse of a direct branch.
4265 (mips_output_order_conditional_branch): New function.
4266 (mips_builtin_branch_and_move): New function.
4267 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
4268 branch condition. Use gen_single_cc as the condition for
4269 __builtin_mips_upper_* or __builtin_mips_lower_*.
4270 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
4271 Use VOIDmode for the branch condition.
4272 * config/mips/predicates.md (order_operator): New predicate.
4273 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
4274 (branch_fp): Rename to...
4275 (*branch_fp): ...this. Remove mode from comparison operator.
4276 Use new mips_output_conditional_branch interface.
4277 (branch_fp_inverted): Rename to...
4278 (*branch_fp_inverted): ...this and update as for *branch_fp.
4279 (*branch_zero<mode>): Rename to...
4280 (*branch_order<mode>): ...this. Remove mode from comparison operator.
4281 Use mips_output_order_conditional_branch. Only accept ordered
4b1c1f6f 4282 comparisons.
a8c1d5f8
RS
4283 (*branch_zero<mode>_inverted): Rename to...
4284 (*branch_order<mode>_inverted): ...this and update as for
4285 *branch_order<mode>.
4286 (*branch_equality<mode>): Accept zero as the second operand to
4287 the equality operator. Use the new mips_output_conditional_branch
4288 interface.
4289 (*branch_equality<mode>_inverted): Likewise.
4290 (condjump): New expander.
4291 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
4292 operator.
4293 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
4294 (bc1any2t, bc1any2f): Likewise.
4295 (single_cc): New expander.
4296 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
4297
cbbb5b6d
RS
42982006-03-09 Richard Sandiford <richard@codesourcery.com>
4299
4300 * doc/md.texi: Update documentation of MIPS constraints.
4301 * config/mips/constraints.md: New file.
4302 * config/mips/mips.md: Include it.
4303 * config/mips/mips.c (mips_char_to_class): Delete.
4304 (override_options): Don't initialize mips_char_to_class.
4305 * config/mips/mips.h (mips_char_to_class): Delete.
4306 (REG_CLASS_FROM_LETTER): Delete.
4307 (CONST_OK_FOR_LETTER_P): Delete.
4308 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4309 (EXTRA_CONSTRAINT_Y): Delete.
4310 (EXTRA_CONSTRAINT_STR): Delete.
4311 (CONSTRAINT_LEN): Delete.
4312 (EXTRA_MEMORY_CONSTRAINT): Delete.
4313
1799e5d5
RH
43142006-03-09 Diego Novillo <dnovillo@redhat.com>
4315
4316 * tree-cfg.c (move_block_to_fn): Remove the statements from the
4317 original fn's eh regions.
4318
f8fe0545
EB
43192006-03-09 Eric Botcazou <ebotcazou@adacore.com>
4320
4321 * fold-const.c (build_range_check): Make sure to use a valid type to
4322 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
4323 transformation.
4324
4325 (range_predecessor): New static function.
4326 (range_successor): Likewise.
4327 (merge_ranges): Use them to compute predecessors and successors of
4328 range bounds.
4329
d56ee62b
RS
43302006-03-09 Roger Sayle <roger@eyesopen.com>
4331
4332 PR middle-end/26561
4333 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
4334 X op C3, consider whether C3 overflows towards +Inf or -Inf.
4335
07127a0a
DD
43362006-03-08 DJ Delorie <dj@redhat.com>
4337
4338 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
4339 (addpsi3): Expand to include memory operands. Remove
4340 reload-specific splits.
4341 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
4342 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
4343 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
4344 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
4345 (shift1_qi, shift1_hi, insv): New.
4346 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
4347 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
4348 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
4349 cond_to_int): New.
4350 * config/m32c/m32c-protos.h: Update as needed.
4351 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
4352 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
4353 Fail for unrecognized R* constraints.
4354 (m32c_cannot_change_mode_class): Be more picky about pseudos.
4355 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
4356 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
4357 Add Sp constraint.
4358 (m32c_init_libfuncs): New.
4359 (m32c_legitimate_address_p): Add debug wrapper.
4360 (m32c_rtx_costs): New.
4361 (m32c_address_cost): New.
4362 (conversions): Add 'B' prefix.
4363 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
4364 operands, or word regnames for QI operands. 'B' prints bit
4365 position.
4366 (m32c_expand_setmemhi): New.
4367 (m32c_expand_movmemhi): New.
4368 (m32c_expand_movstr): New.
4369 (m32c_expand_cmpstr): New.
4370 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
4371 (m32c_expand_neg_mulpsi3): Handle non-ints.
4372 (m32c_cmp_flg_0): New.
4373 (m32c_expand_movcc): New.
4374 (m32c_expand_insv): New.
4375 (m32c_scc_pattern): New.
4376 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
4377 a0/a1 out of SIregs.
4378 (STORE_FLAG_VALUE): New.
4379 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
4380 code macros.
4381 (no_insn): New.
4382 * config/m32c/mov.md: Make constraints more liberal.
4383 (zero_extendqihi2): Optimize r0/r1 case.
4384 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
4385 * config/m32c/predicates.md (m32c_any_operand): New.
4386 (m32c_nonimmediate_operand): New.
4387 (m32c_hl_operand): New.
4388 (m32c_r3_operand): New.
4389 (ap_operand): New.
4390 (ma_operand): New.
4391 (memsym_operand): New.
4392 (memimmed_operand): New.
4393 (a_qi_operand): New.
4394 (m32c_eqne_operator): New.
4395 (m32c_1bit8_operand): New.
4396 (m32c_1bit16_operand): New.
4397 (m32c_1mask8_operand): New.
4398 (m32c_1mask16_operand): New.
4399 * config/m32c/blkmov.md: New file.
4400 * config/m32c/t-m32c (MD_FILES): Add blkmov.
4401
6677e189
AT
44022006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
4403
8f4fc766
AT
4404 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
4405 unsigned to fix signed/unsigned comparison issue in
4406 DWARF2_FRAME_REG_OUT.
4407 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
4408 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
4409
6677e189
AT
4410 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
4411 of ptr into the ENABLE_CHECKING section.
4412
60c9ad46
JL
44132006-03-08 Jeff Law <law@redhat.com>
4414
4415 * tree-vrp.c (infer_value_range): Only count pointer uses
4416 and dereferences if -fdelete-null-pointer-checks is enabled.
4417
4418 * tree-vrp.c (find_assert_locations): Infer value ranges for
4419 single use pointers, but do not create ASSERT_EXPRs for them.
4420 When a non-null range is inferred for a pointer, backwards
4421 propagate that range to other equivalent pointers through the
4422 use-def chain.
4423
dedfa466
PB
44242006-03-08 Paolo Bonzini <bonzini@gnu.org>
4425
4426 PR bootstrap/26500
4427 * Makefile.in (dvi, html, install-info): Invoke the corresponding
4428 language hook targets.
4429 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
4430 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
4431 if language hook targets were missing.
4432
ac574e1b
ZD
44332006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
4434
4435 * tree-ssa-opfinalize.h: Removed.
4436 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
4437 dependency.
4438 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
4439 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
4440 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
4441 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
4442 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
4443 finalize_ssa_v_must_def_ops): New.
4444
50d5ff7d
KZ
44452006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
4446
4447 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
4448 block as parameter.
4449
fb638355
GK
44502006-03-07 Geoffrey Keating <geoffk@apple.com>
4451
cd554454
GK
4452 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
4453
dbde310d
GK
4454 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
4455 addresses with offsets; reorganize.
4456
fb638355
GK
4457 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
4458 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
4459 (expand_builtin_init_dwarf_reg_sizes): Likewise.
4460
0f047685
DB
44612006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
4462
4463 PR target/26588
4464 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
4465
c18f0c26
BE
44662006-03-08 Ben Elliston <bje@au.ibm.com>
4467
4468 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
4469
48fa3029
AH
44702006-03-07 Aldy Hernandez <aldyh@redhat.com>
4471
4472 PR gomp/26238
4473 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
4474 expansion.
4475
6f1be8e1
RG
44762006-03-07 Richard Guenther <rguenther@suse.de>
4477
4478 PR tree-optimization/26587
4479 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
4480
6410fb81
RS
44812006-03-07 Richard Sandiford <richard@codesourcery.com>
4482
4483 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
4484
1d3dbd99
RS
44852006-03-07 Richard Sandiford <richard@codesourcery.com>
4486
4487 * hooks.c (hook_bool_mode_rtx_true): New function.
4488 * hooks.h (hook_bool_mode_rtx_true): Declare.
4489 * toplev.c (compile_file): Call output_shared_constant_pool.
4490 * varasm.c (shared_constant_pool): New variable.
4491 (assemble_start_function, assemble_end_function): Remove arguments
4492 from call to output_constant_pool.
4493 (create_constant_pool): New function, split out from...
4494 (init_varasm_status): ...here.
4495 (force_const_mem): Choose between the shared and per-function constant
4496 pools. Set current_function_uses_const_pool when reusing old entries
4497 as well as when creating new ones.
4498 (mark_constant): Ignore data argument.
4499 (mark_constants): Remove pool argument.
4500 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
4501 to decide whether the function uses a constant pool.
4502 (output_constant_pool_contents): New function, split out from...
4503 (output_constant_pool): ...here.
4504 (output_shared_constant_pool): New function.
4505 (init_varasm_once): Initialize shared_constant_pool.
4506 * output.h (output_constant_pool): Delete.
4507 (output_shared_constant_pool): Declare.
4508 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
4509 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
4510
7d14f0fc
NC
45112006-03-06 Nick Clifton <nickc@redhat.com>
4512
4513 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
4514 flag_strength_reduce.
4515
d9b9633d
BE
45162006-03-06 Ben Elliston <bje@au.ibm.com>
4517
45b9a4e8
BE
4518 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
4519 x86_64-*-linux* configurations.
4520
d9b9633d 4521 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
c92f986f 4522 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
d9b9633d 4523
acfc4f0a
KH
45242006-03-05 Kazu Hirata <kazu@codesourcery.com>
4525
4526 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
4527 Remove.
4528 * basic-block.h: Remove the extern for
4529 rediscover_loops_after_threading.
4530
b00bf166
KH
4531 * cfgloop.c (cancel_loop): Make it static.
4532 * cfgloop.h: Remove the prototype for cancel_loop.
4533
a678e384
KH
4534 * flow.c (recompute_reg_usage): Make it static.
4535 * rtl.h: Remove the prototype for recompute_reg_usage.
4536
0bf8477d
KH
4537 * function.c (use_return_register): Make it static.
4538 * function.h: Remove the prototype.
4539
d42ee77a
KH
45402006-03-05 Kazu Hirata <kazu@codesourcery.com>
4541
4542 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
4543 Remove.
4544 * recog.h: Remove the prototype for
4545 validate_change_maybe_volatile.
4546
dc782dcd
KH
45472006-03-05 Kazu Hirata <kazu@codesourcery.com>
4548
4549 * rtlanal.c (replace_reg): Remove.
4550 * rtl.h: Remove the prototype for replace_reg.
4551
3c491cab
KH
45522006-03-05 Kazu Hirata <kazu@codesourcery.com>
4553
4554 * regclass.c (reg_scan_update): Remove.
4555 (reg_scan_mark_refs): Remove the last argument.
4556 * rtl.h: Remove the prototype for reg_scan_update.
4557
c0220ea4
KH
45582006-03-04 Kazu Hirata <kazu@codesourcery.com>
4559
4560 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
4561 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
4562 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
4563 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
4564 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
4565 loop-invariant.c, omp-low.c, opts.c, passes.c,
4566 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
4567 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
4568 tree-ssa-structalias.c, tree-ssa-threadedge.c,
4569 tree-ssa-threadupdate.c, tree-vect-patterns.c,
4570 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
4571 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
4572
ae3b9f19
KH
45732006-03-04 Kazu Hirata <kazu@codesourcery.com>
4574
4575 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
4576 * dwarf2out.h: Remove the prototype for
4577 dwarf2out_add_library_unit_info.
4578
a82db052
KH
45792006-03-04 Kazu Hirata <kazu@codesourcery.com>
4580
4581 * tree.c (add_var_to_bind_expr): Remove.
4582 * tree.h: Remove the prototype for add_var_to_bind_expr.
4583
3c6c67f8
KH
45842006-03-04 Kazu Hirata <kazu@codesourcery.com>
4585
4586 * regclass.c (n_non_fixed_regs): Remove.
4587 (init_reg_sets_1, globalize_reg): Remove all uses of
4588 n_non_fixed_regs.
4589 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
4590
22ec0cc8
KH
45912006-03-04 Kazu Hirata <kazu@codesourcery.com>
4592
4593 * rtlanal.c (insns_safe_to_move_p): Remove.
4594 * rtl.h: Remove the prototype for insns_safe_to_move_p.
4595
2f8dc5bb
KH
45962006-03-04 Kazu Hirata <kazu@codesourcery.com>
4597
4598 * expmed.c (expand_mult_add): Remove.
4599 * expr.h: Remove the prototype for expand_mult_add.
4600
4469af7a
JJ
46012006-03-04 Jakub Jelinek <jakub@redhat.com>
4602
4603 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
4604 and REG_SAVED_VAL_EXP constants.
4605 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
4606 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
4607 Handle regs stored by value.
4608 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
4609 (execute_cfa_program): Handle DW_CFA_val_offset,
4610 DW_CFA_val_offset_sf and DW_CFA_val_expression.
4611 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
4612 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
4613 (uw_install_context_1): Handle target regs stored by value.
4614
efdb3de9
DB
46152006-03-03 Daniel Berlin <dberlin@dberlin.org>
4616
4617 * tree-sra.c (tree_sra): Return todoflags;
4618 (generate_one_element): Set TODO_update_smt_usage if needed.
4619 (pass_sra): Remove TODO_update_smt_usage.
4620 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
4621 parameter.
4622 (tree_ssa_forward_propagate_single_use_vars): Return
4623 TODO_update_smt_usage if we need to update SMT usage.
4624 (pass_forwprop): Remove TODO_update_smt_usage.
4b1c1f6f 4625
65ad7c63
DN
46262006-03-03 Diego Novillo <dnovillo@redhat.com>
4627
4628 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
4629 (correct_use_link): Remove reference to get_stmt_operands.
4630 (update_stmt_operands): Likewise.
4631 (get_modify_expr_operands): New function factored out of
4632 parse_ssa_operands and get_expr_operands.
4633 Try to create V_MUST_DEFs for LHS by default.
4634 (get_expr_operands) <case MODIFY_EXPR>: Call
4635 get_modify_expr_operands.
4636 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
4637 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
4638 (parse_ssa_operands) <case MODIFY_EXPR>: Call
4639 get_modify_expr_operands.
4640
417e90ca
KH
46412006-03-03 Kazu Hirata <kazu@codesourcery.com>
4642
4643 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
4644 * tree-flow.h: Remove the prototype for
4645 referenced_var_lookup_if_exists.
4646
f6d65153
SE
46472006-03-03 Steve Ellcey <sje@cup.hp.com>
4648
4649 PR rtl-optimization/26345
4650 PR target/19061
4651 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
4652
9a75ede0
RS
46532006-03-03 Roger Sayle <roger@eyesopen.com>
4654
4655 PR tree-optimization/26524
4656 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
4657 fold_convert to create a constant of the appropriate type.
4658
3fa9c136
RS
46592006-03-03 Richard Sandiford <richard@codesourcery.com>
4660
4661 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4662 SYMBOL_REF_IN_BLOCK_P.
4663 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
4664 of SYMBOL_FLAG_IN_BLOCK.
4665 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
4666 instead of SYMBOL_REF_IN_BLOCK_P.
4667 * explow.c (use_anchored_address): Likewise.
4668 * rtl.c (rtx_size): Likewise.
4669 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
4670 instead of SYMBOL_FLAG_IN_BLOCK.
4671 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4672 SYMBOL_REF_IN_BLOCK_P.
4673 (assemble_variable): Likewise.
4674 (output_constant_def_contents): Likewise.
4675 (output_constant_pool): Likewise.
4676 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
4677 instead of SYMBOL_FLAG_IN_BLOCK.
4678 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4679 SYMBOL_REF_IN_BLOCK_P.
4680 (SYMBOL_REF_BLOCK): Likewise.
4681 (SYMBOL_REF_OFFSET): Likewise.
4682 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4683 SYMBOL_REF_IN_BLOCK_P.
4684 (SYMBOL_FLAG_IN_BLOCK): Replace with...
4685 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
4686 (SYMBOL_REF_IN_BLOCK_P): Replace with...
4687 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
4688
f677599e
JJ
46892006-03-03 Jakub Jelinek <jakub@redhat.com>
4690
4691 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
4692
0f2f71b5
RS
46932006-03-02 Roger Sayle <roger@eyesopen.com>
4694
4695 * simplify-rtx.c (simplify_unary_operation): When simplifying
4696 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
4697 that we perform the right shift in the appropriate mode, and
4698 then extend or truncate the result to requested mode.
4699
f82783bd
ZD
47002006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
4701
4702 * gengtype.c (main): Handle double_int type.
4703 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
4704 * double-int.c: New file.
4705 * double-int.h: New file.
4706 * system.h: Include doubleint.h.
4707 * Makefile.in (SYSTEM_H): Include double-int.h.
4708 (double-int.o): Add.
4709
778f0e89
JM
47102006-03-03 Joseph S. Myers <joseph@codesourcery.com>
4711
4712 PR bootstrap/26478
4713 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
4714 copying over it.
4715
701b8964
ZD
47162006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
4717
0f2f71b5
RS
4718 * tree-vrp.c (remove_range_assertions): Do not update statements
4719 unnecessarily.
701b8964 4720
59994160
ZD
47212006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
4722
4723 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
4724 cleanup.
4725 * gcse.c (rest_of_handle_gcse): Ditto.
4726 * except.c (gate_handle_eh): Ditto.
4727 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
4728 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
4729
5143b5fc
EC
47302006-03-02 Eric Christopher <echristo@apple.com>
4731
4732 * config/i386/i386.c (machopic_output_stub): Add indirection to
4733 jump.
4734
c6ba18c6
ZD
47352006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
4736
4737 * loop.c: Removed.
4738
4c837a1e
DM
47392006-03-02 David S. Miller <davem@sunset.davemloft.net>
4740
4741 Sun Niagara specific optimizations.
4742 * config.gcc: Recognize niagara as target.
4743 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
4744 (TARGET_CPU_niagara): Define.
4745 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
4746 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
4747 (CPP_CPU_SPEC): Handle -mcpu=niagara.
4748 (ASM_CPU_SPEC): Likewise.
4749 (PROCESSOR_NIAGARA): New enum entry.
4750 (REGISTER_MOVE_COST): Handle Niagara.
4751 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
4752 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
4753 (sparc_override_options): Recognize "niagara", set appropriate
4754 default MASK_* values for it, and align functions to 32-bytes
4755 by default just like ULTRASPARC/ULTRASPARC3.
4756 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
4757 (sparc64_initialize_trampoline): Likewise.
4758 (sparc_use_sched_lookahead): Use zero for niagara.
4759 (sparc_issue_rate): Use one for niagara.
4760 * config/sparc/niagara.md: New file.
4761 * config/sparc/sparc.md: Include it.
4762 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
4763 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
4764 when default cpu is niagara.
4765 (CPP_CPU_SPEC): Handle -mcpu=niagara.
4766 (ASM_CPU_SPEC): Likewise.
4767 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
4768 when default cpu is niagara.
4769 (ASM_CPU_SPEC): Handle -mcpu=niagara.
4770 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
4771 just like v9/ultrasparc/ultrasparc3.
4772 * doc/invoke.texi: Add documentation for "niagara" and improve
4773 existing documentation for ultrasparc variants.
5143b5fc 4774
2434ab1d
DN
47752006-03-02 Diego Novillo <dnovillo@redhat.com>
4776
4777 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
4778
434aeebb
RS
47792006-03-02 Richard Sandiford <richard@codesourcery.com>
4780
4781 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
4782 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
4783 and say that only one is needed.
4784 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
4785 * target.h (have_switchable_bss_sections): New hook.
4786 * explow.c (use_anchored_address): Check that the symbol is in a block.
4787 * varasm.c (tls_comm_section, comm_section, lcomm_section)
4788 (bss_noswitch_section): New variables.
4789 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
4790 (get_noswitch_section): New function.
4791 (get_block_for_section): Allow SECT to be null.
4792 (unlikely_text_section_p): Use SECTION_STYLE.
4793 (bss_initializer_p): New function.
4794 (get_variable_section): Move earlier in file. Take a new argument,
4795 prefer_noswitch_p. Move bss checks from assemble_variable to here.
4796 Return one of the new *_sections in such cases.
4797 (get_block_for_decl): New function, extracting some logic from
4798 use_blocks_for_decl_p.
4799 (change_symbol_section): Remove in favor of...
4800 (change_symbol_block): ...this new function.
4801 (use_blocks_for_decl_p): Remove checks now performed by
4802 get_block_for_decl.
4803 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
4804 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
4805 (emit_local, emit_bss, emit_common): ...these new functions.
4806 Return true if the alignment was honored.
4807 (emit_tls_common): New function.
4808 (asm_emit_uninitialised): Delete.
4809 (assemble_variable_noswitch): New function, split out from...
4810 (assemble_variable): ...here. Don't make decisions about common
4811 variables here. Globalize all public decls that go into non-common
4812 sections. Check whether SYMBOL_REF_BLOCK is null.
4813 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
4814 (output_constant_pool): Likewise.
4815 (init_varasm_once): Initialize the new section variables.
4816 (have_global_bss_p): New function.
4817 (categorize_decl_for_section): Use bss_initializer_p.
4818 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
4819 (place_block_symbol): Assert that the symbol must be in a block.
4820 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
4821 (TARGET_INITIALIZER): Include it.
4822 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
4823 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
4824 (SECTION_MACH_DEP): Bump by two.
4825 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
4826 (unnamed_section): Mention SECTION_UNNAMED in comment.
4827 (named_section): Likewise SECTION_NAMED.
4828 (noswitch_section_callback): New type.
4829 (noswitch_section): New structure.
4830 (section): Add a noswitch_section alternative.
4831 (SECTION_STYLE): New macro.
4832 (tls_comm_section, comm_section, lcomm_section): Declare.
4833 (bss_noswitch_section, have_global_bss_p): Declare.
4834 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
4835 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
4836 Override.
4837 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
4838 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
4839 Override.
4840
c2924966
DB
48412006-03-02 Daniel Berlin <dberlin@dberlin.org>
4842
a1d1988f
MS
4843 * tree-vrp.c (execute_vrp): Return value.
4844 * regrename.c (rest_of_handle_regrename): Ditto.
4845 * tree-into-ssa.c (rewrite_into_ssa): Ditto.
4846 * tree-complex.c (tree_lower_complex): Ditto.
c2924966 4847 (tree_lower_complex_O0): Ditto.
a1d1988f
MS
4848 * tracer.c (rest_of_handle_tracer): Ditto.
4849 * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
4850 * postreload.c (rest_of_handle_postreload): Ditto.
4851 * tree-tailcall.c (execute_tail_recursion): Ditto.
c2924966 4852 (execute_tail_calls): Ditto.
a1d1988f
MS
4853 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4854 * tree.h (init_function_for_compilation): Ditto.
4855 * ipa-cp.c (ipcp_driver): Ditto.
4856 * tree-scalar-evolution.c (scev_const_prop): Ditto.
4857 * tree-scalar-evolution.h (scev_const_prop): Ditto.
4858 * final.c (compute_alignments): Ditto.
c2924966
DB
4859 (rest_of_handle_final): Ditto.
4860 (rest_of_handle_shorten_branches): Ditto.
4861 (rest_of_clean_state): Ditto.
a1d1988f 4862 * omp-low.c (execute_expand_omp): Ditto.
c2924966 4863 (execute_lower_omp): Ditto.
a1d1988f
MS
4864 * tree-ssa-dse.c (tree_ssa_dse): Ditto.
4865 * ipa-reference.c (static_execute): Ditto.
4866 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
4867 * reorg.c (rest_of_handle_delay_slots): Ditto.
c2924966 4868 (rest_of_handle_machine_reorg): Ditto.
a1d1988f
MS
4869 * cgraphunit.c (rebuild_cgraph_edges): Ditto.
4870 * flow.c (recompute_reg_usage): Ditto.
c2924966
DB
4871 (rest_of_handle_remove_death_notes): Ditto.
4872 (rest_of_handle_life): Ditto.
4873 (rest_of_handle_flow2): Ditto.
a1d1988f
MS
4874 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
4875 * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
c2924966
DB
4876 (do_ssa_store_ccp): Ditto.
4877 (execute_fold_all_builtins): Ditto.
a1d1988f
MS
4878 * mode-switching.c (rest_of_handle_mode_switching): Ditto.
4879 * modulo-sched.c (rest_of_handle_sms): Ditto.
4880 * ipa-pure-const.c (static_execute): Ditto.
4881 * cse.c (rest_of_handle_cse): Ditto.
c2924966 4882 (rest_of_handle_cse2): Ditto.
a1d1988f
MS
4883 * web.c (rest_of_handle_web): Ditto.
4884 * tree-stdarg.c (execute_optimize_stdarg): Ditto.
4885 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
4886 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
4887 * tree-nrv.c (tree_nrv): Ditto.
c2924966 4888 (execute_return_slot_opt): Ditto.
a1d1988f 4889 * tree-ssa-alias.c (compute_may_aliases): Ditto.
c2924966 4890 (create_structure_vars): Ditto.
a1d1988f 4891 * loop-init.c (rtl_loop_init): Ditto.
c2924966
DB
4892 (rtl_loop_done): Ditto.
4893 (rtl_move_loop_invariants): Ditto.
4894 (rtl_unswitch): Ditto.
4895 (rtl_unroll_and_peel_loops): Ditto.
4896 (rtl_doloop): Ditto.
a1d1988f 4897 * gimple-low.c (lower_function_body): Ditto.
c2924966 4898 (mark_used_blocks): Ditto.
a1d1988f
MS
4899 * tree-ssa-sink.c (execute_sink_code): Ditto.
4900 * ipa-inline.c (cgraph_decide_inlining): Ditto.
c2924966 4901 (cgraph_early_inlining): Ditto.
a1d1988f
MS
4902 * global.c (rest_of_handle_global_alloc): Ditto.
4903 * jump.c (cleanup_barriers): Ditto.
c2924966 4904 (purge_line_number_notes): Ditto.
a1d1988f 4905 * ifcvt.c (rest_of_handle_if_conversion): Ditto.
c2924966 4906 (rest_of_handle_if_after_reload): Ditto.
a1d1988f 4907 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
c2924966
DB
4908 (tree_ssa_loop_im): Ditto.
4909 (tree_ssa_loop_unswitch): Ditto.
4910 (tree_vectorize): Ditto.
4911 (tree_linear_transform): Ditto.
4912 (tree_ssa_loop_ivcanon): Ditto.
4913 (tree_ssa_empty_loop): Ditto.
4914 (tree_ssa_loop_bounds): Ditto.
4915 (tree_complete_unroll): Ditto.
4916 (tree_ssa_loop_prefetch): Ditto.
4917 (tree_ssa_loop_ivopts): Ditto.
4918 (tree_ssa_loop_done): Ditto.
a1d1988f
MS
4919 * predict.c (tree_estimate_probability): Ditto.
4920 * recog.c (split_all_insns_noflow): Ditto.
c2924966
DB
4921 (rest_of_handle_peephole2): Ditto.
4922 (rest_of_handle_split_all_insns): Ditto.
a1d1988f
MS
4923 * tree-eh.c (lower_eh_constructs): Ditto.
4924 * regmove.c (rest_of_handle_regmove): Ditto.
c2924966 4925 (rest_of_handle_stack_adjustments): Ditto.
a1d1988f
MS
4926 * local-alloc.c (rest_of_handle_local_alloc): Ditto.
4927 * function.c (instantiate_virtual_regs): Ditto.
c2924966
DB
4928 (init_function_for_compilation): Ditto.
4929 (rest_of_handle_check_leaf_regs): Ditto.
a1d1988f 4930 * gcse.c (rest_of_handle_jump_bypass): Ditto.
c2924966 4931 (rest_of_handle_gcse): Ditto.
a1d1988f
MS
4932 * ipa-type-escape.c (type_escape_execute): Ditto.
4933 * alias.c (rest_of_handle_cfg): Ditto.
4934 * tree-if-conv.c (main_tree_if_conversion): Ditto.
4935 * profile.c (rest_of_handle_branch_prob): Ditto.
4936 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
4937 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
4938 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
4939 * tree-dfa.c (find_referenced_vars): Ditto.
4940 * except.c (set_nothrow_function_flags): Ditto.
c2924966
DB
4941 (convert_to_eh_region_ranges): Ditto.
4942 (rest_of_handle_eh): Ditto.
a1d1988f 4943 * emit-rtl.c (unshare_all_rtl): Ditto.
c2924966 4944 (remove_unnecessary_notes): Ditto.
a1d1988f 4945 * except.h (set_nothrow_function_flags): Ditto.
c2924966 4946 (convert_to_eh_region_ranges): Ditto.
a1d1988f
MS
4947 * cfgexpand.c (tree_expand_cfg): Ditto.
4948 * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
4949 * tree-ssa-pre.c (do_pre): Ditto.
c2924966 4950 (execute_fre): Ditto.
a1d1988f 4951 * cfgcleanup.c (rest_of_handle_jump): Ditto.
c2924966 4952 (rest_of_handle_jump2): Ditto.
a1d1988f
MS
4953 * tree-sra.c (tree_sra): Ditto.
4954 * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
c2924966 4955 (execute_mudflap_function_decls): Ditto.
a1d1988f 4956 * tree-ssa-copy.c (do_copy_prop): Ditto.
c2924966 4957 (do_store_copy_prop): Ditto.
a1d1988f
MS
4958 * ipa-prop.h (ipcp_driver): Ditto.
4959 * cfglayout.c (insn_locators_initialize): Ditto.
4960 * tree-ssa-forwprop.c
c2924966 4961 (tree_ssa_forward_propagate_single_use_vars): Ditto.
a1d1988f
MS
4962 * cfglayout.h (insn_locators_initialize): Ditto.
4963 * tree-ssa-dce.c (tree_ssa_dce): Ditto.
4964 * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
c2924966 4965 (execute_late_warn_uninitialized): Ditto.
a1d1988f 4966 * rtl.h (cleanup_barriers): Ditto.
c2924966
DB
4967 (split_all_insns_noflow): Ditto.
4968 (purge_line_number_notes): Ditto.
4969 (unshare_all_rtl): Ditto.
4970 (remove_unnecessary_notes): Ditto.
4971 (recompute_reg_usage): Ditto.
4972 (variable_tracking_main): Ditto.
a1d1988f
MS
4973 * integrate.c (emit_initial_value_sets): Ditto.
4974 * integrate.h (emit_initial_value_sets): Ditto.
4975 * tree-optimize.c (execute_free_datastructures): Ditto
c2924966
DB
4976 (execute_free_cfg_annotations): Ditto.
4977 (execute_fixup_cfg): Ditto.
4978 (execute_cleanup_cfg_pre_ipa): Ditto.
4979 (execute_cleanup_cfg_post_optimizing): Ditto.
4980 (execute_init_datastructures): Ditto.
a1d1988f
MS
4981 * tree-object-size.c (compute_object_sizes): Ditto.
4982 * combine.c (rest_of_handle_combine): Ditto.
4983 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
4984 * bb-reorder.c (duplicate_computed_gotos): Ditto.
c2924966
DB
4985 (rest_of_handle_reorder_blocks): Ditto.
4986 (rest_of_handle_partition_blocks): Ditto.
a1d1988f
MS
4987 * var-tracking.c (variable_tracking_main): Ditto.
4988 * tree-profile.c (tree_profiling): Ditto.
4989 * tree-vect-generic.c (expand_vector_operations): Ditto.
4990 * reg-stack.c (rest_of_handle_stack_regs): Ditto.
4991 * sched-rgn.c (rest_of_handle_sched): Ditto.
c2924966 4992 (rest_of_handle_sched2): Ditto.
a1d1988f
MS
4993 * basic-block.h (free_bb_insn): Ditto.
4994 * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
4995 * tree-cfg.c (execute_build_cfg): Ditto.
c2924966
DB
4996 (remove_useless_stmts): Ditto.
4997 (split_critical_edges): Ditto.
4998 (execute_warn_function_return): Ditto.
4999 (execute_warn_function_noreturn): Ditto.
a1d1988f
MS
5000 * tree-ssa-reassoc.c (execute_reassoc): Ditto.
5001 * cfgrtl.c (free_bb_for_insn): Ditto.
5002 * passes.c (execute_one_pass): Run additional
c2924966 5003 todos returned by execute function.
a1d1988f 5004 * tree-pass.h (struct tree_opt_pass): Make execute
c2924966
DB
5005 return a value.
5006
62c577fd
RG
50072006-03-02 Richard Guenther <rguenther@suse.de>
5008
5009 * tree-ssa-alias.c (find_used_portions): Consider taking
5010 the address as making the variable not write-only.
5011
c5dde55b
NC
50122006-03-02 Nick Clifton <nickc@redhat.com>
5013
5014 * config.gcc (default_use_cxa_atexit): Extend the description of
5015 this configure variable. Set its default value to "yes" for
5016 Linux, NetBSD and ELF targets on the assumption that they will
5017 use C libraries with the __cxa_atexit function.
5018
75334508
BE
50192006-03-02 Ben Elliston <bje@au.ibm.com>
5020
5021 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
5022 parameter as unused to suppress a build warning.
5023
16c44183
BE
50242006-03-02 Ben Elliston <bje@au.ibm.com>
5025
5026 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
5027 config/dfp-bit.c.
5028
a11dd268
RS
50292006-03-01 Roger Sayle <roger@eyesopen.com>
5030
5031 PR other/26489
5032 * gthr-posix.h (__gthrw2): Define to take three parameters, the
5033 declared name, the weak reference name, and the typeof name.
5034 (__gthrw): Avoid expanding the declared name suffix.
5035 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
5036
d213accd
JJ
50372006-03-01 Jakub Jelinek <jakub@redhat.com>
5038
5039 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
5040 from DWARF 3.
5041 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
5042 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
5043 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
5044 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
5045 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
5046 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
5047 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
5048 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
5049 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
5050 DW_DS_leading_separate, DW_DS_trailing_separate): New.
5051 (DW_END_default, DW_END_big, DW_END_little): New.
5052 (DW_END_lo_user, DW_END_hi_user): Define.
5053 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
5054 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
5055 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
5056 DW_LANG_D): New.
5057
18cd8a03
DN
50582006-03-01 Diego Novillo <dnovillo@redhat.com>
5059
5060 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
5061 Update all users.
5062 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
5063 Update all users.
5064 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
5065 Update all users.
5066 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
5067 Update all users.
5068 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
5069 to 'symbol_mem_tag'.
5070 Update all users.
5071 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
5072 rename.
5073
8acb1b3d
RS
50742006-03-01 Roger Sayle <roger@eyesopen.com>
5075
5076 * builtins.c (fold_builtin_copysign): Delete unreachable code.
5077
c446d1a7
AP
50782006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
5079
5080 PR target/25761
5081 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
5082 MACHO_DYNAMIC_NO_PIC_P.
5083 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
5084
ab0ff804
AP
50852006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
5086
5087 PR target/26389
5088 * config/darwin-protos.h (darwin_asm_output_anchor):
5089 Declare.
5090 * config/darwin-sections.def (cstring_section):
5091 Add SECTION_MERGE to the flags.
5092 (literal4_section): Likewise.
5093 (literal8_section): Likewise.
5094 (objc_selector_refs_section): Likewise.
5095 (objc_cls_refs_section): Likewise.
5096 * config/darwin.c (darwin_asm_output_anchor): New
5097 function.
5098 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
5099
607f460c 51002006-03-01 Daniel Berlin <dberlin@dberlin.org>
18cd8a03 5101
607f460c
DB
5102 Fix PR tree-optimization/26443
5103 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
5104 to todo and PROP_tmt_usage to properties_destroyed.
5105 * tree-ssa-ccp.c (pass_ccp): Ditto.
5106 (pass_store_ccp): Ditto.
5107 * tree-ssa-dom.c (pass_dominator): Ditto.
5108
02075bb2
DN
51092006-03-01 Diego Novillo <dnovillo@redhat.com>
5110
5111 * tree-ssa-operands.c: Cleanup whitespace.
5112 (get_asm_expr_operands): Move before first invocation.
5113 (get_indirect_ref_operands): Likewise.
5114 (get_tmr_operands): Likewise.
5115 (get_call_expr_operands): Likewise.
5116 (append_def): Likewise.
5117 (append_use): Likewise.
5118 (append_v_may_def): Likewise.
5119 (append_v_must_def): Likewise.
5120 (add_call_clobber_ops): Likewise.
5121 (add_call_read_ops): Likewise.
5122 (add_stmt_operand): Likewise.
5123 (add_virtual_operand): Likewise.
5124 (build_ssa_operands): Likewise.
5125
51262006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
1809ff6b
AP
5127
5128 PR middle-end/26022
5129 Revert:
5130 PR middle-end/24437
5131 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
5132 with a call expr to ...
5133 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
5134
6578c101
DN
51352006-03-01 Diego Novillo <dnovillo@redhat.com>
5136
5137 * tree-vrp.c (extract_range_from_assert): Remove special
5138 handling for types with super-types.
5139
0eafb3ec
BE
51402006-03-01 Ben Elliston <bje@au.ibm.com>
5141
ec09c26e
BE
5142 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
5143 and powerpc64-*-linux* configurations.
5144 * config/t-dfprules: New file.
5145
0eafb3ec
BE
5146 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
5147 Compile dfp-bit.c from the source directory using -DWIDTH and
5148 $DFP_CFLAGS to control the compilation of that file, rather than
5149 generating width-specific versions in the build directory.
5150 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
5151 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
5152
cccb0908
ZW
51532006-02-28 Zack Weinberg <zackw@panix.com>
5154
5155 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
5156 continues to work.
5157
31abac07
EC
51582006-02-28 Eric Christopher <echristo@apple.com>
5159
5160 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
5161 Set up IN_LIBGCC definition of TARGET_64BIT.
5162 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
5163
c457fcec
RS
51642006-02-28 Roger Sayle <roger@eyesopen.com>
5165
5166 PR middle-end/14752
5167 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
5168 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
5169 cases via the construction of "expr != 0".
5170
63292ebf
SB
51712006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
5172
5173 * alias.c (alias_invariant, alias_invariant_size): Remove.
5174 (record_base_value): Remove.
5175 (memrefs_conflict_p): Don't look at alias_invariant.
5176 (end_alias_analysis): Don't free it.
5177 * alias.h (record_base_value): Remove prototype.
5178
d3b72690
PB
51792006-02-28 Paolo Bonzini <bonzini@gnu.org>
5180 Adam Nemet <anemet@caviumnetworks.com>
5181
5182 * rtl.h (truncated_to_mode): Declare it.
5183 (struct rtl_hooks): Add reg_truncated_to_mode hook.
5184 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
5185 (RTL_HOOKS_INITIALIZER): Include it.
5186 * rtlhooks.c (reg_truncated_to_mode_general): New function.
5187 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
5188 reg_truncated_to_mode.
5189 * rtlanal.c (truncated_to_mode): Define it.
5190 * simplify-rtx.c (simplify_unary_operation_1): Use it.
5191
ea45681a
JL
51922006-02-28 Jeff Law <law@redhat.com>
5193
e5c7f9f5
JL
5194 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
5195 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
5196 the range allowed by TYPE_PRECISION.
5197
ea45681a
JL
5198 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
5199
7ffe0f0d
DN
52002006-02-28 Dorit Nuzman <dorit@il.ibm.com>
5201
5202 PR tree-optimization/26419
5203 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
5204 values of n.
5205
3fa1b0e5
ZW
52062006-02-27 Zack Weinberg <zackw@panix.com>
5207
5208 * doc/md.texi: Fix typo in previous change.
5209
75743f02
KZ
52102006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
5211
5212 * df.c: Remove.
5213
f38840db
ZW
52142006-02-27 Zack Weinberg <zackw@panix.com>
5215
5216 * rtl.def (define_constraint, define_register_constraint)
5217 (define_memory_constraint, define_address_constraint): New MD forms.
5218 * gensupport.c (process_rtx): Put define_constraint etc on the
5219 predicate queue.
5220 * genpreds.c (process_define_predicate): Adjust comment. Validate
5221 the name, and call validate_exp to validate the expression.
5222 (mark_mode_tests, write_extract_subexp): Can assume correct input.
5223 (write_predicate_expr): Likewise. NAME argument no longer necessary;
5224 all callers changed.
5225 (validate_exp, needs_variable, struct constraint_data)
5226 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
5227 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
5228 (const_dbl_constraints, constraint_max_namelen)
5229 (have_register_constraints, have_memory_constraints)
5230 (have_address_constraints, have_address_constraints)
5231 (have_extra_constraints, have_const_int_constraints)
5232 (have_const_dbl_constraints, mangle, add_constraint)
5233 (process_define_constraint, process_define_register_constraint)
5234 (write_enum_constraint_num, write_lookup_constraint)
5235 (write_insn_constraint_len, write_regclass_for_constraint)
5236 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
5237 (write_insn_extra_memory_constraint)
5238 (write_insn_extra_address_constraint)
5239 (write_satisfies_constraint_fns): New.
5240 (write_tm_preds_h): If we have new-style constraint definitions,
5241 prototype the functions generated from them, and define the
5242 old constraint interface (still used by generic code) in terms of
5243 those functions.
5244 (write_insn_preds_c): If we have new-style constraint definitions,
5245 generate all relevant functions from those definitions.
5246 (main): Handle define_constraint etc.
5247 * genoutput.c (struct constraint_data, indep_constraints)
5248 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
5249 (mdep_constraint_len): New data structures and functions, defined
5250 #ifdef USE_MD_CONSTRAINTS.
5251 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
5252 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
5253 use new logic to validate operand constraints against constraint
5254 definitions.
5255 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
5256 defined.
5257 * defaults.h: If none of the old-style constraint macros are
5258 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
5259 old-style macros; and poison REG_CLASS_FROM_LETTER,
5260 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
5261 EXTRA_CONSTRAINT.
5262 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
5263 * doc/md.texi: Document new constraint-definition mechanism and the
5264 C interface it provides. Remove references to old mechanism
5265 elsewhere in the document.
5266 (Machine Constraints): Use pathnames relative to gcc directory,
5267 i.e. config/ARCH/FILE. Change i386 section to refer to
5268 config/i386/predicates.md; update that section to match docstrings.
5269 * doc/tm.texi: Move all documentation of the old constraint-
5270 definition macros to their own section, clearly mark as obsolete.
5271
5272 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
5273 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
5274 definitions.
5275 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
5276 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5277 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
5278 constraint strings.
5279 (splits and peepholes): Use satisfies_constraint_*.
5280 * config/i386/i386.c (memory_address_length)
5281 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
5282
e3e868f6
DB
52832006-02-27 Daniel Berlin <dberlin@dberlin.org>
5284
5285 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
5286 scalar operation to be put back into the loop.
5287
754e45a8
JJ
52882006-02-27 Jakub Jelinek <jakub@redhat.com>
5289
5290 PR other/26208
5291 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
5292 (extract_cie_info): Handle S flag in augmentation string.
5293 (execute_cfa_program): If context->signal_frame, execute also
5294 fs->pc == context->ra instructions.
5295 (uw_frame_state_for): If context->signal_frame, don't subtract one
5296 from context->ra to find FDE.
5297 (uw_update_context_1): Set context->signal_frame to
5298 fs->signal_frame.
5299 (_Unwind_GetIPInfo): New function.
5300 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
5301 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
5302 of _Unwind_GetIP.
5303 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
5304 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
5305 * unwind-compat.c (_Unwind_GetIPInfo): New function.
5306 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
5307 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
5308 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
5309 * config/i386/linux-unwind.h (x86_fallback_frame_state,
5310 x86_64_fallback_frame_state): Set fs->signal_frame.
5311 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
5312 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
5313 (frob_update_context): Likewise. Workaround missing S flag in
5314 Linux 2.6.12 - 2.6.16 kernel vDSOs.
5315 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
5316 Remove the psw_addr + 1 hack.
5317
6df11ca1
DB
53182006-02-27 Daniel Berlin <dberlin@dberlin.org>
5319
5320 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
5321 with aggregates here.
5322 (find_func_aliases): Remove code for &<aggregate> from here.
5323
5881ad5d
RS
53242006-02-26 Roger Sayle <roger@eyesopen.com>
5325
e8366202 5326 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
5881ad5d
RS
5327 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
5328 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
5329 as (X & C) ne/eq 0.
5330
53f1b560
RS
53312006-02-26 Roger Sayle <roger@eyesopen.com>
5332
5333 PR middle-end/19983
5334 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
5335
efa1cdf0
ZD
53362006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
5337
5338 * opts.c (decode_options): Do not handle flag_strength_reduce.
5339 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
5340 and OPT_fstrength_reduce.
5341 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
5342 flag_prefetch_loop_arrays for being nonzero.
5343 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
5344 no-ops.
5345 (fprefetch-loop-arrays-rtl): Removed.
5346 (flag_prefetch_loop_arrays): Do not specify the value.
5347
5348 * doc/passes.texi: Update documentation of loop optimizer
5349 passes.
5350 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
5351 -frerun-loop-opt): Remove.
5352
651402f1
RG
53532006-02-26 Richard Guenther <rguenther@suse.de>
5354
5355 PR tree-optimization/26421
5356 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
5357 in function calls that are ADDR_EXPRs as using the whole structure.
5358
37818e7c
SB
53592006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
5360
5361 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
5362 * tree-pass.h (pass_loop_optimize): Remove.
5363 * passes.c (pass_loop_optimize): Never run it.
5364 * toplev.c (backend_init): Don't call init_loop.
5365 * opts.c (flag_loop_optimize_set): Remove.
5366 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
5367 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
5368 the old RTL loop optimizer when profiling enabled.
5369 * predict.c (tree_estimate_probability): Always strip builtin_expect.
5370 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
5371 pre-headers for the sake of the old RTL loop optimizer.
5372 * Makefile.in: Remove all references to loop.o.
5373
5374 * doc/invoke.texi: Remove all references to -floop-optimize
5375 and -frerun-loop-opt.
5376
74fe790b
ZW
53772006-02-26 Zack Weinberg <zackw@panix.com>
5378
5379 * doc/md.texi (Machine Constraints): Refer to all files with paths
5380 relative to gcc directory (i.e. config/CPU/file). Add missing
5381 @table @code ... @end table to M32C subsection.
5382
cef65eaa
RS
53832006-02-26 Roger Sayle <roger@eyesopen.com>
5384
5385 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
5386 (X & 1) == 0.
5387 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
5388
a861485c
RS
53892006-02-26 Roger Sayle <roger@eyesopen.com>
5390 James A. Morrison <phython@gcc.gnu.org>
5391
5392 PR middle-end/21137
e8366202 5393 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
a861485c
RS
5394 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
5395 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
5396 signedness of the shift operation.
5397
afa38a95
DN
53982006-02-26 Dorit Nuzman <dorit@il.ibm.com>
5399
5400 PR tree-optimization/26359
5401 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
5402
5484a3c3
RS
54032006-02-25 Roger Sayle <roger@eyesopen.com>
5404
e8366202 5405 * simplify-rtx.c (simplify_relational_operation_1): Simplify
5484a3c3
RS
5406 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
5407 as X == 0, and some symmetry related transformations.
5408 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
5409
eb8dffe0
RS
54102006-02-25 Roger Sayle <roger@eyesopen.com>
5411
5412 PR middle-end/23673
e8366202 5413 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
eb8dffe0
RS
5414 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
5415 symmetry related transformations. Fold (X^C1) == C2 as
5416 X == (C1^C2).
5417
332cf1b3
JW
54182006-02-25 Juergen Weigert <jw@suse.de>
5419 Richard Guenther <rguenther@suse.de>
5420
5421 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
5422
a4876725
AN
54232006-02-24 Adam Nemet <anemet@caviumnetworks.com>
5424
5425 * combine.c (gen_lowpart_or_truncate): Call
5426 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
5427
8d669cbd
DN
54282006-02-24 Diego Novillo <dnovillo@redhat.com>
5429
5430 * doc/invoke.texi: Move -fopenmp description to "Options for
5431 Code Generation".
5432 Remove reference to -lgomp.
5433
f44a5ab6
DE
54342006-02-24 David Edelsohn <edelsohn@gnu.org>
5435
5436 * doc/install.texi: Require GNU tar version 1.14.
5437
c7b5e395
GK
54382006-02-24 Geoffrey Keating <geoffk@apple.com>
5439
5440 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
74fe790b 5441 * doc/invoke.texi (C++ Dialect Options): Document
c7b5e395
GK
5442 -fno-use-cxa-get-exception-ptr.
5443 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
5444 * configure: Regenerate.
5445 * c.opt (fuse-cxa-get-exception-ptr): New.
5446 * c-opts.c (c_common_handle_option): Handle
5447 OPT_fuse_cxa_get_exception_ptr.
5448 * c-common.c (flag_use_cxa_atexit): Update documentation.
5449 (flag_use_cxa_get_exception_ptr): New.
5450 * c-common.h (flag_use_cxa_get_exception_ptr): New.
5451 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
5452 documentation.
5453 (C_COMMON_OVERRIDE_OPTIONS): New.
5454
676cb929
RS
54552006-02-24 Roger Sayle <roger@eyesopen.com>
5456
5457 PR middle-end/24952
5458 * combine.c (try_combine): Explicitly check whether GET_CODE is
5459 a SET or a CLOBBER, instead on checking that it isn't a USE.
5460
e26ec0bb
RS
54612006-02-24 Roger Sayle <roger@eyesopen.com>
5462
5463 * fold-const.c (fold_comparison): New subroutine of fold_binary
5464 containing transformations common to both the equality and
5465 ordering relational operators, factored out of fold_binary.
5466 (fold_binary): Separate out the equality operators (EQ_EXPR
5467 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
5468 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
5469 transformations common to both.
74fe790b 5470 (fold_div_compare): Fix latent bugs in the previously unreachable
e26ec0bb
RS
5471 LT_EXPR and GE_EXPR cases.
5472
69ca3549
DE
54732006-02-24 David Edelsohn <edelsohn@gnu.org>
5474
5475 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
5476 decl libname for clog to __clog on AIX.
5477
5478 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
5479
8097c268
AM
54802006-02-24 Alan Modra <amodra@bigpond.net.au>
5481
5482 PR target/26453
5483 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
5484 output traceback table for thunks. Localise rs6000_stack_info call.
5485
efbbbb61
RS
54862006-02-23 Roger Sayle <roger@eyesopen.com>
5487 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5488
5489 * gthr-posix.h (__gthrw): Fix typo in comment.
5490
54912006-02-23 Geoffrey Keating <geoffk@apple.com>
c1e12409
GK
5492
5493 * doc/cpp.texi (Character sets): Document that we do support
5494 input files to be in any character set.
5495
e260a614
JL
54962006-02-23 Jeff Law <law@redhat.com>
5497
357e7a82
JL
5498 * tree.h (PHI_ARG_NONZERO): Remove.
5499 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
5500 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
5501 node to the new node.
5502
e260a614
JL
5503 PR tree-optimization/26425
5504 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
5505 min/max, then assume its varying.
5506
e755fcf5
ZD
55072006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
5508
5509 PR rtl-optimization/26316
5510 * rtlanal.c (enum may_trap_p_flags): New.
5511 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
5512 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
5513 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
5514 (may_trap_after_code_motion_p): New function.
5515 * loop-invariant.c (find_identical_invariants): Fix dump formating.
5516 (find_invariant_insn): Use may_trap_after_code_motion_p.
5517 * rtl.h (may_trap_after_code_motion_p): Declare.
5518
65acccdd
ZD
55192006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
5520
5521 * emit-rtl.c (immed_double_const): Cleanup.
5522
4b0e7346 55232006-02-23 Daniel Berlin <dberlin@dberlin.org>
74fe790b 5524
4b0e7346 5525 Fix PR tree-optimization/26376
e8366202 5526 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
4b0e7346
DB
5527 remove assert.
5528
a5c8d67f
JJ
55292006-02-23 Jakub Jelinek <jakub@redhat.com>
5530
5531 PR middle-end/26412
5532 * gimplify.c (omp_add_variable): Guard variable size decl test with
5533 DECL_SIZE (decl) check.
5534
98b2060a
RG
55352006-02-23 Richard Guenther <rguenther@suse.de>
5536
5537 PR middle-end/26439
5538 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
5539 like aggregate types.
5540
ed965309
JJ
55412006-02-23 Jakub Jelinek <jakub@redhat.com>
5542
5543 * configure.ac: Add --with{,out}-long-double-128 configure option.
5544 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
5545 * configure: Rebuilt.
5546 * config.in: Rebuilt.
5547 * doc/install.texi (Options specification): Document
5548 --with-long-double-128.
5549
5550 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
5551 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
5552 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
5553 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
5554
55552006-02-23 Aldy Hernandez <aldyh@redhat.com>
5556
5557 * config/s390/s390.c (override_options): Handle
5558 TARGET_DEFAULT_LONG_DOUBLE_128.
5559
5560 * config/alpha/alpha.c (override_options): Handle
5561 TARGET_DEFAULT_LONG_DOUBLE_128.
5562
5563 * config/sparc/sparc.c (sparc_override_options): Handle
5564 TARGET_DEFAULT_LONG_DOUBLE_128.
5565
9fb03bd8
DJ
55662006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
5567
5568 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
5569 (real-install-headers-tar, real-install-headers-cpio)
5570 (real-install-headers-cp): New targets.
5571
e8dad6f0
RS
55722006-02-22 Richard Sandiford <richard@codesourcery.com>
5573
5574 * tree.h (variable_section): Delete.
5575 * varasm.c (variable_section): Delete.
5576
d7f755c3
PB
55772006-02-22 Paolo Bonzini <bonzini@gnu.org>
5578
5579 * install.texi: Add notes on install.texi2html.
5580 (Building in parallel): Do not use footnotes.
5581
4fe7a8bc
AH
55822006-02-21 Aldy Hernandez <aldyh@redhat.com>
5583
5584 PR libgomp/26234
5585 * doc/install.texi (Configuration): Document --disable-libgomp.
5586
6070e8e5
GK
55872006-02-21 Geoffrey Keating <geoffk@apple.com>
5588
5589 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
5590
f8770111
AO
55912006-02-21 Alexandre Oliva <aoliva@redhat.com>
5592
5593 * config/i386/sse.md (vec_extractv2df_1_sse): New.
5594 (vec_extractv2df_0_sse): New.
5595
35d177a2
AO
55962006-02-21 Alexandre Oliva <aoliva@redhat.com>
5597
5598 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
5599 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
5600 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
5601 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
5602 to the result of the expression.
5603 (def_cfa_1): Adjust.
5604 (frame_pointer_cfa_offset): Rename to...
5605 (frame_pointer_fb_offset): ... this. Adjust all uses.
5606 (convert_cfa_to_loc_list): Rename to...
5607 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
5608 Pass it on to build_cfa_loc.
5609 (compute_frame_pointer_to_cfa_displacement): Rename to...
5610 (compute_frame_pointer_to_fb_displacement): ... this. New
5611 offset parameter. Use it in computation.
5612 (gen_subprogram_die): Compute cfa_fb_offset with the new
5613 macro, and use it to compute the fb loc list and the
5614 displacement.
5615
4729dc92
BS
56162006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
5617
5618 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
5619 replaced with register_operand.
5620 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
5621 non-DREG is expensive.
5622 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
5623 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
5624 involving memory.
5625
520bc8a2
JM
56262006-02-21 Joseph S. Myers <joseph@codesourcery.com>
5627
5628 * doc/install.texi2html: Use set -e.
5629
f5e605e5
RS
56302006-02-21 Richard Sandiford <richard@codesourcery.com>
5631
5632 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
5633 (ASM_OUTPUT_SHARED_LOCAL): Delete.
5634 * doc/invoke.texi (-fshared-data): Delete.
5635 * common.opt (fshared-data): Delete.
5636 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
5637 (assemble_static_space): Remove #if 0 code.
5638 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
5639 (ASM_OUTPUT_SHARED_LOCAL): Poison.
5640 * config/cris/cris.h: Remove FIXME.
5641
880b9e7b
PB
56422006-02-21 Paolo Bonzini <bonzini@gnu.org>
5643
5644 * doc/sourcebuild.texi (Front End Directory): No more double-colon
5645 hooks.
5646
5a9e432d
JJ
56472006-02-21 Jakub Jelinek <jakub@redhat.com>
5648
5649 PR middle-end/26379
5650 * combine.c (simplify_shift_const_1): Disable nested shifts
5651 optimization for vector shifts.
5652
c1a70a3c
RS
56532006-02-20 Roger Sayle <roger@eyesopen.com>
5654
5655 PR tree-optimization/26361
5656 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
5657 of unsigned integer types.
5658
0ff4040e
SP
56592006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
5660
5661 * tree-chrec.c (eq_evolutions_p): New.
5662 * tree-chrec.h (eq_evolutions_p): Declared.
5663 * tree-data-ref.c: Fix formatting.
5664 (datadep_stats, dependence_stats): New.
5665 (gcd): Moved...
5666 (print_direction_vector): New.
5667 (dump_data_dependence_relation): Use print_direction_vector.
5668 (object_analysis, create_data_ref): Handle COMPONENT_REF.
5669 (compute_subscript_distance): Static.
5670 (initialize_data_dependence_relation): Static. Get the number
5671 of loops surrounding the references from the callers, and initialize
5672 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
5673 base_object_differ_p analyzers.
74fe790b 5674 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
0ff4040e
SP
5675 compute_overlap_steps_for_affine_1_2,
5676 analyze_subscript_affine_affine): Count the classified dependences.
5677 Print a message when a test failed.
74fe790b 5678 (can_use_analyze_subscript_affine_affine): New.
0ff4040e
SP
5679 (analyze_siv_subscript): Compute the data dependences on symbolic
5680 scevs that verify can_use_analyze_subscript_affine_affine.
5681 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
5682 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
5683 Handle symbolic scevs.
5684 (analyze_overlapping_iterations): Let symbolic affine scevs to be
5685 analyzed.
5686 (subscript_dependence_tester): Moved...
74fe790b 5687 (build_classic_dist_vector, build_classic_dir_vector): Don't use
0ff4040e
SP
5688 lambda_vector_clear on newly allocated vectors. Get nb_loops from
5689 DDR_SIZE_VECT instead of getting it in parameter.
74fe790b 5690 (subscript_dependence_tester): ... here. Take as a parameter
0ff4040e
SP
5691 loop_nest_depth. Call build_classic_dist_vector and
5692 build_classic_dir_vector.
74fe790b
ZW
5693 (compute_affine_dependence): Update subscript_dependence_tester
5694 parameters. Update datadep_stats counters. Call
0ff4040e 5695 compute_subscript_distance.
74fe790b 5696 (compute_self_dependence): Save the dist and dir vectors. Call
0ff4040e
SP
5697 compute_subscript_distance.
5698 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
5699 (compute_all_dependences): Reorder parameters as they were before
5700 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
74fe790b 5701 compute_subscript_distance. Update the use of
0ff4040e
SP
5702 compute_affine_dependence and initialize_data_dependence_relation.
5703 (find_data_references_in_loop): Handle COMPONENT_REF.
5704 (compute_data_dependences_for_loop): Initialize dependence_stats.
5705 Don't call build_classic_dist_vector and build_classic_dir_vector.
74fe790b 5706 Update the parameters of initialize_data_dependence_relation and
0ff4040e
SP
5707 compute_all_dependences. Print the statistics from datadep_stats.
5708 (analyze_all_data_dependences): Static. Not used until the pass for
5709 checking the data dependences is contributed.
5710 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
5711 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
74fe790b 5712 (initialize_data_dependence_relation, compute_affine_dependence,
0ff4040e
SP
5713 analyze_all_data_dependences, compute_subscript_distance): Removed.
5714 (print_direction_vector): New.
5715 * lambda.h (gcd): ... here.
5716 (lambda_vector_gcd): Moved here from gcd_vector.
5717 * lambda-code.c (gcd, gcd_vector): Removed.
5718 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
5719 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
5720
643519b7
DN
57212006-02-20 Diego Novillo <dnovillo@redhat.com>
5722
5723 * ipa-type-escape.c: Tidy some comments and white space.
5724 * tree-ssa-operands.c: Likewise.
5725
406f9d5e
AP
57262006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
5727
5728 PR tree-opt/25879
5729 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
5730 (dump_decl_name): Do not walk the decl tree chains.
5731 * tree-pass.h (TDF_CHAIN): Remove.
5732
5733