]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
misc.c (gnat_expand_body): Don't call target for destructors, avoid redundant check...
[gcc.git] / gcc / ChangeLog
CommitLineData
395a40e0
JH
12007-04-22 Jan Hubicka <jh@suse.cz>
2
3 * final.c (rest_of_handle_final): Call
4 targetm.asm_out.constructor/targetm.asm_out.destructor
5 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
6 proper priority via decl_*_priority_insert.
7 * c-common.c (c_expand_body): Likewise.
8
e0a60731
RG
92007-04-22 Richard Guenther <rguenther@suse.de>
10
11 PR tree-optimization/29789
12 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
13 (rewrite_reciprocal): New helper split out from
14 determine_invariantness_stmt.
15 (rewrite_bittest): Likewise.
16 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
17 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
18 is not.
19
76fd2caa
RE
202007-04-22 Revital Eres <eres@il.ibm.com>
21
b7716a8e
ZD
22 * loop-unroll.c (var_to_expand): New field to support also
23 insns of the form x = something + x.
24 (analyze_insn_to_expand_var): Use it.
25 (expand_var_during_unrolling): Likewise.
76fd2caa 26
f06b0a10
ZD
272007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
28
29 * predict.c: Include pointer-set.h.
30 (bb_predictions): New variable.
31 (tree_predicted_by_p, tree_predict_edge,
32 remove_predictions_associated_with_edge): Use bb_predictions map
33 instead of bb->predictions.
34 (clear_bb_predictions, assert_is_empty): New functions.
35 (combine_predictions_for_bb): Use bb_predictions map. Call
36 clear_bb_predictions.
37 (tree_estimate_probability): Create and free bb_predictions map.
38 * Makefile.in (predict.o): Add pointer-set.h dependency.
39 * basic-block.h (struct basic_block_def): Remove predictions
40 field.
41 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
42
e919dfe2
KK
432007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
44
45 PR target/31480
46 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
47 is null.
48
7be97ac7
AP
492007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
50
51 * timevar.c (timevar_print): Change reference of --disable-checking to
52 --enable-checking=release. Also warn if assert checking is disabled.
53
c8a0a219
AP
542007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
55
56 PR C/30265
57 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
58 decl as addressable if the compound literal was marked as
59 addressable.
60 Mark the decl as a gimple register if it is a complex or
61 vector decl and does not live in memory.
62
3d95caa4
AP
632007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
64
65 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
66 (GENERIC_NEXT): New function macro.
67 (PHI_CHAIN): Use phi_node's new chain variable.
68 (tree_phi_node): Change tree_common to tree_base
69 and add the chain field.
70 * tree-phinodes.c (make_phi_node): Don't set
71 TREE_TYPE on the new node.
72 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
73 instead of checking GIMPLE_TUPLE_P in chain_next.
74 * tree-vect-transform.c
75 (get_initial_def_for_induction): Look at
76 PHI_RESULT_TREE for the type of the phi node.
77 (update_vuses_to_preheader): Use PHI_CHAIN
78 instead of TREE_CHAIN on the phi node.
79 * tree-ssa-structalias.c (compute_points_to_sets):
80 Likewise.
81 (ipa_pta_execute): Likewise.
82
84ece8ef
RG
832007-04-21 Richard Guenther <rguenther@suse.de>
84
85 PR middle-end/31136
86 * fold-const.c (fold_unary): Call fold_convert_const on the
87 original tree.
88
1071bcbd
AO
892007-04-21 Alexandre Oliva <aoliva@redhat.com>
90
91 * gcse.c (store_killed_in_insn): Handle PARALLELs.
92 (store_killed_in_pat): New.
93
c7a2139b
RH
942007-04-20 Richard Henderson <rth@redhat.com>
95
96 PR target/31628
97 * config/i386/i386.c (type_has_variadic_args_p): Look for any
98 TREE_LIST with a void_type_node value, not void_list_node exactly.
99
fda0adca
DG
1002007-04-21 Douglas Gregor <doug.gregor@gmail.com>
101
102 * doc/standards.texi: Re-arrange into language-specific
103 subsections. Add a C++ section, documenting which standards we
104 support.
105
285463b5
ZD
1062007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
107
108 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
109 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
110
860532df
DJ
1112007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
112
113 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
114 ecrti.o and crtbegin.o.
115 (LIB_DEFAULT_SPEC): Include -lc.
116 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
117
60e93525
RH
1182007-04-20 Richard Henderson <rth@redhat.com>
119
120 PR target/28623
121 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
122 argument; update all callers.
123 (get_unaligned_offset): New.
124 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
125 get_unaligned_address, just pass on the address directly.
126 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
127 the subreg in the helper patterns.
128 (unaligned_extendqidi_le): Use get_unaligned_offset.
129 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
130 (unaligned_extendhidi_be): Likewise.
131 (unaligned_extendhidi): Tidy.
132 * config/alpha/alpha-protos.h: Update.
133
f326fd7a
RH
1342007-04-20 Richard Henderson <rth@redhat.com>
135
136 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
137 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
138 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
139 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
140 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
141 (CPP_SPEC): Don't include %(cpp_subtarget).
142 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
143 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
144 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
145
86122f72
JJ
1462007-04-20 Jakub Jelinek <jakub@redhat.com>
147
a5b9afd1
JJ
148 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
149 for __builtin_ia32_cmpordss.
150
86122f72
JJ
151 PR tree-optimization/31632
152 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
153 and arg1 for optimizations of comparison against min/max values.
154 Fold arg0 to arg1's type for optimizations of comparison against
155 min+1 and max-1 values.
156
c1673e1b
BS
1572007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
158
159 * reload.c (combine_reloads): When trying to use a dying register,
160 check whether it's uninitialized and don't use if so.
161
db136335
BM
1622007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
163
164 * fold-const.c: Remove prototypes for native_encode_expr and
165 native_interpret_expr.
166 (native_encode_expr): Make non-static.
167 (native_interpret_expr): Likewise.
168 * tree.h: Add prototypes for the above.
169
b6fda43f
JM
1702007-04-19 Joseph Myers <joseph@codesourcery.com>
171
b6fda43f
JM
172 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
173 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
174 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
175 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
176 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
177 Add length attributes.
178
589dd995
JJ
1792007-04-19 Janis Johnson <janis187@us.ibm.com>
180
93167356
JJ
181 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
182 not that it is 1.
183
589dd995
JJ
184 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
185 __STDC_WANT_DEC_FP__.
186
f7cc5390
JM
1872007-04-19 Joseph Myers <joseph@codesourcery.com>
188
189 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
190 for long double compatibility.
191 * configure: Regenerate.
192
d47a8b83
EB
1932007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
194
195 PR rtl-optimization/29841
196 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
197 trap instructions.
198 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
199 that may cause control flow transfer from being moved.
200
8d5d5865
JH
2012007-04-18 Jan Hubicka <jh@suse.cz>
202
203 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
204 types.
205
316fbf19 2062007-04-18 Eric Christopher <echristo@apple.com>
5083912d 207
316fbf19
EC
208 * config/rs6000/darwin.md (load_macho_picbase): Use link register
209 only. Update operands.
210 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
211 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
212 link register to pic register.
5083912d 213
05fb69e4
DM
2142007-04-18 Dirk Mueller <dmueller@suse.de>
215
216 PR diagnostic/31227
217 * tree-vrp.c (search_for_addr_array): New.
218 (check_array_bounds): Suppress warning about
219 address taken of array refs if its not de-referenced.
220
28e44f4f
DN
2212007-04-18 Dorit Nuzman <dorit@il.ibm.com>
222
223 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
224 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
225
226 * tree-vectorizer.h (NITERS_KNOWN_P): New.
316fbf19 227 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
28e44f4f
DN
228 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
229
316fbf19 230 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
28e44f4f
DN
231 dump print.
232 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
233 print message.
234 (vect_analyze_scalar_cycles): Fix indentation.
235 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
236 (vect_mark_relevant): Include phis in relevance analysis.
237
238 * tree-vect-transform.c (vect_transform_loop): Add an assert.
239
3639b3fa
AS
2402007-04-18 Anatoly Sokolov <aesok@post.ru>
241
242 * config/avr/avr.c (ptrreg_to_str): Replace error() with
243 output_operand_lossage().
244
f7c1d73d
DN
2452007-04-18 Dorit Nuzman <dorit@il.ibm.com>
246
247 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
248 the unused code for reduction without adjust-in-epilog to simplify the
249 function.
250
638e37c2
WG
2512007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
252
253 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
254 (S390_TDC_NEGATIVE_ZERO): New constant.
255 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
256 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
257 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
258 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
259 (S390_TDC_POSITIVE_INFINITY): New constant.
260 (S390_TDC_NEGATIVE_INFINITY): New constant.
261 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
262 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
263 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
264 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
265 (S390_TDC_INFINITY): New constant.
266 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
267 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
268 optimization for UNSPEC_CCZ_TO_INT.
269 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
270 ("*ccz_to_int"): New insn.
271 ("isinf<mode>2"): New insn.
272 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
273 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
274 (UNSPEC_CCZ_TO_INT): New constant.
275
3b48ccbc
RG
2762007-04-18 Richard Guenther <rguenther@suse.de>
277
278 PR tree-optimization/19431
279 PR tree-optimization/21463
280 * tree-pass.h (pass_phiprop): Declare.
281 * passes.c (init_optimization_passes): New phiprop pass.
282 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
283 (phivn_valid_p): New helper function.
284 (phiprop_insert_phi): Likewise.
285 (propagate_with_phi): Likewise.
286 (tree_ssa_phiprop): New propagator propagating loads
287 through phi nodes if profitable.
288
8cf81ddf
DN
2892007-04-18 Dorit Nuzman <dorit@il.ibm.com>
290
291 * tree-vect-analyze.c (process_use): New function.
292 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
293 Check phis in all bbs.
294 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
295 assert.
296
7c11b28c
BS
2972007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
298
299 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
300 we use REG_EQUAL.
301
5594a6c8
AS
3022007-04-17 Anatoly Sokolov <aesok@post.ru>
303
304 PR target/30483
305 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
306 error().
307
ce217d75
L
3082007-04-17 H.J. Lu <hongjiu.lu@intel.com>
309
310 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
311 on "0".
312 (sse_vmmulv4sf3): Likewise.
313 (sse2_vmaddv2df3): Likewise.
314 (sse2_vmmulv2df3): Likewise.
315
a154b43a
ZD
3162007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
317
318 PR rtl-optimization/31360
319 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
320 (target_reg_cost): New.
321 (init_set_costs): Initialize target_reg_cost. Add comments
322 regarding the rationale of the costs.
323 (global_cost_for_size): Renamed to...
324 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
325 of register pressure.
326 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
327 estimate_reg_pressure_cost. Add number of ivs.
328 (determine_set_costs): Dump target_reg_cost.
329 * loop-invariant.c (gain_for_invariant): Use
330 estimate_reg_pressure_cost. Removed n_inv_uses argument.
331 (best_gain_for_invariant, find_invariants_to_move): Remove
332 n_inv_uses.
333 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
334 (target_reg_cost): Declare.
335 (global_cost_for_size): Declaration removed.
336 (estimate_reg_pressure_cost): Declare.
337
c092b045
PB
3382007-04-17 Peter Bergner <bergner@vnet.ibm.com>
339
340 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
341 regnos into even/odd register pairs.
342 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
343 TDmode similar to the other floating point modes.
344 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
345 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
346 define_expand's.
347 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
348 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
349 (movdd_hardfloat64): Use TARGET_MFPGPR.
350
f2eb49dc
BS
3512007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
352
353 * reload1.c (delete_output_reload): Don't count output in n_inherited.
354
355 Revert
356 2005-01-05 Richard Henderson <rth@redhat.com>
357 PR rtl-opt/10692
358 * reload1.c (do_input_reload): Restrict the optimization deleteing
359 a previous output reload to RELOAD_FOR_INPUT.
360
cd38ca7f
DN
3612007-04-17 Dorit Nuzman <dorit@il.ibm.com>
362
363 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
364 induc_vec_info_type.
365 (vectorizable_induction): New function declaration.
366 * tree-vect-transform.c (get_initial_def_for_induction): No need to
367 check if already vectorized. Find first place in BB where new stmts
368 can be inserted. Takes only one argument.
369 (vectorizable_induction): New function.
370 (vect_transform_stmt): Add case for induc_vec_info_type to call
371 vectorizable_induction.
372 (vect_transform_loop): Consider phis for vectorization.
373 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
374 condition.
316fbf19 375 (analyze_operations): Call vectorizable_induction when analyzing phis.
cd38ca7f
DN
376 Fix comment.
377 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
378 (vect_mark_relevant): Include phis in relevance analysis.
379 (vect_mark_stmts_to_be_vectorize): Likewise.
380 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
381
39ef6592
LC
3822007-04-16 Lawrence Crowl <crowl@google.com>
383
384 * doc/invoke.texi (Debugging Options): Add documentation for the
385 -femit-struct-debug options -femit-struct-debug-baseonly,
386 -femit-struct-debug-reduced, and
387 -femit-struct-debug-detailed[=...].
388
389 * c-opts.c (c_common_handle_option): Add
390 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
391 and OPT_femit_struct_debug_detailed_.
392 * c.opt: Add specifications for
393 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
394 and -femit-struct-debug-detailed[=...].
395 * opts.c (set_struct_debug_option): Parse the
396 -femit-struct-debug-... options.
397 * opts.c (matches_main_base, main_input_basename,
398 main_input_baselength, base_of_path, matches_main_base): Add
399 variables and functions to compare header base name to compilation
400 unit base name.
401 * opts.c (should_emit_struct_debug): Add to determine to emit a
402 structure based on the option.
403 (dump_struct_debug) Also disabled function to debug this
404 function.
405 * opts.c (handle_options): Save the base name of the
406 compilation unit.
407
408 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
c7a2139b 409 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
39ef6592
LC
410 This hook indicates if a type is generic. Set it by default
411 to "never generic".
412 * langhooks.h (struct lang_hooks_for_types): Add a new hook
413 to determine if a struct type is generic or not.
414 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
415 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
416 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
417 with live C++ hook.
418
419 * flags.h (enum debug_info_usage): Add an enumeration to describe
420 a program's use of a structure type.
421 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
422 to indicate the program's usage of the type. Filter structs based
423 on the -femit-struct-debug-... specification.
424 (gen_type_die): Split into two routines, gen_type_die and
425 gen_type_die_with_usage. gen_type_die is now a wrapper
426 that assumes direct usage.
427 (gen_type_die_with_usage): Replace calls to gen_type_die
428 with gen_type_die_with_usage adding the program usage of
429 the referenced type.
430 (dwarf2out_imported_module_or_decl): Suppress struct debug
431 information using should_emit_struct_debug when appropriate.
432
5a0ed003
ILT
4332007-04-16 Ian Lance Taylor <iant@google.com>
434
fc6827fe
ILT
435 PR tree-optimization/31522
436 * tree-vrp.c (vr_phi_edge_counts): New static variable.
437 (vrp_initialize): Allocate vr_phi_edge_counts.
438 (vrp_visit_phi_node): Don't push to infinity if we saw a new
439 executable edge. Drop test for all constants.
440 (vrp_finalize): Free vrp_phi_edge_counts.
441
4075e231
ILT
442 * doc/cpp.texi (Common Predefined Macros): Clarify description of
443 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
444
5a0ed003
ILT
445 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
446 predecessors at head rather than tail.
447
bdede2ac
MK
4482007-04-16 Matthias Klose <doko@debian.org>
449
86122f72
JJ
450 * config/alpha/linux.h (CPP_SPEC): Define.
451 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
bdede2ac 452
52d412e7
AH
4532007-04-16 Aldy Hernandez <aldyh@redhat.com>
454
c7a2139b 455 * function.h: Remove sequence_stack extern declaration.
52d412e7 456
72120463
KH
4572007-04-16 Kazu Hirata <kazu@codesourcery.com>
458
459 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
460 TARGET_FIDOA.
461 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
462 defined.
463
14683174
AS
4642007-04-16 Anatoly Sokolov <aesok@post.ru>
465
466 * config/avr/avr.c (avr_arch_types): Rearranging array.
467 (enum avr_arch): Add.
316fbf19 468 (avr_mcu_types): Use avr_arch enumeration constants instead of
14683174
AS
469 numbers.
470 * config/avr/avr.h (LINK_SPEC): Simplify.
471
8d989403
KH
4722007-04-16 Kazu Hirata <kazu@codesourcery.com>
473
474 * config/m68k/m68k.c (m68k_libcall_value,
475 m68k_function_value): Use macros for register names more.
476
de41203b
KH
477 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
478 instead.
479 (M68K_REGNAME): Use A6_REG.
480 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
481
bdbf40a5
MK
4822007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
483
484 PR middle-end/28071
485 * sched-int.h (struct deps): Split field 'pending_lists_length' into
486 'pending_read_list_length' and 'pending_write_list_length'. Update
487 comment.
488 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
489 to handle two length counters instead of one. Update all uses.
490 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
491 two length counters instead of one.
492 * sched-rgn.c (propagate_deps): Update to handle two length counters
493 instead of one.
494
7bb4a6be
L
4952007-04-16 H.J. Lu <hongjiu.lu@intel.com>
496
497 PR target/31582
498 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
499 copy of source, pass it to ix86_expand_vector_set and return
500 it as target.
501
8dd58f01 5022007-04-16 David Ung <davidu@mips.com>
7bb4a6be 503 Joseph Myers <joseph@codesourcery.com>
8dd58f01
DU
504
505 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
506 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
507 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
508 Add 74K processor information.
509 * config/mips/mips.md: Include 74k.md.
510 (cpu): Add 74kc,74kf,74kx.
511 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
512 * config/mips/74k.md: New.
513 * doc/invoke.texi (MIPS Options): Document 74K support.
514
60555ced
DN
5152007-04-16 Dorit Nuzman <dorit@il.ibm.com>
516
517 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
518 vectorizable_* functions.
519 * tree-vect-transform.c (vectorizable_call): Add check for
520 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
521 (vectorizable_store): likewise.
522 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
523 Add comments.
524 (vectorizable_operation, vectorizable_type_demotion): Likewise.
525 (vectorizable_type_promotion, vectorizable_load): Likewise.
526 (vectorizable_live_operation, vectorizable_condition): Likewise.
527 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
528 STMT_VINFO_LIVE_P.
529 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
530
3bfe36dc
KH
5312007-04-15 Kazu Hirata <kazu@codesourcery.com>
532
533 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
534 register numbers more.
535 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
536 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
537 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
538 FUNCTION_VALUE_REGNO_P): Likewise.
539 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
540 STATIC_CHAIN_REGNUM): Likewise.
541 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
542 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
543 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
544 * config/m68k/m68k.md (FP_REG): New.
545
e3e093ec
KH
5462007-04-15 Kazu Hirata <kazu@codesourcery.com>
547
548 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
549 alignment on fido.
550
7fa7289d
KH
5512007-04-15 Kazu Hirata <kazu@codesourcery.com>
552
553 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
554 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
555 comment typos.
556
2732d767
ZD
5572007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
558
559 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
560 cold loops.
561
aa24028d
AP
5622007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
563
564 PR c/31520
c7a2139b 565 * c-decl.c (finish_decl): Grab the type of the decl after the call
aa24028d
AP
566 to store_init_value.
567
2ca2b607
SB
5682007-04-14 Steven Bosscher <steven@gcc.gnu.org>
569
570 * common.opt (fforward-propagate): Fix "Optimization" annotation.
571
b1483e87
JJ
5722007-04-14 Jakub Jelinek <jakub@redhat.com>
573
574 PR c++/25874
575 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
576 post dominators and cleanup cfg before returning.
577
4d4f2837
BS
5782007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
579
580 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
581 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
582
7d33c31d
KH
5832007-04-14 Kazu Hirata <kazu@codesourcery.com>
584
585 * config.gcc: Recognize fido.
586 * config/m68k/m68k-devices.def (fidoa): New.
587 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
588 __mfido__.
589 (FL_FIDOA, TARGET_FIDOA): New.
590 * config/m68k/m68k.opt (mfidoa): New.
591
2a6acff7
JDA
5922007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
593
594 PR middle-end/31322
595 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
596 when a personality function is used.
597
ec3643e8
BW
5982007-04-13 Bob Wilson <bob.wilson@acm.org>
599
600 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
601
c40ce8f3
MS
6022007-04-13 Mike Stump <mrs@apple.com>
603
604 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
605 we can...
606 * config/darwin.opt (fapple-kext): Make C++ only.
607 * config/darwin.c (darwin_override_options): Remove code to ensure
608 -fapple-kext is given for C++ only.
609
d1138d8e
RS
6102007-04-13 Richard Sandiford <richard@codesourcery.com>
611
612 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
613 * config/mips/mips.c (override_options): Call
614 SUBTARGET_OVERRIDE_OPTIONS, if defined.
615
c33104d6
L
6162007-04-13 H.J. Lu <hongjiu.lu@intel.com>
617
618 * config/i386/i386.opt (msvr3-shlib): Removed.
619
620 * doc/invoke.texi: Remove -msvr3-shlib.
621
b194a08c
L
6222007-04-13 H.J. Lu <hongjiu.lu@intel.com>
623
624 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
625 with "popcnt" instruction.
626
9bb6aa43
RG
6272007-04-13 Richard Guenther <rguenther@suse.de>
628
629 PR tree-optimization/21258
630 * tree-vrp.c (compare_case_labels): New helper.
631 (find_switch_asserts): New function.
632 (find_assert_locations): Call it for SWITCH_EXPRs.
633
27ac40e2
UB
6342007-04-13 Uros Bizjak <ubizjak@gmail.com>
635
636 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
637 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
638 check is now implied in X87_FLOAT_MODE_P.
639 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
640 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
641 (fix_trunc<mode>_i386_fisttp): Ditto.
642 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
643 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
644 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
645 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
646 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
647 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
648 (unnamed_splitters): Ditto.
649 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
650 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
651 FIRST_SSE_REG for local functions when SSE math is enabled or
652 for functions with sseregparm attribute.
653 (standard_80387_constant_p): Return -1 if mode is not
654 X87_FLOAT_MODE_P.
655 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
656 (ix86_expand_compare): Ditto.
657 (ix86_expand_carry_flag_compare): Ditto.
658 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
659 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
660 DECIMAL_FLOAT_MODE_P.
661 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
662 of SCALAR_FLOAT_MODE_P.
663 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
664 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
665 checks before FLOAT_MODE_P.
666 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
667 before FLOAT_MODE_P.
668 [DIV]: Ditto.
669 [NEG]: Ditto.
670 [ABS]: Ditto.
671 [SQRT]: Ditto.
672 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
673
be0fe523 6742007-04-12 Paolo Bonzini <bonzini@gnu.org>
c7a2139b 675 Charles Wilson <libtool@cwilson.fastmail.fm>
be0fe523
PB
676
677 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
678 (libgcc.mvars): Don't depend on them.
679 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
680 * exec-tool.in: New.
681
06a97569
BM
6822007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
683
684 * doc/invoke.text (--help): Document --help=common.
685
4557bf49
TN
6862007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
687
688 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
689
8cb6400c
RS
6902007-04-12 Richard Sandiford <richard@codesourcery.com>
691
692 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
693 * genemit.c (main): Emit #include "integrate.h".
694 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
695 (LOADGP_RTP): New mips_loadgp_style.
696 * config/mips/mips.h: Include config/vxworks-dummy.h.
697 (TARGET_RTP_PIC): New macro.
698 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
699 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
700 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
701 for TARGET_RTP_PIC.
702 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
703 -mvxworks-pic when using -mrtp and a PIC option.
704 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
705 for RTP PIC.
706 (mips_symbolic_constant_p, mips_symbolic_address_p)
707 (mips_symbol_insns): Handle SYMBOL_HALF.
708 (override_options): Warn about -G and -mrtp being used together.
709 Initialize mips_lo_relocs[SYMBOL_HALF].
710 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
711 (mips_emit_loadgp): Handle LOADGP_RTP.
712 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
713 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
714 (tablejump): Handle function-relative case table entries if
715 TARGET_RTP_PIC.
716 * config/mips/predicates.md (symbol_ref_operand): New predicate.
717
f28d8062
RS
7182007-04-12 Richard Sandiford <richard@codesourcery.com>
719
720 * config/mips/mips.md (load_call<mode>): Allow any general register.
721 destination.
722 (sibcall_value_internal, sibcall_value_multiple_internal)
723 (call_value_internal, call_value_split, call_value_multiple_internal)
724 (call_value_multiple_split): Remove constraints from operand 0.
725
dc7750b1
RS
7262007-04-12 Richard Sandiford <richard@codesourcery.com>
727
728 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
729 rather than loadgp_noshared.
730 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
731 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
732 gen_loadgp.
733 * config/mips/mips.md (loadgp): Rename to...
734 (loadgp_newabi): ...this.
735 (loadgp_noshared): Rename to...
736 (loadgp_absolute): ...this.
737
006257dc
RS
7382007-04-12 Richard Sandiford <richard@codesourcery.com>
739
740 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
741 false for locally-binding symbols.
742 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
743
08e7ceb3
RS
7442007-04-12 Richard Sandiford <richard@codesourcery.com>
745
746 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
747 (SYMBOL_GOT_PAGE_OFST): ...this.
748 (SYMBOL_GOT_GLOBAL): Rename to...
749 (SYMBOL_GOT_DISP): ...this.
750 (SYMBOL_GOTOFF_GLOBAL): Rename to...
751 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
752 * config/mips/mips.c (mips_global_symbol_p): New function.
753 (mips_symbol_binds_local_p): Likewise.
754 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
755 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
756 and mips_symbol_binds_local_p.
757 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
758 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
759 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
760 SYMBOL_GOTOFF_DISP.
761 (mips_ok_for_lazy_binding_p): New function.
762 (mips_load_call_address, mips_expand_call): Use it.
763 (mips_dangerous_for_la25_p): Likewise.
764 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
765 (*got_disp<mode>): Use got_disp_operand instead of
766 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
767 SYMBOL_GOTOFF_GLOBAL.
768 (*got_page<mode>): Use got_page_ofst_operand instead of
769 local_got_operand.
770 * config/mips/predicates.md (const_call_insn_operand): Use
771 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
772 (global_got_operand): Rename to...
773 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
774 SYMBOL_GOT_GLOBAL.
775 (local_got_operand): Rename to...
776 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
777 of SYMBOL_GOT_LOCAL.
778
14976818
RS
7792007-04-12 Richard Sandiford <richard@codesourcery.com>
780
781 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
782 TARGET_CALL_CLOBBERED_GP.
783 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
784 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
785 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
786 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
787 of TARGET_ABICALLS && !TARGET_NEWABI.
788 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
789 * config/mips/mips.c (mips_load_call_address): Check
790 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
791 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
792 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
793 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
794 TARGET_ABICALLS && TARGET_NEWABI.
795 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
796 TARGET_ABICALLS.
797 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
798 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
799 TARGET_ABICALLS && TARGET_NEWABI.
800 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
801 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
802 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
803 whether indirect calls must use $25.
804 (mips_extra_live_on_entry): Check TARGET_GOT instead of
805 TARGET_ABICALLS.
806 * config/mips/mips.md (jal_macro): Check flag_pic and
807 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
808 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
809 instead of TARGET_ABICALLS.
810 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
811 TARGET_ABICALLS && TARGET_OLDABI.
812 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
813 (sibcall): In the comment above the define_insn, mention
814 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
815 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
816 instead of TARGET_ABICALLS.
817
3efd5670
BS
8182007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
819
820 * doc/md.texi (Blackfin family constraints): Document PA and PB.
821 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
822 (MACFLAGS_MATCH_P): New macro.
823 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
824 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
825 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
826 the other MACFLAG constants.
827 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
828 (flag_machi): Tighten constraints. Renumber some of the operands.
829 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
830 output template.
831 (flag_machi_parts_acconly): New pattern.
832 (flag_macinithi): Tighten constraints. Allow any accumulator to be
833 used.
834 (flag_macinit1hi): Tighten constraints.
835 (flag_mul_macv2hi_parts_acconly): New pattern.
836
3fbee523
BS
837 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
838 Use a more efficient implementation.
839 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
840 inline sequences when not optimizing for size.
841
2d3649b2
BS
842 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
843 movhi_high2low): Delete, merge functionality into...
844 (packv2hi): ... this pattern.
845
9d3f9aa3
BS
846 2007-02-11 Jie Zhang <jie.zhang@analog.com>
847 * config/bfin/bfin.opt (msim): New option.
848 (mcpu=): New option.
849 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
850 (bfin_cpu_t): Typedef of enum bfin_cpu.
851 (bfin_cpu_type): New declaration.
852 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
853 -msim and -mcpu= options.
854 (LIB_SPEC): Likewise.
855 * config/bfin/bfin.c (bfin_cpu_type): Define.
856 (bfin_handle_option): Handle -mcpu= option.
857 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
858 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
859 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
860
f4de8ba6
RS
8612007-04-12 Richard Sandiford <richard@codesourcery.com>
862
863 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
864 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
865 (powerpc-wrs-vxworksae): Use ${tm_file}.
866 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
867 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
868 * config/i386/vx-common.h: New file.
869
b83b15da
RS
8702007-04-12 Richard Sandiford <richard@codesourcery.com>
871
872 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
873 of crt0.o%s.
874
bf259a77
AK
8752007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
876
877 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
878 ldxtr.
879
95764818
DG
8802007-04-12 Douglas Gregor <doug.gregor@gmail.com>
881
882 PR c++/31078
883 PR c++/31103
884 * c-common.c (c_build_qualified_type): Set canonical type
316fbf19 885 appropriately.
95764818 886
a670437d
RG
8872007-04-12 Richard Guenther <rguenther@suse.de>
888
889 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
890 lower bound and element size if lower bound is not zero
891 or either of the ARRAY_REF operands is set.
892
5852948c
RG
8932007-04-12 Richard Guenther <rguenther@suse.de>
894
895 PR tree-optimization/24689
896 PR tree-optimization/31307
897 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
898 indices by value.
899 * gimplify.c (canonicalize_addr_expr): To be consistent with
900 gimplify_compound_lval only set operands two and three of
901 ARRAY_REFs if they are not gimple_min_invariant. This makes
902 it never at this place.
903 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
904
8c5e065b
JDA
9052007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
906
907 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
908 null before emitting a .nsubspa directive.
909
0de107cf
DN
9102007-04-11 Diego Novillo <dnovillo@redhat.com>
911
912 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
913 need_to_partition_p if there are no memory statements in the
914 function.
915
55a700ac
ZD
9162007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
917
918 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
919 (gcd_of_steps_may_divide_p): New function.
920 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
921
0f4b25a3
BS
9222007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
923
924 * reload.c (find_reloads_toplev, find_reloads_address,
925 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
926 not a pointer equality test, to decide if we need to call
927 push_reg_equiv_alt_mem.
928
1baf2906
SP
9292007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
930
931 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
932 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
933 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
934
55a700ac 9352007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
0ca2faee
ZD
936
937 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
938 vector to be positive.
939
e9e0aa2c
DN
9402007-04-11 Diego Novillo <dnovillo@redhat.com>
941
942 PR 30735
943 PR 31090
944 * doc/invoke.texi: Document --params max-aliased-vops and
945 avg-aliased-vops.
946 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
947 debug_memory_partitions): Move to tree-flow.h
948 * params.h (AVG_ALIASED_VOPS): Define.
949 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
950 users.
951 (mp_info_t): Likewise.
952 (get_mem_sym_stats_for): New.
953 (set_memory_partition): Move from tree-flow-inline.h.
954 (mark_non_addressable): Only clear the set of symbols for the
955 partition if it exists.
956 (dump_memory_partitions): Move from tree-ssa-operands.c
957 (debug_memory_partitions): Likewise.
958 (need_to_partition_p): New.
959 (dump_mem_ref_stats): New.
960 (debug_mem_ref_stats): New.
961 (dump_mem_sym_stats): New.
962 (debug_mem_sym_stats): New.
963 (update_mem_sym_stats_from_stmt): New.
964 (compare_mp_info_entries): New.
965 (mp_info_cmp): Call it.
966 (sort_mp_info): Change argument to a list of mem_sym_stats_t
967 objects.
968 (get_mpt_for): Move from tree-ssa-operands.c.
969 (find_partition_for): New.
970 (create_partition_for): Remove.
971 (estimate_vop_reduction): New.
972 (update_reference_counts): New.
973 (build_mp_info): New.
974 (compute_memory_partitions): Refactor.
975 Document new heuristic.
976 Call build_mp_info, update_reference_counts,
977 find_partition_for and estimate_vop_reduction.
978 (compute_may_aliases): Populate virtual operands before
979 calling debugging dumps.
980 (delete_mem_sym_stats): New.
981 (delete_mem_ref_stats): New.
982 (init_mem_ref_stats): New.
983 (init_alias_info): Call it.
984 (maybe_create_global_var): Remove alias_info argument.
985 Get number of call sites and number of pure/const call sites
986 from gimple_mem_ref_stats().
987 (dump_alias_info): Call dump_memory_partitions first.
988 (dump_points_to_info_for): Show how many times a pointer has
989 been dereferenced.
990 * opts.c (decode_options): For -O2 set --param
991 max-aliased-vops to 500.
992 For -O3 set --param max-aliased-vops to 1000 and --param
993 avg-aliased-vops to 3.
994 * fortran/options.c (gfc_init_options): Remove assignment to
995 MAX_ALIASED_VOPS.
996 * tree-flow-inline.h (gimple_mem_ref_stats): New.
997 * tree-dfa.c (dump_variable): Dump memory reference
998 statistics.
999 Dump NO_ALIAS* settings.
1000 (referenced_var_lookup): Tidy.
1001 (mem_sym_stats): New.
1002 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
1003 and ORIG are different SSA names for a memory partition.
1004 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
1005 * tree-flow.h (struct mem_sym_stats_d): Define.
1006 (mem_sym_stats_t): Define.
1007 (struct mem_ref_stats_d): Define.
1008 (struct gimple_df): Add field mem_ref_stats.
1009 (enum noalias_state): Define.
1010 (struct var_ann_d): Add bitfield noalias_state.
1011 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
1012 debug_mem_ref_stats, debug_memory_partitions,
1013 debug_mem_sym_stats): Declare.
1014 * tree-ssa-structalias.c (update_alias_info): Update call
1015 sites, pure/const call sites and asm sites in structure
1016 returned by gimple_mem_ref_stats.
1017 Remove local variable IS_POTENTIAL_DEREF.
1018 Increase NUM_DEREFS if the memory expression is a potential
1019 dereference.
1020 Call update_mem_sym_stats_from_stmt.
1021 If the memory references memory, call
1022 update_mem_sym_stats_from_stmt for all the direct memory
1023 symbol references found.
1024 (intra_create_variable_infos): Set noalias_state field for
1025 pointer arguments according to the value of
1026 flag_argument_noalias.
1027 * tree-ssa-structalias.h (struct alias_info): Remove fields
1028 num_calls_found and num_pure_const_calls_found.
1029 (update_mem_sym_stats_from_stmt): Declare.
1030 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
1031 Set default value to 100.
1032 (PARAM_AVG_ALIASED_VOPS): Define.
1033
4bf371ea
RG
10342007-04-11 Richard Guenther <rguenther@suse.de>
1035
1036 PR middle-end/31530
1037 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
1038 a * -b + c as c - a * b if we honor sign dependent rounding.
1039
266d11d8
BS
10402007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
1041
1042 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
1043 bfin_expand_strmov.
1044 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
1045 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
1046 variables.
1047 (initialize_trampoline): Don't use old-style function definition.
1048 (bfin_secondary_reload): Mark IN_P argument as unused.
1049
e9793dae
SP
10502007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
1051
1052 PR tree-optimization/31343
1053 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
1054 (build_polynomial_chrec): Return a scalar when the evolution is zero.
1055 * testsuite/gcc.dg/vect/pr31343.c: New.
1056
54a88090
EC
10572007-04-10 Eric Christopher <echristo@apple.com>
1058
1059 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
1060 * config/i386/i386.md (*cmpfp0): Use.
1061 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
1062 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
1063 (fix_trunc<mode>_i386_fisttp): Ditto.
1064 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
1065 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
1066 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
1067 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
1068 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
1069 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
1070 (unnamed_splitters): Ditto.
1071 * config/i386/i386.c (output_fix_trunc): Assert that
1072 we're not being passed a TFmode operand.
1073
7c57be85
ZD
10742007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
1075
1076 PR tree-optimization/31526
1077 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
1078 n_basic_blocks to find newly added blocks.
1079
0218c012
UB
10802007-04-10 Uros Bizjak <ubizjak@gmail.com>
1081
1082 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
1083 alternative.
1084 (fix_trunc<mode>si_sse): Ditto.
1085 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
1086 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
1087 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
1088 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
1089 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
1090 expander using SSEMODEF mode macro.
1091 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
1092 expander using SSEMODEF mode macro.
1093 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
1094 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
1095 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
1096 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
1097 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
1098 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
1099 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
1100 Macroize insn using X87MODEF mode macro.
1101
3117d1b5
L
11022007-04-09 H.J. Lu <hongjiu.lu@intel.com>
1103
1104 * config/i386/sse.md (sse2_pinsrw): Removed.
1105 (sse2_pextrw): Renamed to ...
1106 (*sse2_pextrw): This.
1107
c141e499
JH
11082007-04-09 Jan Hubicka <jh@suse.cz>
1109
1110 PR target/27869
1111 * config/i386/sse.md
1112 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
1113 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
1114 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
1115 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
1116
6e6e19cb
JH
11172007-04-09 Jan Hubicka <jh@suse.cz>
1118
1119 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
1120 multiple fields of union.
1121
c7b852c8
ZD
11222007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
1123
1124 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
1125 (create_preheaders): Check that loops are available.
1126 (fix_loop_structure): Clean up, improve comments.
1127 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
1128 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
1129 state flags.
1130 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
1131 * predict.c (tree_estimate_probability): Do not call
1132 calculate_dominance_info. Call create_preheaders.
1133 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
1134 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
1135 flags.
1136 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
1137 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
1138 * tree-cfg.c (tree_split_edge): Make an assert more precise.
1139 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
1140 arguments.
1141
c586d32a
JH
11422007-04-08 Jan Hubicka <jh@suse.cz>
1143
1144 * tree.h (maybe_fold_offset_to_component_ref): Declare.
1145 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
1146 * fold-const.c (fold_unary): Use it.
1147
136cdb22
AP
11482007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1149
1150 * varasm.c (assemble_variable): Remove call to
1151 lang_hooks.decls.prepare_assemble_variable.
1152 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
1153 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
1154 * langhooks.h (lang_hooks_for_decls): Remove
1155 prepare_assemble_variable.
1156
77c1632f
MS
11572007-04-08 Mike Stump <mrs@apple.com>
1158
1159 * config/i386/i386.c: Use inc/dec on Core2.
1160
cb9c159d
SB
11612007-04-08 Steven Bosscher <steven@gcc.gnu.org>
1162
1163 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
1164 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
1165 lhd_tree_inlining_end_inlining): Remove.
1166 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
1167 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
1168 end_inlining hooks.
1169 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
1170 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
1171 lhd_tree_inlining_end_inlining): Remove prototypes.
1172 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
1173 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1174 LANG_HOOKS_TREE_INLINING_START_INLINING,
1175 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
1176
1177 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
1178 not set it.
1179
d8a1f0fb
AS
11802007-04-08 Anatoly Sokolov <aesok@post.ru>
1181
1182 PR target/29932
1183 * config/avr/predicates.md (io_address_operand): Delete predicate.
1184 (low_io_address_operand): Don't use 'mode' argument.
1185 (higth_io_address_operand): Rename ...
1186 (high_io_address_operand): ... to this. Don't use 'mode' argument.
1187 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
1188 for above change.
1189
270c60bb
DB
11902007-04-07 Daniel Berlin <dberlin@dberlin.org>
1191
1192 Revert change removing staticp.
1193
ee57a661
AS
11942007-04-07 Anatoly Sokolov <aesok@post.ru>
1195
1196 PR target/30289
54a88090 1197 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
ee57a661
AS
1198 earlyclobber.
1199
ca178f85
BK
12002007-04-07 Bruce Korb <bkorb@gnu.org>
1201
1202 * c.opt: Add -Wformat-contains-nul.
1203 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
1204 -Wformat setting.
1205 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
1206 the NUL byte warning.
1207
594dc048
L
12082007-04-07 H.J. Lu <hongjiu.lu@intel.com>
1209
1210 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
1211
1df918ac
DB
12122007-04-06 Daniel Berlin <dberlin@dberlin.org>
1213
1214 * tree.c (staticp): No longer use staticp langhook.
1215 * langhooks.c (lhd_staticp): Removed.
1216 * langhooks.h (struct lang_hooks): Remove staticp.
1217 * c-common.c (c_staticp): Remove.
1218 * c-common.h (c_staticp): Ditto.
1219 * langhooks-defs.h (lhd_staticp): Ditto.
1220 (LHD_HOOKS_STATICP): Ditto
1221 * tree.h (gcc_assert_lowered): New macro.
1222
ac84e05e
ZD
12232007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
1224
1225 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
1226 argument "reliable".
1227 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
1228 Add argument "reliable". Propagate it through calls.
1229 (infer_loop_bounds_from_undefined): Derive number of iterations
1230 estimates from references in blocks that do not dominate loop latch.
1231 (gcov_type_to_double_int): New function.
1232 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
1233 and expected_loop_iterations_unbounded.
1234 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
1235 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
1236 * tree-data-ref.c (estimated_loop_iterations): Export.
1237 (get_references_in_stmt): Fix -- do not return addresses of local
1238 objects.
1239 * cfgloop.h (expected_loop_iterations_unbounded,
1240 estimated_loop_iterations): Declare.
1241
4de5c5d3
AT
12422007-04-06 Andreas Tobler <a.tobler@schweiz.org>
1243
1244 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
1245
a344e3cb
UB
12462007-04-06 Uros Bizjak <ubizjak@gmail.com>
1247
1248 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
1249 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
1250 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
1251 Use output_387_reg_move().
1252 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
1253 expander using X87MODEF12 mode macro.
1254 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
1255 choosing register preferences. Use output_387_reg_move().
1256 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
1257 instead of "x". Use output_387_reg_move().
1258 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
1259 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
1260 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
1261 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
1262 Use output_387_reg_move().
1263 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
1264 mode macro.
1265 (*truncxf?f_i387 splitter): Ditto.
1266
9c269bf8
DB
12672007-04-06 Daniel Berlin <dberlin@dberlin.org>
1268
1269 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1270 LANG_HOOKS_SAFE_FROM_P.
1271 * expr.c (safe_from_p): Remove langhook call.
1272 * langhooks.h (lang_hooks): Remove safe_from_p.
1273 (lhd_safe_from_p): Remove prototype.
1274 * langhooks.c (lhd_safe_from_p): Remove.
54a88090 1275
b521dcbe
JH
12762007-04-06 Jan Hubicka <jh@suse.cz>
1277
1278 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
1279 functions.
1280
d869c351
UB
12812007-04-06 Uros Bizjak <ubizjak@gmail.com>
1282
1283 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
1284 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
1285 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
1286 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
1287 alternative.
1288 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
1289 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
1290
e4bec638
RH
12912007-04-05 Richard Henderson <rth@redhat.com>
1292
1293 * config/alpha/alpha.c (print_operand) [+]: Remove.
1294 (alpha_end_function): Print nop if call at end of function.
1295 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
1296 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
1297 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
1298 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
1299 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
1300 the call pattern. Update peepholes to match.
1301
44aea9ac
JJ
13022007-04-05 Janis Johnson <janis187@us.ibm.com>
1303
1304 * doc/extend.texi (Other Builtins): Add decimal float variants
1305 of signbit.
1306 * builtins.def: Ditto.
1307 * builtins.c (expand_builtin): Ditto.
1308
27120a59
UB
13092007-04-05 Uros Bizjak <ubizjak@gmail.com>
1310 H.J. Lu <hongjiu.lu@intel.com>
1311
1312 PR target/31478
1313 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
1314 of V8HImode when calling ix86_binary_operator_ok.
1315 (sse2_pmaddwd): Call ix86_binary_operator_ok.
1316 (sdot_prodv8hi): Operands 1 and 2 must be register.
1317
fa574e51
AO
13182007-04-05 Alexandre Oliva <aoliva@redhat.com>
1319
1320 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
1321 initialize align to silence bogus warning.
1322
dc808df6
AO
13232007-04-05 Alexandre Oliva <aoliva@redhat.com>
1324
1325 PR middle-end/22156
1326 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
1327 all_no_warning.
1328 (struct sra_walk_fns): Remove use_all parameter from use.
1329 (sra_hash_tree): Handle BIT_FIELD_REFs.
1330 (sra_elt_hash): Don't hash bitfld blocks.
1331 (sra_elt_eq): Skip them in parent compares as well. Handle
1332 BIT_FIELD_REFs.
1333 (sra_walk_expr): Don't maintain or pass down use_all_p.
1334 (scan_use): Remove use_all parameter.
1335 (scalarize_use): Likewise. Re-expand assignment to
1336 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
1337 output, and re-scalarize after output. Don't mark anything
1338 for no warning.
1339 (scalarize_ldst): Adjust.
1340 (scalarize_walk_gimple_modify_statement): Likewise.
1341 (build_element_name_1): Handle BIT_FIELD_REFs.
1342 (instantiate_element): Don't warn for any element whose parent
1343 is used as a whole.
1344 (instantiate_missing_elements_1): Return the sra_elt.
1345 (canon_type_for_field): New.
1346 (try_instantiate_multiple_fields): New.
1347 (instantiate_missing_elemnts): Use them.
1348 (mark_no_warning): Removed.
1349 (generate_one_element_ref): Handle BIT_FIELD_REFs.
1350 (REPLDUP, sra_build_elt_assignment): New.
1351 (generate_copy_inout): Use them.
1352 (generate_element_copy): Likewise. Handle bitfld differences.
1353 (generate_element_zero): Don't recurse for blocks. Use
1354 sra_build_elt_assignment.
1355 (generate_one_element_int): Take elt instead of var. Use
1356 sra_build_elt_assignment.
1357 (generate_element_init_1): Adjust.
1358 (scalarize_use, scalarize_copy): Use REPLDUP.
1359 (scalarize_ldst): Move assert before dereference.
1360 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
1361
21f7aaa4
SB
13622007-04-05 Steven Bosscher <steven@gcc.gnu.org>
1363
1364 * regmove.c: Fix unused variable warnings due to previous commit.
1365
a78f3e71
SB
13662007-04-05 Steven Bosscher <steven@gcc.gnu.org>
1367
1368 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
1369 (regmove_bb_head): Remove.
1370 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
1371 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
1372 problems with fixup_match_1.
1373 Don't initialize/free regmove_bb_head.
1374
1375 (reg_is_remote_constant_p): If an insn is in the same basic block
1376 but not before INSN, consider it remote, too.
1377
f9ca0dee
AS
13782007-04-05 Anatoly Sokolov <aesok@post.ru>
1379
1380 PR target/25448
54a88090 1381 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
f9ca0dee
AS
1382 DECL_ASSEMBLER_NAME, not the DECL_NAME.
1383
7706ca5d
L
13842007-04-05 H.J. Lu <hongjiu.lu@intel.com>
1385
1386 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
1387 (CONDITIONAL_REGISTER_USAGE): Likewise.
1388
51a6c5b3
RH
13892007-04-04 Richard Henderson <rth@redhat.com>
1390
1391 * config/alpha/lib1funcs.asm: Remove unused file.
1392
b5456e04
BM
13932007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1394
1395 PR other/31356
1396 * opts.c (print_specific_help): Fix --help=<language>
1397 header line.
1398 (common_handle_option): Support --help=common.
1399
2c4c82dd
BM
14002007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1401
1402 PR other/31353
1403 * gcc.c (main): Do not run the linker if
1404 print_subprocess_help indicates that it shouldn't be
1405 run.
1406
5bb43e6d
BM
14072007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1408
1409 PR doc/31355
1410 * doc/invoke.texi (--help=): Document <languages> value, fix
1411 formatting in tables of values.
1412
6acd8838
DS
14132007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
1414
1415 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
1416 dllimport attribute of virtual methods.
1417
c6681463
CL
14182007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
1419
c7a2139b
RH
1420 * config/score/crti.asm: Change _bss_start to __bss_start.
1421 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
1422 (OUTGOING_REG_PARM_STACK_SPACE) update.
1423 * config/score/score.opt: add options to make backend support
1424 score5, score5u, score7 and score7d.
1425 * config/score/score.md: Likewise.
1426 * config/score/misc.md: Likewise.
1427 * config/score/mac.md: Likewise.
1428 * doc/invoke.texi: Likewise.
1429 * doc/md.texi: update constraints define.
c6681463 1430
fdd84500
RH
14312007-04-03 Richard Henderson <rth@redhat.com>
1432
1433 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
1434 an appropriate type, use the mode instead.
1435
9200d6c8
RS
14362007-04-03 Richard Sandiford <richard@codesourcery.com>
1437
1438 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
1439 Set the default --with-arch setting to mips2.
1440 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
1441 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
1442 (MULTILIB_OSDIRNAMES): Delete.
1443 (MULTILIB_DIRNAMES): Define.
1444 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
1445 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
1446 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
1447 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
1448 VXWORKS_OS_CPP_BUILTINS.
1449 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
1450 (MIPS_DEBUGGING_INFO): Undefine.
1451 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
1452
0a9430a8
JJ
14532007-04-03 Jakub Jelinek <jakub@redhat.com>
1454
1455 PR middle-end/30704
1456 * fold-const.c (native_encode_real): Encode real.c provided longs
1457 as a series of 32-bit native integers.
1458 (native_interpret_real): Interpret buffer as a series of 32-bit
1459 native integers.
1460
5be527d0
RG
14612007-04-03 Richard Guenther <rguenther@suse.de>
1462
1463 * genpreds.c (write_insn_constraint_len): Write function
1464 optimized for CONSTRAINT_LEN implementation.
1465 (write_tm_preds_h): Output insn_constraint_len inline and
1466 use it for CONSTRAINT_LEN.
1467 (write_insn_preds_c): Don't output insn_constraint_len.
1468 * doc/md.texi (define_register_constraint): Document multi-letter
1469 constraints shall have the same length if they start with the same
1470 letter.
1471
81e864cb
UB
14722007-04-03 Uros Bizjak <ubizjak@gmail.com>
1473
1474 PR target/31175
1475 * config/i386/i386.md (isinf<mode>2): Expand only when
1476 TARGET_C99_FUNCTIONS is set.
1477
577565f9
UB
14782007-04-03 Uros Bizjak <ubizjak@gmail.com>
1479
1480 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
1481 (x86_64-*-linux*): Ditto.
1482 * config/i386/i386.opt (mpc): New option.
1483 * config/i386/i386.c (overrride_options): Handle
1484 ix87_precision_string.
1485 * config/i386/crtprec.c: New file.
1486 * config/i386/t-crtpc: Ditto.
1487 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
1488 and -mpc80 options.
1489 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
1490 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1491 crtprec32.o, crtprec64.o and crtprec80.o.
1492
1493 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
1494 and -mpc80 options.
1495 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
1496
cb7ad97b
EC
14972007-04-02 Eric Christopher <echristo@apple.com>
1498
1499 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
1500 limitations on darwin.
1501
c8bbabf2
AS
15022007-04-02 Anatoly Sokolov <aesok@post.ru>
1503
1504 PR target/31137
1505 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
1506
f71e957e
DK
15072007-04-02 Dave Korn <dave.korn@artimi.com>
1508
ae65d512 1509 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
cb7ad97b 1510
c82476bf
DK
15112007-04-02 Dave Korn <dave.korn@artimi.com>
1512
ae65d512
DK
1513 * libgcc2.h (exception_descriptor): Don't forward-declare.
1514 (__get_eh_table_language, __get_eh_table_version): Delete
c82476bf
DK
1515 prototypes of long-dead functions.
1516
53a853de
DB
15172007-04-01 Daniel Berlin <dberlin@dberlin.org>
1518
1519 * ebitmap.h: New file
1520 * ebitmap.c: New file
1521 * Makefile.in (ebitmap.o): New target.
1522
26cb3993
JH
15232007-04-01 Jan Hubicka <jh@suse.cz>
1524
1525 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
1526 before very first instruction.
1527
15282007-04-01 Jan Hubicka <jh@suse.cz>
1529
1530 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
1531 waring on 64bit hosts.
1532 * bitmap.h: Fix typo in bitmap_head_def.
1533
5b52976b
SB
15342007-04-01 Steven Bosscher <steven@gcc.gnu.org>
1535
1536 PR rtl-optimization/31391
1537 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
1538 into a DELETED_LABEL note, and the label is in an empty basic
1539 block, update BB_END as well as BB_HEAD.
1540
af33044f
RH
15412007-04-01 Richard Henderson <rth@redhat.com>
1542
1543 PR tree-optimization/31169
1544 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
1545 to varying if the range is outside [0, prec-1].
1546
1732457d
RS
15472007-04-01 Richard Sandiford <richard@codesourcery.com>
1548
1549 PR target/31388
1550 * config/mips/mips.md (load_const_gp): New insn.
1551 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
1552 the MIPS16 GP pseudo register if no_new_pseudos.
1553 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
1554
ee05ef56
AP
15552007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
1556
1557 PR target/31364
1558 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
1559 secureplt.
1560 (call_value): Likewise.
1561
c9516c38 15622007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
577565f9 1563 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
c9516c38
WB
1564
1565 PR 14737
1566 * doc/invoke.texi: (optimization options): Reword description
1567 of -ffast-math. Document its primary purpose.
cb7ad97b 1568
6be42dd4
RG
15692007-03-31 Richard Guenther <rguenther@suse.de>
1570
1571 * omp-low.c (splay-tree.h): Include.
1572 (lookup_decl): Replace splay-tree usage by pointer-map.
1573 (maybe_lookup_decl): Likewise.
1574 (new_omp_context): Likewise.
1575 (delete_omp_context): Likewise.
1576 * gimplify.c (splay-tree.h): Include.
1577 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
1578 pointer-map.
1579 (remap_ssa_name): Likewise.
1580 (remap_decl): Likewise.
1581 (remap_type_1): Likewise.
1582 (remap_type): Likewise.
1583 (copy_body_r): Likewise.
1584 (expand_call_inline): Likewise.
1585 (clone_body): Likewise.
1586 (copy_tree_r): Likewise.
1587 (remap_save_expr): Likewise.
1588 (unsave_r): Likewise.
1589 (unsave_expr_now): Likewise.
1590 (tree_function_versioning): Likewise.
1591 (build_duplicate_type): Likewise.
1592 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
1593 (struct copy_body_data): Replace splay-tree by pointer-map.
1594 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
1595 not $(SPLAY_TREE_H).
1596 (gimplify.o): Depend on $(SPLAY_TREE_H).
1597 (omp-low.p): Likewise.
1598
d54a92b5
AS
15992007-03-31 Anatoly Sokolov <aesok@post.ru>
1600
cb7ad97b 1601 * config/avr/predicates.md (even_register_operand,
d54a92b5
AS
1602 odd_register_operand): New predicates.
1603 * config/avr/avr.md (movw peephole2): New.
1604 (movw_r peephole2): New.
1605
47ecd38d
RAE
16062007-03-30 Rafael Avila de Espindola <espindola@google.com>
1607
1608 * tree.h (get_signed_or_unsigned_type): New.
1609 * fold-const.c (operand_equal_for_comparison_p): Use
1610 get_signed_or_unsigned_type instead of
1611 lang_hooks.types.signed_or_unsigned_type.
1612 * expr.c (store_expr): Ditto.
1613 * langhooks.c (get_signed_or_unsigned_type): New.
1614 (lhd_signed_or_unsigned_type): New.
1615 * langhooks.h (lhd_signed_or_unsigned_type): New.
1616 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
1617
ccf8e764
RH
16182007-03-30 Richard Henderson <rth@redhat.com>
1619
1620 * tree-ssa-loop-ivopts.c: Include target.h.
1621 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
1622 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
1623 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
1624 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
1625
16262007-03-30 Richard Henderson <rth@redhat.com>
1627 Kai Tietz <kai.tietz@onevision.com>
1628
1629 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
1630 default for 64-bit.
1631 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
1632 (TARGET_64BIT_MS_ABI): New.
1633 (DBX_REGISTER_NUMBER): Handle 64-bit.
1634 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
1635 (LONG_TYPE_SIZE): Force to 32.
1636 (REG_PARM_STACK_SPACE): New.
1637 (OUTGOING_REG_PARM_STACK_SPACE): New.
1638 (REGPARM_MAX, SSE_REGPARM_MAX): New.
1639 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1640 (STACK_BOUNDARY): Use 128 for 64-bit.
1641 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
1642 Add 64-bit implementation.
1643 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
1644 argument unused.
1645 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
1646 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
1647 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
1648 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
1649 (ix86_handle_cconv_attribute): Don't warn when ignoring if
1650 TARGET_64BIT_MS_ABI.
1651 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
1652 (ix86_pass_by_reference): Likewise.
1653 (ix86_function_value_regno_p): Likewise.
1654 (ix86_build_builtin_va_list): Likewise.
1655 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1656 (function_arg_advance_ms_64): New.
1657 (function_arg_advance): Call it.
1658 (function_arg_ms_64): New.
1659 (function_arg): Call it.
1660 (function_value_ms_64): New.
1661 (ix86_function_value_1): Call it.
1662 (return_in_memory_ms_64): New.
1663 (ix86_return_in_memory): Call it.
1664 (setup_incoming_varargs_ms_64): New.
1665 (ix86_setup_incoming_varargs): Call it.
1666 (ix86_expand_prologue): Handle 64-bit stack probing.
1667 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
1668 (output_pic_addr_const): Likewise.
1669 (x86_this_parameter): Likewise.
1670 (x86_output_mi_thunk): Likewise.
1671 (x86_function_profiler): Likewise.
1672 (TARGET_STRICT_ARGUMENT_NAMING): New.
1673 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
1674 (TARGET_64BIT_MS_ABI): New.
1675 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
1676 * config/i386/i386.md (allocate_stack_worker): Remove.
1677 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
1678 describe the clobber of eax without a match_scratch.
1679 (allocate_stack_worker_postreload): Remove.
1680 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
1681 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
1682 (allocate_stack_worker_rex64_postreload): Remove.
1683 (allocate_stack): Handle 64-bit.
1684 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
1685 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
1686 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
1687 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
1688 (STANDARD_STARTFILE_PREFIX_1): Likewise.
1689 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
1690 * config.build (x86_64-*-mingw*): New host.
1691 * config.host (x86_64-*-mingw*): New host.
1692 * config.gcc (x86_64-*-mingw*): New target.
1693 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
1694
121de39f
RH
16952007-03-30 Richard Henderson <rth@redhat.com>
1696 Kai Tietz <kai.tietz@onevision.com>
1697
1698 * c-pragma.c (struct def_pragma_macro_value): New.
1699 (struct def_pragma_macro): New.
1700 (pushed_macro_table): New.
1701 (dpm_hash, dpm_eq): New.
1702 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
1703 (init_pragma): Install them.
1704 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1705
6c7ac15d
AS
17062007-03-30 Anatoly Sokolov <aesok@post.ru>
1707
cb7ad97b 1708 * config/avr/avr.c (avr_override_options): Clear
6c7ac15d
AS
1709 'flag_delete_null_pointer_checks'.
1710
cb68ec50
PC
17112007-03-30 Paolo Carlini <pcarlini@suse.de>
1712
1713 PR c++/26099
1714 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
1715 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
1716 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
1717 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
1718 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
1719 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
1720 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
1721 C++ extensions.
1722 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
1723
c7a0240a
SB
17242007-03-30 Steven Bosscher <steven@gcc.gnu.org>
1725
1726 * regmove.c: Move all of pass_stack_adjustments from here...
1727 * combine-stack-adj.c: ...to this new file.
1728 * Makefile.in: Add rules for combine-stack-adj.o.
1729
f86289d5
ZD
17302007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
1731
1732 PR tree-optimization/31383
1733 * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
1734 to have the same length.
1735
4f40bddf
JH
17362007-03-30 Jan Hubicka <jh@suse.cz>
1737
59af4391 1738 PR middle-end/30700
cb7ad97b 1739 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
4f40bddf
JH
1740 availablility; add more sanity checking; ask varpool only about
1741 VAR_DECL.
1742
58c11467
RH
17432007-03-29 Richard Henderson <rth@redhat.com>
1744
1745 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
1746 to decide, but __SIZEOF_LONG_LONG__.
1747
5b77de89
RH
17482007-03-29 Richard Henderson <rth@redhat.com>
1749
1750 * emutls.c (struct __emutls_array): New.
1751 (emutls_destroy): Use it instead of casting element 0 from void*.
1752 (__emutls_get_address): Likewise.
1753
da489f73
RH
17542007-03-29 Richard Henderson <rth@redhat.com>
1755
1756 * varasm.c (initializer_constant_valid_p): Don't deny
1757 DECL_DLLIMPORT_P on functions.
1758
1759 * config/i386/cygming.h: Remove function declarations.
1760 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
1761 (ASM_OUTPUT_LABELREF): Remove.
1762 (COMMON_ASM_OP): Remove.
1763 (ASM_OUTPUT_COMMON): Remove.
1764 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1765 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
1766 (ASM_DECLARE_FUNCTION_NAME): Likewise.
1767 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
1768 Rename from TARGET_ENCODE_SECTION_INFO.
1769 * config/i386/netware.h: Likewise.
1770 * config/i386/i386-protos.h: Update.
1771 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
1772 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
1773 (legitimate_constant_p): Reject dllimports.
1774 (dllimport_map, get_dllimport_decl): New.
1775 (legitimize_dllimport_symbol): New.
1776 (legitimize_address, ix86_expand_move): Use it.
1777 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
1778 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
1779 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
1780 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
1781 * config/i386/predicates.md (constant_call_address_operand): Only
1782 accept symbols; reject dllimport_p symbols.
1783 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1784 i386_pe_maybe_record_exported_symbol.
1785 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
1786 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
1787 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
1788 trust the setting of DECL_DLLIMPORT_P.
1789 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
1790 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
1791 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
1792 tidy the argument scanning loop.
1793 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
1794 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
1795 (i386_pe_strip_name_encoding): Remove.
1796 (i386_pe_binds_local_p): New.
1797 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
1798 (i386_pe_output_labelref): Remove.
1799 (i386_pe_asm_output_aligned_decl_common): New.
1800 (i386_pe_maybe_record_exported_symbol): Rename from
1801 i386_pe_record_exported_symbol; check for dllexported symbols.
1802
311e3ff0
ZW
18032007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
1804
1805 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
1806 add comment explaining why vsnprintf cannot be used.
1807
e89886a0
DG
18082007-03-29 Douglas Gregor <doug.gregor@gmail.com>
1809
1810 PR tree-optimization/30666
1811 * tree.c (build_complex_type): When creating type names for DWARF2
1812 debug info, create TYPE_DECLs for TYPE_NAME instead of
1813 IDENTIFIER_NODEs.
1814 (build_common_tree_nodes_2): Use build_complex_type when building
1815 predefined complex types, to preserve canonical types.
1816
cab6e771
SB
18172007-03-29 Steven Bosscher <steven@gcc.gnu.org>
1818
1819 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
1820 (noce_get_alt_condition): Look at it to determine whether to
1821 reverse the condition or not.
1822 (noce_get_condition): Substitute the truth for lies.
1823 (noce_find_if_block): Set the then_else_reversed field.
1824
ed31d14c
LP
18252007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
1826
1827 * config/fr30/fr30.md (movdi): Do not accept immediates as the
1828 destination of this insn.
1829 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
1830 than calling gen_rtx_SET directly. Use r0 to hold the value of
1831 'address + 4' rather than a stack based temporary which can be
1832 mis-optimized away.
cb7ad97b 1833
833cd70a
AK
18342007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1835
1836 * config/s390/s390.c (s390_secondary_input_reload_class,
1837 s390_secondary_output_reload_class): Functions removed.
1838 (s390_secondary_reload): New function.
1839 (TARGET_SECONDARY_RELOAD): Target macro defined.
1840 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
1841 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
1842 * config/s390/s390.md ("reload_outti", "reload_outdi",
1843 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
1844 "reload_out<mode>"): Expanders removed.
1845 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
1846 "reload<mode>_nonoffmem_out"): Expanders added.
1847
040f69eb
AK
18482007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1849
1850 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
1851 SRC->DEST replacement failed anyway.
1852
4beb5c4b
MS
18532007-03-28 Mike Stump <mrs@apple.com>
1854
1855 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
1856 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
ab1da110 1857 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
4beb5c4b 1858
aafc814c
DR
18592007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1860
1861 * config.gcc: Accept barcelona as a variant of amdfam10.
1862 * config/i386/i386.c (override_options): Likewise.
1863 * doc/invoke.texi: Likewise.
cb7ad97b 1864
8975ae22
EB
18652007-03-28 Eric Botcazou <ebotcazou@adacore.com>
1866
1867 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
1868 offsets for BIT_FIELD_REF and COMPONENT_REF.
1869
1c2e50d8
RG
18702007-03-28 Richard Guenther <rguenther@suse.de>
1871
1872 * tree.c (is_global_var): Move ...
1873 * tree-flow-inline.h (is_global_var): ... here.
1874 * tree.h (is_global_var): Remove declaration.
1875
a646aded
UB
18762007-03-28 Uros Bizjak <ubizjak@gmail.com>
1877
1878 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
1879 option.
1880 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
1881 * config/i386/i386.c (ix86_tune_features): Initialize new
1882 tuning option.
1883 * config/i386/predicates.md (promotable_binary_operator): Use
1884 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
1885
e701c05c
GZ
18862007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1887
1888 PR target/31380
1889 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
1890
446347f9 18912007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
08937250
LP
1892
1893 * config/fr30/fr30.md (movsi_internal): Change destination
cb7ad97b 1894 constraint from m to V and add m to the end.
08937250 1895
52618376
CB
18962007-03-28 Christian Bruel <christian.bruel@st.com>
1897
1898 * config/sh/sh.md (movsi_i): Fix type attribute.
1899
446347f9 19002007-03-28 Christian Bruel <christian.bruel@st.com>
bbccf908
CB
1901
1902 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
1903 (movsf_ie): Likewise.
1904
27a0ce7d
CB
19052007-03-28 Christian Bruel <christian.bruel@st.com>
1906
1907 * config.gcc: Add sh4-300 to multilib.
1908 * config/sh/t-mlib-sh4-300: New file.
1909
99cd7dd0
AK
19102007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
1911
1912 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
1913 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
1914 fix_trunc<mode>di2.
cb7ad97b 1915 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
99cd7dd0
AK
1916 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
1917 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
1918 "fixuns_trunctddi2"): Whitespace fix.
1919
e318fc8f
KK
19202007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
1921
1922 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
1923 the definition of struct sh_args.
1924 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
1925 CALL_COOKIE_INT_REG_GET): Likewise.
1926
96647293
SB
19272007-03-28 Steven Bosscher <steven@gcc.gnu.org>
1928
1929 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
1930 transformations are applied successfully.
1931
00ffc97c
DG
19322007-03-27 Douglas Gregor <doug.gregor@gmail.com>
1933
1934 * tree.c (tree_contains_struct): Permit 512 tree codes.
1935 * tree.h (tree_contains_struct): Ditto.
1936 (MAX_TREE_CODES): Ditto.
1937 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
1938 SPARE member to store remaining padding bits.
1939
39418b53
AS
19402007-03-27 Anatoly Sokolov <aesok@post.ru>
1941
cb7ad97b 1942 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
39418b53
AS
1943 architecture.
1944
a3bba767
JJ
19452007-03-27 Janis Johnson <janis187@us.ibm.com>
1946
0d74c0ee
JJ
1947 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
1948 * configure: Regenerate.
1949
a3bba767
JJ
1950 * configure: Regenerate using the correct version of autoconf.
1951
19522007-03-27 Anatoly Sokolov <aesok@post.ru>
2cd11105
AS
1953
1954 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
1955 pointer regs.
1956 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
1957 regs to "__SP_L__" and "__SP_H__".
1958
c21c775a
RG
19592007-03-27 Richard Guenther <rguenther@suse.de>
1960
1961 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
cb7ad97b 1962 computations with it with a HOST_WIDE_INT variable.
c21c775a 1963
6b692a83
MS
19642007-03-26 Mike Stump <mrs@apple.com>
1965
1966 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
1967 objective-c-header, objective-c++-header and objc++-cpp-output
1968 support.
1969 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
1970
24bfafbc
RH
19712007-03-26 Richard Henderson <rth@redhat.com>
1972
a646aded
UB
1973 PR target/31361
1974 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
1975 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
1976 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
1977 IX86_BUILTIN_PSRLQ128): New.
1978 (ix86_init_mmx_sse_builtins): Add them.
1979 (ix86_expand_builtin): Expand them.
1980 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
1981 operand 2 be TImode.
1982 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
1983 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1984 _mm_srli_epi64): Mark __B const.
1985 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
1986 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
cb7ad97b 1987 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
a646aded 1988 new two-vector shift builtins.
24bfafbc 1989
fa633851
ILT
19902007-03-26 Ian Lance Taylor <iant@google.com>
1991
1992 PR tree-optimization/31345
1993 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
1994 [+INF, +INF(OVF)] into VARYING.
1995
cff4720f
ZW
19962007-03-26 Zack Weinberg <zackw@panix.com>
1997
01d419ae
ZW
1998 * gengtype-parse.c: New file.
1999 * gengtype-yacc.y: Delete.
2000 * gengtype-lex.l: Don't include gengtype-yacc.h.
2001 Define YY_DECL and yyterminate appropriately for recursive
2002 descent parser. yylval is now a string out-parameter to yylex.
2003 (HWS, EOID): New shorthand.
2004 (IWORD): Add a couple more types.
2005 (yylex): Add a setup stanza. Remove the complex rules for
2006 detecting GTY'ed types and typedefs; replace with simple
2007 keyword detectors. Adjust everything for the changed
2008 definition of yylval. Ignore all pp-directives, not just #define.
2009 (yyerror): Delete.
2010 (parse_file): Rename yybegin; do not call yyparse.
2011 (yyend): New.
2012 * gengtype.c (xasprintf): Export again.
2013 (this_file): New. Use everywhere __FILE__ was being used.
2014 (get_lang_bitmap): Special case types defined in gengtype.c.
2015 (do_typedef, new_structure): Suppress definition of certain types.
2016 (new_structure): Improve diagnostics of duplicate definitions.
2017 Make sure location_s is associated with input.h.
2018 (nreverse_pairs, define_location_structures): New functions.
2019 (main): Improve tagging of kludge types. Remove old kludges
2020 for input.h types; use define_location_structures.
2021 * gengtype.h: Update prototypes. Define token codes here.
2022 * Makefile.in: Remove all references to gengtype-yacc.
2023 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
2024 and gengtype.
2025 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
2026 add GTY((skip)) to the field that's only conditionally there.
2027 * doc/install.texi: Document that Bison is no longer required
2028 unless building treelang.
2029
11a67599
ZW
2030 * gengtype.c: Don't include gtyp-gen.h.
2031 (srcdir): Declare here.
2032 (base_files, lang_dir_names): Allocate dynamically.
2033 (gt_files, num_gt_files, num_lang_dirs): New globals.
2034 (measure_input_list, read_input_line, read_input_list)
2035 (set_lang_bitmap): New functions.
2036 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
2037 simplify, relying on read_input_list to set up the bitmaps.
2038 (main): Arguments are no longer unused. Check for correct number
2039 of command line arguments, set srcdir and srcdir_len, then call
2040 read_input_list, before doing anything else. No need to worry
2041 about duplicates in main loop.
2042 * configure.ac: Simplify the calculation of all_gtfiles.
2043 Put language tags in there. Don't set or substitute
2044 all_gtfiles_files_langs or all_gtfiles_files_frags.
2045 * Makefile.in: Revamp the way gengtype is invoked, now that it
2046 takes a file on its command line with a much simpler format.
2047 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
2048 (GTFILES): Remove duplicates and C source files.
2049 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
2050 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
2051 * configure: Regenerate.
2052
065ae611
ZW
2053 * gengtype.h: Remove all type definitions to gengtype.c; leave
2054 only definitions of options_p, type_p, and pair_p as opaque
2055 pointers. Update prototypes.
2056 * gengtype.c: Many type definitions moved here from gengtype.h.
2057 Consolidate type definitions at the top of the file.
2058 (xvasprintf): Delete.
2059 (xasprintf): Make static.
2060 (create_nested_pointer_option): Add 'next' parameter.
2061 (create_field_all, create_field_at): New functions.
2062 (create_field): Now a thin wrapper around create_field_all.
2063 (create_optional_field): Rename create_optional_field_ and add
2064 line argument. Original name is now a macro which supplies
2065 __LINE__.
2066 (oprintf): Use vsnprintf directly.
2067 (close_output_files): Use fatal rather than perror/exit.
2068 (note_def_vec, note_def_vec_alloc): Use create_field_at.
2069 (main): Set progname. Don't use exit.
2070 * gengtype-yacc.y (struct_fields): Use create_field_at.
2071 (option, optionseqopt): Delete.
2072 (optionseq): Consolidate productions from option here so we
2073 can use the first argument to create_option.
2074
17defa6a
ZW
2075 * gengtype-lex.l: Distinguish unions from structures in the
2076 token type. Don't call find_structure; return the tag as a string.
2077 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
2078 Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
2079 Reorganize typedef_struct production accordingly.
2080 Use create_nested_ptr_option.
2081 * gengtype.c (create_nested_ptr_option): New function.
2082 * gengtype.h: Declare it.
2083
95161faf
ZW
2084 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
2085 (string_type): Don't declare.
2086 (do_scalar_typedef): Declare.
2087 (create_scalar_type): Update prototype.
2088 * gengtype.c (string_type): Make static.
2089 (scalar_nonchar, scalar_char): New.
2090 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
2091 (resolve_typedef): Use scalar_nonchar for error recovery.
2092 (create_scalar_type): Remove name_len field. Return scalar_char
2093 or scalar_nonchar as appropriate.
2094 (adjust_field_type): Look at scalar_is_char boolean to decide whether
2095 to use string_type.
2096 (throughout): Use scalar_nonchar instead of calling create_scalar_type,
2097 whenever possible.
2098 (main): Initialize scalar_char and scalar_nonchar before calling
2099 gen_rtx_next.
2100 * gengtype-lex.l: Adjust for removal of second argument to
2101 create_scalar_type. Use yylval.s instead of yylval.t when
2102 returning SCALAR.
2103 * gengtype-yacc.y: Type of SCALAR is string. Call
2104 create_scalar_type from type:SCALAR rule. Adjust for removal of
2105 second argument to create_scalar_type.
2106
4a399aef
ZW
2107 * vec.h: Remove all #if IN_GENGTYPE blocks.
2108 Add comment saying that changes may require adjustments to gengtype.
2109 * gengtype.c: Don't include coretypes.h or tm.h.
2110 Add comment to inclusion of errors.h.
2111 (note_def_vec, note_def_vec_alloc): New functions.
2112 * gengtype.h: Declare new functions.
2113 * gengtype-lex.l: Don't include coretypes.h.
2114 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
2115 Delete.
2116 (update_lineno): Remove unnecessary prototype.
2117 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
2118 (VEC rule): Just return VEC_TOKEN.
2119 * gengtype-yacc.y (VEC_TOKEN): New token type.
2120 (type): Add a production for VEC(a,b).
2121 * Makefile.in: Update dependencies.
2122
d287ace6
ZW
2123 * gengtype-lex.l: Remove rules for parsing pointer-to-function
2124 typedefs that use the old PARAMS macro.
2125
cff4720f
ZW
2126 * gengtype-lex.l: Remove all rules and states relating to yacc
2127 input files.
2128 * gengtype-yacc.y: Similarly.
2129 * gengtype.c (note_yacc_type): Delete function.
2130 * gengtype.h: Update prototypes.
2131
71175bf3
JM
21322007-03-26 Joseph Myers <joseph@codesourcery.com>
2133
2134 * tree-pretty-print.c (dump_generic_node): Report precision of
2135 unnamed integer types.
2136
93242b9c
SB
21372007-03-26 Steven Bosscher <steven@gcc.gnu.org>
2138
2139 * ifcvt.c (noce_try_store_flag_constants): Don't check
2140 no_new_pseudos here.
2141 (noce_try_store_flag_constants): Don't check no_new_pseudos.
2142 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
2143 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
2144 noce_try_sign_mask): Likewise.
2145 (if_convert): Check no_new_pseudos here.
2146
2147 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
2148 Remove prototypes.
2149 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
2150 (noce_get_condition): Handle new then_else_reversed argument.
2151 (noce_init_if_info): Remove, fold into noce_find_if_block.
2152 (noce_process_if_block): Take a struct noce_if_info as the
2153 argument. Don't set up one based on ce_if_info. Update pointer
2154 references accordingly.
2155 (cond_move_process_if_block): Likewise.
2156 (process_if_block): Removed.
2157 (find_if_block): Removed. Move functionality two new functions,
2158 noce_find_if_block and cond_exec_find_if_block.
2159 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
2160 blocks and the symmetric IF-ELSE-JOIN case.
2161 (cond_exec_find_if_block): Also new function mostly based on old
2162 find_if_block and process_if_block.
2163 (find_if_header): Replace find_if_block call with separately
2164 guarded calls to noce_find_if_block and cond_exec_find_if_block.
2165 (find_cond_trap): Update noce_get_condition call.
2166 (dead_or_predicable): Likewise.
2167
85acef0e
JJ
21682007-03-26 Jakub Jelinek <jakub@redhat.com>
2169
2170 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
2171 Remove.
2172 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
2173 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
2174 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
2175 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
a646aded 2176 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
85acef0e
JJ
2177 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
2178 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
2179 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
2180 __builtin_ia32_psrad128 builtins.
2181
8dde5924
UB
21822007-03-26 Uros Bizjak <ubizjak@gmail.com>
2183
2184 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
2185 * config/i386/constraints.md
2186 (define_constraint "I"): Use IN_RANGE macro.
2187 (define_constraint "J"): Ditto.
2188 (define_constraint "K"): Ditto.
2189 (define_constraint "M"): Ditto.
2190 (define_constraint "N"): Ditto.
2191 (define_constraint "O"): Ditto.
2192 * config/i386/predicates.md
2193 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
2194 (define_predicate "const_0_to_3_operand"): Ditto.
2195 (define_predicate "const_0_to_7_operand"): Ditto.
2196 (define_predicate "const_0_to_15_operand"): Ditto.
2197 (define_predicate "const_0_to_63_operand"): Ditto.
2198 (define_predicate "const_0_to_255_operand"): Ditto.
2199 (define_predicate "const_1_to_31_operand"): Ditto.
2200 (define_predicate "const_2_to_3_operand"): Ditto.
2201 (define_predicate "const_4_to_7_operand"): Ditto.
2202
a5ad2017
DE
22032007-03-25 David Edelsohn <edelsohn@gnu.org>
2204
2205 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
2206 in SImode for save_world.
2207 * config/rs6000/altivec.md (save_world, restore_world): Convert to
2208 LR hard reg.
2209
5773afc5
DN
22102007-03-25 Dorit Nuzman <dorit@il.ibm.com>
2211
2212 PR tree-optimization/30784
2213 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
2214 BIT_FIELD_REF.
2215
3ece6cc2
RE
22162007-03-25 Revital Eres <eres@il.ibm.com>
2217
cff4720f
ZW
2218 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
2219 Fold movement_possibility function into it.
3ece6cc2 2220
e65a3857
DE
22212007-03-25 David Edelsohn <edelsohn@gnu.org>
2222
2223 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
2224 (load_macho_picbase_{si,di}): Convert to LR hard reg.
2225 (call_indirect_nonlocal_darwin64): Same.
2226 (call_nonlocal_darwin64): Same.
2227 (call_value_indirect_nonlocal_darwin64): Same.
2228 (call_value_nonlocal_darwin64): Same.
2229 (sibcall_nonlocal_darwin64): Same.
2230 (sibcall_value_nonlocal_darwin64): Same.
2231 (sibcall_symbolic_64): Same.
2232 (sibcall_value_symbolic_64): Same.
2233 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
2234 LR pseudo.
2235 (rs6000_emit_load_toc_table): Same.
2236 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
2237 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
2238 (mull_call): Same.
2239 (divss_call): Same.
2240 (divus_call): Same.
2241 (quoss_call): Same.
2242 (quous_call): Same.
2243 (load_toc_v4_pic_si): Same
2244 (load_toc_v4_PIC_1): Same.
2245 (load_toc_v4_PIC_1b): Same.
2246 (call_indirect_aix{32,64}): Same.
2247 (call_value_indirect_aix{32,64}): Same.
2248 (call): Same.
2249 (call_value): Same.
2250 (call_local{32,64}): Same.
2251 (call_value_local{32,64}): Same.
2252 (call_indirect_nonlocal_aix{32,64}): Same.
2253 (call_nonlocal_aix{32,64}): Same.
2254 (call_value_indirect_nonlocal_aix{32,64}): Same.
2255 (call_value_nonlocal_aix{32,64}): Same.
2256 (call_indirect_nonlocal_sysv<mode>): Same.
2257 (call_nonlocal_sysv<mode>): Same.
2258 (call_value_indirect_nonlocal_sysv<mode>): Same.
2259 (call_value_nonlocal_sysv<mode>): Same.
2260 (sibcall): Same.
2261 (sibcall_local{32,64}): Same.
2262 (sibcall_value_local{32,64}): Same.
2263 (sibcall_nonlocal_aix{32,64}): Same.
2264 (sibcall_value_nonlocal_aix{32,64}): Same.
2265 (sibcall_nonlocal_sysv<mode>): Same.
2266 (sibcall_value): Same.
2267 (sibcall_value_nonlocal_sysv<mode>): Same.
2268
3303be15
PB
22692007-03-24 Paul Brook <paul@codesourcery.com>
2270
2271 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
2272 * config/arm/linux-eabi.h: Remove legacy syscall hack.
2273
13f70342
RH
22742007-03-24 Richard Henderson <rth@redhat.com>
2275
2276 * config/ia64/constraints.md: New file.
2277 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
2278 satisfies_constraint_?.
2279 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
2280 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
2281 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
2282 ia64_output_mi_thunk): Likewise.
2283 (ia64_const_ok_for_letter_p): Remove.
2284 (ia64_const_double_ok_for_letter_p): Remove.
2285 (ia64_extra_constraint): Remove.
2286 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
2287 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
2288 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
2289 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
2290 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
2291 EXTRA_MEMORY_CONSTRAINT): Remove.
2292 * config/ia64/ia64.md: Include constriants.md. Replace
2293 CONST_OK_FOR_? with satisfies_constraint_?.
2294
79b87c74
MM
22952007-03-23 Michael Meissner <michael.meissner@amd.com>
2296 H.J. Lu <hongjiu.lu@intel.com>
2297
2298 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
2299 DPD or BID name.
2300 (name macros): Use DPD_BID_NAME to convert names properly.
2301
2302 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
2303 decimal floating point format.
2304 (init_floating_libfuncs): Change decimal functions so that they
2305 have a "bid_" prefix if the decimal system uses the BID format,
2306 and "dpd_" prefix if the decimal system uses the DPD format.
2307 (init_interclass_conv_libfuncs): Ditto.
2308 (init_intraclass_conv_libfuncs): Ditto.
2309
2310 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2311 using the BID format.
2312
2313 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2314 whether we are using the BID decimal format.
2315 * configure: Regenerate.
2316
2317 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2318 the compiler has decimal floating point enabled. Define
2319 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2320 instead of DPD.
2321
2322 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2323 using the BID format.
2324
2325 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2326 whether we are using the BID decimal format.
2327 * configure: Regenerate.
2328
2329 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2330 the compiler has decimal floating point enabled. Define
2331 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2332 instead of DPD.
2333
2334 * doc/install.texi (--enable-decimal-float): Document BID and DPD
2335 options, and that it is enabled for i386/x86_64 systems.
2336
2337 * Makefile.in (enable_decimal_float): New.
2338 (DECNUMFMT): New.
2339 (DECNUMINC): Add -I$(DECNUMFMT).
2340 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
2341 to $(DECNUMFMT) from $(DECNUM).
2342
2343 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
2344 Substitute enable_decimal_float.
2345 * configure: Regenerated.
2346
2347 PR other/30529
2348 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
2349 unsigned long.
2350
2351 * configure.ac: Enable decimal float for x86_64-*-linux*.
2352 * configure: Regenerated.
2353
2354 PR other/30530
2355 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
2356 decimal128ClearSign to flip and clear the sign bit in decimal128.
2357 (decimal_real_maxval): Set decimal128SetSign to set the sign
2358 bit in decimal128.
2359
f870ab63
ILT
23602007-03-23 Ian Lance Taylor <iant@google.com>
2361
2362 * fold-const.c (fold_binary): Correct warning for X - c >= X.
2363
ed3d212b
ILT
23642007-03-23 Ian Lance Taylor <iant@google.com>
2365
2366 * tree-dump.c (dump_files): Correct comment.
2367
c8539275
ILT
23682007-03-23 Ian Lance Taylor <iant@google.com>
2369
2370 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
2371
ad21dab7
SB
23722007-03-23 Steven Bosscher <steven@gcc.gnu.org>
2373
2374 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
2375 in cfglayout mode. Don't go into and out of cfglayout mode.
2376 Link the blocks in the order of the constructed traces.
2377 (rest_of_handle_tracer): Adjust call to tracer.
2378 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
2379 Don't go into cfglayout mode.
2380 (rtl_loop_done): Don't go out of cfglayout mode.
2381 * cfglayout.c (relink_block_chain): New function, split out from...
2382 (fixup_reorder_chain): ...here. Remove redundant checking.
2383 (cfg_layout_finalize): Don't clear the header, footer, and aux
2384 fields here, move the code to do so to relink_block_chain. Likewise
2385 for free_original_copy_tables.
2386 * rtl.h (tracer): Update prototype.
2387 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
2388 Assert we are in cfglayout mode. Don't go into and out of cfglayout
2389 mode. Use relink_block_chain to serialize the CFG according to the
2390 new basic block order. Move targetm.cannot_modify_jumps_p check from
2391 here...
2392 (gate_handle_reorder_blocks): ...to here.
2393 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
2394 from here...
2395 (gate_duplicate_computed_gotos): ...to here.
2396 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
2397 something always changes when going into and out of cfglayout mode.
2398 Perform an expensive cfg cleanup while going into cfglayout mode.
2399 Always update liveness information on HAVE_conditional_execution
2400 targets. Reserialize the basic blocks and go out of cfglayout mode.
2401 * reg-stack.c: Include cfglayout.h.
2402 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
2403 the call to reorder_basic_blocks.
2404 * basic-block.h (reorder_basic_blocks): Update prototype.
2405 (relink_block_chain): New prototype.
2406 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
2407
00f9e1ca
JM
24082007-03-23 Joseph Myers <joseph@codesourcery.com>
2409
2410 * config/mips/mips.md (type, hazard, *movdi_32bit,
2411 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
2412 *movhi_internal, *movqi_internal, *movsf_hardfloat,
2413 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
2414 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
2415 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
2416 applicable.
2417 (movcc): Change first xfer to multi.
2418 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
2419 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
2420 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
2421 config/mips/generic.md: Change reservations using "xfer" to use
2422 "mfc,mtc".
2423 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
2424 using match_operand.
2425 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
2426 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
2427 examining mode.
2428 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
2429
2ed941ec
RH
24302007-03-22 Richard Henderson <rth@redhat.com>
2431
2432 * config/i386/i386.c: Remove unnecessary function declarations.
2433 Move targetm definition, and all related macros, to the end of
2434 the file. Resort some functions to put definitions before uses.
2435 (ix86_attribute_table): Make static. Move to end of file.
2436 (ix86_gimplify_va_arg): Make static.
2437
ee2f65b4
RH
24382007-03-22 Richard Henderson <rth@redhat.com>
2439
2440 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
2441 don't increase local_regparm with force_align_arg_pointer check.
2442 (ix86_function_sseregparm): Assert 32-bit.
2443 (type_has_variadic_args_p): New.
2444 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
2445 type_has_variadic_args_p.
2446 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
2447 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
2448 use memset instead. Do maybe_vaarg check first; skip attribute
2449 tests if true; skip attribute tests for 64-bit.
2450 (construct_container): Remove TARGET_DEBUG_ARG.
2451 (function_arg_advance_32, function_arg_advance_64): Split out ...
2452 (function_arg_advance): ... from here.
2453 (function_arg_32, function_arg_64): Split out ...
2454 (function_arg): ... from here.
2455 (ix86_pass_by_reference): Tidy.
2456 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
2457 (function_value_32): New, from parts of ix86_function_value
2458 and ix86_value_regno.
2459 (function_value_64): New, from parts of ix86_function_value
2460 and ix86_libcall_value.
2461 (ix86_function_value_1): New.
2462 (ix86_function_value, ix86_libcall_value): Use it.
2463 (return_in_memory_32, return_in_memory_64): Split out ...
2464 (ix86_return_in_memory): ... from here.
2465 (ix86_struct_value_rtx): Skip for 64-bit.
2466 (ix86_libcall_value, ix86_value_regno): Remove.
2467 (setup_incoming_varargs_64): Split out ...
2468 (ix86_setup_incoming_varargs): ... from here.
2469 (ix86_va_start): Remove TARGET_DEBUG_ARG.
2470 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
2471 * config/i386/i386-protos.h (ix86_function_value): Remove.
2472 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
2473
92ef5cf9
MLI
24742007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2475
2476 PR other/23572
2477 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
2478 infinities not supported, otherwise emit warning if -Woverflow. On
2479 underflow, emit warning if -Woverflow.
2480 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
2481 and 0 otherwise.
2482 * real.h (real_from_string): Update declaration
cff4720f 2483
ac294f0b
KT
24842007-03-22 Kai Tietz <kai.tietz@onevision.com>
2485 Richard Henderson <rth@redhat.com>
2486
2487 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
2488 * calls.c (compute_argument_block_size, expand_call,
2489 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
2490 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2491 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
2492 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
2493 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
2494 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
2495 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
2496 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
2497 Set to 1.
2498
9a200623
JM
24992007-03-22 Joseph Myers <joseph@codesourcery.com>
2500
2501 * c-incpath.c (add_sysroot_to_chain): New.
2502 (merge_include_chains): Add sysroot argument. Call
2503 add_sysroot_to_chain if sysrooted.
2504 (register_include_chains): Update call to merge_include_chains.
2505 * doc/cppopts.texi: Document use of '=' in include directory
2506 arguments.
2507
8766652c
UB
25082007-03-22 Uros Bizjak <ubizjak@gmail.com>
2509
2510 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
2511 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
2512 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
2513 insn pattern using X87MODEF12 mode macro.
cff4720f 2514
1e4c6dc5
SP
25152007-03-21 Seongbae Park <seongbae.park@gmail.com>
2516
2517 * regmove.c (regmove_optimize): Use reg_mentioned_p
2518 instead of reg_overlap_mentioned_p for DST.
2519
2cbac420
MS
25202007-03-21 Mike Stump <mrs@apple.com>
2521
2522 * c.opt: Fixup for Objective-C/C++.
2523
8766652c 25242007-03-21 Steve Ellcey <sje@cup.hp.com>
17939c98
SE
2525
2526 * explow.c (convert_memory_address): Fold memory reference when
2527 POINTERS_EXTEND_UNSIGNED < 0
2528
b5cf27d7
RH
25292007-03-21 Richard Henderson <rth@redhat.com>
2530
2531 PR target/31245
2532 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
2533 * config/i386/mmintrin.h (__m64): Likewise.
2534 * config/i386/xmmintrin.h (__m128): Likewise.
2535
cb717c40
RS
25362007-03-21 Richard Sandiford <richard@codesourcery.com>
2537
2538 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
2539 (VXWORKS_OS_CPP_BUILTINS): Define.
2540 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
2541 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
2542
2a450639
RS
25432007-03-21 Richard Sandiford <richard@codesourcery.com>
2544
2545 * rtl.h (constant_pool_reference_p): Delete.
2546 (find_constant_src): Declare.
2547 * rtlanal.c (find_constant_src): New function.
2548 * simplify-rtx.c (constant_pool_reference_p): Delete.
2549 * config/i386/i386.md: Use find_constant_src instead of
2550 constant_pool_reference_p/avoid_constant_pool_reference pairs.
2551
7c0ffd09
RS
25522007-03-21 Richard Sandiford <richard@codesourcery.com>
2553
2554 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
2555 * c-cppbuiltin.c (c_cpp_builtins): Define them.
2556
9f296620
MM
25572007-03-20 Mark Mitchell <mark@codesourcery.com>
2558
2559 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
2560 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
2561 (arm_elf_asm_constructor): Use it.
2562 (arm_elf_asm_destructor): New function.
2563
5dab4eb7
BS
25642007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
2565
2566 * jump.c (mark_jump_label): Treat SEQUENCE specially.
2567
caaf5345
NS
25682007-03-20 Nathan Sidwell <nathan@codesourcery.com>
2569
2570 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2571
2b312005
AH
25722007-03-19 Andrew Haley <aph@redhat.com>
2573
2574 PR tree-optimization/31264
2575 * tree-vrp.c (register_edge_assert_for_1): Don't look though
2576 VIEW_CONVERT_EXPRs.
2577
fb406162
PB
25782007-03-19 Paolo Bonzini <bonzini@gnu.org>
2579
2580 PR rtl-optimization/30907
2581 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
2582 (fwprop_init): Always call loop_optimizer_initialize.
2583 (fwprop_done): Always call loop_optimizer_finalize.
2584 (fwprop): We always have loop info now.
2585 (gate_fwprop_addr): Remove.
2586 (pass_fwprop_addr): Use gate_fwprop as gate.
2587
2588 PR rtl-optimization/30841
2589 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
2590 df_chain_alloc): Call df_reorganize_refs unconditionally.
2591 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
2592 refs_organized to refs_organized_size.
2593 (df_ref_create_structure): Use refs_organized_size instead of
2594 bitmap_size if refs had been organized, and keep refs_organized_size
2595 up-to-date.
2596 * df.h (struct df_ref_info): Change refs_organized to
2597 refs_organized_size.
2598 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
2599 bitmap_size.
2600
0a85ec2e
MM
26012007-03-19 Mark Mitchell <mark@codesourcery.com>
2602
2603 * except.c (output_function_exception_table): Do not reference the
2604 EH personality routine for functions that do not require an
2605 exception table.
2606
5d8a5434
JJ
26072007-03-20 Jakub Jelinek <jakub@redhat.com>
2608
79077aea
JJ
2609 PR c/30762
2610 * c-typeck.c (convert_for_assignment): Call comptypes for
2611 RECORD_TYPE or UNION_TYPE.
2612
5d8a5434
JJ
2613 PR inline-asm/30505
2614 * reload1.c (reload): Do invalid ASM checking after
2615 cleanup_subreg_operands.
2616
1799efef
JL
26172007-03-19 Jeff Law <law@redhat.com>
2618
2619 * tree-cfg.c (find_taken_edge): Tighten conditions for
2620 optimizing computed gotos.
2621
1e395249
MM
26222007-03-19 Michael Matz <matz@suse.de>
2623
2624 * builtins.c (expand_builtin_sync_operation,
2625 expand_builtin_compare_and_swap,
2626 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
2627 correctly.
2628
2629 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
2630 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
2631 for operand 3.
2632
17f6dbbf
AK
26332007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2634
2635 * doc/tm.texi: Add brackets around the return type of
2636 TARGET_SECONDARY_RELOAD.
2637
60e0af94
AP
26382007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2639 Richard Guenther <rguenther@suse.de>
2640
2641 PR tree-optimization/31254
2642 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
2643 Use handled_component_p () where appropriate. Continue
2644 propagating into the rhs if we propagated into an INDIRECT_REF
2645 on the lhs.
2646
609e7e80
AK
26472007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2648
2649 * config/s390/s390.md (op_type attribute): RRR instruction type added.
2650 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
2651 (xde, xdee): Mode attributes adjusted to support DFP modes.
2652 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
2653 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
cff4720f 2654 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
609e7e80
AK
2655 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
2656 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
2657 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
cff4720f 2658 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
609e7e80
AK
2659 numbers.
2660 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
2661 "movsf"): Insn definitions removed.
2662 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
2663 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
2664 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
2665 definitions added.
2666 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
2667 "reload_in<mode>", "reload_out<mode>"): Expander added.
2668 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
2669 Expander removed.
2670
7b6baae1
AK
26712007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2672
2673 * config/s390/s390.md: Only non-functional changes. Renamed
2674 FPR mode macro to BFP all over the file.
2675
85dae55a
AK
26762007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2677
2678 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
2679 (op_type attribute): RRF instruction type added.
2680 (fT0): New mode attribute.
2681 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
2682 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
2683 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
2684 no secondary memory is needed when moving DFmode values between GPRs
2685 and FPRs.
2686
3443392a
AK
26872007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2688
2689 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
2690 inverted and documentation adjusted.
2691 ("mhard-dfp", "msoft-dfp"): New options.
2692 * config/s390/s390.c (s390_handle_arch_option): New architecture
2693 switch: z9-ec.
2694 (override_options): Sanity checks for the new options added.
2695 * config.gcc: New architecture switch: z9-ec.
2696 * config/s390/s390.h (processor_flags): PF_DFP added.
2697 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
2698 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
2699 when the bit is NOT set so remove it from the defaults.
2700
c413e1b5
AK
27012007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2702
2703 * genemit.c (main): Print include statement for dfp.h.
2704 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
2705 is not available.
2706
1375006a
HPN
27072007-03-19 Hans-Peter Nilsson <hp@axis.com>
2708
2709 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
2710
c6ac6e82
KK
27112007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
2712
2713 PR target/31022
2714 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
2715 instead of PATTERN.
2716
ecc418c4
JDA
27172007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2718
2719 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
2720 attr_length_call, output_call, output_indirect_call): Cleanup
2721 formatting of targetm calls.
2722
c3271cd2
HPN
27232007-03-19 Hans-Peter Nilsson <hp@axis.com>
2724
2725 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
2726
d4f2728a
JDA
27272007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2728
2729 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
2730 reservation, bypass and anti-bypass descriptions for these instructions.
2731 Update move patterns.
2732 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
2733 TYPE_FPSTORE.
cff4720f 2734
f58e9734
DN
27352007-03-18 Dorit Nuzman <dorit@il.ibm.com>
2736
2737 * tree-vect-transform.c (get_initial_def_for_induction): Replace
2738 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
2739 (get_initial_def_for_reduction): Likewise.
2740
1e4816bc
DB
27412007-03-16 Daniel Berlin <dberlin@dberlin.org>
2742
2743 Fix PR tree-optimization/29922
2744 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
2745 (get_representative): Removed.
2746 (value_dies_in_block_x): Update for rvuse removal.
2747 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
2748 (compute_antic_aux): Handle when PHI nodes appear in
cff4720f 2749 non-single-successors.
1e4816bc
DB
2750 (dump_bitmap_of_names): Removed.
2751 (compute_antic_safe): Renamed and removed rvuse calculation.
2752 Calculate only antic safe.
2753 (insert_into_preds_of_block): Remove assert.
2754 (execute_pre): Update for renamed functions.
2755 (defer_or_phi_translate_block): New function.
cff4720f 2756
44c7bd63
KH
27572007-03-17 Kazu Hirata <kazu@codesourcery.com>
2758
2759 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
2760 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
2761 typos.
2762 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
2763 Follow spelling conventions.
2764
79b8aae8
KH
2765 * tree-data-ref.h: Remove the prototype for analyze_array.
2766
c492dc9a
DN
27672007-03-17 Dorit Nuzman <dorit@il.ibm.com>
2768
2769 PR tree-optimization/31041
2770 * tree-vect-transform.c (get_initial_def_for_induction): Call
2771 force_gimple_operand.
cff4720f 2772
44d974b5 27732007-03-17 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 2774
44d974b5
OG
2775 * ipa-type-escape.c (look_for_casts) : Revert code to use
2776 handled_component_p due to ada test a-numaux.adb.
2777
604e4ce3
KH
27782007-03-17 Kazu Hirata <kazu@codesourcery.com>
2779
2780 * final.c (final_scan_insn): Alter the condition of a
2781 conditional trap if we have nonstandard CC.
2782
cf0eb7a1
AO
27832007-03-16 Alexandre Oliva <aoliva@redhat.com>
2784
2785 * configure.ac: Remove excess quoting from asm line 0 test.
2786 * configure: Rebuilt.
2787
07231d4f
MLI
27882007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2789
2790 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
2791 * c-common.c (convert_and_check): Move warning logic to...
2792 (warnings_for_convert_and_check): ...here. Define.
2793 * c-common.h (warnings_for_convert_and_check): Declare.
cff4720f 2794
aefd2606
JDA
27952007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2796
2797 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
2798 (output_call): Likewise.
2799
ad8577fd
RS
28002007-03-16 Richard Sandiford <richard@codesourcery.com>
2801
2802 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
2803
d95d45fd
RS
28042007-03-16 Richard Sandiford <richard@codesourcery.com>
2805
2806 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
2807
0935e091
UB
28082007-03-16 Uros Bizjak <ubizjak@gmail.com>
2809
2810 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
2811 opteron, athlon-64 and athlon-fx processor_alias_table entries.
2812
a9549792
SP
28132007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
2814
2815 PR tree-optimization/31183
cff4720f 2816 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
a9549792
SP
2817 Use double_int instead of unsigned int for representing access_strides.
2818 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
2819
7b1737d0
RG
28202007-03-16 Richard Guenther <rguenther@suse.de>
2821
2822 PR tree-optimization/31146
2823 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
2824 to allow recursion of forward_propagate_addr_expr.
2825 (forward_propagate_addr_into_variable_array_index): Likewise.
2826 (forward_propagate_addr_expr): Likewise.
2827 (tree_ssa_forward_propagate_single_use_vars): Likewise.
2828 (forward_propagate_addr_expr_1): Recurse on simple copies
2829 instead of propagating into them. Do so for useless conversions
2830 as well.
2831 (forward_propagate_addr_expr): Clean up unused statements after
2832 recursion.
2833
4c8a652e
RG
28342007-03-16 Richard Guenther <rguenther@suse.de>
2835
2836 * builtins.c (expand_builtin_cexpi): Use the right argument
2837 for the expansion via cexp.
2838
43bc306a
AO
28392007-03-16 Alexandre Oliva <aoliva@redhat.com>
2840
2841 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
2842 * configure: Rebuilt.
2843
8857ae1c
AO
28442007-03-16 Alexandre Oliva <aoliva@redhat.com>
2845
2846 PR debug/29906
2847 * dwarf2out.c (force_type_die): Adjust comment.
2848 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
2849
ba502ad6
DD
28502007-03-15 DJ Delorie <dj@redhat.com>
2851
2852 * config/frv/predicates.md (minmax_operator): Don't check operands
2853 here.
2854
9bdb685e
ZD
28552007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2856
2857 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
2858 Update constant estimates of number of iterations.
2859 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
2860 argument renamed to "realistic".
2861 (compute_estimated_nb_iterations): Removed.
2862 (record_niter_bound): New function.
2863 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
2864 call record_nonwrapping_iv with upper = false.
2865 (infer_loop_bounds_from_signedness): Pass upper argument to
2866 record_nonwrapping_iv.
2867 (estimate_numbers_of_iterations_loop): Do not call
2868 compute_estimated_nb_iterations. Record estimate based on profile
2869 information. Initialize the constant estimates of number of
2870 iterations.
2871 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
2872 estimates.
2873 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
2874 number of iterations is too small.
2875 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
2876 (EST_NOT_AVAILABLE): Removed.
2877 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
2878 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
2879 fields.
2880
17b236ed
ZD
28812007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2882
2883 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
2884 Handle NE_EXPR guards.
2885
9b439fe1
MLI
28862007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2887
2888 PR c++/24924
2889 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
2890 Set also -pedantic-errors by default for the preprocessor unless
2891 -fpermissive is given.
cff4720f 2892
34a24c11
RG
28932007-03-15 Richard Guenther <rguenther@suse.de>
2894
2895 PR middle-end/29719
2896 PR middle-end/31161
2897 * builtins.c (expand_builtin_cexpi): As a fallback if we
2898 don't have builtins for sincos or cexp create a function
2899 declaration for cexp and expand to a call to that.
2900 (expand_builtin_int_roundingfn): Always fall
2901 back to floor/ceil and its variants even if they may be
2902 not available.
2903
49ea3702
SB
29042007-03-15 Steven Bosscher <steven@gcc.gnu.org>
2905
2906 PR middle-end/31159
2907 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
2908 jump tables, move the call to delete_dead_jumptables from here...
2909 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
2910 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
2911 don't allow merging of blocks that try_redirect_by_replacing_jump
2912 also does not handle when not optimizing.
2913
419452fe
UB
29142007-03-15 Uros Bizjak <ubizjak@gmail.com>
2915 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2916
2917 * config/i386/i386.md (x86_sahf_1): Correctly handle
2918 HAVE_AS_IX86_SAHF.
2919
68b8830a
UB
29202007-03-15 Uros Bizjak <ubizjak@gmail.com>
2921
2922 PR target/31167
2923 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
2924 x86_64_general_operand as operand[2] predicate. Remove "iF"
2925 from operand constraints and use "e" constraint instead.
2926 (*subti3_1, *subti3_1 splitter): Ditto.
2927 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
2928 operand[1] predicate.
2929
c4d8f83b
SP
29302007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
2931
2932 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
2933 arrays, multiply the access strides by the size of the sub-array.
2934 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
2935
38ca3765
UB
29362007-03-14 Uros Bizjak <ubizjak@gmail.com>
2937
2938 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
2939 the configured assembler supports the sahf mnemonic.
2940 * configure: Regenerate.
2941 * config.in: Regenerate.
2942
2943 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
2944 emit "sahf" or ".byte\t0x9e" as asm template.
2945
e9f64629
MM
29462007-03-14 Michael Meissner <michael.meissner@amd.com>
2947
2948 PR 31018
2949 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
2950 option to replace hard coded TARGET_xxx in md file.
2951 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
2952 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2953 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
2954 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
2955 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
2956 (X86_TUNE_NOT_VECTORMODE): Ditto.
2957 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
2958 (TUNE_AVOID_VECTOR_DECODE): Ditto.
2959 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2960 (TUNE_SLOW_IMUL_IMM8): Ditto.
2961 (TUNE_MOVE_M1_VIA_OR): Ditto.
2962 (TUNE_NOT_UNPAIRABLE): Ditto.
2963 (TUNE_NOT_VECTORMODE): Ditto.
cff4720f 2964
e9f64629
MM
2965 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
2966 options.
2967
2968 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
2969 tuning options instead of hard coded TARGET_xxx.
2970 (fix ssemode peephole2's): Ditto.
2971 (imul peephole2's): Ditto.
2972 (movsi_or): Ditto.
2973 (movdi_or_rex64): Ditto.
2974 (move peephole2): Ditto.
2975 (not peephole2's): Ditto.
2976
62e00e94
DM
29772007-03-14 Dirk Mueller <dmueller@suse.de>
2978
2979 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2980 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
2981 * c-parser.c (c_parser_if_body): Always add an empty statement in case
2982 of empty body.
2983 * c-parser.c (c_parser_do_statement): Warn about empty body in
2984 do/while statement.
2985 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
2986 * doc/invoke.texi (-Wempty-body): Update documentation.
2987
2e9cb75e
MLI
29882007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2989
2990 PR c/21438
2991 * c-common.h (warn_for_div_by_zero): Declare.
2992 * c-common.c (warn_for_div_by_zero): Define.
2993 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
2994 warning.
2995
925af765
RS
29962007-03-14 Richard Sandiford <richard@codesourcery.com>
2997
2998 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
2999 to PREFIX and STANDARD_PREFIX.
3000
ac0d72f6
RS
30012007-03-14 Richard Sandiford <richard@codesourcery.com>
3002 Phil Edwards <phil@codesourcery.com>
3003
3004 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
3005 (__gthread_once_t): Remove busy field for RTPs.
3006 (__GTHREAD_ONCE_INIT): Update accordingly.
3007
cd773ac4
RS
30082007-03-14 Richard Sandiford <richard@codesourcery.com>
3009
3010 * doc/invoke.texi: Document VxWorks options.
3011
8c5fd59f
UB
30122007-03-14 Uros Bizjak <ubizjak@gmail.com>
3013
3014 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
3015
e31657e8
SP
30162007-03-13 Seongbae Park <seongbae.park@gmail.com>
3017
3018 PR tree-optimization/30590
3019 * tree-nrv.c (tree_nrv): Check for the partial update of the
3020 return value.
3021
403d4851
AO
30222007-03-13 Alexandre Oliva <aoliva@redhat.com>
3023
3024 * flags.h (flag_random_seed): Remove declaration, in favor of...
3025 * toplev.h (get_random_seed, set_random_seed): ... these.
3026 * tree.c (get_file_function_name): Use the former.
3027 * opts.c (common_handle_option): Use the latter.
3028 * toplev.c
3029
481e0a49
AO
30302007-03-13 Steven Bosscher <steven@gcc.gnu.org>
3031
3032 PR middle-end/31127
3033 * cse.c (cse_find_path): Do not bail out if a basic block that
3034 we already visited now becomes part of a path that starts at a
3035 different basic block. Just disallow this, to make sure we
3036 visit each basic block at most once.
3037
4cdb798f
JH
30382007-03-13 Jan Hubicka <jh@suse.cz>
3039
3040 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
3041 when profile esitmate is present, calls with very low frequency are
3042 cold.
3043
b3ce5b6e
ZD
30442007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3045
3046 PR tree-optimization/30730
3047 PR tree-optimization/26900
3048 * tree-ssa-loop-niter.c: Include gmp.h.
3049 (bounds): New type.
3050 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
3051 split_to_var_and_offset, determine_value_range,
3052 bound_difference_of_offsetted_base, refine_bounds_using_guard,
3053 bound_difference, bounds_add, bounds_negate,
3054 number_of_iterations_ne_max, dump_affine_iv): New functions.
3055 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
3056 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
3057 difference of initial and final value of control iv to validate
3058 results.
3059 (number_of_iterations_cond): Add loop parameter. Determine bounds
3060 on the difference of the extremes of the control iv. Add dumps.
3061 (expand_simple_operations): Handle phi nodes.
3062 (simplify_using_initial_conditions): Do not record used conditions.
3063 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
3064 Do not set additional_info.
3065 (implies_nonnegative_p, implies_ge_p): Removed.
3066 (derive_constant_upper_bound): Do not use parameter `additional'.
3067 (record_estimate): Parameter `additional' removed. Parameter
3068 `i_bound' added. Do not call derive_constant_upper_bound.
3069 (record_nonwrapping_iv): Use derive_constant_upper_bound to
3070 bound the number of iterations estimate.
3071 (estimate_numbers_of_iterations_loop): Pass the estimate from
3072 the number of iterations analysis to record_estimate.
3073 * tree.h (multiple_of_p): Declare.
3074 * tree-scalar-evolution.c (expression_expensive_p): Removed.
3075 (scev_const_prop): Do not check expression_expensive_p.
3076 * fold-const.c (multiple_of_p): Exported.
3077 * double-int.c (double_int_mask): Exported.
3078 * double-int.h (double_int_mask): Declare.
3079 * tree-flow.h (struct tree_niter_desc): Removed additional_info
3080 field. Added max field.
3081
3dfe046f
DT
30822007-03-13 David Taylor <taylor@candd.org>
3083
3084 PR driver/12448:
3085 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
3086 default -MQ.
3087
de94a581
JDA
30882007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3089
dc92acbc 3090 PR target/31123
de94a581
JDA
3091 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
3092 two unamed patterns.
cff4720f 3093
5be6cb59
UB
30942007-03-13 Uros Bizjak <ubizjak@gmail.com>
3095
3096 * config/i386/i386.opt (mcx16, msahf): New options.
3097 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
3098 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
3099
3100 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
3101 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
3102 Output -mcx16 and -msahf options when corresponding bit is set.
3103
3104 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
3105 and -msahf options.
3106
03943c05
AO
31072007-03-13 Alexandre Oliva <aoliva@redhat.com>
3108
3109 * configure.ac: Test for assembler tolerance to # 0 "".
3110 * configure, config.in: Rebuilt.
3111 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
3112
98312a9b
GK
31132007-03-13 Geoffrey Keating <geoffk@apple.com>
3114
3115 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
49522de2
GK
3116
3117 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
3118 (handle_syscall): Handle direct system calls.
3119 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
3120
7d07e4ea
BM
31212007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
3122
3123 * doc/invoke.texi: Fix cpp.info cross-reference.
3124 * doc/passes.texi: Fix gcc.info cross-reference.
3125
fbb0d4f8
ZD
31262007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
3127
3128 PR tree-optimization/30835
3129 * lambda-code.c (can_convert_to_perfect_nest): Check whether
3130 bb_for_stmt is not NULL before accessing it.
3131
dc5bbad3
JM
31322007-03-12 Joseph Myers <joseph@codesourcery.com>
3133
3134 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
3135 some multilibs.
3136
80ca80e9
BM
31372007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
3138
3139 PR 30635
3140 * doc/install.texi: Document --enable-stage1-languages
3141
dacb3cda
SB
31422007-03-12 Steven Bosscher <steven@gcc.gnu.org>
3143
3144 * tree-pass.h (pass_into_cfg_layout_mode,
3145 pass_outof_cfg_layout_mode): Declare.
3146 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
3147 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
3148 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
3149 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
3150
50d50fc7
SP
31512007-03-12 Seongbae Park <seongbae.park@gmail.com>
3152
3153 * c-decl.c (warn_variable_length_array): New function.
3154 Refactored from grokdeclarator to handle warn_vla
3155 and handle unnamed array case.
3156 (grokdeclarator): Refactored VLA warning case.
3157 * c.opt (Wvla): New flag.
6da4bc4e 3158 * doc/invoke.texi (Wvla): New warning.
50d50fc7 3159
ae069803
RH
31602007-03-12 Richard Henderson <rth@redhat.com>
3161
3162 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
3163 (TARGET_SECTION_TYPE_FLAGS): New.
3164
24c78b3a
RH
31652007-03-12 Richard Henderson <rth@redhat.com>
3166
fbb0d4f8
ZD
3167 * config/darwin.c (machopic_reloc_rw_mask): New.
3168 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
3169 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
24c78b3a 3170
6d4817e3
MM
31712007-03-12 Mark Mitchell <mark@codesourcery.com>
3172
3173 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
3174 * cppdefault.h (cpp_PREFIX): Document.
3175 (cpp_PREFIX_len): Likewise.
3176 (cpp_EXEC_PREFIX): New variable.
3177 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
3178 * c-incpath.c (add_standard_paths): Correct logic for relocating
3179 paths within prefix.
3180
d8e3118a
UB
31812007-03-12 Uros Bizjak <ubizjak@gmail.com>
3182
3183 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
3184 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
3185 mode macro.
3186 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
3187 fix_truncdfdi_sse using SSEMODEF mode macro.
3188 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
3189 fix_truncdfsi_sse using SSEMODEF mode macro.
3190 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
3191 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
3192
8906bbc0
RS
31932007-03-12 Richard Sandiford <richard@codesourcery.com>
3194
3195 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
3196 elfos.h to tm_file.
3197
d4e70294 31982007-03-12 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 3199
d4e70294 3200 * tree.h : Add multiple_of_p declaration.
cff4720f 3201 * fold-const.c (multiple_of_p): Make multiple_of_p public.
d4e70294
OG
3202 * ipa-type-escape.c (results_of_malloc): Redundant.
3203 (visited_stmts): New. Visited stmt for walk_use_def_chains.
3204 (cast_type): Extended with new members.
3205 (check_cast): Returns cast_type.
3206 (cast): New structure for data of walk_use_def_chains.
3207 (is_malloc_result, is_cast_from_non_pointer_1,
cff4720f 3208 is_cast_from_non_pointer,
d4e70294
OG
3209 is_array_access_through_pointer_and_index): New functions.
3210 (look_for_casts): Returns cast types.
3211 (check_call): Returns void.
3212 (okay_pointer_operation): Use support of pointer plus index,
3213 pointer plus constant and allow all multiplications.
cff4720f 3214
13338552
RG
32152007-03-11 Richard Guenther <rguenther@suse.de>
3216
3217 PR tree-optimization/31115
3218 * tree-vrp.c (extract_range_from_binary_expr): Make sure
3219 the shift count is positive and non-anti-range for RSHIFT_EXPR.
3220 A shift count of zero is not special as with *_DIV_EXPR.
3221 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
3222 direction.
3223
d7419dec
ILT
32242007-03-11 Ian Lance Taylor <iant@google.com>
3225
3226 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
3227 the *_DIV_EXPR codes correctly with overflow infinities.
3228
e838422b
IR
32292007-03-11 Ira Rosen <irar@il.ibm.com>
3230
cff4720f 3231 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
e838422b
IR
3232 indicate success/failure of the analysis. Add negation to subtrahend
3233 in case of subtraction. Fail if both operands contain constants.
3234 (create_data_ref): Fail if analyze_offset fails.
3235
acaaf0c6
UB
32362007-03-11 Uros Bizjak <ubizjak@gmail.com>
3237
3238 * config/i386/i386.md (frndintxf2): Rename to ...
3239 (rintxf2): ... this. Remove expander having same name.
3240 (rintsf2, rintdf2): Implement using SSEMODEF macro.
3241 (roundsf2, rounddf2): Ditto.
3242 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
3243 (lround<mode>di2, lround<mode>si2): Ditto.
3244
7984c787
SB
32452007-03-11 Steven Bosscher <steven@gcc.gnu.org>
3246
3247 * lower-subreg.c: Include except.h.
3248 (decompose_multiword_subregs): Verify that the only control flow
3249 insns we can split are loads to multi-words pseudos.
3250 Handle breaking such blocks after splitting, instead of calling
3251 find_many_sub_basic_blocks.
3252
3253 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
3254 on the new basic block. Add a lengthy comment explaining why we
3255 thought this was necessary.
3256 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
3257
222725d0
MM
32582007-03-10 Mark Mitchell <mark@codesourcery.com>
3259
ed574fe9 3260 PR c++/30924
222725d0
MM
3261 * tree.c (walk_type_fields): Recurse into the element type of
3262 ARRAY_TYPEs if there is a pointer set.
3263
89132ebc
DM
32642007-03-10 Dirk Mueller <dmueller@suse.de>
3265
3266 * c-common.c (warn_logical_operator): Fix condition.
3267
4f648002
TS
3268