]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
Index: gcc/ChangeLog
[gcc.git] / gcc / ChangeLog
CommitLineData
1617e5ee
GK
12007-07-12 Geoffrey Keating <geoffk@apple.com>
2
3 * ginclude/tgmath.h: New.
4 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
5 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
6 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
7 * configure: Regenerate.
8
192c543c
KK
92007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
10
11 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
12 correct index when setting register save state for xd
13 registers.
14
e27a1019
KK
152007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
16
17 * config/sh/sh.c (mark_use): Remove.
18
19e723f4
PB
192007-07-12 Paul Brook <paul@codesourcery.com>
20
21 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
22 reg does not overlap return value.
23
c83c4879
DB
242007-07-12 Daniel Berlin <dberlin@dberlin.org>
25
26 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
27 (set_expression_vuses): Ditto.
28 (init_pre): Initialize expression_vuses.
29
019b9fdb
ZD
302007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
31
32 * config/i386/sse.md (storentdf, storentsf): New.
33
d872ada0
GK
342007-07-12 Geoffrey Keating <geoffk@apple.com>
35
36 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
37 FUNCTION_DECL.
38 * tree.c (build_decl_stat): Move code from here...
39 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
40 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
41 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
42 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
43 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
44 FUNCTION_BOUNDARY.
45
5b900a4c
DN
462007-07-12 Dorit Nuzman <dorit@il.ibm.com>
47 Devang Patel <dpatel@apple.com>
48
49 PR tree-optimization/25413
50 * targhooks.c (default_builtin_vector_alignment_reachable): New.
51 * targhooks.h (default_builtin_vector_alignment_reachable): New.
52 * tree.h (contains_packed_reference): New.
53 * expr.c (contains_packed_reference): New.
54 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
55 (vect_enhance_data_refs_alignment): Call
56 vector_alignment_reachable_p.
57 * target.h (vector_alignment_reachable): New builtin.
58 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
59 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
60 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
61
e95b59d2
DN
622007-07-12 Dorit Nuzman <dorit@il.ibm.com>
63
64 * target.h (builtin_vectorization_cost): Add new target builtin.
65 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
66 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
67 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
68 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
69 uninitialized variables.
70 * tree-vect-transform.c (cost_for_stmt): New function.
71 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
72 using cost 1 for all scalar stmts. Be less conservative when
73 estimating the number of prologue/epulogue iterations. Call
74 targetm.vectorize.builtin_vectorization_cost. Return
75 min_profitable_iters-1.
76 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
77 initialization cost instead of TARG_VEC_STMT_COST. Use
78 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
79 epilogue code. Fix epilogue cost computation.
80 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
81 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
82 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
83 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
84 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
85 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
86
8f20c485
RG
872007-07-12 Richard Guenther <rguenther@suse.de>
88
89 * gimplify.c (gimplify_conversion): Make sure that the result
90 from maybe_fold_offset_to_reference is trivially convertible
91 to the desired type before doing the simplification.
92 (gimplify_expr): Likewise.
93 * fold-const.c (fold_binary): Use the correct types for
94 building the simplified expression.
95
44f51d59
ZD
962007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
97
98 PR rtl-optimization/32729
99 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
100 that fallthru to exit.
101
45312d9d
KK
1022007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
103
104 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
105 (symDTPOFF2reg): Likewise.
106
c5830edf
DB
1072007-07-11 Daniel Berlin <dberlin@dberlin.org>
108
109 PR tree-optimization/32663
110
111 * tree.h (VALUE_HANDLE_VUSES): Remove.
112 (struct tree_value_handle): Remove vuses.
113
114 * tree-vn.c (create_value_handle_for_expr): Don't set
115 VALUE_HANDLE_VUSES.
116
117 * tree-ssa-pre.c (expression_vuses): New.
118 (alloc_expression_id): Set up expression_vuses.
119 (get_expression_vuses): New.
120 (set_expression_vuses): Ditto.
121 (clear_expression_ids): Modify for expression_vuses.
122 (phi_translate_1): Ditto.
123 (phi_translate_set): Ditto.
124 (value_dies_in_block_x): Ditto
125 (valid_in_sets): Ditto.
126 (add_to_sets): Ditto.
127 (find_existing_value_expr): Ditto.
128 (create_value_handle_for_expr): Ditto.
129 (make_values_for_stmt): Ditto.
130 (vuse_equiv): Remove.
131
66a82a79
AO
1322007-07-11 Alexandre Oliva <aoliva@redhat.com>
133
134 * Makefile.in (mostlyclean): Remove object files.
135
ef4375b2
KZ
1362007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
137
138 * toplev.c (no_new_pseudos): Deleted.
139 * rtl.h (no_new_pseudos): Deleted.
140 * tree-pass.h (pass_no_new_pseudos): Deleted.
141 * passes.c (pass_no_new_pseudos): Deleted.
142 * final.c (rest_of_clean_state): Removed no_new_pseudos.
143 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
144 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
145 reload_completed.
146 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
147 * rtlhooks.c (gen_lowpart_general): Ditto.
148 * optabs.c (prepare_operand): Ditto.
149 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
150 no_new_pseudos.
151 * modulo-sched.c (rest_of_handle_sms): Ditto.
152 * see.c (rest_of_handle_see): Ditto.
153 * ifcvt.c (if_convert): Ditto.
154 (gate_handle_if_after_combine): Replaced no_new_pseudos with
155 reload_completed.
156 * init-regs.c (gate_initialize_regs): Deleted set of
157 no_new_pseudos.
158 * lower-subreg.c (decompose_multiword_subregs): Ditto.
159 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
160 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
161
29d27fb0
UB
1622007-07-11 Uros Bizjak <ubizjak@gmail.com>
163
164 PR target/32661
165 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
166 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
167 (*vec_extractv2di_1_rex64): New insn pattern.
168
aa3e18a0
DD
1692007-07-11 David Daney <ddaney@avtrex.com>
170
171 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
172 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
173 for SIGNAL_UNWIND_RETURN_COLUMN.
174 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
175 (DWARF_FRAME_REGNUM): Rewrite.
176 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
177
9251d664
NC
1782007-07-11 Nick Clifton <nickc@redhat.com>
179
180 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
181 delta and use gen_int_mode in place of GET_INT instead.
182
942ca20a
UB
1832007-07-11 Uros Bizjak <ubizjak@gmail.com>
184
185 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
186 and letter field.
187
7313518b
DG
1882007-07-11 Douglas Gregor <doug.gregor@gmail.com>
189
190 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
191 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
192 types or not.
193 * params.h (VERIFY_CANONICAL_TYPES): Remove.
194 (USE_CANONICAL_TYPES): New.
195 * doc/invoke.texi (verify-canonical-types): Remove.
196 (use-canonical-types): Add.
942ca20a 197
039cb258
UW
1982007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
199
200 * config/spu/spu.c (spu_optimization_options): Remove setting of
201 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
202 (spu_override_options): Move it here.
203
9e32002f
RS
2042007-07-11 Richard Sandiford <richard@codesourcery.com>
205
942ca20a
UB
206 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
207 * config/mips/mips.c (mips_cpu_info_table): Mention
208 MIPS_ISA_LEVEL_SPEC in the comment.
9e32002f 209
26b70b9f
EB
2102007-07-11 Eric Botcazou <ebotcazou@adacore.com>
211
212 PR tree-optimization/32713
213 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
214
4ac1edaf
PC
2152007-07-11 Paolo Carlini <pcarlini@suse.de>
216
217 PR middle-end/30482
218 * c-opts.c (c_common_post_options): Do not change flag_complex_method
219 conditional to flag_isoc99.
220 (c_common_init_options): Do it here, unconditionally.
221
c2979eaf
EB
2222007-07-11 Eric Botcazou <ebotcazou@adacore.com>
223
224 PR tree-optimization/32589
225 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
226 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
227 * tree-ssa-propagate.c (valid_gimple_expression_p): New
228 predicate, extracted from...
229 (set_rhs): ...here. Call it for the expression on entry.
230 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
231 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
232 (simplify_binary_expression): Use valid_gimple_expression_p
233 to validate the simplification.
234 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
235
13c0a630
DS
2362007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
237
238 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
239 DWARF2_DEBUG on 32 bit target too.
240 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
241
0dcd2e78
NC
2422007-07-11 Nick Clifton <nickc@redhat.com>
243
244 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
245 version for 64-bit hosts.
246
df770e04
DD
2472007-07-10 David Daney <ddaney@avtrex.com>
248
249 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
250 predicate.
251 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
252 call.
253 * config/mips/mips.c (mips_expand_synci_loop): New function.
254 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
255 (UNSPEC_RDHWR): Same.
256 (UNSPEC_SYNCI): Same.
257 (UNSPEC_SYNC): Same.
258 (clear_cache): New expand.
259 (sync): New insn.
260 (synci): Same.
261 (rdhwr): Same.
262 (clear_hazard): Same.
263 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
264 function.
265 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
266 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
267
f8335a4f
ILT
2682007-07-10 Ian Lance Taylor <iant@google.com>
269
270 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
271 no_new_pseudos.
272
677feb77
DD
2732007-07-10 David Daney <ddaney@avtrex.com>
274
275 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
276 * builtins.c (expand_builtin___clear_cache): New function.
277 (expand_builtin): Call expand_builtin___clear_cache for
278 BUILT_IN_CLEAR_CACHE case.
279 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
280 * doc/md.texi (clear_cache): Document new instruction pattern.
281 * testsuite/gcc.dg/builtins-64.c: New test.
282
3a0e695a
HPN
2832007-07-11 Hans-Peter Nilsson <hp@axis.com>
284
285 * config/cris/cris.md ("movsi"): Fix typo in last change.
286
837edd5f
GK
2872007-07-09 Geoffrey Keating <geoffk@apple.com>
288
289 PR 32617
290 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
291 FUNCTION_DECLs.
292 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
293 * varasm.c (assemble_start_function): Honor DECL_ALIGN
294 for FUNCTION_DECLs. Don't use align_functions_log if
295 DECL_USER_ALIGN.
296 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
297 even for FUNCTION_DECLs.
298 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
299 FUNCTION_DECLs.
300 * tree.h (DECL_ALIGN): Update for new location of 'align'.
301 (DECL_FUNCTION_CODE): Update for new location and name of
302 'function_code'.
303 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
304 (struct tree_decl_common): Move 'align' and 'off_align' out
305 of union, ensure they're still on a 32-bit boundary. Remove
306 other fields in union 'u1'.
307 (struct tree_function_decl): Add field 'function_code' replacing
308 'u1.f' in tree_decl_common.
309 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
310 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
311 (Variable Attributes): Cross-reference 'aligned' attribute
312 to Function Attributes.
313 * flags.h (force_align_functions_log): Delete.
314 * toplev.c (force_align_functions_log): Delete.
315
558be301
UB
3162007-07-10 Uros Bizjak <ubizjak@gmail.com>
317
318 PR target/32708
319 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
320 (*vec_concatv2di_rex): New insn pattern.
321
333f4a40
RO
3222007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
323
324 PR target/32538
325 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
326
b3a13419
ILT
3272007-07-10 Ian Lance Taylor <iant@google.com>
328
329 Replace no_new_pseudos in backends.
330 * rtl.h (can_create_pseudo_p): Define.
331 * config/darwin.c (machopic_indirect_data_reference): Use
332 can_create_pseudo_p () instead of no_new_pseudos.
333 (machopic_indirect_data_reference): Likewise.
334 (machopic_legitimize_pic_address): Likewise.
335 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
336 (alpha_emit_set_const_1): Likewise.
337 (alpha_emit_set_const): Likewise.
338 (alpha_emit_conditional_move): Likewise.
339 (alpha_split_conditional_move): Likewise.
340 * config/alpha/alpha.md (various splitters): Likewise.
341 (movti): Likewise.
342 * config/arm/arm.c (legitimize_pic_address): Likewise.
343 (arm_load_pic_register): Likewise.
344 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
345 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
346 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
347 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
348 * config/cris/cris.md (movsi): Likewise.
349 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
350 (symGOTOFF2reg_hilo): Likewise.
351 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
352 * config/h8300/h8300.md (insv, extzv): Likewise.
353 * config/i386/i386.c (ix86_expand_move): Likewise.
354 (ix86_expand_vector_move): Likewise.
355 (ix86_prepare_fp_compare_args): Likewise.
356 (ix86_expand_carry_flag_compare): Likewise.
357 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
358 (tls_dynamic_gnu2_combine_32): Likewise.
359 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
360 * config/ia64/ia64.c (ia64_expand_move): Likewise.
361 (ia64_expand_movxf_movrf): Likewise.
362 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
363 (m32c_split_move): Likewise.
364 (m32c_expand_insv): Likewise.
365 * config/m68k/m68k.md (movsi): Likewise.
366 * config/mips/mips.c (mips_force_temporary): Likewise.
367 (mips_split_symbol): Likewise.
368 (mips_move_integer): Likewise.
369 (mips_legitimize_const_move): Likewise.
370 * config/mn10300/mn10300.md (movsi): Likewise.
371 * config/pa/pa.c (emit_move_sequence): Likewise.
372 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
373 (rs6000_got_register): Likewise.
374 (create_TOC_reference): Likewise.
375 (rs6000_machopic_legitimize_pic_address): Likewise.
376 * config/rs6000/rs6000.md (add<mode>3): Likewise.
377 (various splitters): Likewise.
378 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
379 (movsi_got): Likewise.
380 * config/s390/s390.c (emit_symbolic_move): Likewise.
381 * config/s390/s390.md (movhi, movqi): Likewise.
382 (load_multiple, store_multiple): Likewise.
383 * config/score/score.c (score_force_temporary): Likewise.
384 * config/sh/sh.c (prepare_move_operands): Likewise.
385 (prepare_cbranch_operands): Likewise.
386 (emit_fpu_switch): Likewise.
387 (fpscr_set_from_mem): Likewise.
388 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
389 (adddi3, subsi3): Likewise.
390 (various splitters): Likewise.
391 (divsi_inv_fp_combine): Likewise.
392 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
393 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
394 (sne): Likewise.
395 * config/sh/predicates.md (xor_operand): Likewise.
396 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
397 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
398 (movdi_pic_label_ref): Likewise.
399 * config/spu/spu.c (spu_split_immediate): Likewise.
400 * config/alpha/alpha.md (various splitters): Remove test
401 !no_new_pseudos || reload_completed.
402 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
403 no_new_pseudos.
404 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
405 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
406 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
407 * config/score/score.c (th_output_mi_thunk): Likewise.
408 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
409 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
410
89ab4659
KK
4112007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
412
413 PR rtl-optimization/32664
414 * mode-switching.c (create_pre_exit): Skip barrier insns.
415
c6540bde
ZD
4162007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
417
418 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
419 force_gimple_operand_bsi.
420 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
421 rewrite_use_compare): Ditto.
422 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
423 Ditto.
424 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
425 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
426 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
427 * tree-profile.c (prepare_instrumented_value,
428 tree_gen_interval_profiler, tree_gen_pow2_profiler,
429 tree_gen_one_value_profiler, tree_gen_ic_profiler,
430 tree_gen_ic_func_profiler, tree_gen_average_profiler,
431 tree_gen_ior_profiler): Ditto.
432 * tree-ssa-reassoc.c (negate_value): Ditto.
433 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
434 Use force_gimple_operand_bsi.
435 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
436 * tree-if-conv.c (add_to_dst_predicate_list,
437 find_phi_replacement_condition): Ditto.
438 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
439 Call mark_symbols_for_renaming for new statements.
440 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
441
452ba14d
ZD
4422007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
443
444 * cfghooks.c (remove_edge): New function.
445 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
446 loop exit rescans.
447 * cfghooks.h (remove_edge): Declare.
448 * cfg.c (remove_edge): Renamed to remove_edge_raw.
449 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
450
0f67fa83
WG
4512007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
452
453 * optabs.h: Added declaration for signbit_optab.
454 * optabs.c: (init_optabs): Added initialization for signbit_optab.
455 * genoptinit.c (optabs): Added entry for signbit insns.
558be301
UB
456 * builtins.c (expand_builtin_signbit): Added code to use a signbit
457 insn, if available.
0f67fa83
WG
458 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
459 * config/s390/s390.md (signbit<mode>2): New expander.
460
b462d62d
RG
4612007-07-09 Richard Guenther <rguenther@suse.de>
462
463 PR middle-end/32698
464 * fold-const.c (fold_plusminus_mult_expr): Move constant
465 arguments second to allow decomposing.
466
694dd537
AO
4672007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
468
469 Revert:
470 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
471 PR debug/23551
472 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
473 Disregard DECL_FROM_INLINE.
474
13c59415
UB
4752007-07-09 Uros Bizjak <ubizjak@gmail.com>
476
477 PR target/27855
478 * doc/invoke.texi: Add ftree-reassoc flag.
479 * common.opt (ftree-reassoc): New flag.
480 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
481 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
482
8b4c775b
UB
4832007-07-09 Uros Bizjak <ubizjak@gmail.com>
484
485 PR tree-optimization/32681
486 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
487 saved in second_edge->aux when first_bb is a loop header.
488
d241cd48
JH
4892007-07-09 Jan HUbicka <jh@suse.cz>
490
491 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
492
f967586f
RG
4932007-07-09 Richard Guenther <rguenther@suse.de>
494
495 * c-decl.c (start_function): Do not promote return type.
496
534fd534
DF
4972007-07-08 Daniel Franke <franke.daniel@gmail.com>
498
499 * function.c (do_warn_unused_parameter): Do not warn if
500 TREE_NO_WARNING is set.
501
9f06d330
AS
5022007-07-08 Andreas Schwab <schwab@suse.de>
503
504 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
505
170ea7b9
SL
5062007-07-08 Sandra Loosemore <sandra@codesourcery.com>
507
508 Revert this patch:
509 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
510
511 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
512 apply to assembly language, too.
513 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
514
b71b4522
DB
5152007-07-07 Daniel Berlin <dberlin@dberlin.org>
516
517 Revert (note the sccvn portions are *not* reverted)
518 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
519
520 Fix PR tree-optimization/23488
521
522 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
523 handles.
524 * tree-flow-inline.h (get_value_handle): Ditto.
525 * tree-ssa-pre.c (decl_vh_map): New.
526 (decl_node_pool): New.
527 (can_value_number_operation): Support DECL_P.
528 (can_PRE_operation): Ditto.
529 (create_expression_by_pieces): Ditto.
530 (find_existing_value_expr): Modify to differnetiate between
531 addressing and top level.
532 (create_value_handle_for_expr): Handle DECL's.
533 (poolify_tree): Ditto.
534 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
535 (make_values_for_stmt): Handle DECL's properly.
536 (init_pre): Reorg to not init useless things during FRE.
537 (fini_pre): Ditto.
538 * tree-flow.h: Include pointer-set.h.
539 (decl_vh_map): Declare.
540 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
541
0e8eb4d8
EW
5422007-07-07 Eric Weddington <eweddington@cso.atmel.com>
543
544 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
545 the constraint description.
546 * doc/md.texi: Update documentation of AVR constraints.
547
6ed3da00
KH
5482007-07-07 Kazu Hirata <kazu@codesourcery.com>
549
550 * auto-inc-dec.c, config/arm/arm.c,
551 config/m32r/constraints.md, config/mips/mips.md,
552 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
553 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
554 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
555 typos. Follow spelling conventions.
556 * doc/invoke.texi, doc/rtl.texi: Fix typos.
557
0a6b055f
KH
558 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
559 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
560
f576d4f9
KH
561 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
562 realloc_vuse): Remove.
563 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
564 and realloc_vuse.
565
e9bd9cf3
DB
5662007-07-06 Daniel Berlin <dberlin@dberlin.org>
567
568 Fix PR tree-optimization/23488
569
570 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
571 (try_to_simplify): Ditto.
572 (visit_use): Ditto.
573 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
574 handles.
575 * tree-flow-inline.h (get_value_handle): Ditto.
576 * tree-ssa-pre.c (decl_vh_map): New.
577 (decl_node_pool): New.
578 (can_value_number_operation): Support DECL_P.
579 (can_PRE_operation): Ditto.
580 (create_expression_by_pieces): Ditto.
581 (find_existing_value_expr): Modify to differnetiate between
582 addressing and top level.
583 (create_value_handle_for_expr): Handle DECL's.
584 (poolify_tree): Ditto.
585 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
586 (make_values_for_stmt): Handle DECL's properly.
587 (init_pre): Reorg to not init useless things during FRE.
588 (fini_pre): Ditto.
589 * tree-flow.h: Include pointer-set.h.
590 (decl_vh_map): Declare.
591 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
592
48468cd0
SL
5932007-07-06 Sandra Loosemore <sandra@codesourcery.com>
594
595 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
596 apply to assembly language, too.
597 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
598
508dabda
ILT
5992007-07-06 Ian Lance Taylor <iant@google.com>
600 Zack Weinberg <zackw@panix.com>
601
602 PR middle-end/32441
603 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
604
e0ff69ab
RS
6052007-07-06 Richard Sandiford <richard@codesourcery.com>
606
607 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
608 (prefetch): Likewise if "pref" would be used.
609
d6c2c77c
JC
6102007-07-06 Josh Conner <jconner@apple.com>
611
612 PR middle-end/32602
613 PR middle-end/32603
614 * calls.c (store_one_arg): Handle arguments which are partially
615 on the stack when detecting argument overlap.
616
374d961c
BS
6172007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
618
619 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
620 chosen during find_reloads.
621
004e2fa7
RG
6222007-07-06 Richard Guenther <rguenther@suse.de>
623
624 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
625 TYPE_ARG_TYPES for verification of argument types. Use
626 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
627 parameters as variable arguments.
628
c7ff6e7a
AK
6292007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
630
631 * libgcc2.h (word_type): Type definition removed.
632 (cmp_return_type, shift_count_type): Type definitions added.
633 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
634 replaced with shift_count_type.
635 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
636 cmp_return_type.
637 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
638 changed from word_type to Wtype.
639 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
640 replaced with shift_count_type.
641 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
642 cmp_return_type.
8b4c775b
UB
643 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
644 and libgcc_shift_count attribute added.
c7ff6e7a
AK
645 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
646 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
647 (TARGET_INITIALIZER): New target hooks added.
648 * targhooks.c (default_libgcc_cmp_return_mode,
649 default_libgcc_shift_count_mode): Default implementations for the new
650 target hooks added.
651 * targhooks.h (default_libgcc_cmp_return_mode,
652 default_libgcc_shift_count_mode): Function prototypes added.
653 * target.h (struct gcc_target): Fields for the new target hooks added.
654 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
655 as library call.
656 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
657 library call.
658
659 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
660 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
661
662 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
663 s390_libgcc_shift_count_mode): Functions added.
8b4c775b
UB
664 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
665 Target hooks defined.
c7ff6e7a 666
713df810
RS
6672007-07-06 Richard Sandiford <richard@codesourcery.com>
668
669 * config/mips/mips.c (compute_frame_size): Restore the original
670 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
671 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
672 Document why the difference is needed.
673
b5119fa1
RG
6742007-07-06 Richard Guenther <rguenther@suse.de>
675
676 * c-common.c (boolean_increment): Use correctly typed
677 constant.
678
106b3d40
RS
6792007-07-06 Richard Sandiford <richard@codesourcery.com>
680
681 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
682 the topmost argument register is not also included in the save mask.
683 (mips16e_collect_argument_save_p): Take a pointer to the argument
684 register, rather than a pointer to the number of arguments.
685 (mips16e_collect_argument_saves): Only include argument saves
686 that aren't in the register mask.
687
56d17681
UB
6882007-07-06 Uros Bizjak <ubizjak@gmail.com>
689
8b4c775b 690 PR rtl-optimization/32450
56d17681
UB
691 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
692 to ensure that instructions are not moved into the prologue when
693 profiling is on. Remove unused prologue_end variable.
694 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
695 as a scheduling barrier.
696
042f720d
AO
6972007-07-06 Alexandre Oliva <aoliva@redhat.com>
698
699 PR debug/23551
700 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
701 Disregard DECL_FROM_INLINE.
702
22761ec3
AN
7032007-07-05 Adam Nemet <anemet@caviumnetworks.com>
704
705 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
706 IORing with a constant.
707
47220f03
SP
7082007-07-05 Seongbae Park <seongbae.park@gmail.com>
709
710 PR rtl-optimization/32475
711 * df-scan.c (df_def_record_1): Add a use of the stack pointer
712 for every definition of the stack pointer.
713
8e39e9af
RE
7142007-07-05 Richard Earnshaw <rearnsha@arm.com>
715
716 * arm.c (vfp3_const_double_index): Copy signed results of
717 REAL_VALUE_TO_INT into unsigned vars.
718
e11e491d
RG
7192007-07-05 Richard Guenther <rguenther@suse.de>
720
721 PR middle-end/32639
722 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
723 FUNCTION_TYPE.
724 * tree-ssa.c (useless_type_conversion_p): Check canonical
725 types early.
726
2d0c44e6
AS
7272007-07-05 Anatoly Sokolov <aesok@post.ru>
728
729 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
730 zero_extendhisi2): Change to define_insn_and_split.
731 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
732
d8d72314
PB
7332007-07-05 Paolo Bonzini <bonzini@gnu.org>
734
735 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
736 pass_match_asm_constraints): New.
737 * passes.c (init_optimization_passes): Add new pass.
738 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
739 * function.h (struct function): Add has_asm_statement bit.
740 (current_function_has_asm_statement): New.
741 * tree-pass.h (pass_match_asm_constraints): New.
742
629c6957
RS
7432007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
744
745 * config/mips/mips.c (mips_file_start): Avoid declaration
746 after code.
747
9ee34274
SL
7482007-07-05 Sandra Loosemore <sandra@codesourcery.com>
749
750 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
751
28cc8a50
UB
7522007-07-05 Uros Bizjak <ubizjak@gmail.com>
753
754 * rtl.def (NOTE): Change print format string to print
755 operand 5 as a note insn name.
756
52bcd429
SL
7572007-07-05 Sandra Loosemore <sandra@codesourcery.com>
758 David Ung <davidu@mips.com>
759
52bcd429
SL
760 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
761 * doc/invoke.texi: (MIPS Options): Document them.
762
0aa222d1
SL
7632007-07-05 Sandra Loosemore <sandra@codesourcery.com>
764 David Ung <davidu@mips.com>
765
766 Add support for SmartMIPS ASE.
767
768 * optabs.c (expand_binop_directly): New, broken out from...
769 (expand_binop): Here. Make it try rotating in the other
770 direction even when the second operand isn't constant.
771 * config/mips/mips.md (*lwxs): New.
772 * config/mips/mips.opt (msmartmips): New.
773 * config/mips/mips.c (mips_lwxs_address_p): New.
774 (mips_rtx_costs): Make it recognize scaled indexed addressing.
775 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
776 __mips_smartmips when compiling for TARGET_SMARTMIPS.
777 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
778 (ISA_HAS_LWXS): New.
779 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
780 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
781 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
782 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
783 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
784 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
785 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
786
3a70f3ef
DN
7872007-07-05 Dorit Nuzman <dorit@il.ibm.com>
788
789 * tree-vectorizer.c (new_loop_vec_info): Initialize
790 LOOP_VINFO_COST_MODEL_MIN_ITERS.
791 * tree-vectorizer.h (_loop_vec_info): Added new filed
792 min_profitable_iters.
793 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
794 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
795 * tree-vect-analyze.c (vect_analyze_operations): Set
796 LOOP_VINFO_COST_MODEL_MIN_ITERS.
797 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
798 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
799 Fix calculation of peel_iters_prologue. Move consideration of epilogue
800 and prologue cost to after they are computed.
801 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
802 TARG_VEC_STMT_COST.
803 (vect_model_simple_cost): Takes additional argument dt. Consider cost
804 of creating vectors from scalars according to dt.
805 (vect_model_store_cost): Likewise.
806 (vectorizable_call): Use dt array instead of scalar dt. Call
807 vect_model_simple_cost with additional argument dt.
808 (vectorizable_assignment): Likewise.
809 (vectorizable_operation): Likewise.
810 (vectorizable_type_demotion): Likewise.
811 (vectorizable_type_promotion): Likewise.
812 (vectorizable_store): Use dt array instead of scalar dt. Call
813 vect_model_store_cost with additional argument dt.
814 (vect_do_peeling_for_loop_bound): Don't call
815 vect_estimate_min_profitable_iters. Instead, lookup
816 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
28cc8a50 817 "may not be profitable".
3a70f3ef 818
4643b716
DN
8192007-07-05 Dorit Nuzman <dorit@il.ibm.com>
820
821 PR testsuite/32014
822 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
823 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
824 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
825 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
826
b301e9b3
ZD
8272007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
828
829 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
830 addressing modes cheaper.
831
0435c1d5
AO
8322007-07-05 Alexandre Oliva <aoliva@redhat.com>
833
834 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
835 (dw_ranges_struct): Rename block_num to num. Adjust.
836 (dw_ranges_by_label_struct): New.
837 (ranges_by_label, ranges_by_label_allocated,
838 ranges_by_label_in_use): New variables.
839 (add_ranges_num): Factored most of the code out of...
840 (add_ranges): ... this one. Rewrite in terms of the former.
841 (add_ranges_by_labels): New.
842 (output_ranges): Output by-label ranges.
843 (dwarf2out_finish): Output range for multiple-section
844 compile_unit. Output standard DW_AT_low_pc in addition to
845 unexpected DW_AT_entry_pc.
846
c1130b62
DB
8472007-07-04 Daniel Berlin <dberlin@dberlin.org>
848
849 PR tree-optimization/32604
850 PR tree-optimization/32606
28cc8a50 851
c1130b62
DB
852 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
853 (compute_antic_safe): Removed.
854 (ANTIC_SAFE_LOADS): Ditto.
855 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
856 (execute_pre): Don't call compute_antic_safe.
857 (vuse_equiv): New function.
858 (make_values_for_stmt): Use it
859 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
860 not always true.
861
44190aed
AS
8622007-07-04 Anatoly Sokolov <aesok@post.ru>
863
864 PR target/31331
865 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
866 rather than a decl.
867 (avr_attribute_table): Make "naked" attribute apply to function types
868 rather than to decls.
869 (avr_handle_fntype_attribute): New function.
870
121f163f
JM
8712007-07-04 Joseph Myers <joseph@codesourcery.com>
872
873 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
874 after \.
875
b1a14b78
DU
8762007-07-04 David Ung <davidu@mips.com>
877 Joseph Myers <joseph@codesourcery.com>
878
879 * config/mips/mips.md (type): Add logical, signext and move.
880 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
881 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
882 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
883 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
884 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
885 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
886 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
887 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
888 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
889 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
890 movv2sf_hardfloat_64bit): Use the new types.
891 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
892 *movdf_softfloat, *movdf_mips16): Use "multi".
893 (extendqihi2): Replace with a define_expand.
894 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
895 Based on extend<SHORT:mode><GPR:mode>2 patterns.
896 * config/mips/74k.md (r74k_int_logical): New reservation and
897 bypasses.
898 (r74k_int_arith): Remove "slt".
899 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
900 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
901 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
902 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
903 reservations for "arith".
904
4fc66945
RG
9052007-07-04 Richard Guenther <rguenther@suse.de>
906
907 * tree-ssa.c (useless_type_conversion_p): Add handling for
908 scalar float and vector types. Only call the types_compatible_p
909 langhook for aggregate types as last resort. Follow the
910 rules.
911
5cda34b1
RG
9122007-07-04 Richard Guenther <rguenther@suse.de>
913
914 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
915 the same as NOP_EXPR.
916
67e6ba46
NC
9172007-07-04 Nick Clifton <nickc@redhat.com>
918
919 * target.h (struct gcc_target): Add target_help field.
920 * target-def.h (TARGET_HELP): New.
921 (TARGET_INITIALIZER): Use TARGET_HELP.
922 * opts.c (command_handle_option): Invoke target_help function, if
923 defined, when the user has specified --target-help on the command
924 line.
925 * doc/invoke.texi: Mention that --target-help might print
926 additional information.
927 * doc/tm.texi: Document TARGET_HELP hook.
928
929 * arm.c (TARGET_HELP): Override default definition.
930 (arm_target_help): New - display a wrapped list of cores and
931 architectures supported.
932
fda41d93
RIL
9332007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
934
935 * config/gcc/v850/v850.c (expand_prologue): Make sure
936 GEN_INT() argument is sign extended rather than zero extended.
937 (expand_epilogue): Likewise.
938 (output_move_double): Delete.
939 * config/gcc/v850/v850-protos.h (output_move_double): Delete.
940 * config/gcc/v850/v850.md (movdi): Delete.
941 (*movdi_internal): Delete.
942 (movdf): Delete.
943 (*movdf_internal): Delete.
944
f0025c1f
RS
9452007-07-04 Richard Sandiford <richard@codesourcery.com>
946
947 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
948 unless compiling RTP PIC.
949
b0569227
RG
9502007-07-04 Richard Guenther <rguenther@suse.de>
951
952 PR tree-optimization/32482
953 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
954 original ssa name if we didn't find a shift expression.
955 Fix shift constant for bit zero test.
956
a0aeae15
RS
9572007-07-04 Richard Sandiford <richard@codesourcery.com>
958
959 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
960
c447f774
RS
9612007-07-04 Richard Sandiford <richard@codesourcery.com>
962
963 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
964 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
965 * config/arm/vxworks.h (ASM_SPEC): Delete.
966 (SUBTARGET_EXTRA_ASM_SPEC): Define.
967
71d5b5e1
SP
9682007-07-04 Sebastian Pop <sebpop@gmail.com>
969
970 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
971 (DDR_REVERSED_P): New.
972 * tree-data-ref.c (initialize_data_dependence_relation,
973 build_classic_dist_vector): Set DDR_REVERSED_P.
974
fd727b34
SP
9752007-07-04 Sebastian Pop <sebpop@gmail.com>
976
977 PR middle-end/32457
978 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
979 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
980 init_omega_for_ddr_1): Use non conservative number of iterations
981 estimations.
982 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
983 (analyze_siv_subscript): Remove FIXME and reinitialization of
984 last_conflicts to chrec_dont_know.
985 * testsuite/gfortran.dg/vect/pr32457.f90: New.
986
c92b8515
DG
9872007-07-04 Douglas Gregor <doug.gregor@gmail.com>
988
989 * tree.c (maybe_canonicalize_argtypes): Improve description.
990
8de08f4c
DG
9912007-07-04 Douglas Gregor <doug.gregor@gmail.com>
992
993 * tree.c (maybe_canonicalize_argtypes): New.
994 (build_function_type): Set canonical type.
995 (build_method_type_directly): Ditto.
996 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
997 properly.
998
2d1a1007
AP
9992007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1000
1001 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
1002 like PLUS_EXPR.
1003 (rewrite_use_nonlinear_expr): Likewise.
1004
e3ceb300
SP
10052007-07-03 Seongbae Park <seongbae.park@gmail.com>
1006
1007 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
1008
44082375
BE
10092007-07-04 Ben Elliston <bje@au.ibm.com>
1010
f01d40db
BE
1011 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
1012 of this file.
1013
d9ad7862
BE
1014 * c-objc-common.c (c_types_compatible_p): Fix indentation.
1015
44082375
BE
1016 * doc/tm.texi (Run-time Target): Capitalise "CPU".
1017 (Exception Handling): Likewise.
1018
f9faf954
JH
10192007-07-03 Jan Hubicka <jh@suse.cz>
1020
1021 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
1022
717c4e47
EC
10232007-07-03 Eric Christopher <echristo@apple.com>
1024
1025 * doc/cppopts.texi: Add conflicting option note to -dM.
1026 * doc/invoke.texi: Add note about possible conflicts with
1027 -E for -dCHARS and note that -dM will not produce
1028 any results if there is no machine dependent reorg.
1029
e7005ecb
GK
10302007-07-03 Geoffrey Keating <geoffk@apple.com>
1031
1032 * tree.h (DECL_ALIGN): Back out previous change.
1033
a44380d2
JM
10342007-07-03 Joseph Myers <joseph@codesourcery.com>
1035
1036 * configure.ac: Test for .dtprelword support on MIPS.
1037 * configure, config.in: Regenerate.
1038 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
1039 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1040
f1adb0a9
JB
10412007-07-03 Julian Brown <julian@codesourcery.com>
1042
1043 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
1044 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
1045 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
1046 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
1047 capability.
1048 (all_fpus): Add FPUTYPE_VFP3.
1049 (fp_model_for_fpu): Add VFPv3 field.
1050 (arm_rtx_costs_1): Give cost to VFPv3 constants.
1051 (vfp3_const_double_index): New function. Return integer index of
1052 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
1053 isn't suitable.
1054 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
1055 and argument represents a valid RTX for a VFPv3 constant.
1056 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
1057 two instructions.
1058 (vfp_emit_fstmd): Similar, for fstmd.
1059 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
1060 constants, represented as integer indices.
1061 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
1062 VFP_REGNO_OK_FOR_DOUBLE macros.
1063 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
1064 (arm_file_start): Set float-abi attribute for VFPv3, and output
1065 correct ".fpu" assembler directive.
1066 (arm_dbx_register_numbering): Add FIXME.
1067 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
1068 (fputype): Add FPUTYPE_VFP3.
1069 (FIXED_REGISTERS): Add 32 registers for D16-D31.
1070 (CALL_USED_REGISTERS): Likewise.
1071 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
1072 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
1073 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
1074 (D7_VFP_REGNUM): New.
1075 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
1076 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
1077 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
1078 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
1079 (REG_ALLOC_ORDER): Adjust for VFPv3.
1080 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
1081 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
1082 VFP_LO_REGS, VFP_HI_REGS.
1083 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
1084 (IS_VFP_CLASS): Define macro.
1085 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
1086 IS_VFP_CLASS.
1087 (REGISTER_MOVE_COST): Likewise.
1088 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
1089 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
1090 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
1091 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
1092 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
1093 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
1094 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
1095 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
1096 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
1097 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
1098 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
1099 where appropriate for single-word registers.
1100 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
1101 As above. Fix type attributes.
1102 * config/arm/constraints.md (register_contraint "t"): Define.
1103 (register_constraint "w"): Change to D0-D15, or D0-D31 for
1104 VFPv3/NEON.
1105 (register_constraint "x"): Define.
1106 (constraint "Dv"): Define.
1107
f972b2cb
GK
11082007-07-03 Geoffrey Keating <geoffk@apple.com>
1109
1110 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
1111
0bacb8c7
TT
11122007-07-03 Tom Tromey <tromey@redhat.com>
1113
1114 * c-parser.c (objc_pq_context): Removed.
1115 (objc_need_raw_identifier): Likewise.
1116 (c_parser) <objc_pq_context>: New field.
1117 <objc_need_raw_identifier>: Likewise.
1118 (OBJC_NEED_RAW_IDENTIFIER): Removed.
1119 (c_lex_one_token): Update.
1120 (c_parser_objc_protocol_definition): Update.
1121 (c_parser_objc_method_definition): Update.
1122 (c_parser_objc_methodproto): Update.
1123 (c_parser_declspecs): Update.
1124
c849ec73
DU
11252007-07-03 David Ung <davidu@mips.com>
1126
1127 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
1128
74d4d024
DU
11292007-07-03 David Ung <davidu@mips.com>
1130 Richard Sandiford <richard@codesourcery.com>
1131
1132 * doc/invoke.texi: Document -march=74kf3_2.
1133 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
1134 (TUNE_74K): Check for it.
1135 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
1136 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
1137 * config/mips/mips.md (cpu): Add 74kf3_2.
1138 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
1139 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
1140 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
1141 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
1142 74kf3_2 to the CPU list.
1143 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
1144 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
1145 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
1146 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
1147 (r74kf3_2_fxfer_from_c1): New insn reservations.
1148
bdd77024
RS
11492007-07-03 Richard Sandiford <richard@codesourcery.com>
1150 David Ung <davidu@mips.com>
1151
1152 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
1153 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
1154 and 74k[fx]. Document aliases for the new options.
1155 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
1156 (PROCESSOR_24KF2_1): ...this.
1157 (PROCESSOR_24KX): Rename to...
1158 (PROCESSOR_24KF1_1): ...this.
1159 (PROCESSOR_74KF): Rename to...
1160 (PROCESSOR_74KF2_1): ...this.
1161 (PROCESSOR_74KX): Rename to...
1162 (PROCESSOR_74KF1_1): ...this.
1163 (TUNE_74K): Update PROCESSOR_* names.
1164 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
1165 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
1166 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
1167 (mips_rtx_cost_data): Update processor names in comments.
1168 (mips_issue_rate): Update PROCESSOR_* names.
1169 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
1170 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
1171 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
1172 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
1173 Update cpu attribute names.
1174 (r24k_fpu_iss): Rename this reservation to...
1175 (r24kf2_1_fpu_iss): ...this and update all uses.
1176 (r24kx_fpu_iss): Rename this reservation to...
1177 (r24kf1_1_fpu_iss): ...this and update all uses.
1178 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
1179 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
1180 Update cpu attribute names.
1181
fbaeb717
KK
11822007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
1183
1184 * config/m32r/constraints.md: New file.
1185 * config/m32r/m32r.c: Include tm-constrs.h.
1186 (small_data_operand): Use satisfies_constraint_* instead of macro.
1187 (addr24_operand, gen_compare): Likewise.
1188 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
1189 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
1190 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1191 EXTRA_CONSTRAINT): Likewise.
1192 * config/m32r/m32r.md: Include constraints.md.
1193 (*movsi_insn): Use satisfies_constraint_* instead of macro.
1194 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
1195 * config/m32r/predicates.md (conditional_move_operand): Likewise.
1196 (two_insn_const_operand, int8_operand, uint16_operand,
1197 reg_or_int16_operand, reg_or_uint16_operand,
1198 reg_or_cmp_int16_operand, cmp_int16_operand,
1199 seth_add3_operand): Likewise.
1200
66965e90
EC
12012007-07-03 Eric Christopher <echristo@gmail.com>
1202
1203 * libgcc2.h: Conditionally declare __bswapsi2 and
1204 __bswapdi2.
1205
72b31363
L
12062007-07-03 H.J. Lu <hongjiu.lu@intel.com>
1207
1208 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
1209 defined.
1210
b36e79e5
RO
12112007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1212
1213 PR target/28307
1214 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
1215 (__gthrw_pragma): Provide default definition.
1216 (__gthrw2): Use it.
1217 * gthr-posix.c (__gthrw_pragma): Define.
1218
78d3c323
DB
12192007-07-03 Daniel Berlin <dberlin@dberlin.org>
1220
1221 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
1222 before declaring inequality.
1223
b6bcd676
RIL
12242007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
1225
1226 * combine.c (recog_for_combine): Log the success or failure of
1227 matching new insn patterns against the machine description in
1228 detailed dumps.
1229
8cec1624
RE
12302007-07-03 Revital Eres <eres@il.ibm.com>
1231
1232 * ddg.c (print_sccs): New function.
1233 (check_sccs): New function.
1234 (create_ddg_all_sccs): Use it.
1235 * ddg.h (print_sccs): Declare.
1236 * modulo-sched.c (sms_order_nodes): Call print_sccs.
1237
c77cd3d1
UB
12382007-07-03 Uros Bizjak <ubizjak@gmail.com>
1239
1240 * targhooks.h (default_mode_for_suffix): New function declaration.
1241 * targhooks.c (default_mode_for_suffix): New default target hook.
1242 * target.h (struct c): New structure in the targetm struct.
1243 (mode_for_suffix): New target hook as part of struct c.
1244 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
1245 default_mode_for_suffix.
1246 (TARGET_C): New define.
1247 * c-lex.c: Include "target.h".
1248 (interpret_float): Use targetm.c.mode_for_suffix to determine
1249 the mode for a given non-standard suffix.
1250 Makefile.in (c-lex.o): Depend on $(TARGET_H).
1251
1252 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
1253 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
1254
1255 * doc/extend.texi (Floating Types): New node. Document __float80 and
1256 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
1257
1ed50f71
KK
12582007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
1259
1260 PR target/32506
1261 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
1262 predicate instead of target_operand.
1263 (divsi3_i1_media, divsi3_media_2): Likewise.
1264
836f7794
EB
12652007-07-02 Eric Botcazou <ebotcazou@adacore.com>
1266
1267 * tree.h (alias_sets_might_conflict_p): Rename into
1268 alias_sets_must_conflict_p.
1269 * alias.c (alias_sets_might_conflict_p): Likewise.
1270 (alias_sets_conflict_p): Use it.
1271 (objects_must_conflict_p): Likewise.
1272 * c-common.c (strict_aliasing_warning): Adjust.
1273
e4950e42
AP
12742007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1275
1276 * rtlhooks.c (gen_lowpart_if_possible): Check for
1277 invalid subreg before calling gen_lowpart_SUBREG.
1278
22f70bff
GK
12792007-07-02 Geoffrey Keating <geoffk@apple.com>
1280
1281 * config/darwin9.h: Add copyright notice.
1282 (LINK_COMMAND_SPEC): Add comment.
1283 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
1284 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
1285 DARWIN_LIBSYSTEM_HAS_UNWIND.
1286
69f1837b
JJ
12872007-07-02 Jakub Jelinek <jakub@redhat.com>
1288
1289 PR libgomp/32468
1290 * omp-low.c (check_combined_parallel): New function.
1291 (lower_omp_parallel): Call it via walk_stmts, set
1292 OMP_PARALLEL_COMBINED if appropriate.
1293 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
1294 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
1295 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
1296 don't consider it as combined parallel.
1297
15c723f3
RS
12982007-07-02 Richard Sandiford <richard@codesourcery.com>
1299
1300 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
1301 (gcc_tooldir): Likewise.
1302 * configure: Regenerate.
1303 * Makefile.in (libsubdir_to_prefix): New variable, based on the
1304 old configure.ac gcc_tooldir setting.
1305 (prefix_to_exec_prefix): New variable.
1306 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
1307 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
1308
f8b04195
DB
13092007-07-02 Daniel Berlin <dberlin@dberlin.org>
1310
1311 Fix PR tree-optimization/32583
1312 Fix PR tree-optimization/32584
1313 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
1314 (phi_translate_set): Use phi_translate directly now.
1315 (make_values_for_stmt): Don't value number RHS if we already know
1316 it is constant.
1317
05742530
SE
13182007-07-02 Steve Ellcey <sje@cup.hp.com>
1319 Jim Wilson <wilson@specifix.com>
1320
1321 PR target/31684
1322 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
1323 copy_insn.
1324
e1260576
RS
13252007-07-02 Sandra Loosemore <sandra@codesourcery.com>
1326 Richard Sandiford <richard@codesourcery.com>
1327 Nigel Stephens <nigel@mips.com>
1328
1329 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
1330 (mips16e_output_save_restore): Declare.
1331 (mips16e_save_restore_pattern_p): Likewise.
1332 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
1333 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
1334 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
1335 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
1336 (BITSET_P): New global macro, extracted from...
1337 (mips_for_each_saved_reg): ...here.
1338 (mips16e_save_restore_info): New struct.
1339 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
1340 (mips16e_save_restore_regs): New variable.
1341 (mips_split_plus, mips16e_find_first_register): New functions.
1342 (mips16e_mask_registers): New function.
1343 (compute_frame_size): Expand the commentary before the function.
1344 Enforce the MIPS16e save and restore register range restrictions.
1345 Pad the general register save area at the low end.
1346 (mips16e_save_restore_reg, mips16e_build_save_restore)
1347 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
1348 (mips16e_output_save_restore, mips16e_collect_propagate_value)
1349 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
1350 New functions.
1351 (mips_expand_prologue, mips_expand_epilogue): Handle
1352 GENERATE_MIPS16E_SAVE_RESTORE.
1353 * config/mips/mips.md (*mips16e_save_restore): New pattern.
1354
8ad02175
UB
13552007-07-02 Uros Bizjak <ubizjak@gmail.com>
1356
1357 PR tree-optimization/31966
1358 PR tree-optimization/32533
1359 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
1360 "basic_block" description as its third argument. Update function
1361 calls to get destination bb from "edge" argument. Save "cond" into
1362 aux field of the edge. Update prototype for changed arguments.
312360e8
UB
1363 (if_convertible_loop_p): Clear aux field of incoming edges if bb
1364 contains phi node.
8ad02175
UB
1365 (find_phi_replacement_condition): Operate on incoming edges, not
1366 on predecessor blocks. If there is a condition saved in the
1367 incoming edge aux field, AND it with incoming bb predicate.
1368 Return source bb of the first edge.
1369 (clean_predicate_lists): Clean aux field of outgoing node edges.
1370 (tree_if_conversion): Do not initialize cond variable. Move
1371 variable declaration into the loop.
1372 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
1373 initializations of new_stmt, arg0 and arg1 variables.
1374
a2daf82c
JJ
13752007-07-02 Jakub Jelinek <jakub@redhat.com>
1376
1377 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
1378 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
1379
85b19f61
RG
13802007-07-02 Richard Guenther <rguenther@suse.de>
1381
1382 * tree-ssa.c (useless_type_conversion_p): Document
1383 future intent as defining the middle-end type system.
1384 Re-structure to call langhook last, group by type class,
1385 mark questionable parts.
1386
f4088621
RG
13872007-07-02 Richard Guenther <rguenther@suse.de>
1388
1389 * tree-flow.h (types_compatible_p): Declare.
1390 * tree-ssa.c (types_compatible_p): New function.
1391 * ipa-type-escape.c (discover_unique_type): Use
1392 types_compatible_p instead of lang_hooks.types_compatible_p.
1393 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1394 * tree-vn.c (expressions_equal_p): Likewise.
1395 * tree.c (fields_compatible_p): Likewise.
1396 * tree-ssa-dom.c (avail_expr_eq): Likewise.
1397 (cprop_operand): Use useless_type_conversion_p instead of
1398 lang_hooks.types_compatible_p.
1399 * tree-inline.c (setup_one_parameter): Likewise.
1400 (declare_return_variable): Likewise.
1401 * tree-nrv.c (tree_nrv): Likewise.
1402 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1403 (maybe_fold_offset_to_component_ref): Likewise.
1404 (maybe_fold_offset_to_reference): Likewise.
1405 * tree-ssa-copy.c (may_propagate_copy): Likewise.
1406 (merge_alias_info): Likewise.
1407 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1408 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1409 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
1410 * tree-tailcall.c (find_tail_calls): Likewise.
1411 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1412 * gimplify.c (canonicalize_addr_expr): Likewise.
1413 (fold_indirect_ref_rhs): Likewise.
1414 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
1415 (cpt_same_type): Likewise.
1416 (check_pointer_types_r): Swap parameters to cpt_same_type
1417 where appropriate.
1418 * fold-const.c (fold_convert): Revert fix for PR15988.
1419 * tree-inline.c (setup_one_parameter): Instead fix it here by
1420 using fold_build1 instead of fold_convert and checking for
1421 error_mark_node. Convert only if the conversion is necessary.
1422
e51917ae
JM
14232007-07-02 Joseph Myers <joseph@codesourcery.com>
1424
1425 * configure.ac: Check for .gnu_attribute on Power.
1426 * configure: Regenerate.
1427 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
1428 attribute for floating-point ABI.
1429
3053ce44
IR
14302007-07-02 Ira Rosen <irar@il.ibm.com>
1431
1432 PR tree-optimization/32230
1433 PR tree-optimization/32477
1434 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
1435 address is a constant.
1436
e2c14f5d
RS
14372007-07-02 Richard Sandiford <richard@codesourcery.com>
1438
1439 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
1440 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
1441 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
1442 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
1443 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
1444 64-bit targets. Add support for *-elfoabi*.
1445 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
1446 different settings if $(tm_defines) does not select the EABI.
1447 (MULTILIB_EXCLUSIONS): Define in those circumstances.
1448 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
1449 (MIPS_ARCH_OPTION_SPEC): Likewise.
1450 (MIPS_ISA_LEVEL_SPEC): Likewise.
1451 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
1452 * config/mips/elfoabi.h: New file.
1453
36618b93
RG
14542007-07-02 Richard Guenther <rguenther@suse.de>
1455
1456 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
1457 (useless_type_conversion_p): ... this.
1458 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
1459 (useless_type_conversion_p): ... this.
1460 * builtins.c (fold_builtin_memory_op): Rename
1461 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
1462 * tree-cfg.c (verify_expr): Likewise.
1463 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
1464 * tree-ssa-ccp.c (ccp_fold): Likewise.
1465 * tree-ssa-copy.c (may_propagate_copy): Likewise.
1466 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1467 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1468 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
1469 * tree-ssa-pre.c (eliminate): Likewise.
1470 * tree-ssa.c (delete_tree_ssa): Likewise.
1471 (tree_ssa_useless_type_conversion): Likewise.
1472 * tree.c (build2_stat): Likewise.
1473
8b0a5125
DB
14742007-07-01 Daniel Berlin <dberlin@dberlin.org>
1475
1476 Fix PR tree-optimization/32571
1477 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
1478 simplifying them.
1479
4794afa5
DB
14802007-07-01 Daniel Berlin <dberlin@dberlin.org>
1481
1482 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
1483 and other expected operations explicitly, change default to
1484 gcc_unreachable.
1485
10ae7c7b
DJ
14862007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1487
1488 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
1489 PARALLEL.
1490 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
1491 (tls_load_dot_plus_eight): Move the label number into the unspec.
1492 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
1493
36bd4303
AS
14942007-07-01 Andreas Schwab <schwab@suse.de>
1495
1496 * dwarf2out.c (initial_return_save): Define only if used.
1497
bc90eb85 14982007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
d4d7f1d1
RS
1499
1500 Unreverting Richard's Revert of:
1501
1502 2007-06-27 Richard Sandiford <richard@codesourcery.com>
1503
1504 * dce.c (deletable_insn_p_1): New function, split out from...
1505 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
1506 specially, not those inside PARALLELs. Remove BODY argument
1507 and adjust recursive call accordingly.
1508 (prescan_insns_for_dce): Update call to delete_insn_p.
1509
7ee1ad84
VY
15102007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
1511 Revital Eres <eres@il.ibm.com>
1512
1513 * ddg.c (create_ddg_all_sccs): Fix missed
1514 initialization of scc_nodes.
1515
c22f6d33
UB
15162007-07-01 Uros Bizjak <ubizjak@gmail.com>
1517
1518 PR middle-end/32559
1519 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
1520 X + ~X to 1 only for INTEGRAL_TYPE_P type.
1521
dcb957d9
JM
15222007-06-30 Joseph Myers <joseph@codesourcery.com>
1523
1524 * configure.ac: Check for .gnu_attribute on MIPS.
1525 * configure, config.in: Regenerate.
1526 * config/mips/mips.c (mips_file_start): If supported, output
1527 attribute for floating-point ABI.
1528
08024fb5
UB
15292007-06-30 Uros Bizjak <ubizjak@gmail.com>
1530
1531 PR target/32433
1532 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
1533 (ffs_cmove): New expander to expand using ctz pattern.
1534 (*ffs_cmove): Remove pattern.
1535 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
1536 (ffsdi2): Expand using ctz pattern.
1537 (*ffs_rex64): Remove pattern.
1538
62a53968
JDA
15392007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1540
b2e83266 1541 PR rtl-optimization/32296
62a53968
JDA
1542 * pa.md (return): Delete pattern.
1543 (return_internal): Remove "(const_int 1)" from pattern.
1544 (epilogue): Use return_internal pattern for trivial returns.
1545 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
1546 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
1547
b941a8ae
DB
15482007-06-30 Daniel Berlin <dberlin@dberlin.org>
1549
1550 * tree-ssa-pre.c (is_exception_related): New function
1551 (can_value_number_operation): Use it.
1552
89fb70a3
DB
15532007-06-30 Daniel Berlin <dberlin@dberlin.org>
1554
1555 Fix PR tree-optimization/32540
1556 Fix PR tree-optimization/31651
1557
1558 * tree-ssa-sccvn.c: New file.
1559
1560 * tree-ssa-sccvn.h: Ditto.
1561
1562 * tree-vn.c: Include tree-ssa-sccvn.h
1563 (val_expr_paid_d): Removed.
1564 (value_table): Ditto.
1565 (vn_compute): Ditto.
1566 (val_expr_pair_hash): Ditto.
1567 (val_expr_pair_expr_eq): Ditto.
1568 (copy_vuses_from_stmt): Ditto.
1569 (vn_delete): Ditto.
1570 (vn_init): Ditto.
1571 (shared_vuses_from_stmt): Ditto.
1572 (print_creation_to_file): Moved up.
1573 (sort_vuses): Ditto.
1574 (sort_vuses_heap): Ditto.
1575 (set_value_handle): Make non-static.
1576 (make_value_handle): Ditto.
1577 (vn_add): Rewritten to use sccvn lookups.
1578 (vn_add_with_vuses): Ditto.
1579 (vn_lookup): Ditto (and second argument removed).
1580 (vn_lookup_with_vuses): Ditto.
1581 (vn_lookup_or_add): Ditto (and second argument removed);
1582 (vn_lookup_or_add_with_vuses): Ditto.
1583 (vn_lookup_with_stmt): New.
1584 (vn_lookup_or_add_with_stmt): Ditto.
1585 (create_value_handle_for_expr): Ditto.
1586
1587 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
1588 (seen_during_translate): New function.
1589 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
1590 (phi_trans_add): Ditto.
1591 (constant_expr_p): FIELD_DECL is always constant.
1592 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
1593 Use constant_expr_p.
1594 Avoid infinite recursion on mutually valued expressions.
1595 Change callers of vn_lookup_or_add.
1596 (phi_translate): New function.
1597 (compute_antic_safe): Allow phi nodes.
1598 (create_component_ref_by_pieces): Update for FIELD_DECL change.
1599 (find_or_generate_expression): Rewrite slightly.
1600 (create_expression_by_pieces): Updated for vn_lookup_or_add
1601 change.
1602 Update VN_INFO for new names.
1603 (insert_into_preds_of_block): Update for new names.
1604 (add_to_exp_gen): New function.
1605 (add_to_sets): Use vn_lookup_or_add_with_stmt.
1606 (find_existing_value_expr): Rewrite to changed vn_lookup.
1607 (create_value_expr_from): Ditto, and use add_to_exp_gen.
1608 (try_look_through_load): Removed.
1609 (try_combine_conversion): Ditto.
1610 (get_sccvn_value): New function.
1611 (make_values_for_phi): Ditto.
1612 (make_values_for_stmt): Ditto.
1613 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
1614 SCCVN.
1615 (init_pre): Update for SCCVN changes.
1616 (fini_pre): Ditto.
1617 (execute_pre): Ditto.
1618
1619 * tree-flow.h (make_value_handle): Declare.
1620 (set_value_handle): Ditto.
1621 (sort_vuses_heap): Ditto.
1622 (vn_lookup_or_add_with_stmt): Ditto.
1623 (vn_lookup_with_stmt): Ditto.
1624 (vn_compute): Remove.
1625 (vn_init): Ditto.
1626 (vn_delete): Ditto.
1627 (vn_lookup): Update arguments.
1628
1629 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
1630 (tree-vn.o): Ditto.
1631 (tree-ssa-sccvn.o): New.
1632 (OBJS-common): Add tree-ssa-sccvn.o
1633
ad960f56
MLI
16342007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1635
1636 PR c/4076
1637 * c-typeck.c (build_external_ref): Don't mark as used if called
1638 from itself.
1639 * calls.c (rtx_for_function_call): Likewise.
1640
a4fbe84b
RS
16412007-06-30 Richard Sandiford <richard@codesourcery.com>
1642
1643 Revert:
1644
1645 2007-06-27 Richard Sandiford <richard@codesourcery.com>
1646
1647 * dce.c (deletable_insn_p_1): New function, split out from...
1648 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
1649 specially, not those inside PARALLELs. Remove BODY argument
1650 and adjust recursive call accordingly.
1651 (prescan_insns_for_dce): Update call to delete_insn_p.
1652
9d35384d
RIL
16532007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
1654
1655 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
1656 (try_combine): Move potential calls to undo_all() so they happen
1657 before we commit to using the combined insns.
1658
2ed22578
JH
16592006-06-30 Jan Hubicka <jh@suse.cz>
1660
c22f6d33 1661 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
2ed22578
JH
1662 code.
1663
c5274326
TN
16642006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
1665
1666 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
1667 (cgraph_remove_unreachable_nodes): Likewise.
1668 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
1669 * ipa-inline.c (update_caller_keys): Cast according to the coding
1670 conventions.
1671 (cgraph_decide_recursive_inlining): Likewise.
1672 (cgraph_decide_inlining_of_small_function): Likewise.
1673 (try_inline): Likewise.
1674 (cgraph_decide_inlining_incrementally): Likewise.
1675 * ipa-pure-const.c (get_function_state): Likewise.
1676 (scan_function): Likewise.
1677 (analyze_function): Likewise.
1678 (static_execute): Likewise.
1679 * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
1680 (merge_callee_local_info): Likewise.
1681 (analyze_function): Use type safe memory macros.
1682 (static_execute): Likewise. Cast according to the coding conventions.
1683 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
1684 conventions.
1685 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
1686 names.
1687 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
1688 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
1689 variable names.
1690
e90721b1
AP
16912007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
1692
23512eb3 1693 PR middle-end/30024
e90721b1
AP
1694 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
1695 for complex modes (both int and real).
1696
16972007-06-29 Jan Hubicka <jh@suse.cz>
874d7c2f
JH
1698
1699 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
1700
e90721b1 17012007-06-29 Jan Hubicka <jh@suse.cz>
acff8040
JH
1702
1703 PR middle-end/32372
1704 * cse.c (cse_insn): Avoid invalid sharing in between register note and
1705 the insn pattern.
1706
e90721b1 17072007-06-29 Anatoly Sokolov <aesok@post.ru>
4e63b362
AS
1708
1709 PR target/32335
1710 * config/avr/avr.c: Include dataflow header file.
1711 (expand_prologue): Adjust for prologue insn change.
1712 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
1713 inside a insn.
1714
8edd82f2 17152007-06-29 Richard Guenther <rguenther@suse.de>
42f6e2ec
RG
1716
1717 PR middle-end/32493
1718 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
1719 during type verification.
1720
29fbecf3
JH
17212007-06-29 Jan Hubicka <jh@suse.cz>
1722
1723 * recog.c (validate_change_rtx_1): Unshare TO argument.
1724
b40c4f68
UB
17252007-06-29 Uros Bizjak <ubizjak@gmail.com>
1726
1727 PR tree-optimization/24659
1728 * tree-vect-transform.c (vectorizable_call): Handle
1729 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
1730
1731 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
1732 * config/i386/i386.c (enum ix86_builtins)
1733 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
1734 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
1735 description.
1736 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
1737 const using def_builtin_const.
1738 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
1739 input operands in the same modes as the result.
1740 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
1741
27178277
RS
17422007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
1743
1744 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
1745 (df_set_dead_notes_for_mw): Likewise.
1746
280f1ffa
EB
17472007-06-29 Eric Botcazou <ebotcazou@adacore.com>
1748
1749 * c-common.c (pointer_int_sum): Do the negation in sizetype.
1750
58ef0ffa
DD
17512007-06-28 DJ Delorie <dj@redhat.com>
1752
1753 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
1754
ddbfd28d
GK
17552007-06-28 Geoffrey Keating <geoffk@apple.com>
1756
1757 * doc/invoke.texi (C++ Dialect Options): Document
1758 fvisibility-ms-compat.
1759 * c.opt (fvisibility-ms-compat): New.
1760
f46fe0e6
AP
17612007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1762
1763 PR tree-opt/32417
1764 * tree-affine.c (aff_combination_add_elt): Handle
1765 pointer addition specially.
1766
8aa19d95
JJ
17672007-06-28 Jakub Jelinek <jakub@redhat.com>
1768
1769 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
1770 decl is non-external for AIX ABI.
1771
17722007-06-28 David Edelsohn <edelsohn@gnu.org>
1773
1774 * config/rs6000/predicates.md (current_file_function_operand):
1775 Ensure the symbol is non-external for AIX ABI.
1776
6ae4be32
NC
17772007-06-28 Nick Clifton <nickc@redhat.com>
1778
1779 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
1780 (fdce, fdse, fpredictive-commoning): Likewise.
1781
86db887a
FXC
17822007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1783
1784 PR other/31400
1785 * gcc.c (process_command): Recognize the new -static-libgfortran
1786 option.
1787
99920b6f
RIL
17882007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
1789
1790 PR target/32418
1791 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
1792 Use a call clobbered hard reg instead of a pseudo reg.
1793
2c19a536
KK
17942007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
1795
1796 * config/sh/sh.md (load_gbr): Use correct operand constraint.
1797
ba56ed65
KK
17982007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
1799
1800 PR target/32479
1801 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
1802 REG_LIBCALL and REG_RETVAL notes.
1803 (divsi3, mulsi3): Likewise.
1804 (mulhisi3): Likewise. Use emit_libcall_block.
1805 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
1806
531ba5d2
SP
18072007-06-27 Seongbae Park <seongbae.park@gmail.com>
1808
1809 PR rtl-optimization/32481
1810 * combine.c (adjust_for_new_dest): Rescan the changed insn.
1811
b40b2172
RS
18122007-06-27 Richard Sandiford <richard@codesourcery.com>
1813
1814 * dce.c (deletable_insn_p_1): New function, split out from...
1815 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
1816 specially, not those inside PARALLELs. Remove BODY argument
1817 and adjust recursive call accordingly.
1818 (prescan_insns_for_dce): Update call to delete_insn_p.
1819
3b357646
RG
18202007-06-27 Richard Guenther <rguenther@suse.de>
1821
1822 PR middle-end/32492
1823 * tree.h (fold_convertible_p): Declare.
1824 * fold-const.c (fold_convertible_p): New function.
1825 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
1826 instead of lang_hooks.types_compatible_p.
1827
95e88efd
JH
18282007-06-26 Jan Hubicka <jh@suse.cz>
1829
1830 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
1831 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
1832 early use validate_unshare_change.
1833 (reload_combine): Likewise.
1834 * recog.c (change_t): New field unshare.
1835 (validate_change_1): Rename from validate_change; add argument unshare.
1836 (validate_change): Turn into wrapper of validate_change_1; update
1837 prototype for bools.
1838 (validate_unshare_change): New.
1839 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
1840 calls of df_insn_rescan.
1841 * recog.h (validate_change): Replace ints by bools.
1842 (validate_unshare_change): Declare.
1843
201bfd14
KZ
18442007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
1845
1846 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
1847
4319e38c
SE
18482007-06-26 Steve Ellcey <sje@cup.hp.com>
1849
1850 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
1851
12c7b51e
JH
18522007-06-25 Jan Hubicka <jh@suse.cz>
1853
1854 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
1855 uninlinable call.
1856 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
1857 cgraph_decide_inlining_incrementally): Move uninlinability checks to
1858 places other call site specific checks are performed.
1859
2caf766b
AP
18602007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
1861
1862 PR tree-opt/32421
1863 * tree-vect-transform.c (vectorizable_operation): Convert
1864 POINTER_PLUS_EXPR over to PLUS_EXPR.
1865
1699ec0b
CF
18662007-06-25 Chao-ying Fu <fu@mips.com>
1867
1868 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
1869 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
1870 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1871 Document GET_MODE_IBIT, and GET_MODE_FBIT.
1872
1873 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
1874 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1875 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
1876 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
1877 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
1878 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
1879 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
1880 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
1881 ALL_FIXED_POINT_MODE_P): New define.
1882 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1883 MODE_UACCUM.
1884 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
1885
1886 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
1887 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1888 MODE_VECTOR_UACCUM): New mode classes.
1889
1890 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
1891 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
1892 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
1893 USA, UDA, and UTA.
1894
1895 * genmodes.c (struct mode_data): Add ibit and fbit fields.
1896 (blank_mode): Initialize ibit and fbit.
1897 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
7e08fa35
UB
1898 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1899 MODE_UACCUM.
1699ec0b
CF
1900 (new_adjust): Change required_class to required_class_from and
1901 required_class_to for testing within a range.
1902 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1903 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1904 MODE_VECTOR_UACCUM.
1905 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
1906 (make_fixed_point_mode): New.
1907 (_ADD_ADJUST): Change C to C1 and C2.
1908 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
1909 use a range for machine classes.
1910 (ADJUST_IBIT, ADJUST_FBIT): New.
1911 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
1912 CONST_MODE_FBIT.
1913 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1914 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1915 Emit adjustment for ibit and fbit.
1916 (emit_mode_ibit, emit_mode_fbit): New.
1917 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
1918
a3f8aaa5
NF
19192007-06-25 Nathan Froyd <froydnj@codesourcery.com>
1920
1921 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
1922 as the source of the set.
1923
bf32249e
RZ
19242007-06-25 Roman Zippel <zippel@linux-m68k.org>
1925
1926 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
1927 FP_REGNO_P): Use IN_RANGE.
1928 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
1929 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
1930 (DATA_REG_P): Use DATA_REGNO_P.
1931 (FP_REG_P): Use FP_REGNO_P.
1932 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
1933 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
1934 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
1935
6a84c098
JH
19362007-06-24 Jan Hubicka <jh@suse.cz>
1937
1938 PR middle-end/30563
1939 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
1940
a49c5793
SP
19412007-06-24 Sebastian Pop <sebpop@gmail.com>
1942
1943 PR middle-end/32461
1944 * fold-const.c (fold_binary): Strip nops of operand 0
1945 of BIT_NOT_EXPR before calling operand_equal_p.
1946 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
1947 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
1948
3a687f8b
MM
19492007-06-23 Mark Mitchell <mark@codesourcery.com>
1950
1951 * doc/extend.texi: Document that dllimport and dllexport imply
1952 default visibility.
1953 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
1954 imported or exported declaration, including type declarations.
1955 * c-common.c (handle_visibility_attribute): Check for conflicts
1956 with dllimport/dllexport.
1957 (c_determine_visibility): Handle dllimport/dllexport as an
1958 explicit visibility atttribute.
1959
e36711f3
RG
19602007-06-23 Richard Guenther <rguenther@suse.de>
1961
1962 PR tree-optimization/16876
1963 PR middle-end/29478
1964 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
1965 for CALL_EXPRs.
1966 * tree-inline.c (initialize_inlined_parameters): Do not call
1967 lang_hooks.tree_inlining.convert_parm_for_inlining.
1968 * cgraphbuild.c (initialize_inline_failed): Set inline failed
1969 reason for mismatched types.
1970 * gimplify.c (gimplify_call_expr): Verify the call expression
1971 arguments match the called function type signature. Otherwise
1972 mark the call expression to be not considered for inlining
1973 using CALL_CANNOT_INLINE_P flag.
1974 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1975 edges call expression.
1976 (cgraph_decide_inlining_of_small_function): Likewise.
1977 (cgraph_decide_inlining): Likewise.
1978 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1979 Remove define.
1980 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1981 * c-typeck.c (c_convert_parm_for_inlining): Remove.
1982 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1983 Remove declaration.
1984 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1985 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1986 Remove.
1987 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1988 convert_parm_for_inlining member.
1989
630ef467
RE
19902007-06-23 Richard Earnshaw <rearnsha@arm.com>
1991
1992 PR target/31152
1993 * arm.md (negscc): Match the correct operand for optimized LT0 test.
1994 Remove optimization for GT.
1995
6cad9859
KZ
19962007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
1997
1998 PR middle-end/32437
20de4d99 1999 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
6cad9859
KZ
2000 is a PARALLEL.
2001 (prescan_insns_for_dce): Add extra parameter.
2002
936d04b6
JH
20032007-06-23 Jan Hubicka <jh@suse.cz>
2004
2005 PR middle-end/31541
2006 * gimplify.c (mark_addressable): New function.
2007 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
2008
b40c4f68 20092007-06-22 Uros Bizjak <ubizjak@gmail.com>
58f7fcc3
UB
2010
2011 PR middle-end/32374
2012 * expr.c (store_constructor): Do not clobber non-zeroed memory.
2013
147bbdd0
UB
20142007-06-22 Uros Bizjak <ubizjak@gmail.com>
2015
2016 PR target/32413
2017 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
2018 moves between MMX/SSE registers to at least 8 units to prevent
2019 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
2020
9064c533
UB
20212007-06-22 Uros Bizjak <ubizjak@gmail.com>
2022
2023 * config/i386/i386.c (override_options): Correct x86_sahf
2024 setting condition.
2025
48a8bb13
DD
20262007-06-21 David Daney <ddaney@avtrex.com>
2027
1ad91955 2028 PR target/32406
48a8bb13
DD
2029 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
2030 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
2031 (exception_receiver): Renamed to ...
2032 (nonlocal_goto_receiver): ... this.
2033
7bb3ae2f
RZ
20342007-06-22 Roman Zippel <zippel@linux-m68k.org>
2035
2036 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
2037 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
2038 partial register accesses.
2039
f1b42630
AN
20402007-06-21 Adam Nemet <anemet@caviumnetworks.com>
2041
2042 * fold-const.c (debug_fold_checksum): Move it under
2043 ENABLE_FOLD_CHECKING.
2044
70826cbb
SP
20452007-06-21 Sebastian Pop <sebpop@gmail.com>
2046
2047 PR middle-end/20623
2048 * tree.h (debug_fold_checksum): Declared.
2049 * fold-const.c (build_fold_addr_expr_with_type_1): New.
2050 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
2051 build_fold_addr_expr_with_type_1.
2052 (fold_addr_expr, debug_fold_checksum): New.
2053 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
2054 (fold_unary, fold_comparison, split_address_to_core_and_offset):
2055 Use fold_addr_expr.
2056
6f1c9cd0
SP
20572007-06-21 Sebastian Pop <sebpop@gmail.com>
2058
2059 PR tree-optimization/19590
2060 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
2061 of scev is a constant.
2062 * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2063
e44e043c
KZ
20642007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
2065
2066 * df-problems.c (df_note_bb_compute): Made computation of live
2067 info consistent with df_lr.
2068
42289977
RG
20692007-06-21 Richard Guenther <rguenther@suse.de>
2070
2071 PR tree-optimization/32453
2072 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
2073 for pointer anti-range.
2074
461a73b5
L
20752007-06-21 H.J. Lu <hongjiu.lu@intel.com>
2076
2077 * config/i386/i386.c (processor_target_table): Increase maximum
2078 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
2079 default 64bit.
2080
2081 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
2082 byte alignment if > 8 byte alignment is preferred.
2083 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2084
64964499
JJ
20852007-06-21 Jakub Jelinek <jakub@redhat.com>
2086
3521f3cc
JJ
2087 PR tree-optimization/31866
2088 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
2089 if ASM_EXPR's input is not a SSA_NAME.
2090
64964499
JJ
2091 PR middle-end/32362
2092 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
2093 but decl is a global var, instead return decl.
2094 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
2095 even for is_global_var decls, if they are private in some outer
2096 context.
2097
d9eb5318
RG
20982007-06-21 Richard Guenther <rguenther@suse.de>
2099
2100 PR tree-optimization/32451
2101 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
2102
5c7cafa8
CB
21032007-06-21 Christian Bruel <christian.bruel@st.com>
2104
2105 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
2106 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
2107 (push_regs): Changed saving order or banked registers.
2108 (sh_expand_epilogue): Likewise.
2109 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
2110 (FIRST_BANKED_REG): Likewise.
2111 (LAST_BANKED_REG): Likewise.
2112 * config/sh/sh.md (banked) New attribute.
2113 (in_delay_slot): Check banked attribute.
2114
c0aafd30
SP
21152007-06-20 Sebastian Pop <sebpop@gmail.com>
2116
2117 PR tree-optimization/32075
2118 * tree-data-ref.c (subscript_dependence_tester_1,
2119 analyze_miv_subscript, analyze_overlapping_iterations,
2120 add_distance_for_zero_overlaps, build_classic_dist_vector,
2121 subscript_dependence_tester_1, analyze_overlapping_iterations,
2122 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
2123 compute_affine_dependence, compute_all_dependences): Pass loop_nest
2124 to evolution_function_is_affine_multivariate_p.
2125
7e657ec2
EB
21262007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
2127
2128 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
2129
7a9dcd47
RIL
21302007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
2131
2132 PR target/32335
2133 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
2134 for TARGET_A16.
2135 * config/m32c/prologue.md (epilogue_exitd_16): New.
2136 (epilogue_reit_16): New.
2137 (epilogue_exitd): Rename to epilogue_exitd_24.
2138 (epilogue_reit): Rename to epilogue_reit_24.
2139
b631c5f7
SP
21402007-06-20 Seongbae Park <seongbae.park@gmail.com>
2141 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2142
2143 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
2144 New counters.
2145 * haifa-sched.c (queue_to_ready): Don't requeue next insn
2146 if dbg_cnt (sched_insn) reaches the limit.
2147 (choose_ready): New parameter INSN_PTR and new return value.
2148 (schedule_block): Handle dbg_cnt (sched_insn). Handle
2149 the new return value from choose_ready.
2150 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
2151 (rest_of_handle_global_alloc): New global_alloc_at_func.
2152
3d9b47dc
AN
21532007-06-20 Adam Nemet <anemet@caviumnetworks.com>
2154
2155 PR tree-optimization/25737
2156 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
2157 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
2158 * tree-flow.h (struct fieldoff): Add new field alias_set.
2159 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
2160 argument addressable_type. Set alias_set of fieldoff.
2161 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
2162 (create_overlap_variables_for): Pass alias_set from fieldoff to
2163 create_sft.
2164 * alias.c (get_alias_set): Use alias_set from SFT if set.
2165
1c5ae962
HMC
21662007-06-20 Hui-May Chang <hm.chang@apple.com>
2167
2168 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
2169 of a variable as an unsigned HOST_WIDE_INT integer.
2170
6848da6a
ZD
21712007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
2172
2173 PR rtl-optimization/32405
2174 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
2175
6a4e56a9
JJ
21762007-06-20 Jakub Jelinek <jakub@redhat.com>
2177
6330585d
JJ
2178 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
2179
1d8381f1
JJ
2180 PR middle-end/31959
2181 * builtins.c: Include diagnostic.h.
2182 (expand_builtin_expect): Make gcc_assert more permissive.
2183 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
2184
f497c16c
JJ
2185 PR inline-asm/32109
2186 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
2187 and !allows_mem.
2188
6a4e56a9
JJ
2189 PR middle-end/32285
2190 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
2191 if ACCUMULATE_OUTGOING_ARGS.
2192
c105ee09
RIL
21932007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2194
2195 * config/m68hc11/m68hc11.c: Include dataflow header file.
2196 (m68hc11_reorg): Port to dataflow.
2197
4aa0f911 21982007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
89a95777
KZ
2199
2200 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
2201 (struct df_problem.free_blocks_on_set_blocks): New field.
2202 (struct dataflow.optional_p): New field.
2203 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2204 (df_live_set_all_dirty): New function.
2205 * df-scan.c (df_scan_alloc): Initialize optional_p.
2206 (problem_SCAN): Initialize free_blocks_on_set_blocks.
2207 * df-core.c (df_set_blocks): Removed use of
2208 DF_FIRST_OPTIONAL_PROBLEM. Now uses
2209 df_problem.free_blocks_on_set_blocks to determine which blocks are
2210 recycled.
2211 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
2212 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
2213 uses dataflow.optional_p to determine if problem should be
2214 deleted.
2215 (rest_of_handle_df_initialize): Only start live problem if
2216 -02 or above.
2217 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2218 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
2219 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
2220 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
2221 problem_NOTE): Initialize free_blocks_on_set_blocks.
2222 (df_lr_bb_local_compute): Recompute luids if df_live problem is
2223 not active.
2224 (df_live_set_all_dirty, df_note_alloc): New function.
2225 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
2226 df_get_live_*.
2227 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
2228 * postreload.c (reload_combine): Ditto.
2229 * cse.c (cse_extended_basic_block): Ditto.
2230 * regmove.c (mark_flags_life_zones): Ditto.
2231 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
2232 erase_matching_seqs): Ditto.
2233 * bt-load.c (compute_defs_uses_and_gen): Ditto.
2234 * integrate (allocate_initial_values): Ditto.
2235 * combine.c (reg_dead_at_p): Ditto.
2236 * resource.c (mark_target_live_regs): Ditto.
2237 * sched-rgn.c (check_live_1, update_live_1): Ditto.
2238 * config/sh/sh.c (find_r0_life_regions): Ditto.
2239 * global.c (rest_of_handle_global_alloc): Only add back df_live
2240 for -O > 1.
2241 * local-alloc.c (rest_of_handle_local_alloc): Only remove
2242 df_live for -O > 1.
2243 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
2244 df_get_live_*.
2245 (if_convert): Make sure df_live is there at -O == 1.
2246 (pass_if_after_combine): Cleanup flags.
2247 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
2248 is there at -O == 1.
2249
a3a531ec
SP
22502007-06-19 Seongbae Park <seongbae.park@gmail.com>
2251
2252 * config/arm/arm.c (arm_get_frame_offsets): Set
2253 offsets->locals_base to avoid negative stack size.
2254 (thumb1_expand_prologue): Assert on negative stack size.
2255
da9a21f4 22562007-04-19 Sebastian Pop <sebpop@gmail.com>
0f7c0775
SP
2257
2258 PR tree-optimization/32367
2259 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
2260 of the chrec has no evolution in that loop.
2261 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
2262
e70312d4
BW
22632007-06-19 Bob Wilson <bob.wilson@acm.org>
2264
2265 * config/xtensa/xtensa.c: Include "df.h".
7e08fa35
UB
2266 (xtensa_builtin_saveregs): Use adjust_address instead of
2267 change_address.
e70312d4
BW
2268 (xtensa_va_start): Invoke make_tree with sizetype for
2269 expand_builtin_saveregs and then convert the result to a pointer.
2270 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
2271 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
2272 Subtract argument size from index value as integers and then use
2273 POINTER_PLUS_EXPR to add the result to the array address.
2274
fa9fd28a
RIL
22752007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2276
2277 PR target/32335
2278 * config/m32c/m32c.c: Include dataflow header file.
2279 (m32c_emit_prologue): Adjust for prologue insn change.
2280 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
2281 once inside a PARALLEL. Assume frame size passed in operand 0
2282 includes space to save the fb register.
2283 (prologue_enter_24): Likewise.
2284 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
2285
21d09454
DD
22862007-06-19 David Daney <ddaney@avtrex.com
2287
2288 PR target/32313
2289 * config/mips/mips.md (cprestore): Mark $gp as used.
2290
eedd7243
RIL
22912007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2292
2293 PR target/32369
2294 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
2295 (frv_ifcvt_modify_insn): Likewise.
2296
9bf448b9
RB
22972007-06-19 Richard Guenther <rguenther@suse.de>
2298
2299 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
2300 only handle positive offsets that fit in a HOST_WIDE_INT.
2301
23022007-06-19 Uros Bizjak <ubizjak@gmail.com>
258d0b9b 2303
670a8526
UB
2304 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
2305 result of rsqrt insn for zero input argument to avoid NaN.
258d0b9b 2306
7ffc27a6
RG
23072007-06-19 Richard Guenther <rguenther@suse.de>
2308
2309 PR middle-end/31950
2310 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
2311
fda2b8e3
JJ
23122007-06-19 Jakub Jelinek <jakub@redhat.com>
2313
2314 PR tree-optimization/32353
2315 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
2316
8dba2ded
NC
23172007-06-19 Nick Clifton <nickc@redhat.com>
2318
20de4d99 2319 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
8dba2ded 2320
80dcd3aa
UB
23212007-06-18 Uros Bizjak <ubizjak@gmail.com>
2322
2323 PR target/32389
2324 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
2325 * config/i386/i386.c (assign_386_stack_local): Assert that
2326 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
2327 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
2328 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
2329 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
2330
d448952a
SE
23312007-06-18 Steve Ellcey <sje@cup.hp.com>
2332
2333 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
2334
bfff9190
SP
23352007-06-18 Seongbae Park <seongbae.park@gmail.com>
2336
2337 PR rtl-optimization/32321
2338 * gcse.c (replace_store_insn): Update the note before
2339 calling emit_insn_after.
d4977f6c 2340
8b9d606b
KZ
23412007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
2342
2343 PR middle-end/32355
2344 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
2345 cse_main.
2346 * df-problems.c (df_note_bb_compute): Fix dumping info.
2347
49570723
KH
23482007-06-18 Kazu Hirata <kazu@codesourcery.com>
2349
2350 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
2351 insn with emit_jump_insn.
2352
ac10986f
UB
23532007-06-18 Uros Bizjak <ubizjak@gmail.com>
2354
2355 PR tree-optimization/32383
2356 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
2357 * targhooks.h (default_builtin_reciprocal): Update prototype.
2358 * target.h (struct gcc_target): Update builtin_reciprocal.
2359 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
2360 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
2361 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
2362 when fndecl is in BUILT_IN_MD class.
2363 (execute_convert_to_rsqrt): Ditto.
2364
2365 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
2366 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
2367 Convert BUILT_IN_SQRTF code only when md_fn is false.
2368
a8d8890a
KK
23692007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
2370
2371 * bt-load.c (move_btr_def): Fix the order of arguments
2372 to validate_replace_rtx.
2373
a761c345
NS
23742007-06-18 Nathan Sidwell <nathan@codesourcery.com>
2375
2376 * config/m68k/m68k-devices.def: Add 54450..54455.
2377
a0c64295
UB
23782007-06-17 Uros Bizjak <ubizjak@gmail.com>
2379
2380 PR rtl-optimization/32366
2381 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
2382 FLOAT_EXTEND]: Prevent non-scalar modes from entering
2383 significand_size.
2384
5f705558
KZ
23852007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2386
2387 PR middle-end/32349
2388 * modulo-sched (generate_reg_moves): Added rescan parameter and if
2389 this is true, rescan insn being modified.
2390 (sms_schedule): Added rescan parameter.
2391 (rest_of_handle_sms): Moved freeing of dominance info to before
2392 getting out of cfg_layout.
2393
59c92f76
NS
23942007-06-17 Nathan Sidwell <nathan@codesourcery.com>
2395
2396 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
2397 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
2398 appropriate.
2399
fe116068
NS
2400 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
2401 FL_CF_EMAC from the entry for isac.
2402
4e2b26aa
NS
2403 * config/m68k/predicates.md (const_call_operand): Adjust comment.
2404 (const_sibcall_operand): New.
2405 (sibcall_operand): Use it.
2406 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
2407 (m68k_isas): ISAC does not imply FPU or EMAC.
2408 (override_options): Add ISA_C logic for symbolic jump & call.
2409
724d7c55
EB
24102007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
2411
2412 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
2413 return mode from the builtin itself.
2414 (sparc_fold_builtin): Fix cast of zero constant.
2415
cc2137be
UB
24162007-06-16 Uros Bizjak <ubizjak@gmail.com>
2417
2418 * targhooks.c (default_builtin_reciprocal): New default target hook.
2419 * targhooks.h (default_builtin_reciprocal): Add prototype.
2420 * hooks.c (hook_tree_tree_bool_null): Remove hook.
2421 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
2422 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
2423 default_builtin_reciprocal.
2424
6b889d89
UB
24252007-06-16 Uros Bizjak <ubizjak@gmail.com>
2426
2427 PR middle-end/31723
2428 * hooks.c (hook_tree_tree_bool_null): New hook.
2429 * hooks.h (hook_tree_tree_bool_null): Add prototype.
2430 * tree-pass.h (pass_convert_to_rsqrt): Declare.
2431 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
2432 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
2433 and convert it to reciprocal a*rfunc(b).
2434 (execute_convert_to_rsqrt): New function.
2435 (gate_convert_to_rsqrt): New function.
2436 (pass_convert_to_rsqrt): New pass definition.
2437 * target.h (struct gcc_target): Add builtin_reciprocal.
2438 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
2439 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
2440 TARGET_BUILTIN_RECIPROCAL.
2441 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
2442
2443 * config/i386/i386.h (TARGET_RECIP): New define.
2444 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
2445 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2446 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2447 and not optimizing for size.
2448 (*rcpsf2_sse): New insn pattern.
2449 (*rsqrtsf2_sse): Ditto.
2450 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
2451 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2452 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2453 and not optimizing for size.
2454 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
2455 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2456 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2457 and not optimizing for size.
2458 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
2459 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2460 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2461 and not optimizing for size.
2462 (*sse_rsqrtv4sf2): Do not export.
2463 (sqrtv4sf2): Ditto.
2464 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
2465 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2466 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2467 and not optimizing for size.
2468 (sqrtv4sf2): Ditto.
2469 * config/i386/i386.opt (mrecip): New option.
2470 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
2471 (ix86_emit_swsqrtsf): Ditto.
2472 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
2473 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
2474 builtin definition.
2475 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
2476 ix86_expand_unop1_builtin.
2477 (ix86_emit_swdivsf): New function.
2478 (ix86_emit_swsqrtsf): Ditto.
2479 (ix86_builtin_reciprocal): New function.
2480 (TARGET_BUILTIN_RECIPROCAL): Use it.
2481 (ix86_vectorize_builtin_conversion): Rename from
2482 ix86_builtin_conversion.
2483 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
2484 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
2485 "i386 and x86_64 Options" section.
2486 (Intel 386 and AMD x86_64 Options): Document -mrecip.
2487
5be014d5
AP
24882007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2489 Zdenek Dvorak <dvorakz@suse.cz>
2490 Richard Guenther <rguenther@suse.de>
2491 Kaz Kojima <kkojima@gcc.gnu.org>
2492
2493 * tree-vrp.c (compare_values_warnv): Convert val2 to
2494 the type of val1.
2495 (extract_range_from_assert): Create
2496 POINTER_PLUS_EXPR for pointer types.
2497 (extract_range_from_binary_expr): Handle
2498 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
2499 for pointer types.
2500 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
2501 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
2502 POINTER_PLUS_EXPR as PLUS_EXPR.
2503 (number_of_iterations_lt_to_ne):
2504 For pointer types, use sizetype when
2505 creating MINUS_EXPR/PLUS_EXPRs.
2506 (assert_loop_rolls_lt): For pointer types, use sizetype when
2507 creating MINUS_EXPR/PLUS_EXPRs.
2508 (number_of_iterations_le): Likewise.
2509 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
2510 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
2511 like PLUS_EXPR and MINUS_EXPR.
2512 * tree-pretty-print.c (dump_generic_node): Handle
2513 POINTER_PLUS_EXPR.
2514 (op_prio): Likewise.
2515 (op_symbol_1): Likewise.
2516 * optabs.c (optab_for_tree_code): Likewise.
2517 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
2518 specially.
2519 * tree-tailcall.c (process_assignment): Mention
2520 POINTER_PLUS_EXPR in a TODO comment.
2521 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
2522 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
2523 not used with a pointer and an integer type.
2524 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
2525 increment using chrec_convert_rhs instead of chrec_convert.
2526 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
2527 PLUS_EXPR except for the right hand side's type will be
2528 sizetype.
2529 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
2530 (fold_used_pointer_cast): Kill.
2531 (pointer_offset_p): Kill.
2532 (fold_used_pointer): Kill.
2533 (pointer_used_p): Kill.
2534 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
2535 call fold_used_pointer.
2536 (instantiate_parameters_1): Convert the increment
2537 using chrec_convert_rhs instead of chrec_convert.
2538 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
2539 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
2540 instead of PLUS_EXPR.
2541 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
2542 PLUS_EXPR for pointers.
2543 (std_gimplify_va_arg_expr): Likewise.
2544 (fold_builtin_memory_op): Likewise.
2545 (fold_builtin_strstr): Likewise.
2546 (fold_builtin_strchr): Likewise.
2547 (fold_builtin_strrchr): Likewise.
2548 (fold_builtin_strpbrk): Likewise.
2549 (expand_builtin_memory_chk): Likewise.
2550 (fold_builtin_memory_chk): Likewise.
2551 (std_expand_builtin_va_start): Use
2552 sizetype for the call to make_tree and then convert
2553 to the pointer type.
2554 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
2555 instead of PLUS_EXPR for adding to a pointer.
2556 (std_gimplify_va_arg_expr): Use fold_build2 for
2557 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
2558 the operands to sizetype first and then cast the BIT_AND_EXPR
2559 back to the pointer type.
2560 * fold-const.c (build_range_check): Handle pointer types
2561 specially.
2562 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
2563 of PLUS_EXPR's. Make sure the offset is converted to
2564 sizetype.
2565 (try_move_mult_to_index): Strip the NOPs from the offset.
2566 Remove code argument and replace all uses with PLUS_EXPR.
2567 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
2568 specially. Don't use a pointer type for MINUS_EXPR.
2569 (fold_unary): Handle for (T1)(X op Y),
2570 only p+ as that is the only as that can be handled for
2571 binary operators now.
2572 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
2573 POINTER_PLUS_EXPR.
2574 <case PLUS_EXPR>: Add folding of PTR+INT into
2575 PTR p+ INT.
2576 Don't call try_move_mult_to_index.
2577 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
2578 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
2579 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
2580 Don't call try_move_mult_to_index.
2581 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
2582 (tree_expr_nonzero_p): Likewise.
2583 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
2584 of PLUS_EXPR for the complex expression folding.
2585 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
2586 first chrec is a pointer type, then the second should
2587 be sizetype and not the first's type.
2588 For POINTER_PLUS_EXPR, use a different right hand side type.
2589 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2590 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
2591 different right hand side type.
2592 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2593 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
2594 instead of PLUS_EXPR.
2595 When either operand is zero, convert the other operand.
2596 (chrec_apply): Use chrec_convert_rhs
2597 on the argument x instead of chrec_convert.
2598 (reset_evolution_in_loop): For pointer types, the new_evol
2599 should be sizetype.
2600 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
2601 different right hand side type.
2602 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2603 (chrec_convert_rhs): New function.
2604 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
2605 different right hand side type.
2606 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2607 * tree-chrec.h (chrec_convert_rhs): New prototype.
2608 (build_polynomial_chrec): For pointer types, the right hand
2609 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
2610 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
2611 Remove subtraction case as it is always addition now.
2612 Make sure the offset is converted to sizetype.
2613 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
2614 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
2615 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
2616 PLUS_EXPR in pointer type.
2617 Handle POINTER_PLUS_EXPR.
2618 (tree_to_aff_combination): Likewise.
2619 (force_expr_to_var_cost): Likewise.
2620 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
2621 instead of PLUS_EXPR for pointers.
2622 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
2623 instead of PLUS_EXPR of pointer types.
2624 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
2625 as PLUS_EXPR.
2626 (check_va_list_escapes): Likewise.
2627 (check_all_va_list_escapes): Likewise.
2628 * dwarf2out.c (loc_descriptor_from_tree_1):
2629 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
2630 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
2631 (string_constant): Likewise.
2632 * tree-ssa-address.c (tree_mem_ref_addr): When adding
2633 the offset to the base, use POINTER_PLUS_EXPR.
2634 (add_to_parts): Convert the index to sizetype.
2635 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
2636 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
2637 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
2638 Offset only holds something for PLUS_EXPR.
2639 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
2640 a PLUS_EXPR.
2641 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
2642 and not PLUS_EXPR.
2643 (analyze_accesses_for_modify_stmt): Likewise.
2644 Remove comment about the type being integral type as it is
2645 wrong now.
2646 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
2647 PLUS_EXPR.
2648 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
2649 and not PLUS_EXPR.
2650 Correct the type which the artimentic is done in (is now
2651 sizetype).
2652 Reindent one loop.
2653 * tree-data-ref.c (split_constant_offset): Handle
2654 POINTER_PLUS_EXPR
2655 * tree-affine.c (tree_to_aff_combination): Likewise.
2656 * c-typeck.c (build_unary_op): For pointers create the increment
2657 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
2658 for pointers.
2659 * gimplify.c (gimplify_self_mod_expr): Create a
2660 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2661 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
2662 * tree.def (POINTER_PLUS_EXPR): New tree code.
2663 * tree-predcom.c (ref_at_iteration): If we have a pointer
2664 type do the multiplication in sizetype.
2665 * tree-mudflap.c (mf_xform_derefs_1): Create a
2666 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2667 * tree-ssa-forwprop.c
2668 (forward_propagate_addr_into_variable_array_index):
2669 Don't expect there to be a cast for the index as that
2670 does not exist anymore.
2671 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
2672 instead of PLUS_EXPR.
2673 Don't check for the first operand of the POINTER_PLUS_EXPR
2674 was the index as it cannot be.
2675 Call forward_propagate_addr_into_variable_array_index with
2676 the SSA_NAME instead of the statement.
2677 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
2678 (compare_constant): Likewise.
2679 (copy_constant): Likewise.
2680 (compute_reloc_for_constant): Likewise.
2681 (output_addressed_constants): Likewise.
2682 (initializer_constant_valid_p): Likewise.
2683 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2684 Convert the MIN/MAX of the inner type to the outer
2685 type before comparing them.
2686 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
2687 POINTER_PLUS_EXPR instead of PLUS_EXPR.
2688 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
2689 of PLUS_EXPR for pointers.
2690 * tree-inline.c (estimate_num_insns_1): Handle
2691 POINTER_PLUS_EXPR.
2692 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2693 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2694 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
2695 instead of PLUS_EXPR for the pointer increment statement.
2696 (vect_update_ivs_after_vectorizer): For pointer types, create
2697 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
2698 MULT_EXPR in sizetype.
2699 (vect_gen_niters_for_prolog_loop): Add a cast when creating
2700 byte_misalign.
2701 * tree-object-size.c (plus_expr_object_size): Handle
2702 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
2703 code which is trying to figure out which side is a pointer and
2704 is the index.
2705 (check_for_plus_in_loops_1): Likewise.
2706 (check_for_plus_in_loops): Likewise.
2707 * c-common.c (pointer_int_sum): Create a
2708 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2709 * tree-ssa-structalias.c (handle_ptr_arith): Handle
2710 only POINTER_PLUS_EXPR. Removing all the extra
2711 code which is trying to figure out which side is a pointer and
2712 is the index.
2713 * tree-cfg.c (verify_expr): Add extra checking for pointers and
2714 PLUS_EXPR and MINUS_EXPR.
2715 Also add checking to make sure the operands of POINTER_PLUS_EXPR
2716 are correct.
2717 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
2718 with make_tree, instead of a pointer type.
2719 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
2720 for pointers instead of PLUS_EXPR.
2721 (s390_gimplify_va_arg): Likewise.
2722 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
2723 instead of PLUS_EXPR when doing addition on pointer
2724 types. Use sizetype for the second operand.
2725 (spu_gimplify_va_arg_expr): Likewise.
2726 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
2727 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
2728 a pointer. Don't create a BIT_AND_EXPR for pointer types.
2729 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
2730 for the pointer addition and also use size_int/sizetype
2731 for the offset.
2732 (ix86_gimplify_va_arg): Likewise.
2733 Perform BIT_AND_EXPR on sizetype arguments.
2734 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
2735 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
2736 for the pointer additions and also use size_int for the offsets.
2737 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
2738 additions and also use size_int for the offsets. Perform
2739 BIT_AND_EXPR on sizetype arguments.
2740 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
2741 POINTER_PLUS_EXPR for pointers and create the
2742 BIT_AND_EXPR in sizetype.
2743 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
2744 instead of PLUS_EXPR for pointer addition.
2745 (rs6000_va_start): Likewise.
2746 Also use sizetype for the offset.
2747 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
2748 as PLUS_EXPR/MINUS_EXPR.
2749 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
2750 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
2751 Don't use BIT_AND_EXPR on a pointer type, convert the
2752 expression to sizetype first.
2753 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
2754 for pointers.
2755 (mips_gimplify_va_arg_expr): Likewise.
2756 Don't create BIT_AND_EXPR in a pointer type.
2757
1d2b1d91
EC
27582007-06-15 Eric Christopher <echristo@apple.com>
2759
2760 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2761 (x86_64-*-darwin*): Ditto.
2762 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
2763 for above.
2764
e9f9692b
MW
27652007-06-15 Matthew Wilcox <matthew@wil.cx>
2766
2767 * doc/extend.texi: Document behavior of __attribute__((aligned))
2768 on typedefs.
1d2b1d91 2769
c3a1ef9d
MM
27702007-06-15 Mark Mitchell <mark@codesourcery.com>
2771
2772 * rtlanal.c (note_stores): Improve documentation.
2773
2f119dcc
BS
27742007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
2775
2776 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
2777 LOCAL_LABEL_PREFIX): Delete.
2778 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
2779 (bfin_internal_label): Delete.
2780
3353afbe
UB
27812007-06-15 Uros Bizjak <ubizjak@gmail.com>
2782
2783 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
2784 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
2785 otherwise define to LIBGCC2_TF_CEXT.
2786 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
2787 (LIBGCC_TF_CEXT): Ditto.
2788 (TF_SIZE): Ditto.
2789
203927fc
SP
27902007-06-14 Seongbae Park <seongbae.park@gmail.com>
2791
2792 PR rtl-optimization/32339
3353afbe
UB
2793 * df-scan.c (df_uses_record): Don't modify flags but just add to
2794 it for df_ref_record.
203927fc 2795
e89993b3
AP
27962007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
2797
2798 * tree-mudflap.c: Fix whitespace issues.
2799
83f6221b
KH
28002007-06-15 Kazu Hirata <kazu@codesourcery.com>
2801
2802 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
2803
5eafdd32
EC
28042007-06-14 Eric Christopher <echristo@apple.com>
2805
2806 * config/i386/sse.md (movdi_to_sse): Rewrite body.
2807 (movv4sf): Use gcc_unreachable instead of abort.
2808
4962b679
UB
28092007-06-14 Uros Bizjak <ubizjak@gmail.com>
2810
2811 PR target/32268
3353afbe 2812 * config/i386/sfp-machine.h (CMPtype): New define.
4962b679
UB
2813 (mach stubs): Use CMPtype instead of int as a return type.
2814
97943b3c
UB
28152007-06-14 Uros Bizjak <ubizjak@gmail.com>
2816
2817 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
2818 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
2819 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
2820 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
2821 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
2822 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
2823 config/soft-fp/soft-fp.h: Update from glibc CVS.
2824
3fcfad76
BS
28252007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
2826
2827 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
2828
90745823
RIL
28292007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2830
2831 PR target/32341
2832 * config/v850/v850.c: Include dataflow header file.
2833 (substitute_ep_register): Fix typo.
2834
04c3028a 28352007-06-14 Paolo Bonzini <bonzini@gnu.org>
77a1416d 2836
04c3028a 2837 * configure.ac: Fix earlier checkin.
77a1416d
L
2838 * configure: Regenerated.
2839
3bbd5a19
PB
28402007-06-14 Paolo Bonzini <bonzini@gnu.org>
2841
2842 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
2843 * aclocal.m4: Regenerate.
2844 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
2845 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
2846 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
2847 * configure: Regenerate.
77a1416d 2848 * Makefile.in (LOOSE_WARN): Subst loose_warn.
3bbd5a19 2849
77a1416d 2850 * Makefile.in (quickstrap): Build libgcc too.
3bbd5a19 2851
ab28cc38
PB
28522007-06-14 Paolo Bonzini <bonzini@gnu.org>
2853
2854 * configure.ac: Add --enable-checking=df. Explicitly mention that
2855 the variables are initialized as for "release".
2856 * df-core.c: Use it.
2857 * configure: Regenerate.
2858 * config.in: Regenerate.
2859
20dca97b
BW
28602007-06-14 Bob Wilson <bob.wilson@acm.org>
2861
2862 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
2863 validate_replace_rtx instead of replace_rtx.
2864 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
2865
76f5e200
DS
28662007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
2867
2868 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
2869 (DWARF2_UNWIND_INFO): Override default if configured with
2870 SJLJ EH disabled.
2871 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
2872 (ENDFILE_SPEC): Add crtend.o.
2873 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
2874 (ENDFILE_SPEC): Add crtend.o.
2875 (TARGET_USE_JCR_SECTION): Define.
2876 (MD_UNWIND_SUPPORT): Define for 32-bit target.
2877
2878 * config/i386/cygming-crtbegin.c: New file.
2879 * config/i386/cygming-crtend.c: New file.
2880
28812007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
2882
2883 * config/i386/w32-unwind.h: New file.
2884
ab47d43e
EC
28852007-06-13 Eric Christopher <echristo@apple.com>
2886
2887 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
2888 the user set a value below STACK_BOUNDARY.
2889
b64a6dbd
TS
28902007-06-13 Thiemo Seufer <ths@networkno.de>
2891
2892 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
2893 imply -lpthread for -pthread.
2894
efd7122b
KH
28952007-06-13 Kazu Hirata <kazu@codesourcery.com>
2896
2897 * basic-block.h: Remove the prototype for
2898 free_basic_block_vars.
2899 * cfglayout.h: Remove the prototype for
2900 insn_locators_initialize.
2901 * tree.h: Remove the prototype for emit_line_note.
2902
9c57e1e8
KH
2903 * tree-ssa-pre.c (mergephitemp): Remove.
2904 (init_pre): Don't use mergephitemp.
2905
b26f6ed7
EC
29062007-06-13 Eric Christopher <echristo@apple.com>
2907
2908 * config/i386/i386.c (override_options): If we've specified
2909 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2910
29dc9e20 29112007-06-13 Bob Wilson <bob.wilson@acm.org>
b26f6ed7 2912
29dc9e20
BW
2913 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
2914 is defined.
b26f6ed7 2915
1ca950ca
BS
29162007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
2917
2918 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
2919 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
2920 (eh_store_handler): New pattern.
2921 (eh_return): Emit it instead of a plain move.
2922
8d364104
UB
29232007-06-13 Uros Bizjak <ubizjak@gmail.com>
2924
2925 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
2926 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
2927 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
2928 def_builtin_const.
2929
44017a45
BS
29302007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
2931
2932 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
2933 (find_next_insn_start, find_load): New functions.
2934 (bfin_reorg): Use them to deal with the fact that parallel insns are
2935 no longer represented as a SEQUENCE.
2936
06063fa2
EB
29372007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2938
2939 * config/sparc/sparc.c (sparc_override_options): Initialize
2940 fpu mask correctly.
2941
eaf7f7e7
DK
29422007-06-13 Dave Korn <dave.korn@artimi.com>
2943
2944 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
2945 df_get_live_out.
2946
0d52bcc1
KH
29472007-06-13 Kazu Hirata <kazu@codesourcery.com>
2948
2949 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
2950 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
2951 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
2952 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
2953 tree-vect-transform.c: Fix comment typos. Follow spelling
2954 conventions.
2955
29562007-06-12 Seongbae Park <seongbae.park@gmail.com>
b718216c
SP
2957
2958 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
2959 to the exit block use set.
89a95777 2960 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
b718216c
SP
2961 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
2962 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
2963
0a090f42
SP
29642007-06-12 Seongbae Park <seongbae.park@gmail.com>
2965
2966 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2967 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
2968 to indicate an error.
7e08fa35
UB
2969 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
2970 New functions.
0a090f42
SP
2971 (dbg_cnt_process_opt): Print an error on a bad argument.
2972 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2973 * common.opt (-fdbg-cnt-list): New.
2974 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2975
773a7861
EB
29762007-06-12 Eric Botcazou <ebotcazou@adacore.com>
2977
2978 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2979 flag on ref-all pointers.
2980
4543943a
AP
29812007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
2982
2983 PR middle-end/31579
2984 * expr.c (expand_expr_addr_expr_1): Call expand_expr
2985 for the offset with the modifier as EXPAND_INITIALIZER
2986 if the modifier is EXPAND_INITIALIZER.
2987 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2988 a register if we had an overflow.
2989
4c8c70e0
KG
29902007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2991
2992 * real.c (real_isfinite): New.
2993 (real_sqrt): Use it.
2994 * real.h (real_isfinite): New.
2995 * builtins.c: Use it.
2996
058dcc25
ILT
29972007-06-12 Ian Lance Taylor <iant@google.com>
2998 Daniel Berlin <dberlin@dberlin.org>
2999
3000 PR libstdc++/29286
3001 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
3002 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
3003 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
3004 (DECL_NO_TBAA_P): Define.
3005 (struct tree_decl_common): Add no_tbaa_flag field.
3006 * tree-ssa-structalias.c (struct variable_info): Add
3007 no_tbaa_pruning field.
3008 (new_var_info): Initialize no_tbaa_pruning field.
3009 (unify_nodes): Copy no_tbaa_pruning field.
3010 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
3011 (dump_solution_for_var): Print no_tbaa_pruning flag.
3012 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
3013 callers.
3014 (compute_tbaa_pruning): New static function.
3015 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
3016 Call compute_tbaa_pruning.
3017 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
3018 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
3019 * gimple-low.c (lower_stmt): Likewise.
3020 * tree-gimple.c (is_gimple_stmt): Likewise.
3021 * tree-ssa-operands.c (get_expr_operands): Likewise.
3022 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3023 * tree-inline.c (estimate_num_insns_1): Likewise.
3024 (copy_result_decl_to_var): Likewise.
3025 * expr.c (expand_expr_real_1): Likewise.
3026 * tree-pretty-print.c (dump_generic_node): Likewise.
3027 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
3028 * omp-low.c (omp_copy_decl_2): Likewise.
3029 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
3030 * doc/c-tree.texi (Expression trees): Document
3031 CHANGE_DYNAMIC_TYPE_EXPR.
3032
52a39a4c
KG
30332007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3034
3035 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
3036 with !HONOR_NANS and !HONOR_INFINITIES.
3037 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3038
1a9075e2
TG
30392007-06-12 Tristan Gingold <gingold@adacore.com>
3040
3041 * gcov.c: Comments updated.
3042 (source_info): Add file_time field.
3043 (source_index): New variable.
3044 (mutiple_files): New variable.
3045 (generate_results): New function extracted from process_file.
3046 (process_file): Save and restore chain of functions, generate
3047 results and free structures only if not merging results.
3048 (release_structures): File names are now freed in create_file_names
3049 (create_file_names): Free previous file names.
3050 (find_source): File date is now read here and modifications in
3051 source files is checked here.
3052 (read_graph_file): Only reverse order of functions for the current
3053 object file.
3054 (make_gcov_file_name): Do not generate long names if input_name is
3055 NULL.
b26f6ed7 3056 (output_lines): If merging results do not display graph, data and
1a9075e2
TG
3057 runs informations.
3058 Checking source file modification is done in find_source.
3059
3060 * doc/gcov.texi: Append an s to sourcefile.
3061
b18e284e
BS
30622007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
3063
3064 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
3065 (forced_nop): New pattern.
3066 * config/bfin/bfin.c: Include "df.h".
3067 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
3068 (bfin_discover_loop): Use df_get_live_in instead of
3069 global_live_at_start.
3070 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
3071 df_analyze when done.
3072 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
3073 the insns. Use QImode for the final insn in a bundle. Call
3074 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
3075 gen_nop.
3076 (reorder_var_tracking_notes): New function.
3077 (bfin_reorg): Pass no argument to split_all_insns. Don't call
3078 update_life_info. Call df_analyze after scheduling and bundle
7e08fa35
UB
3079 generation. Call reorder_var_tracking_notes if generating these
3080 notes. Call df_finish_pass at the end.
b18e284e 3081
8c8fa927
DM
30822007-06-12 Dirk Mueller <dmueller@suse.de>
3083
fc78ca2b 3084 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
8c8fa927
DM
3085 a comparison, not an assignment.
3086
0e1a6f29
OH
30872007-06-12 Olivier Hainque <hainque@adacore.com>
3088
3089 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
3090 Request walking the subtrees only, leaving the current is_lhs/val_only
3091 untouched.
3092 (convert_non_local_reference): Likewise.
b26f6ed7 3093
beff4180
NS
30942007-06-12 Nathan Sidwell <nathan@codesourcery.com>
3095
3096 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
b26f6ed7 3097
18d08014
RG
30982007-06-12 Richard Guenther <rguenther@suse.de>
3099
3100 PR tree-optimization/15353
3101 PR tree-optimization/31657
3102 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
3103 * timevar.def: Add TV_TREE_IFCOMBINE.
3104 * tree-pass.h (pass_tree_ifcombine): Declare.
3105 * tree-ssa-ifcombine.c: New file.
3106 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
3107 * tree-flow.h (blocks_in_phiopt_order): Declare.
3108 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
3109 (tree-ssa-ifcombine.o): New dependencies.
3110
7f482dfe
UB
31112007-06-12 Uros Bizjak <ubizjak@gmail.com>
3112
3113 PR rtl-optimization/32293
3114 * combine.c (simplify_if_then_else): Truncate return from
3115 nonzero_bits() to correct mode.
3116
9883e373
UB
31172007-06-12 Uros Bizjak <ubizjak@gmail.com>
3118
3119 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
3120 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
3121
16b4cb48
DN
31222007-06-11 Diego Novillo <dnovillo@google.com>
3123
3124 * Makefile.in (reload1.o-warn): Remove.
3125
46cc2141
SP
31262007-06-11 Seongbae Park <seongbae.park@gmail.com>
3127
3128 * combine.c (subst): Use reg_overlap_mentioned_p
3129 instead of comparing register numbers directly.
3130
b0384c54
KZ
31312007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3132
3133 * reload1.c (mark_home_live_1): Use the mode parameter.
3134
0a41f3b2
KZ
31352007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3136
3137 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
3138 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
3139 word "deferred".
3140 * df-core.c: Ditto.
b26f6ed7 3141
6fb5fa3c
DB
31422007-06-11 Daniel Berlin <dberlin@dberlin.org>
3143
3144 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
3145
a91d32a4
UB
31462007-06-11 Uros Bizjak <ubizjak@gmail.com>
3147
3148 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
3149 from integer registers.
3150 (FP mode splitters): Handle TFmode.
3151
73fd4ad6
EB
31522007-06-11 Eric Botcazou <ebotcazou@adacore.com>
3153
3154 * tree-ssa-structalias.c (find_what_p_points_to): Return false
3155 for ref-all pointers that point-to anything.
3156
afcc986d
JM
31572007-06-11 Joseph Myers <joseph@codesourcery.com>
3158
3159 * config/arm/arm.c (arm_output_dwarf_dtprel,
3160 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
3161
0ea80eb6
BS
31622007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
3163
3164 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
3165 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
3166 to memory moves.
3167
b0464c88
RE
31682007-06-11 Rafael Avila de Espindola <espindola@google.com>
3169
3170 * gcc/tree.c (signed_or_unsigned_type_for): New.
3171 (unsigned_type_for): Use signed_or_unsigned_type_for.
3172 (signed_type_for): Use signed_or_unsigned_type_for.
3173 * gcc/tree.h (signed_or_unsigned_type_for): New.
3174 (get_signed_or_unsigned_type): Remove.
3175 * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
3176 lang_hooks.types.signed_type
3177 (size_diffop): Likewise.
3178 (all_ones_mask_p): Likewise.
3179 (build_range_check): Likewise.
3180 (fold_cond_expr_with_comparison): Likewise.
3181 (fold_cond_expr_with_comparison): Likewise.
3182 (unextend): Likewise.
3183 (extract_muldiv_1): Likewise.
3184 (fold_single_bit_test_into_sign_test): Likewise.
3185 (fold_binary): Likewise.
3186 (fold_ternary): Likewise.
3187 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
3188 instead of get_signed_or_unsigned_type.
3189 * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
3190 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3191 * gcc/expr.c (signed_or_unsigned_type_for): Use
3192 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
3193 * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
3194 (lhd_signed_or_unsigned_type): Remove.
3195 * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
3196 signed_or_unsigned_type.
3197 (lhd_signed_or_unsigned_type): Remove.
3198 * gcc/expmed.c (make_tree): Use signed_type_for instead of
3199 lang_hooks.types.signed_type.
3200 * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
3201 c_common_signed_type instead of lang_hooks.types.signed_type.
3202 (c_common_unsigned_type): New.
3203 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
3204 (shorten_compare): Use c_common_unsigned_type instead of
3205 c_common_signed_or_unsigned_type.
3206 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
3207 unsigned_type_for.
3208 * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
3209 lang_hooks.types.signed_type.
3210 * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3211 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
3212 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
3213 * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
3214 instead of unsigned_type_for.
3215 * gcc/c-decl.c (groakdeclarator): Likewise.
3216 * gcc/c-typeck.c (convert_for_assignment): Likewise.
3217 * gcc/c-common.h (c_common_unsigned_type): New.
3218
69c553ef
UB
32192007-06-11 Uros Bizjak <ubizjak@gmail.com>
3220
3221 PR target/32280
3222 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
3223 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
3224
f1da2df1
UB
32252007-06-11 Uros Bizjak <ubizjak@gmail.com>
3226
3227 PR middle-end/32279
3228 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
3229 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
3230
51c0074e
JS
32312007-06-10 Jan Sjodin <jan.sjodin@amd.com>
3232 Sebastian Pop <sebpop@gmail.com>
3233
3234 * lambda-code.c (remove_iv): New.
3235 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
3236
79f5e442
ZD
32372007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
3238
3239 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
3240 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
3241 * tree-ssa-loop-prefetch.c: Include optabs.h.
3242 (FENCE_FOLLOWING_MOVNT): New macro.
3243 (struct mem_ref): Add independent_p and storent_p fields.
3244 (record_ref): Initalize the new fields.
3245 (gather_memory_references_ref): Return true if the reference
3246 could be analysed.
3247 (gather_memory_references): Check whether all memory accesses
3248 in loop were recorded.
3249 (should_issue_prefetch_p): Return false for nontemporal stores.
3250 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
3251 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
3252 (determine_loop_nest_reuse): Detect independent memory references.
3253 (loop_prefetch_arrays): Call mark_nontemporal_stores.
3254 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
3255 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
3256 * config/i386/i386.h (x86_mfence): Declare.
3257 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
3258 * config/i386/i386.c (x86_mfence): New variable.
3259 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
3260
3261 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
3262 * optabs.c (init_optabs): Initialize storent_optab.
3263 * optabs.h (enum optab_index): Add OTI_storent.
3264 (storent_optab): Declare.
3265 * genopinit.c (optabs): Add initialization for storent_optab.
3266 * tree.h (MOVE_NONTEMPORAL): New macro.
3267 * expr.c (expand_assignment, store_expr, store_constructor_field,
3268 store_constructor, store_field, expand_expr_real_1): Propagate
3269 nontemporality of the expanded store.
3270 (emit_storent_insn): New function.
3271 * expr.h (expand_assignment, store_expr): Declaration changed.
3272 * function.c (assign_parm_setup_reg): Pass false as nontemporality
3273 to expand_assignment.
3274 * stmt.c (expand_asm_expr): Ditto.
3275 * calls.c (initialize_argument_information): Pass false as
3276 nontemporality to store_expr.
3277 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
3278 storentsi): New.
3279
6bdff197
DB
32802007-06-09 Daniel Berlin <dberlin@dberlin.org>
3281
3282 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
3283 parameter, use it.
3284 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
3285
55edccf4
DB
32862007-06-09 Daniel Berlin <dberlin@dberlin.org>
3287
3288 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
3289 and allow DECL_P here.
3290
9e824336
ZD
32912007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
3292
3293 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
3294 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
3295 track of the size of the expression.
3296 * cfghooks.c (merge_blocks): Remove block from loops structure only
3297 after call of the merge_blocks hook.
3298
0da300cd
TT
32992007-06-09 Tom Tromey <tromey@redhat.com>
3300
3301 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
3302 (deprecated_state): Removed.
3303 (start_decl): Update.
3304 (enum deprecated_states): Moved earlier.
3305 (groktypename): Update.
3306 (push_parm_decl): Likewise.
3307 (grokfield): Likewise.
3308 (start_function): Likewise.
3309
9c4ed267
ILT
33102007-06-09 Ian Lance Taylor <iant@google.com>
3311
3312 PR tree-optimization/32169
3313 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
3314 CONVERT_EXPR, check whether min and max both converted to an
3315 overflow infinity representation.
3316
36808d08
EB
33172007-06-08 Eric Botcazou <ebotcazou@adacore.com>
3318
3319 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
3320 not inserted on the edge.
3321
582711fe
BW
33222007-06-08 Bob Wilson <bob.wilson@acm.org>
3323
3324 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
3325 instructions if they are supported.
3326 (__divsi3, __umodsi3, __modsi3): Likewise.
3327 (__ashldi3, __ashrdi3, __lshrdi3): New.
3328 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
b26f6ed7 3329
792ed98b 33302007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
9510f6eb 3331 Tony Linthicum <tony.linthicum@amd.com>
792ed98b 3332
13c59415 3333 * doc/invoke.texi: Add fvect-cost-model flag.
792ed98b
HJ
3334 * common.opt (fvect-cost-model): New flag.
3335 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
3336 cost fields in stmt_vec_info struct for STMT.
3337 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
3338 fields in stmt_vec_info struct and access functions for the same.
3339 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
3340 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
3341 load, store and vector to scalar operation.
3342 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
3343 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
3344 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
3345 (TARG_VEC_STORE_COST): Define cost of vector store.
3346 (vect_estimate_min_profitable_iters): Define new function.
3347 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
3348 check to evaluate if loop iterations are less than minimum profitable
3349 iterations determined by cost model or minimum vect loop bound defined
3350 by user, whichever is more conservative.
3351 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
3352 run-time check to evaluate if loop iterations are less than minimum
3353 profitable iterations determined by cost model or minimum vect loop
3354 bound defined by user, whichever is more conservative.
3355 (vect_estimate_min_profitable_iterations): New function to estimate
3356 mimimimum iterartions required for vector version of loop to be
3357 profitable over scalar version.
3358 (vect_model_reduction_cost): New function.
3359 (vect_model_induction_cost): New function.
3360 (vect_model_simple_cost): New function.
3361 (vect_cost_strided_group_size): New function.
3362 (vect_model_store_cost): New function.
3363 (vect_model_load_cost): New function.
3364 (vectorizable_reduction): Call vect_model_reduction_cost during
3365 analysis phase.
3366 (vectorizable_induction): Call vect_model_induction_cost during
3367 analysis phase.
3368 (vectorizable_load): Call vect_model_load_cost during analysis phase.
3369 (vectorizable_store): Call vect_model_store_cost during analysis phase.
3370 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
b26f6ed7 3371 vectorizable_promotion, vectorizable_demotion): Call
792ed98b
HJ
3372 vect_model_simple_cost during analysis phase.
3373
c8e2516c
SB
33742007-06-08 Simon Baldwin <simonb@google.com>
3375
3376 * reg-stack.c (get_true_reg): Readability change. Moved default case
3377 label into direct switch statement scope.
3378
2c5cfd1f
SB
33792007-06-08 Simon Baldwin <simonb@google.com>
3380
3381 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
3382 in gcc_assert() with '==' comparison.
3383
837a8954
UB
33842007-06-08 Uros Bizjak <ubizjak@gmail.com>
3385
3386 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
3387 TARGET_ABM handling of x86_popcnt variable.
3388
5513e239
UB
33892007-06-08 Uros Bizjak <ubizjak@gmail.com>
3390
3391 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
3392 __builtin_copysignq and __builtin_infq built-in functions.
3393
291d9a2d
UB
33942007-06-08 Uros Bizjak <ubizjak@gmail.com>
3395
3396 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
3397 SSE4.2 section. Correct built-in function names in SSE4A section.
3398
459e691a
UB
33992007-06-08 Uros Bizjak <ubizjak@gmail.com>
3400
3401 PR tree-optimization/32243
3402 * tree-vect-transform.c (vectorizable_type_promotion): Move check
3403 for ncopies after ratio check between nunits_out and nunits_in.
3404 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
3405
0d266580
DN
34062007-06-08 Dorit Nuzman <dorit@il.ibm.com>
3407
3408 PR tree-optimization/32224
3409 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
3410 vectorization upon a non GIMPLE_MODIFY_STMT.
3411
4aa97413
CB
34122007-06-08 Christian Bruel <christian.bruel@st.com>
3413
3414 PR target/29953
3415 * config/sh/sh.md (doloop_end): New pattern and splitter.
3416 * loop-iv.c (simple_rhs_p): Check for hardware registers.
b26f6ed7 3417
1fc3998d
ZD
34182007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
3419
3420 PR middle-end/32209
3421 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
3422 functions.
3423 (verify_dominators): Do not change dominance tree.
3424
32a7ab3d
KK
34252007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
3426
3427 * config/sh/constraints.md: New file.
3428 * config/sh/sh.c: Include tm-constrs.h.
3429 (reg_class_from_letter): Remove.
3430 (prepare_cbranch_operands): Use satisfies_constraint_*
3431 function instead of macro.
3432 (andcosts, broken_move, sh_secondary_reload): Likewise.
3433 * config/sh/predicates.md (trapping_target_operand): Likewise.
3434 (and_operand, arith_operand, arith_reg_or_0_operand,
3435 cmp_operand, logical_operand, target_operand,
3436 ua_address_operand, ua_offset, xor_operand): Likewise.
3437 * config/sh/sh.md: Include constraints.md.
3438 (*movsicc_t_false): Use satisfies_constraint_* function
3439 instead of macro.
3440 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
3441 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
3442 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
3443 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
3444 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
3445 (REG_CLASS_FROM_CONSTRAINT): Remove.
3446 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
3447 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
3448 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
3449 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
3450 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
3451 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
3452 function instead of macro.
3453 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3454 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
3455 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
3456 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
3457 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
3458 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
3459 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
3460 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
3461 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
3462 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
3463 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
3464 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
3465 EXTRA_CONSTRAINT_STR): Likewise.
3466 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
3467
2734e1c3
GK
34682007-06-07 Geoffrey Keating <geoffk@apple.com>
3469
3470 * config/i386/darwin.h (STACK_BOUNDARY): Define.
3471
c1ae8be5
SM
34722007-06-07 Simon Martin <simartin@users.sourceforge.net>
3473
3474 PR c++/30759
3475 * c-common.h (flag_cpp0x): Replaced by...
3476 (cxx_dialect): ... this new variable specifying the C++ dialect that
3477 is used.
3478 * c-common.c (flag_cpp0x): Removed.
3479 (cxx_dialect): Defined.
3480 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
3481 cxx_dialect.
3482 * c-opts.c (c_common_post_options): Likewise.
3483 (set_std_cxx98): Set cxx_dialect to cxx98.
3484 (set_std_cxx0x): Set cxx_dialect to cxx0x.
3485
2734e1c3 34862007-06-07 Geoffrey Keating <geoffk@apple.com>
e46b55d0
GK
3487 Hui-May Chang <hm.chang@apple.com>
3488
3489 * doc/invoke.texi (Darwin Options): Update documentation for
3490 -mmacosx-version-min.
3491 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
3492 * config/darwin-driver.c: New file.
3493 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
3494 * config/t-darwin (darwin-driver.o): New rule.
3495
3496 * config/darwin-c.c (version_as_macro): Ignore low digit.
3497
edc5bbcd
UB
34982007-06-07 Uros Bizjak <ubizjak@gmail.com>
3499
3500 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
3501 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
3502 (CSGNMODE): New mode macro.
3503 (CSGNVMODE): New mode attribute.
3504 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
3505 expander using CSGNMODE mode macro. Handle TFmode.
3506 (copysign<mode>3_const): Rename from copysignsf3_const and
3507 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
3508 Handle TFmode.
3509 (copysign<mode>3_var): Rename from copysignsf3_var and
3510 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
3511 Handle TFmode.
3512 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
3513 mode macro. Handle TFmode.
3514 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
3515 (iortf3, *iortf3): Ditto.
3516 (xortf3, *xortf3): Ditto.
3517 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
3518 TFmode and TImode masks.
3519 (ix86_expand_copysign): Expand TFmode copysign insn.
3520 (IX86_BUILTIN_INFQ): New.
3521 (IX86_BUILTIN_FABSQ): Ditto.
3522 (IX86_BUILTIN_COPYSIGNQ): Ditto.
3523 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
3524 [__builtin_fabsq]: Ditto.
3525 [__builtin_copysignq]: Ditto.
3526 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
3527 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
3528 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
9510f6eb 3529 ix86_expand_binop_builtin().
edc5bbcd 3530
125253d9
BW
35312007-06-07 Bob Wilson <bob.wilson@acm.org>
3532
3533 * config/xtensa/lib1funcs.asm: Clean up whitespace.
3534
bb27eeda
SE
35352007-06-07 Steve Ellcey <sje@cup.hp.com>
3536
3537 PR target/31850
3538 * rtl.h (push_to_sequence2): New.
3539 * emit-rtl.c (push_to_sequence2): New.
3540 * function.c (assign_parm_data_all): Add new fields.
b26f6ed7 3541 (assign_parm_setup_block): Call push_to_sequence2 instead of
bb27eeda
SE
3542 push_to_sequence.
3543 (assign_parm_setup_reg): Ditto.
3544 (assign_parm_setup_stack): Ditto.
3545 (assign_parms_unsplit_complex): Ditto.
3546 (assign_parms): Change field name.
3547
1b0cfaa6
ZD
35482007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
3549
3550 PR tree-optimization/32220
3551 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
3552 phi node is reached before defining statement.
3553
1344284e
AP
35542007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
3555
3556 PR tree-opt/32231
3557 * tree-vect-transform.c (vectorizable_call): Call update_stmt
3558 after changing the right hand side of the assignment.
3559
7a1eca83
EC
35602007-06-06 Eric Christopher <echristo@apple.com>
3561
3562 * config.gcc (i?86-*-darwin*): Remove arch parameter.
3563 (x86_64-*-darwin*): Ditto.
3564 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
3565 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3566
c22940cd
TN
35672007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
3568
3569 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
3570 coding conventions.
3571 (add_key): Likewise.
3572 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
3573 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
3574 variable names.
7e08fa35
UB
3575 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
3576 macros.
c22940cd
TN
3577 (add_cost_one_coalesce): Likewise.
3578 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
3579 variable names. Rename orig to orig_name for consistency.
7e08fa35
UB
3580 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
3581 coding conventions.
3582 (cprop_into_successor_phis): Avoid using C++ keywords as variable
3583 names.
c22940cd
TN
3584 (record_equivalences_from_stmt): Likewise.
3585 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
3586 the coding conventions.
3587 (memory_ssa_name_same): Likewise.
3588 (dse_optimize_stmt): Likewise.
3589 (dse_record_phis): Likewise.
3590 (dse_finalize_block): Likewise.
3591 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
3592 keywords as variable names.
3593 (may_move_till): Cast according to the coding conventions.
3594 (force_move_till_expr): Avoid using C++ keywords as variable names.
3595 (force_move_till): Cast according to the coding conventions.
3596 (memref_hash): Likewise.
3597 (memref_eq): Likewise.
3598 (gather_mem_refs_stmt): Likewise.
7e08fa35
UB
3599 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
3600 using C++ keywords as variable names.
c22940cd
TN
3601 (idx_find_step): Cast according to the coding conventions.
3602 (idx_record_use): Likewise.
3603 (find_depends): Likewise.
3604 (prepare_decl_rtl): Likewise.
3605 (mbc_entry_hash): Likewise.
3606 (mbc_entry_eq): Likewise.
3607 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
3608 (simplify_replace_tree): Avoid using C++ keywords as variable names.
3609 (idx_infer_loop_bounds): Cast according to the coding conventions.
3610 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3611 * tree-ssa-math-opts.c (occ_new ): Likwise.
3612 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
3613 macros.
7e08fa35
UB
3614 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
3615 variable names.
c22940cd
TN
3616 (add_use_op): Likewise.
3617 (add_vop): Likewise.
3618 (add_vuse_op): Likewise.
3619 (add_vdef_op): Likewise.
3620 (get_expr_operands): Likewise.
3621 (push_stmt_changes): Use type safe memory macros.
3622 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
3623 keywords as variable names.
3624 (conditional_replacement): Likewise.
3625 (minmax_replacement): Likewise.
3626 (abs_replacement): Likewise.
3627 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
3628 coding conventions.
3629 (insert_fake_stores): Avoid using C++ keywords as variable names.
3630 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
3631 conventions.
3632 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
3633 (heapvar_insert): Use type safe memory macros.
3634 (new_var_info): Cast according to the coding conventions.
3635 (new_constraint): Likewise.
3636 (remove_preds_and_fake_succs): Use type safe memory macros.
3637 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
3638 conventions.
3639 (thread_single_edge): Likewise.
3640 (thread_through_loop_header): Likewise.
3641
d6b0b376
EC
36422007-06-06 Eric Christopher <echristo@apple.com>
3643
3644 * config/i386/i386.c (override_options): Move handling
3645 of TARGET_SUBTARGET* earlier.
3646
7258e976
PB
36472007-06-06 Paolo Bonzini <bonzini@gnu.org>
3648
3649 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
3650 use %n on printf.
3651
a7b87f73
ZD
36522007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
3653
3654 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
3655 emited outside of basic block.
3656 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
3657 the created blocks.
3658 * rtl.h (delete_insn_chain): Declaration changed.
3659 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
3660 non-removed insns.
3661 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
3662 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
d6b0b376 3663 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
a7b87f73
ZD
3664 to delete_insn_chain.
3665 (rtl_verify_flow_info_1): Verify that the insns in header and footer
3666 do not have bb field set.
3667 (rtl_verify_flow_info): Verify that insns between basic blocks do not
3668 have bb field set.
3669 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
3670 * cfgcleanup.c (try_optimize_cfg): Ditto.
3671
45222d4a
TN
36722007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
3673
3674 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
3675 (lambda_body_vector_new): Use type safe memory macros.
3676 (lambda_linear_expression_new): Likewise.
3677 (lambda_loopnest_new): Likewise.
3678 (lambda_lattice_new): Likewise.
3679 (replace_uses_equiv_to_x_with_y): Cast according to the coding
3680 conventions. Use type safe memory macros.
3681 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
3682 (lambda_body_vector_s): Likewise.
3683 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
3684 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
3685
68c834d0
RB
36862007-06-06 Richard Guenther <rguenther@suse.de>
3687
3688 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
3689 if we need to schedule cfg_cleanup.
3690 (tree_ssa_forward_propagate_single_use_vars): Do so.
3691
39ac2ffc
ILT
36922007-06-06 Ian Lance Taylor <iant@google.com>
3693
3694 * fold-const.c (merge_ranges): If range_successor or
3695 range_predecessor fail, just return 0.
3696
9f106823
UB
36972007-06-06 Uros Bizjak <ubizjak@gmail.com>
3698
3699 PR tree-optimization/32216
3700 * tree-vectorizer.c (supportable_widening_operation): Determine
3701 signedness of FIX_TRUNC_EXPR from output operand.
3702 (supportable_narrowing_operation): Ditto.
3703 * tree-vect-generic.c (expand_vector_operations_1): Determine
3704 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
3705 from input operand.
3706
9415ab7d
TN
37072007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
3708
3709 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
9f106823
UB
3710 (struct pta): ...from here. Change flags to unsigned to avoid
3711 excessive casting (as it is used as a bit mask).
9415ab7d
TN
3712 (override_options): Add casts according to the coding convenventions.
3713 (x86_64_elf_unique_section): Likewise.
3714 (examine_argument): Avoid using C++ keywords as variable names.
3715 (construct_container): Likewise.
3716 (legitimize_pic_address): Likewise.
3717 (get_dllimport_decl): Cast according to the coding conventions. Use
3718 type safe memory macros.
3719 (legitimize_address): Cast according to the coding conventions.
3720 (emit_i387_cw_initialization): Corrected the type of slot to enum
3721 ix86_stack_slot.
3722 (ix86_init_machine_status): Use type safe memory macros.
3723 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
3724 (bdesc_pcmpistr): Likewise.
3725 (bdesc_crc32): Likewise.
3726 (bdesc_sse_3arg): Likewise.
3727 (bdesc_2arg): Likewise.
3728 (bdesc_1arg): Likewise.
3729 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
3730 (ix86_expand_sse_pcmpistr): Likewise.
3731 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
3732 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
3733 int to match the langhook definition.
3734 (ix86_builtin_conversion): Change the type of code to unsigned init to
3735 match the langhook definition.
3736 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
3737 names.
3738 (ix86_preferred_output_reload_class): Likewise.
3739 (ix86_cannot_change_mode_class): Likewise.
3740 (ix86_memory_move_cost): Likewise.
3741 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
3742 avoid excessive casting later on.
3743 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
3744
f28eb39c
UB
37452007-06-06 Uros Bizjak <ubizjak@gmail.com>
3746
3747 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
3748 as flags setting insn.
3749 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
3750
37512007-06-06 Uros Bizjak <ubizjak@gmail.com>
3752
3753 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
3754 (UNSPEC_ROUND): New.
3755 ("sse4_1_round<mode>2"): New insn pattern.
3756 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
3757 SSE4.1 targets.
3758 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
3759 expander using SSEMODEF mode macro. Expand using
3760 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3761 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
3762 expander using SSEMODEF mode macro. Expand using
3763 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3764 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
3765 expander using SSEMODEF mode macro. Expand using
3766 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3767 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
3768 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
3769 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
3770 UNSPEC_ROUNDS.
3771
69f2880c
JS
37722007-06-06 Jan Sjodin <jan.sjodin@amd.com>
3773 Sebastian Pop <sebpop@gmail.com>
3774
3775 * lambda.h (build_linear_expr): New.
d6b0b376 3776 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
69f2880c
JS
3777 Use build_linear_expr, call fold and force_gimple_operand.
3778 (lambda_loopnest_to_gcc_loopnest): Check that there is
3779 something to insert.
3780 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
3781
f7fd775f
JW
37822007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3783
3784 PR preprocessor/23479
3785 * doc/extend.texi: Document the 0b-prefixed binary integer
3786 constant extension.
d6b0b376 3787
1a5f8b89
UB
37882007-06-05 Uros Bizjak <ubizjak@gmail.com>
3789
3790 PR tree-optimization/32215
3791 * tree-vectorizer.c (supportable_widening_operation): Return false
3792 for unsupported FIX_TRUNC_EXPR tree code.
3793 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
3794
52ff33d0
NF
37952007-06-06 Nathan Froyd <froydnj@codesourcery.com>
3796
3797 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
3798 register on SPE targets. Change documentation to reflect
3799 reality.
3800 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3801 Change FIXED_SCRATCH to 14 and document why we're keeping r14
3802 out of the register allocation pool.
3803 (rs6000_reg_live_or_pic_offset_p): New function.
3804 (rs6000_emit_prologue): Move the actual saving of LR up to free
3805 r0 for holding r11. Split saving of SPE 64-bit registers into
3806 its own case. Ensure that offsets will always be in-range for
3807 'evstdd' by using r11 as a scratch register to point at the start
3808 of the SPE save area. Save r11 if necessary, as it is the static
3809 chain register.
3810 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
3811 into its own case. Ensure that offsets will always be in-range
3812 for 'evldd' by using r11 as a scratch register to point at the
3813 start of the SPE save area. Also adjust r11 when restoring
3814 the stack pointer to compensate for pre-loading r11.
3815
ae50c0cb
TN
38162007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
3817
3818 * cfg.c (init_flow): Use type safe memory macros.
3819 (alloc_block): Likewise.
3820 (unchecked_make_edge): Likewise.
3821 (dump_flow_info): Avoid using C++ keywords as variable names.
3822 (copy_original_table_clear): Cast according to the coding conventions.
3823 (copy_original_table_set): Likewise.
3824 * cfgexpand (label_rtx_for_bb): Likewise.
7fc40a9c 3825 (expand_gimple_basic_block): Likewise.
ae50c0cb 3826 * cfghooks.c (dump_bb): Likewise.
f28eb39c
UB
3827 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
3828 variable names.
ae50c0cb
TN
3829 (lv_add_condition_to_bb): Likewise.
3830 * cfglayout (relink_block_chain): Cast according to the coding
3831 conventions.
3832 (fixup_reorder_chain): Likewise.
3833 (fixup_fallthru_exit_predecessor): Likewise.
3834 * cfgloop.c (glb_enum_p): Likewise.
3835 (get_exit_description): Likewise.
3836 (dump_recorded_exit): Likewise.
3837 * cfgloop.h (enum loop_estimation): Move out of struct scope...
3838 (struct loop): ... from here.
f28eb39c
UB
3839 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
3840 conventions.
ae50c0cb
TN
3841 * cfgrtl.c (rtl_create_basic_block): Likewise.
3842 (rtl_split_block): Likewise.
3843 (rtl_dump_bb): Likewise.
3844 (cfg_layout_split_block): Likewise.
3845 (init_rtl_bb_info): Use typesafe memory macros.
3846
3847 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
3848 * graphds.h: Updated all usages of edge to graph_edge.
3849 * graphds.c: Likewise.
3850 * cfgloopanal.c: Likewise.
3851
3fe5bcaf
ILT
38522007-06-05 Ian Lance Taylor <iant@google.com>
3853
3854 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
3855 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
3856 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
3857 expression.
3858 (test_for_singularity): Likewise.
3859
a176d60f
L
38602007-06-05 H.J. Lu <hongjiu.lu@intel.com>
3861
3862 * config/i386/constraints.md ("Y2"): Replaced by ...
3863 ("Yt"): This.
3864 * config/i386/i386.md: Likewise.
3865 * config/i386/mmx.md: Likewise.
3866 * config/i386/sse.md: Likewise.
3867
c3b9a8d6
L
38682007-06-05 H.J. Lu <hongjiu.lu@intel.com>
3869
3870 * config/i386/constraints.md ("z"): Replaced by ...
3871 ("Y0"): This.
3872 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
3873 (sse4_1_blendvps): Likewise.
3874 (sse4_1_pblendvb): Likewise.
3875 (sse4_2_pcmpestr): Likewise.
3876 (sse4_2_pcmpestrm): Likewise.
3877 (sse4_2_pcmpestr_cconly): Likewise.
3878 (sse4_2_pcmpistr): Likewise.
3879 (sse4_2_pcmpistrm): Likewise.
3880 (sse4_2_pcmpistr_cconly): Likewise.
3881
b8ff1d5b
RL
38822007-06-05 Razya Ladelsky <razya@il.ibm.com>
3883
c3b9a8d6
L
3884 * matrix-reorg.c (transform_access_sites): Fix computation.
3885 (transform_allocation_sites): Same.
b8ff1d5b 3886
cb482895
UB
38872007-06-05 Uros Bizjak <ubizjak@gmail.com>
3888
cc55c4b0
UB
3889 * config/i386/i386.c (override_options): Use
3890 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
3891
38922007-06-05 Uros Bizjak <ubizjak@gmail.com>
3893
3894 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
cb482895
UB
3895 (nonimm_not_xmm0_operand): Ditto.
3896 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
3897 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
3898 as operand[2] predicate. Require "z" class XMM register for
3899 operand[3]. Adjust asm template.
3900 ("sse4_1_blendvpd"): Ditto.
3901 ("sse4_1_pblendvb"): Ditto.
3902 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
3903 force op2 into xmm0 register for variable blend instructions.
3904
7114359f
TT
39052007-06-04 Tom Tromey <tromey@redhat.com>
3906
3907 * c-tree.h (start_enum): Update.
3908 (build_enumerator): Likewise.
3909 * c-decl.c (enum_next_value): Removed.
3910 (enum_overflow): Likewise.
3911 (start_enum): Add c_enum_contents argument. Don't use globals.
3912 (build_enumerator): Likewise.
3913 * c-tree.h (struct c_enum_contents): New struct.
3914
762f7d9d
TT
39152007-06-04 Tom Tromey <tromey@redhat.com>
3916
3917 * c-common.c (c_common_get_alias_set): Fix indentation.
3918
9a46cc16
ILT
39192007-06-04 Ian Lance Taylor <iant@google.com>
3920
3921 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
3922 to overflow, reduce overflow infinity to regular infinity.
3923 (vrp_var_may_overflow): New static function.
3924 (vrp_visit_phi_node): Check vrp_var_may_overflow.
3925
b9d49351
KH
39262007-06-04 Kazu Hirata <kazu@codesourcery.com>
3927
3928 * stor-layout.c (layout_type): Remove duplicate code.
3929
8de7ef2a
UB
39302007-06-04 Uros Bizjak <ubizjak@gmail.com>
3931
3932 PR c/32191
3933 * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
3934 before build_common_builtin_nodes ().
3935
15eb3a2e
SE
39362007-06-04 Steve Ellcey <sje@cup.hp.com>
3937
3938 PR target/31733
3939 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
3940
68c834d0 39412007-06-04 Jan Hubicka <jh@suse.cz>
c443019c
JH
3942
3943 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
3944 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
3945 instead of _stat version.
3946
49379cb1
ZD
39472007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
3948
3949 PR tree-optimization/32194
3950 * tree-predcom.c (determine_offset): Check that both references have
3951 the same type.
3952
66f97d31
ZD
39532007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
3954
3955 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
3956 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
3957 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
3958 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
3959 Add argument to iterate_fix_dominators call.
3960 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
3961 * gcse.c (hoist_code): Change domby to vector.
3962 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
3963 Add argument to iterate_fix_dominators call.
3964 * loop-doloop.c (doloop_modify): Changed recount_dominator to
3965 recompute_dominator.
3966 * lambda-code.c (perfect_nestify): Ditto.
3967 * cfgloopanal.c: Include graphds.h.
3968 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
3969 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
3970 (mark_irreducible_loops): Use graphds_scc. Remove argument from
3971 add_edge call.
3972 * graphds.c: New file.
3973 * graphds.h: New file.
3974 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
3975 (get_dominated_by, get_dominated_by_region): Change return type to
3976 vector.
3977 (verify_dominators): Recompute all dominators and compare the results.
3978 (recount_dominator): Renamed to ...
3979 (recompute_dominator): ... this. Do not check that the block is
3980 dominated by entry.
3981 (iterate_fix_dominators): Reimplemented.
3982 (prune_bbs_to_update_dominators, root_of_dom_tree,
3983 determine_dominators_for_sons): New functions.
3984 * et-forest.c (et_root): New function.
3985 * et-forest.h (et_root): Declare.
3986 * Makefile.in (graphds.o): Add.
3987 (cfgloopanal.o): Add graphds.h dependency.
3988 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
3989 * basic-block.h (get_dominated_by, get_dominated_by_region,
3990 iterate_fix_dominators): Declaration changed.
3991 (recount_dominator): Renamed to ...
3992 (recompute_dominator): ... this.
3993 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
3994 (thread_through_all_blocks): Do not free dominance info.
3995
b6a9c30c
AS
39962007-06-03 Andreas Schwab <schwab@suse.de>
3997
3998 * config/m68k/m68k.c (override_options): Don't override
3999 REAL_MODE_FORMAT.
4000 * config/m68k/m68k-modes.def (SF, DF): Define to use
4001 motorola_single_format and motorola_double_format, resp.
4002 * real.c (motorola_single_format): Renamed from
4003 coldfire_single_format.
4004 (motorola_double_format): Renamed from coldfire_double_format.
4005 (encode_ieee_extended): Generate a proper canonical NaN image
4006 respecting canonical_nan_lsbs_set.
4007 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
4008 true.
4009 * real.h: Adjust declarations.
4010
439211a0
KK
40112007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
4012
4013 PR target/32163
4014 * config/sh/sh.md (symGOT_load): Don't schedule insns when
4015 the symbol is generated with the stack protector.
4016
2bccb817
KH
40172007-06-03 Kazu Hirata <kazu@codesourcery.com>
4018
4019 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
4020 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
4021 "interrupt".
4022 * doc/extend.texi (interrupt): Mention m68k.
4023
c7a69424
UB
40242007-06-02 Uros Bizjak <ubizjak@gmail.com>
4025
c7a69424 4026 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
57d47da6 4027 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
c7a69424
UB
4028 (ix86_expand_sse_pcmpestr): Do not check operands for
4029 "register_operand", when insn operand predicate is "register_operand".
4030 (ix86_expand_sse_pcmpistr): Ditto.
4031
06f4e35d
L
40322007-06-02 H.J. Lu <hongjiu.lu@intel.com>
4033 Uros Bizjak <ubizjak@gmail.com>
4034
4035 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
4036 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
4037 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
4038 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
4039 * config/i386/constraints.md ("z"): New register constraint
4040 for members of SSE_FIRST_REG class.
4041 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
4042 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
4043 SSE_FIRST_REG class.
4044 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
4045 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
4046 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
4047 (IX86_BUILTIN_PCMPESTRM128): Likewise.
4048 (IX86_BUILTIN_PCMPESTRA128): Likewise.
4049 (IX86_BUILTIN_PCMPESTRC128): Likewise.
4050 (IX86_BUILTIN_PCMPESTRO128): Likewise.
4051 (IX86_BUILTIN_PCMPESTRS128): Likewise.
4052 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
4053 (IX86_BUILTIN_PCMPISTRI128): Likewise.
4054 (IX86_BUILTIN_PCMPISTRM128): Likewise.
4055 (IX86_BUILTIN_PCMPISTRA128): Likewise.
4056 (IX86_BUILTIN_PCMPISTRC128): Likewise.
4057 (IX86_BUILTIN_PCMPISTRO128): Likewise.
4058 (IX86_BUILTIN_PCMPISTRS128): Likewise.
4059 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
4060 (struct builtin_description): Change "flag" field to unsigned.
4061 (bdesc_pcmpestr): New builtin description table.
4062 (bdesc_pcmpistr): Likewise.
4063 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
4064 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
4065 Initialize pcmp[ei]str[im] insns for SSE4.2.
4066 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
4067 (ix86_expand_sse_pcmpistr): Likewise.
4068 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
4069 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
4070 (UNSPEC_PCMPISTR): Likewise.
4071 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
4072 (sse4_2_pcmpestri):New isns pattern.
4073 (sse4_2_pcmpestrm): Likewise.
4074 (sse4_2_pcmpestr_cconly): Likewise.
4075 (sse4_2_pcmpistr): New insn patern and splitter.
4076 (sse4_2_pcmpistri):New isns pattern.
4077 (sse4_2_pcmpistrm): Likewise.
4078 (sse4_2_pcmpistr_cconly): Likewise.
4079 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
4080 in SSE4.2.
4081
adb04511
DD
40822007-06-01 David Daney <ddaney@avtrex.com>
4083
4084 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
4085 LOADGP_ABSOLUTE and not binds_local_p.
d6b0b376 4086
648beecd
GK
40872007-06-01 Geoffrey Keating <geoffk@apple.com>
4088
4089 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
4090
e07e405d
ILT
40912007-06-01 Ian Lance Taylor <iant@google.com>
4092
4093 * tree-vrp.c (compare_name_with_value): Always set
4094 used_strict_overflow if we get a result from the variable itself.
4095
03743286
ILT
40962007-06-01 Ian Lance Taylor <iant@google.com>
4097
4098 PR rtl-optimization/31455
4099 * lower-subreg.c (find_decomposable_subregs): Don't decompose
4100 subregs which have a cast between modes which are not tieable.
4101
b7e6d1da
UB
41022007-06-01 Uros Bizjak <ubizjak@gmail.com>
4103
4104 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
4105 breaks after return statements.
4106
5e77c6f9
KK
41072007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
4108
4109 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
4110 only after no_new_pseudos.
4111
ed1223ba
EC
41122007-05-31 Eric Christopher <echristo@apple.com>
4113
4114 * expr.c (convert_move): Assert that we don't have a BLKmode
4115 operand.
4116 (store_expr): Handle BLKmode moves by calling emit_block_move.
4117
2c751309
DB
41182007-05-31 Daniel Berlin <dberlin@dberlin.org>
4119
4120 * c-typeck.c (build_indirect_ref): Include type in error message.
4121 (build_binary_op): Pass types to binary_op_error.
4122 * c-common.c (binary_op_error): Take two type arguments, print out
4123 types with error.
4124 * c-common.h (binary_op_error): Update prototype.
4125
6847c43d
L
41262007-05-31 H.J. Lu <hongjiu.lu@intel.com>
4127
4128 * config/i386/i386.c: Correct coments on -mno-sse4.
4129
3b8dd071
L
41302007-05-31 H.J. Lu <hongjiu.lu@intel.com>
4131
06f4e35d 4132 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
3b8dd071 4133 (x86_64-*-*): Likewise.
3b8dd071
L
4134 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
4135 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
4136 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
4137 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
4138 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
4139 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
4140 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
4141 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
4142 (OPTION_MASK_ISA_SSE4): Likewise.
4143 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
4144 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
06f4e35d 4145 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
3b8dd071
L
4146 (override_options): Support SSE4.2.
4147 (ix86_build_const_vector): Support SImode and DImode.
4148 (ix86_build_signbit_mask): Likewise.
4149 (ix86_expand_int_vcond): Support V2DImode.
4150 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
4151 (IX86_BUILTIN_CRC32HI): Likewise.
4152 (IX86_BUILTIN_CRC32SI): Likewise.
4153 (IX86_BUILTIN_CRC32DI): Likewise.
4154 (IX86_BUILTIN_PCMPGTQ): Likewise.
4155 (bdesc_crc32): Likewise.
4156 (bdesc_sse_3arg): Likewise.
4157 (ix86_expand_crc32): Likewise.
4158 (ix86_init_mmx_sse_builtins): Support SSE4.2.
4159 (ix86_expand_builtin): Likewise.
3b8dd071
L
4160 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
4161 __SSE4_2__ for -msse4.2.
3b8dd071
L
4162 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
4163 (CRC32MODE): Likewise.
4164 (crc32modesuffix): Likewise.
4165 (crc32modeconstraint): Likewise.
4166 (sse4_2_crc32<mode>): Likewise.
4167 (sse4_2_crc32di): Likewise.
3b8dd071
L
4168 * config/i386/i386.opt (msse4.2): New for SSE4.2.
4169 (msse4): Likewise.
06f4e35d 4170 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
3b8dd071 4171 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
06f4e35d 4172 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
3b8dd071
L
4173 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
4174 (vcondu<mode>): Likewise.
3b8dd071 4175 * doc/extend.texi: Document SSE4.2 built-in functions.
3b8dd071
L
4176 * doc/invoke.texi: Document -msse4.2/-msse4.
4177
2664efb6
ZD
41782007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
4179
4180 PR tree-optimization/32160
4181 * tree-predcom.c (predcom_tmp_var): New function. Mark created
4182 variable as gimple reg.
4183 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
4184
01e4dd0d
KH
41852007-05-31 Kazu Hirata <kazu@codesourcery.com>
4186
4187 * gcc.c (main): Don't consider linker options when issuing the
4188 warning about a linker input file not being used.
4189
3b7bab4d
RW
41902007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4191
4192 * tree-vrp.c (compare_names): Initialize sop.
4193
62090afb
DM
41942007-05-30 Dirk Mueller <dmueller@suse.de>
4195
4196 * cgraphunit.c (cgraph_analyze_function): Remove
4197 computation of inline parameters.
4198
41992007-05-30 Uros Bizjak <ubizjak@gmail.com>
b42f4d62
UB
4200
4201 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
4202
9403b7f7
RS
42032007-05-30 Richard Sandiford <richard@codesourcery.com>
4204
4205 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
4206 Add vx-common.h. Include vxworks.h between vx-common.h and
4207 arm/vxworks.h.
4208 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
4209 redefining.
4210 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
4211 (TARGET_ASM_DESTRUCTOR): Likewise.
4212 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
4213 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
4214 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
4215 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
4216 (VXWORKS_ENDIAN_SPEC): Define.
4217 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
4218 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
4219 VXWORKS_* equivalents.
4220 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
4221 (ASM_FILE_START): Delete.
4222 (TARGET_VERSION): Reformat.
4223 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
4224 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
4225 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
4226 (FPBIT, DPBIT): Define.
4227 (fp-bit.c, dp-bit.c): New rules.
4228 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
4229 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
4230 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
4231 * config/arm/arm.h: Include vxworks-dummy.h.
4232 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
4233 Mark with ATTRIBUTE_UNUSED.
4234 (arm_override_options): Do not allow VxWorks RTP PIC to be used
4235 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
4236 make it incompatible with -msingle-pic-base.
4237 (arm_function_ok_for_sibcall): Return false for calls that might
4238 go through a VxWorks PIC PLT entry.
4239 (require_pic_register): New function, split out from...
4240 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
4241 for VxWorks RTPs.
4242 (arm_load_pic_register): Handle the VxWorks RTP initialization
4243 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
4244 (arm_emit_call_insn): New function.
4245 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
4246 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
4247 (pic_offset_arm): New pattern.
4248 (call, call_value): Use arm_emit_call_insn.
4249 (call_internal, call_value_internal): New expanders.
4250 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
4251 VxWorks unless __PIC__.
4252
5abc5de9
EC
42532007-05-30 Eric Christopher <echristo@gmail.com>
4254
4255 * genrecog.c: Include regs.h in generated file.
4256 * genemit.c: Ditto. Fix up formatting.
4257 * config/mn10300/constraints.md: New.
4258 * config/mn10300/mn10300.md: Include.
4259 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
4260 Fix up for removed macro.
4261 * config/mn10300/predicates.md (call_address_operand): Ditto.
4262 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
4263 (CONST_OK_FOR_I): Ditto.
4264 (CONST_OK_FOR_J): Ditto.
4265 (CONST_OK_FOR_K): Ditto.
4266 (CONST_OK_FOR_L): Ditto.
4267 (CONST_OK_FOR_M): Ditto.
4268 (CONST_OK_FOR_N): Ditto.
4269 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
4270 (OK_FOR_Q): Ditto.
4271 (OK_FOR_R): Ditto.
4272 (OK_FOR_T): Ditto.
4273 (EXTRA_CONSTRAINT): Ditto.
4274
853a33f3
UB
42752007-05-30 Uros Bizjak <ubizjak@gmail.com>
4276
4277 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
4278 Remove defines.
4279 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
4280 OPTION_MASK_ISA_64BIT.
4281 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
4282
fa139765
RG
42832007-05-30 Richard Guenther <rguenther@suse.de>
4284
4285 PR middle-end/32152
4286 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
4287 types for comparison.
4288 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
4289 with original typed arguments.
4290 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
4291
722ba5ee
JJ
42922007-05-30 Jakub Jelinek <jakub@redhat.com>
4293
4294 PR tree-optimization/31769
4295 * except.c (duplicate_eh_regions): Clear prev_try if
4296 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
4297
18965703
ZD
42982007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
4299
4300 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
4301 * tree-ssa-sink.c (statement_sink_location): Return basic block and
4302 bsi of the location where statements should be inserted.
4303 (sink_code_in_bb): Take bsi from statement_sink_location.
4304 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
4305 instead of bsi_start.
4306 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
4307 bsi_insert_after.
4308 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
4309 (bsi_move_before): Document inconsistency with bsi_move_after.
4310 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
4311
0a1c5e55
UB
43122007-05-30 Uros Bizjak <ubizjak@gmail.com>
4313
4314 * config/i386/i386.h (TARGET_ABM): New define.
4315 (TARGET_POPCNT): Ditto.
4316 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
4317 New temporary defines to redefine from OPTION_ISA_* defines.
4318 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
4319 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
4320 (ix86_isa_flags): New extern int declaration.
4321 (TARGET_SUBTARGET_DEFAULT): New define.
4322 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
4323 (TARGET_SUBTARGET32_DEFAULT): Ditto.
4324 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
4325 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
4326 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
4327 * config/i386/darwin.h: Change TARGET_64BIT define to
4328 OPTION_ISA_64BIT.
4329
4330 * config/i386/i386.opt (m3dnowa): Define as undocumented option
4331 using existing "ix86_isa_flags" varible.
4332 (m32, m64): Use existing "ix86_isa_flags" variable.
4333 (mmmx, m3dnow): Ditto.
4334 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
4335 (mabm): Define as non-negative option using "x86_abm" variable.
4336 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
4337
4338 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
4339 Rewrite feature test bitmap.
4340 (ix86_isa_flags): New initialized global int varible.
4341 (ix86_isa_flags_explicit): New static int variable.
4342 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
4343 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
4344 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
4345 target_flags_explicit.
4346 (override_options): Remove "target_enable" and "target_disable" fields
4347 from "struct ptt". Update processor_target_table accordingly. Remove
4348 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
4349 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
4350 "target_flags" and "ix86_isa_flags_explicit" instead of
4351 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
4352 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
4353 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
4354 to true when either of PTA_POPCNT or PTA_ABM is set in
4355 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
4356 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
4357 processor_alias_table flags entry. Remove handling of
4358 "target_enable" and "target_disable" fields of processor_target_table.
4359 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
4360 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
4361 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
4362 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
4363 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
4364 "target_flags".
4365 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
4366
853a33f3 43672007-05-29 David Daney <ddaney@avtrex.com>
e440de0e
DD
4368
4369 PR gcc/31975
4370 * config/mips/mips.c (mips_output_mi_thunk): Emit
4371 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
4372
f2f0a960 43732007-05-29 Hui-May Chang <hm.chang@apple.com>
5abc5de9 4374 * config/i386/i386.c (ix86_function_regparm): Added checking of
f2f0a960
HMC
4375 ix86_force_align_arg_pointer to determine the number of
4376 register parameters.
4377
5417e022
ZD
43782007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
4379
4380 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
4381 (SET_DR_MISALIGNMENT): New.
4382 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
4383 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
4384 Use SET_DR_MISALIGNMENT.
4385 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
4386 pointer.
4387 * tree-data-ref.c (create_data_ref, compute_all_dependences,
4388 find_loop_nest): Export.
4389 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
4390 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
4391 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
4392 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
4393 New macros.
4394 (struct mem_ref): Add field reuse_distance.
4395 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
4396 Initialize reuse_distance field.
4397 (issue_prefetch_ref): Select temporality of prefetch according to
4398 reuse_distance.
4399 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
4400 self_reuse_distance, determine_loop_nest_reuse): New functions.
4401 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
4402 (tree_ssa_prefetch_arrays): Dump L2 cache size.
4403 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
4404 dependency.
4405
6e2dc028
DB
44062007-05-29 Daniel Berlin <dberlin@dberlin.org>
4407
4408 * tree-ssa-alias.c: Add aliasing overview.
4409
9bd196f0 44102007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
5417e022 4411 Danny Smith <dannysmith@users.sourceforge.net>
9bd196f0
ZM
4412
4413 PR target/29498
4414 * config/i386/t-crtfm: Compile crtfastmath.o with
4415 -minline-all-stringops.
4416 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
4417 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
4418
5b281141
JDA
44192007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4420
8119b4e4
JDA
4421 * doc/md.texi: Document constraints on HP PA-RISC.
4422
5b281141
JDA
4423 * pa/constraints.md: New file.
4424 * pa.md: Include constraints.md.
4425 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
4426 (integer_store_memory_operand, ldil_cint_p): New functions.
4427 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
4428 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4429 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
4430 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
4431 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
4432
a87db577
AP
44332007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
4434
4435 PR c/31339
4436 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
4437 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
4438 case POSTDECREMENT_EXPR>): Return the error_mark_node
4439 if either the real or imaginary parts would an
4440 error_mark_node.
4441
3659e0cd
DB
44422007-05-28 Daniel Berlin <dberlin@dberlin.org>
4443
4444 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
4445 name when we remove it from a call.
4446
cf9226fb
KH
44472007-05-28 Kazu Hirata <kazu@codesourcery.com>
4448
4449 * targhooks.c (default_narrow_bitfield): Remove.
4450 * targhooks.h: Remove the prototype for
4451 default_narrow_bitfield.
4452
70ea680b
KH
4453 * langhooks-def.h: Remove the prototype for
4454 hook_get_alias_set_0.
4455 * langhooks.c (hook_get_alias_set_0): Remove.
4456
179daa15
KH
4457 * global.c (EXECUTE_IF_CONFLICT): Remove.
4458
3613c7ab
AP
44592007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4460
4461 PR tree-opt/32100
4462 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
4463 return true when truth_value_p is true and the type
4464 is of signed:1.
4465
565f8ce5
GP
44662007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
4467
4468 * doc/install.texi (Prerequisites): We no longer require Autoconf
4469 2.13 for the top-level.
4470
e9dd4c3e
UB
44712007-05-28 Uros Bizjak <ubizjak@gmail.com>
4472
4473 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
4474 memory access via x86_expand_vector_move_misalign() only for
4475 TImode values on 32-bit targets.
5abc5de9
EC
4476
44772007-05-28 Razya Ladelsky <razya@il.ibm.com>
4478
e9dd4c3e
UB
4479 * matrix-reorg.c: New file. Implement matrix flattening and
4480 transposing optimization.
4481 * tree-pass.h: Add matrix reorg pass.
4482 * common.opt: Add fipa-mreorg flag.
4483 * Makefile.in: Add matrix-reorg.c.
4484 * passes.c: Add matrix reorg pass.
4485 * varpool.c (add_new_static_var): New function.
4486 * cgraph.h (add_new_static_var): Declare.
43d861a5 4487
bcb2d701
EC
44882007-05-27 Eric Christopher <echristo@apple.com>
4489
4490 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
4491 sp_offset depending on stack size. Save r12 depending
4492 on registers we're saving later.
4493 (rs6000_emit_epilogue): Update sp_offset depending only
4494 on stack size.
4495
d51157de
ZD
44962007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
4497
4498 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
4499 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4500 * ifcvt.c (if_convert): Ditto.
4501 * tree-ssa-threadupdate.c (thread_block): Ditto.
4502 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
4503 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
0a1c5e55
UB
4504 verify_loop_closed_ssa): Check number_of_loops instead of
4505 current_loops.
d51157de
ZD
4506 * predict.c (tree_estimate_probability): Ditto.
4507 * tree-if-conv.c (main_tree_if_conversion): Ditto.
4508 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4509 * modulo-sched.c (sms_schedule): Ditto.
4510 * tree-scalar-evolution.c (scev_const_prop): Ditto.
4511 (scev_finalize): Do not do anything if scev analysis was not
4512 initialized.
4513 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
4514 current_loops == NULL.
4515 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
4516 * loop-init.c (loop_optimizer_init): Do not free current_loops when
4517 there are no loops.
4518 (loop_optimizer_finalize): Assert that loops were analyzed.
4519 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
4520 rtl_doloop): Check number_of_loops instead of current_loops.
4521 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
4522 current_loops == NULL.
4523 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
4524 gate_tree_vectorize tree_linear_transform, check_data_deps,
4525 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
4526 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
4527 Check number_of_loops instead of current_loops.
4528 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
4529 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
4530 free loops if available.
4531 (execute_pre): Do not pass do_fre to fini_pre.
4532
fe67caf6
TB
45332007-05-27 Tobias Burnus <burnus@net-b.de>
4534
4535 PR middle-end/32083
4536 * real.c (mpfr_from_real): Fix sign of -Inf.
4537
8ff43db0
L
45382007-05-27 H.J. Lu <hongjiu.lu@intel.com>
4539
4540 * tree-vect-transform.c (vectorizable_conversion): Initialize
4541 tree_code variables to ERROR_MARK.
4542 (vectorizable_type_demotion): Likewise.
4543 (vectorizable_type_promotion): Likewise.
4544
72bd078f
UB
45452007-05-26 Uros Bizjak <ubizjak@gmail.com>
4546
4547 PR target/32065
4548 * config/i386/i386.md (movti): Handle push operands via
4549 ix86_expand_push().
4550
eb834193
KH
45512007-05-26 Kazu Hirata <kazu@codesourcery.com>
4552
4553 * basic-block.h: Remove the prototype for merge_seq_blocks.
4554 * cfgcleanup.c (merge_seq_blocks): Remove.
4555
5ef1348f
KH
4556 * tree-flow.h: Remove the prototype for is_aliased_with.
4557 * tree-ssa-alias.c (is_aliased_with): Remove.
4558
e5ac0b9b
L
45592007-05-26 H.J. Lu <hongjiu.lu@intel.com>
4560
4561 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
4562
4563 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
4564
4565 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
4566 ix86_expand_sse4_unpack if SSE4.1 is enabled.
4567 (vec_unpacks_hi_v16qi): Likewise.
4568 (vec_unpacku_lo_v16qi): Likewise.
4569 (vec_unpacks_lo_v16qi): Likewise.
4570 (vec_unpacku_hi_v8hi): Likewise.
4571 (vec_unpacks_hi_v8hi): Likewise.
4572 (vec_unpacku_lo_v8hi): Likewise.
4573 (vec_unpacks_lo_v8hi): Likewise.
4574 (vec_unpacku_hi_v4si): Likewise.
4575 (vec_unpacks_hi_v4si): Likewise.
4576 (vec_unpacku_lo_v4si): Likewise.
4577 (vec_unpacks_lo_v4si): Likewise.
4578
4dad0aca
KH
45792007-05-26 Kazu Hirata <kazu@codesourcery.com>
4580
4581 * c-typeck.c, config/arm/arm.c, config/darwin.c,
4582 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
4583 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
4584 follow spelling conventions in various
4585 warning/error/diagnostic messages.
4586
110abdbc
KH
4587 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
4588 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
4589 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
4590 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
4591 tree-vrp.c: Fix comment typos. Follow spelling conventions.
4592 * doc/tm.texi: Follow spelling conventions.
4593
150594ba
AP
45942007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
4595
4596 PR tree-opt/32090
4597 * tree-ssa-forwprop.c
4598 (forward_propagate_addr_into_variable_array_index): Remove
4599 the lhs argument. Use the type of def_rhs instead of lhs.
4600 (forward_propagate_addr_expr_1): Update use of
4601 forward_propagate_addr_into_variable_array_index.
4602
cd3a59b3
SL
46032007-05-25 Sandra Loosemore <sandra@codesourcery.com>
4604 Nigel Stephens <nigel@mips.com>
4605
4606 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
4607 function attributes, "far" being an alias for "long_call".
4608 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
4609 (mips_near_type_p, mips_far_type_p): New.
4610 (mips_comp_type_attributes): New function to check that attributes
4611 attached to a function type are compatible.
4612 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
4613 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
4614 to the target function of the thunk.
4615 (mips_encode_section_info): Check for "near" and "far" function
4616 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
4617
4618 * config/mips/predicates.md (const_call_insn_operand): Test only
4619 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
4620
4621 * doc/extend.texi (Function Attributes): Document MIPS "near" and
4622 "far" attributes.
4623
4624 * testsuite/gcc.target/mips/near-far-1.c: New test case.
4625 * testsuite/gcc.target/mips/near-far-2.c: New test case.
4626 * testsuite/gcc.target/mips/near-far-3.c: New test case.
4627 * testsuite/gcc.target/mips/near-far-4.c: New test case.
4628
8536ebb5
EC
46292007-05-25 Eric Christopher <echristo@apple.com>
4630
4631 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
4632 to x86-darwin configurations.
4633 * config/i386/t-darwin: Add softfp support.
4634 * config/i386/t-darwin64: Ditto.
4635 * config/i386/sfp-machine.h: If mach then don't use
4636 aliasing, emit a stub to call.
4637
c80b4100
KH
46382007-05-25 Kazu Hirata <kazu@codesourcery.com>
4639
4640 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
4641 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
4642 tree-predcom.c, tree-ssa-alias-warnings.c,
4643 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
4644 comment typos. Follow spelling conventions.
4645 * doc/cpp.texi, doc/invoke.texi: Fix typos.
4646
4d2a42a1
UB
46472007-05-26 Uros Bizjak <ubizjak@gmail.com>
4648
4649 PR target/32065
4650 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
4651 constants into memory. Expand unaligned memory references for
4652 SSE modes via x86_expand_vector_move_misalign() function.
4653
5b98f74d
UB
46542007-05-25 Uros Bizjak <ubizjak@gmail.com>
4655
4656 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
4657 "memory" attribute for "sseishft" type insn without operands[2].
4658
51bc54a6
DM
46592007-05-25 Dirk Mueller <dmueller@suse.de>
4660 Marcus Meissner <meissner@suse.de>
4661
4662 * doc/extend.texi (alloc_size): New attribute.
4663 * c-common.c (handle_alloc_size_attribute): New.
4664 * tree-object-size.c (alloc_object_size): Use alloc_size
4665 attribute, if available.
4666
fc6c9f75
L
46672007-05-25 H.J. Lu <hongjiu.lu@intel.com>
4668
4669 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
4670 with MASK_SSE2.
4671 (__builtin_ia32_vec_ext_v2di): Likewise.
4672 (__builtin_ia32_vec_ext_v4si): Likewise.
4673 (__builtin_ia32_vec_ext_v8hi): Likewise.
4674 (__builtin_ia32_vec_ext_v16qi): Likewise.
4675 (__builtin_ia32_vec_set_v8hi): Likewise.
4676
77315816
L
46772007-05-25 H.J. Lu <hongjiu.lu@intel.com>
4678
4679 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
4680
25a65198
RS
46812007-05-25 Richard Sandiford <richard@codesourcery.com>
4682
4683 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
4684 (arm_is_longcall_p): Rename to...
4685 (arm_is_long_call_p): ...this. Take a single tree argument and
4686 return a bool.
4687 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
4688 (CUMULATIVE_ARGS): Remove call_cookie.
4689 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
4690 (ENCODED_LONG_CALL_ATTR_P): Delete.
4691 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
4692 LONG_CALL_FLAG_CHAR cases.
4693 (ARM_DECLARE_FUNCTION_SIZE): Delete.
4694 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
4695 ARM_DECLARE_FUNCTION_SIZE.
4696 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
4697 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
4698 (arm_encode_call_attribute, current_file_function_operand): Delete.
4699 (arm_function_in_section_p): New function.
4700 (arm_is_longcall_p): Rename to...
4701 (arm_is_long_call_p): ...this. Take the target function as a single
4702 argument and return a bool. Do not rely on call cookies. Check
4703 whether the target symbol is in the same section as the current
4704 function, not just the same compilation unit.
4705 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
4706 (arm_encode_section_info): Don't encode a call type.
4707 * config/arm/arm.md (call, call_value): Update calls to
4708 arm_is_long(_)call_p. Simplify logic.
4709 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
4710 Update calls to arm_is_long(_)call_p.
4711
88efe45a
RG
47122007-05-25 Richard Guenther <rguenther@suse.de>
4713
4714 PR tree-optimization/31982
4715 * tree-ssa-forwprop.c
4716 (forward_propagate_addr_into_variable_array_index): Handle arrays
4717 with element size one.
4718
03fd30b1
AP
47192007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
4720
4721 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
4722 (umulsi3_highpart): Likewise.
4723
88d1c2ad
ILT
47242007-05-24 Ian Lance Taylor <iant@google.com>
4725
4726 PR rtl-optimization/32069
4727 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
4728 is NULL.
4729
a702045a
OW
47302007-05-24 Ollie Wild <aaw@google.com>
4731
4732 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
4733 description.
4734
5da20cfe
RS
47352007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
4736
4737 * postreload-gcse.c (reg_changed_after_insn_p): New function.
4738 (oprs_unchanged_p): Use it to check all registers in a REG.
4739 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
4740 (reg_set_between_after_reload_p): Delete.
4741 (reg_used_between_after_reload_p): Likewise.
4742 (reg_set_or_used_since_bb_start): Likewise.
4743 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
4744 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
4745 Use reg_set_between_p instead of reg_set_between_after_reload_p.
4746 * rtlanal.c (reg_set_p): Check whether REG overlaps
4747 regs_invalidated_by_call, rather than just checking the
4748 membership of REGNO (REG).
4749
bbc8a8dc
ZD
47502007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
4751
4752 * doc/passes.texi: Document predictive commoning.
4753 * doc/invoke.texi (-fpredictive-commoning): Document.
4754 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
4755 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
4756 adding indices to the generated name.
4757 (schedule_sm): Pass 0 to get_lsm_tmp_name.
4758 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
4759 * tree-pretty-print.c (op_symbol_1): Renamed to ...
4760 (op_symbol_code): ... and exported.
4761 (dump_omp_clause, op_symbol): Use op_symbol_code
4762 instead of op_symbol_1.
4763 * tree-pass.h (pass_predcom): Declare.
4764 * timevar.def (TV_PREDCOM): New timevar.
4765 * tree-ssa-loop.c (run_tree_predictive_commoning,
4766 gate_tree_predictive_commoning, pass_predcom): New.
4767 * tree-data-ref.c (find_data_references_in_loop): Find the
4768 references in dominance order.
4769 (canonicalize_base_object_address): Ensure that the result has
4770 pointer type.
4771 (dr_analyze_innermost): Export.
4772 (create_data_ref): Code to fail for references with invariant
4773 address moved ...
4774 (find_data_references_in_stmt): ... here.
4775 * tree-data-ref.h (dr_analyze_innermost): Declare.
4776 * tree-affine.c: Include tree-gimple.h and hashtab.h.
4777 (aff_combination_find_elt, name_expansion_hash,
4778 name_expansion_eq, tree_to_aff_combination_expand,
4779 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
4780 New functions.
4781 * tree-affine.h (aff_combination_constant_multiple_p,
4782 tree_to_aff_combination_expand): Declare.
4783 * tree-predcom.c: New file.
4784 * common.opt (fpredictive-commoning): New option.
4785 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
4786 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
4787 * Makefile.in (tree-predcom.o): Add.
4788 (tree-affine.o): Add TREE_GIMPLE_H dependency.
4789 * passes.c (init_optimization_passes): Add dceloop after
4790 copy propagation in loop optimizer. Add predictive commoning
4791 to loop optimizer passes.
4792
cb8b507b
L
47932007-05-24 H.J. Lu <hongjiu.lu@intel.com>
4794
4795 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
4796 default hook.
4797
9dbe7947
JH
47982007-05-24 Jan Hubicka <jh@suse.cz>
4799
956741d5
JH
4800 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
4801 statistics.
4802 (genheader): Include statistics.h.
4803
9dbe7947
JH
4804 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
4805 notes are gone.
4806 * print-rtl.c (flag_dump_unnumbered): Update comments.
4807 (print_rtl): Fix my previous change.
4808 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
4809 specific data.
4810
561e8a90
ZD
48112007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
4812
4813 PR middle-end/32018
4814 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
4815 set_loop_copy.
4816 (thread_through_all_blocks): Call initialize_original_copy_tables
4817 and free_original_copy_tables.
4818 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
4819 Use set_loop_copy.
4820 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
4821 * cfghooks.c (duplicate_block): Use get_loop_copy.
4822 * cfg.c: Include cfgloop.h.
4823 (loop_copy): New hash table.
4824 (initialize_original_copy_tables): Initialize loop_copy table.
4825 (free_original_copy_tables): Free loop_copy table.
4826 (copy_original_table_clear, copy_original_table_set,
4827 set_loop_copy, get_loop_copy): New functions.
4828 (set_bb_original, set_bb_copy): Use copy_original_table_set.
4829 * cfgloop.h (struct loop): Remove copy field.
4830 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
4831 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
4832
66da42bc
L
48332007-05-24 H.J. Lu <hongjiu.lu@intel.com>
4834
4835 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
4836 -msse/-msse2/-msse3.
4837
5691b85a
L
48382007-05-24 H.J. Lu <hongjiu.lu@intel.com>
4839
4840 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
4841 __builtin_ia32_vec_set_v2di with MASK_64BIT.
4842
5234b8f5
DS
48432007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
4844
4845 PR target/27067
4846 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
4847 * targhooks.h (default_mangle_decl_assembler_name): Declare
4848 default hook.
4849 * targhooks.c (default_mangle_decl_assembler_name): Define
4850 default hook.
4851 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
4852 default hook.
4853 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
4854 * langhooks.c (lhd_set_decl_assembler_name): Call
4855 targetm.mangle_decl_assembler_name for names with global scope.
4856
4857 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
4858 default.
4859 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
4860 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
4861 Declare.
4862 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4863 New. Factored out of i386_pe_encode_section_info.
4864 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
4865 Move check for prior decoration of stdcall
4866 symbols to i386_pe_encode_section_info.
4867 (i386_pe_encode_section_info): Adjust call to
4868 gen_stdcall_or_fastcall_suffix. Use
4869 i386_pe_maybe_mangle_decl_assembler_name, if needed.
4870 (i386_pe_mangle_decl_assembler_name): New. Wrap
4871 i386_pe_maybe_mangle_decl_assembler_name.
4872
1e204133
RAE
48732007-05-16 Rafael Avila de Espindola <espindola@google.com>
4874
4875 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
4876 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
4877 * langhooks.c (get_signed_or_unsigned_type): Don't check for
4878 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
4879 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
4880 TYPE_UNSIGNED.
4881
a38e0142
SL
48822007-05-23 Sandra Loosemore <sandra@codesourcery.com>
4883 Nigel Stephens <nigel@mips.com>
4884 Richard Sandiford <richard@codesourcery.com>
4885
4886 Fix up MIPS16 hard float and add support for complex.
4887
4888 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
4889 (TARGET_SOFT_FLOAT_ABI): New.
4890 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
4891 __mips_soft_float to reflect the ABI in use, not whether the
4892 FPU is directly accessible (e.g., in MIPS16 mode).
4893 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
4894 (UNITS_PER_FPVALUE): Likewise.
4895
4896 * config/mips/mips.c (mips_expand_call): Remove redundant
4897 TARGET_MIPS16 check.
4898 (mips_arg_regno): New.
4899 (function_arg_advance): When setting bits in cum->fp_code for
4900 MIPS16, don't subtract 1 from cum->arg_number, since it is now
4901 zero-based.
4902 (function_arg): Use mips_arg_regno.
4903 (mips_return_mode_in_fpr_p): New.
4904 (mips16_call_stub_mode_suffix): New.
4905 (mips16_cfun_returns_in_fpr_p): New.
4906 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
4907 (mips_output_function_prologue): Test mips16_hard_float, not
4908 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
4909 (mips_expand_epilogue): Call MIPS16 helper routines to copy
4910 return value into a floating-point register.
4911 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
4912 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
4913 (mips16_fp_args): Handle MIPS32r2 ISA which supports
4914 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
4915 word of double arguments from or to the high bits of 64-bit
4916 floating point registers.
4917 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
4918 (mips16_fpret_double): New helper function.
4919 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
4920 support for complex modes. Fill in DECL_RESULT for stubdecl.
4921 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
4922
8536ebb5 4923 * config/mips/mips16.S
a38e0142
SL
4924 (RET, ARG1, ARG2): New.
4925 (MERGE_GPRf, MERGE_GPRt): New.
4926 (DELAYt, DELAYf): New.
4927 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
4928 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
4929 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
4930 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
4931 (SFOP): Renamed to...
4932 (OPSF3): This, and macro-ified. Updated all uses.
4933 (SFOP2): Renamed to...
4934 (OPSF2): This, and macro-ified. Updated all uses.
4935 (SFCMP): Renamed to...
4936 (CMPSF): This, and macro-ified. Updated all uses.
4937 (SFREVCMP): Renamed to...
4938 (REVCMPSF): This, and macro-ified. Updated all uses.
4939 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
4940 (LDDBL1, LDDBL2, RETDBL): Deleted.
4941 (DFOP): Renamed to...
4942 (OPDF3): This, and macro-ified. Updated all uses.
4943 (DFOP2): Renamed to...
4944 (OPDF2): This, and macro-ified. Updated all uses.
4945 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
4946 (DFCMP): Renamed to...
4947 (CMPDF): This, and macro-ified. Updated all uses.
4948 (DFREVCMP): Renamed to...
4949 (REVCMPDF): This, and macro-ified. Updated all uses.
4950 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
4951 (RET_FUNCTION): New.
4952 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
4953 (__mips16_ret_sc, __mips16_ret_dc): New.
4954 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
4955 STUB_ARGS_6, STUB_ARGS_10): New.
4956 (CALL_STUB_NO_RET): New.
4957 (__mips16_call_stub_1): Macro-ified.
4958 (__mips16_call_stub_5): Macro-ified.
4959 (__mips16_call_stub_2): Macro-ified.
4960 (__mips16_call_stub_6): Macro-ified.
4961 (__mips16_call_stub_9): Macro-ified.
4962 (__mips16_call_stub_10): Macro-ified.
4963 (CALL_STUB_RET): New.
4964 (__mips16_call_stub_sf_0): Macro-ified.
4965 (__mips16_call_stub_sf_1): Macro-ified.
4966 (__mips16_call_stub_sf_5): Macro-ified.
4967 (__mips16_call_stub_sf_2): Macro-ified.
4968 (__mips16_call_stub_sf_6): Macro-ified.
4969 (__mips16_call_stub_sf_9): Macro-ified.
4970 (__mips16_call_stub_sf_10): Macro-ified.
4971 (__mips16_call_stub_df_0): Macro-ified.
4972 (__mips16_call_stub_df_1): Macro-ified.
4973 (__mips16_call_stub_df_5): Macro-ified.
4974 (__mips16_call_stub_df_2): Macro-ified.
4975 (__mips16_call_stub_df_6): Macro-ified.
4976 (__mips16_call_stub_df_9): Macro-ified.
4977 (__mips16_call_stub_df_10): Macro-ified.
4978 (__mips16_call_stub_sc_0): New.
4979 (__mips16_call_stub_sc_1): New.
4980 (__mips16_call_stub_sc_5): New.
4981 (__mips16_call_stub_sc_2): New.
4982 (__mips16_call_stub_sc_6): New.
4983 (__mips16_call_stub_sc_9): New.
4984 (__mips16_call_stub_sc_10): New.
4985 (__mips16_call_stub_dc_0): New.
4986 (__mips16_call_stub_dc_1): New.
4987 (__mips16_call_stub_dc_5): New.
4988 (__mips16_call_stub_dc_2): New.
4989 (__mips16_call_stub_dc_6): New.
4990 (__mips16_call_stub_dc_9): New.
4991 (__mips16_call_stub_dc_10): New.
8536ebb5 4992
a38e0142
SL
4993 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
4994 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
4995 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
4996
70f57af1
ILT
49972007-05-23 Ian Lance Taylor <iant@google.com>
4998
4999 * doc/invoke.texi (Invoking GCC): Document that the order of the
5000 -l option matters.
5001
6d0ceb76
CL
50022007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
5003
5004 PR target/30987
dc675301
UB
5005 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
5006 * config/score/predicate.md (const_pow2, const_npow2): Remove.
5007 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
5008 undef.
5009
6d0ceb76 5010 PR target/30474
dc675301
UB
5011 * config/score/score.c (score_print_operand): Make sure that only
5012 lower bits are used.
8536ebb5 5013
b80cca7b
ILT
50142007-05-22 Ian Lance Taylor <iant@google.com>
5015
5016 * tree-vrp.c (avoid_overflow_infinity): New static function,
5017 broken out of set_value_range_to_value.
5018 (set_value_range_to_value): Call avoid_overflow_infinity.
5019 (extract_range_from_assert): Likewise.
5020
1809a520
AP
50212007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5022
5023 PR middle-end/31095
5024 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
5025 change the type before looking for a COMPOUND_EXPR.
5026
1570a704
ILT
50272007-05-22 Ian Lance Taylor <iant@google.com>
5028
5029 * lower-subreg.c (decompose_multiword_subregs): If we change an
5030 insn, call remove_retval_note on it.
5031
09e18274
RS
50322007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
5033
5034 * regs.h (end_hard_regno): New function.
5035 (END_HARD_REGNO, END_REGNO): New macros.
5036 (add_to_hard_reg_set): New function.
5037 (remove_from_hard_reg_set): Likewise.
5038 (in_hard_reg_set_p): Likewise.
5039 (overlaps_hard_reg_set_p): Likewise.
5040 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
5041 (note_btr_set): Use END_HARD_REGNO.
5042 * caller-save.c (setup_save_areas): Use end_hard_regno.
5043 (mark_set_regs): Use END_HARD_REGNO.
5044 (add_stored_regs): Use end_hard_regno.
5045 (mark_referenced_regs): Use add_to_hard_reg_set.
5046 * combine.c (update_table_tick): Use END_REGNO.
5047 (record_value_for_reg): Likewise.
5048 (record_dead_and_set_regs): Likewise.
5049 (get_last_value_validate): Likewise.
5050 (use_crosses_set_p): Likewise.
5051 (reg_dead_at_p_1): Likewise.
5052 (reg_dead_at_p): Likewise.
5053 (mark_used_regs_combine): Use add_to_hard_reg_set.
5054 (move_deaths): Use END_HARD_REGNO.
5055 (reg_bitfield_target_p): Use end_hard_regno.
5056 (distribute_notes): Use END_HARD_REGNO.
5057 * cse.c (mention_regs): Use END_REGNO.
5058 (insert): Use add_to_hard_reg_set.
5059 (invalidate): Use END_HARD_REGNO.
5060 (invalidate_for_call): Likewise.
5061 (exp_equiv_p): Use END_REGNO.
5062 (cse_insn): Likewise.
5063 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
5064 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
5065 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
5066 * function.c (keep_stack_depressed): Use end_hard_regno.
5067 * global.c (global_alloc): Use end_hard_regno.
5068 (global_conflicts): Use add_to_hard_reg_set instead of
5069 mark_reg_live_nc.
5070 (find_reg): Likewise.
5071 (mark_reg_store): Likewise.
5072 (mark_reg_conflicts): Likewise.
5073 (mark_reg_death): Use remove_from_hard_reg_set.
5074 (mark_reg_live_nc): Delete.
5075 (set_preference): Use end_hard_regno.
5076 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
5077 remove_from_hard_reg_set.
5078 (post_mark_life): Use add_to_hard_reg_set.
5079 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
5080 (reg_becomes_live): Use add_to_hard_reg_set.
5081 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
5082 (peep2_find_free_register): Use add_to_hard_reg_set.
5083 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
5084 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
5085 * regrename.c (note_sets): Use add_to_hard_reg_set.
5086 (clear_dead_regs): Use remove_from_hard_reg_set.
5087 (regrename_optimize): Use add_to_hard_reg_set.
5088 (find_oldest_value_reg): Use in_hard_reg_set_p.
5089 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
5090 (hard_reg_set_here_p): Use end_hard_regno.
5091 (decompose): Likewise.
5092 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
5093 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
5094 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
5095 (mark_home_live): Use end_hard_regno.
5096 (spill_hard_reg): Likewise.
5097 (clear_reload_reg_in_use): Likewise.
5098 * reorg.c (delete_prior_computation): Use END_REGNO.
5099 * resource.c (update_live_status): Use END_HARD_REGNO.
5100 (mark_referenced_resources): Use add_to_hard_reg_set.
5101 (mark_set_resources): Likewise.
5102 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
5103 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
5104 (reg_overlap_mentioned_p): Likewise.
5105 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
5106 (covers_regno_no_parallel_p): Use END_REGNO.
5107 (find_regno_note): Likewise.
5108 (find_reg_fusage): Use END_HARD_REGNO.
5109 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
5110 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
5111
408bed3c
RS
51122007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
5113
5114 * mode-switching.c (reg_dies): Change type of second argument to
5115 "HARD_REG_SET *".
5116 (optimize_mode_switching): Update accordingly.
5117
56b138ae
RS
51182007-05-22 Richard Sandiford <richard@codesourcery.com>
5119
5120 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
5121 in favor of...
5122 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
5123 (hard_reg_set_empty_p): ...these new functions.
5124 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
5125 GO_IF_HARD_REG_SUBSET.
5126 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
5127 instead of GO_IF_HARD_REG_EQUAL.
5128 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
5129 instead of GO_IF_HARD_REG_EQUAL.
5130 * global.c (find_reg): Use hard_reg_set_empty_p instead of
5131 GO_IF_HARD_REG_SUBSET.
5132 (modify_reg_pav): Use hard_reg_set_empty_p instead of
5133 GO_IF_HARD_REG_EQUAL.
5134 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
5135 of GO_IF_HARD_REG_SUBSET.
5136 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
5137 instead of GO_IF_HARD_REG_EQUAL.
5138 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
5139 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
5140 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
5141 of GO_IF_HARD_REG_SUBSET,
5142 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
5143 GO_IF_HARD_REG_SUBSET.
5144 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
5145 instead of GO_IF_HARD_REG_EQUAL.
5146 * config/sh/sh.c (push_regs, calc_live_regs): Use
5147 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
5148 (hard_regs_intersect_p): Delete.
5149
ba2f32a9
JJ
51502007-05-22 Janis Johnson <janis187@us.ibm.com>
5151
5152 * doc/sourcebuild.texi (Test Directives) Add dg-message.
5153
9a5cee02
L
51542007-05-22 H.J. Lu <hongjiu.lu@intel.com>
5155 Richard Henderson <rth@redhat.com>
5156
5157 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
5158 extra_headers.
5159 (x86_64-*-*): Likewise.
5160
5161 * i386/i386-modes.def (V2QI): New.
5162
5163 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
5164 SSE4A.
5165 (override_options): Support SSE4.1.
5166 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
5167 (IX86_BUILTIN_BLENDPS): Likewise.
5168 (IX86_BUILTIN_BLENDVPD): Likewise.
5169 (IX86_BUILTIN_BLENDVPS): Likewise.
5170 (IX86_BUILTIN_PBLENDVB128): Likewise.
5171 (IX86_BUILTIN_PBLENDW128): Likewise.
5172 (IX86_BUILTIN_DPPD): Likewise.
5173 (IX86_BUILTIN_DPPS): Likewise.
5174 (IX86_BUILTIN_INSERTPS128): Likewise.
5175 (IX86_BUILTIN_MOVNTDQA): Likewise.
5176 (IX86_BUILTIN_MPSADBW128): Likewise.
5177 (IX86_BUILTIN_PACKUSDW128): Likewise.
5178 (IX86_BUILTIN_PCMPEQQ): Likewise.
5179 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
5180 (IX86_BUILTIN_PMAXSB128): Likewise.
5181 (IX86_BUILTIN_PMAXSD128): Likewise.
5182 (IX86_BUILTIN_PMAXUD128): Likewise.
5183 (IX86_BUILTIN_PMAXUW128): Likewise.
5184 (IX86_BUILTIN_PMINSB128): Likewise.
5185 (IX86_BUILTIN_PMINSD128): Likewise.
5186 (IX86_BUILTIN_PMINUD128): Likewise.
5187 (IX86_BUILTIN_PMINUW128): Likewise.
5188 (IX86_BUILTIN_PMOVSXBW128): Likewise.
5189 (IX86_BUILTIN_PMOVSXBD128): Likewise.
5190 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
5191 (IX86_BUILTIN_PMOVSXWD128): Likewise.
5192 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
5193 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
5194 (IX86_BUILTIN_PMOVZXBW128): Likewise.
5195 (IX86_BUILTIN_PMOVZXBD128): Likewise.
5196 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
5197 (IX86_BUILTIN_PMOVZXWD128): Likewise.
5198 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
5199 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
5200 (IX86_BUILTIN_PMULDQ128): Likewise.
5201 (IX86_BUILTIN_PMULLD128): Likewise.
5202 (IX86_BUILTIN_ROUNDPD): Likewise.
5203 (IX86_BUILTIN_ROUNDPS): Likewise.
5204 (IX86_BUILTIN_ROUNDSD): Likewise.
5205 (IX86_BUILTIN_ROUNDSS): Likewise.
5206 (IX86_BUILTIN_PTESTZ): Likewise.
5207 (IX86_BUILTIN_PTESTC): Likewise.
5208 (IX86_BUILTIN_PTESTNZC): Likewise.
5209 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
5210 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
5211 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
5212 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
5213 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
5214 (bdesc_ptest): New.
5215 (bdesc_sse_3arg): Likewise.
5216 (bdesc_2arg): Likewise.
5217 (bdesc_1arg): Likewise.
5218 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
5219 with 3 args.
5220 (ix86_expand_sse_4_operands_builtin): New.
5221 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
5222 smaller than 8 bits as the 2nd arg.
5223 (ix86_expand_sse_ptest): New.
5224 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
5225 (ix86_expand_vector_set): Support SSE4.1.
5226 (ix86_expand_vector_extract): Likewise.
5227
5228 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
5229 __SSE4_1__ for -msse4.1.
5230
5231 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
5232 (UNSPEC_INSERTPS): Likewise.
5233 (UNSPEC_DP): Likewise.
5234 (UNSPEC_MOVNTDQA): Likewise.
5235 (UNSPEC_MPSADBW): Likewise.
5236 (UNSPEC_PHMINPOSUW): Likewise.
5237 (UNSPEC_PTEST): Likewise.
5238 (UNSPEC_ROUNDP): Likewise.
5239 (UNSPEC_ROUNDS): Likewise.
5240
5241 * config/i386/i386.opt (msse4.1): New for SSE4.1.
5242
5243 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
5244 (const_pow2_1_to_32768_operand): Likewise.
5245
5246 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
5247 file.
5248
5249 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
5250 SSE4.1.
5251 (sse4_1_insertps): Likewise.
5252 (*sse4_1_extractps): Likewise.
5253 (sse4_1_ptest): Likewise.
5254 (sse4_1_mulv2siv2di3): Likewise.
5255 (*sse4_1_mulv4si3): Likewise.
5256 (*sse4_1_smax<mode>3): Likewise.
5257 (*sse4_1_umax<mode>3): Likewise.
5258 (*sse4_1_smin<mode>3): Likewise.
5259 (*sse4_1_umin<mode>3): Likewise.
5260 (sse4_1_eqv2di3): Likewise.
5261 (*sse4_1_pinsrb): Likewise.
5262 (*sse4_1_pinsrd): Likewise.
5263 (*sse4_1_pinsrq): Likewise.
5264 (*sse4_1_pextrb): Likewise.
5265 (*sse4_1_pextrb_memory): Likewise.
5266 (*sse4_1_pextrw_memory): Likewise.
5267 (*sse4_1_pextrq): Likewise.
5268 (sse4_1_blendpd): Likewise.
5269 (sse4_1_blendps): Likewise.
5270 (sse4_1_blendvpd): Likewise.
5271 (sse4_1_blendvps): Likewise.
5272 (sse4_1_dppd): Likewise.
5273 (sse4_1_dpps): Likewise.
5274 (sse4_1_movntdqa): Likewise.
5275 (sse4_1_mpsadbw): Likewise.
5276 (sse4_1_packusdw): Likewise.
5277 (sse4_1_pblendvb): Likewise.
5278 (sse4_1_pblendw): Likewise.
5279 (sse4_1_phminposuw): Likewise.
5280 (sse4_1_extendv8qiv8hi2): Likewise.
5281 (*sse4_1_extendv8qiv8hi2): Likewise.
5282 (sse4_1_extendv4qiv4si2): Likewise.
5283 (*sse4_1_extendv4qiv4si2): Likewise.
5284 (sse4_1_extendv2qiv2di2): Likewise.
5285 (*sse4_1_extendv2qiv2di2): Likewise.
5286 (sse4_1_extendv4hiv4si2): Likewise.
5287 (*sse4_1_extendv4hiv4si2): Likewise.
5288 (sse4_1_extendv2hiv2di2): Likewise.
5289 (*sse4_1_extendv2hiv2di2): Likewise.
5290 (sse4_1_extendv2siv2di2): Likewise.
5291 (*sse4_1_extendv2siv2di2): Likewise.
5292 (sse4_1_zero_extendv8qiv8hi2): Likewise.
5293 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
5294 (sse4_1_zero_extendv4qiv4si2): Likewise.
5295 (*sse4_1_zero_extendv4qiv4si2): Likewise.
5296 (sse4_1_zero_extendv2qiv2di2): Likewise.
5297 (*sse4_1_zero_extendv2qiv2di2): Likewise.
5298 (sse4_1_zero_extendv4hiv4si2): Likewise.
5299 (*sse4_1_zero_extendv4hiv4si2): Likewise.
5300 (sse4_1_zero_extendv2hiv2di2): Likewise.
5301 (*sse4_1_zero_extendv2hiv2di2): Likewise.
5302 (sse4_1_zero_extendv2siv2di2): Likewise.
5303 (*sse4_1_zero_extendv2siv2di2): Likewise.
5304 (sse4_1_roundpd): Likewise.
5305 (sse4_1_roundps): Likewise.
5306 (sse4_1_roundsd): Likewise.
5307 (sse4_1_roundss): Likewise.
5308 (mulv4si3): Don't expand for SSE4.1.
5309 (smax<mode>3): Likewise.
5310 (umaxv4si3): Likewise.
5311 (uminv16qi3): Likewise.
5312 (umin<mode>3): Likewise.
5313 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
5314
5315 * doc/extend.texi: Document SSE4.1 built-in functions.
5316
5317 * doc/invoke.texi: Document -msse4.1.
5318
bebb3a98
NS
53192007-05-22 Nathan Sidwell <nathan@codesourcery.com>
5320
5321 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
5322 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
5323 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
5324 (ASM_SPEC): Add asm_pcrel_spec.
5325 (EXTRA_SPECS): Add asm_pcrel_spec.
5326
c076e75f
DD
53272007-05-21 David Daney <ddaney@avtrex.com>
5328
5329 * doc/install.texi (Building a cross compiler): Add requirements
5330 for Java cross compiler.
5331
a50411de
AP
53322007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5333
5334 PR middle-end/31995
5335 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
5336 Add loopno argument. Use evolution_function_is_invariant_rec_p
5337 instead of evolution_function_is_constant_p.
5338 Update calls to evolution_function_is_affine_multivariate_p.
dc675301 5339 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
a50411de
AP
5340 Add loopno argument.
5341 * tree-scalar-evolution.c (gather_chrec_stats): Call
dc675301 5342 evolution_function_is_affine_multivariate_p with a loop
a50411de
AP
5343 number of 0.
5344 * tree-data-ref.c (analyze_miv_subscript): Likewise.
5345 (analyze_overlapping_iterations): Likewise.
dc675301 5346 (access_functions_are_affine_or_constant_p): Likewise.
a50411de
AP
5347 (build_classic_dist_vector_1): If the access functions
5348 are equal, don't do anything.
5349
60c4429c 53502007-05-21 Paolo Bonzini <bonzini@gnu.org>
dc675301 5351 Paolo Carlini <pcarlini@suse.de>
60c4429c
PB
5352 Uros Bizjak <ubizjak@gmail.com>
5353
5354 * c-cppbuiltin.c (c_cpp_builtins): Define
5355 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
5356 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
5357 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
5358 * doc/cpp.texi ([Standard Predefined Macros]): Document.
5359
ccd3cc09
MS
53602007-05-21 Mike Stump <mrs@apple.com>
5361
0f17a91f 5362 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
ccd3cc09
MS
5363 handling as well.
5364 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
5365
32fe15ec
UB
53662007-05-21 Uros Bizjak <ubizjak@gmail.com>
5367
5368 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
5369 implementation if __OPTIMIZE__ is not defined.
5370 (_mm_alignr_pi8): Ditto.
5371 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
5372 (_mm_inserti_si64): Ditto.
5373 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
5374 (_mm_slli_epi16): Ditto.
5375 (_mm_slli_epi32): Ditto.
5376 (_mm_slli_epi64): Ditto.
5377 (_mm_srai_epi16): Ditto.
5378 (_mm_srai_epi32): Ditto.
5379 (_mm_srli_si128): Ditto.
5380 (_mm_slli_si128): Ditto.
5381 (_mm_srli_epi16): Ditto.
5382 (_mm_srli_epi32): Ditto.
5383 (_mm_srli_epi64): Ditto.
5384 (_mm_extract_epi16): Ditto.
5385 (_mm_insert_epi16): Ditto.
5386 (_mm_shufflehi_epi16): Ditto.
5387 (_mm_shufflelo_epi16): Ditto.
5388 (_mm_shuffle_epi32): Ditto.
5389 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
5390 (_m_pextrw): Ditto.
5391 (_mm_insert_pi16): Ditto.
5392 (_m_pinsrw): Ditto.
5393 (_mm_shuffle_pi16): Ditto.
5394 (_m_pshufw): Ditto.
5395 (_mm_shufle_ps): Ditto.
5396 (_mm_prefetch): Ditto.
5397
4d8a8a0a
AK
53982007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
5399
5400 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
5401 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
5402 * real.c (encode_i370_single, decode_i370_single,
5403 encode_i370_double, decode_i370_double): Functions removed.
5404 (i370_single_format, i370_double_format): Initializations removed.
5405 (real_maxval, round_for_format, exact_real_truncate, significand_size):
5406 Consider the log2_b field to always be one.
5407 (ieee_single_format, mips_single_format, coldfire_single_format,
5408 ieee_double_format, mips_double_format, coldfire_double_format,
5409 ieee_extended_motorola_format, ieee_extended_intel_96_format,
5410 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
5411 ibm_extended_format, mips_extended_format, ieee_quad_format,
5412 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
5413 decimal_single_format, decimal_double_format, decimal_quad_format,
5414 c4x_single_format, c4x_extended_format, real_internal_format): Remove
5415 initialization of log2_b.
7e08fa35
UB
5416 * real.h (i370_single_format, i370_double_format): Declarations
5417 removed.
4d8a8a0a
AK
5418 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
5419 field to always be one.
5420
740aeb38
AS
54212007-05-21 Andreas Schwab <schwab@suse.de>
5422
5423 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
5424 NOTE_INSN_BASIC_BLOCK_P.
5425 (process_for_unwind_directive): Likewise.
5426
ecaebb9e
NS
54272007-05-21 Nathan Sidwell <nathan@codesourcery.com>
5428
5429 * builtins.c (expand_builtin_setjmp_setup): Update comment.
5430 * function.h (struct function): Move va_list_gpr_size,
5431 va_list_fpr_size, function_frequency to front of bitfields. Add
5432 calls_unwind_init.
5433 (current_function_calls_unwind_init): New.
5434 * except.c (expand_builtin_unwind_init): Set
5435 current_function_calls_unwind_init not
5436 current_function_has_nonlocal_label.
5437 * reload1.c (has_nonexceptional_receiver): New.
5438 (reload): Use it and current_function_calls_unwind_init to
5439 determine whether call-saved regs must be saved.
5440
a38e7aa5
JH
54412007-05-20 Jan Hubicka <jh@suse.cz>
5442
5443 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
5444 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
5445 * ddg.c (create_ddg): LIkewise.
7e08fa35 5446 * final.c (final): Remove hunk moving line number notes around since
a38e7aa5
JH
5447 they are no longer present at this stage.
5448 (final_scan_insn): Use NOTE_KIND instead of
5449 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
5450 (output_asm_label): Likewise.
5451 * reorg.c (dbr_schedule): Likewise.
5452 * haifa-sched.c (unlink_other_notes): Likewise.
5453 * mode-switching.c (optimize_mode_switching): Likewise.
5454 * graph.c (start_bb): Likewise.
5455 * rtl.def (NOTE): Update description.
5456 * jump.c (squeeze_notes): Delete.
5457 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
5458 NOTE_INSN_BASIC_BLOCK_P when possible.
5459 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
5460 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
dc675301 5461 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
a38e7aa5
JH
5462 (dwarf2out_var_location): Likewise.
5463 * cfgbuild.c (make_edges): Likewise.
5464 (find_basic_blocks_1): Likewise.
5465 * function.c (reorder_blocks_1): Likewise.
5466 (epilogue_done): Likewise.
5467 (reposition_prologue_and_epilogue_notes): Likewise.
7e08fa35
UB
5468 * print-rtl.c (print_rtx): Likewise; drop code for printing
5469 line number notes.
a38e7aa5
JH
5470 (print_rtl): Likewise.
5471 (print_rtl_single): Likewise.
5472 * gcse.c (insert_insn_start_bb): Likewise.
5473 * alias.c (init_alias_analysis): Likewise.
5474 * calls.c (fixup_tail_calls): Likewise.
5475 * except.c (sjlj_emit_function_enter): Likewise.
5476 * emit-rtl.c (add_insn_after): Likeiwse.
5477 (emit_label_before): Likewise.
5478 (emit_label_after): Likewise.
5479 (emit_note_before, emit_note_after, emit_note): Update
5480 parameter to be enum insn_note; do not deal with source
5481 files.
5482 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
5483 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
5484 when possible.
5485 (merge_blocks_move_successor_nojumps): Simplify now when
5486 we don't have BLOCK notes.
5487 (try_optimize_cfg): Likewise.
5488 * cfglayout.c (skip_insns_after_block): Likewise.
5489 (record_effective_endpoints): Likewise.
5490 (duplicate_insn_chain): Likewise.
5491 * varasm.c (output_constant_pool_1): Likewise.
5492 * sched-deps.c (sched_analyze): Likewise.
5493 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
5494 Exterminate.
5495 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
5496 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
5497 (SET_INSN_DELETED): Simplify.
5498 (NOTE_LINE_NUMBER): Exterminate.
5499 (NOTE_LINE_KIND): New.
5500 (NOTE_INSN_BASIC_BLOCK_P): Update.
5501 (enum insn_note): Simplify.
5502 (GET_NOTE_INSN_NAME) Simplify.
5503 (emit_note_before, emit_note_after, emit_note): Update prototype.
5504 (squeeze_notes): Remove.
5505 * sched-int.h (NOTE_NOT_BB_P): Update.
5506 * resource.c (mark_target_live_regs): Update.
5507 * sched-rgn.c (debug_dependencies): Update.
5508 * sched-vis.c (print_insn): Update.
5509 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
5510 * config/i386/i386.c (ix86_output_function_epilogue): Update.
5511 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
5512 (TARGET_ADJUST_UNROLL_MAX): Likewise.
5513 (split_branches): Update.
5514 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
5515 4.0.0.
5516 (sh_adjust_unroll_max): Exterminate.
5517 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
5518 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
5519 (m68hc11_reorg): Likewise.
5520 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
5521 (emit_predicate_relation_info): Update.
5522 (process_for_unwind_directive): Update.
5523 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
5524 (output_call): Update.
5525 * config/pa/pa.c (output_lbranch): Update.
5526 (output_millicode_call): Update.
5527 (output_call): Update.
5528 (pa_combine_instructions): Update.
5529 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
5530 * config/bfin/bfin.c (gen_one_bundle): Update.
5531 * cfgrtl.c (can_delete_note_p): Update.
5532 (delete_insn): Update.
5533 (rtl_merge_blocks): Update.
5534 (commit_one_edge_insertion): Update.
5535 (rtl_verify_flow_info): Update.
5536 * stmt.c (expand_case): Do not call squeeze_notes.
5537
f6aa72dd 55382007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8536ebb5 5539
f6aa72dd
MLI
5540 PR middle-end/7651
5541 PR c++/11856
5542 PR c/12963
5543 PR c/23587
5544 PR other/29694
5545 * c.opt (Wtype-limits): New.
5546 * doc/invoke.texi (Wtype-limits): Document it.
5547 (Wextra): Enabled by -Wextra.
5548 * c-opts.c (c_common_post_options): Enabled by -Wextra.
5549 * c-common.c (shorten_compare): Warn with Wtype-limits.
5550
aac8bf80 55512007-05-20 Uros Bizjak <ubizjak@gmail.com>
46fb8f6b
UB
5552
5553 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
5554 inlined function, not as a macro.
5555 (_mm_alignr_pi8): Ditto.
5556 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
5557 (_mm_inserti_si64): Ditto.
5558 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
5559 (_mm_extract_epi16): Ditto.
5560 (_mm_insert_epi16): Ditto.
5561 (_mm_shufflehi_epi16): Ditto.
5562 (_mm_shufflelo_epi16): Ditto.
5563 (_mm_shuffle_epi32): Ditto.
5564 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
5565 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
5566 all functions.
5567 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
5568 float constant.
5569 (_m_to_float): Use C89 compatible assignment.
5570
dde27bba
MM
55712007-04-20 Martin Michlmayr <tbm@cyrius.com>
5572
5573 PR target/32007
5574 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
5575
aac8bf80 55762007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ffd5f276
MLI
5577
5578 PR middle-end/7651
5579 * doc/invoke.texi (Wreturn-type): Complete description.
5580 (Wextra): Delete item about return-type warning.
5581 * c-decl.c: Delete redundant Wextra warning.
8536ebb5 5582
aac8bf80 55832007-05-20 Uros Bizjak <ubizjak@gmail.com>
376a4c05
UB
5584
5585 PR target/31585
5586 * config/i386/pmmintrin.h: Do not include xmmintrin.h
5587 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
5588 inlined function, not as a macro.
5589 (_mm_prefetch): Ditto.
5590 (_m_pextrw): Ditto.
5591 (_mm_insert_pi16): Ditto.
5592 (_m_pinsrw): Ditto.
5593 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
5594 (_m_pshufw): Ditto. Add const to __N argument.
5595 (_mm_shufle_ps): Ditto. Add const to __mask argument.
5596 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
5597 (_mm_slli_epi32): Ditto.
7e08fa35
UB
5598 (_mm_srli_si128): Implement as always inlined function, not as a
5599 macro. Add __inline to function declaration.
376a4c05
UB
5600 (_mm_slli_si128): Ditto.
5601
e9d41616
UB
56022007-05-19 Uros Bizjak <ubizjak@gmail.com>
5603
5604 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
5605 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
5606 New constants.
5607 (struct fenv): New structure.
5608 (FP_HANDLE_EXCEPTIONS): New define.
5609 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
5610 (_FP_DECL_EXP): New define.
5611 (FP_INIT_ROUNDMODE): New define.
5612 (FP_ROUNDMODE): New define.
5613
7060db96
MLI
56142007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5615
5616 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
5617 (Wconversion): Update description.
5618 (Wconversion-sign): New.
5619 * c.opt (Wconversion-sign): New.
5620 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
5621 means disabled for C++. Otherwise, take the status of Wconversion.
5622 * c-common.c (conversion_warning): Warn with either Wconversion or
5623 Wconversion-sign.
5624 (warnings_for_convert_and_check): Conditions are already checked by
5625 conversion_warning.
5626 (convert_and_check): Don't check warnings if the conversion failed.
5627
4fc2b4ff 56282007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
e9d41616 5629 Anatoly Sokolov <aesok@dol.ru>
4fc2b4ff 5630
8536ebb5 5631 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
4fc2b4ff
AH
5632 avr_epilogue_uses) : Add declaration.
5633 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
5634 * config/avr/constraints.md (R): New constraint.
8536ebb5 5635 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
4fc2b4ff
AH
5636 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
5637 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
5638 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
8536ebb5 5639 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
4fc2b4ff 5640 call_prologue_saves, epilogue_restores, return_from_epilogue,
8536ebb5 5641 return_from_main_epilogue, return_from_interrupt_epilogue,
4fc2b4ff
AH
5642 return_from_naked_epilogue, prologue, epilogue): New patterns.
5643 (jump): Handle symbol reference.
8536ebb5
EC
5644 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
5645 avr_output_function_prologue, avr_output_function_epilogue): Remove
4fc2b4ff 5646 functions.
8536ebb5
EC
5647 (avr_init_machine_status, expand_prologue, expand_epilogue,
5648 avr_asm_function_end_prologue, avr_epilogue_uses,
4fc2b4ff 5649 avr_asm_function_begin_epilogue): New functions.
8536ebb5 5650 (prologue_size, epilogue_size, jump_tables_size): Remove global
4fc2b4ff
AH
5651 variables.
5652 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
5653 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
5654 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
5655 (avr_override_options): Initialise init_machine_status.
5656 (output_movhi): Handle all stack pointer loads.
5657 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
5658 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
5659 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
5660 (EPILOGUE_USES) Redefine.
5661 (machine_function) Declare.
5662
6de36441
RS
56632007-05-19 Richard Sandiford <richard@codesourcery.com>
5664
5665 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
5666 Use a single return statement.
5667
752b7d38
KG
56682007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5669
5670 PR middle-end/30250
5671 * builtins.c (do_mpfr_lgamma_r): New.
5672 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
5673 * tree.h (CASE_FLT_FN_REENT): New.
5674
ca0d5e02
GK
56752007-05-18 Geoffrey Keating <geoffk@apple.com>
5676
8d5b1b67
GK
5677 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
5678 (output_die): Use 'unsigned long' with %x.
5679 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
5680 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
5681 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
5682
ca0d5e02
GK
5683 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
5684
f8024378
L
56852007-05-18 H.J. Lu <hongjiu.lu@intel.com>
5686
5687 PR target/31989
5688 PR target/31681
5689 PR target/31666
5690 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
5691 true if function has no argument.
5692
8b5fb3a3
DD
56932007-05-18 DJ Delorie <dj@redhat.com>
5694
5695 * config/mips/mips.c (mips_offset_within_alignment_p): New.
5696 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
5697
e7e0aaec
UB
56982007-05-18 Uros Bizjak <ubizjak@gmail.com>
5699
5700 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
5701 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
5702 count_trailing_zeros.
5703 (__i386__): Implement count_leading_zeros using __builtin_clz().
5704 Implement count_trailing_zeros usign __builtin_ctz().
5705
10d7f5f3
RS
57062007-05-18 Richard Sandiford <richard@codesourcery.com>
5707
5708 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
5709
4bcc9de5
UB
57102007-05-18 Uros Bizjak <ubizjak@gmail.com>
5711
8ecaacaf 5712 PR middle-end/31344
4bcc9de5
UB
5713 * expr.c (emit_move_change_mode): Change mode of push operands here.
5714
b60b4711
ILT
57152007-05-17 Ian Lance Taylor <iant@google.com>
5716
5717 PR tree-optimization/31953
5718 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
5719 Change all callers.
5720 (set_value_range_to_null): Call set_value_range_to_value.
5721 (extract_range_from_comparison): Likewise.
5722
550b3187
KG
57232007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5724
0968bb3d
KG
5725 * toplev.c (print_version): Output GMP/MPFR version info.
5726
bf460eec
KG
5727 * builtins.c (CASE_MATHFN_REENT): New macro.
5728 (mathfn_built_in): Use it.
5729 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
5730 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
5731 BUILT_IN_LGAMMAL_R): New.
5732 * doc/extend.texi: Document new builtins.
5733
ea91f957
KG
5734 PR middle-end/31796
5735 * builtins.c (do_mpfr_remquo): New.
5736 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
5737 (fold_builtin_3): Handle BUILT_IN_REMQUO.
5738
fd2ef596
KG
5739 PR middle-end/30251
5740 * builtins.c (fold_builtin_1): Handle y0, y1.
5741 (fold_builtin_2): Handle yn.
5742
550b3187
KG
5743 PR middle-end/30251
5744 * builtins.c (do_mpfr_bessel_n): New.
5745 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
5746 (fold_builtin_2): Handle BUILT_IN_JN.
5747
a7d0b2d8
DS
57482007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
5749
5750 PR target/31965
5751 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
5752 TYPE_PRECISION (intmax_type_node).
5753
0fa4cb7d
SE
57542007-05-17 Steve Ellcey <sje@cup.hp.com>
5755
5756 PR target/31850
5757 * reload.c (subst_reloads): Remove checking.
5758
4eff8045
EB
57592007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
5760
5761 PR rtl-optimization/31691
5762 * combine.c (simplify_set): Build a new src pattern instead of
5763 substituting its operands in the COMPARE case.
5764
b02b9b53
ZD
57652007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
5766
5767 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
5768 (execute_vrp): Preserve loops through jump threading.
5769 * tree-ssa-threadupdate.c (thread_single_edge,
5770 dbds_continue_enumeration_p, determine_bb_domination_status,
5771 thread_through_loop_header): New functions.
5772 (create_edge_and_update_destination_phis,
5773 create_edge_and_update_destination_phis): Set loops for the new blocks.
5774 (prune_undesirable_thread_requests): Removed.
5775 (redirect_edges): Do not pretend that redirect_edge_and_branch can
5776 create new blocks.
5777 (thread_block): Do not call prune_undesirable_thread_requests.
5778 Update loops.
5779 (mark_threaded_blocks): Select edges to thread here.
5780 (thread_through_all_blocks): Take may_peel_loop_headers argument.
5781 Thread edges through loop headers independently.
5782 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
5783 * tree-pass.h (TODO_mark_first_instance): New.
5784 (first_pass_instance): Declare.
5785 * cfghooks.c (duplicate_block): Put the block to the original loop
5786 if copy is not specified.
5787 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
5788 jump threading. Pass may_peel_loop_headers to
5789 thread_through_all_blocks according to first_pass_instance.
5790 * cfgloop.h (create_preheader): Declare.
5791 * tree-flow.h (thread_through_all_blocks): Declaration changed.
5792 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
5793 * passes.c (first_pass_instance): New variable.
5794 (next_pass_1): Set TODO_mark_first_instance.
5795 (execute_todo): Set first_pass_instance.
5796
d9987fb4
UB
57972007-05-17 Uros Bizjak <ubizjak@gmail.com>
5798
5799 PR tree-optimization/24659
5800 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
5801 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
5802 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
5803 OTI_vec_pack_ufix_trunc.
5804 (vec_unpacks_float_hi_optab): Define new macro.
5805 (vec_unpacks_float_lo_optab): Ditto.
5806 (vec_unpacku_float_hi_optab): Ditto.
5807 (vec_unpacku_float_lo_optab): Ditto.
5808 (vec_pack_sfix_trunc_optab): Ditto.
5809 (vec_pack_ufix_trunc_optab): Ditto.
5810 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
5811 and vec_pack_[s|u]fix_trunc_optab using
5812 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
5813 * tree-vectorizer.c (supportable_widening_operation): Handle
5814 FLOAT_EXPR and CONVERT_EXPR. Update comment.
5815 (supportable_narrowing_operation): New function.
5816 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
5817 * tree-vect-transform.c (vectorizable_conversion): Handle
5818 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
5819 (vect_gen_widened_results_half): Move before vectorizable_conversion.
5820 (vectorizable_type_demotion): Call supportable_narrowing_operation()
5821 to check for target support.
5822 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
5823 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
5824 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
5825 for VEC_PACK_FIX_TRUNC_EXPR.
5826 (expand_binop): Special case mode of the result for
5827 vec_pack_[u|s]fix_trunc_optab.
5828 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
5829 vec_pack_[u|s]fix_trunc_optab.
5830
5831 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
5832 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
5833 * tree-pretty-print.c (dump_generic_node): Handle
5834 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
5835 VEC_PACK_FIX_TRUNC_EXPR.
5836 (op_prio): Ditto.
5837 * expr.c (expand_expr_real_1): Ditto.
5838 * tree-inline.c (estimate_num_insns_1): Ditto.
5839 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
5840
5841 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
5842 (vec_unpacks_float_lo_v8hi): Ditto.
5843 (vec_unpacku_float_hi_v8hi): Ditto.
5844 (vec_unpacku_float_lo_v8hi): Ditto.
5845 (vec_unpacks_float_hi_v4si): Ditto.
5846 (vec_unpacks_float_lo_v4si): Ditto.
5847 (vec_pack_sfix_trunc_v2df): Ditto.
5848
5849 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
5850 Document.
5851 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
5852 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
5853 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
5854 [vec_pack_ufix_trunc]: Ditto.
5855 [vec_unpacks_float_hi]: Ditto.
5856 [vec_unpacks_float_lo]: Ditto.
5857 [vec_unpacku_float_hi]: Ditto.
5858 [vec_unpacku_float_lo]: Ditto.
5859
27735edb
UB
58602007-05-16 Uros Bizjak <ubizjak@gmail.com>
5861
5862 * soft-fp/README: Update for new files.
5863 * soft-fp/floattisf.c: New file.
5864 * soft-fp/floattidf.c: New file.
5865 * soft-fp/floattitf.c: New file.
5866 * soft-fp/floatuntisf.c: New file.
5867 * soft-fp/floatuntidf.c: New file.
5868 * soft-fp/floatuntitf.c: New file.
5869 * soft-fp/fixsfti.c: New file.
5870 * soft-fp/fixdfti.c: New file.
5871 * soft-fp/fixtfti.c: New file.
5872 * soft-fp/fixunssfti.c: New file.
5873 * soft-fp/fixunsdfti.c: New file.
5874 * soft-fp/fixunstfti.c: New file.
5875 * soft-fp/extendxftf.c: New file.
5876 * soft-fp/trunctfxf.c: New file.
5877
5878 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
5879 (__trunctfxf2): Ditto.
5880
5881 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
5882 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
5883 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
5884 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
5885 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
5886 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
5887
5888 * config/i386/t-fprules-softfp64: New file.
5889 * config/i386/sfp-machine.h: New file.
5890 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
5891 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
5892 and soft-fp/t-softfp to tmake_file.
5893 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5894 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
8536ebb5 5895
27735edb
UB
5896 * config/i386/t-linux64 (softfp_wrap_start): New.
5897 (softfp_wrap_end): New.
5898 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
5899 supported for TARGET_64BIT.
5900
c74a03d2
RAE
59012007-05-16 Rafael Avila de Espindola <espindola@google.com>
5902
8536ebb5 5903 * c-common.c (c_common_signed_or_unsigned_type): Emulate
c74a03d2
RAE
5904 c_common_unsigned_type behavior.
5905
2d79fde8
PB
59062007-05-16 Paolo Bonzini <bonzini@gnu.org>
5907
d9987fb4
UB
5908 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
5909 calls as pure.
2d79fde8 5910
2b2c2fe5
EC
59112007-05-16 Eric Christopher <echristo@apple.com>
5912
5913 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
d9987fb4
UB
5914 saving after stack push. Set sp_offset whenever we push.
5915 (rs6000_emit_epilogue): Move altivec register restore before
5916 stack push.
2b2c2fe5 5917
748670c2
RS
59182007-05-16 Richard Sandiford <richard@codesourcery.com>
5919
5920 * configure.ac: Allow sysroots to be relocated under $prefix as
5921 well as $exec_prefix.
5922 * configure: Regenerate.
5923
4ef2b6ed
RS
59242007-05-16 Richard Sandiford <richard@codesourcery.com>
5925
5926 Revert:
5927
5928 2007-05-12 Richard Sandiford <richard@codesourcery.com>
5929
5930 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5931 (gcc_tooldir): Likewise.
5932 * configure: Regenerate.
5933 * Makefile.in (libsubdir_to_prefix): New variable, based on the
5934 old configure.ac gcc_tooldir setting.
5935 (prefix_to_exec_prefix): New variable.
5936 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5937 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5938
3bf6bfcc
JJ
59392007-05-14 Janis Johnson <janis187@us.ibm.com>
5940
5941 * c-typeck.c (build_binary_op): Return early for error.
5942
9e2f83a5
ZD
59432007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
5944
5945 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
5946 struct nb_iter_bound.
5947 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
5948 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
5949 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
5950 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
5951 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
5952 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
5953 (del_scev_info): Use ggc_free.
5954 (scev_initialize): Allocate scalar_evolution_info in gc memory.
5955 * loop-init.c: Include ggc.h.
5956 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
5957 (loop_optimizer_finalize): Use ggc_free.
5958 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
5959 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
5960 pass_iv_optimize): Add TODO_ggc_collect.
7e08fa35
UB
5961 * function.h (struct function): Remove skip marker from
5962 x_current_loops.
9e2f83a5
ZD
5963 * cfgloop.c: Include ggc.h.
5964 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
5965 memory.
5966 (establish_preds): Vector superloops is gc allocated.
5967 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
5968 loop->exits list.
5969 (flow_loops_find): Vector larray is gc allocated.
5970 (loop_exit_free): Use ggc_free.
5971 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
5972 that head of exits list is now not a part of struct loop.
5973 (record_loop_exits): Allocate exits table in gc memory.
7e08fa35
UB
5974 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
5975 that head of exits list is now not a part of struct loop.
9e2f83a5
ZD
5976 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
5977 struct loop_exit): Add GTY marker.
5978 (struct loop): Add GTY marker. Make superloops vector gc allocated.
5979 Add skip marker to aux field. Make head of exits list a separate
5980 object.
5981 (struct loops): Add GTY marker. Make larray vector gc allocated.
5982 Add param marker to exits table.
5983 (get_loops): Type changed.
7e08fa35
UB
5984 * Makefile.in (tree-scalar-evolution.o): Add
5985 gt-tree-scalar-evolution.h dependency.
9e2f83a5
ZD
5986 (cfgloop.o, loop-init.o): Add ggc.h dependency.
5987 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
5988 * basic-block.h (struct basic_block_def): Remove skip marker from
5989 loop_father field.
5990
49452c07
UB
59912007-05-14 Uros Bizjak <ubizjak@gmail.com>
5992
5993 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
5994 of 0 in the call to expand_expr().
5995 (expand_builtin_mathfn_3): Ditto.
5996 (expand_builtin_interclass_mathfn): Ditto.
5997 (expand_builtin_cexpi): Ditto.
5998 (expand_builtin_int_roundingfn): Ditto.
5999 (expand_builtin_int_roundingfn_2): Ditto.
6000 (expand_builtin_pow): Ditto.
6001 (expand_builtin_powi): Ditto.
6002 (expand_builtin_bswap): Ditto.
6003 (expand_builtin_unop): Ditto.
6004 (expand_builtin_fabs): Ditto.
6005 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
6006 the call to expand_expr().
6007 (expand_builtin_sync_operation): Ditto.
6008 (expand_builtin_compare_and_swap): Ditto.
6009 (expand_builtin_lock_test_and_set): Ditto.
6010 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
6011 instead of 0 in the call to expand_expr().
6012 (expand_builtin_extract_return_addr): Ditto.
6013 (expand_builtin_eh_return): Ditto.
6014 (expand_eh_return): Ditto.
6015 * explow.c (expr_size): Ditto.
6016 * expr.c (optimize_bitfield_assignment_op): Ditto.
6017 (expand_assignement): Ditto.
6018 (store_expr): Ditto.
6019 (store_field): Ditto.
6020 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
6021 the call to expand_expr().
6022 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
6023 in the call to expand_expr().
6024 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
6025 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
6026 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
6027 of expand_expr().
6028 * optabs.c (expand_vec_shift_expr): Ditto.
6029 (expand_vec_cond_expr): Ditto.
6030 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
6031 call to expand_expr().
6032 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
6033 in the call to expand_expr().
6034
9c40feeb
DK
60352007-05-14 Dave Korn <dave.korn@artimi.com>
6036
6037 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
6038
ca5ba2a3
RAE
60392007-05-14 Rafael Avila de Espindola <espindola@google.com>
6040
6041 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
6042 instead of c_common_unsigned_type.
6043 (c_common_unsigned_type): Remove.
6044 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
6045 c_common_unsigned_type.
6046 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
6047 c_common_unsigned_type.
6048 * c-common.h (c_common_unsigned_type): Remove.
6049 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
6050 c_common_unsigned_type.
6051 * c-format.c (check_format_types): Use unsigned_type_for instead of
6052 c_common_unsigned_type.
6053 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7e08fa35
UB
6054 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
6055 of c_common_unsigned_type.
ca5ba2a3
RAE
6056 * convert.c (convert_to_integer): Use unsigned_type_for instead of
6057 lang_hooks.types.unsigned_type.
6058 * expmed.c (make_tree): Use unsigned_type_for instead of
6059 lang_hooks.types.unsigned_type.
6060 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
6061 lang_hooks.types.unsigned_type.
6062 (build_range_check): Likewise.
6063 (fold_unary): Likewise.
6064 (fold_binary): Likewise.
6065 (fold_ternary): Likewise.
6066 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
6067 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
6068 * tree.c (get_unsigned_type): New.
6069 (unsigned_type_for): Use get_unsigned_type instead of
6070 lang_hooks.types.unsigned_type.
6071
a4242737
KH
60722007-05-14 Kazu Hirata <kazu@codesourcery.com>
6073
6074 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
6075 to m68k_get_function_kind. Update its prototype.
6076 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
6077 interrupt_thread.
6078 (m68k_interrupt_function_p): Return enum m68k_function_type
6079 instead of bool. Rename to m68k_get_function_kind.
6080 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
6081 target is not fido.
6082 (m68k_compute_frame_layout): Don't mark any register for save
6083 if an interrupt_thread attribute is specified.
6084 (m68k_hard_regno_rename_ok): Update a use of
6085 m68k_interrupt_function_p.
6086 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
6087 m68k_interrupt_function_p.
6088 (m68k_function_type): New.
6089 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
6090 for a function with an interrupt_thread attribute.
6091 * doc/extend.texi: Document the interrupt_thread attribute.
6092
4076455d
DB
60932007-05-13 Daniel Berlin <dberlin@dberlin.org>
6094
6095 Fix PR tree-optimization/31911
6096 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
6097 if they didn't change the expression.
6098
3cb960c7
ZD
60992007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
6100
6101 * tree-scalar-evolution.c (resolve_mixers): Exported.
6102 * tree-scalar-evolution.h (resolve_mixers): Declare.
6103 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
6104 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
6105 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
6106 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
6107 init_array_ref, init_pointer_ref, analyze_indirect_ref,
6108 strip_conversion, analyze_offset_expr, address_analysis,
6109 object_analysis, analyze_offset): Removed.
6110 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
6111 split_constant_offset, canonicalize_base_object_address,
6112 object_address_invariant_in_loop_p, disjoint_objects_p,
6113 dr_may_alias_p, dr_address_invariant_p): New functions.
6114 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
6115 and dr_analyze_alias.
6116 (initialize_data_dependence_relation): Use dr_may_alias_p
6117 and object_address_invariant_in_loop_p.
7e08fa35
UB
6118 (compute_self_dependence): Handle the case when
6119 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
6120 (find_data_references_in_stmt): Restrict the analysis of data
6121 references to the given loop nest.
3cb960c7
ZD
6122 (find_data_references_in_loop): Made static. Pass loop nest to
6123 find_data_references_in_stmt.
6124 (compute_data_dependences_for_loop): Use DR_VOPS.
6125 (free_data_ref): Free DR_VOPS.
6126 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
6127 (struct innermost_loop_behavior): ... new.
6128 (struct base_object_info): Replaced by ...
6129 (struct indices): ... new.
6130 (struct dr_alias): New.
6131 (enum data_ref_type): Removed.
6132 (struct data_reference): Consist of struct innermost_loop_behavior,
6133 struct indices and struct dr_alias.
6134 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
6135 (DR_MEMTAG): Renamed to ...
6136 (DR_SYMBOL_TAG): ... this.
6137 (find_data_references_in_loop): Declaration removed.
6138 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
6139 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
6140 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
6141 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
6142
8a8b05f4
RE
61432007-05-13 Revital Eres <eres@il.ibm.com>
6144
6145 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
6146 which walks virtual def-use chains to find redundant stores.
6147 (dse_optimize_stmt): Call it.
6148
bae8b6b2
SB
61492007-05-12 Steven Bosscher <steven@gcc.gnu.org>
6150
6151 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
6152 * passes.c (init_optimization_passes): Move pass_jump_bypass
6153 after loop2.
6154
6155 * basic-block.h (bb_has_eh_pred): Fix style issue.
6156
7f6055d0
SB
61572007-05-12 Steven Bosscher <steven@gcc.gnu.org>
6158
6159 PR rtl-optimization/31848
6160 * loop-invariant.c (move_invariant_reg): If we move an insn
6161 with a REG_EQUAL note, and that insn is not always executed,
6162 remove the REG_EQUAL note.
6163
c4160806
RG
61642007-05-12 Richard Guenther <rguenther@suse.de>
6165
6166 PR tree-optimization/31797
6167 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
6168 propagate into a stmt that has volatile ops.
6169
a7471708
RS
61702007-05-12 Richard Sandiford <richard@codesourcery.com>
6171
6172 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
6173 (gcc_tooldir): Likewise.
6174 * configure: Regenerate.
6175 * Makefile.in (libsubdir_to_prefix): New variable, based on the
6176 old configure.ac gcc_tooldir setting.
6177 (prefix_to_exec_prefix): New variable.
6178 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
6179 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
6180
79bedddc
SR
61812007-05-11 Silvius Rus <rus@google.com>
6182
6183 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
6184 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
6185 * c-common.h (strict_aliasing_warning): Change return type.
6186 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
6187 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
6188 (build_c_cast): Condition call to strict_aliasing_warning.
6189 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
6190 * flags.h (set_Wstrict_aliasing): Declare.
6191 * opts.c (set_Wstrict_alising): Define, add call to.
6192 * tree-flow.h (strict_aliasing_warning_backend): Declare.
6193 * tree-ssa-alias-warnings.c: New file.
6194 * tree-ssa-alias.c (compute_may_aliases): Add call to
2b2c2fe5 6195 strict_aliasing_warning_backend.
79bedddc 6196
9ba025a2
ZD
61972007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
6198
6199 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
6200 Use loop_depth and loop_outer accessor functions.
6201 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
6202 determine_invariantness_stmt, move_computations_stmt): Ditto.
6203 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
6204 add_loop, loopify, unloop, fix_loop_structure): Ditto.
6205 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
6206 * tree-scalar-evolution.c (interpret_loop_phi,
6207 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
6208 instantiate_parameters_1, scev_const_prop): Ditto.
6209 * cfghooks.c (make_forwarder_block): Ditto.
6210 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
6211 * modulo-sched.c (loop_canon_p): Ditto.
6212 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
6213 slpeel_can_duplicate_loop_p): Ditto.
6214 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
6215 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
6216 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
6217 cancel_loop, verify_loop_structure): Ditto.
6218 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
6219 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
6220 superloops vector instead of "pred" array.
6221 (establish_preds): Take father loop as an argument. Initialize the
6222 superloops vector.
7e08fa35
UB
6223 (flow_loop_tree_node_add): Pass father loop to establish_preds.
6224 Do not initialize loop->outer.
9ba025a2
ZD
6225 (flow_loop_tree_node_remove): Truncate the superloops vector.
6226 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
6227 "pred" merged to "superloops" vector.
6228 (loop_depth, loop_outer): New.
6229 (fel_init): Use loop_outer.
6230
7be82279
JH
62312007-05-11 Jan Hubicka <jh@suse.cz>
6232
6233 * cgraphunit.c: Include gt-cgraphunit.h
6234 (static_ctors, static_dtors): New static vars.
6235 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
6236 based on implementation in c-common.c
6237 (cgraph_finalize_function): Call record_cdtor_fn.
6238 (cgraph_optimize): Call cgraph_build_cdtor_fns.
6239 * decl.c (finish_function): Do not call c_record_cdtor_fn.
6240 (c_write_global_declarations): Do not call c_build_cdtor_fns.
6241 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
6242 build_cdtor, c_build_cdtor_fns): Remove.
6243 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
6244 c_build_cdtor_fns): Remove prototype.
6245
2a5fce6d
PC
62462007-05-11 Paolo Carlini <pcarlini@suse.de>
6247
6248 PR other/31852
6249 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
6250 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
6251 * builtins.c (fold_builtin_memchr): New.
6252 (expand_builtin_memchr): Call the latter.
6253 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
6254 * doc/extend.texi ([Other built-in functions provided by GCC]):
6255 Document memchr.
6256
35dd9a0e
AK
62572007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
6258
6259 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
6260 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
6261 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
6262 PFPO_OP1_TYPE_SHIFT): Constants added.
6263 (DFP_ALL): Mode macro defined.
6264 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
6265 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
6266 Insn definitions added.
6267 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
6268 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
6269 Expanders added.
6270
e71d7f88
ZD
62712007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
6272
6273 PR tree-optimization/31885
7e08fa35
UB
6274 * tree-chrec.c (chrec_contains_undetermined): Do not consider
6275 NULL_TREE to be undetermined.
e71d7f88
ZD
6276 (automatically_generated_chrec_p): Return false for NULL.
6277
b548a9c2
BS
62782007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
6279
6280 * config/bfin/bfin.h (MOVE_RATIO): Define.
6281
1910440e
RS
62822007-05-10 Richard Sandiford <richard@codesourcery.com>
6283
6284 * config.gcc (sparc-wrs-vxworks): New target.
6285 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
6286 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
6287 * config/sparc/sparc.h: Include vxworks-dummy.h.
6288 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
6289 include LABEL_REFs too.
6290 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
6291 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
6292 VxWorks.
6293 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
6294 on VxWorks.
6295 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
6296 (sparc_emit_call_insn): New function.
6297 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
6298 functions when generating VxWorks PIC.
6299 * config/sparc/sparc.md (vxworks_load_got): New pattern.
6300 (call, call_value): Use sparc_emit_call_insn instead of
6301 emit_call_insn.
6302
4575a800 63032007-05-09 Bob Wilson <bob.wilson@acm.org>
2b2c2fe5 6304
4575a800 6305 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
2b2c2fe5 6306
74ed13f5
BW
63072007-05-09 Bob Wilson <bob.wilson@acm.org>
6308
6309 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
7e08fa35
UB
6310 for floating-point values if HOST_BITS_PER_LONG > 32. Use
6311 split_double instead of operand_subword.
74ed13f5 6312
520c62ad
BS
63132007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
6314
6315 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
6316 * config/bfin/bfin.c (bfin_local_alignment): New function.
6317 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
6318
14661f36
CF
63192007-05-08 Chao-ying Fu <fu@mips.com>
6320
6321 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
6322 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
6323 (smsub_widen_optab, umsub_widen_optab): Define.
6324 * optabs.c (init_optabs): Initialize smsub_widen_optab and
6325 umsub_widen_optab.
6326 * genopinit.c (optabs): Fill in smsub_widen_optab and
6327 umsub_widen_optab.
6328 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
6329 and umsub_widen_optab to implement multiply-subtract sequences.
6330 * config/mips/mips.md (*msac<u>_di): Rename to...
6331 (<u>msubsidi4): ...this. Extend condition to include
6332 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
6333 of operand 0 to "ka" and use the three-operand form of msub<u>
6334 for TARGET_DSPR2.
6335 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
6336 to define_expands.
6337
10050f74
KK
63382007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6339
6340 PR rtl-optimization/28011
6341 * reload.c (push_reload): Set dont_share if IN appears in OUT
6342 also when IN is a PLUS rtx.
6343 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
6344 are same PLUS rtx.
6345
b4aaa77b
KH
63462007-05-08 Kazu Hirata <kazu@codesourcery.com>
6347
6348 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
6349 call unshare_all_decls.
6350 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
6351 (unshare_all_decls): Remove.
6352
bfa64d0e
SM
63532007-05-08 Simon Martin <simartin@users.sourceforge.net>
6354
6355 PR 31847
6356 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
6357 dumps.
6358
e8ab09c1 63592007-05-08 Sandra Loosemore <sandra@codesourcery.com>
d9987fb4 6360 Nigel Stephens <nigel@mips.com>
e8ab09c1
SL
6361
6362 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
6363 Update comments and all uses.
6364 (MIN_FPRS_PER_FMT): Define.
6365 * config/mips/mips.c (function_arg): Fix to correctly handle
6366 the -mips32r2 -mfp64 -mabi=32 case.
6367 (override_options): Enable use of odd-numbered registers for
6368 SFmode values on MIPS32.
6369 (mips_save_reg_p): Save whole floating-point register pair if
6370 either half is used.
6371 (compute_frame_size): Fix comment.
6372
1f9e4ca1
JZ
63732007-05-08 Jie Zhang <jie.zhang@analog.com>
6374
6375 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
6376 argument of type bool.
6377 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
6378 argument. Safely select temporary P register according to it.
6379 (do_link): Change call site of add_to_reg accordingly.
6380 (do_unlink): Add epilogue_p as a fourth argument and pass it
6381 to add_to_reg.
6382 (expand_interrupt_handler_epilogue): Change call of do_unlink
6383 accordingly.
6384 (bfin_expand_prologue): Add a third argument sibcall_p.
6385 * config/bfin/bfin.md (epilogue): Change call of
6386 bfin_expand_epilogue accordingly.
6387 (sibcall_epilogue): Likewise.
6388 (eh_return_internal): Likewise.
2b2c2fe5 6389
28f601ff
JZ
6390 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
6391 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
6392 * config/bfin/bfin.c (bfin_handle_option): Handle
6393 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
6394 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
6395 Support bf534, bf536 and bf561.
6396 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
6397
ac97d816
UB
63982007-05-08 Uros Bizjak <ubizjak@gmail.com>
6399
6400 PR target/31854
6401 * config/i386/i386.c (ix86_function_regparm): Process local
6402 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
2b2c2fe5 6403
841cc7da
MS
64042007-05-07 Mike Stump <mrs@apple.com>
6405
6406 * doc/invoke.texi (Warning Options): Document that -Wempty-body
6407 also checks for and while statements in C++.
6408
2091ff66
NF
64092007-05-07 Nathan Froyd <froydnj@codesourcery.com>
6410
6411 * gcc.c (at_file_supplied): New variable.
6412 (main): Set it if we expanded argv.
6413 (do_spec_1): Pass an @-file to the linker if we were called with
6414 an @-file argument and HAVE_GNU_LD.
6415 * collect2.c (at_file_supplied): New variable.
6416 (response_file): New variable.
6417 (collect_exit): Unlink response_file if necessary.
6418 (handler): Likewise.
6419 (do_wait): Likewise.
6420 (main): Set at_file_supplied if we expanded argv.
6421 (collect_execute): Pass an @-file to subprocesses if we were called
6422 with an @-file argument.
6423 * configure.ac: Add define for HAVE_GNU_LD.
6424 * configure: Regenerate.
6425 * config.in: Regenerate.
6426
d9987fb4 64272007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
44cfab35
N
6428
6429 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
6430 operand to HI mode.
6431 (mulsi3): New.
6432 (divsi3): New.
6433 (udivsi3): New.
6434
5abd2125
JS
64352007-05-07 Jayant Sonar <jayants@kpitcummins.com>
6436
6437 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6438 (TARGET_ENCODE_SECTION_INFO): Re-define.
6439 (m32c_encode_section_info): New
6440 (function_vector_handler): New
6441 (current_function_special_page_vector): New
6442 (m32c_special_page_vector_p): New.
2b2c2fe5 6443 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
5abd2125 6444 Prototype.
2b2c2fe5 6445 * config/m32c/jump.md: Added instruction JSRS for functions
5abd2125 6446 with attribute "function_vector".
2b2c2fe5 6447 * doc/extend.texi (function_vector): Added description
5abd2125
JS
6448 for M16C, M32C targets.
6449
3eb5f26f
DD
64502007-05-07 DJ Delorie <dj@redhat.com>
6451
6452 PR 31794
6453 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
6454 ashrpsi3, lshrpsi3): Update shift count constraint.
6455
b187f5cd 64562007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
2091ff66 6457 Nathan Froyd <froydnj@codesourcery.com>
b187f5cd
DS
6458
6459 PR 22133
6460 * c-incpath.c (add_path): Strip trailing path separators.
6461
8d9d6561
EB
64622007-05-07 Eric Botcazou <ebotcazou@adacore.com>
6463
6464 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
4be1caf9 6465 Free dominance info before purging EH edges.
8d9d6561
EB
6466 (eliminate_degenerate_phis): Likewise.
6467 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
6468
2cb7995f
JH
64692007-05-07 Jan Hubicka <jh@suse.cz>
6470
6471 * gimplify.c (gimplify_expr): Do not crash when folding
6472 (void *)(int)&a + 4.
6473
2f8e3bd7
FXC
64742007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6475
6476 PR driver/31694
6477 * c-opts.c (lang_fortran): Make it non static.
6478 * c-common.h (lang_fortran): New prototype.
6479 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
6480 -lang-fortran option was passed by the driver.
6481
982533a5
EB
64822007-05-06 Eric Botcazou <ebotcazou@adacore.com>
6483
6484 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
6485 of ASSERT_CHECKING. Tweak message.
6486
64872007-05-06 Revital Eres <eres@il.ibm.com>
290358f7
RE
6488
6489 PR 30957
6490 * loop-unroll.c (insert_var_expansion_initialization):
6491 Initialize the expansions with -zero instead of +zero.
6492
a758fa89
AJ
64932007-05-05 Aurelien Jarno <aurelien@aurel32.net>
6494
6495 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
2b2c2fe5
EC
6496 into pic and non-pic versions. Mark r19 as used for
6497 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
a758fa89
AJ
6498 for tgd_load, tld_load and tie_load .
6499 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
2b2c2fe5 6500 version of tgd_load, tld_load and tie_load depending on the
a758fa89
AJ
6501 value of flag_pic.
6502
3fc95619
UD
65032007-05-04 Ulrich Drepper <drepper@redhat.com>
6504 Jakub Jelinek <jakub@redhat.com>
6505
6506 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
6507 (__do_global_dtors_aux): Use more paranoid loop to run
6508 destructors if HIDDEN_DTOR_LIST_END.
6509 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
6510
52d53754
JJ
65112007-05-04 Jakub Jelinek <jakub@redhat.com>
6512
6513 * varasm.c (align_variable): Don't increase alignment for
6514 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
6515 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
6516
2b28c07a
JC
65172007-05-04 Josh Conner <jconner@apple.com>
6518
6519 * basic-block.h (cdi_direction): Assign values to all enumeration
6520 constants.
6521 (dom_computed): Remove.
6522 (dom_info_state): New.
6523 (set_dom_info_availability): New.
6524 * tree-ssa-loop-im.c (determine_invariantness): Initialize
6525 walk_data.dom_direction.
6526 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
6527 instead of dom_computed[].
6528 (split_edge): Likewise.
6529 (create_basic_block): Likewise.
6530 (merge_blocks): Likewise.
6531 * ifcvt.c (find_if_header): Likewise.
6532 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
6533 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
6534 * tree-ssa.c (verify_ssa): Likewise.
6535 * tree-cfg.c (tree_verify_flow_info): Likewise.
6536 (remove_edge_and_dominated_blocks): Likewise.
6537 * dominance.c (dom_computed): Make static.
6538 (calc_dfs_tree_nonrec): Change third param to a bool.
6539 (calc_dfs_tree): Change second param to a bool.
6540 (calc_idioms): Change second param to a bool. Use
6541 dom_convert_dir_to_idx.
6542 (init_dom_info): Validate dir before using.
6543 (dom_convert_dir_to_idx): New.
6544 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
6545 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
6546 (free_dominance_info): Use dom_convert_dir_to_idx.
6547 (get_immediate_dominator): Likewise.
6548 (set_immediate_dominator): Likewise.
6549 (get_dominated_by): Likewise.
6550 (redirect_immediate_dominators): Likewise.
6551 (nearest_common_denominator): Likewise.
6552 (dominated_by_p): Likewise.
6553 (bb_dom_dfs_in): Likewise.
6554 (bb_dom_dfs_out): Likewise.
6555 (recount_dominator): Likewise.
6556 (iterate_fix_dominators): Likewise.
6557 (add_to_dominance_info): Likewise.
6558 (delete_from_dominance_info): Likewise.
6559 (first_dom_son): Likewise.
6560 (next_dom_son): Likewise.
6561 (dom_info_available_p): Likewise.
6562 (dom_info_state): New.
6563 (set_dom_info_availability): New.
6564
b60cb710
AK
65652007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
6566
6567 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
6568 Expander removed.
6569 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
6570
b86dee19 65712007-05-04 Bob Wilson <bob.wilson@acm.org>
2b2c2fe5 6572
b86dee19
BW
6573 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
6574 (subdi3, subdi_carry): Delete.
2b2c2fe5 6575
06ea1b84
JH
65762007-05-04 Jan Hubicka <jh@suse.cz>
6577 Richard Guenther <rguenther@suse.de>
6578
6579 * opts.c (decode_options): Do not fiddle with inlining
6580 parameters in case of optimizing for size.
6581 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
6582 for size do nothing.
6583 (cgraph_decide_inlining_of_small_function): When optimizing for
6584 size never inline functions increasing caller size.
6585 (cgraph_early_inlining): Inline for size when optimizing for size.
6586
e4fae5f7
BS
65872007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
6588
6589 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
6590 logical operations piecewise.
6591 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
6592 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
6593 subdi_sesidi_di): Delete.
6594 (add_with_carry): Produce carry in CC instead of a DREG to shorten
6595 the generated sequence. Allow three-reg add in constraints. Rewrite
6596 the rtl expression for carry to avoid zero_extend of a constant.
6597 (sub_with_carry): New pattern.
6598 (adddi3, subdi3): Change into define_expand. For subtract, generate a
6599 different sequence not involving jumps.
6600 (notbi): Now a named pattern.
6601
80b9cbc9
BL
66022007-05-04 Bradley Lucier <lucier@math.purdue.edu>
6603
6604 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
6605 Add the note about a significant loss of accuracy of some
6606 mathematical routines when these options are used.
6607
916fa4f0
MK
66082007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6609
6610 * haifa-sched.c (rtx_vec_t): New typedef.
6611 (contributes_to_priority_p): Extract piece of priority () into new
6612 static function.
6613 (priority): Use the function. Add assertion.
6614 (rank_for_schedule, set_priorities): Add assertion to check that
6615 insn's priority is initialized.
6616 (clear_priorities, calc_priorities): Change signature. Make it update
6617 all relevant insns. Update all callers ('add_to_speculative_block ()'
6618 and 'create_block_check_twin ()').
6619 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
6620 Add new field 'priority_status'.
6621 (INSN_PRIORITY_STATUS): New macro.
6622 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
6623
b640bd8f
MK
66242007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6625
6626 * sched-ebb.c (debug_ebb_dependencies): New static function.
6627 (init_ready_list): Use it.
6628
6629 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
6630 with changed signature and 'debug_rgn_dependencies ()'.
6631 (debug_rgn_dependencies): New static function.
6632 (init_ready_list): Use it.
2b2c2fe5 6633
b640bd8f
MK
6634 * sched-int.h (debug_dependencies): Declare.
6635
04749f41
AK
66362007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
6637
6638 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
6639
820b51ae
DM
66402007-05-04 Dirk Mueller <dmueller@suse.de>
6641
6642 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
6643
ac5a28a6
JH
66442007-05-03 Jan Hubicka <jh@suse.cz>
6645
7e08fa35
UB
6646 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
6647 ((T1)X op (T1)Y), for pointer type in more cases than before.
ac5a28a6
JH
6648
6649 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
6650
6651 * tree-object-size.c (plus_expr_object_size): When operand size is
6652 unknown, return unknown.
6653
d347d4c7
DM
66542007-05-03 Dirk Mueller <dmueller@suse.de>
6655
6656 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
6657
6658 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
6659 options.
6660
6661 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
6662
ce396345
JJ
66632007-05-03 Janis Johnson <janis187@us.ibm.com>
6664
6665 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
6666
13cc6d1b
JM
66672007-05-03 Joseph Myers <joseph@codesourcery.com>
6668
6669 * config/soft-fp/double.h, config/soft-fp/extended.h,
6670 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
6671 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
6672 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
6673 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
6674 glibc CVS.
6675
a45bce6e
ILT
66762007-05-03 Ian Lance Taylor <iant@google.com>
6677
8fa013c3 6678 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
a45bce6e
ILT
6679 MASK_PPC_GFXOPT for 8540 or 8548.
6680
98120f62
UB
66812007-05-03 Uros Bizjak <ubizjak@gmail.com>
6682
6683 * tree-vect-transform.c (vect_update_inits_of_drs): Use
6684 vect_print_dump_info() to output debug information.
6685
f3ba4235
UB
66862007-05-03 Uros Bizjak <ubizjak@gmail.com>
6687
6688 PR target/31768
6689 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
6690 operands of size 2 when operand is not MEM_P.
6691
e604f56c
ZD
66922007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
6693
6694 PR tree-optimization/30565
6695 * lambda-code.c (perfect_nestify): Fix updating of dominators.
6696
314f9913
BS
66972007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
6698
6699 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
6700 (umulsi3_highpart): Use them.
6701 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
6702 for final accumulator to D regisster tranfser.
6703
cb9ed5d7
DN
67042007-05-03 Dorit Nuzman <dorit@il.ibm.com>
6705
6706 PR tree-optimization/31699
7e08fa35
UB
6707 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
6708 wrong code.
2b2c2fe5
EC
6709 (vect_enhance_data_refs_alignment): Compute peel amount using
6710 TYPE_VECTOR_SUBPARTS instead of vf.
cb9ed5d7
DN
6711 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
6712
df582833
BM
67132007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
6714
6715 PR bootstrap/31776
6716 * system.h: Remove inclusion of double-int.h
6717 * tree.h: Include double-int.h
6718 * gengtype.c: Likewise
6719 * cfgloop.h: Likewise
6720 * Makefile.in: Adjust dependencies on double-int.h
6721
ae077284
EC
67222007-05-02 Eric Christopher <echristo@apple.com>
6723
6724 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
6725 -shared to -Zdynamiclib.
6726
ba992967
SP
67272007-05-02 Seongbae Park <seongbae.park@gmail.com>
6728
6729 PR c++/31663
6730 * c-common.c (strip_pointer_or_array_types): New function.
6731 * c-common.h (strip_pointer_or_array_types): New function declaration.
6732
e0310afb
ZD
67332007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
6734
6735 PR tree-optimization/31771
6736 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
6737
ad1ec76f
PB
67382007-05-02 Paul Brook <paul@codesourcery.com>
6739
6740 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
6741
0e3aa126
AP
67422007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
6743
c5b75e95 6744 PR middle-end/29715
0e3aa126
AP
6745 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
6746 transformation.
6747
5271f9ba
NC
67482007-05-02 Nick Clifton <nickc@redhat.com>
6749
6750 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
6751
f6c5fefc
RG
67522007-05-02 Richard Guenther <rguenther@suse.de>
6753
6754 PR tree-optimization/31146
6755 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
6756 argument, single_use_p. If we have a single use that is
6757 a conversion to the definition rhs type, propagate that rhs.
6758 (forward_propagate_addr_expr): Pass single_use_p argument
6759 to forward_propagate_addr_expr_1.
6760
9a60b02d
L
67612007-05-01 H.J. Lu <hongjiu.lu@intel.com>
6762
6763 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
6764 variable.
6765
d8f52b02
DR
67662007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6767
ae077284 6768 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
d8f52b02 6769 'AMD Family 10 core'.
ae077284 6770
9369ed95
DR
67712007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6772
ae077284
EC
6773 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
6774 and athlon64-sse3 as improved versions of k8, opteron and athlon64
9369ed95
DR
6775 with SSE3 instruction set support.
6776 * doc/invoke.texi: Likewise.
ae077284 6777
2af6cb38
DR
67782007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6779
6780 * config/i386/i386.c (override_options): Tuning 32-byte loop
ae077284 6781 alignment for amdfam10 architecture. Increasing the max loop
2af6cb38 6782 alignment to 24 bytes.
ae077284 6783
b38bab94
KH
67842007-05-01 Kazu Hirata <kazu@codesourcery.com>
6785
6786 * config/m68k/constraints.md: New.
6787 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
6788 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6789 EXTRA_CONSTRAINT): Remove.
6790 * config/m68k/m68k.md: Include constraints.md.
6791 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
6792
e1f28918
ILT
67932007-05-01 Ian Lance Taylor <iant@google.com>
6794
6795 PR tree-optimization/31739
6796 * tree-vrp.c (vrp_val_is_max): New static function.
6797 (vrp_val_is_min): New static function.
6798 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
6799 copying the node.
6800 (set_value_range): Use vrp_val_is_{max,min}.
6801 (extract_range_from_assert): Likewise.
6802 (extract_range_from_binary_expr): Likewise.
6803 (extract_range_from_unary_expr): Likewise.
6804 (dump_value_range, vrp_meet): Likewise.
6805 (vrp_visit_phi_node): Likewise.
6806 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
6807
1d87d70d
MM
68082007-05-01 Mark Mitchell <mark@codesourcery.com>
6809
6810 * config/i386/gmon-sol2.c (size_t): New type.
6811 (intptr_t): Likewise.
6812 (s_textsize): Declare as size_t.
6813 (sbrk): Declare.
6814 (monstartup): Use size_t for sizes.
6815 (_mcount): Save and restore registers.
6816 (internal_mcount): Pass 0 as the first argument to monstartup
6817 in 64-bit mode.
6818 (moncontrol): Convert pointer to appropriately sized integer
6819 before passing to profil.
6820
b26941b4
JM
68212007-05-01 Joseph Myers <joseph@codesourcery.com>
6822
6823 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
6824 __NO_FPRS__, not just if _SOFT_DOUBLE.
6825 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
6826 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
6827 also for E500 double.
6828 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
6829 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
6830 && !TARGET_FPRS).
6831
ae2cf11b
RG
68322007-05-01 Richard Guenther <rguenther@suse.de>
6833
6834 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
6835 is NULL.
6836
037ab18d
JM
68372007-05-01 Joseph Myers <joseph@codesourcery.com>
6838
6839 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
6840
617428e9
JH
68412007-05-01 Jan Hubicka <jh@suse.cz>
6842
6843 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
6844 invariant.
6845
fe9821b8
JH
68462007-05-01 Jan Hubicka <jh@suse.cz>
6847
6848 * tree.h (maybe_fold_offset_to_component_ref): Remove.
6849 (maybe_fold_offset_to_reference): Declare.
6850 * fold-const.c (fold_unary): Do not fold
6851 (type *)&A into &A->field_of_type_and_offset_0
6852 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
6853 size is unknown, give up.
6854 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
6855 offsets.
6856 (maybe_fold_offset_to_reference): New.
6857 (maybe_fold_stmt_indirect): Use it.
6858 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
6859 * gimplify.c (gimplify_conversion): Canonicalize conversions to
6860 field references.
6861 (gimplify_expr): Likewise for plus_expr.
6862
8b11009b
ZD
68632007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
6864
6865 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
6866 bsi_after_labels. Always insert statements before bsi.
6867 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
6868 * predict.c (apply_return_prediction): Check for empty blocks.
6869 * cfgexpand.c (lab_rtx_for_bb): New variable.
6870 (label_rtx_for_bb): Do not create new tree labels.
6871 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
6872 (tree_expand_cfg): Initialize lab_rtx_for_bb.
6873 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
6874 creating edges.
6875 (label_for_bb): Add field used.
6876 (update_eh_label, main_block_label): Mark the label used.
6877 (cleanup_dead_labels): Remove unused labels.
6878
f5052e29
RG
68792007-05-01 Richard Guenther <rguenther@suse.de>
6880
6881 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
6882 if it is not about to be set.
6883 (get_value_range): Do not pre-allocate equiv bitmap.
6884 (update_value_range): No need to clear equiv field.
6885 (add_equivalence): Change prototype to get bitmap pointer.
6886 Allocate bitmap here if it is not already.
6887 (extract_range_from_assert): Do not allocate bitmap here.
6888 Update callers to add_equivalence.
6889 (extract_range_from_ssa_name): Likewise.
6890 (get_vr_for_comparison): New static helper.
6891 (compare_name_with_value): Handle NULL equiv bitmap by
6892 peeling the first iteration of the comparison loop.
6893 Use get_vr_for_comparison.
6894 (compare_names): Handle NULL equiv bitmaps by using fake
6895 ones. Use get_vr_for_comparison.
6896
e4fd22c6
BM
68972007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
6898
6899 * double-int.c (mpz_set_double_int): Moved from
6900 tree-ssa-loop-niter.c.
6901 (mpz_get_double_int): Likewise; also, add option to wrap
6902 out-of-range integers.
6903 * double-int.h: New prototypes for above.
6904 * tree.c (get_static_type_bounds): Moved from
6905 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
6906 TYPE_MAX_VALUE if they exist..
6907 * tree.h: New prototype for above.
6908 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
6909 get_type_bounds calls.
6910 (mpz_set_double_int): Move to double-int.c.
6911 (get_type_bounds): Move to tree.c, rename to
6912 get_static_type_bounds.
6913 (mpz_to_double_int): Move to double-int.c, rename to
6914 mpz_get_double_int.
6915
0a21c1d2
BW
69162007-04-30 Bob Wilson <bob.wilson@acm.org>
6917
6918 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
6919 DIV0 exception can fall through to a normal return.
ae077284 6920
143569a8
AO
69212007-04-30 Alexandre Oliva <aoliva@redhat.com>
6922
6923 PR middle-end/22156
6924 Temporarily revert:
6925 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
d9987fb4 6926 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
143569a8
AO
6927 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
6928 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
6929 initialize align to silence bogus warning.
6930 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
6931 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
6932 all_no_warning.
6933 (struct sra_walk_fns): Remove use_all parameter from use.
6934 (sra_hash_tree): Handle BIT_FIELD_REFs.
6935 (sra_elt_hash): Don't hash bitfld blocks.
6936 (sra_elt_eq): Skip them in parent compares as well. Handle
6937 BIT_FIELD_REFs.
6938 (sra_walk_expr): Don't maintain or pass down use_all_p.
6939 (scan_use): Remove use_all parameter.
6940 (scalarize_use): Likewise. Re-expand assignment to
6941 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
6942 output, and re-scalarize after output. Don't mark anything
6943 for no warning.
6944 (scalarize_ldst): Adjust.
6945 (scalarize_walk_gimple_modify_statement): Likewise.
6946 (build_element_name_1): Handle BIT_FIELD_REFs.
6947 (instantiate_element): Don't warn for any element whose parent
6948 is used as a whole.
6949 (instantiate_missing_elements_1): Return the sra_elt.
6950 (canon_type_for_field): New.
6951 (try_instantiate_multiple_fields): New.
6952 (instantiate_missing_elemnts): Use them.
6953 (mark_no_warning): Removed.
6954 (generate_one_element_ref): Handle BIT_FIELD_REFs.
6955 (REPLDUP, sra_build_elt_assignment): New.
6956 (generate_copy_inout): Use them.
6957 (generate_element_copy): Likewise. Handle bitfld differences.
6958 (generate_element_zero): Don't recurse for blocks. Use
6959 sra_build_elt_assignment.
6960 (generate_one_element_int): Take elt instead of var. Use
6961 sra_build_elt_assignment.
6962 (generate_element_init_1): Adjust.
6963 (scalarize_use, scalarize_copy): Use REPLDUP.
6964 (scalarize_ldst): Move assert before dereference.
6965 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
6966
ab44f281
AP
69672007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
6968
6969 PR C++/31721
6970 * tree.c (reconstruct_complex_type): Reconstruct a reference
6971 correctly.
6972 Also use the same mode for the pointer as the old pointer type.
6973
a19632d4
FXC
69742007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
6975
6976 * doc/trouble.texi (Interoperation): Remove note about Ultrix
6977 Fortran compiler.
6978
268886f3
ZD
69792007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
6980
8d6e09d9 6981 PR rtl-optimization/31676
268886f3
ZD
6982 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
6983 (df_refs_record): Call it.
6984
26c5953d
BS
69852007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6986
6987 * rtl.def (SS_ABS): New code.
6988 * config/bfin/bfin.c (print_operand): New modifier 'v'.
6989 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
6990 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
6991 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
6992 (bfin_init_builtins): Define them.
6993 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
6994 (bfin_expand_builtin): ... and handle the others here.
6995 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
6996 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
6997 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
6998 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
6999 operand is only HImode.
7000
88250695
SB
70012007-04-29 Steven Bosscher <steven@gcc.gnu.org>
7002
7003 * regclass.c (scan_one_insn): Remove splitting of
7004 two address insns.
7005
64e7e238
SL
70062007-04-28 Sandra Loosemore <sandra@codesourcery.com>
7007 Nigel Stephens <nigel@mips.com>
7008
7009 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
7010
55e092c4
JH
70112007-04-28 Jan Hubicka <jh@suse.cz>
7012
7013 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
7014 insn_locators_alloc instead of insn_locators_initialize;
7015 call reset_block_changes.
7016 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7017 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
7018 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
7019 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
7020 * config/score/score.c (th_output_mi_thunk): Likewise.
7021 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
7022 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
7023 tolerate uninitialized locator info.
7024
7025 Re-apply:
7026 * function.c (init_function_start): Don't init line number info.
7027 (expand_function_end): Update.
7028 (reset_block_changes, record_block_change, finalize_block_changes,
7029 check_block_change, free_block_changes): Kill.
7030 * function.h (reset_block_changes, record_block_change,
7e08fa35
UB
7031 finalize_block_changes, check_block_change, free_block_changes):
7032 Remove prototypes.
55e092c4
JH
7033 (struct function): Remove ib_boundaries_block.
7034 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
7035 Use curr_insn_locator to initialize locator.
7036 (emit_line_note): Remove.
7037 * cfgexpand.c (expand_gimple_cond_expr): Update.
7038 (construct_exit_block): Likewise.
7039 (tree_expand_cfg): Initialize/finalize locators.
7040 * expr.c (expand_expr_real): Update.
7041 * cfglayout.c (line_locators_locs, line_locators_lines,
7042 file_locators_locs, file_locators_files): Remove.
7043 (set_block_levels): Move to cfgexpand.c.
7044 (insn_locators_initialize): Remove.
7045 (pass_insn_locators_initialize): Remove.
7046 (locations_locators_locs, locations_locators_vals): New static vars.
7047 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
7048 Likewise.
7049 (insn_locators_alloc, insn_locators_finalize,
7050 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7051 New functions.
7052 (locator_location): New.
7053 (locator_line, locator_file): Rewrite.
7054 * rtl.h (emit_line_note): Kill.
7055 (insn_locators_alloc, insn_locators_finalize,
7056 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7057 Declare.
7058 * tree-inline.c (initialize_cfun): Do not initialize
7059 ib_boundaries_block.
7060 * passes.c (pass_insn_locators_initialize): Remove.
7061
3722506a
ZD
70622007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
7063
7064 * tree-cfg.c (move_block_to_fn): Release bb from dominance
7065 info. Update last_basic_block correctly.
7066
eb996a4a
KK
70672007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
7068
7069 PR target/31701
7070 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
7071 register itself to hold the offset constant. Tell flow the use
7072 of r4 and r5 when they are used.
7073
113ab41c
RG
70742007-04-27 Richard Guenther <rguenther@suse.de>
7075
7076 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
7077 if we simplified anything.
7078 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
7079 warnings until we did a simplification and the stmt was not
7080 marked as TREE_NO_WARNING.
7081
bfa45564
MS
70822007-04-27 Mike Stump <mrs@apple.com>
7083
7084 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
7085
093b203b
ILT
70862007-04-27 Ian Lance Taylor <iant@google.com>
7087
7088 PR middle-end/31710
7089 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
7090 TYPE_MAX_VALUE exist, convert them to the new type.
7091
30251f7a
ZD
70922007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7093
7094 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
7095 if it claims to be available.
7096 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
7097 edge is redirected.
7098 (perform_tree_ssa_dce): Always free postdominators.
7099
48f46219
RH
71002007-04-27 Richard Henderson <rth@redhat.com>
7101
7102 * config/alpha/predicates.md (aligned_memory_operand): Mark
7103 as define_special_predicate.
7104 (unaligned_memory_operand, normal_memory_operand): Likewise.
7105 (reg_or_unaligned_mem_operand): Remove.
7106 (any_memory_operand): Match the documentation and check for
7107 non-renumbered pseudos during reload.
7108 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
7109 alpha_secondary_reload_class, update to new interface, make static.
7110 Handle CQImode like HImode. Remove FP subreg check.
7111 (alpha_expand_mov): Use replace_equiv_address.
7112 (alpha_expand_mov_nobwx): Use any_memory_operand.
7113 (TARGET_SECONDARY_RELOAD): New.
7114 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
7115 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
7116 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
7117 * config/alpha/alpha.md: ... here.
7118 (RELOAD12, reloadmode): New.
7119 (movcqi): New.
7120 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
7121 Don't handle the aligned case here.
7122 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
7123 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
7124 reload_inhi_help. Don't expect a scratch register.
7125 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
7126 reload_outhi_help.
7127 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
7128
64e8a9f0
RG
71292007-04-27 Richard Guenther <rguenther@suse.de>
7130
7131 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
7132
3aef2dbd
RG
71332007-04-27 Richard Guenther <rguenther@suse.de>
7134
7135 PR tree-optimization/30965
7136 PR tree-optimization/30978
7137 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
d9987fb4
UB
7138 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
7139 (find_equivalent_equality_comparison): Likewise.
7140 (simplify_cond): Likewise.
7141 (get_prop_source_stmt): New helper.
7142 (get_prop_dest_stmt): Likewise.
3aef2dbd
RG
7143 (can_propagate_from): Likewise.
7144 (remove_prop_source_from_use): Likewise.
d9987fb4
UB
7145 (combine_cond_expr_cond): Likewise.
7146 (forward_propagate_comparison): New function.
7147 (forward_propagate_into_cond): Rewrite to use fold for
7148 tree combining.
3aef2dbd
RG
7149 (tree_ssa_forward_propagate_single_use_vars): Call
7150 forward_propagate_comparison to propagate comparisons.
7151
891fc5e9
RG
71522007-04-27 Richard Guenther <rguenther@suse.de>
7153
7154 PR tree-optimization/31715
7155 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
7156 sure to do computation on the offset in an appropriate
7157 signed type.
7158
8c74fb06
RS
71592007-04-27 Richard Sandiford <richard@codesourcery.com>
7160
7161 * reload.h (elimination_target_reg_p): Declare.
7162 * reload.c (find_reloads): Don't apply the reg_rtx move
7163 optimization if the SET_DEST satisfies elimination_target_reg_p.
7164 * reload1.c (elimination_target_reg_p): New function.
7165 (gen_reload): In the move/add2 fallback, make sure that op0
7166 does not overlap the destination register.
7167
a9b77cd1
ZD
71682007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7169
7170 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
7171 transform only GIMPLE_MODIFY_STMTs.
7172 * tree-complex.c (expand_complex_operations_1): Ditto.
7173 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
7174 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
7175 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
7176 branches.
7177 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
7178 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
7179 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
7180 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
7181 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
7182 slpeel_add_loop_guard): Ditto.
7183 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
7184 * lambda-code.c (perfect_nestify): Ditto.
7185 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
7186 before the first statement.
7187 * tree-optimize.c (execute_free_datastructures): Fix comments.
7188 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
7189 * tree-flow.h (disband_implicit_edges): Declaration removed.
7190 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
7191 branches.
7e08fa35
UB
7192 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
7193 COND_EXPRs without gotos.
a9b77cd1
ZD
7194 (disband_implicit_edges, has_label_p): Removed.
7195 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
7196 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
7197 branches.
7198 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
7199 side effects.
7200 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
7201 also for COND_EXPRs.
7202 * cfgexpand.c (label_rtx_for_bb): New function.
7203 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
7204 Use label_rtx_for_bb to find the labels.
7205 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
7206 last block. Detect fallthru edges.
7207
f5c3dc96
ILT
72082007-04-26 Ian Lance Taylor <iant@google.com>
7209
7210 PR target/28675
7211 * reload.c (find_reloads_subreg_address): If the address was valid
7212 in the original mode but not in the new mode, reload the whole
7213 address.
7214
672987e8
ZD
72152007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7216
7217 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
7218 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
7219 (cleanup_control_expr_graph): Do not invalidate dominance info.
7220 Record altered blocks.
7221 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
7222 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
7223 cleanup_tree_cfg_bb): New functions.
7224 (remove_forwarder_block): Do not maintain the worklist of blocks.
7225 Record altered blocks.
7226 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
7227 not over whole cfg.
7228 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
7229 delete_unreachable_blocks if dominators are not available.
7230 * tree-inline.c (optimize_inline_calls): Free dominance information
7231 earlier.
7232 * tree-flow.h (remove_edge_and_dominated_blocks,
7233 cfgcleanup_altered_bbs): Altered.
7234 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
7235 blocks.
7236 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
7237 functions.
7238 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
7239 do not invalidate dominators.
7240
dd3b6c09
AS
72412007-04-26 Anatoly Sokolov <aesok@post.ru>
7242
ae077284 7243 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
dd3b6c09
AS
7244 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
7245 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7246 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7247
6107a6ae
SE
72482007-04-26 Steve Ellcey <sje@cup.hp.com>
7249
7250 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
7251
5c7ec4f0
RG
72522007-04-26 Richard Guenther <rguenther@suse.de>
7253
7254 PR tree-optimization/31703
7255 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
7256 the right type for the target of the bittest.
7257
02cba8df
RS
72582007-04-26 Richard Sandiford <richard@codesourcery.com>
7259
7260 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
7261 ix86_sol10_return_in_memory.
7262
e797f7e1
RS
72632007-04-26 Richard Sandiford <richard@codesourcery.com>
7264
7265 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
7266 variables.
7267
e0eb05ea
JJ
72682007-04-26 Jakub Jelinek <jakub@redhat.com>
7269
6f719560
JJ
7270 PR c++/31598
7271 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
7272
e0eb05ea
JJ
7273 PR tree-optimization/30558
7274 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
7275 clear this_state.prev_try.
7276
29173496
RS
72772007-04-26 Richard Sandiford <richard@codesourcery.com>
7278 Mark Mitchell <mark@codesourcery.com>
7279
7280 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
7281 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
7282 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
7283
a0f87454
RS
72842007-04-26 Richard Sandiford <richard@codesourcery.com>
7285
7286 PR driver/31107
7287 * doc/invoke.texi (%:print-asm-header): Document.
7288 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
7289 and -ftarget-help.
7290 (static_spec_functions): Add print-asm-header.
7291 (main): Print a banner before the --target-help linker options.
7292 (print_asm_header_spec_function): New function.
7293
6b2eeb54
KK
72942007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
7295
7296 PR target/31403
7297 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
7298 (movsf_ie): Likewise.
7299
b29441ec
PC
73002007-04-25 Paolo Carlini <pcarlini@suse.de>
7301
7302 * doc/extend.texi ([Type Traits]): Adjust per N2255.
7303
a2c2290b
BW
73042007-04-25 Bob Wilson <bob.wilson@acm.org>
7305
7e08fa35
UB
7306 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
7307 exception for divide-by-zero.
a2c2290b
BW
7308 (__umodsi3, __modsi3): Likewise.
7309
253a697e
DM
73102007-04-25 Dirk Mueller <dmueller@suse.de>
7311
7312 * c-typeck.c (build_compound_expr): Annotate warning()
7313 call with OPT_Wunused_value.
aa86a51b
DM
7314 * tree-ssa.c (warn_uninit): Annotate warning with
7315 OPT_Wunintialized.
7316 * c-common.c (handle_sentinel_attribute): Annotate warning
7317 call with OPT_Wattributes.
253a697e 7318
500fc425
TS
73192007-04-25 Thiemo Seufer <ths@mips.com>
7320
7321 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
7322 (mips16): Fix typo.
7323 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
7324 on to the assembler. Improve handling of -mno-mips16. Add handling
7325 of -mno-mips3d, -mno-dsp, -mno-dspr2.
7326 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
7327 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
7328 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
7329
4b07e9f7
DS
73302007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
7331
7332 PR target/31680
7333 * config/i386/winnt.c (i386_pe_file_end): Strip only
7334 USER_LABEL_PREFIX when writing export name.
7335
f5c7290e
RS
73362007-04-25 Richard Sandiford <richard@codesourcery.com>
7337
7338 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
7339 sh/elf.h, vx-common.h and vxworks.h.
7340 * config/sh/sh.h: Include config/vxworks-dummy.h.
7341 (SUBTARGET_OVERRIDE_OPTIONS): Define.
7342 (OVERRIDE_OPTIONS): Use it.
7343 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
7344 (vxworks_picreg): New pattern.
7345 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
7346 VXWORKS_OS_CPP_BUILTINS.
7347 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
7348 to their VXWORKS_* equivalents.
7349 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
7350 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
7351 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
7352 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
7353 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
7354 -mrtp/-fPIC multilibs.
7355 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
7356 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
7357 (MULTILIB_OSDIRNAMES): Delete.
7358
5178d50a
AS
73592007-04-25 Anatoly Sokolov <aesok@post.ru>
7360
7361 PR target/18989
7362 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
7363
205a4d09
BM
73642007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
7365
7366 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
7367 rounding mode to be specified by the caller.
7368 (real_to_mpfr) Likewise.
7369 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
7370 include new arguments.
7371 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
7372
8cf781f0
ILT
73732007-04-24 Ian Lance Taylor <iant@google.com>
7374
7375 PR tree-optimization/31605
7376 * tree-vrp.c (set_value_range): Check that min and max are not
7377 both overflow infinities.
7378 (set_value_range_to_value): New static function.
7379 (extract_range_from_binary_expr): Call set_value_range_to_value.
7380 (extract_range_from_cond_expr): Likewise.
7381 (extract_range_from_expr): Likewise.
7382 (extract_range_from_unary_expr): Likewise. Don't create a range
7383 which overflows on both sides.
7384 (vrp_meet): Check for a useless range.
7385 (vrp_visit_phi_node): If we see a constant which looks like an
7386 overflow infinity, turn off the TREE_OVERFLOW flag.
7387
1965dd3a
ILT
73882007-04-24 Ian Lance Taylor <iant@google.com>
7389
7390 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
7391
438d798f
SM
73922007-04-24 Simon Martin <simartin@users.sourceforge.net>
7393
7394 PR diagnostic/25923
7395 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
7396 diagnostic message is being built.
1965dd3a
ILT
7397 * tree-pretty-print.c (dump_generic_node): Only write the
7398 formatted text into BUFFER's stream if we are not building a
7399 diagnostic message.
438d798f
SM
7400 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
7401 dump_generic_node.
7402 * Makefile.in (toplev.o): Depend on tree-pass.h.
7403
4df28528
ILT
74042007-04-24 Ian Lance Taylor <iant@google.com>
7405
7406 PR tree-optimization/31602
7407 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
7408 conditionals in the copied loop header.
7409 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
7410 warnings if TREE_NO_WARNING is set.
7411 * doc/invoke.texi (Warning Options): Clarify that
7412 -Wstrict-overflow does not warn about loops.
7413
2d83f070
JJ
74142007-04-24 Janis Johnson <janis187@us.ibm.com>
7415
7416 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
7417 expand on the comment about _Decimal128 arguments and check the
7418 integer result of the modulus operation; for 64-bit ELF ABI, ensure
7419 that _Decimal128 argument uses even/odd register pair.
7420 (function_arg): Ditto.
7421
b883ab57
HMC
74222007-04-24 Hui-May Chang <hm.chang@apple.com>
7423
7424 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
7425 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
7426
81737468
OG
74272007-04-24 Richard Guenther <rguenther@suse.de>
7428 Olga Golovanevsky <olga@il.ibm.com>
7429
ae077284
EC
7430 * fold-const.c (multiple_of_p): Check for bottom
7431 to be zero.
81737468 7432
5fb54b91
RH
74332007-04-24 Richard Henderson <rth@redhat.com>
7434
ae077284 7435 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
5fb54b91
RH
7436 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
7437 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
7438 looking for non-zero bits shifted out. Avoid a recursive call
7439 when constructing the scalar.
7440 (__floatundisf): Likewise.
7441
cd0a10dd
NF
74422007-04-24 Nathan Froyd <froydnj@codesourcery.com>
7443
7444 * dwarf2out.c (field_byte_offset): Move the existing logic
7445 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
7446 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
7447
c9f59991
AK
74482007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7449
7450 PR target/31641
7e08fa35
UB
7451 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
7452 length argument of 0 for memset.
c9f59991
AK
7453 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
7454 unsigned shift instead of the signed variant.
7455
142cd70f
AK
74562007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7457
7458 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
7459 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
7460 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
7461 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
7462 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
7463 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
7464 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
7465 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
7466 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
7467 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
7468 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
7469 "mul<mode>3", "div<mode>3"): Insn definitions added.
7470 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
7471 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
7472 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
7473 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
7474 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
7475 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
7476 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
7477 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
7478 TARGET_FLOAT_FORMAT): Macro definitions removed.
7479 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
7480 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
7481 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
7482 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
7483 (s390_gen_rtx_const_DI): Function removed.
7484 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
7485
aeed4133
RS
74862007-04-24 Richard Sandiford <richard@codesourcery.com>
7487
7488 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
7489 over an external ffs function.
7490
7f9844ca
RS
74912007-04-24 Chao-ying Fu <fu@mips.com>
7492 Richard Sandiford <richard@nildram.co.uk>
7493
7494 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
7495 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
7496 (smadd_widen_optab, umadd_widen_optab): Define.
7497 * optabs.c (init_optabs): Initialize smadd_widen_optab and
7498 umadd_widen_optab.
7499 * genopinit.c (optabs): Fill in smadd_widen_optab and
7500 umadd_widen_optab.
7501 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
7502 and umadd_widen_optab to implement multiply-add sequences.
7503 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
7504 (<u>maddsidi4): ...this. Extend condition to include
7505 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
7506 of operand 0 to "ka" and use the three-operand form of madd<u>
7507 for TARGET_DSPR2.
7508 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
7509 to define_expands.
7510 * config/mips/constraints.md (ka): New register constraint.
7511
ec9ac2bc
JH
75122007-04-24 Jan Hubicka <j@suse.cz>
7513
7514 Revert:
7515
7516 2007-04-23 Jan Hubicka <jh@suse.cz>
7517 * function.c (init_function_start): Don't init line number info.
7518 (expand_function_end): Update.
7519 (reset_block_changes, record_block_change, finalize_block_changes,
7520 check_block_change, free_block_changes): Kill.
7521 * function.h (reset_block_changes, record_block_change,
7e08fa35
UB
7522 finalize_block_changes, check_block_change, free_block_changes):
7523 Remove prototypes.
ec9ac2bc
JH
7524 (struct function): Remove ib_boundaries_block.
7525 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
7526 Use curr_insn_locator to initialize locator.
7527 (emit_line_note): Remove.
7528 * cfgexpand.c (expand_gimple_cond_expr): Update.
7529 (construct_exit_block): Likewise.
7530 (tree_expand_cfg): Initialize/finalize locators.
7531 * expr.c (expand_expr_real): Update.
7532 * cfglayout.c (line_locators_locs, line_locators_lines,
7533 file_locators_locs, file_locators_files): Remove.
7534 (set_block_levels): Move to cfgexpand.c.
7535 (insn_locators_initialize): Remove.
7536 (pass_insn_locators_initialize): Remove.
7537 (locations_locators_locs, locations_locators_vals): New static vars.
7538 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
7539 Likewise.
7540 (insn_locators_alloc, insn_locators_finalize,
7541 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7542 New functions.
7543 (locator_location): New.
7544 (locator_line, locator_file): Rewrite.
7545 * rtl.h (emit_line_note): Kill.
7546 (insn_locators_alloc, insn_locators_finalize,
7547 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7548 Declare.
7549 * tree-inline.c (initialize_cfun): Do not initialize
7550 ib_boundaries_block.
7551 * passes.c (pass_insn_locators_initialize): Remove.
7552
edc5f63b
DF
75532007-04-24 Daniel Franke <franke.daniel@gmail.com>
7554
7555 * doc/invoke.texi: Removed leading '-' from option index entries.
7556
7506e1cb
ZD
75572007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
7558
7559 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
7560 Use phi_nodes_ptr.
7561 (create_phi_node): Use set_phi_nodes.
7562 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
7563 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
7564 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
7565 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
7566 (bsi_start, bsi_last): Use bb_stmt_list.
7567 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
7568 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
7569 Traverse the statements using tsi iterator.
7570 * basic-block.h (struct basic_block_def): Fields stmt_list
7571 and phi_nodes moved to ...
7572 (struct tree_bb_info): ... new structure.
7573 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
7574 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
7575 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
7576 (tree_verify_flow_info): Verify that il.tree is not set for
7577 entry and exit block.
7578 (tree_split_block): Use set_bb_stmt_list.
7579
933e4fe7
MS
75802007-04-23 Mike Stump <mrs@apple.com>
7581
7582 * config/i386/i386.c (ix86_tune_features
7583 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
7584 nocona and core2.
7585
10e4d956
L
75862007-04-23 H.J. Lu <hongjiu.lu@intel.com>
7587
7588 * config/i386/i386.md (prefix_extra): New attribute.
7589 (length): Add prefix_extra.
7590
7591 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
7592 (sse2_movntv2di): Likewise.
7593 (sse2_cvtps2dq): Likewise.
7594 (sse2_cvtpd2pi): Likewise.
7595 (sse2_cvttpd2pi): Likewise.
7596 (*sse2_cvtpd2ps): Likewise.
7597 (*add<mode>3): Likewise.
7598 (sse2_ssadd<mode>3): Likewise.
7599 (sse2_usadd<mode>3): Likewise.
7600 (*sub<mode>3): Likewise.
7601 (sse2_sssub<mode>3): Likewise.
7602 (sse2_ussub<mode>3): Likewise.
7603 (*mulv8hi3): Likewise.
7604 (*smulv8hi3_highpart): Likewise.
7605 (*umulv8hi3_highpart): Likewise.
7606 (sse2_umulv2siv2di3): Likewise.
7607 (sse2_pmaddwd): Likewise.
7608 (ashr<mode>3): Likewise.
7609 (lshr<mode>3): Likewise.
7610 (ashl<mode>3): Likewise.
7611 (sse2_ashlti3): Likewise.
7612 (sse2_lshrti3): Likewise.
7613 (*umaxv16qi3): Likewise.
7614 (*smaxv8hi3): Likewise.
7615 (*uminv16qi3): Likewise.
7616 (*sminv8hi3): Likewise.
7617 (sse2_eq<mode>3): Likewise.
7618 (sse2_gt<mode>3): Likewise.
7619 (*and<mode>3): Likewise.
7620 (sse2_nand<mode>3): Likewise.
7621 (*ior<mode>3): Likewise.
7622 (*xor<mode>3): Likewise.
7623 (sse2_packsswb): Likewise.
7624 (sse2_packssdw): Likewise.
7625 (sse2_packuswb): Likewise.
7626 (sse2_punpckhbw): Likewise.
7627 (sse2_punpcklbw): Likewise.
7628 (sse2_punpckhwd): Likewise.
7629 (sse2_punpcklwd): Likewise.
7630 (sse2_punpckhdq): Likewise.
7631 (sse2_punpckldq): Likewise.
7632 (sse2_punpckhqdq): Likewise.
7633 (sse2_punpcklqdq): Likewise.
7634 (*sse2_pinsrw): Likewise.
7635 (*sse2_pextrw): Likewise.
7636 (sse2_pshufd_1): Likewise.
7637 (sse2_uavgv16qi3): Likewise.
7638 (sse2_uavgv8hi3): Likewise.
7639 (sse2_psadbw): Likewise.
7640 (sse2_pmovmskb): Likewise.
7641 (*sse2_maskmovdqu): Likewise.
7642 (*sse2_maskmovdqu_rex64): Likewise.
7643 (sse4a_extrqi): Likewise.
7644 (sse4a_extrq): Likewise.
7645 (sse3_lddqu): Set prefix_rep.
7646 (sse3_addsubv4sf3): Likewise.
7647 (sse3_haddv4sf3): Likewise.
7648 (sse3_hsubv4sf3): Likewise.
7649 (sse_cvtss2si): Likewise.
7650 (sse_cvtss2si_2): Likewise.
7651 (sse_cvtss2siq): Likewise.
7652 (sse_cvtss2siq_2): Likewise.
7653 (sse_cvttss2si): Likewise.
7654 (sse_cvttss2siq): Likewise.
7655 (sse2_cvttps2dq): Likewise.
7656 (sse3_movshdup): Likewise.
7657 (sse3_movsldup): Likewise.
7658 (sse2_cvtsd2si): Likewise.
7659 (sse2_cvtsd2si_2): Likewise.
7660 (sse2_cvtsd2siq): Likewise.
7661 (sse2_cvtsd2siq_2): Likewise.
7662 (sse2_cvttsd2si): Likewise.
7663 (sse2_cvttsd2siq): Likewise.
7664 (*sse2_cvtpd2dq): Likewise.
7665 (*sse2_cvttpd2dq): Likewise.
7666 (sse2_pshuflw_1): Likewise.
7667 (sse2_pshufhw_1): Likewise.
7668 (sse4a_insertqi): Likewise.
7669 (sse4a_insertq): Likewise.
7670 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
7671 (ssse3_phadddv4si3): Likewise.
7672 (ssse3_phaddswv8hi3): Likewise.
7673 (ssse3_phsubwv8hi3): Likewise.
7674 (ssse3_phsubdv4si3): Likewise.
7675 (ssse3_phsubswv8hi3): Likewise.
7676 (ssse3_pmaddubswv8hi3): Likewise.
7677 (ssse3_pmulhrswv8hi3): Likewise.
7678 (ssse3_pshufbv16qi3): Likewise.
7679 (ssse3_psign<mode>3): Likewise.
7680 (ssse3_palignrti): Likewise.
7681 (abs<mode>2): Likewise.
7682 (ssse3_phaddwv4hi3): Set prefix_extra.
7683 (ssse3_phadddv2si3): Likewise.
7684 (ssse3_phaddswv4hi3): Likewise.
7685 (ssse3_phsubwv4hi3): Likewise.
7686 (ssse3_phsubdv2si3): Likewise.
7687 (ssse3_phsubswv4hi3): Likewise.
7688 (ssse3_pmaddubswv4hi3): Likewise.
7689 (ssse3_pmulhrswv4hi3): Likewise.
7690 (ssse3_pshufbv8qi3): Likewise.
7691 (ssse3_psign<mode>3): Likewise.
7692 (ssse3_palignrdi): Likewise.
7693 (abs<mode>2): Likewise.
7694 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
7695 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
7696 (sse2_pmovmskb): Set mode to SI instead of V2DF.
7697
f4b4a3e2
NC
76982007-04-23 Nick Clifton <nickc@redhat.com>
7699
7700 * params.def: Fix formatting of emacs local variables.
7701
9a072eb6
L
77022007-04-23 H.J. Lu <hongjiu.lu@intel.com>
7703
7704 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
7705 move if inter-unit move isn't allowed.
7706 Don't split moving the first element of V2DI to DI to inter-unit
7707 move if inter-unit move isn't allowed.
7708
3b5ee6a4
RG
77092007-04-23 Richard Guenther <rguenther@suse.de>
7710
7711 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
7712 and CDI_POST_DOMINATORS separately.
7713
6d16b6e7
NC
77142007-04-23 Nick Clifton <nickc@redhat.com>
7715
7716 * c.opt (Wformat-contains-nul): Add warning attribute.
7717
c90533c6
JH
77182007-04-23 Jan Hubicka <jh@suse.cz>
7719
7720 * function.c (init_function_start): Don't init line number info.
7721 (expand_function_end): Update.
7722 (reset_block_changes, record_block_change, finalize_block_changes,
7723 check_block_change, free_block_changes): Kill.
7724 * function.h (reset_block_changes, record_block_change,
7e08fa35
UB
7725 finalize_block_changes, check_block_change, free_block_changes):
7726 Remove prototypes.
c90533c6
JH
7727 (struct function): Remove ib_boundaries_block.
7728 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
7729 Use curr_insn_locator to initialize locator.
7730 (emit_line_note): Remove.
7731 * cfgexpand.c (expand_gimple_cond_expr): Update.
7732 (construct_exit_block): Likewise.
7733 (tree_expand_cfg): Initialize/finalize locators.
7734 * expr.c (expand_expr_real): Update.
7735 * cfglayout.c (line_locators_locs, line_locators_lines,
7736 file_locators_locs, file_locators_files): Remove.
7737 (set_block_levels): Move to cfgexpand.c.
7738 (insn_locators_initialize): Remove.
7739 (pass_insn_locators_initialize): Remove.
7740 (locations_locators_locs, locations_locators_vals): New static vars.
7741 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
7742 Likewise.
7743 (insn_locators_alloc, insn_locators_finalize,
7744 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7745 New functions.
7746 (locator_location): New.
7747 (locator_line, locator_file): Rewrite.
7748 * rtl.h (emit_line_note): Kill.
7749 (insn_locators_alloc, insn_locators_finalize,
7750 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7751 Declare.
7752 * tree-inline.c (initialize_cfun): Do not initialize
7753 ib_boundaries_block.
7754 * passes.c (pass_insn_locators_initialize): Remove.
7755
1f2ad84c
AP
77562007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7757
7758 PR middle-end/31448
7759 * expr.c (reduce_to_bit_field_precision): Handle
7760 CONST_INT rtx's.
7761
8115817b
UB
77622007-04-22 Uros Bizjak <ubizjak@gmail.com>
7763
7764 PR tree-optimization/24659
7765 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
7766 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
7767 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
7768 * genopinit.c (optabs): Rename vec_pack_mod_optab
7769 to vec_pack_trunc_optab.
7770 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
7771 early for scalar floating point operands for NOP_EXPR.
7772 (vectorizable_type_promotion): Ditto.
7773 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
7774 vec_pack_trunc_optab.
7775 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
7776
7777 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
7778 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
7779 Rename from VEC_PACK_MOD_EXPR.
7780 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
7781 * expr.c (expand_expr_real_1): Ditto.
7782 * tree-inline.c (estimate_num_insns_1): Ditto.
7783 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7784
7785 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
7786 (vec_unpacks_lo_v4sf): Ditto.
7787 (vec_pack_trunc_v2df): Ditto.
7788 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
7789 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
7790 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
7791
7792 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
7793 vec_pack_mod_v8hi.
7794 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
7795
7796 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
7797 Rename from VEC_PACK_MOD_EXPR. This expression also represent
7798 packing of floating point operands.
7799 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
7800 represent unpacking of floating point operands.
7801 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
7802 [vec_unpacks_hi]: Ditto.
7803 [vec_unpacks_lo]: Ditto.
7804
395a40e0
JH
78052007-04-22 Jan Hubicka <jh@suse.cz>
7806
7807 * final.c (rest_of_handle_final): Call
7808 targetm.asm_out.constructor/targetm.asm_out.destructor
7809 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
7810 proper priority via decl_*_priority_insert.
7811 * c-common.c (c_expand_body): Likewise.
7812
e0a60731
RG
78132007-04-22 Richard Guenther <rguenther@suse.de>
7814
7815 PR tree-optimization/29789
7816 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
7817 (rewrite_reciprocal): New helper split out from
7818 determine_invariantness_stmt.
7819 (rewrite_bittest): Likewise.
7820 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
7821 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
7822 is not.
7823
76fd2caa
RE
78242007-04-22 Revital Eres <eres@il.ibm.com>
7825
b7716a8e
ZD
7826 * loop-unroll.c (var_to_expand): New field to support also
7827 insns of the form x = something + x.
7828 (analyze_insn_to_expand_var): Use it.
7829 (expand_var_during_unrolling): Likewise.
76fd2caa 7830
f06b0a10
ZD
78312007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
7832
7833 * predict.c: Include pointer-set.h.
7834 (bb_predictions): New variable.
7835 (tree_predicted_by_p, tree_predict_edge,
7836 remove_predictions_associated_with_edge): Use bb_predictions map
7837 instead of bb->predictions.
7838 (clear_bb_predictions, assert_is_empty): New functions.
7839 (combine_predictions_for_bb): Use bb_predictions map. Call
7840 clear_bb_predictions.
7841 (tree_estimate_probability): Create and free bb_predictions map.
7842 * Makefile.in (predict.o): Add pointer-set.h dependency.
7843 * basic-block.h (struct basic_block_def): Remove predictions
7844 field.
7845 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
7846
e919dfe2
KK
78472007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7848
7849 PR target/31480
7850 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
7851 is null.
7852
7be97ac7
AP
78532007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
7854
7855 * timevar.c (timevar_print): Change reference of --disable-checking to
7856 --enable-checking=release. Also warn if assert checking is disabled.
7857
c8a0a219
AP
78582007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
7859
7860 PR C/30265
7861 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
7862 decl as addressable if the compound literal was marked as
7863 addressable.
7864 Mark the decl as a gimple register if it is a complex or
7865 vector decl and does not live in memory.
7866
3d95caa4
AP
78672007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
7868
7869 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
7870 (GENERIC_NEXT): New function macro.
7871 (PHI_CHAIN): Use phi_node's new chain variable.
7872 (tree_phi_node): Change tree_common to tree_base
7873 and add the chain field.
7874 * tree-phinodes.c (make_phi_node): Don't set
7875 TREE_TYPE on the new node.
7876 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
7877 instead of checking GIMPLE_TUPLE_P in chain_next.
7878 * tree-vect-transform.c
7879 (get_initial_def_for_induction): Look at
7880 PHI_RESULT_TREE for the type of the phi node.
7881 (update_vuses_to_preheader): Use PHI_CHAIN
7882 instead of TREE_CHAIN on the phi node.
7883 * tree-ssa-structalias.c (compute_points_to_sets):
7884 Likewise.
7885 (ipa_pta_execute): Likewise.
7886
84ece8ef
RG
78872007-04-21 Richard Guenther <rguenther@suse.de>
7888
7889 PR middle-end/31136
7890 * fold-const.c (fold_unary): Call fold_convert_const on the
7891 original tree.
7892
1071bcbd
AO
78932007-04-21 Alexandre Oliva <aoliva@redhat.com>
7894
7895 * gcse.c (store_killed_in_insn): Handle PARALLELs.
7896 (store_killed_in_pat): New.
7897
c7a2139b
RH
78982007-04-20 Richard Henderson <rth@redhat.com>
7899
7900 PR target/31628
7901 * config/i386/i386.c (type_has_variadic_args_p): Look for any
7902 TREE_LIST with a void_type_node value, not void_list_node exactly.
7903
fda0adca
DG
79042007-04-21 Douglas Gregor <doug.gregor@gmail.com>
7905
7906 * doc/standards.texi: Re-arrange into language-specific
7907 subsections. Add a C++ section, documenting which standards we
7908 support.
7909
285463b5
ZD
79102007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
7911
7912 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
7913 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
7914
860532df
DJ
79152007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
7916
7917 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
7918 ecrti.o and crtbegin.o.
7919 (LIB_DEFAULT_SPEC): Include -lc.
7920 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
7921
60e93525
RH
79222007-04-20 Richard Henderson <rth@redhat.com>
7923
7924 PR target/28623
7925 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
7926 argument; update all callers.
7927 (get_unaligned_offset): New.
7928 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
7929 get_unaligned_address, just pass on the address directly.
7930 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
7931 the subreg in the helper patterns.
7932 (unaligned_extendqidi_le): Use get_unaligned_offset.
7933 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
7934 (unaligned_extendhidi_be): Likewise.
7935 (unaligned_extendhidi): Tidy.
7936 * config/alpha/alpha-protos.h: Update.
7937
f326fd7a
RH
79382007-04-20 Richard Henderson <rth@redhat.com>
7939
7940 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
7941 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
7942 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
7943 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7944 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7945 (CPP_SPEC): Don't include %(cpp_subtarget).
7946 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
7947 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7948 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
7949
86122f72
JJ
79502007-04-20 Jakub Jelinek <jakub@redhat.com>
7951
a5b9afd1
JJ
7952 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
7953 for __builtin_ia32_cmpordss.
7954
86122f72
JJ
7955 PR tree-optimization/31632
7956 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
7957 and arg1 for optimizations of comparison against min/max values.
7958 Fold arg0 to arg1's type for optimizations of comparison against
7959 min+1 and max-1 values.
7960
c1673e1b
BS
79612007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
7962
7963 * reload.c (combine_reloads): When trying to use a dying register,
7964 check whether it's uninitialized and don't use if so.
7965
db136335
BM
79662007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
7967
7968 * fold-const.c: Remove prototypes for native_encode_expr and
7969 native_interpret_expr.
7970 (native_encode_expr): Make non-static.
7971 (native_interpret_expr): Likewise.
7972 * tree.h: Add prototypes for the above.
7973
b6fda43f
JM
79742007-04-19 Joseph Myers <joseph@codesourcery.com>
7975
b6fda43f
JM
7976 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
7977 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
7978 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
7979 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
7980 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
7981 Add length attributes.
7982
589dd995
JJ
79832007-04-19 Janis Johnson <janis187@us.ibm.com>
7984
93167356
JJ
7985 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
7986 not that it is 1.
7987
589dd995
JJ
7988 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
7989 __STDC_WANT_DEC_FP__.
7990
f7cc5390
JM
79912007-04-19 Joseph Myers <joseph@codesourcery.com>
7992
7993 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
7994 for long double compatibility.
7995 * configure: Regenerate.
7996
d47a8b83
EB
79972007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
7998
7999 PR rtl-optimization/29841
8000 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
8001 trap instructions.
8002 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
8003 that may cause control flow transfer from being moved.
8004
8d5d5865
JH
80052007-04-18 Jan Hubicka <jh@suse.cz>
8006
8007 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
8008 types.
8009
316fbf19 80102007-04-18 Eric Christopher <echristo@apple.com>
5083912d 8011
316fbf19
EC
8012 * config/rs6000/darwin.md (load_macho_picbase): Use link register
8013 only. Update operands.
8014 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
8015 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
8016 link register to pic register.
5083912d 8017
05fb69e4
DM
80182007-04-18 Dirk Mueller <dmueller@suse.de>
8019
8020 PR diagnostic/31227
8021 * tree-vrp.c (search_for_addr_array): New.
8022 (check_array_bounds): Suppress warning about
8023 address taken of array refs if its not de-referenced.
8024
28e44f4f
DN
80252007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8026
8027 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
8028 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
8029
8030 * tree-vectorizer.h (NITERS_KNOWN_P): New.
316fbf19 8031 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
28e44f4f
DN
8032 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
8033
316fbf19 8034 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
28e44f4f
DN
8035 dump print.
8036 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
8037 print message.
8038 (vect_analyze_scalar_cycles): Fix indentation.
8039 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
8040 (vect_mark_relevant): Include phis in relevance analysis.
8041
8042 * tree-vect-transform.c (vect_transform_loop): Add an assert.
8043
3639b3fa
AS
80442007-04-18 Anatoly Sokolov <aesok@post.ru>
8045
8046 * config/avr/avr.c (ptrreg_to_str): Replace error() with
8047 output_operand_lossage().
8048
f7c1d73d
DN
80492007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8050
8051 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
8052 the unused code for reduction without adjust-in-epilog to simplify the
8053 function.
8054
638e37c2
WG
80552007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
8056
8057 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
8058 (S390_TDC_NEGATIVE_ZERO): New constant.
8059 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
8060 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
8061 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
8062 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
8063 (S390_TDC_POSITIVE_INFINITY): New constant.
8064 (S390_TDC_NEGATIVE_INFINITY): New constant.
8065 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
8066 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
8067 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
8068 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
8069 (S390_TDC_INFINITY): New constant.
8070 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
8071 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
8072 optimization for UNSPEC_CCZ_TO_INT.
8073 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
8074 ("*ccz_to_int"): New insn.
8075 ("isinf<mode>2"): New insn.
8076 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
8077 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
8078 (UNSPEC_CCZ_TO_INT): New constant.
8079
3b48ccbc
RG
80802007-04-18 Richard Guenther <rguenther@suse.de>
8081
8082 PR tree-optimization/19431
8083 PR tree-optimization/21463
8084 * tree-pass.h (pass_phiprop): Declare.
8085 * passes.c (init_optimization_passes): New phiprop pass.
8086 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
8087 (phivn_valid_p): New helper function.
8088 (phiprop_insert_phi): Likewise.
8089 (propagate_with_phi): Likewise.
8090 (tree_ssa_phiprop): New propagator propagating loads
8091 through phi nodes if profitable.
8092
8cf81ddf
DN
80932007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8094
8095 * tree-vect-analyze.c (process_use): New function.
8096 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
8097 Check phis in all bbs.
8098 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
8099 assert.
8100
7c11b28c
BS
81012007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
8102
8103 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
8104 we use REG_EQUAL.
8105
5594a6c8
AS
81062007-04-17 Anatoly Sokolov <aesok@post.ru>
8107
8108 PR target/30483
8109 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
8110 error().
8111
ce217d75
L
81122007-04-17 H.J. Lu <hongjiu.lu@intel.com>
8113
8114 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
8115 on "0".
8116 (sse_vmmulv4sf3): Likewise.
8117 (sse2_vmaddv2df3): Likewise.
8118 (sse2_vmmulv2df3): Likewise.
8119
a154b43a
ZD
81202007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
8121
8122 PR rtl-optimization/31360
8123 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
8124 (target_reg_cost): New.
8125 (init_set_costs): Initialize target_reg_cost. Add comments
8126 regarding the rationale of the costs.
8127 (global_cost_for_size): Renamed to...
8128 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
8129 of register pressure.
8130 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
8131 estimate_reg_pressure_cost. Add number of ivs.
8132 (determine_set_costs): Dump target_reg_cost.
8133 * loop-invariant.c (gain_for_invariant): Use
8134 estimate_reg_pressure_cost. Removed n_inv_uses argument.
8135 (best_gain_for_invariant, find_invariants_to_move): Remove
8136 n_inv_uses.
8137 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
8138 (target_reg_cost): Declare.
8139 (global_cost_for_size): Declaration removed.
8140 (estimate_reg_pressure_cost): Declare.
8141
c092b045
PB
81422007-04-17 Peter Bergner <bergner@vnet.ibm.com>
8143
8144 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
8145 regnos into even/odd register pairs.
8146 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
8147 TDmode similar to the other floating point modes.
8148 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
8149 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
8150 define_expand's.
8151 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
8152 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
8153 (movdd_hardfloat64): Use TARGET_MFPGPR.
8154
f2eb49dc
BS
81552007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
8156
8157 * reload1.c (delete_output_reload): Don't count output in n_inherited.
8158
8159 Revert
8160 2005-01-05 Richard Henderson <rth@redhat.com>
8161 PR rtl-opt/10692
8162 * reload1.c (do_input_reload): Restrict the optimization deleteing
8163 a previous output reload to RELOAD_FOR_INPUT.
8164
cd38ca7f
DN
81652007-04-17 Dorit Nuzman <dorit@il.ibm.com>
8166
8167 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
8168 induc_vec_info_type.
8169 (vectorizable_induction): New function declaration.
8170 * tree-vect-transform.c (get_initial_def_for_induction): No need to
8171 check if already vectorized. Find first place in BB where new stmts
8172 can be inserted. Takes only one argument.
8173 (vectorizable_induction): New function.
8174 (vect_transform_stmt): Add case for induc_vec_info_type to call
8175 vectorizable_induction.
8176 (vect_transform_loop): Consider phis for vectorization.
8177 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
8178 condition.
316fbf19 8179 (analyze_operations): Call vectorizable_induction when analyzing phis.
cd38ca7f
DN
8180 Fix comment.
8181 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
8182 (vect_mark_relevant): Include phis in relevance analysis.
8183 (vect_mark_stmts_to_be_vectorize): Likewise.
8184 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
8185
39ef6592
LC
81862007-04-16 Lawrence Crowl <crowl@google.com>
8187
8188 * doc/invoke.texi (Debugging Options): Add documentation for the
8189 -femit-struct-debug options -femit-struct-debug-baseonly,
8190 -femit-struct-debug-reduced, and
8191 -femit-struct-debug-detailed[=...].
8192
8193 * c-opts.c (c_common_handle_option): Add
8194 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
8195 and OPT_femit_struct_debug_detailed_.
8196 * c.opt: Add specifications for
8197 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
8198 and -femit-struct-debug-detailed[=...].
8199 * opts.c (set_struct_debug_option): Parse the
8200 -femit-struct-debug-... options.
8201 * opts.c (matches_main_base, main_input_basename,
8202 main_input_baselength, base_of_path, matches_main_base): Add
8203 variables and functions to compare header base name to compilation
8204 unit base name.
8205 * opts.c (should_emit_struct_debug): Add to determine to emit a
8206 structure based on the option.
8207 (dump_struct_debug) Also disabled function to debug this
8208 function.
8209 * opts.c (handle_options): Save the base name of the
8210 compilation unit.
8211
8212 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
c7a2139b 8213 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
39ef6592
LC
8214 This hook indicates if a type is generic. Set it by default
8215 to "never generic".
8216 * langhooks.h (struct lang_hooks_for_types): Add a new hook
8217 to determine if a struct type is generic or not.
8218 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
8219 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
8220 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
8221 with live C++ hook.
8222
8223 * flags.h (enum debug_info_usage): Add an enumeration to describe
8224 a program's use of a structure type.
8225 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
8226 to indicate the program's usage of the type. Filter structs based
8227 on the -femit-struct-debug-... specification.
8228 (gen_type_die): Split into two routines, gen_type_die and
8229 gen_type_die_with_usage. gen_type_die is now a wrapper
8230 that assumes direct usage.
8231 (gen_type_die_with_usage): Replace calls to gen_type_die
8232 with gen_type_die_with_usage adding the program usage of
8233 the referenced type.
8234 (dwarf2out_imported_module_or_decl): Suppress struct debug
8235 information using should_emit_struct_debug when appropriate.
8236
5a0ed003
ILT
82372007-04-16 Ian Lance Taylor <iant@google.com>
8238
fc6827fe
ILT
8239 PR tree-optimization/31522
8240 * tree-vrp.c (vr_phi_edge_counts): New static variable.
8241 (vrp_initialize): Allocate vr_phi_edge_counts.
8242 (vrp_visit_phi_node): Don't push to infinity if we saw a new
8243 executable edge. Drop test for all constants.
8244 (vrp_finalize): Free vrp_phi_edge_counts.
8245
4075e231
ILT
8246 * doc/cpp.texi (Common Predefined Macros): Clarify description of
8247 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
8248
5a0ed003
ILT
8249 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
8250 predecessors at head rather than tail.
8251
bdede2ac
MK
82522007-04-16 Matthias Klose <doko@debian.org>
8253
86122f72
JJ
8254 * config/alpha/linux.h (CPP_SPEC): Define.
8255 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
bdede2ac 8256
52d412e7
AH
82572007-04-16 Aldy Hernandez <aldyh@redhat.com>
8258
c7a2139b 8259 * function.h: Remove sequence_stack extern declaration.
52d412e7 8260
72120463
KH
82612007-04-16 Kazu Hirata <kazu@codesourcery.com>
8262
8263 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
8264 TARGET_FIDOA.
8265 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
8266 defined.
8267
14683174
AS
82682007-04-16 Anatoly Sokolov <aesok@post.ru>
8269
8270 * config/avr/avr.c (avr_arch_types): Rearranging array.
8271 (enum avr_arch): Add.
316fbf19 8272 (avr_mcu_types): Use avr_arch enumeration constants instead of
14683174
AS
8273 numbers.
8274 * config/avr/avr.h (LINK_SPEC): Simplify.
8275
8d989403
KH
82762007-04-16 Kazu Hirata <kazu@codesourcery.com>
8277
8278 * config/m68k/m68k.c (m68k_libcall_value,
8279 m68k_function_value): Use macros for register names more.
8280
de41203b
KH
8281 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
8282 instead.
8283 (M68K_REGNAME): Use A6_REG.
8284 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
8285
bdbf40a5
MK
82862007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8287
8288 PR middle-end/28071
8289 * sched-int.h (struct deps): Split field 'pending_lists_length' into
8290 'pending_read_list_length' and 'pending_write_list_length'. Update
8291 comment.
8292 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
8293 to handle two length counters instead of one. Update all uses.
8294 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
8295 two length counters instead of one.
8296 * sched-rgn.c (propagate_deps): Update to handle two length counters
8297 instead of one.
8298
7bb4a6be
L
82992007-04-16 H.J. Lu <hongjiu.lu@intel.com>
8300
8301 PR target/31582
8302 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
8303 copy of source, pass it to ix86_expand_vector_set and return
8304 it as target.
8305
8dd58f01 83062007-04-16 David Ung <davidu@mips.com>
7bb4a6be 8307 Joseph Myers <joseph@codesourcery.com>
8dd58f01
DU
8308
8309 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
8310 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
8311 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
8312 Add 74K processor information.
8313 * config/mips/mips.md: Include 74k.md.
8314 (cpu): Add 74kc,74kf,74kx.
8315 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
8316 * config/mips/74k.md: New.
8317 * doc/invoke.texi (MIPS Options): Document 74K support.
8318
60555ced
DN
83192007-04-16 Dorit Nuzman <dorit@il.ibm.com>
8320
8321 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
8322 vectorizable_* functions.
8323 * tree-vect-transform.c (vectorizable_call): Add check for
8324 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
8325 (vectorizable_store): likewise.
8326 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
8327 Add comments.
8328 (vectorizable_operation, vectorizable_type_demotion): Likewise.
8329 (vectorizable_type_promotion, vectorizable_load): Likewise.
8330 (vectorizable_live_operation, vectorizable_condition): Likewise.
8331 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
8332 STMT_VINFO_LIVE_P.
8333 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
8334
3bfe36dc
KH
83352007-04-15 Kazu Hirata <kazu@codesourcery.com>
8336
8337 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
8338 register numbers more.
8339 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
8340 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
8341 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
8342 FUNCTION_VALUE_REGNO_P): Likewise.
8343 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
8344 STATIC_CHAIN_REGNUM): Likewise.
8345 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
8346 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
8347 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
8348 * config/m68k/m68k.md (FP_REG): New.
8349
e3e093ec
KH
83502007-04-15 Kazu Hirata <kazu@codesourcery.com>
8351
8352 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
8353 alignment on fido.
8354
7fa7289d
KH
83552007-04-15 Kazu Hirata <kazu@codesourcery.com>
8356
8357 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
8358 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
8359 comment typos.
8360
2732d767
ZD
83612007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
8362
8363 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
8364 cold loops.
8365
aa24028d
AP
83662007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
8367
8368 PR c/31520
c7a2139b 8369 * c-decl.c (finish_decl): Grab the type of the decl after the call
aa24028d
AP
8370 to store_init_value.
8371
2ca2b607
SB
83722007-04-14 Steven Bosscher <steven@gcc.gnu.org>
8373
8374 * common.opt (fforward-propagate): Fix "Optimization" annotation.
8375
b1483e87
JJ
83762007-04-14 Jakub Jelinek <jakub@redhat.com>
8377
8378 PR c++/25874
7e08fa35
UB
8379 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
8380 dominators, post dominators and cleanup cfg before returning.
b1483e87 8381
4d4f2837
BS
83822007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
8383
8384 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
8385 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
8386
7d33c31d
KH
83872007-04-14 Kazu Hirata <kazu@codesourcery.com>
8388
8389 * config.gcc: Recognize fido.
8390 * config/m68k/m68k-devices.def (fidoa): New.
8391 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
8392 __mfido__.
8393 (FL_FIDOA, TARGET_FIDOA): New.
8394 * config/m68k/m68k.opt (mfidoa): New.
8395
2a6acff7
JDA
83962007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8397
8398 PR middle-end/31322
8399 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
8400 when a personality function is used.
8401
ec3643e8
BW
84022007-04-13 Bob Wilson <bob.wilson@acm.org>
8403
8404 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
8405
c40ce8f3
MS
84062007-04-13 Mike Stump <mrs@apple.com>
8407
8408 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
8409 we can...
8410 * config/darwin.opt (fapple-kext): Make C++ only.
8411 * config/darwin.c (darwin_override_options): Remove code to ensure
8412 -fapple-kext is given for C++ only.
8413
d1138d8e
RS
84142007-04-13 Richard Sandiford <richard@codesourcery.com>
8415
8416 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
8417 * config/mips/mips.c (override_options): Call
8418 SUBTARGET_OVERRIDE_OPTIONS, if defined.
8419
c33104d6
L
84202007-04-13 H.J. Lu <hongjiu.lu@intel.com>
8421
8422 * config/i386/i386.opt (msvr3-shlib): Removed.
8423
8424 * doc/invoke.texi: Remove -msvr3-shlib.
8425
b194a08c
L
84262007-04-13 H.J. Lu <hongjiu.lu@intel.com>
8427
8428 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
8429 with "popcnt" instruction.
8430
9bb6aa43
RG
84312007-04-13 Richard Guenther <rguenther@suse.de>
8432
8433 PR tree-optimization/21258
8434 * tree-vrp.c (compare_case_labels): New helper.
8435 (find_switch_asserts): New function.
8436 (find_assert_locations): Call it for SWITCH_EXPRs.
8437
27ac40e2
UB
84382007-04-13 Uros Bizjak <ubizjak@gmail.com>
8439
8440 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
8441 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
8442 check is now implied in X87_FLOAT_MODE_P.
8443 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
8444 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
8445 (fix_trunc<mode>_i386_fisttp): Ditto.
8446 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
8447 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
8448 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
8449 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
8450 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
8451 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
8452 (unnamed_splitters): Ditto.
8453 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
8454 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
8455 FIRST_SSE_REG for local functions when SSE math is enabled or
8456 for functions with sseregparm attribute.
8457 (standard_80387_constant_p): Return -1 if mode is not
8458 X87_FLOAT_MODE_P.
8459 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
8460 (ix86_expand_compare): Ditto.
8461 (ix86_expand_carry_flag_compare): Ditto.
8462 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
8463 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
8464 DECIMAL_FLOAT_MODE_P.
8465 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
8466 of SCALAR_FLOAT_MODE_P.
8467 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
8468 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
8469 checks before FLOAT_MODE_P.
8470 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
8471 before FLOAT_MODE_P.
8472 [DIV]: Ditto.
8473 [NEG]: Ditto.
8474 [ABS]: Ditto.
8475 [SQRT]: Ditto.
8476 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
8477
be0fe523 84782007-04-12 Paolo Bonzini <bonzini@gnu.org>
c7a2139b 8479 Charles Wilson <libtool@cwilson.fastmail.fm>
be0fe523
PB
8480
8481 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
8482 (libgcc.mvars): Don't depend on them.
8483 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
8484 * exec-tool.in: New.
8485
06a97569
BM
84862007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
8487
8488 * doc/invoke.text (--help): Document --help=common.
8489
4557bf49
TN
84902007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
8491
8492 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
8493
8cb6400c
RS
84942007-04-12 Richard Sandiford <richard@codesourcery.com>
8495
8496 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
8497 * genemit.c (main): Emit #include "integrate.h".
8498 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
8499 (LOADGP_RTP): New mips_loadgp_style.
8500 * config/mips/mips.h: Include config/vxworks-dummy.h.
8501 (TARGET_RTP_PIC): New macro.
8502 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
8503 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
8504 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
8505 for TARGET_RTP_PIC.
8506 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
8507 -mvxworks-pic when using -mrtp and a PIC option.
8508 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
8509 for RTP PIC.
8510 (mips_symbolic_constant_p, mips_symbolic_address_p)
8511 (mips_symbol_insns): Handle SYMBOL_HALF.
8512 (override_options): Warn about -G and -mrtp being used together.
8513 Initialize mips_lo_relocs[SYMBOL_HALF].
8514 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
8515 (mips_emit_loadgp): Handle LOADGP_RTP.
8516 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
8517 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
8518 (tablejump): Handle function-relative case table entries if
8519 TARGET_RTP_PIC.
8520 * config/mips/predicates.md (symbol_ref_operand): New predicate.
8521
f28d8062
RS
85222007-04-12 Richard Sandiford <richard@codesourcery.com>
8523
8524 * config/mips/mips.md (load_call<mode>): Allow any general register.
8525 destination.
8526 (sibcall_value_internal, sibcall_value_multiple_internal)
8527 (call_value_internal, call_value_split, call_value_multiple_internal)
8528 (call_value_multiple_split): Remove constraints from operand 0.
8529
dc7750b1
RS
85302007-04-12 Richard Sandiford <richard@codesourcery.com>
8531
8532 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
8533 rather than loadgp_noshared.
8534 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
8535 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
8536 gen_loadgp.
8537 * config/mips/mips.md (loadgp): Rename to...
8538 (loadgp_newabi): ...this.
8539 (loadgp_noshared): Rename to...
8540 (loadgp_absolute): ...this.
8541
006257dc
RS
85422007-04-12 Richard Sandiford <richard@codesourcery.com>
8543
8544 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
8545 false for locally-binding symbols.
8546 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
8547
08e7ceb3
RS
85482007-04-12 Richard Sandiford <richard@codesourcery.com>
8549
8550 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
8551 (SYMBOL_GOT_PAGE_OFST): ...this.
8552 (SYMBOL_GOT_GLOBAL): Rename to...
8553 (SYMBOL_GOT_DISP): ...this.
8554 (SYMBOL_GOTOFF_GLOBAL): Rename to...
8555 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
8556 * config/mips/mips.c (mips_global_symbol_p): New function.
8557 (mips_symbol_binds_local_p): Likewise.
8558 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
7e08fa35
UB
8559 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
8560 mips_global_symbol_p and mips_symbol_binds_local_p.
08e7ceb3
RS
8561 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
8562 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
8563 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
8564 SYMBOL_GOTOFF_DISP.
8565 (mips_ok_for_lazy_binding_p): New function.
8566 (mips_load_call_address, mips_expand_call): Use it.
8567 (mips_dangerous_for_la25_p): Likewise.
8568 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
8569 (*got_disp<mode>): Use got_disp_operand instead of
8570 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
8571 SYMBOL_GOTOFF_GLOBAL.
8572 (*got_page<mode>): Use got_page_ofst_operand instead of
8573 local_got_operand.
8574 * config/mips/predicates.md (const_call_insn_operand): Use
8575 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
8576 (global_got_operand): Rename to...
8577 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
8578 SYMBOL_GOT_GLOBAL.
8579 (local_got_operand): Rename to...
8580 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
8581 of SYMBOL_GOT_LOCAL.
8582
14976818
RS
85832007-04-12 Richard Sandiford <richard@codesourcery.com>
8584
8585 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
8586 TARGET_CALL_CLOBBERED_GP.
8587 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
8588 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
8589 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
8590 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
8591 of TARGET_ABICALLS && !TARGET_NEWABI.
8592 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
8593 * config/mips/mips.c (mips_load_call_address): Check
8594 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
8595 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
8596 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
8597 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
8598 TARGET_ABICALLS && TARGET_NEWABI.
8599 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
8600 TARGET_ABICALLS.
8601 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
8602 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
8603 TARGET_ABICALLS && TARGET_NEWABI.
8604 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
8605 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
8606 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
8607 whether indirect calls must use $25.
8608 (mips_extra_live_on_entry): Check TARGET_GOT instead of
8609 TARGET_ABICALLS.
8610 * config/mips/mips.md (jal_macro): Check flag_pic and
8611 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
8612 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
8613 instead of TARGET_ABICALLS.
8614 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
8615 TARGET_ABICALLS && TARGET_OLDABI.
8616 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
8617 (sibcall): In the comment above the define_insn, mention
8618 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
8619 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
8620 instead of TARGET_ABICALLS.
8621
3efd5670
BS
86222007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
8623
8624 * doc/md.texi (Blackfin family constraints): Document PA and PB.
8625 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
8626 (MACFLAGS_MATCH_P): New macro.
8627 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
8628 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
8629 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
8630 the other MACFLAG constants.
8631 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
8632 (flag_machi): Tighten constraints. Renumber some of the operands.
8633 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
8634 output template.
8635 (flag_machi_parts_acconly): New pattern.
8636 (flag_macinithi): Tighten constraints. Allow any accumulator to be
8637 used.
8638 (flag_macinit1hi): Tighten constraints.
8639 (flag_mul_macv2hi_parts_acconly): New pattern.
8640
3fbee523
BS
8641 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
8642 Use a more efficient implementation.
8643 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
8644 inline sequences when not optimizing for size.
8645
2d3649b2
BS
8646 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
8647 movhi_high2low): Delete, merge functionality into...
8648 (packv2hi): ... this pattern.
8649
9d3f9aa3
BS
8650 2007-02-11 Jie Zhang <jie.zhang@analog.com>
8651 * config/bfin/bfin.opt (msim): New option.
8652 (mcpu=): New option.
8653 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
8654 (bfin_cpu_t): Typedef of enum bfin_cpu.
8655 (bfin_cpu_type): New declaration.
8656 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
8657 -msim and -mcpu= options.
8658 (LIB_SPEC): Likewise.
8659 * config/bfin/bfin.c (bfin_cpu_type): Define.
8660 (bfin_handle_option): Handle -mcpu= option.
8661 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
8662 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
8663 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
8664
f4de8ba6
RS
86652007-04-12 Richard Sandiford <richard@codesourcery.com>
8666
8667 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
8668 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
8669 (powerpc-wrs-vxworksae): Use ${tm_file}.
8670 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
8671 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
8672 * config/i386/vx-common.h: New file.
8673
b83b15da
RS
86742007-04-12 Richard Sandiford <richard@codesourcery.com>
8675
8676 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
8677 of crt0.o%s.
8678
bf259a77
AK
86792007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
8680
8681 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
8682 ldxtr.
8683
95764818
DG
86842007-04-12 Douglas Gregor <doug.gregor@gmail.com>
8685
8686 PR c++/31078
8687 PR c++/31103
8688 * c-common.c (c_build_qualified_type): Set canonical type
316fbf19 8689 appropriately.
95764818 8690
a670437d
RG
86912007-04-12 Richard Guenther <rguenther@suse.de>
8692
8693 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
8694 lower bound and element size if lower bound is not zero
8695 or either of the ARRAY_REF operands is set.
8696
5852948c
RG
86972007-04-12 Richard Guenther <rguenther@suse.de>
8698
8699 PR tree-optimization/24689
8700 PR tree-optimization/31307
8701 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
8702 indices by value.
8703 * gimplify.c (canonicalize_addr_expr): To be consistent with
8704 gimplify_compound_lval only set operands two and three of
8705 ARRAY_REFs if they are not gimple_min_invariant. This makes
8706 it never at this place.
8707 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
8708
8c5e065b
JDA
87092007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8710
8711 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
8712 null before emitting a .nsubspa directive.
8713
0de107cf
DN
87142007-04-11 Diego Novillo <dnovillo@redhat.com>
8715
8716 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
8717 need_to_partition_p if there are no memory statements in the
8718 function.
8719
55a700ac
ZD
87202007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
8721
8722 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
8723 (gcd_of_steps_may_divide_p): New function.
8724 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
8725
0f4b25a3
BS
87262007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
8727
8728 * reload.c (find_reloads_toplev, find_reloads_address,
8729 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
8730 not a pointer equality test, to decide if we need to call
8731 push_reg_equiv_alt_mem.
8732
1baf2906
SP
87332007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
8734
8735 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
7e08fa35
UB
8736 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
8737 New.
1baf2906
SP
8738 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
8739
55a700ac 87402007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
0ca2faee
ZD
8741
8742 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
8743 vector to be positive.
8744
e9e0aa2c
DN
87452007-04-11 Diego Novillo <dnovillo@redhat.com>
8746
8747 PR 30735
8748 PR 31090
8749 * doc/invoke.texi: Document --params max-aliased-vops and
8750 avg-aliased-vops.
8751 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
8752 debug_memory_partitions): Move to tree-flow.h
8753 * params.h (AVG_ALIASED_VOPS): Define.
8754 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
8755 users.
8756 (mp_info_t): Likewise.
8757 (get_mem_sym_stats_for): New.
8758 (set_memory_partition): Move from tree-flow-inline.h.
8759 (mark_non_addressable): Only clear the set of symbols for the
8760 partition if it exists.
8761 (dump_memory_partitions): Move from tree-ssa-operands.c
8762 (debug_memory_partitions): Likewise.
8763 (need_to_partition_p): New.
8764 (dump_mem_ref_stats): New.
8765 (debug_mem_ref_stats): New.
8766 (dump_mem_sym_stats): New.
8767 (debug_mem_sym_stats): New.
8768 (update_mem_sym_stats_from_stmt): New.
8769 (compare_mp_info_entries): New.
8770 (mp_info_cmp): Call it.
8771 (sort_mp_info): Change argument to a list of mem_sym_stats_t
8772 objects.
8773 (get_mpt_for): Move from tree-ssa-operands.c.
8774 (find_partition_for): New.
8775 (create_partition_for): Remove.
8776 (estimate_vop_reduction): New.
8777 (update_reference_counts): New.
8778 (build_mp_info): New.
8779 (compute_memory_partitions): Refactor.
8780 Document new heuristic.
8781 Call build_mp_info, update_reference_counts,
8782 find_partition_for and estimate_vop_reduction.
8783 (compute_may_aliases): Populate virtual operands before
8784 calling debugging dumps.
8785 (delete_mem_sym_stats): New.
8786 (delete_mem_ref_stats): New.
8787 (init_mem_ref_stats): New.
8788 (init_alias_info): Call it.
8789 (maybe_create_global_var): Remove alias_info argument.
8790 Get number of call sites and number of pure/const call sites
8791 from gimple_mem_ref_stats().
8792 (dump_alias_info): Call dump_memory_partitions first.
8793 (dump_points_to_info_for): Show how many times a pointer has
8794 been dereferenced.
8795 * opts.c (decode_options): For -O2 set --param
8796 max-aliased-vops to 500.
8797 For -O3 set --param max-aliased-vops to 1000 and --param
8798 avg-aliased-vops to 3.
8799 * fortran/options.c (gfc_init_options): Remove assignment to
8800 MAX_ALIASED_VOPS.
8801 * tree-flow-inline.h (gimple_mem_ref_stats): New.
8802 * tree-dfa.c (dump_variable): Dump memory reference
8803 statistics.
8804 Dump NO_ALIAS* settings.
8805 (referenced_var_lookup): Tidy.
8806 (mem_sym_stats): New.
8807 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
8808 and ORIG are different SSA names for a memory partition.
8809 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
8810 * tree-flow.h (struct mem_sym_stats_d): Define.
8811 (mem_sym_stats_t): Define.
8812 (struct mem_ref_stats_d): Define.
8813 (struct gimple_df): Add field mem_ref_stats.
8814 (enum noalias_state): Define.
8815 (struct var_ann_d): Add bitfield noalias_state.
8816 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
8817 debug_mem_ref_stats, debug_memory_partitions,
8818 debug_mem_sym_stats): Declare.
8819 * tree-ssa-structalias.c (update_alias_info): Update call
8820 sites, pure/const call sites and asm sites in structure
8821 returned by gimple_mem_ref_stats.
8822 Remove local variable IS_POTENTIAL_DEREF.
8823 Increase NUM_DEREFS if the memory expression is a potential
8824 dereference.
8825 Call update_mem_sym_stats_from_stmt.
8826 If the memory references memory, call
8827 update_mem_sym_stats_from_stmt for all the direct memory
8828 symbol references found.
8829 (intra_create_variable_infos): Set noalias_state field for
8830 pointer arguments according to the value of
8831 flag_argument_noalias.
8832 * tree-ssa-structalias.h (struct alias_info): Remove fields
8833 num_calls_found and num_pure_const_calls_found.
8834 (update_mem_sym_stats_from_stmt): Declare.
8835 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
8836 Set default value to 100.
8837 (PARAM_AVG_ALIASED_VOPS): Define.
8838
4bf371ea
RG
88392007-04-11 Richard Guenther <rguenther@suse.de>
8840
8841 PR middle-end/31530
8842 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
8843 a * -b + c as c - a * b if we honor sign dependent rounding.
8844
266d11d8
BS
88452007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
8846
8847 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
8848 bfin_expand_strmov.
8849 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
8850 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
8851 variables.
8852 (initialize_trampoline): Don't use old-style function definition.
8853 (bfin_secondary_reload): Mark IN_P argument as unused.
8854
e9793dae
SP
88552007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
8856
8857 PR tree-optimization/31343
8858 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
8859 (build_polynomial_chrec): Return a scalar when the evolution is zero.
8860 * testsuite/gcc.dg/vect/pr31343.c: New.
8861
54a88090
EC
88622007-04-10 Eric Christopher <echristo@apple.com>
8863
8864 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
8865 * config/i386/i386.md (*cmpfp0): Use.
8866 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
8867 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
8868 (fix_trunc<mode>_i386_fisttp): Ditto.
8869 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
8870 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
8871 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
8872 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
8873 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
8874 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
8875 (unnamed_splitters): Ditto.
8876 * config/i386/i386.c (output_fix_trunc): Assert that
8877 we're not being passed a TFmode operand.
8878
7c57be85
ZD
88792007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
8880
8881 PR tree-optimization/31526
8882 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
8883 n_basic_blocks to find newly added blocks.
8884
0218c012
UB
88852007-04-10 Uros Bizjak <ubizjak@gmail.com>
8886
8887 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
8888 alternative.
8889 (fix_trunc<mode>si_sse): Ditto.
8890 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
8891 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
8892 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
8893 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
8894 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
8895 expander using SSEMODEF mode macro.
8896 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
8897 expander using SSEMODEF mode macro.
8898 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
8899 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
8900 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
8901 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
8902 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
8903 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
8904 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
8905 Macroize insn using X87MODEF mode macro.
8906
3117d1b5
L
89072007-04-09 H.J. Lu <hongjiu.lu@intel.com>
8908
8909 * config/i386/sse.md (sse2_pinsrw): Removed.
8910 (sse2_pextrw): Renamed to ...
8911 (*sse2_pextrw): This.
8912
c141e499
JH
89132007-04-09 Jan Hubicka <jh@suse.cz>
8914
8915 PR target/27869
8916 * config/i386/sse.md
8917 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
8918 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
8919 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
8920 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
8921
6e6e19cb
JH
89222007-04-09 Jan Hubicka <jh@suse.cz>
8923
8924 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
8925 multiple fields of union.
8926
c7b852c8
ZD
89272007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
8928
8929 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
8930 (create_preheaders): Check that loops are available.
8931 (fix_loop_structure): Clean up, improve comments.
8932 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
8933 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
8934 state flags.
8935 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
8936 * predict.c (tree_estimate_probability): Do not call
8937 calculate_dominance_info. Call create_preheaders.
8938 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
8939 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
8940 flags.
8941 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
8942 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
8943 * tree-cfg.c (tree_split_edge): Make an assert more precise.
8944 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
8945 arguments.
8946
c586d32a
JH
89472007-04-08 Jan Hubicka <jh@suse.cz>
8948
8949 * tree.h (maybe_fold_offset_to_component_ref): Declare.
8950 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
8951 * fold-const.c (fold_unary): Use it.
8952
136cdb22
AP
89532007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
8954
8955 * varasm.c (assemble_variable): Remove call to
8956 lang_hooks.decls.prepare_assemble_variable.
8957 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
8958 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
8959 * langhooks.h (lang_hooks_for_decls): Remove
8960 prepare_assemble_variable.
8961
77c1632f
MS
89622007-04-08 Mike Stump <mrs@apple.com>
8963
8964 * config/i386/i386.c: Use inc/dec on Core2.
8965
cb9c159d
SB
89662007-04-08 Steven Bosscher <steven@gcc.gnu.org>
8967
8968 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
8969 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
8970 lhd_tree_inlining_end_inlining): Remove.
8971 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
8972 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
8973 end_inlining hooks.
8974 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
8975 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
8976 lhd_tree_inlining_end_inlining): Remove prototypes.
8977 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
8978 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
8979 LANG_HOOKS_TREE_INLINING_START_INLINING,
8980 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
8981
8982 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
8983 not set it.
8984
d8a1f0fb
AS
89852007-04-08 Anatoly Sokolov <aesok@post.ru>
8986
8987 PR target/29932
8988 * config/avr/predicates.md (io_address_operand): Delete predicate.
8989 (low_io_address_operand): Don't use 'mode' argument.
8990 (higth_io_address_operand): Rename ...
8991 (high_io_address_operand): ... to this. Don't use 'mode' argument.
8992 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
8993 for above change.
8994
270c60bb
DB
89952007-04-07 Daniel Berlin <dberlin@dberlin.org>
8996
8997 Revert change removing staticp.
8998
ee57a661
AS
89992007-04-07 Anatoly Sokolov <aesok@post.ru>
9000
9001 PR target/30289
54a88090 9002 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
ee57a661
AS
9003 earlyclobber.
9004
ca178f85
BK
90052007-04-07 Bruce Korb <bkorb@gnu.org>
9006
9007 * c.opt: Add -Wformat-contains-nul.
9008 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
9009 -Wformat setting.
9010 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
9011 the NUL byte warning.
9012
594dc048
L
90132007-04-07 H.J. Lu <hongjiu.lu@intel.com>
9014
9015 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
9016
1df918ac
DB
90172007-04-06 Daniel Berlin <dberlin@dberlin.org>
9018
9019 * tree.c (staticp): No longer use staticp langhook.
9020 * langhooks.c (lhd_staticp): Removed.
9021 * langhooks.h (struct lang_hooks): Remove staticp.
9022 * c-common.c (c_staticp): Remove.
9023 * c-common.h (c_staticp): Ditto.
9024 * langhooks-defs.h (lhd_staticp): Ditto.
9025 (LHD_HOOKS_STATICP): Ditto
9026 * tree.h (gcc_assert_lowered): New macro.
9027
ac84e05e
ZD
90282007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
9029
9030 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
9031 argument "reliable".
9032 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
9033 Add argument "reliable". Propagate it through calls.
9034 (infer_loop_bounds_from_undefined): Derive number of iterations
9035 estimates from references in blocks that do not dominate loop latch.
9036 (gcov_type_to_double_int): New function.
9037 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
9038 and expected_loop_iterations_unbounded.
9039 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
9040 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
9041 * tree-data-ref.c (estimated_loop_iterations): Export.
9042 (get_references_in_stmt): Fix -- do not return addresses of local
9043 objects.
9044 * cfgloop.h (expected_loop_iterations_unbounded,
9045 estimated_loop_iterations): Declare.
9046
4de5c5d3
AT
90472007-04-06 Andreas Tobler <a.tobler@schweiz.org>
9048
9049 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
9050
a344e3cb
UB
90512007-04-06 Uros Bizjak <ubizjak@gmail.com>
9052
9053 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
9054 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
9055 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
9056 Use output_387_reg_move().
9057 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
9058 expander using X87MODEF12 mode macro.
9059 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
9060 choosing register preferences. Use output_387_reg_move().
9061 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
9062 instead of "x". Use output_387_reg_move().
9063 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
9064 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
9065 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
9066 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
9067 Use output_387_reg_move().
9068 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
9069 mode macro.
9070 (*truncxf?f_i387 splitter): Ditto.
9071
9c269bf8
DB
90722007-04-06 Daniel Berlin <dberlin@dberlin.org>
9073
9074 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
9075 LANG_HOOKS_SAFE_FROM_P.
9076 * expr.c (safe_from_p): Remove langhook call.
9077 * langhooks.h (lang_hooks): Remove safe_from_p.
9078 (lhd_safe_from_p): Remove prototype.
9079 * langhooks.c (lhd_safe_from_p): Remove.
54a88090 9080
b521dcbe
JH
90812007-04-06 Jan Hubicka <jh@suse.cz>
9082
9083 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
9084 functions.
9085
d869c351
UB
90862007-04-06 Uros Bizjak <ubizjak@gmail.com>
9087
9088 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
9089 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
9090 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
9091 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
9092 alternative.
9093 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
9094 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
9095
e4bec638
RH
90962007-04-05 Richard Henderson <rth@redhat.com>
9097
9098 * config/alpha/alpha.c (print_operand) [+]: Remove.
9099 (alpha_end_function): Print nop if call at end of function.
9100 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
9101 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
9102 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
9103 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
9104 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
9105 the call pattern. Update peepholes to match.
9106
44aea9ac
JJ
91072007-04-05 Janis Johnson <janis187@us.ibm.com>
9108
9109 * doc/extend.texi (Other Builtins): Add decimal float variants
9110 of signbit.
9111 * builtins.def: Ditto.
9112 * builtins.c (expand_builtin): Ditto.
9113
27120a59
UB
91142007-04-05 Uros Bizjak <ubizjak@gmail.com>
9115 H.J. Lu <hongjiu.lu@intel.com>
9116
9117 PR target/31478
9118 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
9119 of V8HImode when calling ix86_binary_operator_ok.
9120 (sse2_pmaddwd): Call ix86_binary_operator_ok.
9121 (sdot_prodv8hi): Operands 1 and 2 must be register.
9122
fa574e51
AO
91232007-04-05 Alexandre Oliva <aoliva@redhat.com>
9124
9125 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
9126 initialize align to silence bogus warning.
9127
dc808df6
AO
91282007-04-05 Alexandre Oliva <aoliva@redhat.com>
9129
9130 PR middle-end/22156
9131 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
9132 all_no_warning.
9133 (struct sra_walk_fns): Remove use_all parameter from use.
9134 (sra_hash_tree): Handle BIT_FIELD_REFs.
9135 (sra_elt_hash): Don't hash bitfld blocks.
9136 (sra_elt_eq): Skip them in parent compares as well. Handle
9137 BIT_FIELD_REFs.
9138 (sra_walk_expr): Don't maintain or pass down use_all_p.
9139 (scan_use): Remove use_all parameter.
9140 (scalarize_use): Likewise. Re-expand assignment to
9141 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
9142 output, and re-scalarize after output. Don't mark anything
9143 for no warning.
9144 (scalarize_ldst): Adjust.
9145 (scalarize_walk_gimple_modify_statement): Likewise.
9146 (build_element_name_1): Handle BIT_FIELD_REFs.
9147 (instantiate_element): Don't warn for any element whose parent
9148 is used as a whole.
9149 (instantiate_missing_elements_1): Return the sra_elt.
9150 (canon_type_for_field): New.
9151 (try_instantiate_multiple_fields): New.
9152 (instantiate_missing_elemnts): Use them.
9153 (mark_no_warning): Removed.
9154 (generate_one_element_ref): Handle BIT_FIELD_REFs.
9155 (REPLDUP, sra_build_elt_assignment): New.
9156 (generate_copy_inout): Use them.
9157 (generate_element_copy): Likewise. Handle bitfld differences.
9158 (generate_element_zero): Don't recurse for blocks. Use
9159 sra_build_elt_assignment.
9160 (generate_one_element_int): Take elt instead of var. Use
9161 sra_build_elt_assignment.
9162 (generate_element_init_1): Adjust.
9163 (scalarize_use, scalarize_copy): Use REPLDUP.
9164 (scalarize_ldst): Move assert before dereference.
9165 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
9166
21f7aaa4
SB
91672007-04-05 Steven Bosscher <steven@gcc.gnu.org>
9168
9169 * regmove.c: Fix unused variable warnings due to previous commit.
9170
a78f3e71
SB
91712007-04-05 Steven Bosscher <steven@gcc.gnu.org>
9172
9173 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
9174 (regmove_bb_head): Remove.
9175 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
9176 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
9177 problems with fixup_match_1.
9178 Don't initialize/free regmove_bb_head.
9179
9180 (reg_is_remote_constant_p): If an insn is in the same basic block
9181 but not before INSN, consider it remote, too.
9182
f9ca0dee
AS
91832007-04-05 Anatoly Sokolov <aesok@post.ru>
9184
9185 PR target/25448
54a88090 9186 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
f9ca0dee
AS
9187 DECL_ASSEMBLER_NAME, not the DECL_NAME.
9188
7706ca5d
L
91892007-04-05 H.J. Lu <hongjiu.lu@intel.com>
9190
9191 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
9192 (CONDITIONAL_REGISTER_USAGE): Likewise.
9193
51a6c5b3
RH
91942007-04-04 Richard Henderson <rth@redhat.com>
9195
9196 * config/alpha/lib1funcs.asm: Remove unused file.
9197
b5456e04
BM
91982007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9199
9200 PR other/31356
9201 * opts.c (print_specific_help): Fix --help=<language>
9202 header line.
9203 (common_handle_option): Support --help=common.
9204
2c4c82dd
BM
92052007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9206
9207 PR other/31353
9208 * gcc.c (main): Do not run the linker if
9209 print_subprocess_help indicates that it shouldn't be
9210 run.
9211
5bb43e6d
BM
92122007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9213
9214 PR doc/31355
9215 * doc/invoke.texi (--help=): Document <languages> value, fix
9216 formatting in tables of values.
9217
6acd8838
DS
92182007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
9219
9220 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
9221 dllimport attribute of virtual methods.
9222
c6681463
CL
92232007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
9224
c7a2139b
RH
9225 * config/score/crti.asm: Change _bss_start to __bss_start.
9226 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
9227 (OUTGOING_REG_PARM_STACK_SPACE) update.
9228 * config/score/score.opt: add options to make backend support
9229 score5, score5u, score7 and score7d.
9230 * config/score/score.md: Likewise.
9231 * config/score/misc.md: Likewise.
9232 * config/score/mac.md: Likewise.
9233 * doc/invoke.texi: Likewise.
9234 * doc/md.texi: update constraints define.
c6681463 9235
fdd84500
RH
92362007-04-03 Richard Henderson <rth@redhat.com>
9237
9238 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
9239 an appropriate type, use the mode instead.
9240
9200d6c8
RS
92412007-04-03 Richard Sandiford <richard@codesourcery.com>
9242
9243 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
9244 Set the default --with-arch setting to mips2.
9245 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
9246 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
9247 (MULTILIB_OSDIRNAMES): Delete.
9248 (MULTILIB_DIRNAMES): Define.
9249 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
9250 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
9251 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
9252 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
9253 VXWORKS_OS_CPP_BUILTINS.
9254 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
9255 (MIPS_DEBUGGING_INFO): Undefine.
9256 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
9257
0a9430a8
JJ
92582007-04-03 Jakub Jelinek <jakub@redhat.com>
9259
9260 PR middle-end/30704
9261 * fold-const.c (native_encode_real): Encode real.c provided longs
9262 as a series of 32-bit native integers.
9263 (native_interpret_real): Interpret buffer as a series of 32-bit
9264 native integers.
9265
5be527d0
RG
92662007-04-03 Richard Guenther <rguenther@suse.de>
9267
9268 * genpreds.c (write_insn_constraint_len): Write function
9269 optimized for CONSTRAINT_LEN implementation.
9270 (write_tm_preds_h): Output insn_constraint_len inline and
9271 use it for CONSTRAINT_LEN.
9272 (write_insn_preds_c): Don't output insn_constraint_len.
9273 * doc/md.texi (define_register_constraint): Document multi-letter
9274 constraints shall have the same length if they start with the same
9275 letter.
9276
81e864cb
UB
92772007-04-03 Uros Bizjak <ubizjak@gmail.com>
9278
9279 PR target/31175
9280 * config/i386/i386.md (isinf<mode>2): Expand only when
9281 TARGET_C99_FUNCTIONS is set.
9282
577565f9
UB
92832007-04-03 Uros Bizjak <ubizjak@gmail.com>
9284
9285 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
9286 (x86_64-*-linux*): Ditto.
9287 * config/i386/i386.opt (mpc): New option.
9288 * config/i386/i386.c (overrride_options): Handle
9289 ix87_precision_string.
9290 * config/i386/crtprec.c: New file.
9291 * config/i386/t-crtpc: Ditto.
9292 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
9293 and -mpc80 options.
9294 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
9295 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
9296 crtprec32.o, crtprec64.o and crtprec80.o.
9297
9298 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
9299 and -mpc80 options.
9300 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
9301
cb7ad97b
EC
93022007-04-02 Eric Christopher <echristo@apple.com>
9303
9304 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
9305 limitations on darwin.
9306
c8bbabf2
AS
93072007-04-02 Anatoly Sokolov <aesok@post.ru>
9308
9309 PR target/31137
9310 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
9311
f71e957e
DK
93122007-04-02 Dave Korn <dave.korn@artimi.com>
9313
ae65d512 9314 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
cb7ad97b 9315
c82476bf
DK
93162007-04-02 Dave Korn <dave.korn@artimi.com>
9317
ae65d512
DK
9318 * libgcc2.h (exception_descriptor): Don't forward-declare.
9319 (__get_eh_table_language, __get_eh_table_version): Delete
c82476bf
DK
9320 prototypes of long-dead functions.
9321
53a853de
DB
93222007-04-01 Daniel Berlin <dberlin@dberlin.org>
9323
9324 * ebitmap.h: New file
9325 * ebitmap.c: New file
9326 * Makefile.in (ebitmap.o): New target.
9327
26cb3993
JH
93282007-04-01 Jan Hubicka <jh@suse.cz>
9329
9330 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
9331 before very first instruction.
9332
93332007-04-01 Jan Hubicka <jh@suse.cz>
9334
9335 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
9336 waring on 64bit hosts.
9337 * bitmap.h: Fix typo in bitmap_head_def.
9338
5b52976b
SB
93392007-04-01 Steven Bosscher <steven@gcc.gnu.org>
9340
9341 PR rtl-optimization/31391
9342 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
9343 into a DELETED_LABEL note, and the label is in an empty basic
9344 block, update BB_END as well as BB_HEAD.
9345
af33044f
RH
93462007-04-01 Richard Henderson <rth@redhat.com>
9347
9348 PR tree-optimization/31169
9349 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
9350 to varying if the range is outside [0, prec-1].
9351
1732457d
RS
93522007-04-01 Richard Sandiford <richard@codesourcery.com>
9353
9354 PR target/31388
9355 * config/mips/mips.md (load_const_gp): New insn.
9356 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
9357 the MIPS16 GP pseudo register if no_new_pseudos.
9358 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
9359
ee05ef56
AP
93602007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
9361
9362 PR target/31364
9363 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
9364 secureplt.
9365 (call_value): Likewise.
9366
c9516c38 93672007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
577565f9 9368 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
c9516c38
WB
9369
9370 PR 14737
9371 * doc/invoke.texi: (optimization options): Reword description
9372 of -ffast-math. Document its primary purpose.
cb7ad97b 9373
6be42dd4
RG
93742007-03-31 Richard Guenther <rguenther@suse.de>
9375
9376 * omp-low.c (splay-tree.h): Include.
9377 (lookup_decl): Replace splay-tree usage by pointer-map.
9378 (maybe_lookup_decl): Likewise.
9379 (new_omp_context): Likewise.
9380 (delete_omp_context): Likewise.
9381 * gimplify.c (splay-tree.h): Include.
9382 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
9383 pointer-map.
9384 (remap_ssa_name): Likewise.
9385 (remap_decl): Likewise.
9386 (remap_type_1): Likewise.
9387 (remap_type): Likewise.
9388 (copy_body_r): Likewise.
9389 (expand_call_inline): Likewise.
9390 (clone_body): Likewise.
9391 (copy_tree_r): Likewise.
9392 (remap_save_expr): Likewise.
9393 (unsave_r): Likewise.
9394 (unsave_expr_now): Likewise.
9395 (tree_function_versioning): Likewise.
9396 (build_duplicate_type): Likewise.
9397 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
9398 (struct copy_body_data): Replace splay-tree by pointer-map.
9399 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
9400 not $(SPLAY_TREE_H).
9401 (gimplify.o): Depend on $(SPLAY_TREE_H).
9402 (omp-low.p): Likewise.
9403
d54a92b5
AS
94042007-03-31 Anatoly Sokolov <aesok@post.ru>
9405
cb7ad97b 9406 * config/avr/predicates.md (even_register_operand,
d54a92b5
AS
9407 odd_register_operand): New predicates.
9408 * config/avr/avr.md (movw peephole2): New.
9409 (movw_r peephole2): New.
9410
47ecd38d
RAE
94112007-03-30 Rafael Avila de Espindola <espindola@google.com>
9412
9413 * tree.h (get_signed_or_unsigned_type): New.
9414 * fold-const.c (operand_equal_for_comparison_p): Use
9415 get_signed_or_unsigned_type instead of
9416 lang_hooks.types.signed_or_unsigned_type.
9417 * expr.c (store_expr): Ditto.
9418 * langhooks.c (get_signed_or_unsigned_type): New.
9419 (lhd_signed_or_unsigned_type): New.
9420 * langhooks.h (lhd_signed_or_unsigned_type): New.
9421 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
9422
ccf8e764
RH
94232007-03-30 Richard Henderson <rth@redhat.com>
9424
9425 * tree-ssa-loop-ivopts.c: Include target.h.
9426 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
9427 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
9428 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
9429 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
9430
94312007-03-30 Richard Henderson <rth@redhat.com>
9432 Kai Tietz <kai.tietz@onevision.com>
9433
9434 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
9435 default for 64-bit.
9436 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
9437 (TARGET_64BIT_MS_ABI): New.
9438 (DBX_REGISTER_NUMBER): Handle 64-bit.
9439 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
9440 (LONG_TYPE_SIZE): Force to 32.
9441 (REG_PARM_STACK_SPACE): New.
9442 (OUTGOING_REG_PARM_STACK_SPACE): New.
9443 (REGPARM_MAX, SSE_REGPARM_MAX): New.
9444 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
9445 (STACK_BOUNDARY): Use 128 for 64-bit.
9446 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
9447 Add 64-bit implementation.
9448 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
9449 argument unused.
9450 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
9451 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
9452 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
9453 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
9454 (ix86_handle_cconv_attribute): Don't warn when ignoring if
9455 TARGET_64BIT_MS_ABI.
9456 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
9457 (ix86_pass_by_reference): Likewise.
9458 (ix86_function_value_regno_p): Likewise.
9459 (ix86_build_builtin_va_list): Likewise.
9460 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9461 (function_arg_advance_ms_64): New.
9462 (function_arg_advance): Call it.
9463 (function_arg_ms_64): New.
9464 (function_arg): Call it.
9465 (function_value_ms_64): New.
9466 (ix86_function_value_1): Call it.
9467 (return_in_memory_ms_64): New.
9468 (ix86_return_in_memory): Call it.
9469 (setup_incoming_varargs_ms_64): New.
9470 (ix86_setup_incoming_varargs): Call it.
9471 (ix86_expand_prologue): Handle 64-bit stack probing.
9472 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
9473 (output_pic_addr_const): Likewise.
9474 (x86_this_parameter): Likewise.
9475 (x86_output_mi_thunk): Likewise.
9476 (x86_function_profiler): Likewise.
9477 (TARGET_STRICT_ARGUMENT_NAMING): New.
9478 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
9479 (TARGET_64BIT_MS_ABI): New.
9480 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
9481 * config/i386/i386.md (allocate_stack_worker): Remove.
9482 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
9483 describe the clobber of eax without a match_scratch.
9484 (allocate_stack_worker_postreload): Remove.
9485 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
9486 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
9487 (allocate_stack_worker_rex64_postreload): Remove.
9488 (allocate_stack): Handle 64-bit.
9489 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
9490 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
9491 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
9492 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
9493 (STANDARD_STARTFILE_PREFIX_1): Likewise.
9494 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
9495 * config.build (x86_64-*-mingw*): New host.
9496 * config.host (x86_64-*-mingw*): New host.
9497 * config.gcc (x86_64-*-mingw*): New target.
9498 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
9499
121de39f
RH
95002007-03-30 Richard Henderson <rth@redhat.com>
9501 Kai Tietz <kai.tietz@onevision.com>
9502
9503 * c-pragma.c (struct def_pragma_macro_value): New.
9504 (struct def_pragma_macro): New.
9505 (pushed_macro_table): New.
9506 (dpm_hash, dpm_eq): New.
9507 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
9508 (init_pragma): Install them.
9509 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
9510
6c7ac15d
AS
95112007-03-30 Anatoly Sokolov <aesok@post.ru>
9512
cb7ad97b 9513 * config/avr/avr.c (avr_override_options): Clear
6c7ac15d
AS
9514 'flag_delete_null_pointer_checks'.
9515
cb68ec50
PC
95162007-03-30 Paolo Carlini <pcarlini@suse.de>
9517
9518 PR c++/26099
9519 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
9520 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
9521 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
9522 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
9523 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
9524 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
9525 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
9526 C++ extensions.
9527 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
9528
c7a0240a
SB
95292007-03-30 Steven Bosscher <steven@gcc.gnu.org>
9530
9531 * regmove.c: Move all of pass_stack_adjustments from here...
9532 * combine-stack-adj.c: ...to this new file.
9533 * Makefile.in: Add rules for combine-stack-adj.o.
9534
f86289d5
ZD
95352007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
9536
9537 PR tree-optimization/31383
7e08fa35
UB
9538 * tree-data-ref.c (affine_function_equal_p): Do not require the
9539 vectors to have the same length.
f86289d5 9540
4f40bddf
JH
95412007-03-30 Jan Hubicka <jh@suse.cz>
9542
59af4391 9543 PR middle-end/30700
cb7ad97b 9544 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
4f40bddf
JH
9545 availablility; add more sanity checking; ask varpool only about
9546 VAR_DECL.
9547
58c11467
RH
95482007-03-29 Richard Henderson <rth@redhat.com>
9549
9550 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
9551 to decide, but __SIZEOF_LONG_LONG__.
9552
5b77de89
RH
95532007-03-29 Richard Henderson <rth@redhat.com>
9554
9555 * emutls.c (struct __emutls_array): New.
9556 (emutls_destroy): Use it instead of casting element 0 from void*.
9557 (__emutls_get_address): Likewise.
9558
da489f73
RH
95592007-03-29 Richard Henderson <rth@redhat.com>
9560
9561 * varasm.c (initializer_constant_valid_p): Don't deny
9562 DECL_DLLIMPORT_P on functions.
9563
9564 * config/i386/cygming.h: Remove function declarations.
9565 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
9566 (ASM_OUTPUT_LABELREF): Remove.
9567 (COMMON_ASM_OP): Remove.
9568 (ASM_OUTPUT_COMMON): Remove.
9569 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
9570 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
9571 (ASM_DECLARE_FUNCTION_NAME): Likewise.
9572 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
9573 Rename from TARGET_ENCODE_SECTION_INFO.
9574 * config/i386/netware.h: Likewise.
9575 * config/i386/i386-protos.h: Update.
9576 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
9577 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
9578 (legitimate_constant_p): Reject dllimports.
9579 (dllimport_map, get_dllimport_decl): New.
9580 (legitimize_dllimport_symbol): New.
9581 (legitimize_address, ix86_expand_move): Use it.
9582 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
9583 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
9584 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
9585 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
9586 * config/i386/predicates.md (constant_call_address_operand): Only
9587 accept symbols; reject dllimport_p symbols.
9588 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
9589 i386_pe_maybe_record_exported_symbol.
9590 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
9591 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
9592 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
9593 trust the setting of DECL_DLLIMPORT_P.
9594 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
9595 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
9596 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
9597 tidy the argument scanning loop.
9598 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
9599 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
9600 (i386_pe_strip_name_encoding): Remove.
9601 (i386_pe_binds_local_p): New.
9602 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
9603 (i386_pe_output_labelref): Remove.
9604 (i386_pe_asm_output_aligned_decl_common): New.
9605 (i386_pe_maybe_record_exported_symbol): Rename from
9606 i386_pe_record_exported_symbol; check for dllexported symbols.
9607
311e3ff0
ZW
96082007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
9609
9610 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
9611 add comment explaining why vsnprintf cannot be used.
9612
e89886a0
DG
96132007-03-29 Douglas Gregor <doug.gregor@gmail.com>
9614
9615 PR tree-optimization/30666
9616 * tree.c (build_complex_type): When creating type names for DWARF2
9617 debug info, create TYPE_DECLs for TYPE_NAME instead of
9618 IDENTIFIER_NODEs.
9619 (build_common_tree_nodes_2): Use build_complex_type when building
9620 predefined complex types, to preserve canonical types.
9621
cab6e771
SB
96222007-03-29 Steven Bosscher <steven@gcc.gnu.org>
9623
9624 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
9625 (noce_get_alt_condition): Look at it to determine whether to
9626 reverse the condition or not.
9627 (noce_get_condition): Substitute the truth for lies.
9628 (noce_find_if_block): Set the then_else_reversed field.
9629
ed31d14c
LP
96302007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
9631
9632 * config/fr30/fr30.md (movdi): Do not accept immediates as the
9633 destination of this insn.
9634 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
9635 than calling gen_rtx_SET directly. Use r0 to hold the value of
9636 'address + 4' rather than a stack based temporary which can be
9637 mis-optimized away.
cb7ad97b 9638
833cd70a
AK
96392007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
9640
9641 * config/s390/s390.c (s390_secondary_input_reload_class,
9642 s390_secondary_output_reload_class): Functions removed.
9643 (s390_secondary_reload): New function.
9644 (TARGET_SECONDARY_RELOAD): Target macro defined.
9645 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
9646 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
9647 * config/s390/s390.md ("reload_outti", "reload_outdi",
9648 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
9649 "reload_out<mode>"): Expanders removed.
9650 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
9651 "reload<mode>_nonoffmem_out"): Expanders added.
9652
040f69eb
AK
96532007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
9654
7e08fa35
UB
9655 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
9656 action if SRC->DEST replacement failed anyway.
040f69eb 9657
4beb5c4b
MS
96582007-03-28 Mike Stump <mrs@apple.com>
9659
9660 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
9661 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
ab1da110 9662 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
4beb5c4b 9663
aafc814c
DR
96642007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9665
9666 * config.gcc: Accept barcelona as a variant of amdfam10.
9667 * config/i386/i386.c (override_options): Likewise.
9668 * doc/invoke.texi: Likewise.
cb7ad97b 9669
8975ae22
EB
96702007-03-28 Eric Botcazou <ebotcazou@adacore.com>
9671
9672 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
9673 offsets for BIT_FIELD_REF and COMPONENT_REF.
9674
1c2e50d8
RG
96752007-03-28 Richard Guenther <rguenther@suse.de>
9676
9677 * tree.c (is_global_var): Move ...
9678 * tree-flow-inline.h (is_global_var): ... here.
9679 * tree.h (is_global_var): Remove declaration.
9680
a646aded
UB
96812007-03-28 Uros Bizjak <ubizjak@gmail.com>
9682
9683 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
9684 option.
9685 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
9686 * config/i386/i386.c (ix86_tune_features): Initialize new
9687 tuning option.
9688 * config/i386/predicates.md (promotable_binary_operator): Use
9689 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
9690
e701c05c
GZ
96912007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
9692
9693 PR target/31380
9694 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
9695
446347f9 96962007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
08937250
LP
9697
9698 * config/fr30/fr30.md (movsi_internal): Change destination
cb7ad97b 9699 constraint from m to V and add m to the end.
08937250 9700
52618376
CB
97012007-03-28 Christian Bruel <christian.bruel@st.com>
9702
9703 * config/sh/sh.md (movsi_i): Fix type attribute.
9704
446347f9 97052007-03-28 Christian Bruel <christian.bruel@st.com>
bbccf908
CB
9706
9707 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
9708 (movsf_ie): Likewise.
9709
27a0ce7d
CB
97102007-03-28 Christian Bruel <christian.bruel@st.com>
9711
9712 * config.gcc: Add sh4-300 to multilib.
9713 * config/sh/t-mlib-sh4-300: New file.
9714
99cd7dd0
AK
97152007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
9716
9717 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
9718 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
9719 fix_trunc<mode>di2.
cb7ad97b 9720 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
99cd7dd0
AK
9721 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
9722 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
9723 "fixuns_trunctddi2"): Whitespace fix.
9724
e318fc8f
KK
97252007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
9726
9727 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
9728 the definition of struct sh_args.
9729 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
9730 CALL_COOKIE_INT_REG_GET): Likewise.
9731
96647293
SB
97322007-03-28 Steven Bosscher <steven@gcc.gnu.org>
9733
9734 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
9735 transformations are applied successfully.
9736
00ffc97c
DG
97372007-03-27 Douglas Gregor <doug.gregor@gmail.com>
9738
9739 * tree.c (tree_contains_struct): Permit 512 tree codes.
9740 * tree.h (tree_contains_struct): Ditto.
9741 (MAX_TREE_CODES): Ditto.
9742 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
9743 SPARE member to store remaining padding bits.
9744
39418b53
AS
97452007-03-27 Anatoly Sokolov <aesok@post.ru>
9746
cb7ad97b 9747 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
39418b53
AS
9748 architecture.
9749
a3bba767
JJ
97502007-03-27 Janis Johnson <janis187@us.ibm.com>
9751
0d74c0ee
JJ
9752 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
9753 * configure: Regenerate.
9754
a3bba767
JJ
9755 * configure: Regenerate using the correct version of autoconf.
9756
97572007-03-27 Anatoly Sokolov <aesok@post.ru>
2cd11105
AS
9758
9759 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
9760 pointer regs.
9761 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
9762 regs to "__SP_L__" and "__SP_H__".
9763
c21c775a
RG
97642007-03-27 Richard Guenther <rguenther@suse.de>
9765
9766 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
cb7ad97b 9767 computations with it with a HOST_WIDE_INT variable.
c21c775a 9768
6b692a83
MS
97692007-03-26 Mike Stump <mrs@apple.com>
9770
9771 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
9772 objective-c-header, objective-c++-header and objc++-cpp-output
9773 support.
9774 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
9775
24bfafbc
RH
97762007-03-26 Richard Henderson <rth@redhat.com>
9777
a646aded
UB
9778 PR target/31361
9779 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
9780 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
9781 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
9782 IX86_BUILTIN_PSRLQ128): New.
9783 (ix86_init_mmx_sse_builtins): Add them.
9784 (ix86_expand_builtin): Expand them.
9785 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
9786 operand 2 be TImode.
9787 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
9788 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
9789 _mm_srli_epi64): Mark __B const.
9790 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
9791 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
cb7ad97b 9792 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
a646aded 9793 new two-vector shift builtins.
24bfafbc 9794
fa633851
ILT
97952007-03-26 Ian Lance Taylor <iant@google.com>
9796
9797 PR tree-optimization/31345
9798 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
9799 [+INF, +INF(OVF)] into VARYING.
9800
cff4720f
ZW
98012007-03-26 Zack Weinberg <zackw@panix.com>
9802
01d419ae
ZW
9803 * gengtype-parse.c: New file.
9804 * gengtype-yacc.y: Delete.
9805 * gengtype-lex.l: Don't include gengtype-yacc.h.
9806 Define YY_DECL and yyterminate appropriately for recursive
9807 descent parser. yylval is now a string out-parameter to yylex.
9808 (HWS, EOID): New shorthand.
9809 (IWORD): Add a couple more types.
9810 (yylex): Add a setup stanza. Remove the complex rules for
9811 detecting GTY'ed types and typedefs; replace with simple
9812 keyword detectors. Adjust everything for the changed
9813 definition of yylval. Ignore all pp-directives, not just #define.
9814 (yyerror): Delete.
9815 (parse_file): Rename yybegin; do not call yyparse.
9816 (yyend): New.
9817 * gengtype.c (xasprintf): Export again.
9818 (this_file): New. Use everywhere __FILE__ was being used.
9819 (get_lang_bitmap): Special case types defined in gengtype.c.
9820 (do_typedef, new_structure): Suppress definition of certain types.
9821 (new_structure): Improve diagnostics of duplicate definitions.
9822 Make sure location_s is associated with input.h.
9823 (nreverse_pairs, define_location_structures): New functions.
9824 (main): Improve tagging of kludge types. Remove old kludges
9825 for input.h types; use define_location_structures.
9826 * gengtype.h: Update prototypes. Define token codes here.
9827 * Makefile.in: Remove all references to gengtype-yacc.
9828 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
9829 and gengtype.
9830 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
9831 add GTY((skip)) to the field that's only conditionally there.
9832 * doc/install.texi: Document that Bison is no longer required
9833 unless building treelang.
9834
11a67599
ZW
9835 * gengtype.c: Don't include gtyp-gen.h.
9836 (srcdir): Declare here.
9837 (base_files, lang_dir_names): Allocate dynamically.
9838 (gt_files, num_gt_files, num_lang_dirs): New globals.
9839 (measure_input_list, read_input_line, read_input_list)
9840 (set_lang_bitmap): New functions.
9841 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
9842 simplify, relying on read_input_list to set up the bitmaps.
9843 (main): Arguments are no longer unused. Check for correct number
9844 of command line arguments, set srcdir and srcdir_len, then call
9845 read_input_list, before doing anything else. No need to worry
9846 about duplicates in main loop.
9847 * configure.ac: Simplify the calculation of all_gtfiles.
9848 Put language tags in there. Don't set or substitute
9849 all_gtfiles_files_langs or all_gtfiles_files_frags.
9850 * Makefile.in: Revamp the way gengtype is invoked, now that it
9851 takes a file on its command line with a much simpler format.
9852 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
9853 (GTFILES): Remove duplicates and C source files.
9854 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
9855 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
9856 * configure: Regenerate.
9857
065ae611
ZW
9858 * gengtype.h: Remove all type definitions to gengtype.c; leave
9859 only definitions of options_p, type_p, and pair_p as opaque
9860 pointers. Update prototypes.
9861 * gengtype.c: Many type definitions moved here from gengtype.h.
9862 Consolidate type definitions at the top of the file.
9863 (xvasprintf): Delete.
9864 (xasprintf): Make static.
9865 (create_nested_pointer_option): Add 'next' parameter.
9866 (create_field_all, create_field_at): New functions.
9867 (create_field): Now a thin wrapper around create_field_all.
9868 (create_optional_field): Rename create_optional_field_ and add
9869 line argument. Original name is now a macro which supplies
9870 __LINE__.
9871 (oprintf): Use vsnprintf directly.
9872 (close_output_files): Use fatal rather than perror/exit.
9873 (note_def_vec, note_def_vec_alloc): Use create_field_at.
9874 (main): Set progname. Don't use exit.
9875 * gengtype-yacc.y (struct_fields): Use create_field_at.
9876 (option, optionseqopt): Delete.
9877 (optionseq): Consolidate productions from option here so we
9878 can use the first argument to create_option.
9879
17defa6a
ZW
9880 * gengtype-lex.l: Distinguish unions from structures in the
9881 token type. Don't call find_structure; return the tag as a string.
7e08fa35
UB
9882 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
9883 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
9884 string. Reorganize typedef_struct production accordingly.
17defa6a
ZW
9885 Use create_nested_ptr_option.
9886 * gengtype.c (create_nested_ptr_option): New function.
9887 * gengtype.h: Declare it.
9888
95161faf
ZW
9889 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
9890 (string_type): Don't declare.
9891 (do_scalar_typedef): Declare.
9892 (create_scalar_type): Update prototype.
9893 * gengtype.c (string_type): Make static.
9894 (scalar_nonchar, scalar_char): New.
9895 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
9896 (resolve_typedef): Use scalar_nonchar for error recovery.
9897 (create_scalar_type): Remove name_len field. Return scalar_char
9898 or scalar_nonchar as appropriate.
9899 (adjust_field_type): Look at scalar_is_char boolean to decide whether
9900 to use string_type.
7e08fa35
UB
9901 (throughout): Use scalar_nonchar instead of calling
9902 create_scalar_type, whenever possible.
95161faf
ZW
9903 (main): Initialize scalar_char and scalar_nonchar before calling
9904 gen_rtx_next.
9905 * gengtype-lex.l: Adjust for removal of second argument to
9906 create_scalar_type. Use yylval.s instead of yylval.t when
9907 returning SCALAR.
9908 * gengtype-yacc.y: Type of SCALAR is string. Call
9909 create_scalar_type from type:SCALAR rule. Adjust for removal of
9910 second argument to create_scalar_type.
9911
4a399aef
ZW
9912 * vec.h: Remove all #if IN_GENGTYPE blocks.
9913 Add comment saying that changes may require adjustments to gengtype.
9914 * gengtype.c: Don't include coretypes.h or tm.h.
9915 Add comment to inclusion of errors.h.
9916 (note_def_vec, note_def_vec_alloc): New functions.
9917 * gengtype.h: Declare new functions.
9918 * gengtype-lex.l: Don't include coretypes.h.
9919 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
9920 Delete.
9921 (update_lineno): Remove unnecessary prototype.
9922 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
9923 (VEC rule): Just return VEC_TOKEN.
9924 * gengtype-yacc.y (VEC_TOKEN): New token type.
9925 (type): Add a production for VEC(a,b).
9926 * Makefile.in: Update dependencies.
9927
d287ace6
ZW
9928 * gengtype-lex.l: Remove rules for parsing pointer-to-function
9929 typedefs that use the old PARAMS macro.
9930
cff4720f
ZW
9931 * gengtype-lex.l: Remove all rules and states relating to yacc
9932 input files.
9933 * gengtype-yacc.y: Similarly.
9934 * gengtype.c (note_yacc_type): Delete function.
9935 * gengtype.h: Update prototypes.
9936
71175bf3
JM
99372007-03-26 Joseph Myers <joseph@codesourcery.com>
9938
9939 * tree-pretty-print.c (dump_generic_node): Report precision of
9940 unnamed integer types.
9941
93242b9c
SB
99422007-03-26 Steven Bosscher <steven@gcc.gnu.org>
9943
9944 * ifcvt.c (noce_try_store_flag_constants): Don't check
9945 no_new_pseudos here.
9946 (noce_try_store_flag_constants): Don't check no_new_pseudos.
9947 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
9948 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
9949 noce_try_sign_mask): Likewise.
9950 (if_convert): Check no_new_pseudos here.
9951
9952 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
9953 Remove prototypes.
9954 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
9955 (noce_get_condition): Handle new then_else_reversed argument.
9956 (noce_init_if_info): Remove, fold into noce_find_if_block.
9957 (noce_process_if_block): Take a struct noce_if_info as the
9958 argument. Don't set up one based on ce_if_info. Update pointer
9959 references accordingly.
9960 (cond_move_process_if_block): Likewise.
9961 (process_if_block): Removed.
9962 (find_if_block): Removed. Move functionality two new functions,
9963 noce_find_if_block and cond_exec_find_if_block.
9964 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
9965 blocks and the symmetric IF-ELSE-JOIN case.
9966 (cond_exec_find_if_block): Also new function mostly based on old
9967 find_if_block and process_if_block.
9968 (find_if_header): Replace find_if_block call with separately
9969 guarded calls to noce_find_if_block and cond_exec_find_if_block.
9970 (find_cond_trap): Update noce_get_condition call.
9971 (dead_or_predicable): Likewise.
9972
85acef0e
JJ
99732007-03-26 Jakub Jelinek <jakub@redhat.com>
9974
9975 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
9976 Remove.
9977 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
9978 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
9979 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
9980 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
a646aded 9981 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
85acef0e
JJ
9982 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
9983 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
9984 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
9985 __builtin_ia32_psrad128 builtins.
9986
8dde5924
UB
99872007-03-26 Uros Bizjak <ubizjak@gmail.com>
9988
9989 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
9990 * config/i386/constraints.md
9991 (define_constraint "I"): Use IN_RANGE macro.
9992 (define_constraint "J"): Ditto.
9993 (define_constraint "K"): Ditto.
9994 (define_constraint "M"): Ditto.
9995 (define_constraint "N"): Ditto.
9996 (define_constraint "O"): Ditto.
9997 * config/i386/predicates.md
9998 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
9999 (define_predicate "const_0_to_3_operand"): Ditto.
10000 (define_predicate "const_0_to_7_operand"): Ditto.
10001 (define_predicate "const_0_to_15_operand"): Ditto.
10002 (define_predicate "const_0_to_63_operand"): Ditto.
10003 (define_predicate "const_0_to_255_operand"): Ditto.
10004 (define_predicate "const_1_to_31_operand"): Ditto.
10005 (define_predicate "const_2_to_3_operand"): Ditto.
10006 (define_predicate "const_4_to_7_operand"): Ditto.
10007
a5ad2017
DE
100082007-03-25 David Edelsohn <edelsohn@gnu.org>
10009
10010 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
10011 in SImode for save_world.
10012 * config/rs6000/altivec.md (save_world, restore_world): Convert to
10013 LR hard reg.
10014
5773afc5
DN
100152007-03-25 Dorit Nuzman <dorit@il.ibm.com>
10016
10017 PR tree-optimization/30784
10018 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
10019 BIT_FIELD_REF.
10020
3ece6cc2
RE
100212007-03-25 Revital Eres <eres@il.ibm.com>
10022
cff4720f
ZW
10023 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
10024 Fold movement_possibility function into it.
3ece6cc2 10025
e65a3857
DE
100262007-03-25 David Edelsohn <edelsohn@gnu.org>
10027
10028 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
10029 (load_macho_picbase_{si,di}): Convert to LR hard reg.
10030 (call_indirect_nonlocal_darwin64): Same.
10031 (call_nonlocal_darwin64): Same.
10032 (call_value_indirect_nonlocal_darwin64): Same.
10033 (call_value_nonlocal_darwin64): Same.
10034 (sibcall_nonlocal_darwin64): Same.
10035 (sibcall_value_nonlocal_darwin64): Same.
10036 (sibcall_symbolic_64): Same.
10037 (sibcall_value_symbolic_64): Same.
10038 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
10039 LR pseudo.
10040 (rs6000_emit_load_toc_table): Same.
10041 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
10042 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
10043 (mull_call): Same.
10044 (divss_call): Same.
10045 (divus_call): Same.
10046 (quoss_call): Same.
10047 (quous_call): Same.
10048 (load_toc_v4_pic_si): Same
10049 (load_toc_v4_PIC_1): Same.
10050 (load_toc_v4_PIC_1b): Same.
10051 (call_indirect_aix{32,64}): Same.
10052 (call_value_indirect_aix{32,64}): Same.
10053 (call): Same.
10054 (call_value): Same.
10055 (call_local{32,64}): Same.
10056 (call_value_local{32,64}): Same.
10057 (call_indirect_nonlocal_aix{32,64}): Same.
10058 (call_nonlocal_aix{32,64}): Same.
10059 (call_value_indirect_nonlocal_aix{32,64}): Same.
10060 (call_value_nonlocal_aix{32,64}): Same.
10061 (call_indirect_nonlocal_sysv<mode>): Same.
10062 (call_nonlocal_sysv<mode>): Same.
10063 (call_value_indirect_nonlocal_sysv<mode>): Same.
10064 (call_value_nonlocal_sysv<mode>): Same.
10065 (sibcall): Same.
10066 (sibcall_local{32,64}): Same.
10067 (sibcall_value_local{32,64}): Same.
10068 (sibcall_nonlocal_aix{32,64}): Same.
10069 (sibcall_value_nonlocal_aix{32,64}): Same.
10070 (sibcall_nonlocal_sysv<mode>): Same.
10071 (sibcall_value): Same.
10072 (sibcall_value_nonlocal_sysv<mode>): Same.
10073
3303be15
PB
100742007-03-24 Paul Brook <paul@codesourcery.com>
10075
10076 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
10077 * config/arm/linux-eabi.h: Remove legacy syscall hack.
10078
13f70342
RH
100792007-03-24 Richard Henderson <rth@redhat.com>
10080
10081 * config/ia64/constraints.md: New file.
10082 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
10083 satisfies_constraint_?.
10084 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
10085 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
10086 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
10087 ia64_output_mi_thunk): Likewise.
10088 (ia64_const_ok_for_letter_p): Remove.
10089 (ia64_const_double_ok_for_letter_p): Remove.
10090 (ia64_extra_constraint): Remove.
10091 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
10092 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
10093 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
10094 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
10095 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
10096 EXTRA_MEMORY_CONSTRAINT): Remove.
10097 * config/ia64/ia64.md: Include constriants.md. Replace
10098 CONST_OK_FOR_? with satisfies_constraint_?.
10099
79b87c74
MM
101002007-03-23 Michael Meissner <michael.meissner@amd.com>
10101 H.J. Lu <hongjiu.lu@intel.com>
10102
10103 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
10104 DPD or BID name.
10105 (name macros): Use DPD_BID_NAME to convert names properly.
10106
10107 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
10108 decimal floating point format.
10109 (init_floating_libfuncs): Change decimal functions so that they
10110 have a "bid_" prefix if the decimal system uses the BID format,
10111 and "dpd_" prefix if the decimal system uses the DPD format.
10112 (init_interclass_conv_libfuncs): Ditto.
10113 (init_intraclass_conv_libfuncs): Ditto.
10114
10115 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
10116 using the BID format.
10117
10118 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
10119 whether we are using the BID decimal format.
10120 * configure: Regenerate.
10121
10122 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
10123 the compiler has decimal floating point enabled. Define
10124 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
10125 instead of DPD.
10126
10127 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
10128 using the BID format.
10129
10130 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
10131 whether we are using the BID decimal format.
10132 * configure: Regenerate.
10133
10134 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
10135 the compiler has decimal floating point enabled. Define
10136 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
10137 instead of DPD.
10138
10139 * doc/install.texi (--enable-decimal-float): Document BID and DPD
10140 options, and that it is enabled for i386/x86_64 systems.
10141
10142 * Makefile.in (enable_decimal_float): New.
10143 (DECNUMFMT): New.
10144 (DECNUMINC): Add -I$(DECNUMFMT).
10145 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
10146 to $(DECNUMFMT) from $(DECNUM).
10147
10148 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
10149 Substitute enable_decimal_float.
10150 * configure: Regenerated.
10151
10152 PR other/30529
10153 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
10154 unsigned long.
10155
10156 * configure.ac: Enable decimal float for x86_64-*-linux*.
10157 * configure: Regenerated.
10158
10159 PR other/30530
10160 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
10161 decimal128ClearSign to flip and clear the sign bit in decimal128.
10162 (decimal_real_maxval): Set decimal128SetSign to set the sign
10163 bit in decimal128.
10164
f870ab63
ILT
101652007-03-23 Ian Lance Taylor <iant@google.com>
10166
10167 * fold-const.c (fold_binary): Correct warning for X - c >= X.
10168
ed3d212b
ILT
101692007-03-23 Ian Lance Taylor <iant@google.com>
10170
10171 * tree-dump.c (dump_files): Correct comment.
10172
c8539275
ILT
101732007-03-23 Ian Lance Taylor <iant@google.com>
10174
10175 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
10176
ad21dab7
SB
101772007-03-23 Steven Bosscher <steven@gcc.gnu.org>
10178
10179 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
10180 in cfglayout mode. Don't go into and out of cfglayout mode.
10181 Link the blocks in the order of the constructed traces.
10182 (rest_of_handle_tracer): Adjust call to tracer.
10183 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
10184 Don't go into cfglayout mode.
10185 (rtl_loop_done): Don't go out of cfglayout mode.
10186 * cfglayout.c (relink_block_chain): New function, split out from...
10187 (fixup_reorder_chain): ...here. Remove redundant checking.
10188 (cfg_layout_finalize): Don't clear the header, footer, and aux
10189 fields here, move the code to do so to relink_block_chain. Likewise
10190 for free_original_copy_tables.
10191 * rtl.h (tracer): Update prototype.
10192 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
10193 Assert we are in cfglayout mode. Don't go into and out of cfglayout
10194 mode. Use relink_block_chain to serialize the CFG according to the
10195 new basic block order. Move targetm.cannot_modify_jumps_p check from
10196 here...
10197 (gate_handle_reorder_blocks): ...to here.
10198 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
10199 from here...
10200 (gate_duplicate_computed_gotos): ...to here.
10201 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
10202 something always changes when going into and out of cfglayout mode.
10203 Perform an expensive cfg cleanup while going into cfglayout mode.
10204 Always update liveness information on HAVE_conditional_execution
10205 targets. Reserialize the basic blocks and go out of cfglayout mode.
10206 * reg-stack.c: Include cfglayout.h.
10207 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
10208 the call to reorder_basic_blocks.
10209 * basic-block.h (reorder_basic_blocks): Update prototype.
10210 (relink_block_chain): New prototype.
10211 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
10212
00f9e1ca
JM
102132007-03-23 Joseph Myers <joseph@codesourcery.com>
10214
10215 * config/mips/mips.md (type, hazard, *movdi_32bit,
10216 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
10217 *movhi_internal, *movqi_internal, *movsf_hardfloat,
10218 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
10219 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
10220 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
10221 applicable.
10222 (movcc): Change first xfer to multi.
10223 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
10224 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
10225 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
10226 config/mips/generic.md: Change reservations using "xfer" to use
10227 "mfc,mtc".
10228 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
10229 using match_operand.
10230 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
10231 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
10232 examining mode.
10233 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
10234
2ed941ec
RH
102352007-03-22 Richard Henderson <rth@redhat.com>
10236
10237 * config/i386/i386.c: Remove unnecessary function declarations.
10238 Move targetm definition, and all related macros, to the end of
10239 the file. Resort some functions to put definitions before uses.
10240 (ix86_attribute_table): Make static. Move to end of file.
10241 (ix86_gimplify_va_arg): Make static.
10242
ee2f65b4
RH
102432007-03-22 Richard Henderson <rth@redhat.com>
10244
10245 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
10246 don't increase local_regparm with force_align_arg_pointer check.
10247 (ix86_function_sseregparm): Assert 32-bit.
10248 (type_has_variadic_args_p): New.
10249 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
10250 type_has_variadic_args_p.
10251 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
10252 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
10253 use memset instead. Do maybe_vaarg check first; skip attribute
10254 tests if true; skip attribute tests for 64-bit.
10255 (construct_container): Remove TARGET_DEBUG_ARG.
10256 (function_arg_advance_32, function_arg_advance_64): Split out ...
10257 (function_arg_advance): ... from here.
10258 (function_arg_32, function_arg_64): Split out ...
10259 (function_arg): ... from here.
10260 (ix86_pass_by_reference): Tidy.
10261 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
10262 (function_value_32): New, from parts of ix86_function_value
10263 and ix86_value_regno.
10264 (function_value_64): New, from parts of ix86_function_value
10265 and ix86_libcall_value.
10266 (ix86_function_value_1): New.
10267 (ix86_function_value, ix86_libcall_value): Use it.
10268 (return_in_memory_32, return_in_memory_64): Split out ...
10269 (ix86_return_in_memory): ... from here.
10270 (ix86_struct_value_rtx): Skip for 64-bit.
10271 (ix86_libcall_value, ix86_value_regno): Remove.
10272 (setup_incoming_varargs_64): Split out ...
10273 (ix86_setup_incoming_varargs): ... from here.
10274 (ix86_va_start): Remove TARGET_DEBUG_ARG.
10275 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
10276 * config/i386/i386-protos.h (ix86_function_value): Remove.
10277 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
10278
92ef5cf9
MLI
102792007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10280
10281 PR other/23572
10282 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
10283 infinities not supported, otherwise emit warning if -Woverflow. On
10284 underflow, emit warning if -Woverflow.
10285 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
10286 and 0 otherwise.
10287 * real.h (real_from_string): Update declaration
cff4720f 10288
ac294f0b
KT
102892007-03-22 Kai Tietz <kai.tietz@onevision.com>
10290 Richard Henderson <rth@redhat.com>
10291
10292 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
10293 * calls.c (compute_argument_block_size, expand_call,
10294 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
10295 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
10296 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
10297 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
10298 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
10299 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
10300 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
10301 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
10302 Set to 1.
10303
9a200623
JM
103042007-03-22 Joseph Myers <joseph@codesourcery.com>
10305
10306 * c-incpath.c (add_sysroot_to_chain): New.
10307 (merge_include_chains): Add sysroot argument. Call
10308 add_sysroot_to_chain if sysrooted.
10309 (register_include_chains): Update call to merge_include_chains.
10310 * doc/cppopts.texi: Document use of '=' in include directory
10311 arguments.
10312
8766652c
UB
103132007-03-22 Uros Bizjak <ubizjak@gmail.com>
10314
10315 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
10316 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
10317 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
10318 insn pattern using X87MODEF12 mode macro.
cff4720f 10319
1e4c6dc5
SP
103202007-03-21 Seongbae Park <seongbae.park@gmail.com>
10321
10322 * regmove.c (regmove_optimize): Use reg_mentioned_p
10323 instead of reg_overlap_mentioned_p for DST.
10324
2cbac420
MS
103252007-03-21 Mike Stump <mrs@apple.com>
10326
10327 * c.opt: Fixup for Objective-C/C++.
10328
8766652c 103292007-03-21 Steve Ellcey <sje@cup.hp.com>
17939c98
SE
10330
10331 * explow.c (convert_memory_address): Fold memory reference when
10332 POINTERS_EXTEND_UNSIGNED < 0
10333
b5cf27d7
RH
103342007-03-21 Richard Henderson <rth@redhat.com>
10335
10336 PR target/31245
10337 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
10338 * config/i386/mmintrin.h (__m64): Likewise.
10339 * config/i386/xmmintrin.h (__m128): Likewise.
10340
cb717c40
RS
103412007-03-21 Richard Sandiford <richard@codesourcery.com>
10342
10343 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
10344 (VXWORKS_OS_CPP_BUILTINS): Define.
10345 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
10346 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
10347
2a450639
RS
103482007-03-21 Richard Sandiford <richard@codesourcery.com>
10349
10350 * rtl.h (constant_pool_reference_p): Delete.
10351 (find_constant_src): Declare.
10352 * rtlanal.c (find_constant_src): New function.
10353 * simplify-rtx.c (constant_pool_reference_p): Delete.
10354 * config/i386/i386.md: Use find_constant_src instead of
10355 constant_pool_reference_p/avoid_constant_pool_reference pairs.
10356
7c0ffd09
RS
103572007-03-21 Richard Sandiford <richard@codesourcery.com>
10358
10359 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
10360 * c-cppbuiltin.c (c_cpp_builtins): Define them.
10361
9f296620
MM
103622007-03-20 Mark Mitchell <mark@codesourcery.com>
10363
10364 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
10365 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
10366 (arm_elf_asm_constructor): Use it.
10367 (arm_elf_asm_destructor): New function.
10368
5dab4eb7
BS
103692007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
10370
10371 * jump.c (mark_jump_label): Treat SEQUENCE specially.
10372
caaf5345
NS
103732007-03-20 Nathan Sidwell <nathan@codesourcery.com>
10374
10375 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
10376
2b312005
AH
103772007-03-19 Andrew Haley <aph@redhat.com>
10378
10379 PR tree-optimization/31264
10380 * tree-vrp.c (register_edge_assert_for_1): Don't look though
10381 VIEW_CONVERT_EXPRs.
10382
fb406162
PB
103832007-03-19 Paolo Bonzini <bonzini@gnu.org>
10384
10385 PR rtl-optimization/30907
10386 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
10387 (fwprop_init): Always call loop_optimizer_initialize.
10388 (fwprop_done): Always call loop_optimizer_finalize.
10389 (fwprop): We always have loop info now.
10390 (gate_fwprop_addr): Remove.
10391 (pass_fwprop_addr): Use gate_fwprop as gate.
10392
10393 PR rtl-optimization/30841
10394 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
10395 df_chain_alloc): Call df_reorganize_refs unconditionally.
10396 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
10397 refs_organized to refs_organized_size.
10398 (df_ref_create_structure): Use refs_organized_size instead of
10399 bitmap_size if refs had been organized, and keep refs_organized_size
10400 up-to-date.
10401 * df.h (struct df_ref_info): Change refs_organized to
10402 refs_organized_size.
10403 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
10404 bitmap_size.
10405
0a85ec2e
MM
104062007-03-19 Mark Mitchell <mark@codesourcery.com>
10407
10408 * except.c (output_function_exception_table): Do not reference the
10409 EH personality routine for functions that do not require an
10410 exception table.
10411
5d8a5434
JJ
104122007-03-20 Jakub Jelinek <jakub@redhat.com>
10413
79077aea
JJ
10414 PR c/30762
10415 * c-typeck.c (convert_for_assignment): Call comptypes for
10416 RECORD_TYPE or UNION_TYPE.
10417
5d8a5434
JJ
10418 PR inline-asm/30505
10419 * reload1.c (reload): Do invalid ASM checking after
10420 cleanup_subreg_operands.
10421
1799efef
JL
104222007-03-19 Jeff Law <law@redhat.com>
10423
10424 * tree-cfg.c (find_taken_edge): Tighten conditions for
10425 optimizing computed gotos.
10426
1e395249
MM
104272007-03-19 Michael Matz <matz@suse.de>
10428
10429 * builtins.c (expand_builtin_sync_operation,
10430 expand_builtin_compare_and_swap,
10431 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
10432 correctly.
10433
10434 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
10435 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
10436 for operand 3.
10437
17f6dbbf
AK
104382007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10439
10440 * doc/tm.texi: Add brackets around the return type of
10441 TARGET_SECONDARY_RELOAD.
10442
60e0af94
AP
104432007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
10444 Richard Guenther <rguenther@suse.de>
10445
10446 PR tree-optimization/31254
10447 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10448 Use handled_component_p () where appropriate. Continue
10449 propagating into the rhs if we propagated into an INDIRECT_REF
10450 on the lhs.
10451
609e7e80
AK
104522007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10453
10454 * config/s390/s390.md (op_type attribute): RRR instruction type added.
10455 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
10456 (xde, xdee): Mode attributes adjusted to support DFP modes.
10457 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
10458 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
cff4720f 10459 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
609e7e80
AK
10460 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
10461 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
10462 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
cff4720f 10463 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
609e7e80
AK
10464 numbers.
10465 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
10466 "movsf"): Insn definitions removed.
10467 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
10468 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
10469 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
10470 definitions added.
10471 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
10472 "reload_in<mode>", "reload_out<mode>"): Expander added.
10473 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
10474 Expander removed.
10475
7b6baae1
AK
104762007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10477
10478 * config/s390/s390.md: Only non-functional changes. Renamed
10479 FPR mode macro to BFP all over the file.
10480
85dae55a
AK
104812007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10482
10483 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
10484 (op_type attribute): RRF instruction type added.
10485 (fT0): New mode attribute.
10486 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
10487 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
7e08fa35
UB
10488 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
10489 instruction no secondary memory is needed when moving DFmode values
10490 between GPRs and FPRs.
85dae55a 10491
3443392a
AK
104922007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10493
10494 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
10495 inverted and documentation adjusted.
10496 ("mhard-dfp", "msoft-dfp"): New options.
10497 * config/s390/s390.c (s390_handle_arch_option): New architecture
10498 switch: z9-ec.
10499 (override_options): Sanity checks for the new options added.
10500 * config.gcc: New architecture switch: z9-ec.
10501 * config/s390/s390.h (processor_flags): PF_DFP added.
10502 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
10503 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
10504 when the bit is NOT set so remove it from the defaults.
10505
c413e1b5
AK
105062007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10507
10508 * genemit.c (main): Print include statement for dfp.h.
10509 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
10510 is not available.
10511
1375006a
HPN
105122007-03-19 Hans-Peter Nilsson <hp@axis.com>
10513
10514 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
10515
c6ac6e82
KK
105162007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10517
10518 PR target/31022
10519 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
10520 instead of PATTERN.
10521
ecc418c4
JDA
105222007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10523
10524 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
10525 attr_length_call, output_call, output_indirect_call): Cleanup
10526 formatting of targetm calls.
10527
c3271cd2
HPN
105282007-03-19 Hans-Peter Nilsson <hp@axis.com>
10529
10530 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
10531
d4f2728a
JDA
105322007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10533
10534 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
7e08fa35
UB
10535 reservation, bypass and anti-bypass descriptions for these
10536 instructions. Update move patterns.
d4f2728a
JDA
10537 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
10538 TYPE_FPSTORE.
cff4720f 10539
f58e9734
DN
105402007-03-18 Dorit Nuzman <dorit@il.ibm.com>
10541
10542 * tree-vect-transform.c (get_initial_def_for_induction): Replace
10543 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
10544 (get_initial_def_for_reduction): Likewise.
10545
1e4816bc
DB
105462007-03-16 Daniel Berlin <dberlin@dberlin.org>
10547
10548 Fix PR tree-optimization/29922
10549 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
10550 (get_representative): Removed.
10551 (value_dies_in_block_x): Update for rvuse removal.
10552 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
10553 (compute_antic_aux): Handle when PHI nodes appear in
cff4720f 10554 non-single-successors.
1e4816bc
DB
10555 (dump_bitmap_of_names): Removed.
10556 (compute_antic_safe): Renamed and removed rvuse calculation.
10557 Calculate only antic safe.
10558 (insert_into_preds_of_block): Remove assert.
10559 (execute_pre): Update for renamed functions.
10560 (defer_or_phi_translate_block): New function.
cff4720f 10561
44c7bd63
KH
105622007-03-17 Kazu Hirata <kazu@codesourcery.com>
10563
10564 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
10565 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
10566 typos.
10567 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
10568 Follow spelling conventions.
10569
79b8aae8
KH
10570 * tree-data-ref.h: Remove the prototype for analyze_array.
10571
c492dc9a
DN
105722007-03-17 Dorit Nuzman <dorit@il.ibm.com>
10573
10574 PR tree-optimization/31041
10575 * tree-vect-transform.c (get_initial_def_for_induction): Call
10576 force_gimple_operand.
cff4720f 10577
44d974b5 105782007-03-17 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 10579
44d974b5
OG
10580 * ipa-type-escape.c (look_for_casts) : Revert code to use
10581 handled_component_p due to ada test a-numaux.adb.
10582
604e4ce3
KH
105832007-03-17 Kazu Hirata <kazu@codesourcery.com>
10584
10585 * final.c (final_scan_insn): Alter the condition of a
10586 conditional trap if we have nonstandard CC.
10587
cf0eb7a1
AO
105882007-03-16 Alexandre Oliva <aoliva@redhat.com>
10589
10590 * configure.ac: Remove excess quoting from asm line 0 test.
10591 * configure: Rebuilt.
10592
07231d4f
MLI
105932007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10594
10595 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
10596 * c-common.c (convert_and_check): Move warning logic to...
10597 (warnings_for_convert_and_check): ...here. Define.
10598 * c-common.h (warnings_for_convert_and_check): Declare.
cff4720f 10599
aefd2606
JDA
106002007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10601
10602 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
10603 (output_call): Likewise.
10604
ad8577fd
RS
106052007-03-16 Richard Sandiford <richard@codesourcery.com>
10606
10607 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
10608
d95d45fd
RS
106092007-03-16 Richard Sandiford <richard@codesourcery.com>
10610
10611 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
10612
0935e091
UB
106132007-03-16 Uros Bizjak <ubizjak@gmail.com>
10614
10615 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
10616 opteron, athlon-64 and athlon-fx processor_alias_table entries.
10617
a9549792
SP
106182007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
10619
10620 PR tree-optimization/31183
cff4720f 10621 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
a9549792
SP
10622 Use double_int instead of unsigned int for representing access_strides.
10623 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
10624
7b1737d0
RG
106252007-03-16 Richard Guenther <rguenther@suse.de>
10626
10627 PR tree-optimization/31146
10628 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
10629 to allow recursion of forward_propagate_addr_expr.
10630 (forward_propagate_addr_into_variable_array_index): Likewise.
10631 (forward_propagate_addr_expr): Likewise.
10632 (tree_ssa_forward_propagate_single_use_vars): Likewise.
10633 (forward_propagate_addr_expr_1): Recurse on simple copies
10634 instead of propagating into them. Do so for useless conversions
10635 as well.
10636 (forward_propagate_addr_expr): Clean up unused statements after
10637 recursion.
10638
4c8a652e
RG
106392007-03-16 Richard Guenther <rguenther@suse.de>
10640
10641 * builtins.c (expand_builtin_cexpi): Use the right argument
10642 for the expansion via cexp.
10643
43bc306a
AO
106442007-03-16 Alexandre Oliva <aoliva@redhat.com>
10645
10646 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
10647 * configure: Rebuilt.
10648
8857ae1c
AO
106492007-03-16 Alexandre Oliva <aoliva@redhat.com>
10650
10651 PR debug/29906
10652 * dwarf2out.c (force_type_die): Adjust comment.
10653 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
10654
ba502ad6
DD
106552007-03-15 DJ Delorie <dj@redhat.com>
10656
10657 * config/frv/predicates.md (minmax_operator): Don't check operands
10658 here.
10659
9bdb685e
ZD
106602007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
10661
10662 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
10663 Update constant estimates of number of iterations.
10664 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
10665 argument renamed to "realistic".
10666 (compute_estimated_nb_iterations): Removed.
10667 (record_niter_bound): New function.
10668 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
10669 call record_nonwrapping_iv with upper = false.
10670 (infer_loop_bounds_from_signedness): Pass upper argument to
10671 record_nonwrapping_iv.
10672 (estimate_numbers_of_iterations_loop): Do not call
10673 compute_estimated_nb_iterations. Record estimate based on profile
10674 information. Initialize the constant estimates of number of
10675 iterations.
10676 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
10677 estimates.
10678 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
10679 number of iterations is too small.
10680 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
10681 (EST_NOT_AVAILABLE): Removed.
10682 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
10683 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
10684 fields.
10685
17b236ed
ZD
106862007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
10687
10688 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
10689 Handle NE_EXPR guards.
10690
9b439fe1
MLI
106912007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10692
10693 PR c++/24924
10694 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
10695 Set also -pedantic-errors by default for the preprocessor unless
10696 -fpermissive is given.
cff4720f 10697
34a24c11
RG
106982007-03-15 Richard Guenther <rguenther@suse.de>
10699
10700 PR middle-end/29719
10701 PR middle-end/31161
10702 * builtins.c (expand_builtin_cexpi): As a fallback if we
10703 don't have builtins for sincos or cexp create a function
10704 declaration for cexp and expand to a call to that.
10705 (expand_builtin_int_roundingfn): Always fall
10706 back to floor/ceil and its variants even if they may be
10707 not available.
10708
49ea3702
SB
107092007-03-15 Steven Bosscher <steven@gcc.gnu.org>
10710
10711 PR middle-end/31159
10712 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
10713 jump tables, move the call to delete_dead_jumptables from here...
10714 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
10715 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
10716 don't allow merging of blocks that try_redirect_by_replacing_jump
10717 also does not handle when not optimizing.
10718
419452fe
UB
107192007-03-15 Uros Bizjak <ubizjak@gmail.com>
10720 Francois-Xavier Coudert <coudert@clipper.ens.fr>
10721
10722 * config/i386/i386.md (x86_sahf_1): Correctly handle
10723 HAVE_AS_IX86_SAHF.
10724
68b8830a
UB
107252007-03-15 Uros Bizjak <ubizjak@gmail.com>
10726
10727 PR target/31167
10728 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
10729 x86_64_general_operand as operand[2] predicate. Remove "iF"
10730 from operand constraints and use "e" constraint instead.
10731 (*subti3_1, *subti3_1 splitter): Ditto.
10732 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
10733 operand[1] predicate.
10734
c4d8f83b
SP
107352007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
10736
10737 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
10738 arrays, multiply the access strides by the size of the sub-array.
10739 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
10740
38ca3765
UB
107412007-03-14 Uros Bizjak <ubizjak@gmail.com>
10742
10743 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
10744 the configured assembler supports the sahf mnemonic.
10745 * configure: Regenerate.
10746 * config.in: Regenerate.
10747
10748 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
10749 emit "sahf" or ".byte\t0x9e" as asm template.
10750
e9f64629
MM
107512007-03-14 Michael Meissner <michael.meissner@amd.com>
10752
10753 PR 31018
10754 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
10755 option to replace hard coded TARGET_xxx in md file.
10756 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
10757 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
10758 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
10759 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
10760 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
10761 (X86_TUNE_NOT_VECTORMODE): Ditto.
10762 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
10763 (TUNE_AVOID_VECTOR_DECODE): Ditto.
10764 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
10765 (TUNE_SLOW_IMUL_IMM8): Ditto.
10766 (TUNE_MOVE_M1_VIA_OR): Ditto.
10767 (TUNE_NOT_UNPAIRABLE): Ditto.
10768 (TUNE_NOT_VECTORMODE): Ditto.
cff4720f 10769
e9f64629
MM
10770 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
10771 options.
10772
10773 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
10774 tuning options instead of hard coded TARGET_xxx.
10775 (fix ssemode peephole2's): Ditto.
10776 (imul peephole2's): Ditto.
10777 (movsi_or): Ditto.
10778 (movdi_or_rex64): Ditto.
10779 (move peephole2): Ditto.
10780 (not peephole2's): Ditto.
10781
62e00e94
DM
107822007-03-14 Dirk Mueller <dmueller@suse.de>
10783
10784 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
10785 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
10786 * c-parser.c (c_parser_if_body): Always add an empty statement in case
10787 of empty body.
10788 * c-parser.c (c_parser_do_statement): Warn about empty body in
10789 do/while statement.
10790 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
10791 * doc/invoke.texi (-Wempty-body): Update documentation.
10792
2e9cb75e
MLI
107932007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10794
10795 PR c/21438
10796 * c-common.h (warn_for_div_by_zero): Declare.
10797 * c-common.c (warn_for_div_by_zero): Define.
10798 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
10799 warning.
10800
925af765
RS
108012007-03-14 Richard Sandiford <richard@codesourcery.com>
10802
10803 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
10804 to PREFIX and STANDARD_PREFIX.
10805
ac0d72f6
RS
108062007-03-14 Richard Sandiford <richard@codesourcery.com>
10807 Phil Edwards <phil@codesourcery.com>
10808
10809 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
10810 (__gthread_once_t): Remove busy field for RTPs.
10811 (__GTHREAD_ONCE_INIT): Update accordingly.
10812
cd773ac4
RS
108132007-03-14 Richard Sandiford <richard@codesourcery.com>
10814
10815 * doc/invoke.texi: Document VxWorks options.
10816
8c5fd59f
UB
108172007-03-14 Uros Bizjak <ubizjak@gmail.com>
10818
10819 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
10820
e31657e8
SP
108212007-03-13 Seongbae Park <seongbae.park@gmail.com>
10822
10823 PR tree-optimization/30590
10824 * tree-nrv.c (tree_nrv): Check for the partial update of the
10825 return value.
10826
403d4851
AO
108272007-03-13 Alexandre Oliva <aoliva@redhat.com>
10828
10829 * flags.h (flag_random_seed): Remove declaration, in favor of...
10830 * toplev.h (get_random_seed, set_random_seed): ... these.
10831 * tree.c (get_file_function_name): Use the former.
10832 * opts.c (common_handle_option): Use the latter.
10833 * toplev.c
10834
481e0a49
AO
108352007-03-13 Steven Bosscher <steven@gcc.gnu.org>
10836
10837 PR middle-end/31127
10838 * cse.c (cse_find_path): Do not bail out if a basic block that
10839 we already visited now becomes part of a path that starts at a
10840 different basic block. Just disallow this, to make sure we
10841 visit each basic block at most once.
10842
4cdb798f
JH
108432007-03-13 Jan Hubicka <jh@suse.cz>
10844
7e08fa35
UB
10845 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
10846 attributes, when profile esitmate is present, calls with very low
10847 frequency are cold.
4cdb798f 10848
b3ce5b6e
ZD
108492007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
10850
10851 PR tree-optimization/30730
10852 PR tree-optimization/26900
10853 * tree-ssa-loop-niter.c: Include gmp.h.
10854 (bounds): New type.
10855 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
10856 split_to_var_and_offset, determine_value_range,
10857 bound_difference_of_offsetted_base, refine_bounds_using_guard,
10858 bound_difference, bounds_add, bounds_negate,
10859 number_of_iterations_ne_max, dump_affine_iv): New functions.
10860 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
10861 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
10862 difference of initial and final value of control iv to validate
10863 results.
10864 (number_of_iterations_cond): Add loop parameter. Determine bounds
10865 on the difference of the extremes of the control iv. Add dumps.
10866 (expand_simple_operations): Handle phi nodes.
10867 (simplify_using_initial_conditions): Do not record used conditions.
10868 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
10869 Do not set additional_info.
10870 (implies_nonnegative_p, implies_ge_p): Removed.
10871 (derive_constant_upper_bound): Do not use parameter `additional'.
10872 (record_estimate): Parameter `additional' removed. Parameter
10873 `i_bound' added. Do not call derive_constant_upper_bound.
10874 (record_nonwrapping_iv): Use derive_constant_upper_bound to
10875 bound the number of iterations estimate.
10876 (estimate_numbers_of_iterations_loop): Pass the estimate from
10877 the number of iterations analysis to record_estimate.
10878 * tree.h (multiple_of_p): Declare.
10879 * tree-scalar-evolution.c (expression_expensive_p): Removed.
10880 (scev_const_prop): Do not check expression_expensive_p.
10881 * fold-const.c (multiple_of_p): Exported.
10882 * double-int.c (double_int_mask): Exported.
10883 * double-int.h (double_int_mask): Declare.
10884 * tree-flow.h (struct tree_niter_desc): Removed additional_info
10885 field. Added max field.
10886
3dfe046f
DT
108872007-03-13 David Taylor <taylor@candd.org>
10888
10889 PR driver/12448:
10890 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
10891 default -MQ.
10892
de94a581
JDA
108932007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10894
dc92acbc 10895 PR target/31123
de94a581
JDA
10896 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
10897 two unamed patterns.
cff4720f 10898
5be6cb59
UB
108992007-03-13 Uros Bizjak <ubizjak@gmail.com>
10900
10901 * config/i386/i386.opt (mcx16, msahf): New options.
10902 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
10903 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
10904
10905 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
10906 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
10907 Output -mcx16 and -msahf options when corresponding bit is set.
10908
10909 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
10910 and -msahf options.
10911
03943c05
AO
109122007-03-13 Alexandre Oliva <aoliva@redhat.com>
10913
10914 * configure.ac: Test for assembler tolerance to # 0 "".
10915 * configure, config.in: Rebuilt.
10916 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
10917
98312a9b
GK
109182007-03-13 Geoffrey Keating <geoffk@apple.com>
10919
10920 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
49522de2
GK
10921
10922 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
10923 (handle_syscall): Handle direct system calls.
10924 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
10925
7d07e4ea
BM
109262007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
10927
10928 * doc/invoke.texi: Fix cpp.info cross-reference.
10929 * doc/passes.texi: Fix gcc.info cross-reference.
10930
fbb0d4f8
ZD
109312007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
10932
10933 PR tree-optimization/30835
10934 * lambda-code.c (can_convert_to_perfect_nest): Check whether
10935 bb_for_stmt is not NULL before accessing it.
10936
dc5bbad3
JM
109372007-03-12 Joseph Myers <joseph@codesourcery.com>
10938
10939 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
10940 some multilibs.
10941
80ca80e9
BM
109422007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
10943
10944 PR 30635
10945 * doc/install.texi: Document --enable-stage1-languages
10946
dacb3cda
SB
109472007-03-12 Steven Bosscher <steven@gcc.gnu.org>
10948
10949 * tree-pass.h (pass_into_cfg_layout_mode,
10950 pass_outof_cfg_layout_mode): Declare.
10951 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
10952 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
10953 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
10954 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
10955
50d50fc7
SP
109562007-03-12 Seongbae Park <seongbae.park@gmail.com>
10957
10958 * c-decl.c (warn_variable_length_array): New function.
10959 Refactored from grokdeclarator to handle warn_vla
10960 and handle unnamed array case.
10961 (grokdeclarator): Refactored VLA warning case.
10962 * c.opt (Wvla): New flag.
6da4bc4e 10963 * doc/invoke.texi (Wvla): New warning.
50d50fc7 10964
ae069803
RH
109652007-03-12 Richard Henderson <rth@redhat.com>
10966
10967 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
10968 (TARGET_SECTION_TYPE_FLAGS): New.
10969
24c78b3a
RH
109702007-03-12 Richard Henderson <rth@redhat.com>
10971
fbb0d4f8
ZD
10972 * config/darwin.c (machopic_reloc_rw_mask): New.
10973 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
10974 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
24c78b3a 10975
6d4817e3
MM
109762007-03-12 Mark Mitchell <mark@codesourcery.com>
10977
10978 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
10979 * cppdefault.h (cpp_PREFIX): Document.
10980 (cpp_PREFIX_len): Likewise.
10981 (cpp_EXEC_PREFIX): New variable.
10982 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
10983 * c-incpath.c (add_standard_paths): Correct logic for relocating
10984 paths within prefix.
10985
d8e3118a
UB
109862007-03-12 Uros Bizjak <ubizjak@gmail.com>
10987
10988 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
10989 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
10990 mode macro.
10991 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
10992 fix_truncdfdi_sse using SSEMODEF mode macro.
10993 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
10994 fix_truncdfsi_sse using SSEMODEF mode macro.
10995 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
10996 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
10997
8906bbc0
RS
109982007-03-12 Richard Sandiford <richard@codesourcery.com>
10999
11000 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
11001 elfos.h to tm_file.
11002
d4e70294 110032007-03-12 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 11004
d4e70294 11005 * tree.h : Add multiple_of_p declaration.
cff4720f 11006 * fold-const.c (multiple_of_p): Make multiple_of_p public.
d4e70294
OG
11007 * ipa-type-escape.c (results_of_malloc): Redundant.
11008 (visited_stmts): New. Visited stmt for walk_use_def_chains.
11009 (cast_type): Extended with new members.
11010 (check_cast): Returns cast_type.
11011 (cast): New structure for data of walk_use_def_chains.
11012 (is_malloc_result, is_cast_from_non_pointer_1,
cff4720f 11013 is_cast_from_non_pointer,
d4e70294
OG
11014 is_array_access_through_pointer_and_index): New functions.
11015 (look_for_casts): Returns cast types.
11016 (check_call): Returns void.
11017 (okay_pointer_operation): Use support of pointer plus index,
11018 pointer plus constant and allow all multiplications.
cff4720f 11019
13338552
RG
110202007-03-11 Richard Guenther <rguenther@suse.de>
11021
11022 PR tree-optimization/31115
11023 * tree-vrp.c (extract_range_from_binary_expr): Make sure
11024 the shift count is positive and non-anti-range for RSHIFT_EXPR.
11025 A shift count of zero is not special as with *_DIV_EXPR.
11026 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
11027 direction.
11028
d7419dec
ILT
110292007-03-11 Ian Lance Taylor <iant@google.com>
11030
11031 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
11032 the *_DIV_EXPR codes correctly with overflow infinities.
11033
e838422b
IR
110342007-03-11 Ira Rosen <irar@il.ibm.com>
11035
cff4720f 11036 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
e838422b
IR
11037 indicate success/failure of the analysis. Add negation to subtrahend
11038 in case of subtraction. Fail if both operands contain constants.
11039 (create_data_ref): Fail if analyze_offset fails.
11040
acaaf0c6
UB
110412007-03-11 Uros Bizjak <ubizjak@gmail.com>
11042
11043 * config/i386/i386.md (frndintxf2): Rename to ...
11044 (rintxf2): ... this. Remove expander having same name.
11045 (rintsf2, rintdf2): Implement using SSEMODEF macro.
11046 (roundsf2, rounddf2): Ditto.
11047 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
11048 (lround<mode>di2, lround<mode>si2): Ditto.
11049
7984c787
SB
110502007-03-11 Steven Bosscher <steven@gcc.gnu.org>
11051
11052 * lower-subreg.c: Include except.h.
11053 (decompose_multiword_subregs): Verify that the only control flow
11054 insns we can split are loads to multi-words pseudos.
11055 Handle breaking such blocks after splitting, instead of calling
11056 find_many_sub_basic_blocks.
11057
11058 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
11059 on the new basic block. Add a lengthy comment explaining why we
11060 thought this was necessary.
11061 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
11062
222725d0
MM
110632007-03-10 Mark Mitchell <mark@codesourcery.com>
11064
ed574fe9 11065 PR c++/30924
222725d0
MM
11066 * tree.c (walk_type_fields): Recurse into the element type of
11067 ARRAY_TYPEs if there is a pointer set.
11068
89132ebc
DM
110692007-03-10 Dirk Mueller <dmueller@suse.de>
11070
11071 * c-common.c (warn_logical_operator): Fix condition.
11072
ae50c0cb 110732007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
4f648002
TS
11074
11075 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
11076 quotation mark.
df990293
TS
11077 * config/darwin.c (machopic_select_section): Remove superfluous
11078 argument in call to categorize_decl_for_section. Remove unused
11079 variable shlib.
4f648002 11080
c9ecbf86
JM
110812007-03-10 Joseph Myers <joseph@codesourcery.com>
11082
11083 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
11084 defined.
11085 * configure: Regenerate.
11086
79cd820a
UB
110872007-03-10 Uros Bizjak <ubizjak@gmail.com>
11088
11089 PR target/31101
11090 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
11091 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
11092 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
acaaf0c6 11093 Add LABEL_NUSES to emitted label.
79cd820a 11094 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
acaaf0c6 11095 branch probability value to emitted jump insn.
79cd820a
UB
11096 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
11097 Do not check life information and do not re-arrange input operands
11098 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
11099
343d66ad
KK
111002007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
11101
11102 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
11103 the change of decode_asm_operands.
11104
07288ab0
KK
111052007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
11106
11107 * mode-switching.c (create_pre_exit): Skip blockage insn.
11108
706ca88e
DN
111092007-03-09 Diego Novillo <dnovillo@redhat.com>
11110
11111 * tree-pass.h (TODO_update_smt_usage): Remove.
11112 Update all users.
11113 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11114 argument SOME.
11115 Update all users.
11116
751d9855
JDA
111172007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11118
7e08fa35
UB
11119 * pa.c (attr_length_call): Revise condition for long
11120 pc-relative branch.
11121 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
11122 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
11123 sequence on SOM target.
751d9855 11124
48137d59
GK
111252007-03-09 Geoffrey Keating <geoffk@apple.com>
11126
11127 * gcc.c: Document %{, in big comment at top.
11128 (input_suffix_matches): Remove special handling for .s and
11129 .S.
11130 (input_spec_matches): New.
11131 (handle_braces): Handle %{,.
11132 (validate_switches): ',' indicates a value which is not a switch.
11133 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
11134 to detect assembler input.
11135 * config/i386/sol2.h (CPP_SPEC): Likewise.
11136 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
11137 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11138 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
11139 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11140 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
11141 -m64 causes deployment target to default to 10.5.
11142 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
11143
9b580a0b
RH
111442007-03-09 Richard Henderson <rth@redhat.com>
11145
11146 PR target/26090
11147 * target.h (targetm.asm.out.reloc_rw_mask): New.
11148 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
11149 (TARGET_ASM_OUT): Use it.
11150 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
11151 * varasm.c (categorize_decl_for_section): Remove shlib argument;
11152 use the new reloc_rw_mask target hook instead.
11153 (default_section_type_flags_1): Merge into...
11154 (default_section_type_flags): ... here.
11155 (decl_readonly_section_1): Merge into...
11156 (decl_readonly_section): ... here.
11157 (default_elf_select_section_1): Merge into...
11158 (default_elf_select_section): ... here.
11159 (default_unique_section_1): Merge into...
11160 (default_unique_section): ... here.
11161 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
11162 (default_select_rtx_section): Use it.
11163 (default_elf_select_rtx_section): Likewise.
11164 * output.h: Update to match.
11165 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
11166 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
11167 (TARGET_ASM_RELOC_RW_MASK): New.
11168 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
11169 to categorize_decl_for_section.
11170 (x86_64_elf_unique_section): Likewise.
11171 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
11172 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
11173 (TARGET_ASM_RELOC_RW_MASK): New.
11174 * config/ia64/ia64.c (ia64_rwreloc_select_section,
11175 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
11176 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
11177 (TARGET_RWRELOC): Remove.
11178 (ia64_section_type_flags): Adjust call to default_section_type_flags.
11179 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
11180 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
11181 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
11182 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
11183 (rs6000_xcoff_select_section): Use decl_readonly_section.
11184 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
11185 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
11186 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
11187 (TARGET_SECTION_TYPE_FLAGS): Remove.
11188 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
11189
23b9463b
RS
111902007-03-09 Roger Sayle <roger@eyesopen.com>
11191
11192 * fold-const.c (fold_comparison): Remove compile-time evaluation of
11193 complex constant equality/inequality comparisons for here.
11194 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
11195 known at compile-time or can be simplified to a scalar comparison.
11196 (fold_relational_const): Move compile-time evaluation of complex
11197 constant equality/inequality comparisons to here.
11198
7e7e28c7
AO
111992007-03-09 Alexandre Oliva <aoliva@redhat.com>
11200
11201 PR rtl-optimization/30643
11202 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
7cd4f641 11203 dest_addr_elt.
7e7e28c7
AO
11204 (fold_rtx): Recurse, like before 2006-11-03.
11205
a009aafe
DD
112062007-03-09 DJ Delorie <dj@redhat.com>
11207
23b9463b
RS
11208 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
11209 m32c-pragma.o.
a009aafe 11210
0f84b066
AH
112112007-03-09 Aldy Hernandez <aldyh@redhat.com>
11212
acaaf0c6
UB
11213 PR tree-optimization/30375
11214 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
11215 LHS of statements is not the same.
11216 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
0f84b066 11217
32041385
CF
112182007-03-09 Chao-ying Fu <fu@mips.com>
11219
11220 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
11221 REV 2.
11222 * doc/invoke.texi (-mdspr2): Document new option.
11223 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
11224 New unspec for DSP REV 2.
11225 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
11226 these instructions are extended in DSP REV 2.
11227 (mips-dspr2.md): Include.
11228 * config/mips/mips.opt (mdspr2): New option.
11229 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
11230 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
11231 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
11232 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
11233 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
11234 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
11235 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
11236 and 2 builtins.
11237 (bdesc_map): Add one field of unsupported_target_flags.
11238 (bdesc_arrays): Update entries to have extra fields. Add
11239 dsp_32only_bdesc.
11240 (mips_init_builtins): Initialize new function types.
11241 Check unsupported_target_fileds to filter out builtins.
11242 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
11243 TARGET_DSPR2.
11244 (ASM_SPEC): Pass mdspr2 to the assembler.
11245 * config/mips/mips-dspr2.md: New file.
11246
4a71edd9
SL
112472007-03-09 Sa Liu <saliu@de.ibm.com>
11248
11249 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
11250
4d4362c8
ILT
112512007-03-09 Ian Lance Taylor <iant@google.com>
11252
11253 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
11254 argument) like -Wstrict-overflow=2.
11255 * doc/invoke.texi (Warning Options): Update documentation.
11256
63a08740
DM
112572007-03-09 Dirk Mueller <dmueller@suse.de>
11258
11259 PR c++/17946
11260 * doc/invoke.texi (-Wlogical-op): Document.
11261 * common.opt (-Wlogical-op): New.
11262 * c-common.h (warn_logical_operator): Declare.
11263 * c-common.c (warn_logical_operator): Define.
11264 * c-typeck.c (parser_build_binary_op): Call
11265 warn_logical_operator.
11266
0de2ae02
AO
112672007-03-09 Alexandre Oliva <aoliva@redhat.com>
11268
11269 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
11270 * final.c (final_scan_insn): Test for non-"" file name.
11271
3d8864c0
SP
112722007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
11273
11274 * doc/loop.texi: Document the Omega linear constraints solver.
11275 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
cff4720f
ZW
11276 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
11277 omega-hash-table-size, omega-max-keys, and
3d8864c0
SP
11278 omega-eliminate-redundant-constraints.
11279 * tree-pass.h (pass_check_data_deps): Declared.
11280 * omega.c: New.
11281 * omega.h: New.
11282 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
cff4720f 11283 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
3d8864c0
SP
11284 pass_check_data_deps): New.
11285 * tree-data-ref.c (init_data_ref): Remove declaration.
11286 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
11287 (analyze_array): Renamed init_array_ref, move up initializations.
11288 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
11289 Removed arguments that are set to NULL.
cff4720f 11290 (analyze_indirect_ref): Correct indentation, correct call to
3d8864c0
SP
11291 init_pointer_ref.
11292 (object_analysis): Call init_array_ref instead of analyze_array.
11293 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
11294 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
11295 of DR_ACCESS_FNS_ADDR.
cff4720f 11296 (init_omega_eq_with_af, omega_extract_distance_vectors,
3d8864c0
SP
11297 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
11298 ddr_consistent_p): New.
cff4720f 11299 (compute_affine_dependence): Check consistency of ddrs when
3d8864c0
SP
11300 flag_check_data_deps is passed.
11301 (analyze_all_data_dependences): Uncomment.
11302 (tree_check_data_deps): New.
11303 * tree-data-ref.h: Include omega.h.
11304 (DR_ACCESS_FNS_ADDR): Removed.
11305 (data_dependence_relation): Add inner_loop.
11306 (DDR_INNER_LOOP): New.
11307 * common.opt (fcheck-data-deps): New.
11308 * tree-flow.h (tree_check_data_deps): Declare.
11309 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
11310 (OBJS-common): Depend on omega.o.
11311 (omega.o): Define.
11312 * passes.c (pass_check_data_deps): Scheduled.
cff4720f 11313 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
3d8864c0
SP
11314 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11315 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
11316 PARAM_VECT_MAX_VERSION_CHECKS,
11317 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
11318
6569e716
RG
113192007-03-09 Richard Guenther <rguenther@suse.de>
11320
11321 PR tree-optimization/30904
11322 PR middle-end/31058
11323 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
11324 the same way as *_DIV_EXPR.
11325
fb0a2460
AO
113262007-03-09 Alexandre Oliva <aoliva@redhat.com>
11327
11328 * recog.c (decode_asm_operands): No mixed declarations and code.
11329
bff4b63d
AO
113302007-03-09 Alexandre Oliva <aoliva@redhat.com>
11331
11332 * rtl.def (ASM_INPUT): Add location.
11333 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
11334 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
11335 (decode_asm_operands): Add loc operand.
11336 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
11337 * stmt.c (expand_asm): Rename to...
11338 (expand_asm_loc): ... this. Add locus argument. Pass it on to
11339 gen_rtx_ASM_INPUT_loc.
11340 (expand_asm_expr): Adjust.
11341 * recog.c (decode_asm_operands): Add loc operand.
11342 (check_asm_operands, extract_insn): Adjust.
11343 * reload1.c (maybe_fix_stack_asms): Likewise.
11344 * final.c (asm_insn_count): Likewise.
11345 (final_scan_insn): Output # line before and after asm.
11346
1296c31f
DB
113472007-03-09 Daniel Berlin <dberlin@dberlin.org>
11348
11349 * tree-ssa-structalias.c (variable_info): Remove
11350 finished_solution.
11351 (new_var_info): Ditto.
11352 (shared_bitmap_info_t): New structure.
11353 (shared_bitmap_table): New variable.
11354 (shared_bitmap_hash): New function.
11355 (shared_bitmap_eq): Ditto
11356 (shared_bitmap_lookup): Ditto.
11357 (shared_bitmap_add): Ditto.
11358 (merge_smts_into): Change to take bitmap directly.
11359 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
11360 (init_alias_vars): Init shared bitmap hashtable.
11361 (delete_points_to_sets): Delete shared bitmap hashtable.
11362 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
11363 is_aliased removal as a change that was still necessary was
11364 deleted.
11365
84ac30cb
UB
113662007-03-09 Uros Bizjak <ubizjak@gmail.com>
11367
11368 * config/i386/i386.h (override_options): Conditionally disable
11369 x86_sahf for 64bit targets only.
11370
ee9f69b4
AP
113712007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
11372
11373 PR C/31072
11374 * c-decl.c (merge_decls): Don't call make_var_volatile.
11375 * varasm.c (make_var_volatile): Remove.
11376 * output.h (make_var_volatile): Remove.
11377
5f787cbc
ZD
113782007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
11379
11380 PR tree-optimization/31085
11381 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
11382
aeabd15d
KG
113832007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11384
11385 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
11386 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
11387 ATTR_CONST_NOTHROW_LIST.
cff4720f 11388
aeabd15d
KG
11389 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
11390 FIX_TRUNC_EXPR.
11391
e9dc9c4e
DN
113922007-03-08 Diego Novillo <dnovillo@redhat.com>
11393
11394 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
11395
d2328a13
GK
113962007-03-08 Geoffrey Keating <geoffk@apple.com>
11397
11398 PR 31013
11399 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
11400 is declared.
11401 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
11402 passed, use shared libgcc.
11403
ebb07520
RS
114042007-03-08 Roger Sayle <roger@eyesopen.com>
11405
11406 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
11407 instead of calling build2 with a GIMPLE_MODIFY_STMT.
11408 (honor_protect_cleanup_actions, lower_try_finally_switch):
11409 Likewise.
11410 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
11411 ifc_temp_var): Likewise.
11412 * tree-inline.c (setup_one_parameter): Likewise.
11413 * tree-mudflap.c (mf_decl_cache_locals,
11414 mf_build_check_statement_for): Likewise.
11415 * tree-nested.c (init_tmp_var, save_tmp_var,
11416 finalize_nesting_tree_1): Likewise.
11417 * tree-outof-ssa.c (insert_copy_on_edge,
11418 insert_backedge_copies): Likewise.
11419 * tree-profile.c (tree_gen_edge_profiler,
11420 tree_gen_ic_profiler): Likewise.
11421 * tree-scalar-evolution.c (scev_const_prop): Likewise.
11422 * tree-sra.c (sra_build_assignment): Likewise.
11423 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
11424 * tree-ssa-math-opts.c (insert_reciprocals,
11425 execute_cse_sincos_1): Likewise.
11426 * tree-tailcall.c (adjust_accumulator_values,
11427 adjust_return_value): Likewise.
11428 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
11429 * tree-vect-transform.c (vect_create_data_ref_ptr,
11430 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
11431 vect_create_epilog_for_reduction, vectorizable_reduction,
11432 vectorizable_call, vectorizable_conversion,
11433 vectorizable_assignment, vectorizable_operation,
11434 vectorizable_type_demotion, vect_gen_widened_results_half,
11435 vect_permute_store_chain, vectorizable_store,
11436 vect_setup_realignment, vect_permute_load_chain,
11437 vectorizable_load, vectorizable_condition,
11438 vect_create_cond_for_align_checks): Likewise.
11439 * tree-vrp.c (build_assert_expr_for): Likewise.
11440
0c948c27
ILT
114412007-03-08 Ian Lance Taylor <iant@google.com>
11442
11443 * tree-vrp.c: Include "intl.h".
11444 (usable_range_p): New static function.
11445 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
11446 overflowed values, juts set *strict_overflow_p.
11447 (compare_values): Only return -2 if one of the operands is not a
11448 constant.
11449 (compare_ranges): Call usable_range_p.
11450 (compare_range_with_value): Likewise.
11451 (vrp_evaluate_conditional_warnv): Rename from
11452 vrp_evaluate_conditional. Make static. Change all callers.
11453 (vrp_evaluate_conditional): New function.
11454 (simplify_div_or_mod_using_ranges): Issue warning about reliance
11455 on signed overflow.
11456 (simplify_abs_using_ranges): Likewise.
11457 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
11458 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
11459 within_stmt parameter.
11460 * tree-ssa-propagate.c (fold_predicate_in): Update call to
11461 vrp_evaluate_conditional.
11462 * tree-ssa-threadedge.c
11463 (record_temporary_equivalences_from_stmts_at_dest): Change
11464 simplify parameter to take a second tree parameter.
11465 (simplify_control_stmt_condition): Likewise.
11466 (thread_across_edge): Likewise.
11467 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
11468 (thread_across_edge): Likewise.
86122f72 11469 * Makefile.in (tree-vrp.o): Depend upon intl.h.
0c948c27 11470
3c2d980c
UB
114712007-03-08 Uros Bizjak <ubizjak@gmail.com>
11472
11473 * config/i386/i386.h (TARGET_SAHF): New define.
11474 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
11475 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
11476 (x86_sahf): New global variable.
11477 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
11478 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
11479 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
11480 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
11481 for 64-bit.
11482 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
11483 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
11484 when expanding fcomi/sahf based tests.
11485 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
11486 expanding sahf based alternative. Emit sahf based sequence when
11487 optimizing for code size.
11488 * config/i386/i386.md (x86_sahf_1): Do not disable for
cff4720f 11489 TARGET_64BIT, enable for TARGET_SAHF.
3c2d980c 11490
068c623d
MM
114912007-03-08 Martin Michlmayr <tbm@cyrius.com>
11492
11493 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
11494 spurious whitespace from error message.
11495
1916c916
VR
114962007-03-08 Volker Reichelt <reichelt@netcologne.de>
11497
11498 PR c++/30852
11499 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
11500
ab53bae2
AO
115012007-03-08 Alexandre Oliva <aoliva@redhat.com>
11502
11503 * c-decl.c (grokdeclarator): Disable warnings for anonymous
11504 bitfields.
11505 * tree-sra.c (instantiate_element): Propagate disabled warnings
11506 from the element itself to the created variable.
11507
7476f086
RH
115082007-03-07 Richard Henderson <rth@redhat.com>
11509
11510 PR target/30848
11511 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
11512 silently fix up the stack in the case of a missing register.
11513
a566d050
JM
115142007-03-07 Paul Brook <paul@codesourcery.com>
11515
11516 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
11517
115182007-03-07 Joseph Myers <joseph@codesourcery.com>
11519
11520 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
11521 New.
11522 (phase1_vrs): Use them.
11523 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
11524 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
11525 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
11526 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
11527 __gnu_Unwind_Restore_WMMXC if required.
11528 (_Unwind_VRS_Pop): Implement iWMMXt support.
11529 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
11530 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
11531 gnu_Unwind_Save_WMMXC): Define.
11532
ef672755
RS
115332007-03-07 Richard Sandiford <richard@codesourcery.com>
11534
11535 * config/vxworks.h (vxworks_override_options): Declare.
11536 (VXWORKS_OVERRIDE_OPTIONS): Use it.
11537 * config/vxworks.c: Include target.h and toplev.h.
11538 (vxworks_override_options): New function.
11539 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
11540
690e7b63
AK
115412007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
11542
11543 * config/s390/s390.c (override_options): Don't emit an error when
11544 -mstack-size is used without providing -mstack-guard.
11545 (s390_emit_prologue): Choose stack_guard value automatically if not
11546 provided via command line.
7e08fa35
UB
11547 * doc/invoke.texi: Adjust description of -mstack-guard and
11548 -mstack-size.
690e7b63 11549
170bdaba
RS
115502007-03-07 Richard Sandiford <richard@codesourcery.com>
11551
11552 * config/i386/i386.c (output_set_got): Add a GOT initialization
11553 sequence for VxWorks PIC.
11554 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
11555 around labels as well as symbols. Use gotoff_operand instead
11556 of local_symbolic_operand.
11557 (legitimize_pic_address): Use gotoff_operand instead of
11558 local_symbolic_operand. Use @GOT accesses for labels as
11559 well as symbols.
11560 (ix86_output_addr_diff_elt): Use PC-relative rather than
11561 GP-relative offsets for VxWorks PIC.
11562 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
11563 no_new_pseudos. Check whether the returned register is op0.
11564 * config/i386/i386.md (tablejump): Use PC-relative rather than
11565 GP-relative offsets for VxWorks PIC.
11566 * config/i386/predicates.md (gotoff_operand): New predicate.
11567
26b5109f
RS
115682007-03-06 Richard Sandiford <richard@codesourcery.com>
11569
11570 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
11571 before defining.
11572 * config/vxworks-dummy.h: New file.
11573 * config/i386/i386.h: Include it.
11574
dfad806e
AO
115752007-03-07 Alexandre Oliva <aoliva@redhat.com>
11576
11577 * dwarf2out.c (is_inlined_entry_point): New
11578 (add_high_low_attributes): Emit DW_AT_entry_pc along with
11579 DW_AT_ranges if the first subblock is the entry point.
11580
3eb3cf05
DD
115812007-03-06 David Daney <ddaney@avtrex.com>
11582
11583 * doc/install.texi (mips-*-*): Change recommended binutils
11584 version.
11585
115862007-03-06 Anatoly Sokolov <aesok@post.ru>
205dcd71
AS
11587
11588 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
cff4720f 11589 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
205dcd71
AS
11590 devices.
11591 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11592 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11593
52bf96d2
JH
115942007-03-06 Jan Hubicka <jh@suse.cz>
11595
11596 * errors.h (warning, error, fatal, internal_error): Mark as cold.
7e08fa35
UB
11597 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
11598 functions are hot.
52bf96d2
JH
11599 (probably_cold_bb_p): Cold functions are cold.
11600 (probably_never_executed_bb_p): Cold functions are cold.
11601 (tree_bb_level_predictions): Predict calls to cold functions as not
11602 taken.
11603 (compute_function_frequency): Check hot/cold attributes.
11604 * function.h (function_frequency): Update comments.
11605 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
11606 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
11607 (c_common_att): Add cold and hot.
11608
11609 * doc/extend.texi (hot,cold attributes): Document.
11610
25108646
AH
116112007-03-06 Andrew Haley <aph@redhat.com>
11612
11613 * function.c (expand_function_end): Move blockage to just after we
11614 emit the label for the naked return from the function.
11615
af17c030
RS
116162007-03-06 Richard Sandiford <richard@codesourcery.com>
11617
11618 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
11619 before redefining.
11620
dc4d7240
JH
116212007-03-06 Jan Hubicka <jh@suse.cz>
11622
11623 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
11624 loaded for constant large models. Non-large 64bit PIC can do.
11625 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
11626 * cmodel.h: Add LARGE PIC.
11627 * i386.md (UNSPEC_PLTOFF): New.
7e08fa35
UB
11628 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
11629 unspecs as needed.
dc4d7240
JH
11630 (*call_1_rex64): Disable for large models.
11631 (*call_1_rex64_large): New.
11632 (*call_value_1_rex64): Disable for large models.
11633 (*call_value_1_rex64_large): New.
11634 (set_rip_rex4): New.
11635 (set_got_offset_rex64): New.
11636 * predicates.md (constant_call_address_operand): For large model
11637 constant calls are not possible.
11638 * i386-protos.h (construct_plt_address): Declare.
11639 * i386.c (override_options): Accept large models.
11640 (ix86_expand_prologue): Expand large PIC GOT pointer load.
11641 (legitimate_constant_p): Add new UNSPECs.
11642 (legitimate_pic_operand_p): Likewise.
11643 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
11644 (legitimize_pic_address): Do easy RIP relative way for TLS only for
11645 non-large model.
11646 (output_pic_addr_const): Add PLTOFF.
11647 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
11648 (ix86_expand_move): Legitimize pic address when in PIC mode.
11649 (construct_plt_address): New function.
7e08fa35
UB
11650 (ix86_expand_call): Offload the address to register and use GOT
11651 pointer for large model.
dc4d7240
JH
11652 * invoke.texi (mcmodel=large): Update documentation.
11653
80fd744f
RH
116542007-03-06 Richard Henderson <rth@redhat.com>
11655
11656 * config/i386/i386.c (x86_use_leave, x86_push_memory,
11657 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
11658 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
11659 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
11660 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
11661 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
cff4720f 11662 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
80fd744f
RH
11663 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
11664 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
cff4720f
ZW
11665 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
11666 x86_partial_reg_dependency, x86_memory_mismatch_stall,
80fd744f 11667 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
cff4720f 11668 x86_sse_partial_reg_dependency, x86_sse_split_regs,
80fd744f
RH
11669 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
11670 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
11671 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
acaaf0c6
UB
11672 x86_schedule, x86_use_bt, x86_pad_returns,
11673 x86_use_xchgb): Merge into ...
80fd744f 11674 (ix86_tune_features): ... here. New array.
acaaf0c6
UB
11675 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
11676 x86_bswap): Merge into ...
80fd744f
RH
11677 (ix86_arch_features): ... here. New array.
11678 (x86_3dnow_a): Remove.
11679 (x86_accumulate_outgoing_args): Make static.
11680 (x86_arch_always_fancy_math_387): Make static.
11681 (ix86_tune_mask, ix86_arch_mask): Move ...
11682 (override_options): ... to local variables here. Apply the
11683 appropriate mask to each element of ix86_arch_features and
11684 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
11685 as were done in the old macros.
11686 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
11687 * config/i386/i386.h (x86_use_leave, x86_push_memory,
11688 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
11689 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
11690 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
11691 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
11692 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
11693 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
11694 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
11695 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
11696 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
11697 x86_partial_reg_dependency, x86_memory_mismatch_stall,
11698 x86_accumulate_outgoing_args, x86_prologue_using_move,
11699 x86_epilogue_using_move, x86_decompose_lea,
11700 x86_arch_always_fancy_math_387, x86_shift1,
11701 x86_sse_partial_reg_dependency, x86_sse_split_regs,
cff4720f 11702 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
80fd744f
RH
11703 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
11704 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
11705 x86_use_incdec, x86_pad_returns, x86_bswap,
11706 x86_partial_flag_reg_stall): Remove.
11707 (enum ix86_tune_indices): New.
11708 (ix86_tune_features): New.
11709 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
11710 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
11711 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
11712 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
11713 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
11714 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
11715 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
11716 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
11717 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
11718 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
11719 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
11720 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
11721 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
11722 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
11723 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
11724 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
11725 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
11726 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
11727 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
11728 TARGET_EXT_80387_CONSTANTS): Use it.
11729 (enum ix86_arch_indices): New.
11730 (ix86_arch_features): New.
11731 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
11732 TARGET_BSWAP): Use it.
11733 (ix86_tune_mask, ix86_arch_mask): Remove.
11734
14da6073
JM
117352007-03-06 Joseph Myers <joseph@codesourcery.com>
11736
11737 PR bootstrap/31020
11738 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
11739 Define using $${sysroot_headers_suffix}.
11740 * configure: Regenerate.
11741 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
11742 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
11743 defined.
11744 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
11745 * gcc.c (print_sysroot_headers_suffix): New.
11746 (option_map): Include --print-sysroot-headers-suffix.
11747 (display_help): Mention -print-sysroot-headers-suffix.
11748 (process_command): Handle -print-sysroot-headers-suffix.
11749 (do_spec_1): Append multilib directory to include-fixed path if
11750 sysroot suffixes in use.
11751 (main): Handle -print-sysroot-headers-suffix.
11752 * Makefile.in (start.encap): Don't depend on xlimits.h
11753 (xlimits.h): Remove.
11754 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
11755 limits.h for each multilib in fixinc_list.
11756 (fixinc_list, s-fixinc_list): New.
11757 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
11758 generate them for each multilib in fixinc_list.
11759 (stmp-fixproto): Use include-fixed. Run fixproto for each
11760 multilib in fixinc_list.
11761 (mostlyclean): Don't remove xlimits.h.
11762 (clean): Remove include-fixed.
11763 (real-install-headers-tar, real-install-headers-cpio,
11764 real-install-headers-cp): Don't copy include, only include-fixed.
11765 (install-mkheaders): Depend on fixinc_list. Don't depend on
11766 xlimits.h. Save limits.h files for each multilib in fixinc_list.
11767 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
11768 SYSTEM_HEADER_DIR setting in mkheaders.conf.
11769
4e669430
JH
117702007-03-06 Jan Hubicka <jh@suse.cz>
11771
11772 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
11773 NANs easilly.
11774
3ca43df7
RS
117752007-03-06 Richard Sandiford <richard@codesourcery.com>
11776
11777 * configure.ac: Allow tm_file to contain build-directory files.
11778 * configure: Regenerate.
11779 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
11780 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
11781 * config/m68k/print-sysroot-suffix.sh: New file.
11782
4ab870f5
RS
117832007-03-06 Richard Sandiford <richard@codesourcery.com>
11784
11785 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
11786 of pic_offset_table_rtx if reload_completed.
11787 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
11788 PIC_OFFSET_TABLE_REGNUM.
11789 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
11790 return true.
11791 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
11792 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
11793
afcb440c
RS
117942007-03-06 Richard Sandiford <richard@codesourcery.com>
11795
11796 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
11797 functions that call eh_return.
11798
6357eb0d
RS
117992007-03-06 Richard Sandiford <richard@codesourcery.com>
11800
11801 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
11802 functions that need a constant pool.
11803
ffa2596e
RS
118042007-03-06 Richard Sandiford <richard@codesourcery.com>
11805
11806 PR target/28181
11807 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
11808 (m68k_preferred_reload_class): Likewise.
11809 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
11810 (SECONDARY_RELOAD_CLASS): Define.
11811 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
11812 (LIMIT_RELOAD_CLASS): Delete.
11813 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
11814 registers from storing bytes.
11815 (m68k_secondary_reload_class): New function.
11816 (m68k_preferred_reload_class): Likewise.
11817
4f44ecc0
RS
118182007-03-06 Richard Sandiford <richard@codesourcery.com>
11819
11820 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
11821 leaf functions.
11822 (m68k_expand_prologue): Likewise.
11823
f7e70894
RS
118242007-03-06 Richard Sandiford <richard@codesourcery.com>
11825
11826 * config/m68k/m68k-protos.h (output_sibcall): Declare.
11827 (mips_expand_epilogue): Add a bool parameter.
11828 (m68k_legitimize_sibcall_address): Declare.
11829 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
11830 (m68k_expand_epilogue): Add a parameter to select between sibling
11831 and normal epilogues. Only generate a return for the latter.
11832 (m68k_ok_for_sibcall_p): New function.
11833 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
11834 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
11835 (sibcall_value, *sibcall_value): Likewise.
11836 (*call, *call_value): Require !SIBLING_CALL_P.
11837 (epilogue): Update call to m68k_expand_epilogue.
11838 (sibcall_epilogue): New pattern.
11839 * config/m68k/predicates.md (const_call_operand): Say that this
11840 predicate applies to sibling calls too.
11841 (sibcall_operand): New predicate.
11842
31c5b444
RS
118432007-03-06 Richard Sandiford <richard@codesourcery.com>
11844
11845 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
11846 alternatives as movsi_cf.
11847 (movsf_cf_hard): Add commentary.
11848
a40ed0f3
KH
118492007-03-06 Kazu Hirata <kazu@codesourcery.com>
11850 Richard Sandiford <richard@codesourcery.com>
11851
11852 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
11853 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
11854 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
11855 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
11856 as being live on exit from an interrupt function.
11857 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
11858 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
11859 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
11860 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
11861 (m68k_interrupt_function_p): Globalize.
11862 (m68k_compute_frame_layout): Remove reverse mask code.
11863 (m68k_emit_movem, m68k_set_frame_related): New functions.
11864 (m68k_output_function_prologue): Delete in favor of...
11865 (m68k_expand_prologue): ...this new function.
11866 (m68k_output_function_epilogue): Delete in favor of...
11867 (m68k_expand_epilogue): ...this new function.
11868 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
11869 functions.
11870 (print_operand): Handle %?.
11871 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
11872 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
11873 (prologue, epilogue): New patterns.
11874 (return): Turn into a define_expand.
11875 (*return): New pattern, derived from old "return" pattern. Use rte
11876 rather than rts for interrupt functions. Only use rtd if the pop
11877 count is nonzero.
11878 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
11879 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
11880 (link, *link, unlink, *unlink, load_got): Likewise.
11881
fc2241eb
RS
118822007-03-06 Richard Sandiford <richard@codesourcery.com>
11883
11884 PR target/23482
11885 PR target/17114
11886 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
11887 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
11888 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
11889 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
11890 and m68k_matches_u_p.
11891 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
11892 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
11893 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
11894 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
11895 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
11896 (REG_STRICT_P): New macro.
11897 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
11898 PCREL_GENERAL_OPERAND_OK.
11899 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
11900 m68k_legitimate_base_reg_p.
11901 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
11902 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
11903 (PIC_CASE_VECTOR_ADDRESS): Update comment.
11904 * config/m68k/m68k.c (m68k_address): New structure.
11905 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
11906 (m68k_decompose_index, m68k_legitimate_constant_address_p)
11907 (m68k_jump_table_ref_p, m68k_decompose_address)
11908 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
11909 (m68k_matches_u_p): New functions.
11910 (print_operand_address): Rewrite to use m68k_decompose_index.
11911
581f006c 119122007-03-05 David Taylor <dtaylor@emc.com>
9e8f6959
DT
11913
11914 * gcc.c: Correct copyright date in --version output.
11915
50f9c211
JDA
119162007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11917
11918 * pa.md: In unamed move patterns, disparge copies between general
11919 and floating point registers using '?' modifier. Don't include 'f'
11920 constraint for register preferences in DImode, SImode, HImode and
11921 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
11922 Remove constraints for copies between general and floating registers
11923 in soft-float DFmode pattern.
11924 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
11925 floating register.
cff4720f 11926 (movsf): Likewise.
50f9c211 11927
1f1d5130
MS
119282007-03-05 Mike Stump <mrs@apple.com>
11929
acaaf0c6 11930 * c-common.c (targetcm): Add.
1f1d5130
MS
11931 * c-opts.c (c_common_handle_option): Handle language specific
11932 target options.
11933 * opts.c (handle_option): Verify language for target options, if
11934 any are given.
11935 * opth-gen.awk: Add CL_LANG_ALL.
11936 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
11937 (TARGETCM_INITIALIZER): Add.
11938 * target.h (struct gcc_targetcm): Add.
11939 (targetcm): Add.
11940 * targhooks.c (default_handle_c_option): Add.
11941 * targhooks.h (default_handle_c_option): Add.
11942 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
11943
11944 * config/darwin.opt (iframework): Add.
11945 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
11946 * config/darwin-c.c (handle_c_option): Add.
11947 (TARGET_HANDLE_C_OPTION): Add.
11948 (targetcm): Add.
11949 * doc/invoke.texi (Darwin Options): Add -iframework.
11950
65bda21f
KG
119512007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11952
11953 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
11954 conversion.
11955
da1c7394
ILT
119562007-03-05 Ian Lance Taylor <iant@google.com>
11957
11958 * c.opt (fgnu89-inline): New option.
11959 * c-opts.c (c_common_post_options): Set default value for
11960 flag_gnu89_inline.
11961 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
11962 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
11963 inline functions.
11964 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
11965 (grokdeclarator, start_function): Likewise.
11966 * c-cppbuiltin.c (c_cpp_builtins): Define either
11967 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
11968 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
11969 (C Dialect Options): Document -fgnu89-inline.
11970 * doc/extend.texi (Function Attributes): Explain what the
11971 gnu_inline attribute does.
11972 * doc/cpp.texi (Common Predefined Macros): Document
11973 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
11974
7343ff45
ILT
119752007-03-05 Ian Lance Taylor <iant@google.com>
11976
11977 PR tree-optimization/31034
11978 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
11979 half-range if the other side is an overflow infinity.
11980
344189f9
BS
119812007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11982
11983 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
11984 (bfin*-linux-uclibc*): New configuration.
11985 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
11986 defining.
11987 * config/bfin/linux.h: New file.
11988 * config/bfin/libgcc-bfin.ver: New file.
11989 * config/bfin/t-bfin-uclinux: New file.
11990 * config/bfin/t-bfin-linux: New file.
11991 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
11992 (TARGET_OS_CPP_BUILTINS): New macro.
11993
9dc167ec
RG
119942007-03-05 Richard Guenther <rguenther@suse.de>
11995
11996 * fold-const.c (fold_binary): Remove duplicate folding
11997 of comparison of non-null ADDR_EXPR against null.
11998
f9be04cd 119992007-03-05 Richard Guenther <rguenther@suse.de>
3c2d980c 12000 Dorit Nuzman <dorit@il.ibm.com>
f9be04cd
RG
12001
12002 PR tree-optimization/26420
12003 * tree-vectorizer.c (vectorize_loops): Bail out early if there
12004 are no loops in the function. Only print the number of
12005 vectorized loops if it is greater than zero or we are supposed
12006 to print information about unvectorized loops.
12007
c1c5a431
RE
120082007-03-05 Revital Eres <eres@il.ibm.com>
12009
3c2d980c
UB
12010 * gcc.dg/var-expand1.c: New test.
12011 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
12012 when an accumulator is expanded.
c1c5a431 12013
f73fe417
MLI
120142007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12015
12016 PR other/30465
12017 * c-common.c (convert_and_check): Don't give warnings for
12018 conversion if 'expr' already overflowed.
cff4720f 12019
270d43bf
RS
120202007-03-04 Roger Sayle <roger@eyesopen.com>
12021
12022 PR middle-end/30744
12023 * fold-const.c (fold_comparison): Enforce type consistency when
12024 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
12025
69bd3423
ZD
120262007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
12027
12028 * tree-ssa-address.c (create_mem_ref): Do not put an expression
12029 containing a cast to the base of TARGET_MEM_REF.
12030
23204428
MM
120312007-03-04 Martin Michlmayr <tbm@cyrius.com>
12032
12033 * tree.c (tree_contains_struct_check_failed): Remove spurious
12034 whitespace from error message.
12035
7348aa7f
FXC
120362007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
12037
12038 PR target/30406
12039 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
12040 instead of precision.
12041
594f8779 120422007-03-04 Roman Zippel <zippel@linux-m68k.org>
69bd3423 12043 Nathan Sidwell <nathan@codesourcery.com>
594f8779
RZ
12044
12045 * emit-rtl.c (find_auto_inc): New.
12046 (try_split): recreate REG_INC notes,
12047 Use regular for loops rather than whiles.
12048
695d8830
AS
120492007-03-03 Andreas Schwab <schwab@suse.de>
12050
12051 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
12052 * configure: Regenerate.
12053
31ff73b5
KG
120542007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12055
a5063932
KG
12056 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
12057 flag_rounding_math, not flag_unsafe_math_optimizations.
12058
31ff73b5
KG
12059 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
12060 fold_build2.
12061 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
12062 alpha_fold_vector_minmax): Likewise.
12063 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12064 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12065
97002248
EB
120662007-03-02 Eric Botcazou <ebotcazou@adacore.com>
12067
12068 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
12069 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
12070 if the lhs has side-effects.
12071 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
12072
e39e8c36
UB
120732007-03-02 Uros Bizjak <ubizjak@gmail.com>
12074
12075 * config/i386/i386.h (TUNEMASK): Remove define.
12076 (ARCHMASK): Remove define.
12077 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
12078 Use ix86_arch_mask variable instead of ARCHMASK.
12079 * config/i386/i386.c (override_options): Ditto.
12080 (standard_80387_constant_p): Ditto.
12081
97002248 120822007-03-02 Ian Lance Taylor <iant@google.com>
12df8a7e
ILT
12083
12084 Used signed infinities in VRP.
12085 * tree-vrp.c (uses_overflow_infinity): New static function.
12086 (supports_overflow_infinity): New static function.
12087 (make_overflow_infinity): New static function.
12088 (negative_overflow_infinity): New static function.
12089 (positive_overflow_infinity): New static function.
12090 (is_negative_overflow_infinity): New static function.
12091 (is_positive_overflow_infinity): New static function.
12092 (is_overflow_infinity): New static function.
12093 (overflow_infinity_range_p): New static function.
12094 (compare_values_warnv): New function split out of compare_values.
12095 (compare_value): Call it.
12096 (set_value_range_to_nonnegative): Add overflow_infinity
12097 parameter. Change caller.
12098 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
12099 Change callers.
12100 (vrp_expr_computes_nonzero): Likewise.
12101 (compare_ranges, compare_range_with_value): Likewise.
12102 (compare_name_with_value, compare_names): Likewise.
12103 (vrp_evaluate_conditional): Likewise.
12104 (set_value_range): Handle infinity
12105 (vrp_operand_equal_p, operand_less_p): Likewise.
12106 (extract_range_from_assert): Likewise.
12107 (vrp_int_const_binop): Likewise.
12108 (extract_range_from_binary_expr): Likewise.
12109 (extract_range_from_unary_expr): Likewise.
12110 (extract_range_from_comparison): Likewise.
12111 (extract_range_from_expr): Likewise.
12112 (dump_value_range): Likewise.
12113 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
12114 (test_for_singularity): Likewise.
12115 (vrp_int_const_binop): Remove inline qualifier.
12116 (adjust_range_with_scev): Add comment.
12117 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
12118
6e7e772d
DN
121192007-03-02 Diego Novillo <dnovillo@redhat.com>
12120
12121 * tree-ssa-structalias.c (could_have_pointers): Tidy.
12122 (get_constraint_for): Likewise.
12123 (do_structure_copy): Likewise.
12124 (find_func_aliases): Fix references to MODIFY_EXPR.
12125 (intra_create_variable_infos): Tidy.
12126 * tree-ssa-operands.c (add_virtual_operand): Add argument
12127 IS_CALL_SITE.
12128 When adding members of alias sets, if IS_CALL_SITE is true and
12129 the symbol is not call-clobbered, skip it.
12130 Adjust all callers.
12131
e0759b73
EB
121322007-03-02 Eric Botcazou <ebotcazou@adacore.com>
12133
12134 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
12135 entry by means of emit_insn_at_entry.
12136
962f3833
RH
121372007-03-02 Richard Henderson <rth@redhat.com>
12138
12139 * expr.h (promoted_input_arg): Remove decl.
12140 * function.c (promoted_input_arg): Merge into ...
12141 * combine.c (setup_incoming_promotions): ... only caller.
12142 Rearrange to avoid double loop.
12143
7393f7f8
BE
121442007-03-02 Ben Elliston <bje@au.ibm.com>
12145 Peter Bergner <bergner@vnet.ibm.com>
12146 Janis Johnson <janis187@us.ibm.com>
12147
12148 * config/rs6000/dfp.md: New file.
12149 * config/rs6000/rs6000.md: Include dfp.md.
12150 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
12151 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
12152 and TDmode decimal float modes in FP registers.
12153 (num_insns_constant): Likewise.
12154 (rs6000_legitimate_offset_address_p): Likewise.
12155 (rs6000_legitimize_address): Likewise.
12156 (rs6000_legitimize_reload_address): Likewise.
12157 (rs6000_legitimate_address): Likewise.
12158 (rs6000_emit_move): Likewise.
12159 (function_arg_boundary): Likewise.
12160 (function_arg_advance): Likewise.
12161 (rs6000_darwin64_record_arg_recurse): Likewise.
12162 (function_arg): Likewise.
12163 (rs6000_gimplify_va_arg): Likewise.
12164 (rs6000_split_multireg_move): Likewise.
12165 (rs6000_output_function_epilogue): Likewise.
12166 (rs6000_output_function_epilogue): Likewise.
12167 (rs6000_register_move_cost): Likewise.
12168 (rs6000_function_value): Likewise.
12169 (rs6000_libcall_value): Likewise.
12170
1f24ba02
RS
121712007-03-02 Richard Sandiford <richard@codesourcery.com>
12172
12173 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
12174
c3c9a5d2
RS
121752007-03-02 Richard Sandiford <richard@codesourcery.com>
12176
12177 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
12178 Use $MULTIDIR to choose between the kernel and RTP headers,
12179 and use $WIND_BASE and $WIND_USR to locate them.
12180
0fa4c370
UB
121812007-03-02 Uros Bizjak <ubizjak@gmail.com>
12182
12183 * config/i386/i386.c (override_options): Put initialization of
12184 ix86_tune_mask and ix86_arch_mask to the correct place.
12185
8691cea3
UB
121862007-03-02 Uros Bizjak <ubizjak@gmail.com>
12187 Michael Meissner <michael.meissner@amd.com>
12188
12189 PR target/31019
12190 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
12191 (ARCHMASK): Define.
12192 (TARGET_CMOVE): Use ARCHMASK.
12193 (TARGET_CMPXCHG): Ditto.
12194 (TARGET_CMPXCHG8B): Ditto.
12195 (TARGET_XADD): Ditto.
12196 (TARGET_BSWAP): Ditto.
12197 * config/i386/i386.c (ix86_tune_mask): New global variable.
12198 (ix86_arch_mask): Ditto.
12199 (override_options): Initialize ix86_tune_mask and
12200 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
12201 target_flags.
12202
cee690f1
BE
122032007-03-02 Ben Elliston <bje@au.ibm.com>
12204
12205 PR 30992
12206 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
12207
37ea0b7e
JM
122082007-03-02 Joseph Myers <joseph@codesourcery.com>
12209
12210 * target.h (init_dwarf_reg_sizes_extra): New target hook.
12211 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
12212 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
12213 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
12214 hook.
12215 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
12216 rs6000_init_dwarf_reg_sizes_extra): New.
12217 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
12218 SPE register high parts.
12219
bcc3d150
BM
122202007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
12221
12222 * Makefile.in: Add install-pdf target as
12223 copied from automake v1.10 rules.
12224 * configure.ac: Add install-pdf to target list.
12225 * configure: Regenerate.
12226
fe2d934b
PB
122272007-03-01 Paul Brook <paul@codesourcery.com>
12228
12229 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
12230 modes to LDRD for DImode.
12231 (output_move_double): Fixup out of range ldrd/strd.
12232 (vfp_secondary_reload_class): Rename...
12233 (coproc_secondary_reload_class): ... to this. Add wb argument.
12234 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
12235 coproc_secondary_reload_class for CLASS_IWMMXT.
12236 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12237 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
12238
2711355f
ZD
122392007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
12240
7e08fa35
UB
12241 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
12242 unroll factor by the estimated number of iterations.
12243 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
12244 than prefetch latency.
2711355f 12245
5ca09e73
ZD
12246 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
12247 decode_caches_intel, detect_caches_intel): New functions.
12248 (host_detect_local_cpu): Use detect_caches_amd and
12249 detect_caches_intel.
12250
ceca734e
RH
122512007-03-01 Richard Henderson <rth@redhat.com>
12252
12253 * expr.c (emit_move_complex_push): Export.
12254 (emit_move_complex_parts): Split out from ...
12255 (emit_move_complex): ... here.
12256 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
12257 * config/i386/i386.md (movcdi): New.
12258
93de7743
UB
122592007-03-01 Uros Bizjak <ubizjak@gmail.com>
12260
12261 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
12262 size of mode1 to check for tieable modes in MMX case.
12263
7ffb5e78
RS
122642007-03-01 Richard Sandiford <richard@codesourcery.com>
12265
12266 * Makefile.in (rtlanal.o): Depend on tree.h.
12267 * rtl.h (offset_within_section_p, split_const): Declare.
12268 * rtlanal.c: Include tree.h.
12269 (offset_within_block_p): New function, taken from
12270 mips_offset_within_object_p.
12271 (split_const): New function, taken from mips_split_const.
12272 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
12273 Declare.
12274 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
12275 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
12276 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
12277 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12278 (m68k_illegitimate_symbolic_constant_p): New function.
12279 * config/m68k/m68k.md (movsi): Remove misleading predicates.
12280 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
12281 symbolic constant that might be outside the symbol's section,
12282 move the symbol first and then add the offset.
12283 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
12284 Override.
12285 * config/mips/mips.c (mips_split_const): Delete.
12286 (mips_offset_within_object_p): Delete.
12287 (mips_symbolic_constant_p): Use offset_within_section_p and
12288 split_const instead of mips_offset_within_object_p and
12289 mips_split_const.
12290 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
12291 (mips_legitimize_const_move, print_operand_reloc)
12292 (mips_dangerous_for_la25_p): Use split_const instead of
12293 mips_split_const.
12294
d3dc619d
EC
122952007-02-28 Eric Christopher <echristo@apple.com>
12296
12297 * Makefile.in (install-include-dir): Don't rm -rf include.
12298
a6d5f37c
RG
122992007-02-28 Richard Guenther <rguenther@suse.de>
12300
12301 PR middle-end/30364
12302 * fold-const.c (fold_binary): Do not associate expressions
12303 with more than one variable for integer types that do not wrap.
12304
94a0dd7b
SL
123052007-02-28 Sandra Loosemore <sandra@codesourcery.com>
12306
12307 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
12308 Delete, and replace with...
12309 (fold_builtin_call_array): This. Update callers to use it.
12310 * fold-const.c (fold_build_call_list): Delete, and replace with...
12311 (fold_build_call_array): This.
12312 (fold_build_call_list_initializer): Delete, and replace with...
12313 (fold_build_call_array_initializer): This.
12314 * tree.h: Update declarations to reflect above changes.
12315
12316 * c-typeck.c (build_function_call): Store converted arguments
12317 in a stack-allocated array instead of building a list.
12318 (convert_arguments): Store arguments in the array passed in as an
12319 argument, and return the actual number of arguments.
12320 * c-format.c: (check_function_format): Pass arguments in an
12321 array instead of a list.
12322 * c-common.c (check_function_nonnull): Likewise.
12323 (check_function_sentinel): Likewise.
12324 (check_function_arguments): Likewise.
12325 * c-common.h: Update declarations to reflect above changes.
12326
76bf4853
JH
123272007-02-28 Jan Hubicka <jh@suse.cz>
12328
12329 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
12330 PRED_NEGATIVE_RETURN): Update outcomes.
12331
3b1bf459
BS
123322007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
12333
12334 * calls.c (emit_library_call_value_1): Handle partial registers
12335 correctly when building up CALL_INSN_FUNCTION_USAGE.
d3dc619d 12336
e214de0a
JDA
123372007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12338
12339 * pa/predicates.md (move_src_operand): Allow zero for mode.
12340 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
12341 move pattern.
12342
8ab93332
UB
123432007-02-27 Uros Bizjak <ubizjak@gmail.com>
12344
12345 PR target/30970
12346 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
12347 *movv2df_internal): Enable pattern only for valid operand
12348 combinations.
12349 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
12350 tie only 128bit modes. For MMX registers, tie only 64bit modes.
12351
3b414146
MS
123522007-02-27 Mike Stump <mrs@apple.com>
12353
12354 * config/darwin-crt3.c: Avoid compilation when compiling for a
12355 kext multilib.
12356
f686ec05
JM
123572007-02-27 Joseph Myers <joseph@codesourcery.com>
12358
12359 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
12360 FIXED_INCLUDE_DIR.
12361 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
12362 for fixed headers and limits.h.
12363 (install-include-dir, install-headers-tar, install-headers-cpio,
12364 install-headers-cp, real-install-headers-tar,
12365 real-install-headers-cpio, real-install-headers-cp): Handle
12366 include-fixed as well as include.
12367 (install-mkheaders): Don't install files that go only in include
12368 not include-fixed.
12369 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
12370 from GCC_INCLUDE_DIR.
12371 * gcc.c (process_command): Remove special -BstageN/ handling.
12372 (do_spec_1): Add include-fixed directories.
12373
01e7cd6e
BS
123742007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12375
12376 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
12377 _smulsi3_highpart.
12378 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
12379 New functions.
12380 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
12381 patterns.
12382
f6fc5c86
MM
123832007-02-27 Mark Mitchell <mark@codesourcery.com>
12384
12385 * c-common.c (get_priority): Add check for
12386 SUPPORTS_INIT_PRIORITY.
12387
9b02a95e
BS
123882007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12389
12390 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
12391
ce27ef3d
BS
12392 * config/bfin/bfin.c: Include "cfglayout.h".
12393 (MAX_LSETUP_DISTANCE): New macro.
12394 (struct loop_info): New members incoming, incoming_src and
12395 incoming_dest. Delete member predecessor.
12396 (length_for_loop): New function.
12397 (bfin_optimize_loop): Handle more different loop structures.
12398 (bfin_discover_loop): Rework detection of predecessor blocks by
12399 examining incoming edges.
12400 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
12401 bfin_reorg_loops.
12402 (bfin_reorder_loops): New function.
12403 (bfin_reorg_loops): Use these three new functions.
12404
2889abed
BS
12405 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
12406 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
12407 (CONSTRAINT_LEN): Add entry for 'q'.
12408 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
12409 Add 'q' constraints.
12410 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
12411 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
12412
12413 * config/bfin/bfin.md (add_with_carry): New pattern.
12414 (s_or_u, su_optab, su_modifier): New code macros/attrs.
12415 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
12416 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
12417 support unsigned multiplies too. Removed incorrect commutativity from
12418 operand 1 constraint where appropriate.
12419 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
12420 patterns.
12421 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
12422 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
12423 New patterns.
12424 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
12425 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
12426 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
12427 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
12428 usmulhisi_hh_huh): New patterns.
12429
329437dd
BS
12430 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
12431 lshifthi3): Fix output template to use half reg for operand 2.
12432
6ce986b9
BS
12433 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
12434 instead of R2.
12435
97130915
BS
12436 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
12437
3b4ed48b
AS
124382007-02-27 Andreas Schwab <schwab@suse.de>
12439
12440 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
12441
dcb995f7
JH
124422007-02-27 Jan Hubicka <jh@suse.cz>
12443
12444 * predict.c (last_basic_block_p): Remove.
12445 (tree_estimate_probability): Update return heuristic for commonized
12446 return blocks.
12447
e5fc6da8
BM
124482007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
12449
12450 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
12451
7771bb62
BM
124522007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
12453
12454 * doc/include/gcc-common.texi (versionsubtitle): New macro.
12455 * doc/cpp.texi: Standardize title page.
12456 * doc/cppinternals.texi: Likewise.
12457 * doc/gcc.texi: Standardize title page, remove version number
12458 from copyright page.
12459 * doc/gccint.texi: Likewise.
12460 * doc/install.texi: Standardize title page, add table of
12461 contents.
12462
75b6bb62
JH
124632007-02-26 Jan Hubicka <jh@suse.cz>
12464
12465 * predict.def: Set outcomes according to more recent results.
12466 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
12467 Remove dead predictors.
12468 * predict.c (return_prediction): Fix pasto.
12469
48982394
BS
124702007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12471
12472 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
12473 change; avoid a memory leak when returning early.
d3dc619d 12474
b2f4bed8
MM
124752007-02-26 Mark Mitchell <mark@codesourcery.com>
12476
57a4c089
MM
12477 * c-decl.c (static_ctors): Move to c-common.c.
12478 (static_dtors): Likewise.
12479 (finish_function): Use c_record_cdtor_fn.
12480 (build_cdtor): Move to c-common.c.
12481 (c_write_global_declarations): Use c_build_cdtor_fns.
12482 * c-common.h (static_ctors): Declare.
12483 (static_dtors): Likewise.
12484 (c_record_cdtor_fn): Likewise.
12485 (c_build_cdtor_fns): Likewise.
12486 * c-common.c (static_ctors): New variable.
12487 (static_dtors): Likewise.
12488 (c_record_cdtor_fn): New function.
12489 (build_cdtor): Move from c-decl.c
12490 (c_build_cdtor_fns): New function.
12491
b2f4bed8
MM
12492 * output.h (assemble_addr_to_section): Declare.
12493 (get_cdtor_priority_section): Likewise.
12494 * varasm.c (assemble_addr_to_section): New function.
12495 (get_cdtor_priority_section): Likewise.
12496 (default_named_section_asm_out_destructor): Use them.
12497 (destor_dtor_section_asm_out_destructor): Likewise.
12498 (default_named_section_asm_out_constructor): Likewise.
12499 (default_ctor_section_asm_out_constructor): Likewise.
12500 * config.gcc (*-*-vxworks*): Include vxworks.o.
12501 * config/t-vxworks (vxworks.o): New target.
12502 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
12503 (TARGET_ASM_CONSTRUCTOR): Define.
12504 (TARGET_ASM_DESTRUCTOR): Likewise.
12505 (vxworks_asm_out_constructor): Declare.
12506 (vxworks_asm_out_destructor): Likewise.
12507
12508 * c-common.c (get_priority): Check that we have not just an
12509 INTEGER_CST, but an integer constant with integeral type.
12510
c4a4d1a0
UB
125112007-02-25 Uros Bizjak <ubizjak@gmail.com>
12512
12513 PR tree-optimization/30938
12514 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
12515 use &dt[nargs-1] instead of &dt[nargs] in the call to
12516 vect_is_simple_use().
12517
b098aaf2
UW
125182007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
12519
12520 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
12521 from register elimination as PRE_MODIFY / POST_MODIFY increments.
12522 Do not attempt to handle MEM inside auto-inc expressions.
12523 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
12524 of a register modified by an auto-inc expression. However, do handle
12525 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
12526 (elimination_effects): Prohibit elimination of a register modified
12527 by an auto-inc expression. Disable register elimination rules whose
12528 target register is modified by an auto-inc expression with variable
12529 increment.
12530
4839cb59
ZD
125312007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
12532
12533 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
12534 off-by-one error.
12535 (array_at_struct_end_p): New function.
12536 (idx_infer_loop_bounds): Use it.
12537 (estimate_numbers_of_iterations_loop): Export.
12538 * predict.c (predict_loops): Use estimated_loop_iterations_int.
12539 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
12540 (tree_estimate_probability): Call record_loop_exits.
12541 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
12542 (estimated_loop_iterations, estimated_loop_iterations_int,
12543 estimated_loop_iterations_tree): New functions.
12544 (analyze_siv_subscript_cst_affine,
12545 compute_overlap_steps_for_affine_1_2,
12546 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
12547 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
12548 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
12549 (PRED_LOOP_ITERATIONS_GUESSED): New.
12550 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
12551 * cfgloop.h (estimate_numbers_of_iterations_loop,
12552 estimated_loop_iterations_int): Declare.
12553
fc8600f9
MM
125542007-02-25 Mark Mitchell <mark@codesourcery.com>
12555
12556 * doc/extend.texi: Document optional priority argument to
12557 constructors and destructors.
12558 * tree.c (init_priority_for_decl): Adjust GTY markers.
12559 (init_ttree): Use priority-info hash functions for
12560 init_priority_for_decl.
12561 (tree_map_eq): Rename to ...
12562 (tree_map_base_eq): ... this.
12563 (tree_map_marked_p): Rename to ...
12564 (tree_map_base_marked_p): ... this.
12565 (tree_map_base_hash): New function.
12566 (decl_init_priority_lookup): Rework.
12567 (decl_fini_priority_lookup): New function.
12568 (decl_priority_info): New function.
12569 (decl_init_priority_insert): Use it.
12570 (decl_fini_priority_insert): Likewise.
12571 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
12572 hierarchy.
12573 (decl_restrict_base_insert): Likewise.
12574 (decl_debug_expr_insert): Likewise.
12575 (decl_value_expr_lookup): Likewise.
12576 (decl_value_expr_insert): Likewise.
12577 * tree.h (priority_type): New type.
12578 (decl_init_priority_lookup): Use priority_type.
12579 (decl_fini_priority_lookup): New function.
12580 (decl_init_priority_insert): Use priority_type.
12581 (decl_fini_priority_insert): New function.
12582 (DECL_HAS_INIT_PRIORITY): Tweak comments.
12583 (DECL_INIT_PRIORITY): Likewise.
12584 (SET_DECL_INIT_PRIORITY): Add comment.
12585 (DECL_FINI_PRIORITY): New macro.
12586 (SET_DECL_FINI_PRIORITY): Likewise.
12587 (DEFAULT_INIT_PRIORITY): Document.
12588 (MAX_INIT_PRIORITY): Likewise.
12589 (MAX_RESERVED_INIT_PRIORITY): Likewise.
12590 (tree_map_base): New type.
12591 (tree_map_base_eq): New function.
12592 (tree_map_base_hash): Likewise.
12593 (tree_map_base_marked_p): Likewise.
12594 (tree_map): Inherit from tree_map_base.
12595 (tree_map_eq): Make it a macro.
12596 (tree_map_marked_p): Likewise.
12597 (tree_int_map): Inherit from tree_map_base.
12598 (tree_int_map_eq): Make it a macro.
12599 (tree_int_map_hash): Likewise.
12600 (tree_int_map_marked_p): Likewise.
12601 (tree_priority_map): New type.
12602 (tree_priority_map_eq): New macro.
12603 (tree_priority_map_hash): Likewise.
12604 (tree_priority_map_marked_p): Likewise.
12605 * varasm.c (emults_decl): Adjust for refactoring of tree_map
12606 hierarchy.
12607 (emutls_common_1): Likewise.
12608 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
12609 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
12610 of tree_map hierarchy.
12611 * tree-cfg.c (move_stmt_r): Likewise.
12612 (new_label_mapper): Likewise.
12613 * c-tree.h (c_expand_body): Move to ...
12614 * c-common.h (c_expand_body): ... here.
12615 * c-decl.c (c_expand_body): Move to ...
12616 * c-common.c (c_expand_body): ... here.
12617 (c_common_attribute_table): Allow 1 argument for the constructor
12618 and destructor attributes.
12619 (get_priority): New function.
12620 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
12621 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
12622
2a025b54
JH
126232007-02-24 Jan Hubicka <jh@suse.cz>
12624
12625 PR middle-end/30509
7e08fa35
UB
12626 * tree-inline.c (copy_bb): Produce exact copy of EH info when
12627 copying for inlining.
2a025b54 12628
bd8d4d19
JH
126292007-02-24 Uros Bizjak <ubizjak@gmail.com>
12630 Jan Hubicka <jh@suse.cz>
12631
12632 PR target/30778
12633 * i386.c (counter_mode): New function.
12634 (expand_set_or_movmem_via_loop): Use it.
12635 (expand_movmem_epilogue): Likewise; fix pasto.
12636 (ix86_expand_movmem): Do emit guard even for constant counts.
12637 (ix86_expand_setmem): Likewise.
12638
e133c867
NC
126392007-02-25 Nick Clifton <nickc@redhat.com>
12640
12641 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
12642 (JUMP_TABLES_IN_TEXT_SECTION): Define.
12643
73013054
UB
126442007-02-24 Uros Bizjak <ubizjak@gmail.com>
12645
12646 PR target/30770
12647 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
12648 count argument with 0x10, not with 0x16.
12649 (expand_setmem_epilogue): Ditto.
12650
320ce1d3
MS
126512007-02-24 Mike Stump <mrs@apple.com>
12652
12653 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
12654 symbols.
12655
a31498d2
RG
126562007-02-24 Richard Guenther <rguenther@suse.de>
12657
12658 PR middle-end/30951
12659 * fold-const.c (fold_binary): Fold x +- CST op x for
12660 EQ_EXPR and NE_EXPR.
12661
1e6e2c30
JDA
126622007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12663
12664 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
12665
a1d31187
JH
126662007-02-24 Jan Hubicka <jh@suse.cz>
12667
12668 * cgraphunit.c (decide_is_function_needed): Honor
12669 -fkeep-inline-functions.
12670
3d577eaf
KG
126712007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12672
12673 * builtins.c (fold_builtin_modf): New.
12674 (fold_builtin_2): Use it.
12675
60683019
BS
126762007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
12677
12678 * loop-iv.c (implies_p): Detect additional cases where A implies B.
12679 (determine_max_iter): Take additional LOOP arg; all callers changed.
12680 Lose broken logic dealing with PLUS. Try to limit the upper bound by
12681 one using simplifications.
00c73ae6
BS
12682 (simplify_using_initial_values): Return if the expression becomes
12683 invalid due to altered regs.
60683019 12684
c4f46fde
DD
126852007-02-23 DJ Delorie <dj@redhat.com>
12686
12687 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
12688
196bea21
MS
126892007-02-23 Mike Stump <mrs@apple.com>
12690
12691 * tlink.c (scan_linker_output): Parse linker messages from
12692 darwin9's linker better.
12693
a615f803
SE
126942007-02-23 Steve Ellcey <sje@cup.hp.com>
12695
12696 PR debug/29614
12697 * varpool.c (varpool_assemble_pending_decls): Set
12698 varpool_last_needed_node to null.
12699
bf69f9d2
DD
127002007-02-23 DJ Delorie <dj@redhat.com>
12701
12702 * config/i386/i386.c (ix86_data_alignment): Don't specify an
12703 alignment bigger than the object file can handle.
12704
4afb7791
UB
127052007-02-23 Uros Bizjak <ubizjak@gmail.com>
12706
12707 PR target/30825
12708 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
12709 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
12710 (*movsf_1): Penalize MMX moves.
12711
0a8f8c45
BS
127122007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
12713
12714 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
12715 2^32-1 or more times unless flag_unsafe_loop_optimizations.
12716
c67dc1a3
BS
12717 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
12718
6351a719
KG
127192007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12720
12721 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
12722 (fold_builtin_1): Use them.
12723 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
12724 BUILT_IN_SIGNIFICAND.
12725
95764a8f
L
127262007-02-23 H.J. Lu <hongjiu.lu@intel.com>
12727
12728 * config/i386/i386.c (bdesc_1arg): Initialize
12729 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
12730 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
12731 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
12732 and IX86_BUILTIN_MOVSLDUP.
12733
c0729306
PB
127342007-02-22 Paolo Bonzini <bonzini@gnu.org>
12735
12736 PR rtl-optimization/30841
95764a8f 12737 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
c0729306 12738
7a2a25ab
KG
127392007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12740
12741 * builtins.c (fold_builtin_frexp): New.
12742 (fold_builtin_2): Use it.
12743
30d8946b
MM
127442007-02-22 Mark Mitchell <mark@codesourcery.com>
12745
03d12b64
MM
12746 * doc/invoke.texi (Spec Files): Document getenv spec function.
12747
30d8946b
MM
12748 * gcc.c (getenv_spec_function): New function.
12749 (static_spec_functions): Add it.
12750 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
12751 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
12752 header files.
12753
a0ad3539
MM
127542007-02-22 Michael Matz <matz@suse.de
12755
12756 PR c++/29433
12757 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
12758 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
12759
0c5c188f
ILT
127602007-02-22 Ian Lance Taylor <iant@google.com>
12761
12762 PR debug/30898
12763 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
12764 (mem_loc_descriptor): Call it.
12765
021a93e3 127662007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
a0ad3539 12767 Ira Rosen <irar@il.ibm.com>
021a93e3
IR
12768
12769 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
12770
8fca6de5
IR
127712007-02-22 Ira Rosen <irar@il.ibm.com>
12772
12773 PR tree-optimization/30843
d3dc619d 12774 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
8fca6de5
IR
12775 stores only after all the group is vectorized.
12776
b3832a9f
DN
127772007-02-22 Dorit Nuzman <dorit@il.ibm.com>
12778
12779 PR tree-optimization/30858
12780 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
12781 in the reduction cycle have a single use in the loop.
12782 * tree-vectorizer.h (relevant): Add documentation.
12783
ba7da42a
MS
127842007-02-20 Mike Stump <mrs@apple.com>
12785
12786 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
12787 * configure: Regenerate.
12788
73701e27
TS
127892007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
12790
12791 Change the defaults of some parameters and options.
12792 * config/spu/spu-protos.h (spu_optimization_options): Declare.
12793 * config/spu/spu.c (spu_optimization_options): Add.
12794 (spu_override_options): Change params in spu_optimization_options.
12795 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
12796
12797 Register 127 is only 16 byte aligned when used as a frame pointer.
12798 * config/spu/spu-protos.h (spu_init_expanders): Declare.
12799 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
12800 HARD_FRAME_POINTER_REGNUM.
12801 (spu_legitimate_address): Use regno_aligned_for_reload.
12802 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
12803 aligned when frame_pointer_needed is true.
12804 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
12805 to 8 bits.
12806 * config/spu/spu.h (INIT_EXPANDERS): Define.
12807
12808 Make sure shift and rotate instructions have valid immediate operands.
12809 * config/spu/predicates.md (spu_shift_operand): Remove.
12810 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
ba7da42a 12811 * config/spu/constraints.md (W, O): Extend range.
73701e27
TS
12812 * config/spu/spu.md (umask, nmask): Define.
12813 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
12814 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
12815 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
12816 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
12817 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
12818 (lshr<mode>3_reg): Fix rtl description.
12819
12820 Make sure mulhisi immediate operands are valid.
12821 * config/spu/predicates.md (imm_K_operand): Add.
12822 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
12823
12824 Generate constants using fsmbi and andi.
12825 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
12826 (print_operand, spu_split_immediate, classify_immediate,
12827 fsmbi_const_p): Handle IC_FSMBI2.
12828
12829 Correctly handle a CONST_VECTOR containing symbols.
12830 * config/spu/spu.c (print_operand): Handle HIGH correctly.
12831 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
12832 (immediate_load_p): Allow symbols that use 2 instructions to create.
12833 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
12834 with symbols when flag_pic is set.
12835 (const_vector_immediate_p): New.
12836 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
12837 accept a CONST_VECTOR with symbols.
12838 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
12839 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
12840 correctly.
12841 * config/spu/spu.md (high, low): Delete.
12842 (low_<mode>): Define.
12843
12844 Remove INTRmode and INTR_REGNUM, which didn't work.
12845 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
12846 of INTR_REGNUM.
12847 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
12848 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
12849 peephole2 pattern): Don't use INTR or 131.
12850 (movintrcc): Delete.
12851 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
12852 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
12853 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
12854 (UNSPEC_SET_INTR): Add.
12855 * config/spu/spu-modes.def (INTR): Remove.
12856
12857 More accurate warnings about run-time relocations.
12858 * config/spu/spu.c (reloc_diagnostic): Test in_section.
12859
12860 Correctly warn about immediate arguments to specific intrinsics.
12861 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
12862 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
12863 the instruction predicate.
12864
12865 Fix tree check errors with latest update.
12866 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
12867 CALL_EXPR_ARG.
12868 (spu_expand_builtin): Use CALL_EXPR_FN.
12869
12870 Add missing specific intrinsics.
12871 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
12872 si_bislede.
12873 * config/spu/spu_internals.h: Ditto.
12874
12875 Fix incorrect operand modifiers.
12876 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
12877 * config/spu/spu.md (xor<mode>3): Change %S to %J.
12878
12879 Optimize one case of zero_extend of a vec_select.
12880 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
12881
12882 Accept any immediate for hbr.
12883 * config/spu/spu.md (hbr): Change s constraints to i.
12884
5b0202af
PB
128852007-02-21 Paul Brook <paul@codesourcery.com>
12886
12887 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
12888 condexec_count when skipping USE and CLOBBER.
12889
21af5cdf
NC
128902007-02-21 Nick Clifton <nickc@redhat.com>
12891
12892 * common.opt (Warray-bounds): Add Warning attribute.
12893 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
12894 Likewise.
12895 (fsized-zeroes): Add Optimization attribute.
12896 (fsplit-wide-types, ftree-scev-cprop): Likewise.
12897 * c.opt (Wc++0x-compat): Add Warning attribute.
12898
551d6929
UW
128992007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
12900
12901 PR middle-end/30761
12902 * reload1.c (eliminate_regs_in_insn): In the single_set special
12903 case, attempt to re-recognize the insn before falling back to
12904 having reload fix it up.
12905
2396bce1
EC
129062007-02-20 Eric Christopher <echristo@gmail.com>
12907
12908 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
12909 Rewrite accordingly.
12910 (frv_read_iacc_argument): Ditto.
12911 (frv_expand_set_builtin): Take a call instead of arglist, update for
12912 above changes.
12913 (frv_expand_unop_builtin): Ditto.
12914 (frv_expand_binop_builtin): Ditto.
12915 (frv_expand_cut_builtin): Ditto.
12916 (frv_expand_binopimm_builtin): Ditto.
12917 (frv_expand_voidbinop_builtin): Ditto.
12918 (frv_expand_int_void2arg): Ditto.
12919 (frv_expand_prefetches): Ditto.
12920 (frv_expand_voidtriop_builtin): Ditto.
12921 (frv_expand_voidaccop_builtin): Ditto.
12922 (frv_expand_load_builtin): Ditto.
12923 (frv_expand_store_builtin): Ditto.
12924 (frv_expand_mdpackh_builtin): Ditto.
12925 (frv_expand_mclracc_builtin): Ditto.
12926 (frv_expand_mrdacc_builtin): Ditto.
12927 (frv_expand_mwtacc_builtin): Ditto.
12928 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
12929 calls for above.
12930
b639c3c2
JJ
129312007-02-20 Janis Johnson <janis187@us.ibm.com>
12932
12933 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
12934 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
12935 cmpb instruction.
12936 (HAVE_GAS_DFP): Check for assembler support of decimal floating
12937 point instructions.
12938 * configure: Regenerate.
12939 * config.in: Regenerate.
12940 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
12941 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
12942 masks to power6 and power6x and to POWERPC_MASKS.
12943 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12944 _ARCH_PWR6.
12945 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
12946 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
12947 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
12948 Access PROTOTYPE as variable, not mask.
12949
7cd689bc
SB
129502007-02-20 Steven Bosscher <steven@gcc.gnu.org>
12951
12952 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
12953 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
12954 * combine.c (adjust_for_new_dest): Use it.
12955 * postreload.c (reload_combine): Likewise.
12956
ea8f106d
SB
129572007-02-20 Steven Bosscher <steven@gcc.gnu.org>
12958
12959 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
12960 notes on an insn with multiple sets, even if single_set returns
12961 non-NULL for that insn.
12962
8df79ac5
KG
129632007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12964
12965 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
12966 scalbn and scalbln.
12967
32ec6542
GK
129682007-02-20 Geoffrey Keating <geoffk@apple.com>
12969
12970 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
12971 if user didn't pass it.
12972 * config/i386/darwin.h (CC1_SPEC): Likewise.
12973 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
12974 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
12975 -mmacosx-version-min.
12976
0c0d910d
KG
129772007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12978 Uros Bizjak <ubizjak@gmail.com>
12979
12980 * optabs.h (enum optab_index): Add new OTI_scalb.
12981 (scalb_optab): Define corresponding macro.
12982 * optabs.c (init_optabs): Initialize scalb_optab.
12983 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
12984 patterns.
12985 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
12986 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
12987 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
12988 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
12989 flag_unsafe_math_optimizations is set.
12990
12991 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
12992 to implement scalbf, scalb and scalbl built-ins as inline x87
12993 intrinsics.
12994
4e2bae26 129952007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ba7da42a 12996 DJ Delorie <dj@redhat.com>
4e2bae26
MLI
12997
12998 PR other/30824
12999 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
13000 (diagnostic_report_diagnostic): ... here, and turn them into real
13001 errors. If warnings are inhibited, no need to do anything.
13002
6bdcc60c
UB
130032007-02-20 Uros Bizjak <ubizjak@gmail.com>
13004
13005 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
13006 better code generation.
13007
9e4bd0ea
BE
130082007-02-20 Ben Elliston <bje@au.ibm.com>
13009
13010 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
13011
a50aa827
KH
130122007-02-20 Kazu Hirata <kazu@codesourcery.com>
13013
13014 * config/alpha/alpha.c, config/alpha/alpha.md,
13015 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
13016 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
13017 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
13018 config/arm/lib1funcs.asm: Follow spelling conventions.
13019
a7b376ee
KH
13020 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
13021 config/fr30/fr30.md, config/i386/i386.h,
13022 config/iq2000/iq2000.h, config/iq2000/predicates.md,
13023 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
13024 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
13025 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
13026 config/rs6000/altivec.md, config/rs6000/rs6000.c,
13027 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
13028 config/sparc/sparc.c, config/sparc/sparc.h,
13029 config/sparc/sparc.md, config/spu/constraints.md,
13030 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
13031 conventions.
13032
10daf677
AM
130332007-02-20 Alan Modra <amodra@bigpond.net.au>
13034
13035 PR target/29943
13036 * varasm.c (use_blocks_for_decl_p): Return false for decls with
13037 alias attribute.
13038
8af63653
KH
130392007-02-19 Kazu Hirata <kazu@codesourcery.com>
13040
13041 * doc/invoke.texi (-ftree-lrs): Remove.
13042
ac02df49
DN
130432007-02-19 Diego Novillo <dnovillo@redhat.com>
13044
13045 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
13046 NULL.
13047
767fad4c
LM
130482007-02-19 Lee Millward <lee.millward@codesourcery.com>
13049
13050 * config/ia64/ia64.c (ia64_expand_builtin): Use the
2396bce1 13051 new CALL_EXPR_FN macro for retrieving the function
767fad4c 13052 declaration of the input expression.
2396bce1 13053
c116cd05
MLI
130542007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13055
13056 * c.opt (Waddress): New.
13057 * common.opt (Walways-true): Delete.
13058 (Wstring-literal-comparison): Delete.
13059 * doc/invoke.texi (Warning Options): Delete -Walways-true and
13060 -Wstring-literal-comparison. Add -Waddress.
13061 (Waddress): New.
13062 (Walways-true): Delete.
13063 (Wstring-literal-comparison): Delete.
13064 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
13065 consistently instead of -Walways-true in example.
13066 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
13067 * c-typeck.c (parser_build_binary_op): Replace
13068 -Wstring-literal-comparison and -Walways-true with -Waddress.
13069 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
13070 with -Waddress.
2396bce1 13071
459ffad3
EB
130722007-02-19 Eric Botcazou <ebotcazou@adacore.com>
13073
13074 * tree-cfg.c (dump_function_to_file): Be prepared for functions
13075 without DECL_STRUCT_FUNCTION initialized.
13076
df10ee2a
EB
130772007-02-19 Eric Botcazou <ebotcazou@adacore.com>
13078
13079 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
13080 due to calls to functions taking pointers as parameters.
13081
80a3af5b
RH
130822007-02-19 Richard Henderson <rth@redhat.com>
13083
6bdcc60c
UB
13084 PR debug/29558
13085 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
13086 in memory.
80a3af5b 13087
9a6f71b4
AK
130882007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
13089
13090 * config/s390/s390.c (s390_call_saved_register_used,
13091 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
13092 accessed to the new scheme.
13093
991c42ac
JBG
130942007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13095
13096 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
13097 (cris_print_index, cris_print_operand, cris_print_operand_address)
13098 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
13099 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
13100 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
13101 GET_CODE () == xxx.
13102 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
13103 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
13104 GO_IF_LEGITIMATE_ADDRESS): Ditto.
13105 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
13106 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
13107 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
13108 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
13109 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
13110 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
13111 (uminsi3, call, call_value): Ditto.
13112 (define_split: indir_to_reg_split, unnamed): Ditto.
13113
602fea7c
DN
131142007-02-19 Dorit Nuzman <dorit@il.ibm.com>
13115
13116 PR tree-optimization/30975
13117 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
13118 wrong assert.
13119
5646ba12
EC
131202007-02-18 Eric Christopher <echristo@gmail.com>
13121
13122 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
13123 Remove use of arglist.
13124 (mips_expand_builtin): Remove use of arglist, pass in expr.
13125 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
13126 (mips_expand_builtin_movtf): Ditto.
13127 (mips_expand_builtin_compare): Ditto.
13128
30047199
AO
131292007-02-19 Alexandre Oliva <aoliva@redhat.com>
13130
13131 * tree-sra.c (sra_build_assignment): Replace assertion
13132 checking with a comment explaining why it can't be done.
13133
3328fbb7
SL
131342007-02-18 Sandra Loosemore <sandra@codesourcery.com>
13135
13136 PR middle-end/30833
13137 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
13138 during CALL_EXPR representation conversion.
13139 * tree-ssa-propagate.c (set_rhs): Likewise.
13140
eb441084
AO
131412007-02-19 Alexandre Oliva <aoliva@redhat.com>
13142
13143 * tree-sra.c (sra_build_assignment): Disable assertion checking
13144 for now.
13145
b56b9fe3
RS
131462007-02-18 Roger Sayle <roger@eyesopen.com>
13147
13148 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
13149 instead of calling build2 with a GIMPLE_MODIFY_STMT.
13150 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
13151 Likewise.
13152 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
13153 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
13154 gimplify_init_ctor_eval_range, gimple_push_cleanup,
5646ba12 13155 gimplify_omp_for, gimplify_omp_atomic_pipeline,
b56b9fe3
RS
13156 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
13157 force_gimple_operand): Likewise.
13158 * ipa-cp.c (constant_val_insert): Likewise.
13159 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
13160 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
13161 perfect_nestify): Likewise.
13162 * langhooks.c (lhd_omp_assignment): Likewise.
13163 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
13164 lower_copyprivate_clauses, lower_send_clauses,
13165 lower_send_shared_vars, expand_parallel_call,
13166 expand_omp_for_generic, expand_omp_for_static_nochunk,
13167 expand_omp_for_static_chunk, expand_omp_sections,
13168 lower_omp_single_copy, lower_omp_for_lastprivate,
13169 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
13170 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
13171 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
13172 Likewise.
13173
3b962ea0
KH
131742007-02-19 Kazu Hirata <kazu@codesourcery.com>
13175
13176 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
13177 config/sh/sh.md: Follow spelling conventions.
13178
2300b9dd
KH
13179 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
13180 config/frv/predicates.md: Follow spelling conventions.
13181
da08281c
KH
13182 * config/m68k/linux-unwind.h: Fix a comment typo.
13183 * target.h: Follow spelling conventions.
13184
49e7a9d4
RS
131852007-02-18 Roger Sayle <roger@eyesopen.com>
13186
13187 PR rtl-optimization/28173
13188 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
13189 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
13190 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
13191 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
13192 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
13193
2b5e5642
KG
131942007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13195
13196 * builtins.c (fold_builtin_load_exponent): New.
13197 (fold_builtin_2): Use it.
13198
8800a9b3
SB
131992007-02-18 Steven Bosscher <steven@gcc.gnu.org>
13200
13201 PR rtl-optimization/30773
13202 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
13203 if we fail to attach a REG_EQUIV note.
13204
03f79051
DE
132052007-02-18 David Edelsohn <edelsohn@gnu.org>
13206 Roger Sayle <roger@eyesopen.com>
13207
13208 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
13209
078a18a4
SL
132102007-02-18 Sandra Loosemore <sandra@codesourcery.com>
13211
13212 * calls.c (initialize_argument_information): Pass original EXP
13213 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
13214 code to split complex arguments here, as part of initializing the
13215 ARGS array.
13216 (expand_call): Remove code that builds a list of arguments and
13217 inserts implicit arguments into it. Instead, just count how many
13218 implicit arguments there will be so we can determine the size of
13219 the ARGS array, and let initialize_argument_information do the work.
13220 (split_complex_values): Delete unused function.
13221
483edb92
EB
132222007-02-18 Eric Botcazou <ebotcazou@adacore.com>
13223
13224 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
13225
ae22dcff
EB
132262007-02-18 Eric Botcazou <ebotcazou@adacore.com>
13227
13228 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
13229 for arg pointer based indexed addressing.
13230
27a9b99d
KH
132312007-02-18 Kazu Hirata <kazu@codesourcery.com>
13232
13233 * config/ia64/ia64.h, config/ia64/ia64.md,
13234 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
13235 spelling conventions.
13236
01e304f8
RZ
132372007-02-18 Roman Zippel <zippel@linux-m68k.org>
13238
13239 * config/m68k/m68k.c (split_di): New.
13240 * config/m68k/m68k-protos.h: Declare split_di.
13241 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
13242 Improve predicate handling and split constant shifts.
13243
3670ec28
RZ
132442007-02-18 Roman Zippel <zippel@linux-m68k.org>
13245
13246 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
13247 parameter for register bitfield operations, general predicates
13248 cleanup
13249
19a95697
RZ
132502007-02-18 Roman Zippel <zippel@linux-m68k.org>
13251
13252 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
13253 * config/m68k/linux-unwind.h: New file.
13254
ea2c620c
KH
132552007-02-18 Kazu Hirata <kazu@codesourcery.com>
13256
13257 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
13258 config/i386/athlon.md, config/ia64/ia64.md,
13259 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
13260 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
13261 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
13262 tree-ssa-loop-niter.c, tree-vect-analyze.c,
13263 tree-vect-transform.c: Fix comment typos.
13264
51db94a0
KH
132652007-02-17 Kazu Hirata <kazu@codesourcery.com>
13266
13267 * sched-deps.c (find_insn_list): Remove.
13268 * sched-int.h: Remove the prototype for find_insn_list.
13269
982afe02
GK
132702007-02-16 Geoffrey Keating <geoffk@apple.com>
13271
e4cad568
GK
13272 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
13273 to linker.
13274 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
13275 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
13276 darwin_rs6000_override_options.
13277 (C_COMMON_OVERRIDE_OPTIONS): Expect
13278 darwin_macosx_version_min to be non-NULL always.
13279 (TARGET_C99_FUNCTIONS): Likewise.
13280 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
13281 (DARWIN_MINVERSION_SPEC): New.
13282 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
13283 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
5646ba12 13284 to cc1*.
e4cad568
GK
13285 (DARWIN_MINVERSION_SPEC): New.
13286 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
13287 value.
13288 * config/darwin-c.c (darwin_cpp_builtins): Expect
13289 darwin_macosx_version_min to be non-NULL always.
13290
982afe02
GK
13291 * config/rs6000/rs6000.c: Clean up trailing whitespace.
13292
fa681e39
UB
132932007-02-16 Uros Bizjak <ubizjak@gmail.com>
13294
13295 * config/i386/i386.h (x86_use_xchgb): New.
13296 (TARGET_USE_XCHGB): New macro.
13297 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
13298 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
13299 Split after reload into bswaphi for shifts of 8.
13300 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
13301 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
13302 or when optimizing for size.
5646ba12 13303
421076b5 133042007-02-16 Richard Guenther <rguenther@suse.de>
fa681e39 13305 Christian Bruel <christian.bruel@st.com>
421076b5
RG
13306
13307 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
13308 DECLs but prefer SSA_NAMEs over DECLs.
13309
40b448ef
RG
133102007-02-16 Richard Guenther <rguenther@suse.de>
13311
13312 * tree-flow-inline.h (single_imm_use_p): Remove.
13313 (zero_imm_uses_p): Likewise.
13314 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
13315 instead of single_imm_use_p.
13316 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
13317 zero_imm_uses_p.
13318
70d0631e
RW
133192007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13320
13321 PR other/27843
13322 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
13323 nested double- and backquotes.
13324
939409af
RS
133252007-02-15 Roger Sayle <roger@eyesopen.com>
13326
13327 PR middle-end/30391
13328 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
13329 should be unreachable.
13330 (build2_stat): Allow construction of MODIFY_EXPR at any time.
13331 For the time being redirect GIMPLE_MODIFY_STMT to the new
13332 (renamed) build_gimple_modify_stmt_stat.
13333 (build2_gimple_stat): Rename to...
13334 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
13335 Always build a GIMPLE_MODIFY_STMT node.
13336 * tree.h (build2_gimple, build2_gimple_stat): Delete.
13337 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
13338 declarations.
13339
13340 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
13341 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
13342 * tree-complex.c (set_component_ssa_name, expand_complex_move,
13343 expand_complex_div_wide): Likewise.
13344 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
13345 * tree-ssa-loop-im.c (schedule_sm): Likewise.
13346 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
13347 * tree-ssa-loop-manip.c (create_iv): Likewise.
13348 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
13349 abs_replacement): Likewise.
13350 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
13351 realify_fake_stores): Likewise.
13352
13353 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
13354 node rather than a GIMPLE_MODIFY_STMT node.
13355 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
13356 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
13357 Likewise.
13358 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
13359 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
13360 GIMPLE_MODIFY_STMT.
13361
3c32c87f
AP
133622007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13363
13364 PR middle-end/30433
13365 * fold-const.c (fold_comparison): Add back the
13366 folding of constant complex comparisions.
13367
d3d6f724
AP
133682007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13369
13370 PR middle-end/30729
13371 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
13372 effects unknown to this function, return early.
13373
73663bb7
ILT
133742007-02-15 Ian Lance Taylor <iant@google.com>
13375
13376 * lower-subreg.c (move_eh_region_note): New static function.
13377 (resolve_simple_move): Call it.
13378 (decompose_multiword_subregs): Track blocks for which we resolve a
13379 simple move which is also a control flow insn. Pass them to
13380 find_many_sub_basic_blocks.
13381 (pass_lower_subreg): Add TODO_verify_flow.
13382 (pass_lower_subreg2): Likewise.
13383
5039610b
SL
133842007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13385 Brooks Moses <brooks.moses@codesourcery.com>
13386 Lee Millward <lee.millward@codesourcery.com>
13387
13388 * tree.h (enum tree_code_class): Add tcc_vl_exp.
13389 (VL_EXP_CLASS_P): New.
13390 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
13391 TREE_CODE_LENGTH.
13392 (TREE_OPERAND_CHECK_CODE): Likewise.
13393 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
13394 (TREE_RTL_OPERAND_CHECK): Likewise.
13395 (tree_operand_check_failed): Make second parameter the whole tree
13396 instead of its code. Fixed callers.
13397 (VL_EXP_CHECK): New.
13398 (TREE_OPERAND_LENGTH): New.
13399 (VL_EXP_OPERAND_LENGTH): New.
13400 (CALL_EXPR_FN): New.
13401 (CALL_EXPR_STATIC_CHAIN): New.
13402 (CALL_EXPR_ARGS): New.
13403 (CALL_EXPR_ARG): New.
13404 (call_expr_nargs): New.
13405 (CALL_EXPR_ARGP): New.
13406 (build_nt_call_list): Declare.
13407 (build_vl_exp_stat): Declare.
13408 (build_vl_exp): New.
13409 (build_call_list): Declare.
13410 (build_call_nary): Declare.
13411 (build_call_valist): Declare.
13412 (build_call_array): Declare.
13413 (call_expr_arg): Declare.
13414 (call_expr_argp): Declare.
13415 (call_expr_arglist): Declare.
13416 (fold_build_call_list): Declare.
13417 (fold_build_call_list_initializer): Declare.
13418 (fold_call_expr): Declare to replace fold_builtin.
13419 (fold_builtin_fputs): Update to agree with modified definition.
13420 (fold_builtin_strcpy): Likewise.
13421 (fold_builtin_strncpy): Likewise.
13422 (fold_builtin_memory_chk): Likewise.
13423 (fold_builtin_stxcpy_chk): Likewise.
13424 (fold_builtin_strncpy_chk): Likewise.
13425 (fold_builtin_next_arg): Likewise.
13426 (fold_build_call_expr): Declare.
13427 (fold_builtin_call_list): Declare.
13428 (fold_builtin_call_valist): Declare.
13429 (build_call_expr): Declare.
13430 (validate_arglist): Update to agree with modified definition.
13431 (tree_operand_length): New.
13432 (call_expr_arg_iterator): New.
13433 (init_call_expr_arg_iterator): New.
13434 (next_call_expr_arg): New.
13435 (first_call_expr_arg): New.
13436 (more_call_expr_args_p): New.
13437 (FOR_EACH_CALL_EXPR_ARG): New.
13438
13439 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
13440 and tcc_gimple_stmt.
13441 (tree_code_size): Update documentation. Use sizeof (tree) rather
13442 than sizeof (char *).
13443 (tree_size): Likewise. Add case for tcc_vl_exp.
13444 (tree_node_structure): Add case for tcc_vl_exp.
13445 (contains_placeholder_p): Likewise.
13446 (substitute_in_expr): Likewise.
13447 (substitute_placeholder_in_expr): Likewise.
13448 (stabilize_reference_1): Likewise.
13449 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
13450 to diagnose breakage of this interface for constructing CALL_EXPRs.
13451 (build_nt): Add similar assertion here.
13452 (build_nt_call_list): New.
13453 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
13454 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
13455 TREE_CODE_LENGTH.
13456 (get_callee_fndecl): Use new CALL_EXPR accessors.
13457 (tree_operand_check_failed): Change parameters to pass entire node
13458 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
13459 (process_call_operands): New.
13460 (build_vl_exp_stat): New.
13461 (build_call_list): New.
13462 (build_call_nary): New.
13463 (build_call_valist): New.
13464 (build_call_array): New.
13465 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13466 (call_expr_arglist): New.
13467
13468 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
13469 tcc_vl_exp instead of a fixed-size tcc_expression.
13470
13471 * doc/c-tree.texi (CALL_EXPR): Document new representation and
13472 accessors for CALL_EXPRs.
13473 (AGGR_INIT_EXPR): Likewise.
13474
134752007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13476 Brooks Moses <brooks.moses@codesourcery.com>
13477 Lee Millward <lee.millward@codesourcery.com>
13478
13479 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
13480 (expand_builtin_nonlocal_goto): Change parameter to be entire
13481 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
13482 (expand_builtin_prefetch): Likewise.
13483 (expand_builtin_classify_type): Likewise.
13484 (mathfn_built_in): Return NULL_TREE instead of 0.
13485 (expand_errno_check): Use new CALL_EXPR accessors.
13486 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
13487 Return NULL_RTX instead of 0.
13488 (expand_builtin_mathfn_2): Likewise.
13489 (expand_builtin_mathfn_3): Likewise.
13490 (expand_builtin_interclass_mathfn): Likewise.
13491 (expand_builtin_sincos): Likewise.
13492 (expand_builtin_cexpi): Likewise.
13493 (expand_builtin_int_roundingfn): Likewise.
13494 (expand_builtin_int_roundingfn_2): Likewise.
13495 (expand_builtin_pow): Likewise.
13496 (expand_builtin_powi): Likewise.
13497 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
13498 of arglist, fixing callers appropriately. Use new CALL_EXPR
13499 accessors and constructors. Return NULL_RTX instead of 0.
13500 (expand_builtin_strstr): Likewise.
13501 (expand_builtin_strchr): Likewise.
13502 (expand_builtin_strrchr): Likewise.
13503 (expand_builtin_strpbrk): Likewise.
13504 (expand_builtin_memcpy): Likewise.
13505 (expand_builtin_mempcpy): Likewise.
13506 (expand_builtin_mempcpy_args): New.
13507 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
13508 (expand_builtin_memmove_args): New.
13509 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
13510 (expand_movstr): Likewise.
13511 (expand_builtin_strcpy): Likewise.
13512 (expand_builtin_strcpy_args): New.
13513 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
13514 (expand_builtin_strncpy): Likewise.
13515 (expand_builtin_memset): Likewise.
13516 (expand_builtin_memset_args): New.
13517 (expand_builtin_bzero): Similarly to expand_builtin_memset.
13518 (expand_builtin_memcmp): Likewise.
13519 (expand_builtin_strcmp): Likewise.
13520 (expand_builtin_strncmp): Likewise.
13521 (expand_builtin_strcat): Likewise.
13522 (expand_builtin_strncat): Likewise.
13523 (expand_builtin_strspn): Likewise.
13524 (expand_builtin_strcspn): Likewise.
13525 (expand_builtin_args_info): Likewise.
13526 (expand_builtin_va_start): Likewise.
13527 (gimplify_va_arg_expr): Likewise.
13528 (expand_builtin_va_end): Likewise.
13529 (expand_builtin_va_copy): Likewise.
13530 (expand_builtin_frame_address): Likewise.
13531 (expand_builtin_alloca): Likewise.
13532 (expand_builtin_bswap): Likewise.
13533 (expand_builtin_unop): Likewise.
13534 (expand_builtin_fputs): Likewise.
13535 (expand_builtin_expect): Likewise.
13536 (expand_builtin_fabs): Likewise.
13537 (expand_builtin_copysign): Likewise.
13538 (expand_builtin_printf): Likewise.
13539 (expand_builtin_fprintf): Likewise.
13540 (expand_builtin_sprintf): Likewise.
13541 (expand_builtin_init_trampoline): Likewise.
13542 (expand_builtin_signbit): Likewise.
13543 (expand_builtin_fork_or_exec): Likewise.
13544 (expand_builtin_sync_operation): Likewise.
13545 (expand_builtin_compare_and_swap): Likewise.
13546 (expand_builtin_lock_test_and_set): Likewise.
13547 (expand_builtin_lock_release): Likewise.
13548 (expand_builtin): Likewise.
13549 (builtin_mathfn_code): Likewise.
13550
13551 (fold_builtin_constant_p): Pass call arguments individually instead
13552 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
13553 accessors and constructors. Return NULL_TREE instead of 0.
13554 (fold_builtin_expect): Likewise.
13555 (fold_builtin_classify_type): Likewise.
13556 (fold_builtin_strlen): Likewise.
13557 (fold_builtin_nan): Likewise.
13558 (integer_valued_real_p): Likewise.
13559 (fold_trunc_transparent_mathfn): Likewise.
13560 (fold_fixed_mathfn): Likewise.
13561 (fold_builtin_cabs): Likewise.
13562 (fold_builtin_sqrt): Likewise.
13563 (fold_builtin_cbrt): Likewise.
13564 (fold_builtin_cos): Likewise.
13565 (fold_builtin_cosh): Likewise.
13566 (fold_builtin_tan): Likewise.
13567 (fold_builtin_sincos): Likewise.
13568 (fold_builtin_cexp): Likewise.
13569 (fold_builtin_trunc): Likewise.
13570 (fold_builtin_floor): Likewise.
13571 (fold_builtin_ceil): Likewise.
13572 (fold_builtin_round): Likewise.
13573 (fold_builtin_int_roundingfn): Likewise.
13574 (fold_builtin_bitop): Likewise.
13575 (fold_builtin_bswap): Likewise.
13576 (fold_builtin_logarithm): Likewise.
13577 (fold_builtin_hypot): Likewise.
13578 (fold_builtin_pow): Likewise.
13579 (fold_builtin_powi): Likewise.
13580 (fold_builtin_exponent): Likewise.
13581 (fold_builtin_memset): Likewise.
13582 (fold_builtin_bzero): Likewise.
13583 (fold_builtin_memory_op): Likewise.
13584 (fold_builtin_bcopy): Deleted; call site changed to invoke
13585 fold_builtin_memory_op directly.
13586 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
13587 (fold_builtin_strncpy): Likewise.
13588 (fold_builtin_memcmp): Likewise.
13589 (fold_builtin_strcmp): Likewise.
13590 (fold_builtin_strncmp): Likewise.
13591 (fold_builtin_signbit): Likewise.
13592 (fold_builtin_copysign): Likewise.
13593 (fold_builtin_isascii): Likewise.
13594 (fold_builtin_toascii): Likewise.
13595 (fold_builtin_isdigit): Likewise.
13596 (fold_builtin_fabs): Likewise.
13597 (fold_builtin_abs): Likewise.
13598 (fold_builtin_fmin_fmax): Likewise.
13599 (fold_builtin_carg): Likewise.
13600 (fold_builtin_classify): Likewise.
13601 (fold_builtin_unordered_cmp): Likewise.
13602
13603 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
13604 New functions split out from fold_builtin_1.
13605 (fold_builtin_n): New.
13606 (fold_builtin_varargs): New.
13607 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
13608 instead.
13609 (fold_call_expr): New.
13610 (build_function_call_expr): Rewrite to use new helper function.
13611 (fold_builtin_call_list): New.
13612 (build_call_expr): New.
13613 (fold_builtin_call_valist): New.
13614 (rewrite_call_expr): New.
13615 (validate_arg): New.
13616 (validate_arglist): Change parameter to be entire CALL_EXPR instead
13617 of an arglist. Change return type to bool. Use new CALL_EXPR
13618 accessors.
13619
13620 (fold_builtin_strstr): Pass call arguments individually instead
13621 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
13622 accessors and constructors. Return NULL_TREE instead of 0.
13623 (fold_builtin_strchr): Likewise.
13624 (fold_builtin_strrchr): Likewise.
13625 (fold_builtin_strpbrk): Likewise.
13626 (fold_builtin_strcat): Likewise.
13627 (fold_builtin_strncat): Likewise.
13628 (fold_builtin_strspn): Likewise.
13629 (fold_builtin_strcspn): Likewise.
13630 (fold_builtin_fputs): Likewise.
13631 (fold_builtin_next_arg): Likewise.
13632 (fold_builtin_sprintf): Likewise.
13633
13634 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
13635 NULL_RTX instead of 0.
13636 (expand_builtin_memory_chk): Likewise.
13637 (maybe_emit_chk_warning): Likewise.
13638 (maybe_emit_sprintf_chk_warning): Likewise.
13639
13640 (fold_builtin_object_size): Pass call arguments individually instead
13641 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
13642 accessors and constructors. Return NULL_TREE instead of 0.
13643 (fold_builtin_memory_chk): Likewise.
13644 (fold_builtin_stxcpy_chk): Likewise.
13645 (fold_builtin_strncpy_chk): Likewise.
13646 (fold_builtin_strcat_chk): Likewise.
13647 (fold_builtin_strcat_chk): Likewise.
13648 (fold_builtin_strncat_chk): Likewise.
13649 (fold_builtin_sprintf_chk): Likewise.
13650 (fold_builtin_snprintf_chk): Likewise.
13651 (fold_builtin_printf): Likewise.
13652 (fold_builtin_vprintf): Likewise.
13653
13654 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
13655 constructors.
13656 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
13657 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13658 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
13659 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
13660 (fold_unary): Likewise.
13661 (fold_binary): Likewise.
13662 (fold_ternary): Remove CALL_EXPR case, since they are no longer
13663 ternary expressions.
13664 (fold): Add logic for tcc_vl_exp.
13665 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
13666 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13667 (fold_build3_stat): Add assertion to flag broken interface for
13668 constructing CALL_EXPRs.
13669 (fold_build_call_list): New.
13670 (fold_build_call_list_initializer): New.
13671 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
13672 constructors.
13673 (fold_strip_sign_ops): Likewise.
13674
136752007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13676 Brooks Moses <brooks.moses@codesourcery.com>
13677 Lee Millward <lee.millward@codesourcery.com>
13678
13679 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
13680 accessors and dump arguments explicitly.
13681
13682 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
13683 TREE_CODE_LENGTH.
13684 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
13685 explicitly.
13686 (print_call_name): Use new CALL_EXPR accessors.
13687
13688 * print-tree.c (print_node): Add case tcc_vl_exp. Print
13689 CALL_EXPR arguments explicitly instead of as a list. Use
13690 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13691
13692 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
13693 (vrp_visit_stmt): Likewise.
13694
13695 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
13696 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
13697 TREE_CODE_LENGTH.
13698 (force_move_till_expr): Likewise.
13699
13700 * targhooks.c (default_external_stack_protect_fail): Use
13701 build_call_expr instead of build_function_call_expr.
13702 (default_hidden_stack_protect_fail): Likewise.
13703
13704 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
13705 build the call.
13706
13707 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
13708 and walk arguments explicitly.
13709
13710 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
13711 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13712 (expand_simple_operations): Likewise.
13713 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
13714
13715 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
13716 of TREE_CODE_LENGTH.
13717 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
13718
13719 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
13720 instead of TREE_CODE_LENGTH.
13721
13722 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
13723 (tree_ic_transform): Likewise.
13724 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
13725 parameter instead of arglist. Fix callers.
13726 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
13727 (tree_stringops_transform): Likewise.
13728 (tree_indirect_call_to_profile): Likewise.
13729 (tree_stringops_values_to_profile): Likewise.
13730
13731 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
13732 (eliminate_tail_call): Likewise.
13733
13734 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
13735
13736 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13737 Use TREE_OPERAND_LENGTH and generalize to handle any number of
13738 operands.
13739 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
13740
13741 * omp-low.c (build_omp_barrier): Use build_call_expr.
13742 (lower_rec_input_clauses): Likewise.
13743 (lower_reduction_clauses): Likewise.
13744 (expand_parallel_call): Likewise.
13745 (maybe_catch_exception): Likewise.
13746 (expand_omp_for_generic): Likewise.
13747 (expand_omp_for_static_nochunk): Likewise.
13748 (expand_omp_sections): Likewise.
13749 (lower_omp_single_simple): Likewise.
13750 (lower_omp_single_copy): Likewise.
13751 (lower_omp_master): Likewise.
13752 (lower_omp_ordered): Likewise.
13753 (lower_omp_critical): Likewise.
13754
13755 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
13756 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
13757
13758 * tree-gimple.c (is_gimple_call_addr): Fix doc.
13759 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
13760 TREE_CODE_LENGTH. Add tcc_vl_exp case.
13761
13762 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
13763 and generalize to handle any number of operands.
13764 (chrec_contains_undetermined): Likewise.
13765 (tree_contains_chrecs): Likewise.
13766 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
13767
13768 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
13769
13770 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
13771 fold_call_expr instead of fold_builtin.
13772 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
13773 match declarations there.
13774 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
13775 updates.
13776
13777 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
13778 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13779
13780 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
13781 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
13782
13783 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
13784 accessors.
13785
13786 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
13787 (execute_cse_sincos): Use new CALL_EXPR accessors.
13788
13789 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
13790
13791 * gimple-low.c (lower_function_body): Use build_call_expr.
13792 (lower_builtin_setjmp): Likewise.
13793
13794 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
13795 (set_storage_via_libcall): Likewise.
13796 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
13797 instead of TREE_CODE_LENGTH.
13798 (expand_expr_real_1): Use new CALL_EXPR accessors.
13799
13800 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
13801 generalize to handle any number of operands.
13802 (TB_parent_eq): Likewise.
13803
13804 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
13805 (strip_builtin_expect): Likewise.
13806
13807 * function.c (gimplify_parameters): Use build_call_expr.
13808
7e08fa35
UB
13809 * tree-vectorizer.c (vect_is_simple_reduction): Use
13810 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
5039610b
SL
13811
13812 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
13813 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
13814
13815 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
13816 iterators.
13817
13818 * gimplify.c (build_stack_save_restore): Use build_call_expr.
13819 (gimplify_decl_expr): Likewise.
13820 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
13821 Use new CALL_EXPR iterators.
13822 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
13823 (gimplify_modify_expr_to_memset): Likewise.
13824 (gimplify_variable_sized_compare): Likewise.
13825 (gimplify_omp_atomic_fetch_op): Likewise.
13826 (gimplify_omp_atomic_pipeline): Likewise.
13827 (gimplify_omp_atomic_mutex): Likewise.
13828 (gimplify_function_tree): Likewise.
13829
13830 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
13831 (call_expr_flags): Likewise.
13832 (expand_call): Likewise.
13833
13834 * except.c (expand_builtin_eh_return_data_regno): Pass entire
5646ba12 13835 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
6bdcc60c 13836 accessors.
5039610b
SL
13837
13838 * coverage.c (create_coverage): Use build_call_expr.
13839
13840 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
13841 (temp_call_expr_obstack): New.
13842 (pool_copy_list): Delete.
13843 (temp_copy_call_expr): New.
13844 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
13845 CALL_EXPR accessors. Get rid of special goo for copying argument
13846 lists and use temp_copy_call_expr instead.
13847 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
13848 CALL_EXPR accessors.
13849 (create_expression_by_pieces): Likewise. Use build_call_array
13850 to construct the result instead of fold_build3.
13851 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
13852 dealing with argument lists.
13853 (init_pre): Remove references to expression_node_pool and
13854 list_node_pool. Init temp_call_expr_obstack instead.
13855 (fini_pre): Remove references to expression_node_pool and
13856 list_node_pool.
13857
13858 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
13859 and walk arguments explicitly instead of as a list.
13860
13861 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
13862 (mx_register_decls): Likewise.
13863 (mudflap_register_call): Likewise.
13864 (mudflap_finish_file): Likewise.
13865
13866 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
13867 (ipa_callsite_compute_param): Likewise.
13868
13869 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
13870 accessors and constructor.
13871
13872 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
13873 accessors and constructor.
5646ba12 13874 (convert_tramp_reference): Likewise.
5039610b
SL
13875 (convert_call_expr): Likewise.
13876 (finalize_nesting_tree_1): Likewise.
13877
13878 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
13879 accessors.
13880
13881 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
13882
13883 * tree-inline.c (initialize_inlined_parameters): Pass entire
13884 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
13885 accessors.
13886 (estimate_num_insns_1): Use new CALL_EXPR accessors.
13887 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
13888
13889 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
13890 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13891 (vectorizable_reduction): Likewise.
13892 (vectorizable_call): Use new CALL_EXPR iterators.
13893 (vectorizable_conversion): Use build_call_expr.
13894 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
13895 (vect_gen_widened_results_half): Use build_call_expr.
13896 (vect_setup_realignment): Likewise.
13897 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
13898
13899 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
13900 (pass_through_call): Likewise.
13901 (compute_object_sizes): Likewise. Use fold_call_expr instead of
13902 fold_builtin.
13903
13904 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
13905 (tree_gen_pow2_profiler): Likewise.
13906 (tree_gen_one_value_profiler): Likewise.
13907 (tree_gen_ic_func_profiler): Likewise.
13908 (tree_gen_average_profiler): Likewise.
13909 (tree_gen_ior_profiler): Likewise.
13910
13911 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
13912 (find_func_aliases): Use new CALL_EXPR accessors. Add case
13913 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13914
13915 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
13916 of TREE_CODE_LENGTH.
13917
13918 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
13919 of TREE_CODE_LENGTH.
13920
13921 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
13922 constructor.
13923 (convert_to_integer): Likewise.
13924
13925 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
13926 accessors.
13927
139282007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13929 Brooks Moses <brooks.moses@codesourcery.com>
13930 Lee Millward <lee.millward@codesourcery.com>
13931
13932 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
13933 accessors.
13934 * config/frv/frv.c (frv_expand_builtin): Likewise.
13935 * config/s390/s390.c (s390_expand_builtin): Likewise.
13936
13937 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
13938 (sparc_expand_builtin): Use new CALL_EXPR accessors.
13939
13940 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
13941 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
13942 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
13943 (ix86_expand_store_builtin): Likewise.
13944 (ix86_expand_unop_builtin): Likewise.
13945 (ix86_expand_unop1_builtin): Likewise.
13946 (ix86_expand_sse_compare): Likewise.
13947 (ix86_expand_sse_comi): Likewise.
13948 (ix86_expand_vec_init_builtin): Likewise.
13949 (ix86_expand_vec_ext_builtin): Likewise.
13950 (ix86_expand_vec_set_builtin): Likewise.
13951 (ix86_expand_builtin): Use new CALL_EXPR accessors.
13952
13953 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
13954 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
13955
13956 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
13957 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
13958 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
13959
13960 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
13961 build_call_expr.
13962 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
13963 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
13964 arglist. Use new CALL_EXPR accessors. Fix callers.
13965 (altivec_expand_abs_builtin): Likewise.
13966 (rs6000_expand_binop_builtin): Likewise.
13967 (altivec_expand_predicate_builtin): Likewise.
13968 (altivec_expand_lv_builtin): Likewise.
13969 (spe_expand_stv_builtin): Likewise.
13970 (altivec_expand_stv_builtin): Likewise.
13971 (rs6000_expand_ternop_builtin): Likewise.
13972 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
13973 (altivec_expand_st_builtin): Likewise.
13974 (altivec_expand_dst_builtin): Likewise.
13975 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
13976 arglist. Use new CALL_EXPR accessors. Fix callers.
13977 (altivec_expand_vec_set_builtin): Likewise.
13978 (altivec_expand_vec_ext_builtin): Likewise.
13979 (altivec_expand_builtin): Use new CALL_EXPR accessors.
13980 (spe_expand_builtin): Likewise.
13981 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
13982 arglist. Use new CALL_EXPR accessors. Fix callers.
13983 (spe_expand_evsel_builtin): Likewise.
13984 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
13985 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
13986
13987 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
13988 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
13989 (arm_expand_unop_builtin): Likewise.
13990 (arm_expand_builtin): Use new CALL_EXPR accessors.
13991
13992 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
13993 accessors.
13994
7e08fa35
UB
13995 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
13996 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
13997 Fix callers.
5039610b
SL
13998 (bfin_expand_unop_builtin): Likewise.
13999 (bfin_expand_builtin): Use new CALL_EXPR accessors.
14000
140012007-02-15 Sandra Loosemore <sandra@codesourcery.com>
14002 Brooks Moses <brooks.moses@codesourcery.com>
14003 Lee Millward <lee.millward@codesourcery.com>
14004
14005 * c-semantics.c (build_stmt): Add internal diagnostic check.
14006
14007 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
14008 accessors. Print arguments explicitly instead of as a list.
14009
14010 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
14011
14012 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
14013 (c_finish_omp_flish): Likewise.
14014
14015 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
14016 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
14017 instead of TREE_CODE_LENGTH.
14018 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
14019 (c_warn_unused_result): Likewise.
14020
dc90f45b
MLI
140212007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14022
14023 PR c/26494
14024 * doc/invoke.texi (Warning Options): Remove
14025 -Werror-implicit-function-declaration.
14026 (Wimplicit-function-declaration): Update description.
14027 * opts.c (common_handle_option): Move handling of -Werror=* to...
14028 (enable_warning_as_error): ...here.
14029 * opts.h (enable_warning_as_error): Declare.
14030 * c-decl.c (implicit_decl_warning): Unless
14031 -Wno-implicit-function-declaration is given, emit a pedwarn if
14032 -std=c99 or emit a warning if -Wimplicit-function-declaration.
14033 * c.opt (Wimplicit-function-declaration): Replace
14034 mesg_implicit_function_declaration with
14035 warn_implicit_function_declaration.
14036 * c-opts.c (c_common_handle_option):
14037 -Werror-implicit-function-declaration is exactly equal as
14038 -Werror=implicit-function-declaration.
14039 (set_Wimplicit): Replace mesg_implicit_function_declaration with
14040 warn_implicit_function_declaration.
14041 (c_common_post_options): -Wimplict-function-declaration is enabled
14042 by default by -std=c99, otherwise is disabled by default.
14043 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
14044
f173837a
EB
140452007-02-15 Eric Botcazou <ebotcazou@adacore.com>
14046
14047 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
14048 DECL on the rhs to a DECL on the lhs for debug info purposes if the
14049 former is ignored but not the latter.
14050
befdad07
EB
140512007-02-15 Eric Botcazou <ebotcazou@adacore.com>
14052
14053 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
14054 is made and the reference doesn't use the alias set of its type,
14055 do not create the temporary using that type.
14056
eab79d78
AH
140572007-02-15 Aldy Hernandez <aldyh@redhat.com>
14058
14059 * jump.c: Remove prototypes for delete_computation and
14060 delete_prior_computation.
14061
c47277a6
PB
140622007-02-15 Paolo Bonzini <bonzini@gnu.org>
14063
14064 * jump.c (get_label_after): Delete.
14065 (get_label_before, delete_computation, delete_jump,
14066 delete_prior_computation, follow_jumps): Move...
14067 * reorg.c (delete_computation, delete_prior_computation): ... here...
14068 (get_label_before, delete_jump): ... making these static ...
14069 (follow_jumps): ... and simplifying this since it only runs after
14070 reload.
14071 * rtl.h (get_label_after, get_label_before, delete_jump,
14072 follow_jumps): Delete prototypes.
14073
ed765125
PB
140742007-02-15 Paolo Bonzini <bonzini@gnu.org>
14075
14076 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
5646ba12 14077
c1a1cc5f
NC
140782007-02-15 Nick Clifton <nickc@redhat.com>
14079
14080 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
14081 order to prevent it from being munged by the target.
14082
62e4530b
UB
140832007-02-15 Uros Bizjak <ubizjak@gmail.com>
14084
14085 * config/i386/i386.md: Remove misleading comment.
14086
f4f81a66
AO
140872007-02-15 Alexandre Oliva <aoliva@redhat.com>
14088
14089 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
14090 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
14091 invalid patterns.
14092
45f94ec7
AO
140932007-02-15 Alexandre Oliva <aoliva@redhat.com>
14094
14095 * tree-sra.c (instantiate_missing_elements): Canonicalize
14096 bit-field types.
14097 (sra_build_assignment): New.
14098 (generate_copy_inout, generate_element_copy,
14099 generate_element_zero, generate_one_element_init): Use it.
14100
141012007-02-15 Alexandre Oliva <aoliva@redhat.com>
14102
14103 * tree-sra.c (instantiate_missing_elements): Canonicalize
14104 bit-field types.
14105 (sra_build_assignment): New.
14106 (generate_copy_inout, generate_element_copy,
14107 generate_element_zero, generate_one_element_init): Use it.
14108
db9e0d2a
AO
141092007-02-15 Alexandre Oliva <aoliva@redhat.com>
14110
14111 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
14112 limbo die nodes.
14113
07cb6e8c
JM
141142007-02-14 Joseph Myers <joseph@codesourcery.com>
14115
14116 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
14117 types as aggregates not scalars.
14118 * function.c (assign_stack_temp_for_type): Likewise.
14119
702f9d78
ZD
141202007-02-14 Roger Sayle <roger@eyesopen.com>
14121 Zdenek Dvorak <dvorakz@suse.cz>
14122
14123 * tree-dump.c (dump_switch_p_1): Require exact match of the option
14124 name.
14125
3d882990
ZD
141262007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
14127
14128 * passes.c (next_pass_1): Clear the next field of the copied
14129 pass structure.
14130
029f45bd
RH
141312007-02-14 Richard Henderson <rth@redhat.com>
14132
14133 * tree-sra.c (early_sra): New.
14134 (decl_can_be_decomposed_p): Deny va_list if early_sra.
14135 (tree_sra_early, pass_sra_early): New.
14136 * tree-pass.h (pass_sra_early): Declare.
14137 * passes.c (init_optimization_passes): Use it.
14138
c4e74b1a
RB
141392007-02-14 Richard Guenther <rguenther@suse.de>
14140
14141 * flags.h (issue_strict_overflow_warning): Convert to a macro.
14142
141432007-02-14 Dorit Nuzman <dorit@il.ibm.com>
932eea3d
DN
14144
14145 PR tree-optimization/30771
14146 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
14147 also phi nodes.
14148 (vect_analyze_operations): Induction phis can now be marked as
14149 used_in_loop.
14150 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
14151 Update documentation accordingly.
14152
8225879c
NC
141532007-02-14 Nick Clifton <nickc@redhat.com>
14154
14155 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
14156 most 3 arguments are supported.
14157 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
14158
5ce02e40
SP
141592007-02-13 Seongbae Park <seongbae.park@gmail.com>
14160
3d882990
ZD
14161 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
14162 Ensure dst->current is valid.
5ce02e40 14163
c147eacb
PB
141642007-02-13 Paul Brook <paul@codesourcery.com>
14165
14166 * config.gcc: Add arm*-*-uclinux-*eabi.
14167 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
14168 (SUBTARGET_EXTRA_LINK_SPEC): Define.
14169 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
14170 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
14171 (LINK_SPEC): Define.
14172 (LIB_SPEC): Define.
14173 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
14174 register.
14175 * config/arm/uclinux-eabi.h: New file.
14176 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
14177 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
14178 based targets.
14179
6ac01510
ILT
141802007-02-13 Ian Lance Taylor <iant@google.com>
14181
14182 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
14183 * flags.h (warn_strict_overflow): Declare.
14184 (enum warn_strict_overflow_code): Define.
14185 (issue_strict_overflow_warning): New static inline function.
14186 * opts.c (warn_strict_overflow): New variable.
14187 (common_handle_option): Handle OPT_Wstrict_overflow and
14188 OPT_Wstrict_overflow_.
14189 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
14190 OPT_Wall.
14191 * fold-const.c: Include intl.h.
14192 (fold_deferring_overflow_warnings): New static variable.
14193 (fold_deferred_overflow_warning): New static variable.
14194 (fold_deferred_overflow_code): New static variable.
14195 (fold_defer_overflow_warnings): New function.
14196 (fold_undefer_overflow_warnings): New function.
14197 (fold_undefer_and_ignore_overflow_warnings): New function.
14198 (fold_deferring_overflow_warnings_p): New function.
14199 (fold_overflow_warning): New static function.
14200 (make_range): Add strict_overflow_p parameter. Change all
14201 callers.
14202 (extract_muldiv, extract_muldiv_1): Likewise.
14203 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
14204 tree_expr_nonnegative_p.
14205 (fold_negate_expr): Call fold_overflow_warning.
14206 (fold_range_test): Likewise.
14207 (fold_comparison): Likewise.
14208 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
14209 instead of tree_expr_nonnegative_p.
14210 (tree_expr_nonnegative_warnv_p): Rename from
14211 tree_expr_nonnegative_p, add strict_overflow_p parameter.
14212 (tree_expr_nonnegative_p): New function.
14213 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
14214 strict_overflow_p parameter.
14215 (tree_expr_nonzero_p): New function.
14216 * passes.c (verify_interpass_invariants): New static function.
14217 (execute_one_pass): Call it.
14218 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
14219 warnings.
14220 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
14221 (estimate_numbers_of_iterations): Likewise.
14222 (scev_probably_wraps_p): Likewise.
14223 * tree-ssa-ccp.c: Include "toplev.h".
14224 (evaluate_stmt): Defer fold overflow warnings until we know we are
14225 going to optimize.
14226 (struct fold_stmt_r_data): Add stmt field.
14227 (fold_stmt_r): Defer fold overflow warnings until we know we
14228 optimized.
14229 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
14230 (fold_stmt_inplace): Likewise.
14231 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
14232 (cleanup_control_expr_graph): Defer fold overflow warnings until
14233 we know we are going to optimize.
14234 * tree-cfg.c (fold_cond_expr_cond): Likewise.
14235 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
14236 Likewise.
14237 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
14238 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
14239 * tree-ssa-loop-manip.c (create_iv): Likewise.
14240 * c-typeck.c (build_conditional_expr): Likewise.
14241 (build_binary_op): Likewise.
14242 * tree-vrp.c (vrp_expr_computes_nonzero): Call
14243 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
14244 (extract_range_from_unary_expr): Likewise.
14245 * simplify-rtx.c (simplify_const_relational_operation): Warn when
14246 assuming that signed overflow does not occur.
14247 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
14248 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
14249 (fold_defer_overflow_warnings): Declare.
14250 (fold_undefer_overflow_warnings): Declare.
14251 (fold_undefer_and_ignore_overflow_warnings): Declare.
14252 (fold_deferring_overflow_warnings_p): Declare.
14253 (tree_expr_nonzero_warnv_p): Declare.
14254 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
14255 of warning options.
14256 (Warning Options): Document -Wstrict-overflow.
14257 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
14258 (tree-ssa-ccp.o): Likewise.
14259 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
14260 (fold-const.o): Depend on intl.h.
14261
30d18db4
ILT
142622007-02-13 Ian Lance Taylor <iant@google.com>
14263
14264 PR middle-end/30751
14265 * lower-subreg.c (resolve_simple_move): Decompose subregs in
14266 addresses.
14267
ce9c43a1
SH
142682007-02-13 Stuart Hastings <stuart@apple.com>
14269
86122f72 14270 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
ce9c43a1 14271
138ae41e
RH
142722007-02-13 Richard Henderson <rth@redhat.com>
14273
14274 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
14275 handled_component_p before looking for the indirect_ref.
14276
2e6834d3
RH
142772007-02-13 Richard Henderson <rth@redhat.com>
14278
14279 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
14280 remove flags clobber.
14281 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
14282 (bswaphi_lowpart): New.
14283 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
14284 remove TARGET_BSWAP test. Delete expander of the same name.
14285
14286 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
14287 (expand_unop): Use them.
14288
a23132e1
UB
142892007-02-13 Uros Bizjak <ubizjak@gmail.com>
14290
14291 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
14292 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
14293 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
14294 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
14295 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
14296 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
14297 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
14298 assembler dialect choice from asm templates.
14299
174c12c7
RH
143002007-02-12 Richard Henderson <rth@redhat.com>
14301
14302 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
14303 (fixuns_trunc<SSEMODEF>si2): Use it.
14304 * config/i386/sse.md (vec_setv4sf_0): Export.
14305 * config/i386/i386.c (ix86_build_const_vector): Export.
14306 (ix86_split_convert_uns_si_sse): Rename from
14307 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
14308 * config/i386/i386-protos.h: Update.
14309
2397c575
MLI
143102007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14311
14312 PR c/29521
14313 * c-typeck.c (c_finish_return): Improve warning message.
14314
14a32e14
MLI
143152007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14316
14317 * alias.c (find_symbolic_term): Delete unused function.
5646ba12 14318
0f7b6776
UB
143192007-02-12 Uros Bizjak <ubizjak@gmail.com>
14320
14321 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
14322 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
14323 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
14324
6170a998
EB
143252007-02-12 Eric Botcazou <ebotcazou@adacore.com>
14326
14327 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
14328 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
14329 the function, temporarily point the debug interface to the null one.
14330
d996473d
EB
143312007-02-12 Eric Botcazou <ebotcazou@adacore.com>
14332
14333 * dwarf2out.c (round_up_to_align): New static function.
14334 (field_byte_offset): Use it to round the offset.
14335
fffef1dc
RH
143362007-02-12 Richard Henderson <rth@redhat.com>
14337
14338 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
14339 (inswl_const): Export.
14340
7ab0aca2
RH
143412007-02-12 Richard Henderson <rth@redhat.com>
14342
14343 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
14344 result mode of the libcall, convert back to outmode.
14345
d8d25bae
RS
143462007-02-12 Roger Sayle <roger@eyesopen.com>
14347
14348 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
14349 (bswapdi2): New define_expand to implement 32-bit implementation.
14350
c662432e
NC
143512007-02-12 Nick Clifton <nickc@redhat.com>
14352
14353 * doc/invoke.texi (Overall Options): Document --help=.
14354 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
14355 (cc1_options): Pass --help= on to cc1.
14356 (display_help): Add description of --help=.
14357 (process_command): Add code to handle --help=. Allow translated
14358 --help and --target-help switches to be passed on to compiler
14359 sub-process.
14360 (main): Remove unused if statement.
14361 * opts.c (columns): Remove.
14362 (LEFT_COLUMN): Define.
14363 (wrap_help): Add columns argument.
14364 (print_filtered_help): Change parameters to be an include bitmask,
14365 an exclude bitmask, an any bitmask and the column width. Move the
14366 code to display the params list here. Add code to display the
14367 status of options rather than their descriptions if the quiet flag
14368 is not active.
14369 (print_specific_help): Change parameters to be an include bitmask,
14370 an exclude bitmask and an any bitmask. Move code to look up the
14371 column width here. Decide upon the title for an options listing.
14372 (common_handle_options): Add code to handle --help=. Adapt code
14373 for --help and --target-help to use the revised form of the
14374 print_specific_help function.
14375 (print_help): Delete.
14376 (print_param_help): Delete.
14377 (print_switch): Delete.
14378 * opts.h (cl_lang_count): Add prototype.
14379 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
14380 CL_MAX_OPTION_CLASS): New defines.
14381 * optc-gen.awk: Add construction of cl_lang_count.
14382 * c.opt: Add Warning attribute to warning options and Optimization
14383 attribute to optimization options.
14384 * common.opt: Likewise.
14385 Add --help=.
14386 Add -fhelp and -ftarget-help as aliases for the transformed --help
14387 and --target-help options.
14388 * opt-functions.awk: Add code to handle Warning and Optimization
14389 attributes.
14390
dfcbeaa5
RH
143912007-02-12 Richard Henderson <rth@redhat.com>
14392
14393 * config/alpha/constraints.md: New file.
14394 * config/alpha/alpha.c: Include tm-constrs.h.
14395 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
14396 alpha_extra_constraint): Remove.
14397 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
14398 * config/alpha/alpha-protos.h: Update.
14399 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
14400 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
14401 (EXTRA_CONSTRAINT): Remove.
14402 * config/alpha/alpha.md: Include constraints.md.
14403 (adddi splitter): Use satisfies_constraint_*.
14404 * config/alpha/predicates.md (add_operand): Likewise.
14405 (sext_add_operand, addition_operation): Likewise.
14406
9b3ffe5f
DN
144072007-02-12 Dorit Nuzman <dorit@il.ibm.com>
14408
14409 PR tree-optimization/29145
14410 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
14411 in our handling of restrict qualified pointers.
14412
27f33b15
MLI
144132007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14414
14415 PR middle-end/7651
14416 * doc/invoke.texi (Wunused-value): Update description.
14417 (Wextra): Delete item.
14418 * opts.c (set_Wextra): Don't use the value of Wextra to set the
14419 value of Wunused-value.
14420 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
14421 (c_finish_stmt_expr): Don't check extra_warnings.
14422 (emit_side_effect_warnings): The caller is responsible to check
14423 warn_unused_value.
5646ba12 14424
2376c58f
RS
144252007-02-11 Roger Sayle <roger@eyesopen.com>
14426 Matt Thomas <matt@3am-software.com>
14427
14428 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
14429
69fce32f
RS
144302007-02-11 Roger Sayle <roger@eyesopen.com>
14431
14432 * simplify-rtx.c (simplify_relational_operation_1): Optimize
14433 comparisons of POPCOUNT against zero.
14434 (simplify_const_relational_operation): Likewise.
14435
10c54531
MLI
144362007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14437
14438 * doc/invoke.texi (Wextra): Delete outdated paragraph.
5646ba12 14439
b04e13e8
MLI
144402007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14441
14442 * dwarf2out.c (root_type): Delete unused function.
5646ba12 14443
80733108
MLI
144442007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14445
14446 * genattrtab.c (contained_in_p): Delete unused function.
14447 (write_expr_attr_cache): Likewise.
14448
68e2e141
JH
144492007-02-11 Jan Hubicka <jh@suse.cz>
14450
14451 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
14452 previous patch.
14453
a31830a7
SB
144542007-02-11 Steven Bosscher <steven@gcc.gnu.org>
14455
14456 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
14457 to add the REG_EQ* note.
14458 * see.c (see_merge_one_use_extension): Likewise.
14459 * local-alloc.c (update_equiv_regs): Likewise. Also don't
14460 turn REG_EQUAL notes into REG_EQUIV notes if the target
14461 register may have more than one set.
14462 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
14463 * gcse.c (try_replace_reg): Likewise.
14464 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
14465 * calls.c (fixup_tail_calls): Likewise. Abort if there is
14466 more than one REG_EQUIV note.
14467 * reload1.c (gen_reload): Use set_unique_reg_note.
14468
4c38b6d9
UB
144692007-02-11 Uros Bizjak <ubizjak@gmail.com>
14470
14471 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
14472 (ix86_builtin_conversion): New function.
14473
56fd65c7
MM
144742007-02-06 Mark Mitchell <mark@codesourcery.com>
14475
14476 PR target/29487
14477 * tree.h (DECL_REPLACEABLE_P): New macro.
14478 * except.c (set_nothrow_function_flags): Likewise.
14479
f57d17f1
TM
144802007-02-11 Tehila Meyzels <tehila@il.ibm.com>
14481 Ira Rosen <irar@il.ibm.com>
14482 Dorit Nuzman <dorit@il.ibm.com>
14483
14484 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
14485 * targhooks.c (default_builtin_vectorized_conversion): New.
14486 * targhooks.h (default_builtin_vectorized_function): New declaration.
14487 * target.h (struct vectorize): Add builtin_conversion field.
14488 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
14489 stmt_vec_info_type value.
14490 (vectorizable_conversion): New declaration.
14491 * tree-vect-analyze.c (vect_analyze_operations): Add
14492 vectorizable_conversion call.
14493 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
14494 * tree-vect-transform.c (vectorizable_conversion): New function.
14495 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
14496 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
14497 mode.
14498 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
14499 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
0f7b6776
UB
14500 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
14501 or ALTIVEC_BUILTIN_VCFSX.
f57d17f1 14502
51823d47
JDA
145032007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14504
14505 PR target/30634
14506 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
14507 CONST_DOUBLE and operand 0 is a hard register.
14508 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
14509 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
14510 is a hard floating-point register.
14511
3de8da2a
UB
145122007-02-10 Richard Henderson <rth@redhat.com>
14513 Jakub Jelinek <jakub@redhat.com>
14514 Alexandre Oliva <aoliva@redhat.com>
8893239d
RH
14515
14516 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
14517 * builtin-types.def (BT_WORD): Make unsigned.
14518 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
14519 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
14520 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
14521 * c-decl.c (grokdeclarator): Don't error if !have_tls.
14522 * c-parser.c (c_parser_omp_threadprivate): Likewise.
14523 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
14524 emulated tls.
14525 * expr.c (emutls_var_address): New.
14526 (expand_expr_real_1): Expand emulated tls.
14527 (expand_expr_addr_expr_1): Likewise.
14528 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
14529 * output.h (emutls_finish): Declare.
14530 * toplev.c (compile_file): Call it.
14531 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
14532 address before wrapping in CONST.
14533 * varasm.c (emutls_htab, emutls_object_type): New.
14534 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
14535 (get_emutls_object_name, get_emutls_object_type): New.
14536 (get_emutls_init_templ_addr, emutls_decl): New.
14537 (emutls_common_1, emutls_finish): New.
14538 (assemble_variable): When emulating tls, swap decls; generate
14539 constructor for the emutls objects.
14540 (do_assemble_alias): When emulating tls, swap decl and target name.
14541 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
14542 for emulated tls.
14543 * varpool.c (decide_is_variable_needed): Look at force_output.
14544 Recurse for emulated tls.
14545 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
14546 with decide_is_variable_needed.
14547 * emutls.c: New file.
14548 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
14549 tls_object for real tls.
14550
4c9034c5
KK
145512007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
14552
14553 PR rtl-optimization/29599
14554 * reload1.c (eliminate_regs_in_insn): Take the destination
14555 mode into account when computing the offset.
14556
ebff937c 145572007-02-09 Stuart Hastings <stuart@apple.com>
3de8da2a 14558 Richard Henderson <rth@redhat.com>
ebff937c 14559
86122f72
JJ
14560 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
14561 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
14562 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
ebff937c
SH
14563 fixuns_truncdfhi2): New.
14564 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
14565 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
14566 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
14567 (floatunssidf2): Allow nonimmediate source.
86122f72 14568 * config/i386/sse.md (movdi_to_sse): New.
3de8da2a 14569 (vec_concatv2di): Drop '*'.
86122f72 14570 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
ebff937c 14571 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
3de8da2a
UB
14572 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
14573 New.
86122f72 14574 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
ebff937c
SH
14575 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
14576 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
14577 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
3de8da2a
UB
14578 (ix86_build_signbit_mask): Fix decl of v, refactor to call
14579 ix86_build_const_vector.
ebff937c
SH
14580 (x86_emit_floatuns): Rewrite.
14581
692b647c
MLI
145822007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14583
14584 * genautomata.c (longest_path_length): Delete unused function.
14585 (struct state): Delete unused longest_path_length.
14586 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
14587 (get_free_state): Delete unused.
5646ba12 14588
45a80bb9
JH
145892007-02-09 Jan Hubicka <jh@suse.cz>
14590
d562c668
JH
14591 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
14592 * doc/invoke.texi (inline-unit-growth): Update default value.
14593
45a80bb9
JH
14594 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
14595 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
14596 (rebuild_cgraph_edges): Likewise.
14597 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
14598 (dump_cgraph_node): Dump frequencies.
14599 (cgraph_clone_edge): Add frequency scales.
14600 (cgraph_clone_node): Add freuqnecy.
14601 * cgraph.h (cgraph_edge): Add freuqnecy argument.
14602 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
14603 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
14604 * tree-pass.h (TODO_rebuild_frequencies): New constant.
14605 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
14606 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
14607 (save_inline_function_body): Likewise.
14608 * ipa-inline.c: inluce rtl.h
14609 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
14610 (cgraph_edge_badness): Use frequencies.
14611 (cgraph_decide_recursive_inlining): Update clonning.
14612 (cgraph_decide_inlining_of_small_function): Dump frequency.
14613 * predict.c (estimate_bb_frequencies): Export.
14614 * predict.h (estimate_bb_frequencies): Declare.
14615 * tree-inline.c (copy_bb): Watch overflows.
14616 (expand_call_inline): Update call of cgraph_create_edge.
14617 (optimize_inline_calls): Use TODO flags to update frequnecies.
14618 * passes.h: Include predict.h
14619 (init_optimization_passes): Move profile ahead.
14620 (execute_function_todo): Handle TODO_rebuild_frequencies.
14621
f2477b06
RS
146222007-02-09 Roger Sayle <roger@eyesopen.com>
14623
14624 * config/alpha/alpha.c (emit_insxl): Force the first operand of
14625 the insbl or inswl pattern into a register.
14626
ff848f0e
RS
146272007-02-09 Roger Sayle <roger@eyesopen.com>
14628
14629 * config/ia64/ia64.md (bswapdi2): New define_insn.
14630
ed69105c
RH
146312007-02-09 Richard Henderson <rth@redhat.com>
14632
14633 * config/i386/constraints.md (Ym): New constraint.
14634 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
14635 (movdi_1_rex64): Split sse and xmm general register moves from
14636 memory move alternatives. Use conditional register constraints.
14637 (movsf_1, movdf_integer): Likewise.
14638 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
14639 (movdf_integer_rex64): New.
14640 (pushsf_rex64): Fix output constraints.
14641 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
14642 (sse2_stored): Likewise.
14643 (sse2_storeq_rex64): New.
14644 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
14645 amd and not generic.
14646 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
14647 for optimize_size. Remove SF/DFmode hack.
14648
3de8da2a 146492007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
35a63f21 14650
3de8da2a
UB
14651 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
14652 (bit_SSE4a): New.
35a63f21 14653
10e96df4
NS
146542007-02-09 Nathan Sidwell <nathan@codesourcery.com>
14655 Richard Sandiford <richard@codesourcery.com>
14656
14657 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
14658 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
14659 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
14660 m68k/t-mlib to tmake_file.
14661 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
14662 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
14663 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
14664 Allow it to be cf or m68k. Set m68k_arch_family. If that
14665 variable is not empty, add t-$m68k_arch_family to tmake_file.
14666 Add t-mlibs to tmake_file.
14667 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
14668 * config/m68k/t-cf: New file.
14669 * config/m68k/t-m68k: Likewise.
14670 * config/m68k/t-mlibs: Likewise.
14671 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
14672 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
14673 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
14674 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
14675 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
14676 Delete.
14677 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
14678 (INSTALL_LIBGCC): Delete.
14679 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
14680 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
14681 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
14682 (M68K_MLIB_CPU): Define.
14683 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
14684 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
14685 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
14686
b44e7f07 146872007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
3de8da2a 14688 Richard Guenther <rguenther@suse.de>
b44e7f07
ZD
14689
14690 PR middle-end/23361
14691 * fold-const.c (fold_comparison): Handle obfuscated comparisons
14692 against INT_MIN/INT_MAX.
14693 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
14694 file if a loop is removed.
14695
46bd2bee
JM
146962007-02-09 Joseph Myers <joseph@codesourcery.com>
14697
14698 * calls.c (store_one_arg): Pass correct alignment to
14699 emit_push_insn for non-BLKmode values.
14700 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
14701 unaligned stack slot via a suitably aligned slot.
14702
67fc44cb
DD
147032007-02-08 DJ Delorie <dj@redhat.com>
14704
14705 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
14706 warnings.
14707 (legal_subregs): Use unsigned char, make const.
14708 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
14709
4531703e
PB
147102007-02-08 Paul Brook <paul@codesourcery.com>
14711
14712 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
14713 special interworking needed.
14714
c1d91dbd
HJ
147152007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
14716
14717 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
14718 conditional to __SSE2__.
14719 (Entries below should have been added to first ChangeLog
14720 entry for amdfam10 dated 2007-02-05)
14721 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
14722 defined.
14723 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
14724 defined.
14725 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
14726 defined.
14727
f9b89438
DD
147282007-02-08 DJ Delorie <dj@redhat.com>
14729
14730 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
14731 * config/m32c/m32c.c (legal_subregs): New.
14732 (m32c_illegal_subreg_p): New.
14733 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
14734 unsupported subregs of hard regs.
14735
ff39b79b
JH
147362007-02-08 Jan Hubicka <jh@suse.cz>
14737
14738 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
14739 the same one; always update histograms.
14740
b3f7d793
DN
147412007-02-08 Diego Novillo <dnovillo@redhat.com>
14742
14743 * passes.c (init_optimization_passes): Tidy comment.
14744
9f05adb0
RS
147452007-02-08 Roger Sayle <roger@eyesopen.com>
14746
14747 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
14748 strip zero_extend, bswap and rotates from POCOUNT's argument.
14749 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
14750 zero_extend and rotates from PARITY's argument.
14751 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
14752 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
14753 of an integer constant at compile-time.
14754
d37d06fe
DN
147552007-02-08 Diego Novillo <dnovillo@redhat.com>
14756
14757 PR 30562
14758 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
14759 Update all users.
14760 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
14761 users.
14762 (init_alias_info):
14763 * tree-ssa-live.c (remove_unused_locals): Do not remove
14764 TREE_ADDRESSABLE variables.
14765 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
14766 * tree-ssa-operands.c (add_virtual_operand): Remove argument
14767 FOR_CLOBBER. Update all users.
14768 If VAR has an associated alias set, add a virtual operand for
14769 it if no alias is found to conflict with the memory reference.
14770
674474a5
JH
147712007-02-07 Jan Hubicka <jh@suse.cz>
14772 Robert Kidd <rkidd@crhc.uiuc.edu>
14773
14774 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
14775
1f64a081
ILT
147762007-02-07 Ian Lance Taylor <iant@google.com>
14777
14778 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
14779
e42ac3de
RS
147802007-02-07 Roger Sayle <roger@eyesopen.com>
14781
14782 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
14783 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
14784 tablejumpdi, movsi_to_cr_one): Remove constraints from
14785 define_expand's match_operands.
14786
28890c82
RS
147872007-02-07 Roger Sayle <roger@eyesopen.com>
14788
14789 * global.c (compute_regsets): Move declatation of "i" inside of
14790 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
14791
ca6e5fe9
JJ
147922007-02-07 Jakub Jelinek <jakub@redhat.com>
14793
e02a048f
JJ
14794 PR c++/30703
14795 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
14796 of INDIRECT_REF <RESULT_DECL>.
14797
ca6e5fe9
JJ
14798 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
14799
6f8eec29
R
148002007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
14801 Kaz Kojima <kkojima@gcc.gnu.org>
14802
14803 PR target/29746
14804 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
14805 properly.
14806 (sh_initialize_trampoline): Add parentheses to avoid a warning.
14807
89f8f30f
ZD
148082007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
14809
14810 * doc/loop.texi: Document possibility not to perform disambiguation
14811 of loops with multiple latches.
14812 * cfgloopmanip.c (alp_enum_p): Removed.
14813 (add_loop): Handle subloops. Use get_loop_body_with_size.
14814 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
14815 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
14816 the new forwarder block.
14817 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
14818 Handle the case latch is NULL.
7e08fa35
UB
14819 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
14820 modifications when marking loop exits.
89f8f30f
ZD
14821 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
14822 be modified.
14823 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
14824 disambiguate_loops_with_multiple_latches.
14825 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
14826 before fix_loop_structure.
14827 * cfgloop.c: Include pointer-set.h and output.h.
14828 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
14829 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
14830 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
14831 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
14832 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
14833 disambiguate_multiple_latches, get_loop_body_with_size,
14834 disambiguate_loops_with_multiple_latches): New functions.
14835 (flow_loop_dump): Dump multiple latch edges.
14836 (flow_loop_nodes_find): Handle loops with multiple latches.
14837 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
14838 (glb_enum_p): Modified.
14839 (get_loop_body): Use get_loop_body_with_size.
14840 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
14841 (AVOID_CFG_MODIFICATIONS): New constant.
14842 (disambiguate_loops_with_multiple_latches, add_loop,
14843 get_loop_body_with_size): Declare.
14844 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
14845
ad8e8d0b
SP
148462007-02-06 Seongbae Park <seongbae.park@gmail.com>
14847
14848 PR inline-asm/28686
14849 * global.c (compute_regsets): New function.
14850 (global_alloc): Refactored ELIMINABLE_REGSET
14851 and NO_GLOBAL_ALLOC_REGS computation out.
14852 (rest_of_handle_global_alloc): Call compute_regsets()
14853 for non-optimizing case.
14854
50961141
RH
148552007-02-06 Richard Henderson <rth@redhat.com>
14856
14857 * config/i386/constraints.md (Y2): Rename from Y.
14858 (Yi): New constraint.
14859 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
14860 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
14861 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
14862 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
14863 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
14864 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
5646ba12 14865 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
50961141
RH
14866 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
14867 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
14868 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
14869 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
14870 vec_extractv2si_1): Change Y constraints to Y2.
14871 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
14872 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
14873 Change Y constraints to Y2.
14874 (sse2_loadld): Change Y constraints to x.
14875
565ef4ba
RS
148762007-02-06 Roger Sayle <roger@eyesopen.com>
14877
14878 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
14879 (parity<mode>2): New define_expand using rs6000_emit_parity.
14880 * config/rs6000/rs6000.c (rs6000_emit_popcount,
14881 rs6000_emit_parity): New functions.
14882 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
14883 rs6000_emit_parity): Prototype here.
14884
7e0c3f57
ILT
148852007-02-06 Ian Lance Taylor <iant@google.com>
14886
14887 * lower-subreg.c (simple_move_operand): Reject CONST.
14888 (resolve_clobber): Call validate_change rather than directly
14889 assigning to XEXP (pat, 0).
14890
15814ba0
PB
148912006-02-06 Paolo Bonzini <bonzini@gnu.org>
14892
14893 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
14894 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
14895 (tree-cfg.o): Remove hashtab.h dependency.
14896
14897 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
14898 (struct ivopts_data): Change niters to pointer_map_t.
14899 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
14900 (niter_for_exit): Create pointer_map on demand. Change for
14901 pointer_map API.
14902 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
14903 (free_loop_data): Destroy data->niters if created and reset field.
14904 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
14905 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
14906
14907 * tree-ssa-reassoc.c: Include pointer-set.h.
14908 (bb_rank): Change to long *.
14909 (operand_rank): Change to pointer_map_t.
14910 (find_operand_rank): Return long, -1 if not found. Declare as inline.
14911 (insert_operand_rank): Accept long.
14912 (operand_entry_hash, operand_entry_eq): Remove.
14913 (get_rank): Return long. Adjust for changes above.
14914 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
14915 and operand_rank.
14916 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
14917
14918 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
14919 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
14920 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
14921 is not NULL.
14922 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
14923 directly since it cannot be NULL.
14924 (get_vi_for_tree): Rewrite for pointer_map API.
14925 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
14926 (init_alias_vars): Create vi_for_tree as pointer_map.
14927 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
14928
14929 * tree-cfg.c: Don't include hashtab.h.
14930 (edge_to_cases): Declare as pointer_map.
14931 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
14932 Delete.
14933 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
14934 (start_recording_case_labels): Create edge_to_cases as pointer_map.
14935 (end_recoding_case_labels): Cleanup edge_to_cases manually before
14936 destroying it.
14937 (record_switch_edge): Delete.
14938 (get_cases_for_edge): Adjust for pointer_map API, inline
14939 record_switch_edge (rewritten for new API), remove goto.
14940
149412006-02-06 Paolo Bonzini <bonzini@gnu.org>
14942
14943 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
14944 * tree-nested.c: Include pointer-set.h.
14945 (var_map_elt, var_map_eq, var_map_hash): Delete.
14946 (struct nesting_info): Remove GTY marker. Change the two htab_t's
14947 to pointer_map_t's.
14948 (nesting_info_bitmap_obstack): New.
14949 (lookup_field_for_decl): Adjust for pointer_map API.
14950 (lookup_tramp_for_decl): Adjust for pointer_map API.
14951 (get_nonlocal_debug_decl): Adjust for pointer_map API.
14952 (get_local_debug_decl): Adjust for pointer_map API.
14953 (convert_nl_goto_reference): Adjust for pointer_map API.
14954 (convert_nl_goto_receiver): Adjust for pointer_map API.
14955 (create_nesting_tree): Create outside GGC space. Create bitmap on
14956 the new obstack. Create field_map and var_map as pointer_maps.
14957 (free_nesting_tree): Adjust for changes to create_nesting_tree.
5646ba12 14958 (root): Delete.
15814ba0
PB
14959 (lower_nested_functions): Move root here, no need to NULL it.
14960 Initialize and release the obstack.
14961
0802f6a2
PB
149622007-02-06 Paolo Bonzini <bonzini@gnu.org>
14963
3de8da2a
UB
14964 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
14965 Remove prototypes and make them non-static.
14966 (struct tree_int_map): Remove.
14967 * tree.h (struct tree_int_map): Move here, turning TO into an
14968 unsigned int.
14969 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
0802f6a2 14970
3de8da2a
UB
14971 * tree.h (TREE_COMPLEXITY): Remove.
14972 (struct tree_exp): Remove complexity field.
14973 * tree.c (build1_stat): Don't set it.
0802f6a2 14974
fbf798fc
DN
149752007-02-06 Dorit Nuzman <dorit@il.ibm.com>
14976 Victor Kaplansky <victork@il.ibm.com>
14977
14978 * tree-vectorizer.c (vect_is_simple_use): Support induction.
14979 (vect_is_simple_reduction): Support reduction with induction as
14980 one of the operands.
14981 (vect_is_simple_iv_evolution): Fix formatting.
5646ba12 14982 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
fbf798fc
DN
14983 formatting. Don't mark induction phis for vectorization.
14984 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
14985 * tree-vect-transform.c (get_initial_def_for_induction): New function.
14986 (vect_get_vec_def_for_operand): Support induction.
14987 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
14988 induction case.
5646ba12
EC
14989 (vectorizable_reduction): Support reduction with induction as one of
14990 the operands.
fbf798fc
DN
14991 (vectorizable_type_demotion): Use def-type of stmt argument rather
14992 than dummy def-type.
14993
14994 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
14995 flag_tree_scev_cprop.
14996 * common.opt (tree-scev-cprop): New flag.
14997
14998 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
14999 call to vect_get_new_vect_var.
15000
03d3e953
IR
150012007-02-06 Ira Rosen <irar@il.ibm.com>
15002
5646ba12 15003 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
03d3e953
IR
15004 vectype is not NULL.
15005 (vect_pattern_recog_1): Likewise.
15006
8fbbe90b
KG
150072007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15008
15009 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
15010 (fold_negate_expr): Likewise.
15011
792eaee2
AO
150122007-02-05 Alexandre Oliva <aoliva@redhat.com>
15013
15014 PR debug/30189
15015 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
15016 even if cv-qualification is the same.
15017
9be75e44
GK
150182007-02-05 Geoffrey Keating <geoffk@apple.com>
15019
15020 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
15021 __enable_execute_stack on completion.
15022
3de8da2a 150232007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15024
15025 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
15026 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
15027 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
15028 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
15029 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
15030 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
15031 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
15032 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
15033
3de8da2a 150342007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15035
15036 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
15037 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
15038 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
15039 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
15040 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
15041 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
15042 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
15043 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
15044 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
15045 umuldi3_highpart_rex64, umulsi3_highpart_insn,
15046 umulsi3_highpart_zext, smuldi3_highpart_rex64,
15047 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
15048 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
15049 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
15050 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
15051 sqrtextenddfxf2_i387): Added amdfam10_decode.
5646ba12 15052
21efb4d4
HJ
15053 * config/i386/athlon.md (athlon_idirect_amdfam10,
15054 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
15055 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
15056 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
15057 athlon_ivector_store_amdfam10): New define_insn_reservation.
15058 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
15059 amdfam10.
15060
3de8da2a 150612007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15062
15063 * config/i386/athlon.md (athlon_call_amdfam10,
15064 athlon_pop_amdfam10, athlon_lea_amdfam10): New
15065 define_insn_reservation.
15066 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
15067 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
15068 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
15069
3de8da2a 150702007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15071
15072 * config/i386/athlon.md (athlon_sseld_amdfam10,
15073 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
15074 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
15075
3de8da2a 150762007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15077
15078 * config/i386/athlon.md (athlon_sseins_amdfam10): New
15079 define_insn_reservation.
15080 * config/i386/i386.md (sseins): Added sseins to define_attr type
15081 and define_attr unit.
15082 * config/i386/sse.md: Set type attribute to sseins for insertq
15083 and insertqi.
15084
3de8da2a 150852007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15086
15087 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
15088 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
15089 ssecomi_load_amdfam10, ssecomi_amdfam10,
15090 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
15091 define_insn_reservation.
15092 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
15093
3de8da2a 150942007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15095
15096 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
15097 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
15098 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
15099 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
15100 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
5646ba12 15101 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
21efb4d4
HJ
15102 define_insn_reservation.
15103
15104 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
15105 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
15106 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
15107 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
15108 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
15109
3de8da2a 151102007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15111
15112 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
15113 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
15114 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
15115 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
15116 athlon_ssemul_load_k8): Added amdfam10.
15117
3de8da2a 151182007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15119
15120 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
15121 (x86_sse_unaligned_move_optimal): New variable.
5646ba12
EC
15122
15123 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
21efb4d4
HJ
15124 m_AMDFAM10.
15125 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
15126 for unaligned vector SSE double/single precision loads for AMDFAM10.
15127
3de8da2a 151282007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
21efb4d4
HJ
15129
15130 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
15131 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
15132 Define TARGET_CPU_DEFAULT_amdfam10.
15133 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
5646ba12
EC
15134 (processor_type): Add PROCESSOR_AMDFAM10.
15135
21efb4d4
HJ
15136 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
15137 processor_type in config/i386/i386.h.
15138 Enable imul peepholes for TARGET_AMDFAM10.
5646ba12 15139
21efb4d4 15140 * config.gcc: Add support for --with-cpu option for amdfam10.
5646ba12 15141
21efb4d4
HJ
15142 * config/i386/i386.c (amdfam10_cost): New variable.
15143 (m_AMDFAM10): New macro.
15144 (m_ATHLON_K8_AMDFAM10): New macro.
15145 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
15146 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
15147 x86_promote_QImode, x86_integer_DFmode_moves,
5646ba12 15148 x86_partial_reg_dependency, x86_memory_mismatch_stall,
21efb4d4
HJ
15149 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
15150 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
15151 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
15152 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
15153 Enable/disable for amdfam10.
15154 (override_options): Add amdfam10_cost to processor_target_table.
5646ba12 15155 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
21efb4d4
HJ
15156 processor_alias_table.
15157 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
15158 (ix86_adjust_cost): Add code for amdfam10.
15159
3de8da2a 151602007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
5646ba12 15161
21efb4d4 15162 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
5646ba12 15163 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
21efb4d4
HJ
15164 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
15165 * config/i386/i386.h: Add builtin definition for SSE4A.
5646ba12 15166 * config/i386/i386.md: Add support for ABM instructions
21efb4d4
HJ
15167 (popcnt and lzcnt).
15168 * config/i386/sse.md: Add support for SSE4A instructions
15169 (movntss, movntsd, extrq, insertq).
15170 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
15171 Add -march=amdfam10 flag.
15172 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
15173 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
15174 and amdfam10.
15175 * doc/extend.texi: Add documentation for SSE4A builtins.
15176
63694bdd
BW
151772007-02-05 Bob Wilson <bob.wilson@acm.org>
15178
15179 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
15180
b95becfc
RG
151812007-02-05 Richard Guenther <rguenther@suse.de>
15182
15183 * tree-vectorizer.h (vectorizable_function): Add argument type
15184 argument, change return type.
15185 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
15186 * tree-vect-transform.c (vectorizable_function): Handle extra
15187 argument, return vectorized function decl.
15188 (build_vectorized_function_call): Remove.
15189 (vectorizable_call): Handle calls with result and argument types
15190 differing. Handle loop vectorization factor correctly.
15191 * targhooks.c (default_builtin_vectorized_function): Adjust for
15192 extra argument.
15193 * targhooks.h (default_builtin_vectorized_function): Likewise.
15194 * target.h (builtin_vectorized_function): Add argument type
3de8da2a 15195 argument.
b95becfc
RG
15196 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
15197 extra argument, allow vectorizing of lrintf.
15198 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
15199 documentation of target hook.
15200
c3e786e7
HPN
152012007-02-05 Hans-Peter Nilsson <hp@axis.com>
15202
aa3386a5 15203 PR target/30665
c3e786e7
HPN
15204 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
15205 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
15206 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
15207
2d38026b
RS
152082007-02-05 Roger Sayle <roger@eyesopen.com>
15209
15210 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
15211 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
15212 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
15213 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
15214 before canonicalizing sincos to cexpi.
15215 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
15216
b6e46ca1
RS
152172007-02-05 Roger Sayle <roger@eyesopen.com>
15218
15219 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
15220 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
15221 (alpha_init_builtins): Use alpha_add_builtins to process tables.
15222
8d0510dd
RS
152232007-02-05 Roger Sayle <roger@eyesopen.com>
15224
15225 * mips-tfile.c (initialize_init_file): Correct endianness test.
15226
d6fb69e7
KH
152272007-02-05 Kazu Hirata <kazu@codesourcery.com>
15228
15229 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
15230 the 'y' constraint.
15231
55d6f631
RS
152322007-02-05 Richard Sandiford <richard@codesourcery.com>
15233
15234 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
15235 saves in a PARALLEL before the register assignments.
15236
5cd0f915
RS
152372007-02-05 Richard Sandiford <richard@codesourcery.com>
15238
15239 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
15240 DWARF_FRAME_RETURN_COLUMN to be a general register.
15241 * dwarf2out.c (init_return_column_size): New function, split from...
15242 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
15243 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
15244 to be nongeneral registers.
15245 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
15246 integer registers.
15247 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
15248 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
15249
83bd032b
ZD
152502007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
15251
15252 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
15253
14fa2cc0
ZD
152542007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
15255
15256 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
15257 (remove_path): Use can_remove_branch_p and remove_branch instead
15258 of loop_delete_branch_edge.
15259 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
15260 (tree_transform_and_unroll_loop): Remove dead branches immediately.
15261 Update profile using scale_dominated_blocks_in_loop.
15262 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
15263 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
15264 (can_remove_branch_p, remove_branch): Declare.
15265 * tree-cfg.c (tree_can_remove_branch_p): New function.
15266 (tree_cfg_hooks): Add tree_can_remove_branch_p.
15267 * cfgrtl.c (rtl_can_remove_branch_p): New function.
15268 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
15269
28489334
JH
152702007-02-05 Jan Hubicka <jh@suse.cz>
15271
15272 PR middle-end/30696
15273 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
15274 nodes in cgraph, don't remove offline copy of the function.
15275
bf3892af
JH
152762007-02-04 Jan Hubicka <jh@suse.cz>
15277
15278 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
15279 vectors might cause maybe_lookup_element_for_expr to be called
15280 on non-sra-candidate.
15281
942fd98f
KH
152822007-02-04 Kazu Hirata <kazu@codesourcery.com>
15283
15284 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
15285 config/bfin/bfin.md, config/bfin/predicates.md: Follow
15286 spelling conventions.
15287
713e3ec9
RG
152882007-02-04 Richard Guenther <rguenther@suse.de>
15289
15290 PR middle-end/30636
15291 * fold-const.c (try_move_mult_to_index): Make sure to not
15292 overflow one dimension of a multi-dimensional array access.
15293
f1bd2543
JH
152942007-02-04 Jan Hubicka <jh@suse.cz>
15295
15296 * passes.c (init_optimization_passes): Reindent.
15297
1084e689 152982007-02-04 Jan Hubicka <jh@suse.cz>
83bd032b 15299 Eric Botcazou <ebotcazou@adacore.com>
1084e689 15300
f81ef9b3 15301 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
1084e689 15302 (execute_fixup_cfg): Break out the abnormal goto code.
f81ef9b3 15303 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
1084e689
JH
15304 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
15305 (optimize_inline_calls): Call make_nonlocal_label_edges.
15306
facbf948
JH
153072007-02-04 Jan Hubicka <jh@suse.cz>
15308
15309 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
15310 true when something was changed.
15311 (rename_ssa_copies): When something was changed, do
15312 TODO_remove_unused_locals.
15313 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
15314 add TODO_remove_unused_locals when instruction was removed.
15315
22ad64b6
JH
153162007-02-04 Jan Hubicka <jh@suse.cz>
15317
15318 * ipa-inline.c (try_inline): Improve debug output; work on already
15319 inline edges too.
15320 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
5646ba12 15321 call try_inline for already inlined edges too when flattening;
22ad64b6
JH
15322 inline also functions that make callee growth but overall unit size
15323 reduce.
15324
85f65093
KH
153252007-02-04 Kazu Hirata <kazu@codesourcery.com>
15326
15327 * config/m32c/bitops.md, config/m32c/jump.md,
15328 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
15329 config/m32r/m32r.h, config/m32r/m32r.md,
15330 config/m32r/predicates.md, config/m68hc11/larith.asm,
15331 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15332 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
15333 config/mips/mips-protos.h, config/mips/mips.c,
15334 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
15335 config/mn10300/mn10300.h, config/mn10300/predicates.md,
15336 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
15337 spelling conventions.
15338
22f23985
KH
15339 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
15340 Follow spelling conventions.
15341
beeffe36
DG
153422007-02-03 Douglas Gregor <doug.gregor@gmail.com>
15343
6bdcc60c
UB
15344 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
15345 warn about C++0x compatibility.
5646ba12 15346
da55315a
KH
153472007-02-04 Kazu Hirata <kazu@codesourcery.com>
15348
15349 * config/h8300/h8300.c, config/h8300/h8300.h,
15350 config/h8300/h8300.md: Follow spelling conventions.
15351
28b02c60
UB
153522007-02-03 Uros Bizjak <ubizjak@gmail.com>
15353
15354 PR middle-end/30667
15355 * combine.c (try_combine): Do not substitute source operand
15356 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
15357
3855c807
JH
153582007-02-03 Jan Hubicka <jh@suse.cz>
15359
15360 PR gcov-profile/30650
15361 * value-prof.c (stringop_block_profile): Fix handling of size counter;
15362 do not divide by zero for never executed counters.
15363 (tree_find_values_to_profile): Fix counters.
15364 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
15365
2b54c30f
ILT
153662007-02-03 Ian Lance Taylor <iant@google.com>
15367
15368 * lower-subreg.c (simple_move_operand): New static function,
15369 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
15370 operands.
15371 (simple_move): Call simple_move_operand.
15372 (find_decomposable_subregs): Add special handling of MEMs.
15373 (can_decompose_p): Rename from cannot_decompose_p. Reverse
15374 meaning of return value. If we see a hard register, test whether
15375 it can store a word_mode value. Change all callers.
15376
2e3e8cea
JDA
153772007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15378
7fcc8dcf
JDA
15379 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
15380 ftrapv insns and expanders.
15381 (subdi3): Change define_expand operand 1 to arith11_operand, and
15382 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
15383 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
15384 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
15385 respectively.
15386
2e3e8cea
JDA
15387 PR middle-end/30174
15388 * varasm.c (notice_global_symbol): Treat global objects as weak when
15389 flag_shlib is true.
15390
b86a760a
KG
153912007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15392
15393 * emit-rtl.c (dconstpi): Delete.
15394 (dconstsqrt2): New.
15395 (init_emit_once): Delete dconstpi and init dconstsqrt2.
15396 * real.h (dconstpi): Delete.
15397 (dconstsqrt2): New.
15398 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
15399 (fold_builtin_hypot): Likewise.
15400
3a610de8
TT
154012007-02-03 Tom Tromey <tromey@redhat.com>
15402
15403 PR driver/30246
15404 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
15405 -gcoff3, -gxcoff3, -gvms3 implies -dD.
15406
9f5ed61a
KH
154072007-02-03 Kazu Hirata <kazu@codesourcery.com>
15408
15409 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
15410 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
15411 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
15412 config/rs6000/cell.md, config/rs6000/darwin.h,
15413 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
15414 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
15415 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
15416 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
15417 typos. Follow spelling conventions.
15418 * doc/invoke.texi: Follow spelling conventions.
15419
3fa0cacd
RS
154202007-02-03 Roger Sayle <roger@eyesopen.com>
15421
15422 * simplify-rtx.c (simplify_relational_operation_1): Implement some
15423 canonicalization transformations that attempt to simplify integer
15424 constant comparisons to become comparisons against zero.
15425
d1ad84c2
KG
154262007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15427
15428 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
15429 fabs(x)*sqrt(2).
15430 * fold-const.c (fold_binary): Fix comment typos. Fold complex
15431 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
15432
75b1b789
MS
154332007-02-02 Mike Stump <mrs@apple.com>
15434
15435 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
15436 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
15437 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
15438 generate a branch island.
15439
da1f39e4
BW
154402007-02-02 Bob Wilson <bob.wilson@acm.org>
15441
15442 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
15443 (xtensa_legitimate_address_p): New.
15444 (xtensa_legitimize_address): New.
15445 (xtensa_output_addr_const_extra): New.
15446 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
15447 (BASE_REG_P): New.
15448 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
15449 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
15450 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
15451 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
15452 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
15453 (xtensa_legitimize_address): New.
15454 (xtensa_output_addr_const_extra): New.
15455
86ad1da0
SE
154562007-02-02 Steve Ellcey <sje@cup.hp.com>
15457
15458 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
15459
093253be
ILT
154602007-02-02 Ian Lance Taylor <iant@google.com>
15461
15462 * expmed.c (expand_divmod): Add comment.
15463
a638bdc2
KH
154642007-02-02 Kazu Hirata <kazu@codesourcery.com>
15465
15466 * emit-rtl.c (renumber_insns): Remove.
15467 * flags.h: Remove the extern for flag_renumber_insns.
15468 * rtl.h: Remove the prototype for renumber_insns.
15469 * toplev.c (flag_renumber_insns): Remove.
15470
88c6f101
HMC
154712007-02-02 Hui-May Chang <hm.chang@apple.com>
15472
15473 Revert for x86 darwin:
15474 2005-06-19 Uros Bizjak <uros@kss-loka.si>
5646ba12 15475
88c6f101
HMC
15476 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
15477 code before the following patch under TARGET_MACHO.
15478 (ix86_function_value_regno_p): Likewise.
15479
1aeef526
KG
154802007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15481
15482 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
15483 COMPLEX_EXPR.
15484
f6ec1d11
MK
154852007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
15486
15487 PR target/29682
7e08fa35
UB
15488 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
15489 loads to general or fp registers. Add comments.
f6ec1d11
MK
15490 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
15491
ad12460b
PB
154922007-02-02 Paolo Bonzini <bonzini@gnu.org>
15493
15494 * pointer-set.c (insert_aux): Only return insertion slot.
15495 (pointer_set_insert): Adjust.
15496 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
15497 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
15498 pointer_map_traverse): New.
15499 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
15500 pointer_map_create, pointer_map_destroy, pointer_map_insert,
15501 pointer_map_contains, pointer_map_traverse): Declare.
15502
6b01cd54
JJ
155032007-02-02 Jakub Jelinek <jakub@redhat.com>
15504
15505 PR middle-end/30473
15506 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
15507 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
15508
b198261f
MK
155092007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
15510
15511 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
5646ba12 15512
b198261f
MK
15513 (struct _dep): New type.
15514 (dep_t): New typedef.
15515 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
15516 (DEP_STATUS): New access macro. The macro with the same name was
15517 renamed to DEP_LINK_STATUS.
15518 (dep_init): Declare function
15519
15520 (struct _dep_link): New type.
15521 (dep_link_t): New typedef.
15522 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
15523 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
15524 (DEP_LINK_STATUS): New macro.
15525 (debug_dep_links): New debug function.
15526
15527 (struct _deps_list): New type.
15528 (deps_list_t): New typedef.
15529 (DEPS_LIST_FIRST): New access macro.
15530 (FOR_EACH_DEP_LINK): New cycle macro.
15531 (create_deps_list, free_deps_list, delete_deps_list): Declare
15532 functions.
15533 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
15534 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
15535 (copy_deps_list_change_con): Ditto.
15536
15537 (move_dep_link): Declare function.
15538
15539 (struct _dep_node): New type.
15540 (dep_node_t): New typedef.
15541 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
15542
15543 (struct haifa_insn_data.back_deps): New field to hold backward
15544 dependencies of the insn.
15545 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
15546 to deps_list_t.
15547 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
15548 Change its type to deps_list_t.
15549 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
15550 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
15551 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
15552
15553 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
5646ba12 15554
b198261f
MK
15555 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
15556
7e08fa35
UB
15557 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
15558 and all callers.
b198261f 15559 (dep_cost): Declare.
5646ba12 15560
b198261f
MK
15561 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
15562 (ds_to_dk, dk_to_ds): New functions.
5646ba12 15563
b198261f
MK
15564 (init_dep_1): New static function.
15565 (init_dep): New function.
15566 (copy_dep): New static function.
5646ba12 15567
b198261f
MK
15568 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
15569 functions.
15570 (detach_dep_link): New static function.
15571 (move_dep_link): New function.
5646ba12 15572
b198261f
MK
15573 (dep_links_consistent_p, dump_dep_links): New static functions.
15574 (debug_dep_links): New debugging function.
5646ba12 15575
b198261f 15576 (deps_obstack, dl_obstack, dn_obstack): New static variables.
5646ba12 15577
b198261f
MK
15578 (alloc_deps_list, init_deps_list): New static functions.
15579 (create_deps_list): New function.
15580 (clear_deps_list): New static function.
15581 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
15582 (deps_list_consistent_p, dump_deps_list): New static functions.
15583 (debug_deps_list): New function.
15584 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
15585 functions.
15586 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
15587
15588 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
15589 use new scheduler dependencies lists.
15590 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
15591 (sched_analyze): Ditto. Initialize dependencies lists.
15592 (add_forw_dep, compute_forward_dependences): Update to use new
15593 scheduler dependencies lists.
5646ba12 15594
b198261f
MK
15595 (init_dependency_caches): Init deps_obstack.
15596 (free_dependency_caches): Free deps_obstack.
5646ba12 15597
b198261f
MK
15598 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
15599 new scheduler dependencies lists.
15600 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
15601 (add_back_forw_dep, delete_back_forw_dep): Ditto.
15602
15603 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
15604 Update to use new scheduler dependencies lists.
15605 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
15606 (debug_dependencies): Ditto.
15607 (schedule_region): Update comments.
5646ba12 15608
b198261f
MK
15609 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
15610 scheduler dependencies lists.
15611 (schedule_ebb): Update comments.
5646ba12 15612
b198261f 15613 * rtl.def (DEPS_LIST): Remove.
5646ba12 15614
b198261f
MK
15615 * lists.c (unused_deps_list): Remove.
15616 (free_list): Update assertions.
5646ba12 15617
b198261f
MK
15618 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
15619 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
15620
15621 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
15622 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
5646ba12 15623
b198261f
MK
15624 * haifa-sched.c (comments): Update.
15625 (insn_cost1): Remove. Inline the code into insn_cost ().
15626 (insn_cost): Update to use new scheduler dependencies lists. Move
15627 processing of the dependency cost to dep_cost ().
15628 (dep_cost): New function. Use it instead of insn_cost () when
15629 evaluating cost of the dependency. Use compatible interface to
15630 interact with the target.
15631 (priority): Update to use new scheduler dependencies lists.
15632 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
15633 with greater number of insns that depend on the insn.
15634 (schedule_insn): Update to use new scheduler dependencies lists. Add
15635 code to free backward dependencies lists. Inline and optimize code
15636 from resolve_dep () - see PR28071.
15637 (ok_for_early_queue_removal): Update to use new scheduler dependencies
15638 lists. Update call to targetm.sched.is_costly_dependence hook.
5646ba12 15639
b198261f
MK
15640 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
15641 scheduler dependencies lists.
5646ba12 15642
b198261f
MK
15643 (resolve_dep): Remove. Move the logic to schedule_insn ().
15644 (init_h_i_d): Initialize dependencies lists.
5646ba12 15645
b198261f
MK
15646 (process_insn_depend_be_in_spec): Rename to
15647 process_insn_forw_deps_be_in_spec. Update to use new scheduler
15648 dependencies lists.
15649 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
15650 Update to use new scheduler dependencies lists.
15651 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
5646ba12 15652
b198261f
MK
15653 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
15654 new scheduler dependencies lists.
15655 (build_intra_loop_deps): Ditto.
5646ba12 15656
b198261f
MK
15657 * target.h (struct _dep): Declare to use in
15658 gcc_target.sched.is_costly_dependence.
15659 (struct gcc_target.sched.adjust_cost): Fix typo.
7e08fa35
UB
15660 (struct gcc_target.sched.is_costly_dependence): Change signature to
15661 use single dep_t parameter instead of an equivalent triad.
b198261f
MK
15662 (struct gcc_target.sched.adjust_cost_2): Remove.
15663
15664 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
15665
15666 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
15667
15668 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
15669 documentation.
15670 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
15671
15672 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
15673 (REG_DEP_TRUE): Document.
5646ba12 15674
b198261f 15675 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
5646ba12 15676 Change signature to correspond to the targetm.sched.adjust_cost hook.
b198261f
MK
15677 Update use in TARGET_SCHED_ADJUST_COST_2.
15678 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
15679 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
15680 new scheduler dependencies lists.
15681 (ia64_gen_check): Ditto.
15682
7e08fa35
UB
15683 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
15684 scheduler dependencies lists.
5646ba12 15685
b198261f
MK
15686 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
15687 signature to correspond to the targetm.sched.is_costly_dependence hook.
15688 (is_costly_group): Update to use new scheduler dependencies lists.
15689
15690 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
15691 instead of INSN_COST () macro.
15692
9a5a8e58
ILT
156932007-02-01 Ian Lance Taylor <iant@google.com>
15694
15695 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
15696
546dcc43
GM
156972007-02-01 Guy Martin <gmsoft@gentoo.org>
15698
15699 * pa.md (tp_load): Correct mfctl instruction syntax.
15700
7c40d666
GK
157012007-02-01 Geoffrey Keating <geoffk@apple.com>
15702
9278121c
GK
15703 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
15704 altivec_padding_size calculation on AIX. Improve comment, add
15705 assert to verify that it's right.
15706
7c40d666
GK
15707 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
15708 64-bit.
15709
3de8da2a 157102007-2-01 Seongbae Park <seongbae.park@gmail.com>
9012cdf3 15711
3de8da2a 15712 PR inline-asm/28686
9012cdf3
SP
15713 * global.c (global_alloc): Add mising initialization of
15714 ELIMINABLE_REGSET.
15715
62e5bf5d
RS
157162007-02-01 Roger Sayle <roger@eyesopen.com>
15717
15718 * alias.c (init_alias_analysis): Correct whitespace.
15719 * bb-reorder.c (fix_edges_for_rarely_executed_code,
15720 partition_hot_cold_basic_blocks): Likewise.
15721 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
15722 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
15723 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
15724 fold_builtin_snprintf_chk, fold_builtin_printf,
15725 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
15726 do_mpfr_arg3, do_mpfr_sincos): Likewise.
15727 * cfgcleanup.c (cleanup_cfg): Likewise.
15728 * cfgexpand.c (tree_expand_cfg): Likewise.
15729 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
15730 * function.c (get_next_funcdef_no): Likewise.
15731 * gengtype.c (main): Likewise.
15732 * genmodes.c (main): Likewise.
15733 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
15734 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
15735 * ifcvt.c (noce_emit_move_insn): Likewise.
15736 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
15737 Likewise.
15738 * stor-layout.c (get_best_mode): Likewise.
15739 * tree-ssa-loop-niter.c (get_val_for): Likewise.
15740 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
15741 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
15742 perform_var_substitution, solve_graph): Likewise.
15743 * tree-vrp.c (vrp_finalize): Likewise.
15744
0e6c5b58
ILT
157452007-02-01 Ian Lance Taylor <iant@google.com>
15746
15747 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
15748 high part of a paradoxical subreg, return a constant zero.
15749
c0d919fa
ZD
157502007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
15751
15752 * toplev.c (lang_dependent_init): Call init_set_costs.
15753 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
15754
ee7d8048
RG
157552007-02-01 Richard Guenther <rguenther@suse.de>
15756
15757 PR middle-end/30656
15758 * fold-const.c (fold_negate_expr): Allow negating a
15759 constant if overflow does not change.
15760
ab873839
RW
157612007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15762
15763 * doc/c-tree.texi (Expression trees): Improve markup.
15764 * doc/tm.texi (Register Classes, Addressing Modes)
15765 (Floating Point): Fix spacing after abbreviations. Fix some
15766 typos.
15767
b818de22
BE
157682007-02-01 Ben Elliston <bje@au.ibm.com>
15769
15770 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
15771 * doc/contrib.texi: Likewise.
15772 * doc/install.texi: Likewise.
15773
e53a16e7
ILT
157742007-01-31 Richard Henderson <rth@redhat.com>
15775 Ian Lance Taylor <iant@google.com>
15776
15777 * lower-subreg.c: New file.
15778 * rtl.def (CONCATN): Define.
15779 * passes.c (init_optimization_passes): Add pass_lower_subreg and
15780 pass_lower_subreg2.
15781 * emit-rtl.c (update_reg_offset): New static function, broken out
15782 of gen_rtx_REG_offset.
15783 (gen_rtx_REG_offset): Call update_reg_offset.
15784 (gen_reg_rtx_offset): New function.
15785 * regclass.c: Revert patch of 2006-03-05, restoring
15786 reg_scan_update.
15787 (clear_reg_info_regno): New function.
15788 * dwarf2out.c (concatn_loc_descriptor): New static function.
15789 (loc_descriptor): Handle CONCATN.
15790 * common.opt (fsplit_wide_types): New option.
15791 * opts.c (decode_options): Set flag_split_wide_types when
15792 optimizing.
15793 * timevar.def (TV_LOWER_SUBREG): Define.
15794 * rtl.h (gen_reg_rtx_offset): Declare.
15795 (reg_scan_update): Declare.
15796 * regs.h (clear_reg_info_regno): Declare.
15797 * tree-pass.h (pass_lower_subreg): Declare.
15798 (pass_lower_subreg2): Declare.
15799 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
15800 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
15801 -fsplit-wide-types.
15802 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
15803 * Makefile.in (OBJS-common): Add lower-subreg.o.
15804 (lower-subreg.o): New target.
15805
52f7138e
KH
158062007-01-31 Kazu Hirata <kazu@codesourcery.com>
15807
15808 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
15809
d1fc69e4
AS
158102007-01-31 Anatoly Sokolov <aesok@post.ru>
15811
15812 PR target/19087
15813 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
15814
4fc78423
KG
158152007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15816
15817 PR middle-end/29335
15818 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
15819
677cc14d
ZD
158202007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
15821
15822 * cfgloop.h: Include vec-prim.h.
15823 (enum li_flags): Remove LI_ONLY_OLD.
15824 (loop_iterator): Changed.
15825 (fel_next, fel_init): Iterate over loop tree.
15826 (FOR_EACH_LOOP_BREAK): New macro.
15827 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
15828 FOR_EACH_LOOP.
15829 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
15830 * modulo-sched.c (sms_schedule): Ditto.
15831 * tree-vectorizer.c (vectorize_loops): Ditto.
15832 * doc/loop.texi: Update information on loop numbering and behavior of
15833 FOR_EACH_LOOP wrto new loops.
15834 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
15835 add_to_evolution_1): Test nestedness of loops instead of comparing
15836 their numbers.
15837 * tree-chrec.c (chrec_fold_plus_poly_poly,
15838 chrec_fold_multiply_poly_poly, chrec_evaluate,
15839 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
15840 reset_evolution_in_loop): Ditto.
15841 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
15842
e7917d06
DM
158432007-01-31 Dirk Mueller <dmueller@suse.de>
15844
15845 * c-common.c (warn_about_parentheses): Separate warning about
15846 un-parenthized sequence of comparison operators from the one
15847 which is supposed to warn about x <= y <= z.
15848
9ed4207f
UB
158492007-01-31 Uros Bizjak <ubizjak@gmail.com>
15850
15851 * optabs.h (enum optab_index): Add new OTI_isinf.
15852 (isinf_optab): Define corresponding macro.
15853 * optabs.c (init_optabs): Initialize isinf_optab.
15854 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
15855 patterns.
15856 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
15857 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
15858 using isinf_optab.
15859 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
15860 expand_builtin_interclass_mathfn.
15861 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
15862 * config/i386/i386.md (UNSPEC_FXAM): New constant.
15863 (fxam<mode>2_i387): New insn pattern.
15864 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
15865 built-in functions as x87 inline asm.
15866
c9cde24c
KH
158672007-01-31 Kazu Hirata <kazu@codesourcery.com>
15868
86122f72 15869 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
c9cde24c 15870
537bbabd
EC
158712007-01-30 Eric Christopher <echristo@apple.com>
15872
15873 * config.gcc: Add geode.
15874
88512ba0
KH
158752007-01-31 Kazu Hirata <kazu@codesourcery.com>
15876
15877 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
15878 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
15879 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
15880 value-prof.c: Fix comment typos.
15881
b9edb4b1
MLI
158822007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15883
15884 PR c++/24745
15885 * doc/invoke.texi (Wpointer-arith): Document warning.
537bbabd 15886
3de8da2a 158872007-01-30 Janis Johnson <janis187@us.ibm.com>
05f182f6
JJ
15888
15889 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
15890 the list of discrepancies from the draft TR.
15891
01a40464
DM
158922007-01-30 Dirk Mueller <dmueller@suse.de>
15893
15894 PR c++/30601
15895 * doc/invoke.texi (-Wreturn-type): Update description to
537bbabd 15896 match new behavior.
01a40464 15897
9caea4a7
RS
158982007-01-30 Richard Sandiford <richard@codesourcery.com>
15899
15900 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
15901
eaee4464
UB
159022007-01-30 Uros Bizjak <ubizjak@gmail.com>
15903
15904 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
15905 to handle optabs that operate on floating point input argument and
15906 output to integer output.
15907 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
15908 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
15909 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
15910 expand_builtin_interclass_mathfn ().
15911 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
15912 (ilogbsi2): Remove.
15913 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
15914 ilogbl built-in functions as x87 intrinsics.
15915
9b1959ff
RG
159162007-01-30 Richard Guenther <rguenther@suse.de>
15917
15918 PR middle-end/27657
15919 * dwarf2out.c (reference_to_unused): Query varpool if the
15920 variable was output.
15921
91851351
RG
159222007-01-30 Richard Guenther <rguenther@suse.de>
15923
15924 PR middle-end/30313
15925 * passes.c (execute_one_pass): Reset in_gimple_form to not
15926 confuse non-unit-at-a-time mode.
15927
bcf52d7b
RS
159282007-01-29 Roger Sayle <roger@eyesopen.com>
15929 Richard Guenther <rguenther@suse.de>
15930
15931 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
15932 avoid undefined behaviour on overflow. Use force_fit_type_double
15933 to construct the constant with the specified TREE_OVERFLOW.
15934
d9a66f98
JJ
159352007-01-29 Janis Johnson <janis187@us.ibm.com>
15936
15937 * config/dfp-bit.c: Add parameterized support for fp exceptions.
15938 * config/dfp-bit.h: Ditto.
15939
bcf52d7b 159402007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
c616e51b
MLI
15941
15942 * c-decl.c (pop_scope): Replace warnings with call to
15943 warn_for_unused_label.
15944 * c-common.h (warn_for_unused_label): Declare.
15945 * c-common.c (warn_for_unused_label): Define.
15946
97100596
MLI
159472007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15948
15949 * tree-optimize.c (update_inlined_to_pointers): Delete unused
15950 function.
15951
b7f0fff2
JJ
159522007-01-29 Janis Johnson <janis187@us.ibm.com>
15953
15954 * Makefile.in (USER_H): Remove decfloat.h.
15955 * ginclude/decfloat.h: Delete, moving contents to ...
15956 * ginclude/float.h: Add support for decimal floating point,
15957 guarded by __STDC_WANT_DEC_FP__.
15958
821f6218
MS
159592007-01-29 Mike Stump <mrs@apple.com>
15960
15961 * doc/gccint.texi (Top): Rename Loop Representation to Loop
15962 Analysis and Representation to resolve case insensitive conflict.
15963 * doc/loop.texi (Loop Analysis and Representation): Likewise.
15964
306219a2
DB
159652007-01-28 Daniel Berlin <dberlin@dberlin.org>
15966
15967 * tree.h (struct tree_memory_tag): Add aliases member.
15968 (MTAG_ALIASES): New macro.
15969 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
15970 (add_may_alias): Remove pointer-set. Update for may_aliases being
537bbabd 15971 a bitmap.
306219a2
DB
15972 (mark_aliases_call_clobbered): Update for may_aliases being a
15973 bitmap.
15974 (compute_tag_properties): Ditto.
15975 (create_partition_for): Ditto.
15976 (compute_memory_partitions): Ditto.
15977 (dump_may_aliases_for): Ditto.
15978 (is_aliased_with): Ditto.
15979 (add_may_alias_for_new_tag): Ditto.
15980 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
15981 (compute_is_aliased): New function.
15982 (compute_may_aliases): Call compute_is_aliased).
15983 (init_alias_info): Initialize alias_bitmap_obstack.
15984 (union_alias_set_into): New function.
15985 (compute_flow_sensitive_aliasing): Use union_aliases_into.
15986 (have_common_aliases_p): Rewrite to take two bitmaps and use
15987 intersection.
15988 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
15989 Update for bitmaps.
15990 (finalize_ref_all_pointers): Update for add_may_alias changes.
15991 (new_type_alias): Ditto.
15992 * tree-flow-inline.h (may_aliases): Return a bitmap.
15993 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
15994 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
15995 may_aliases being a bitmap.
15996 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
15997 may_aliases now returns a bitmap.
15998 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
15999 being a bitmap.
16000 * tree-ssa-operands.c (add_virtual_operand): Update for
16001 may_aliases being a bitmap.
537bbabd 16002
48e540b0
DB
160032007-01-29 Daniel Berlin <dberlin@dberlin.org>
16004
16005 PR tree-optimization/30630
16006 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
16007 variable as changed.
16008
abc67de1
SM
160092007-01-29 Simon Martin <simartin@users.sourceforge.net>
16010
16011 PR c++/28266
16012 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
16013 expanded only once even if an error occurs.
16014
098b68ad
BE
160152007-01-29 Ben Elliston <bje@au.ibm.com>
16016
16017 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
16018 (__gcov_average_profiler): Likewise.
16019 (__gcov_ior_profiler): Likewise.
16020 (__gcov_merge_ior): Likewise.
16021
52ca6d35
JH
160222007-01-28 Jan Hubicka <jh@suse.cz>
16023
16024 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
16025 * value-prof.c (stringop_block_profile): Likewise.
16026
079a182e
JH
160272007-01-28 Jan Hubicka <jh@suse.cz>
16028
7e08fa35
UB
16029 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
16030 Add variant handling histograms; add wrapper.
079a182e
JH
16031 (clear_storage_via_libcall): Export.
16032 (emit_block_move_hints): Break out from ...; add histograms.
16033 (emit_block_move): ... this one.
16034 (clear_storage_hints): Break out from ...; add histograms.
16035 (clear_storage): ... this one.
16036 (set_storage_via_memset): Handle histogram.
16037 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
16038 (clear_storage_hints, clear_storage_via_libcall): Declare.
16039 (set_storage_via_setmem): Update prototype.
16040 * doc/md.texi (movmem, setmem): Document new arguments.
16041
7e08fa35
UB
16042 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
16043 Add new histograms.
079a182e
JH
16044 (stringop_block_profile): New global function.
16045 (tree_stringops_values_to_profile): Profile block size and alignment.
16046 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
16047 HIST_TYPE_IOR.
16048 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
16049 (stringop_block_profile): Declare.
16050 * builtins.c: Include value-prof.h.
16051 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
16052 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
16053 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
16054 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
16055 * profile.c (instrument_values): Add new counters.
16056 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
16057 calls.
16058 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
16059 (tree_init_edge_profiler): Build new profilers.
16060 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
16061 (pass_tree_profile): Add dump.
16062 (tree_profile_hooks): Update.
16063 * Makefile.in (LIBGCOV): Add new constants.
16064 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
16065 __gcov_ior_profiler): New.
16066 * i386.md (movmem/setmem expanders): Add new optional arguments.
16067
b6bd3371
DE
160682007-01-28 David Edelsohn <edelsohn@gnu.org>
16069
16070 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
16071
7f9bc51b
ZD
160722007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
16073
16074 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
16075 (tree_unswitch_single_loop): Pass eni_size_weights to
16076 tree_num_loop_insns.
16077 * tree-ssa-loop-manip.c: Include tree-inline.h.
16078 (can_unroll_loop_p): Pass eni_size_weights to
16079 tree_num_loop_insns.
16080 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
16081 Pass eni_size_weights to estimate_num_insns.
16082 * tree.h (init_inline_once): Export.
16083 * toplev.c (backend_init): Call init_inline_once.
16084 * cgraphunit.c (cgraph_process_new_functions,
16085 cgraph_analyze_function): Pass eni_inlining_weights to
16086 estimate_num_insns.
16087 * ipa-inline.c (compute_inline_parameters): Ditto.
16088 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
16089 to estimate_num_insns.
16090 (try_unroll_loop_completely): Pass eni_size_weights to
16091 tree_num_loop_insns.
16092 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
16093 ot estimate_num_insns.
16094 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
16095 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
16096 * tree-inline.c (eni_inlining_weights, eni_size_weights,
16097 eni_time_weights): New variables.
16098 (init_inline_once): Initialize them.
16099 (struct eni_data): Mew.
16100 (estimate_num_insns_1, estimate_num_insns): Use weights.
16101 * tree-inline.h (struct eni_weights_d): New.
16102 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
16103 (estimate_num_insns): Declaration changed.
16104 * cfgloop.h (tree_num_loop_insns): Declaration changed.
16105 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
16106 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
16107
b39c6706
ZD
161082007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
16109
16110 * tree-data-ref.c (conflict_fn): Assert that the number of affine
16111 relations in the conflict function is valid.
16112
eeef0e45
ILT
161132007-01-27 Ian Lance Taylor <iant@google.com>
16114
16115 * common.opt: Add fstrict-overflow.
16116 * opts.c (decode_options): Set flag_strict_overflow if -O2.
16117 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
16118 (TYPE_OVERFLOW_UNDEFINED): Define.
16119 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
16120 Replace all uses.
16121 * tree.h (TYPE_TRAP_SIGNED): Don't define.
16122 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
16123 (fold_negate_expr): Likewise.
16124 (make_range): Likewise.
16125 (extract_muldiv_1): Likewise.
16126 (maybe_canonicalize_comparison): Likewise.
16127 (fold_comparison): Likewise.
16128 (fold_binary): Likewise.
16129 (tree_expr_nonnegative_p): Likewise.
16130 (tree_expr_nonzero_p): Likewise.
16131 * tree-vrp.c (compare_values): Likewise.
16132 (extract_range_from_binary_expr): Likewise.
16133 (extract_range_from_unary_expr): Likewise.
16134 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
16135 Likewise.
16136 (nowrap_type_p): Likewise.
16137 * tree-scalar-evolution.c (simple_iv): Likewise.
16138 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
16139 (build_range_check): Likewise.
16140 (extract_muldiv_1): Likewise.
16141 (fold_comparison): Likewise.
16142 * tree-vrp.c (vrp_int_const_binop): Likewise.
16143 (extract_range_from_unary_expr): Likewise.
16144 * convert.c (convert_to_integer): Likewise.
16145 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
16146 (fold_comparison): Likewise.
16147 (fold_binary): Likewise.
16148 * optabs.c (optab_for_tree_code): Likewise.
16149 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
16150 * simplify-rtx.c (simplify_const_relational_operation): Check
16151 flag_strict_overflow and flag_trapv.
16152 (simplify_const_relational_operation): Likewise.
16153 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
16154 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
16155 -fstrict-overflow.
16156
b73a6056
RS
161572007-01-27 Roger Sayle <roger@eyesopen.com>
16158
16159 * tree.c (tree_fold_gcd): Delete.
16160 * tree.h (tree_fold_gcd): Remove prototype.
16161 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
16162 test whether one constant integer is a multiple of another. Instead
16163 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
16164 * fold-const.c (multiple_of_p): We've determined both TOP and
16165 BOTTOM are integer constants so we can call int_const_binop directly
16166 instead of the more generic const_binop.
16167
74890d7b
RS
161682007-01-27 Roger Sayle <roger@eyesopen.com>
16169
16170 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
16171 1*X check that the constant hasn't overflowed, to preserve the
16172 TREE_OVERFLOW bit.
16173 (round_up): Provide an efficient implementation when rouding-up an
16174 INTEGER_CST to a power-of-two.
16175
2a01aae6
RW
161762007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16177
16178 * doc/sourcebuild.texi: Add comma for clarity.
16179 * doc/extend.texi: Fix some typos.
16180 * doc/passes.texi: Likewise.
16181 * doc/cppinternals.texi: Likewise.
16182 * doc/c-tree.texi: Likewise.
16183 * doc/tree-ssa.texi: Likewise.
b9363338 16184 * doc/install.texi: Likewise.
2a01aae6 16185
7fbb9a49
JH
161862007-01-27 Jan Hubicka <jh@suse.cz>
16187
16188 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
16189 (pass_sra): Do not require alias information.
16190 * passes.c (init_optimization_passes): Add SRA
16191
9eab6785
SB
161922007-01-27 Steven Bosscher <steven@gcc.gnu.org>
16193
16194 * tracer.c (rest_of_handle_tracer): We already cleaned
16195 up the CFG in tracer() so don't do it here again.
16196 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
16197 cleanup_cfg here, either. And don't call renumber_insns.
16198
16199 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
16200 and BB_HEAD are in the insn stream here. Instead make sure
16201 that BB_INSN is valid on all insns. Also, do check here that
16202 there are no pending branch predictions...
16203 (rtl_verify_flow_info): ...instead of doing it here. Checks
16204 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
16205 here.
16206
ffa1b3c6
RS
162072007-01-26 Roger Sayle <roger@eyesopen.com>
16208
16209 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
16210 function to simplify/factorize operand order canonicalization.
16211 (ix86_fixup_binary_operands): Reorganize using the above function.
16212 (ix86_binary_operator_ok): Likewise.
16213
e2e30236
JJ
162142007-01-27 Jakub Jelinek <jakub@redhat.com>
16215
16216 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
16217 file scope from optimize_attrs.
16218 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
16219 up search.
16220 (optimize_attrs): Clear insn_code_values after freeing it.
16221
cdd76d88
ZD
162222007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
16223
16224 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
16225 a parts.base assignment.
16226
d93817c4
ZD
162272007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
16228
16229 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
16230 (compute_subscript_distance, initialize_data_dependence_relation,
16231 finalize_ddr_dependent, analyze_ziv_subscript,
16232 analyze_siv_subscript_cst_affine,
16233 compute_overlap_steps_for_affine_univar,
16234 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
16235 analyze_siv_subscript, analyze_miv_subscript,
16236 analyze_overlapping_iterations, subscript_dependence_tester_1,
16237 compute_self_dependence, free_dependence_relation): Work
16238 with affine_fn instead of chrecs.
16239 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
16240 common_affine_function, affine_function_base,
16241 affine_function_constant_p, affine_fn_op, affine_fn_plus,
16242 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
16243 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
16244 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
16245 (all_chrecs_equal_p): Removed.
16246 * tree-data-ref.h (affine_fn, conflict_function): New types.
16247 (struct subscript): Change type of conflicting_iterations_in_a
16248 and conflicting_iterations_in_b.
16249
dfcb2b51
SE
162502007-01-26 Steve Ellcey <sje@cup.hp.com>
16251
16252 PR other/30182
16253 * config/pa/pa.h (TARGET_HPUX_11): New.
16254 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
16255 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
16256
d3c36974
DB
162572007-01-26 Daniel Berlin <dberlin@dberlin.org>
16258 Richard Guenther <rguenther@suse.de>
16259
16260 * tree-ssa-structalias.c (solve_graph): Handle case
16261 we merged the variable to another.
16262
4b26d10b
KG
162632007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16264
16265 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
16266 functions.
16267
16268 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
16269 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
16270
21f14ff9
DD
162712007-01-25 DJ Delorie <dj@redhat.com>
16272
db9c8397
DD
16273 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
16274 allow changes to modes which don't fit in those registers.
16275
21f14ff9
DD
16276 * reload1.c (choose_reload_regs): Check for invalid subregs before
16277 computing their locations, not after.
16278
22fa69da
GK
162792007-01-25 Geoffrey Keating <geoffk@apple.com>
16280
16281 PR 25127
16282 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
16283 save Altivec registers in an eh_return function.
16284 (compute_vrsave_mask): Likewise.
16285 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
16286 for saving Altivec registers.
16287 (rs6000_emit_prologue): Don't allocate stack twice in
16288 eh_return function. Correct expected value of altivec_save_offset
16289 when using save_world. Describe save of R0 to stack when using
16290 save_world. Describe stack pointer adjustment when using
16291 save_world. Remove duplicated eh_return parameter register saving.
16292 Update sp_offset variable after save_world.
16293 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
16294 darwin-world.asm.
16295 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
16296 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
16297 implies Altivec.
16298
79e8b6c0
SE
162992007-01-25 Steve Ellcey <sje@cup.hp.com>
16300
16301 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
16302
7d522000
SE
163032007-01-25 Steve Ellcey <sje@cup.hp.com>
16304
16305 PR other/30182
16306 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
16307 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
16308
16c1c158
RG
163092007-01-25 Richard Guenther <rguenther@suse.de>
16310
16311 * doc/invoke.texi (-Wcoverage-mismatch): Document.
16312 * common.opt (-Wcoverage-mismatch): New warning option.
16313 * coverage.c (get_coverage_counts): Ignore coverage mismatch
16314 if -Wcoverage-mismatch is given.
16315
b9c369e6
RL
163162007-01-25 Razya Ladelsky <razya@il.ibm.com>
16317
537bbabd
EC
16318 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
16319 (ipcp_driver): Change to static definition.
22fa69da
GK
16320 Add dumping of the ifunctions.
16321 (constant_val_insert): Remove unused parameter. Support for SSA.
16322 (ipcp_propagate_const): Support for SSA.
16323 (ipcp_profile_bb_print): Print only analyzed nodes.
537bbabd 16324 (ipcp_replace_map_create): Remove support for Fortran constant
22fa69da 16325 for now.
537bbabd 16326 * ipa-prop.c (ipa_method_modify_stmt,
22fa69da
GK
16327 ipa_callsite_compute_param): Support for SSA.
16328 * ipa-prop.h (ipcp_driver): Remove declaration.
16329 (IS_VALID_TREE_MAP_INDEX): Add define.
16330
9dc5c4f5
GK
163312007-01-24 Geoffrey Keating <geoffk@apple.com>
16332
16333 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
16334
01ffa370
KG
163352007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16336
16337 PR middle-end/30447
16338 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
16339 constant argument to cabs and do it without checking for
16340 -funsafe-math-optimizations.
16341
e1f1ee86
DG
163422007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
16343
16344 * c-common.h (RID_FIRST_CXX0X): New.
16345 (RID_LAST_CXX0X): New.
16346 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
16347 by -Wall.
16348 * c.opt (Wc++0x-compat): New.
16349 * doc/invoke.texi (-Wc++0x-compat): Document.
16350
527cab20
KG
163512007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16352
16353 * builtins.c (fold_builtin_carg): New.
16354 (fold_builtin_1): Use it.
16355
b7c27d51
JH
163562007-01-24 Jan Hubicka <jh@suse.cz>
16357
ee411336
JH
16358 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
16359
b7c27d51
JH
16360 * ipa-inline.c (initial_insns, max_insns): Delete.
16361 (compute_max_insns): New function.
7e08fa35
UB
16362 (cgraph_decide_inlining_of_small_function): Use it; take minimal
16363 amount of insns as base for code growth.
b7c27d51
JH
16364 (cgraph_decide_inlining): Make initial_insns local; do not compute
16365 max_insns.
16366 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
16367 * doc/invoke.texi (inline-unit-growth): Update docs.
16368
3d55c64b
JJ
163692007-01-24 Jakub Jelinek <jakub@redhat.com>
16370
15a26abf
JJ
16371 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
16372 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
16373 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
16374 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
16375 for CPUs that have PTA_CX16 set.
16376
07b7aade
JJ
16377 PR middle-end/27416
16378 * gimplify.c (omp_check_private): New function.
16379 (gimplify_scan_omp_clauses): Use it for
16380 firstprivate/lastprivate/reduction.
16381
4288fea2
JJ
16382 PR middle-end/30494
16383 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
16384 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
16385
3d55c64b
JJ
16386 PR middle-end/30421
16387 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
16388 If lower_lastprivate_clauses emits some statements, append them
16389 to dlist rather than body_p and to body_p append an initializer.
16390 (lower_omp_for): Adjust caller.
16391
3b313c78
SE
163922007-01-24 Steve Ellcey <sje@cup.hp.com>
16393
16394 * target.h (globalize_decl_name): New.
16395 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
16396 * output.h (default_globalize_decl_name): New.
16397 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
16398 globalize_label.
3de8da2a 16399 (globalize_decl): Ditto.
3b313c78
SE
16400 (default_globalize_decl_name): New.
16401 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
16402 (ia64_handle_version_id_attribute): New.
16403 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
16404 (ia64_asm_output_external): Use globalize_decl_name instead
16405 of globalize_label.
16406 * doc/extend.texi (version_id): New pragma.
16407 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
16408
f767122b
AK
164092007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
16410
537bbabd 16411 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
f767122b 16412 _uleb128_t and _Unwind_SWord with _sleb128_t.
7e08fa35
UB
16413 * unwind-dw2.c (extract_cie_info, execute_stack_op,
16414 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
16415 Likewise.
f767122b
AK
16416 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
16417 * unwind-pe.h (read_uleb128, read_sleb128,
16418 read_encoded_value_with_base): Likewise.
16419 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
16420
9d972b2d
RG
164212007-01-24 Richard Guenther <rguenther@suse.de>
16422
16423 * builtins.c (expand_builtin_cexpi): Get the fndecl
16424 for cexp in the correct way.
16425
cf227303
JH
164262007-01-24 Jan Hubicka <jh@suse.cz>
16427
7e08fa35
UB
16428 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
16429 of calls.
cf227303 16430
024a85ae
AK
164312007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
16432
16433 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
16434 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
16435 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
16436 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
16437 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
16438 __SIZEOF_PTRDIFF_T__.
16439 * doc/cpp.texi: Documentation for the new builtin macros added.
16440
9db27449
UB
164412007-01-24 Uros Bizjak <ubizjak@gmail.com>
16442
16443 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
16444 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
16445 instead of operands[2] to avoid access past the end of array.
16446
92d54592
RS
164472007-01-24 Richard Sandiford <richard@codesourcery.com>
16448
16449 * reload1.c (emit_reload_insns): Pass the reload register
16450 for a non-spill output reload through forget_old_reloads_1.
16451
17caeff2
JM
164522007-01-23 Joseph Myers <joseph@codesourcery.com>
16453
16454 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16455 _SOFT_DOUBLE if doubles use software floating-point.
16456 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
16457 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
16458 * config/rs6000/darwin-ldouble.c: Also compile functions for
16459 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
16460 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
16461 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
16462 commented-out long double override.
16463 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
16464 * config/rs6000/eabispe.h: Likewise.
16465 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
16466 long double for non-SPE.
16467 (rs6000_handle_option): Likewise.
16468 (invalid_e500_subreg): Disallow more subregs involding DImode,
16469 DFmode, TImode or TFmode.
16470 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
16471 E500 double.
16472 (legitimate_lo_sum_address_p): Also check for TFmode for E500
16473 double.
16474 (rs6000_legitimize_address): Also handle TFmode for E500 double.
16475 (rs6000_legitimize_reload_address): Also handle TFmode for E500
16476 double.
16477 (rs6000_legitimate_address): Also check for TFmode for E500
16478 double.
16479 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
16480 (spe_build_register_parallel): Handle TFmode and TCmode.
16481 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
16482 double.
16483 (function_arg): Handle TFmode and TCmode for E500 double.
16484 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
16485 in general.
16486 (print_operand): Handle TFmode and TImode for %y.
16487 (rs6000_generate_compare): Handle TFmode comparisons for E500
16488 double.
16489 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
16490 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
16491 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
16492 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
16493 TFmode for E500 double.
16494 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
16495 (floatsidf2): Enable for E500 double.
16496 (movtf_softfloat): Use rs6000_nonimmediate_operand.
16497 (extenddftf2): Change to extenddftf2_fprs.
16498 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
16499 depending on TARGET_E500_DOUBLE.
16500 (extendsftf2): Enable for E500 double.
16501 (trunctfdf2): Enable for E500 double.
16502 (trunctfsf2): Change to trunctfsf2_fprs.
16503 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
16504 depending on TARGET_E500_DOUBLE.
16505 (floatsitf2): Enable for E500 double.
16506 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
16507 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
16508 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
16509 (negtf2): Change to negtf2_internal.
16510 (negtf2): New expander.
16511 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
16512 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
16513 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
16514 (movdi_internal32): Use rs6000_nonimmediate_operand.
16515 (unnamed splitter): Likewise.
16516 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
16517 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
16518 (SPE64TF, DITI): New mode macros.
16519 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
16520 modes.
16521 (frob_tf_ti): New.
16522 (frob_<mode>_di_2): New.
16523 (frob_tf_di_8_2): New.
16524 (frob_di_df): Change to frob_di_<mode>; allow more modes.
16525 (frob_ti_tf): New.
16526 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
16527 more modes.
16528 (frob_ti_<mode>_8_2): New.
16529 (frob_ti_tf_2): New.
16530 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
16531 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
16532 TFmode.
16533 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
16534 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
16535 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
16536 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
16537 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
16538 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
16539 tsttflt_gp): New.
16540
d5dc6bad
ILT
165412007-01-23 Ian Lance Taylor <iant@google.com>
16542
16543 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
16544 insn-*.o first.
16545 (OBJS-archive): Reformat, alphabetize.
16546 (OBJS): Change out_object_file to OBJS-md.
16547
7656aee4
UB
165482007-01-23 Uros Bizjak <ubizjak@gmail.com>
16549
16550 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
16551 JUMP_P and CALL_P predicates where applicable.
16552 * config/i386/i386.c: Ditto.
16553 * config/i386/i386.md: Ditto.
16554 * config/i386/mmx.md: Ditto.
16555 * config/i386/predicates.md: Ditto.
16556
c8832aae
AS
165572007-01-22 Andreas Schwab <schwab@suse.de>
16558
16559 * config/m68k/m68k.h: Fix comment.
16560
6ffa0491
JH
165612007-01-22 Jan Hubicka <jh@suse.cz>
16562
16563 * passes.c (init_optimization_passes): Do not rerun
16564 pass_early_warn_uninitialized.
16565
2f397a93
RG
165662007-01-22 Richard Guenther <rguenther@suse.de>
16567
16568 PR tree-optimization/30038
16569 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
16570 function.
16571 (execute_cse_sincos_1): Likewise.
16572 (execute_cse_sincos): Likewise.
16573 (gate_cse_sincos): Likewise.
16574 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
16575 the cexpi() canonicalization of sincos().
16576 * tree-pass.h (pass_cse_sincos): Declare.
16577 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
16578
64c91930
EB
165792007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
16580
16581 PR rtl-optimization/29329
16582 * combine.c (replaced_rhs_insn): Rename to i2mod.
16583 (replaced_rhs_value): Rename to i2mod_new_rhs.
16584 (i2mod_old_rhs): New global variable.
16585 (combine_instructions): Adjust for above change. Save a copy of
16586 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
16587 note are substituted in the second instruction.
16588 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
16589 ditch the note if it pertains to the second eliminated register
16590 and this register is mentioned in i2mod_old_rhs.
16591
16592 Revert:
16593 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
16594
16595 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
16596 the insn to which the note was originally attached.
16597
7fa49e7b
JH
165982007-01-21 Jan Hubicka <jh@suse.cz>
16599
16600 * ipa-inline.c (inlining_mode): Comment, move up.
7656aee4
UB
16601 (cgraph_decide_inlining_incrementally): Do not perform inlining
16602 itself; fix handling of flattening of self recursive functions.
7fa49e7b
JH
16603 (cgraph_find_cycles): Remove.
16604 (cgraph_flatten_node): Remove.
16605 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
16606 (try_inline): New function.
6ffa0491
JH
16607 (cgraph_early_inlining): Update call of
16608 cgraph_decide_inlining_incrementally. Apply inlining here.
7fa49e7b
JH
16609 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
16610
1eb7b049
DM
166112007-01-21 Dirk Mueller <dmueller@suse.de>
16612
16613 PR bootstrap/30511
16614 * tree-vrp.c (check_array_bounds): do not warn
16615 about ADDR_EXPR's of ARRAY_REF's which are immediately
16616 used in binary expressions.
16617
6004caaf
IR
166182007-01-21 Ira Rosen <irar@il.ibm.com>
16619
537bbabd 16620 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
6004caaf
IR
16621 read_write_dep and macros for its access.
16622 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
537bbabd 16623 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
6004caaf
IR
16624 argument, call vect_check_interleaving for every independent pair of
16625 data-refs. Mark loads that access the same memory location as a store
16626 in the loop.
16627 (vect_check_dependences): Remove.
537bbabd 16628 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
6004caaf 16629 call, fix the call to vect_analyze_data_ref_dependence.
537bbabd 16630 (vect_analyze_data_ref_access): For statements that access the same
6004caaf
IR
16631 data-ref, check that they are not stores; for loads, check that there
16632 is no store that access the same location.
16633
78681dbd
RS
166342007-01-20 Roger Sayle <roger@eyesopen.com>
16635 Joseph Myers <joseph@codesourcery.com>
16636
16637 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
16638 (-fdump-rtl-stack): Likewise.
16639 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
16640 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
16641 (-mpt-fixed): Use @minus{} for minus sign.
16642 (Using Precompiled Headers): Fix under/overfull hbox.
16643
d48a05c3
JH
166442007-01-20 Jan Hubicka <jh@suse.cz>
16645
16646 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
16647 place within annotation.
16648
4c6d8726
JDA
166492007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16650
16651 * pa.c (output_move_double): Change array size of xoperands to 4.
16652
bbba68dd
JH
166532007-01-20 Jan Hubicka <jh@suse.cz>
16654
16655 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
16656 as temporary.
16657
e4c9f3c2
ILT
166582007-01-19 Ian Lance Taylor <iant@google.com>
16659
16660 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
16661 constant to unsigned HOST_WIDE_INT before negating.
16662
b2bcf557
ILT
166632007-01-19 Ian Lance Taylor <iant@google.com>
16664
16665 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
16666 to unsigned.
16667 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
16668 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
16669 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
16670 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
16671 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
16672 (realloc_vdef, realloc_vuse): Change second parameter to
16673 unsigned.
16674 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
16675 fields to unsigned.
16676 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
16677 unsigned. Change x and lim locals to unsigned.
16678 (realloc_vdef, realloc_vuse): Change num_elem parameter to
16679 unsigned.
16680 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
16681 (copy_virtual_operands): Change i and n locals to unsigned.
16682
92d96628
KG
166832007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16684
16685 PR middle-end/29335
16686 * builtins.c (fold_builtin_1): Handle builtin fdim.
16687
c9fa8bd4
JH
166882007-01-20 Jan Hubicka <jh@suse.cz>
16689
3de8da2a
UB
16690 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
16691 * tree-ssa-structalias.c (compute_points_to_sets): Do call
16692 init_alias_heapvars.
16693 (init_alias_heapvars): Initialize only when not already initialized.
16694 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
c9fa8bd4 16695
db02da79
RS
166962007-01-19 Roger Sayle <roger@eyesopen.com>
16697
16698 * common.opt (fsigned-zeros): New command line option.
16699 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
16700 of flag_unsafe_math_optimizations.
16701 * opts.c (set_fast_math_flags): The -ffast-math command line option
16702 implies -fno-signed-zeros.
16703 (fast_math_flags_set_p): Likewise.
16704
16705 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
16706 the documentation of -ffast-math appropriately. Wrap long lines.
16707
67e47f30
SE
167082007-01-19 Steve Ellcey <sje@cup.hp.com>
16709
16710 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
16711 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
16712
6bad2617
TB
167132007-01-19 Tomas Bily <tbily@suse.cz>
16714
3de8da2a
UB
16715 * cgraphunit.c (cgraph_finalize_function): Updating of pid
16716 * tree-profile.c:
16717 (tree_init_ic_make_global_vars): New function
16718 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
16719 (tree_gen_ic_profiler): New function
16720 (tree_gen_ic_func_profiler): New function
16721 (tree_profiling): Added calling of tree_gen_ic_func_profiler
16722 (tree_profile_hooks): Added hook for indirec/virtual calls
16723 * value-prof.c (tree_find_values_to_profile): New case for
16724 indirect calls
16725 (tree_values_to_profile): Call for determining indirect/virtual
16726 counters
16727 (tree_indirect_call_to_profile): New function
16728 (tree_ic_transform): New function
16729 (tree_ic): New function
16730 (find_func_by_pid): New function
16731 (init_pid_map): New function
16732 (tree_value_profile_transformations): Added check for
16733 indirect/virtual call transformation
16734 * value-prof.h (enum hist_type): New counter type for
16735 indirect/virtual calls
16736 (profile_hooks): Added new hook for profiling indirect/virtual
16737 calls
16738 * profile.c (instrument_values): New case for indirect/virtual
16739 call added
16740 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
16741 (GCOV_COUNTER_V_INDIR): New counter type
16742 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
16743 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
16744 call added
16745 * cgraph.c: Definition of cgraph_max_pid
16746 (cgraph_create_node): Default init of pid attribute
16747 * cgraph.h: Declaration of cgraph_max_pid
16748 (struct cgraph_node): Added pid attribute
16749 * libgcov.c (__gcov_indirect_call_profiler): New function
6bad2617
TB
16750 (__gcov_one_value_profiler_body): New function
16751 (__gcov_one_value_profiler): Body was moved to
16752 __gcov_one_value_profiler_body and calls it
16753
b7c75af4 167542007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
537bbabd 16755
b153d3e1 16756 * doc/gty.texi (Options): Document the mark_hook option to GTY.
3de8da2a
UB
16757 * gengtype.c (write_types_data, write_func_for_structure,
16758 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
16759 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
16760 (walk_type, write_func_for_structure): Generate the mark_hook if
16761 needed.
b7c75af4 16762
c3056c2d
JH
167632007-01-19 Jan Hubicka <jh@suse.cz>
16764
6ffa0491
JH
16765 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
16766 'early' argument take inlining mode argument specifying whether to
16767 inline for size/speeed or all functions; add support for flattening;
16768 improve dumpting.
c3056c2d
JH
16769 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
16770
e65fff3c
MLI
167712007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16772
16773 PR c++/17947
16774 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
16775 the name of the declared identifier.
537bbabd 16776
b0fede98
DM
167772007-01-19 Dirk Mueller <dmueller@suse.de>
16778
16779 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
16780 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
16781 duplicate evaluation.
16782
e2fc57a3
UB
167832007-01-19 Uros Bizjak <ubizjak@gmail.com>
16784
16785 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
16786 Macroize expander using X87MODEF12 mode macro. Extend operand 1
16787 to XFMode, use acosxf2 and truncate result to requested mode.
16788 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
16789 (asin<mode>2): Similarly, with asin expanders.
16790 (*fscalexf4_i387): Rename from *fscalexf4.
16791 (expNcorexf3): New expander.
16792 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
16793 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
16794 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
16795 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
16796 patterns for SSE math.
16797 (exp10<mode>2): Similarly, with exp10 expanders.
16798 (exp2<mode>2): Similarly, with exp2 expanders.
16799 (expm1<mode>2): Similarly, with expm1 expanders.
16800 (ldexp<mode>3): Similarly, with ldexp expanders.
16801 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
16802 Use gen_truncxf<mode>2_i387_noop to truncate result.
16803
aaacff32
RS
168042007-01-19 Richard Sandiford <richard@codesourcery.com>
16805
16806 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
16807 for ColdFire targets.
16808
835b4008
NS
168092007-01-19 Nathan Sidwell <nathan@codesourcery.com>
16810 Richard Sandiford <richard@codesourcery.com>
16811
16812 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
16813 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
16814 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
16815 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
16816 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
16817 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
16818
b6d2f42e
RS
168192007-01-19 Richard Sandiford <richard@codesourcery.com>
16820
16821 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
16822 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
16823 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
16824 (*adddi_dilshr32_cf): New pattern.
16825 (adddi3, subdi3): Remove first alternatives.
16826
f6ab62e8
RS
168272007-01-19 Richard Sandiford <richard@codesourcery.com>
16828
16829 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
16830 implemented using move.l, do not use its cc result for floating-point
16831 comparisons.
16832
fe0cc776
RS
168332007-01-19 Richard Sandiford <richard@codesourcery.com>
16834
16835 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
16836 from accepting 's' constraints if flag_pic.
16837
379cd895
RS
168382007-01-19 Richard Sandiford <richard@codesourcery.com>
16839
16840 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
16841 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
16842 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
16843 condition from TARGET_68881 to TARGET_HARD_FLOAT.
16844
7a6525d6
SL
168452007-01-19 Sandra Loosemore <sandra@codesourcery.com>
16846
16847 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
16848 ColdFire alternatives.
16849 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
16850 * config/m68k/m68k.md (clzsi2): Define for ColdFire
16851 architectures that support ff1 instruction.
16852
f233b84c
RS
168532007-01-19 Richard Sandiford <richard@codesourcery.com>
16854 Julian Brown <julian@codesourcery.com>
16855
16856 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
16857 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
16858 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
16859 Add commentary.
16860
bda2a571
RS
168612007-01-19 Richard Sandiford <richard@codesourcery.com>
16862
16863 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
16864 and return a bool.
16865 (output_move_const_into_data_reg, output_move_simode_const): Delete.
16866 * config/m68k/m68k.c (const_method, const_int_cost): Take a
16867 HOST_WIDE_INT instead of an rtx.
16868 (m68k_rtx_costs): Update call accordingly.
16869 (output_move_const_into_data_reg): Likewise. Fix formatting.
16870 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
16871 Return a bool.
16872 (output_move_simode_const): Update calls after above changes.
16873 Rework to use automatic variables and predicates like MEM_P.
16874 * config/m68k/m68k.md (pushexthisi_const): Update call to
16875 valid_mov3q_const.
16876
23e73993
DM
168772007-01-19 Dirk Mueller <dmueller@suse.de>
16878
16879 * tree-ssa-alias.c (perform_var_substitution): Fix typo
16880 in dump_flags test.
16881
b54c5497
RG
168822007-01-19 Richard Guenther <rguenther@suse.de>
16883
16884 * builtins.c (expand_builtin_cexpi): Fall back to expanding
16885 via cexp in case sincos is not available.
16886
006339cd
RG
168872007-01-19 Richard Guenther <rguenther@suse.de>
16888
16889 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
16890 * defaults.h (TARGET_HAS_SINCOS): Default to off.
16891 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
16892 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
16893 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
16894 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
16895 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
16896 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
16897
8ef4f42c
UB
168982007-01-19 Uros Bizjak <ubizjak@gmail.com>
16899
16900 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
16901 New insn patterns.
16902 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
16903 (atan2xf3): Directly generate RTL pattern.
16904 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
16905 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
16906 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
16907 disable patterns for SSE math.
16908 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
16909 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
16910 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
16911 disable patterns for SSE math.
16912
fe30b1f3
AO
169132007-01-19 Alexandre Oliva <aoliva@redhat.com>
16914
16915 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
16916
f85242f0
RS
169172007-01-18 Roger Sayle <roger@eyesopen.com>
16918
16919 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
16920 VIEW_CONVERT_EXPR to the same type as it's operand.
16921
7fcc054b
DE
169222007-01-18 David Edelsohn <edelsohn@gnu.org>
16923
16924 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
16925 configured for long double 128.
16926
d1123cde
MS
169272007-01-18 Mike Stump <mrs@apple.com>
16928
16929 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
16930 error.
16931
7874f14d
MM
169322007-01-18 Michael Meissner <michael.meissner@amd.com>
16933
16934 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
16935 type correct.
16936
4cdffd96
JH
169372007-01-18 Jan Hubicka <jh@suse.cz>
16938
16939 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
16940 greater than NUM_VOP_FREE_BUCKETS.
16941
3e5937d7
DB
169422007-01-18 Daniel Berlin <dberlin@dberlin.org>
16943
16944 * tree-ssa-structalias.c: Update comments.
16945 (ptabitmap_obstack): Removed.
16946 (pta_obstack): New.
16947 (oldpta_obstack): Ditto.
16948 (stats): Add a few members.
16949 (struct variable_info): Remove node, complex, address_taken, and
16950 indirect_target members. Add oldsolution member.
16951 (new_var_info): Do not initialize removed members.
16952 (constraint_expr_type): Remove INCLUDES.
16953 (constraint_graph): Add size, implicit_preds, rep,
16954 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
16955 (FIRST_REF_NODE): New macro.
16956 (LAST_REF_NODE): Ditto.
16957 (FIRST_ADDR_NODE): Ditto.
16958 (find): New function.
16959 (unite): Ditto.
16960 (dump_constraint): Do not handle INCLUDES.
16961 (insert_into_complex): Do not insert duplicate constraints.
16962 (condense_varmap_nodes): Renamed and rewritten into ...
16963 (merge_node_constraints): This. Also fix bug in handling of
16964 offseted copy constraints.
16965 (clear_edges_for_node): No longer need to deal with preds at all,
537bbabd 16966 or removing associated preds/succs.
3e5937d7
DB
16967 (merge_graph_nodes): Deal with indirect_cycles.
16968 Don't deal with predecessors.
16969 (add_implicit_graph_edge): New function.
16970 (add_pred_graph_edge): Ditto.
16971 (add_graph_edge): Don't deal with predecessors.
16972 (build_constraint_graph): Removed.
16973 (build_pred_graph): New function.
16974 (build_succ_graph): Ditto.
16975 (struct scc_info): Removed in_component. Added roots, dfs, and
16976 node_mapping. Remove visited_index, unification_queue.
16977 (scc_visit): Deal with union-find we do now.
16978 Deal with cycles with REF nodes.
16979 (collapse_nodes): Renamed and rewritten to ...
16980 (unify_nodes): This.
16981 (process_unification_queue): Removed.
16982 (topo_visit): Cleanup
16983 (do_da_constraint): Use find.
16984 (do_sd_constraint): Ditto.
16985 (do_ds_constraint): Ditto.
16986 (do_complex_constraint): Ditto.
16987 (init_scc_info): Update for removed and added members.
16988 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
16989 (find_indirect_cycles): This.
16990 (equivalence_class): New variable.
16991 (label_visit): New function.
16992 (perform_variable_substitution): Rewritten.
16993 (free_var_substitution_info): New function.
16994 (find_equivalent_node): Ditto.
16995 (move_complex_constraints): Ditto.
16996 (eliminate_indirect_cycles): Ditto.
16997 (solve_graph): Only propagate changed bits.
16998 Use indirect cycle elimination.
16999 Use find.
17000 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
17001 (tree_id_eq): Renamed to ...
17002 (tree_vi_eq): This. Update for member change
17003 (insert_id_for_tree): Renamed and rewritten to ...
17004 (insert_vi_for_tree): This.
17005 (lookup_id_for_tree): Renamed and rewritten to ...
17006 (lookup_vi_for_tree): This.
17007 (get_id_for_tree): Renamed and rewritten to ...
17008 (get_vi_for_tree): Ditto.
17009 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
17010 (process_constraint): Don't handle INCLUDES.
17011 Remove special ADDRESSOF case.
17012 (find_func_aliases): Rewrite to use vi functions instead of id
17013 ones.
17014 (create_function_info_for): Ditto.
17015 (create_variable_info_for): Ditto.
17016 (intra_create_variable_infos): Ditto.
17017 (merge_smts_into): Ditto.
17018 (find_what_p_points_to): Ditto.
17019 (init_base_vars): Ditto.
17020 (init_alias_vars): Ditto.
17021 (remove_preds_and_fake_succs): New function.
17022 (dump_sa_points_to_info): Dump new stats.
17023 (dump_solution_for_var): Use find.
17024 (set_used_smts): Fix formatting.
17025 (compute_points_to_sets): Updated for new functions.
17026 (ipa_pta_execute): Ditto.
17027
576c9028
KH
170282007-01-18 Kazu Hirata <kazu@codesourcery.com>
17029 Richard Sandiford <richard@codesourcery.com>
17030
17031 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
17032 parallels.
17033 * calls.c (expand_call): If the return value is a PARALLEL,
17034 extract its first member.
17035 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
17036 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
17037 use FUNCTION_EXTRA_EPILOGUE.
17038 (m68k_function_value): Return a PARALLEL if the return value
17039 is of a pointer type.
17040 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
17041 (FUNCTION_EXTRA_EPILOGUE): Remove.
17042 * config/m68k/m68k.md (D0_REG): New constant.
17043
dfd05074
KH
170442007-01-18 Kazu Hirata <kazu@codesourcery.com>
17045
17046 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
17047 output a NOP for empty epilogues.
17048
413ac1b2
RS
170492007-01-18 Richard Sandiford <richard@codesourcery.com>
17050
17051 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
17052 before function. Extend register save check to include all
17053 registers, not just integer ones.
17054
a2bda628
KH
170552007-01-18 Kazu Hirata <kazu@codesourcery.com>
17056
17057 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
17058 (m68k_use_return_insn): ...this.
17059 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
17060 * config/m68k/m68k.c (use_return_insn): Rename to...
17061 (m68k_use_return_insn): ...this.
17062 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
17063 of USE_RETURN_INSN.
17064
e444d54e
NS
170652007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17066
17067 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
17068 nearest even, fix denormal rounding overflow.
17069
17e143a1
RS
170702007-01-18 Richard Sandiford <richard@codesourcery.com>
17071
17072 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
17073 f%$smove and f%$move.
17074 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
17075 (extendsfdf2_cf): Use fdmove instead of f%&move.
17076 (truncdfsf2_cf): Use fsmove instead of f%$smove.
17077 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
17078
bb017fc1
RS
170792007-01-18 Richard Sandiford <richard@codesourcery.com>
17080
17081 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
17082 GPR<-GPR moves.
17083
58145e4d
RS
170842007-01-18 Richard Sandiford <richard@codesourcery.com>
17085
17086 * real.h (real_format): Add a canonical_nan_lsbs_set field.
17087 (coldfire_single_format): Declare.
17088 (coldfire_double_format): Likewise.
17089 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
17090 of qnan_msb_set to determine the lower bits of a canonical
17091 NaN significand.
17092 (encode_ieee_double): Likewise.
17093 (encode_ieee_quad): Likewise.
17094 (ieee_single_format): Initialize canonical_nan_lsbs_set.
17095 (mips_single_format): Likewise.
17096 (ieee_double_format): Likewise.
17097 (mips_double_format): Likewise.
17098 (ieee_extended_motorola_format): Likewise.
17099 (ieee_extended_intel_96_format): Likewise.
17100 (ieee_extended_intel_128_format): Likewise.
17101 (ieee_extended_intel_96_round_53_format): Likewise.
17102 (ibm_extended_format): Likewise.
17103 (mips_extended_format): Likewise.
17104 (ieee_quad_format): Likewise.
17105 (mips_quad_format): Likewise.
17106 (vax_f_format): Likewise.
17107 (vax_d_format): Likewise.
17108 (vax_g_format): Likewise.
17109 (i370_single_format): Likewise.
17110 (i370_double_format): Likewise.
17111 (decimal_single_format): Likewise.
17112 (decimal_double_format): Likewise.
17113 (decimal_quad_format): Likewise.
17114 (c4x_single_format): Likewise.
17115 (c4x_extended_format): Likewise.
17116 (real_internal_format): Likewise.
17117 (coldfire_single_format): New real_format.
17118 (coldfire_double_format): Likewise.
17119 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
17120 canonical_nan_lsbs_set.
17121 (pdp11_d_format): Likewise.
17122 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
17123 if TARGET_COLDFIRE_CPU.
17124
29ca003a
RS
171252007-01-18 Richard Sandiford <richard@codesourcery.com>
17126
17127 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
17128 (output_call, m68k_legitimize_call_address): Declare.
17129 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
17130 parenthesees. Add support for a 'W' constraint.
17131 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
17132 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
17133 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
17134 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
17135 variables.
17136 (override_options): Initialize them. Do not set flag_no_function_cse
17137 for TARGET_ID_SHARED_LIBRARY.
17138 (m68k_output_pic_call): Delete.
17139 (m68k_legitimize_call_address): New function.
17140 (print_operand): Remove the %o prefix. Handle the %p prefix.
17141 (output_call): New function.
17142 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
17143 target address from the GOT if symbolic jumps are not allowed.
17144 * config/m68k/m68k.md (call, general_operand): Do not set
17145 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
17146 Merge separate flag_pic and !flag_pic define_insns into...
17147 (*call, *call_value): ...these new patterns. Match the address
17148 rather than the containing MEM and require it to be a call_operand.
17149 Use output_call to generate the asm template.
17150 * config/m68k/predicates.md (const_call_operand): New predicate.
17151 (call_operand): Likewise.
17152
85dbf7e2
NS
171532007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17154
17155 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
17156 (STACK_GROWS_DOWNWARD): Define to 1.
17157 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
17158 comments, emphasizing that these values are only defaults.
17159 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
17160 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
17161
565e35c9
RS
171622007-01-18 Richard Sandiford <richard@codesourcery.com>
17163
17164 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
17165
36e04090
KH
171662007-01-18 Kazu Hirata <kazu@codesourcery.com>
17167 Richard Sandiford <richard@codesourcery.com>
17168
17169 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
17170 (FP_REGNO_P): New macros.
17171 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
17172 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
17173 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
17174 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
17175
47b41fa3
NS
171762007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17177
17178 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17179 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
17180 to $tmake_file.
17181 * config/m68k/t-floatlib: New file, extracting common code from...
17182 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
17183 * config/m68k/t-uclinux: Here.
17184 * config/m68k/fpgnulib.c: Do not compile extendeed precision
17185 routines on ColdFire targets.
17186
a96533d5
NS
171872007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17188
17189 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17190 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
17191 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
17192 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
17193 explicitly set MOTOROLA to 1.
17194 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
17195
ba5f7c88
RS
171962007-01-18 Richard Sandiford <richard@codesourcery.com>
17197 Nathan Sidwell <nathan@codesourcery.com>
17198
17199 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
17200 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
17201 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
17202 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
17203 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
17204 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
17205 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
17206 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
17207 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
17208 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
17209 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
17210 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
17211 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
17212 (DBX_REGISTER_NUMBER): Delete.
17213 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
17214 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
17215 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
17216
abe92a04
RS
172172007-01-18 Richard Sandiford <richard@codesourcery.com>
17218
17219 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
17220 * config/flat.h: New file.
17221 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
17222 OBJECT_FORMAT_FLAT.
17223 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
17224 indirect references for -msep-data or -mid-shared-library.
17225 Do not use PC-relative code addresses either.
17226 * config/m68k/m68k.c (override_options): Restrict -fPIC error
17227 to -mpcrel.
17228 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
17229 for shared libraries and crt1.o for executables. Use crti.o and
17230 crtbegin.o.
17231 (ENDFILE_SPEC): Use crtend.o and crtn.o.
17232 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
17233 Do not add -elf2flt or -shared-lib-id options here.
17234 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
17235 Pass -shared-lib-id if -mid-shared-library, taking the library
17236 identifier from -mshared-library-id if given, otherwise
17237 defaulting to 0.
17238 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
17239 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
17240 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
17241 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
17242 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
17243 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
17244 and crtend.o.
17245 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
17246 jump sequence for ISA A and ISA A+.
17247 (PICJUMP): Likewise.
17248
78218d89
RS
172492007-01-18 Richard Sandiford <richard@codesourcery.com>
17250
17251 * config.gcc (m68k-*-uclinux*): Base the port on the common
17252 and m68k GNU/Linux files rather than on the generic ELF ones.
17253 * config/m68k/uclinux.h (TARGET_VERSION): Override.
17254 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
17255
5189ab94
JB
172562007-01-18 Julian Brown <julian@codesourcery.com>
17257 Richard Sandiford <richard@codesourcery.com>
17258
17259 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
17260 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
17261 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
17262 before redefining.
17263 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
17264 80 unconditionally.
17265 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
17266
4529dbf1
RS
172672007-01-18 Richard Sandiford <richard@codesourcery.com>
17268
17269 * doc/install.texi: Document m68k-uclinuxoldabi.
17270 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
17271 * config/m68k/uclinux-oldabi.h: New file, copied from
17272 config/m68k/uclinux.h.
17273
e2265be0
KK
172742007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
17275
17276 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
17277 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
17278 (m32r_compute_frame_size): Use unsigned for regno.
17279 (m32r_reload_lr): Use gen_frame_mem.
17280 (pop): New.
17281 (m32r_output_function_epilogue): Don't output the function epilogue
17282 textually here.
17283 (m32r_expand_epilogue): New.
17284 (direct_return): Return false if the function has the interrupt
17285 attribute.
17286 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
17287 * config/m32r/m32r.md (epilogue): New expander.
17288 (return_lr, return_rte): New insns.
17289 (return): Make it expander.
17290 (return_normal): New expander.
17291
370df7db
JC
172922007-01-18 Josh Conner <jconner@apple.com>
17293
17294 PR target/30485
17295 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
17296 support for UNLE, UNLT, UNGE, and UNGT.
17297
1994bfea
JH
172982007-01-18 Jan Hubicka <jh@suse.cz>
17299
17300 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
17301 * tree-tailcall (add_virtual_phis): Likewise.
17302 (optimize_tail_call): Return TODOs.
17303 (execute_tail_calls): Return TODOs.
17304 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
17305 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
17306 changed.
17307 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
17308 Cleanup cfg using TODO.
17309 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
17310 * passes.c (execute_function_todo): When cleanup did something, remove
17311 unused locals.
17312 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
17313 (make_edges): Don't cleanup_cfg.
17314
d85c7550
UB
173152007-01-18 Uros Bizjak <ubizjak@gmail.com>
17316
17317 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
17318 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
17319 operate on the top of stack.
17320 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
17321 register handling of instructions that output to the second
17322 stack slot.
17323 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
17324 (move_for_stack_reg): Special-case check for dead destination
17325 stack slot for constant load of 1.0 inside UNSPEC_TAN.
17326
17327 * config/i386/i386.md (UNSPEC_TAN): New constant.
17328 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
17329 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
17330 to correctly model move of constant 1.0 to top stack slot.
17331 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
17332 (unnamed peephole2 pattern): Remove corresponding peephole2
17333 pattern that optimizes tan insn and loading of constant 1.0.
17334 (tanxf2): Use fptanxf4_i387.
17335 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
17336 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
17337 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
17338 disable patterns for SSE math.
17339 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
17340 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
17341
590b1f2d 173422007-01-18 Dirk Mueller <dmueller@suse.de>
d85c7550 17343 Richard Guenther <rguenther@suse.de>
590b1f2d 17344
d85c7550
UB
17345 PR diagnostic/8268
17346 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
17347 * common.opt (Warray-bounds): Add new warning option.
17348 * c-opts.c (c_common_handle_option): Define -Warray-bounds
17349 if -Wall is given.
590b1f2d 17350 * Makefile.in: make tree-vrp.o depend on toplev.h
d85c7550
UB
17351 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
17352 is enabled.
17353 (check_array_refs, check_array_bounds, check_array_ref): New.
590b1f2d 17354
d85c7550 173552007-01-18 Jan Hubicka <jh@suse.cz>
3253eafb
JH
17356
17357 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
17358 (execute_ssa_ccp): Return flags conditionally.
17359 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
17360 changed.
17361 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
17362
d85c7550 173632007-01-18 Steven Bosscher <steven@gcc.gnu.org>
aeceeb06
SB
17364
17365 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
17366 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
17367
17368 * Makefile.c (GTFILES): Add cfglayout.h.
17369 * gengtype.c (open_base_files): Likewise.
17370 * cfglayout.c (cfg_layout_function_footer,
17371 cfg_layout_function_header) Reindent to make gengtype happy.
17372 * cfglayout.h (cfg_layout_function_footer,
17373 cfg_layout_function_header): Add GTY(()) marker.
17374
17375 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
17376
19b8c2d9
BE
173772007-01-18 Ben Elliston <bje@au.ibm.com>
17378
17379 * genautomata.c (write_automata): Include xstrerror output in the
17380 error message if writing the DFA description file fails.
17381
f8fdb503
L
173822007-01-17 H.J. Lu <hongjiu.lu@intel.com>
17383
17384 * config/mips/mips-protos.h (mips_output_external): Make it
17385 return void.
17386 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
17387 * config/mips/mips.c (irix_output_external_libcall): Likewise.
17388 (extern_list): Likewise.
17389 (extern_head): Likewise.
17390 (TARGET_ASM_FILE_END): Likewise.
17391 (mips_file_end): Likewise.
17392 (mips_output_external): Rewritten.
17393
495fb8cd
BE
173942007-01-18 Ben Elliston <bje@au.ibm.com>
17395
17396 * genpreds.c (write_insn_preds_c): Only write out the function
17397 body for regclass_for_constraint if we have register constraints.
17398
4eb3e795
TT
173992007-01-17 Tom Tromey <tromey@redhat.com>
17400
17401 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
17402 * doc/install.texi (Testing): Use sourceware.org.
17403 (Binaries): Likewise.
17404 (Specific): Likewise.
17405 * doc/contrib.texi (Contributors): Use sourceware.org.
17406
e7fd0be4
ILT
174072007-01-17 Anatoly Sokolov <aesok@post.ru>
17408
17409 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
17410 (AVR_ENHANCED): Rename to ...
17411 (AVR_HAVE_MUL): ... new.
17412 (avr_enhanced_p): Rename to ...
17413 (avr_have_mul_p): ... new.
537bbabd 17414 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
e7fd0be4
ILT
17415 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
17416 * config/avr/avr.c (avr_enhanced_p): Rename to ...
17417 (avr_have_mul_p): ... new.
17418 (base_arch_s): Rename 'enhanced' to 'have_mul'.
17419 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
17420 'avr_enhanced_p' and 'enhanced'.
537bbabd 17421 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
e7fd0be4
ILT
17422 AVR_HAVE_MUL instead of AVR_ENHANCED.
17423 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
537bbabd
EC
17424 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
17425 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
e7fd0be4
ILT
17426 instead of AVR_ENHANCED.
17427 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
17428 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
17429 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
dd6d1f8c 17430
efb7e1e0
ILT
174312007-01-17 Ian Lance Taylor <iant@google.com>
17432
17433 * vec.h (VEC_reserve_exact): Define.
17434 (vec_gc_p_reserve_exact): Declare.
17435 (vec_gc_o_reserve_exact): Declare.
17436 (vec_heap_p_reserve_exact): Declare.
17437 (vec_heap_o_reserve_exact): Declare.
17438 (VEC_OP (T,A,reserve_exact)): New static inline function, three
17439 versions.
17440 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
17441 negative parameter.
17442 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
17443 (VEC_OP (T,A,copy)) [all versions]: Likewise.
17444 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
17445 * vec.c (calculate_allocation): Add exact parameter. Change all
17446 callers.
17447 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
17448 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
17449 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
17450 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
17451 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
17452 (vec_heap_p_reserve_exact): New function.
17453 (vec_heap_o_reserve_exact): New function.
17454
dd82a6c6
JH
174552007-01-17 Jan Hubicka <jh@suse.cz>
17456
17457 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
17458
30fd45a0
EC
174592007-01-17 Eric Christopher <echristo@apple.com>
17460
17461 * config.gcc: Support core2 processor.
17462
109c8d39
JH
174632007-01-16 Jan Hubicka <jh@suse.cz>
17464
17465 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
7e08fa35
UB
17466 the names, just unlink the chain so we don't crash on dangling
17467 pointers
109c8d39
JH
17468 to dead SSA names.
17469
873aa8f5
JH
174702007-01-16 Jan Hubicka <jh@suse.cz>
17471
17472 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
17473 * tree-pass.h: Reorder to make IPA passes appear toegher.
7e08fa35
UB
17474 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
17475 Declare.
873aa8f5
JH
17476 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
17477 parameters, do not call early inliner.
17478 * ipa-inline.c: Update comments. Include tree-flow.h
17479 (cgraph_decide_inlining): Do not compute inlining parameters.
17480 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
17481 be called with function context set up.
17482 (pass_ipa_inline): Remove unreachable functions before pass.
17483 (cgraph_early_inlining): Simplify assuming to be called from the
17484 PM as local pass.
17485 (pass_early_inline): New pass.
17486 (cgraph_gate_ipa_early_inlining): New gate.
17487 (pass_ipa_early_inline): Turn into simple wrapper.
17488 (compute_inline_parameters): New function.
17489 (gate_inline_passes): New gate.
17490 (pass_inline_parameters): New pass.
17491 (apply_inline): Move here from tree-optimize.c
17492 (pass_apply_inline): New pass.
17493 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
17494 transforming.
17495 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
17496 doing them by hand.
17497 (tree_function_versioning): Do not allocate dummy struct function.
17498 * tree-inline.h (optimize_inline_calls): Update prototype.
17499 * tree-optimize.c (execute_fixup_cfg): Export.
17500 (pass_fixup_cfg): Remove
17501 (tree_rest_of_compilation): Do not apply inlines.
17502 * tree-flow.h (execute_fixup_cfg): Declare.
17503 * Makefile.in (gt-passes.c): New.
17504 * passes.c: Include gt-passes.h
17505 (init_optimization_passes): New passes.
17506 (nnodes, order): New static vars.
17507 (do_per_function_toporder): New function.
17508 (execute_one_pass): Dump current pass here.
17509 (execute_ipa_pass_list): Don't dump current pass here.
17510
70b81845
JJ
175112007-01-16 Janis Johnson <janis187@us.ibm.com>
17512
17513 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
17514 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
17515
d0768f19
DE
175162007-01-16 David Edelsohn <edelsohn@gnu.org>
17517
17518 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
17519 (strong_alias): Define.
17520 (__gcc_qmul): Provide non-FMA for soft-float.
17521 (__gcc_qdiv): Same.
17522 (__gcc_qneg): New.
17523 (__gcc_qeq): New.
17524 (__gcc_qle): New.
17525 (__gcc_qge): New.
17526 (__gcc_qunord): New.
17527 (__gcc_stoq): New.
17528 (__gcc_dtoq): New.
17529 (__gcc_qtos): New.
17530 (__gcc_qtod): New.
17531 (__gcc_qtoi): New.
17532 (__gcc_qtou): New.
17533 (__gcc_itoq): New.
17534 (__gcc_utoq): New.
17535 (fmsub): New.
17536 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
17537 soft-float functions.
17538 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
17539 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
17540 about long double soft float.
17541
878aa817 175422007-01-16 Dorit Nuzman <dorit@il.ibm.com>
3de8da2a 17543 Tehila Meyzels <tehila@il.ibm.com>
878aa817
DN
17544
17545 * tree-vectorizer.h (is_pattern_stmt_p): New.
17546 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
17547 formatting (tabs instead of spaces). Cleanup and clarify setting
17548 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
17549 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
17550 (vectorizable_type_demotion): Check that types are integral.
17551 (vectorizable_type_promotion): Likewise.
17552 (vectorizable_store): Fix typo. Eliminate new-line at end of
17553 comments.
17554
03b1d134
JH
175552007-01-16 Jan Hubicka <jh@suse.cz>
17556
17557 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
17558 cgraph edges too.
17559
632ac2b4
EC
175602007-01-15 Eric Christopher <echristo@apple.com>
17561
17562 * ifcvt.c: Include vec.h, vecprim.h.
17563 (check_cond_move_block): New argument regs.
17564 Reorganize. Add registers used to regs.
17565 (cond_move_process_if_block): Use regs set above as
17566 loop bounds.
17567
7a292b24
EC
175682007-01-15 Eric Christopher <echristo@apple.com>
17569
17570 * config/darwin.h: Update copyright.
17571 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
17572 (LINK_COMMAND_SPEC): Add -u.
17573 (LINK_SPEC): Fix umbrella for above.
17574
af7a7593
JM
175752007-01-15 Joseph S. Myers <joseph@codesourcery.com>
17576
17577 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
17578 glibc CVS.
17579
69403237
TT
175802007-01-15 Tom Tromey <tromey@redhat.com>
17581
17582 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
17583 * doc/install.texi (Testing): Don't mention jacks.
17584 (Configuration): Document --enable-java-maintainer-mode. Move
17585 --with-java-home to libgcj-specific section. Document
17586 --with-ecj-jar.
17587 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
17588
7665f023
JH
175892007-01-15 Jan Hubicka <jh@suse.cz>
17590
17591 * tree-ssa-dce.c (DCE_TODOs): New.
17592 (propagate_necessity): Return if something changed.
17593 (eliminate_unnecessary_stmts): Likewise.
17594 (perform_tree_ssa_dce): Return TODO flags when needed.
17595 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
17596
0ac45694
UB
175972007-01-15 Uros Bizjak <ubizjak@gmail.com>
17598
17599 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
17600 (fyl2x_extend<mode>xf3_i387): New insn pattern.
17601 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
d85c7550 17602 patterns using X87MODEF12 mode macro. Extend operand 1
0ac45694
UB
17603 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
17604 (log10<mode>2): Ditto.
17605 (log2<mode>2): Ditto.
17606 (log1p<mode>2): Ditto.
17607 (logb<mode>2): Ditto.
17608 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
17609 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
17610 (*fxtractxf3_i387): Rename from *fxtractxf3.
17611 (fxtract_extend<mode>xf3_i387): New insn pattern.
17612 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
0ac45694
UB
17613 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
17614 and gen_fyl2xxf3_i387().
17615
b4c1c7e3
ZD
176162007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
17617
17618 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
17619 * cfgloopmanip.c (fix_loop_placement): Made static. Use
17620 get_loop_exit_edges. Changed return type to bool.
17621 * cfgloop.h (fix_loop_placement): Declaration removed.
17622
acdc40df
DN
176232007-01-14 Dorit Nuzman <dorit@il.ibm.com>
17624
17625 * param.h (MIN_VECT_LOOP_BOUND): New.
17626 * params.def (MIN_VECT_LOOP_BOUND): New.
17627 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
7a292b24 17628 argument - minimum threshold for number of iterations.
acdc40df
DN
17629 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
17630 argument to declaration.
7a292b24 17631 * tree-vect-analyze.c (vect_analyze_operations): Check value of
acdc40df
DN
17632 MIN_VECT_LOOP_BOUND.
17633 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
17634 slpeel_tree_peel_loop_to_edge with additional argument.
17635 (vect_do_peeling_for_alignment): Likewise.
17636 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
17637
37fc8424
UB
176382007-01-14 Uros Bizjak <ubizjak@gmail.com>
17639
17640 PR target/30413
17641 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
17642 operands of size 1.
17643
326648f1
JH
176442007-01-14 Jan Hubicka <jh@suse.cz>
17645
17646 * tree-dfa.c (remove_referenced_var): New function.
17647 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
17648 prune referenced vars list too.
17649 * tree-flow.h (remove_referenced_var): Declare.
17650
4437b50d
JH
176512007-01-14 Jan Hubicka <jh@suse.cz>
17652
17653 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
17654 separately.
17655 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
17656 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
17657 * except.h (verify_eh_throw_table_statements): Kill prototype.
17658 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
17659 into call exrepssions.
17660 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
17661 eh trhow verifier.
17662 * tree-cfg.c: Include pointer-set.h.
17663 (verify_node_sharing): Work on pointer set.
17664 (verify_eh_throw_stmt_node): New.
17665 (verify_stmts): Use pointers sets, verify throw_stmt.
17666
2a134b73
ZD
176672007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
17668
17669 * ipa-reference.c (analyze_function): Consider also addresses taken
17670 in phi nodes.
17671
8bcd6380
RS
176722007-01-12 Roger Sayle <roger@eyesopen.com>
17673
17674 * c-typeck.c (null_pointer_constant_p): Replace use of
17675 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
17676 (build_c_cast): Likewise.
17677
d95787e6
RS
176782007-01-12 Roger Sayle <roger@eyesopen.com>
17679
17680 * tree.h (force_fit_type_double): Remove unused final argument.
17681 * c-common.c (constant_expression_warning): Replace use of
17682 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
17683 (convert_and_check): Likewise.
17684 (shorten_compare): Update call to force_fit_type_double.
17685 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
17686 * convert.c (convert_to_pointer): Update call to
17687 force_fit_type_double.
17688 * fold-const.c (force_fit_type_double): Remove overflowed_const
17689 argument.
17690 (int_const_binop, fold_convert_const_int_from_int,
17691 fold_convert_const_int_from_real, fold_div_compare,
17692 fold_sign_changed_comparison, fold_unary, fold_negate_const,
17693 fold_abs_const, fold_not_const): Remove the final argument from
17694 calls to force_fit_type_double.
17695
714f737f
AP
176962007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
17697
17698 * configure.ac: Set insn to "nop" for spu-*-* also.
17699 * configure: Regenerate.
17700
db9d500a
OG
177012007-01-12 Olga Golovanevsky <olga@il.ibm.com>
17702
17703 * builtins.def : Add BUILT_IN_FREE.
7a292b24 17704
3d283195
JH
177052007-01-12 Jan Hubicka <jh@suse.cz>
17706
17707 PR tree-optimization/30443
17708 * tree-inline.c (tree_function_versioning): Do not optimize when
17709 cloning for inlining.
17710
6270df4c
ZD
177112007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
17712
17713 * doc/loop.texi: Document recording of loop exits.
17714 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
17715 (update_single_exits_after_duplication,
17716 update_single_exit_for_duplicated_loop,
17717 update_single_exit_for_duplicated_loops): Removed.
17718 (duplicate_loop_to_header_edge): Do not call
17719 update_single_exits_after_duplication and
17720 update_single_exit_for_duplicated_loops.
17721 (loop_version): Do not update single_exit information.
17722 (fix_loop_structure): Use record_loop_exits instead of
17723 mark_single_exit_loops.
17724 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
17725 the lists of loop exits.
17726 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
17727 split_edge, merge_blocks): Update the lists of loop exits.
17728 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
17729 loop_optimizer_init.
17730 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
17731 of mark_single_exit_loops.
17732 (loop_optimizer_finalize): Call release_recorded_exits.
17733 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
17734 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
17735 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
17736 update single exit information.
17737 * lambda-code.c (perfect_nestify): Ditto.
17738 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
17739 (mark_single_exit_loops): Removed.
17740 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
17741 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
17742 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
17743 functions.
17744 (get_loop_exit_edges, single_exit): Use recorded exit lists.
17745 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
17746 (verify_loop_structure): Verify consistency of the exit lists.
17747 (flow_loops_find): Use alloc_loop. Initialize exits hash.
17748 (set_single_exit): Removed.
17749 * cfgloop.h (struct loop_exit): New function.
17750 (struct loop): single_exit_ field replaced by exits field.
7e08fa35
UB
17751 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
17752 LOOPS_HAVE_RECORDED_EXITS.
6270df4c
ZD
17753 (struct loops): Added exits hash.
17754 (mark_single_exit_loops, set_single_exit): Declaration removed.
17755 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
17756
1cbe999f
RS
177572007-01-12 Richard Sandiford <richard@codesourcery.com>
17758
17759 * doc/invoke.texi: Avoid use of @headitem.
17760
192232e2
RS
177612007-01-12 Richard Sandiford <richard@codesourcery.com>
17762
17763 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
17764
183dc04b
RS
177652007-01-12 Richard Sandiford <richard@codesourcery.com>
17766
17767 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
17768 list of targets.
17769
64826589
NS
177702007-01-12 Nathan Sidwell <nathan@codesourcery.com>
17771 Richard Sandiford <richard@codesourcery.com>
17772
17773 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
17774 * config/m68k/m68k.opt: Resort options.
17775 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
17776
7eb4f044
NS
177772007-01-12 Nathan Sidwell <nathan@codesourcery.com>
17778 Richard Sandiford <richard@codesourcery.com>
17779
17780 * doc/invoke.texi: Document the macros that are defined by
17781 m68k's -mtune and -mhard-float options.
17782 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
17783 (m68k_cpp_cpu_family): Likewise.
17784 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
17785 of __ucfv*__ macros. Define __mcffpu__ if generating code for
17786 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
17787 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
17788 (m68k_cpp_cpu_family): Likewise.
17789
9321405c
RS
177902007-01-12 Richard Sandiford <richard@codesourcery.com>
17791
17792 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
17793 macros besides mc68000 as tuning macros. Use a switch statement
17794 to set them and mcpu32.
17795
b101567e
JB
177962007-01-12 Julian Brown <julian@codesourcery.com>
17797
17798 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
17799 (TARGET_68040_ONLY): Rename to...
17800 (TARGET_68040): ...this.
17801 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
17802 * config/m68k/m68k.md: Likewise.
17803
900ec02d
JB
178042007-01-12 Julian Brown <julian@codesourcery.com>
17805 Nathan Sidwell <nathan@codesourcery.com>
17806 Richard Sandiford <richard@codesourcery.com>
17807
17808 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
17809 the -mcpu= argument associated with the --with-cpu setting.
17810 Define M68K_DEFAULT_TUNE to the default -mtune= option,
17811 if different from the one implied by the -mcpu setting.
17812 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
17813 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
17814 * doc/invoke.texi: Mention ColdFire in the introduction to the
17815 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
17816 -mno-div and -mhard-float options. Make -m68881 a synonym for
17817 -mhard-float. Document the previously-undocumented -m5206e,
17818 -m528x, -m5307 and -m5407 options. Tweak the existing option
17819 documentation for consistency.
17820 * doc/install.texi: Mention new --with-cpu arguments.
17821 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
17822 default CPU if neither -mcpu nor -march are specified.
17823 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
17824 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
17825 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
17826 using m68k_tune to decide between families that implement the
17827 same ISA. Use m68k_tune to set __mcfv4e__.
17828 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
17829 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
17830 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
17831 (FL_ISA_C, FL_ISA_MMU): New macros.
17832 (MASK_COLDFIRE): Delete.
17833 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
17834 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
17835 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
17836 (TARGET_HARD_FLOAT): Do not define here.
17837 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
17838 (TUNE_68000): New macro.
17839 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
17840 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
17841 (TUNE_CFV2): Redefine in terms of m68k_tune.
17842 (uarch_type, target_device, fpu_type): New enums.
17843 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
17844 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
17845 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
17846 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
17847 (FL_FOR_isa_c): New macros.
17848 (m68k_isa): New enum.
17849 (m68k_target_selection): New structure.
17850 (all_devices, all_isas, all_microarchs): New tables.
17851 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
17852 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
17853 (MASK_ALL_CPU_BITS): Delete.
17854 (m68k_find_selection): New function.
17855 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
17856 Map the legacy target options to a combination of the new ones.
17857 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
17858 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
17859 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
17860 settings.
17861 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
17862 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
17863 properties.
17864 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
17865 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
17866 * config/m68k/m68k-devices.def: New file.
17867
0c004537
RS
178682007-01-12 Richard Sandiford <richard@codesourcery.com>
17869 Nathan Sidwell <nathan@codesourcery.com>
17870
17871 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
17872 (SUBTARGET_EXTRA_SPECS): New macros.
17873 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
17874 use %(asm_cpu_spec) instead.
17875 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
17876 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
17877 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
17878 (EXTRA_SPECS): Rename to...
17879 (SUBTARGET_EXTRA_SPECS): ...this.
17880
59fbf3cb
NS
178812007-01-12 Nathan Sidwell <nathan@codesourcery.com>
17882 Richard Sandiford <richard@codesourcery.com>
17883 Julian Brown <julian@codesourcery.com>
17884
17885 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17886 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
17887 to the configuration's default CPU.
17888 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
17889 Remove default masks.
17890 (m680[012]0-*-*): Set the default with_cpu to the first part of
17891 the target name.
17892 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
17893 (m68k*-*-linux): Extend the --with-cpu handling to...
17894 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
17895 and m68010. Don't set target_cpu_default2.
17896 * doc/install.texi: Document --with-cpu for m68k.
17897 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
17898 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
17899 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
17900 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
17901 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
17902 (ASM_SPEC): Remove use of %(asm_cpu_default).
17903 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
17904 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
17905 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
17906 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
17907 __HAVE_FPU__ if TARGET_HARD_FLOAT.
17908 (TARGET_DEFAULT): Delete.
17909 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
17910 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
17911 (CPP_CPU_SPEC): Delete.
17912 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
17913 the appropriate string.
17914 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
17915 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
17916 (ASM_SPEC): Don't use %(asm_default_spec).
17917 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
17918 TARGET_DEFAULT and add MASK_68881.
17919 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
17920
3197c489
RS
179212007-01-12 Richard Sandiford <richard@codesourcery.com>
17922
17923 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
17924 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
17925 MASK_68010 alongside MASK_68020.
17926 * doc/invoke.texi: Document -m68010.
17927 * config/m68k/m68k.opt (m68010): New.
17928 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
17929 if TUNE_68010.
17930 (TUNE_68010): New macro.
17931 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
17932 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
17933 (M68K_CPU_m68332): Add MASK_68010.
17934 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
17935 fallback definition.
17936 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
17937 defines.
17938 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
17939 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
17940 to all entries that use MASK_68020.
17941 (output_move_simode_const, output_move_himode, output_move_qimode)
17942 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
17943 instead of TARGET_68020 to select clr behavior. Remove comment
17944 about there being no TARGET_68010.
17945 * config/m68k/m68k.md: Likewise throughout.
17946
986e74d5
JB
179472007-01-12 Julian Brown <julian@codesourcery.com>
17948
17949 * config/m68k/m68k.h (TARGET_ISAB): New macro.
17950 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
17951 * config/m68k/m68k.md: Likewise.
17952
bb5bdf70
JB
179532007-01-12 Julian Brown <julian@codesourcery.com>
17954
17955 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
17956 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
17957
9cf106c8
JB
179582007-01-12 Julian Brown <julian@codesourcery.com>
17959
17960 * config/m68k/m68k.h (TUNE_68040_60): New macro.
17961 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
17962 * config/m68k/m68k.md: Likewise.
17963
fe95f2f7
JB
179642007-01-12 Julian Brown <julian@codesourcery.com>
17965 Richard Sandiford <richard@codesourcery.com>
17966
17967 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
17968 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
17969 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
17970 TARGET_CPU32.
17971 (TARGET_CPU32): Rename to...
17972 (TUNE_CPU32): ...this.
17973 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
17974 (TUNE_CFV2): New macros.
17975 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
17976 remove conditions that are implied by TARGET_68020.
17977 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
17978 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
17979 (m68k_output_function_epilogue): Likewise.
17980 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
17981 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
17982 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
17983 non-68000 timings. Refactor multiplication and division costs.
17984 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
17985 TUNE_CPU32 instead of TARGET_CPU32.
17986 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
17987 and TUNE_68060 instead of TARGET_68060.
17988 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
17989 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
17990 TARGET_CPU32.
17991 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
17992 && !TARGET_COLDFIRE" to choose between moveq and clr.
17993 Likewise in the unnamed movsf pattern.
17994 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
17995 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
17996 ashiftrt pattern.
17997
9c6de4a1
RS
179982007-01-12 Richard Sandiford <richard@codesourcery.com>
17999
18000 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
18001 of tabbing before backslashes.
18002
179cd3d3
JDA
180032007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18004
18005 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
18006 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
18007 (ASM_OUTPUT_INTERNAL_LABEL): Define.
18008
b697aed4
ZD
180092007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
18010
18011 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
18012 find_interesting_uses_cond.
18013 (find_interesting_uses_cond): Use extract_cond_operands.
18014 (rewrite_use_compare): Use extract_cond_operands and
18015 force_gimple_operand_bsi. Do not call update_stmt.
18016 (determine_use_iv_cost_condition): Use extract_cond_operands.
18017 Return cheaper of using original bound and changing the exit bound.
18018
820410e0
ZD
180192007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
18020
18021 PR tree-optimization/29516
18022 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
18023 most_expensive_mult_to_index, addr_to_parts,
18024 create_mem_ref, maybe_fold_tmr): Make the type of
18025 fields of TARGET_MEM_REF sizetype.
18026 (move_fixed_address_to_symbol, move_pointer_to_base):
18027 New functions.
18028 * tree.def (TARGET_MEM_REF): Add comment on types of
18029 the operands.
820410e0 18030
14e765da
JM
180312007-01-11 Joseph Myers <joseph@codesourcery.com>
18032
18033 * c-common.c (vector_types_convertible_p): Treat opaque types as
18034 always convertible if they have the same size, but not otherwise.
18035
2a33a75f
SB
180362007-01-11 Steven Bosscher <steven@gcc.gnu.org>
18037
18038 * ifcvt.c (struct noce_if_info): Add comments to the fields.
18039 Remove the b_unconditional field.
18040 (noce_try_sign_mask): Do not look at b_unconditional.
18041 (noce_process_if_block): Do not use merge_if_blocks. Update
18042 the CFG here. Do not set b_unconditional.
18043 (cond_move_process_if_block): Likewise.
18044 (find_cond_trap): Likewise.
18045 (check_cond_move_block): Require simple jump insns at the end
18046 of the basic block.
18047
7faade0f
JH
180482007-01-11 Jan Hubicka <jh@suse.cz>
18049
18050 PR tree-optimization/1046
18051 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
18052 when alias info is not ready.
18053 (pass_tail_recursion): Do not require aliasing.
18054 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
18055 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
18056 * tree-ssa-copy.c (pass_copy_prop): Likewise.
18057 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
18058 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
18059 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
18060 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
18061 before inlining.
18062 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
18063 When aliasing is not build, mark statement as volatile.
18064
78392049
TT
180652007-01-11 Tom Tromey <tromey@redhat.com>
18066
18067 PR preprocessor/15185, PR preprocessor/20989:
18068 * doc/cppopts.texi <-MT>: Update description of algorithm for
18069 computing default target.
18070 <-M, -MD>: Reword "basename" text.
18071
455f14dd
RS
180722007-01-11 Roger Sayle <roger@eyesopen.com>
18073
18074 * builtins.c (expand_builtin_pow, expand_builtin_powi,
18075 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
18076 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
18077 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
18078 fold_builtin_bswap, real_constp, fold_builtin_pow,
18079 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
18080 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
18081 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
18082 * convert.c (convert_to_pointer): Likewise.
18083 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
18084 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
18085 const_binop, fold_convert_const_int_from_int,
18086 fold_convert_const_int_from_real,
18087 fold_convert_const_real_from_real, sign_bit_p,
18088 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
18089 fold_sign_changed_comparison, fold_unary, fold_comparison,
18090 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
18091 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
18092 * print-tree.c (print_node_brief, print_node): Likewise.
18093 * stor-layout.c (place_field, layout_type): Likewise.
18094 * tree-chrec.c (keep_cast): Likewise.
18095 * tree.c (build_vector, build_real, build_real_from_int_cst,
18096 build_complex): Likewise.
18097
95fd24b6
RS
180982007-01-11 Roger Sayle <roger@eyesopen.com>
18099
18100 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
18101 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
18102
8b1f719a
PB
181032007-01-11 Paolo Bonzini <bonzini@gnu.org>
18104
18105 * configure.ac (strict1_warn): Rename to strict_warn.
18106 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
18107 cc_set_by_configure, quoted_cc_set_by_configure,
18108 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
18109 all_boot_languages, all_stagestuff): Remove.
18110 (target_list): Remove bootstrap targets.
18111 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
18112 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
18113 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
18114 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
18115 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
18116 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
18117 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
18118 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
18119 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
18120 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
18121 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
18122 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
18123 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
18124 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
18125 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
18126 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
18127 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
18128 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
18129 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
18130 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
18131 (mostlyclean): Adjust.
18132 (clean, distclean): Don't mention bootstrap stuff.
18133 * configure: Regenerate.
18134 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
18135 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
18136 treelang/config-lang.in (stagestuff): Remove.
18137 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
18138 stageprofile, stagefeedback, stagestuff): Remove mention.
18139
6e3a343d
NC
181402007-01-11 Nick Clifton <nickc@redhat.com>
18141
18142 * config/mcore/predicates.md (mcore_general_movesrc_operand):
18143 Accept CONSTs.
18144 (mcore_general_movdst_operand): Do not accept CONST_INTs.
18145 (mcore_arith_K_S_operand): Run the test for the S constraint not
18146 the test for the M constraint.
18147 (mcore_addsub_operand): Do not accept integer values that are
18148 larger than 32 bits.
18149 * config/mcore/mcore.md: Remove unused constraints from split.
18150 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
18151 (addsi3): Likewise.
18152 (allocate_stack): Likewise.
18153 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
18154 operands to 32 bits.
18155 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
18156 INTVAL.
18157 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
18158 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
18159 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
18160 mcore_output_bclri, mcore_output_andn, output_inline_const,
18161 mcore_output_move, mcore_output_movedouble): Likewise.
18162 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
18163 (output_inline_const): Likewise.
18164 (output_inline_const): Fix format strings used in sprintf
18165 statements.
18166 * config/mcore/mcore-protos.h: Update prototypes for changed
18167 functions in mcore.c.
18168 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
18169 HOST_WIDE_INT and not int.
18170 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
18171 CONST_OK_FOR_N): Likewise.
18172 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
18173 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
18174 an INTVAL.
18175
ca15e365
JH
181762007-01-10 Jan Hubicka <jh@suse.cz>
18177
18178 * tree-vrp.c (remove_range_assertions): Release defs.
18179 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
18180 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
18181
26b53f80
PB
181822007-01-10 Paul Brook <paul@codesourcery.com>
18183
18184 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
18185 * config/arm/arm.md (mulsi3subsi): New insn.
18186
567b96ed
ZD
181872007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
18188
18189 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
18190 (tree_transform_and_unroll_loop): New.
18191 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
18192 Declare.
18193
6b074ef6
RK
181942007-01-10 Robert Kennedy <jimbob@google.com>
18195
18196 * fold-const.c (fold_comparison): Fold comparisons like (x *
18197 1000 < 0) to (x < 0).
18198
ee3202e1
ILT
181992007-01-10 Ian Lance Taylor <iant@google.com>
18200
18201 * tree-pretty-print.c (dump_generic_node): Print parentheses when
18202 operands have the same priority.
18203
08f0e79e
TT
182042007-01-10 Tom Tromey <tromey@redhat.com>
18205
18206 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
18207 (fold_binary): Likewise.
18208 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
18209 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
18210 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
18211 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
18212 * langhooks.h (struct lang_hooks): Removed field
18213 'can_use_bit_fields_p'.
18214
6534c565
RC
182152007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
18216
9a3e8953 18217 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
6534c565 18218
3e87758a 182192007-01-10 Razya Ladelsky <razya@il.ibm.com>
567b96ed
ZD
18220
18221 * function.c (get_last_funcdef_no): New function.
7a292b24 18222 * function.h (get_last_funcdef_no): Declare.
567b96ed
ZD
18223 * tree-inline.c (initialize_cfun): Add initialization.
18224 (tree_function_versioning): Cleanup.
7a292b24 18225
9b718f81
JH
182262007-01-10 Jan Hubicka <jh@suse.cz>
18227
18228 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
18229 PHIs.
18230
e1f1d97f
SL
182312007-01-10 Sa Liu <saliu@de.ibm.com>
18232 Ben Elliston <bje@au.ibm.com>
18233
18234 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
18235 for SAVE_NONLOCAL and Pmode for any other save level.
18236 * spu-protos.h (spu_restore_stack_block): Declare.
18237 * spu.md (save_stack_block): Remove.
18238 (restore_stack_block): Call spu_restore_stack_block.
18239 * spu.c (spu_restore_stack_block): New function.
18240 (spu_expand_epilogue): Remove old comment.
18241
7e2ac86c
ZD
182422007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
18243
18244 PR tree-optimization/30322
18245 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
18246 (cand_value_at): Return the value as aff_tree.
18247 (may_eliminate_iv): Convert the bound from aff_tree to tree.
18248 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
18249 aff_combination_mult): New functions.
18250 (aff_combination_add): Use aff_combination_add_cst.
18251 (aff_combination_convert): Allow conversions to a wider type.
18252 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
18253 * tree-affine.h (aff_combination_mult): Declare.
18254
fe037b8a
CD
182552007-01-09 Carlos O'Donell <carlos@codesourcery.com>
18256
18257 * doc/tm.texi: Update documentation to reflect reality of exec
18258 and start file search behaviours. Update copyright year.
18259 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
18260 header file directories.
18261
c648dedb
UB
182622007-01-09 Uros Bizjak <ubizjak@gmail.com>
18263
18264 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
18265 (*cosxf2): Rename to cosxf2_i387.
c648dedb
UB
18266 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
18267 using X87MODEF12 mode macro. Rename patterns to
18268 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
18269 for SSE math.
18270 (*cosdf2, *cossf2): Ditto.
18271 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
18272 to match extended input operands.
c648dedb 18273 (sincos<mode>3): New expander.
c648dedb
UB
18274 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
18275 insn patterns and corresponding splitters.
18276
26900826
KK
182772007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
18278
18279 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
18280 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
18281
1ba008b7
NP
182822007-01-09 Nicolas Pitre <nico@cam.org>
18283
18284 PR target/30173
18285 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
18286
157600d0
GK
182872007-01-08 Geoffrey Keating <geoffk@apple.com>
18288
18289 * target.h (struct gcc_target): New field library_rtti_comdat.
18290 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
18291 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
18292 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
18293 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
18294
b061615d
GK
182952007-01-08 Geoffrey Keating <geoffk@apple.com>
18296
18297 * doc/invoke.texi (Optimize Options): Correct description of -O0.
18298
b8fca551
RG
182992007-01-08 Richard Guenther <rguenther@suse.de>
18300
18301 * tree.h (force_fit_type_double): Export.
18302 (force_fit_type): Remove.
18303 * fold-const.c (force_fit_type_double): New function.
18304 (force_fit_type): Remove.
18305 (int_const_binop): Use it.
18306 (fold_convert_const_int_from_int): Likewise.
18307 (fold_convert_const_int_from_real): Likewise.
18308 (fold_div_compare): Likewise.
18309 (fold_sign_changed_comparison): Likewise.
18310 (fold_unary): Likewise.
18311 (fold_negate_const): Likewise.
7a292b24 18312 (fold_abs_const): Likewise.
b8fca551
RG
18313 (fold_not_const): Likewise.
18314 * c-common.c (shorten_compare): Use force_fit_type_double.
18315 * convert.c (convert_to_pointer): Likewise.
18316
2ac7cbb5
RG
183172007-01-08 Richard Guenther <rguenther@suse.de>
18318
18319 * tree.h (build_int_cst_wide_type): Export.
18320 * tree.c (build_int_cst_wide_type): New function.
18321 (build_int_cst_wide): Fix comment.
18322 * builtins.c (fold_builtin_object_size): Use build_int_cst
18323 to build -1 or 0 of the correct type. Use fit_double_type
18324 to check for overflow.
18325 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
18326 to build the mask.
18327 (decode_field_reference): Likewise.
18328 (all_ones_mask_p): Likewise.
18329 (native_interpret_int): Use build_int_cst_wide_type.
18330 (fold_binary): Use build_int_cst_type to build an all-ones
18331 value.
18332 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
18333
1c61ff29
DJ
183342007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
18335
18336 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
18337
df1133a6
BE
183382007-01-09 Ben Elliston <bje@au.ibm.com>
18339
18340 * genautomata.c (STATS_OPTION): New option.
18341 (stats_flag): New flag.
18342 (gen_automata_option): Handle it.
18343 (initiate_automaton_gen): Ditto.
18344 (write_automata): Output statistics only if stats_flag is
18345 set. Likewise, output time statistics only if time_flag is set.
18346 * doc/md.texi (Processor pipeline description): Document new flag.
18347
2b60792f
RG
183482007-01-08 Richard Guenther <rguenther@suse.de>
18349
18350 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
18351 * tree.c (build_int_cst_type): Likewise.
18352 (size_in_bytes): Don't call force_fit_type on the result.
18353 (int_fits_type_p): Use fit_double_type.
18354 * fold-const.c (fit_double_type): New function.
18355 (force_fit_type): Use it.
18356 * tree.h (fit_double_type): Export.
18357
fe1c7546
JH
183582007-01-08 Jan Hubicka <jh@suse.cz>
18359
18360 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
4e260309 18361 * ipa.c (function_and_variable_visibility): Fix return type.
fe1c7546 18362
7fb41a42
RG
183632007-01-08 Richard Guenther <rguenther@suse.de>
18364
18365 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
18366 of offset to build the index.
18367 * tree-pretty-print.c (dump_generic_node): Don't build negated
18368 const just for printing.
18369 * c-pretty-print.c (pp_c_integer_constant): Likewise.
18370 * builtins.c (fold_builtin_int_roundingfn): Check if result
18371 fits the type by using force_fit_type and comparing the result.
18372 * predict.c (predict_loops): Use compare_tree_int for comparison.
18373 * tree.c (build_int_cst): Fall back to integer_type_node for
18374 NULL_TREE type.
18375 (build_int_cst_wide): Assert type is non-null.
18376
f255541f
RC
183772007-01-08 Roberto Costa <roberto.costa@st.com>
18378
18379 * tree-vrp.c (extract_range_from_cond_expr): New.
18380 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
18381 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
18382 as expressions.
18383 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
18384 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
18385 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
18386 used as expressions.
18387 * tree-object-size.c (cond_expr_object_size): New.
18388 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
18389
feb8476a
JH
183902007-01-08 Jan Hubicka <jh@suse.cz>
18391
18392 * tree-ssa-forwprop.c (forward_propagate_into_cond,
18393 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
18394 statement.
18395
31ab1cc9
RG
183962007-01-08 Richard Guenther <rguenther@suse.de>
18397
18398 PR tree-optimization/23603
18399 * tree-vrp.c (set_value_range_to_truthvalue): New function.
18400 (extract_range_from_binary): Fall back to truthvalue instead of
18401 varying for TRUTH_*_EXPR.
18402 (extract_range_from_comparison): Fall back to truthvalue instead of
18403 varying.
18404 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
18405 if all visited PHI values were constant.
18406
151e6f24
JH
184072007-01-08 Jan Hubicka <jh@suse.cz>
18408
18409 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
18410 (cgraph_analyze_function): break out from ...
18411 (cgraph_finalize_compilation_unit): ... here.
18412 (cgraph_expand_function): Remove forgoten commented out line.
18413 (cgraph_optimize): Analyze functions.
18414
f4b3ca72
JH
184152007-01-08 Jan Hubicka <jh@suse.cz>
18416
18417 * tree-pas.h (TODO_remove_function): New flag.
18418 (TODO_update*): Renumber.
18419 (pass_ipa_increase_alignment,
18420 pass_ipa_function_and_variable_visibility): New passes.
18421 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
18422 (cgraph_function_and_variable_visibility): Move to ipa.c
18423 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
18424 cgraph_increase_alignment.
18425 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
18426 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
18427 calling tree-inline.
18428 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
18429 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
18430 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
18431 (gate_increase_alignment): New function.
18432 (pass_ipa_increase_alignment): New pass.
18433 * ipa.c: Inline tree-pass.h and timevar.h
18434 (function_and_variable_visibility): Move here from cgraphunit.c
18435 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
18436 * passes.c (init_optimization_passes): Add the two new passes.
18437 (execute_todo): Handle cgraph_remove_functions.
18438
2fe29729
NC
184392007-01-08 Nick Clifton <nickc@redhat.com>
18440
18441 * config/frv/predicates.md (reg_or_0_operand): Accept
18442 CONST_DOUBLEs.
18443
152167d5
RC
184442007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
18445
18446 * config/bfin/rtems.h, config/bfin/t-rtems: New.
18447 * config.gcc: Add bfin*-rtems*.
18448
00c8e9f6
MS
184492007-01-08 Mark Shinwell <shinwell@codesourcery.com>
18450
18451 * c.opt: Add -flax-vector-conversions.
18452 * c-typeck.c (convert_for_assignment): Pass flag to
18453 vector_types_convertible_p to allow emission of note.
18454 (digest_init): Likewise.
18455 * c-opts.c: Handle -flax-vector-conversions.
18456 * c-common.c (flag_lax_vector_conversions): New.
18457 (vector_types_convertible_p): Unless -flax-vector conversions
18458 has been passed, disallow conversions between vectors with
18459 differing numbers of subparts and/or element types. If such
18460 a conversion is disallowed, possibly emit a note on the first
18461 occasion only to inform the user of -flax-vector-conversions.
18462 The new last argument specifies this.
18463 * c-common.h (flag_lax_vector_conversions): New.
18464 (vector_types_convertible_p): Add extra argument.
18465 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
18466 char_type_node for V*QI type vectors.
18467 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
18468 Update to satisfy new typechecking rules.
18469 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
18470 C and C++ variants.
18471 * doc/invoke.texi (C Dialect Options): Document
18472 -flax-vector-conversions.
18473
46e3b90f
MS
184742007-01-08 Mark Shinwell <shinwell@codesourcery.com>
18475
18476 PR tree-optimization/29877
18477 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
18478 a register variable on the RHS to not be replaceable.
18479
99fc2502
CL
184802007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
18481 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
18482 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
18483 const_simm15, const_pow2, const_npow2): Added.
7a292b24 18484 * config/score/misc.md (insv, extv, extzv, movmemsi,
99fc2502 18485 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
7a292b24 18486 * config/score/score.c (score_address_cost, score_select_cc_mode):
99fc2502
CL
18487 Added.
18488 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
18489 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
18490 Update score_print_operand.
18491 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
18492 Adjust register allocate order and update some macro define.
18493 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
18494 mdx_block_move_straight, mdx_block_move_loop_head,
7e08fa35
UB
18495 mdx_block_move_loop_body, mdx_block_move_loop_foot,
18496 mdx_block_move_loop, mdx_block_move): Added.
99fc2502
CL
18497 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
18498 mdp_limm): Updated and fix some bug and typo.
18499 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
18500 (movsf, movdf, doloop_end): Added.
18501
7a085dce
KH
185022007-01-08 Kazu Hirata <kazu@codesourcery.com>
18503
18504 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
18505 config/arm/thumb2.md: Fix comment typos.
18506 * doc/extend.texi: Fix a typo.
18507
a6ccdbab
EC
185082007-01-07 Eric Christopher <echristo@apple.com>
18509
18510 * configure.ac: Check for __stack_chk_fail for darwin.
18511 * configure: Regenerate.
18512
b881887e
RG
185132007-01-07 Richard Guenther <rguenther@suse.de>
18514
18515 * tree-vrp.c (extract_range_from_assert): CSE calls to
18516 compare_values where possible.
18517 (extract_range_from_unary_expr): Likewise.
18518
696e990b
AS
185192007-01-07 Anatoly Sokolov <aesok@post.ru>
18520
18521 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
18522 * config/avr/avr.c (call_insn_operand): Delete function.
18523 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
18524 instead of register number. Use predicates.
a6ccdbab 18525 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
696e990b
AS
18526 call_insn_operand): Add.
18527
2dee695b
JH
185282007-01-06 Jan Hubicka <jh@suse.cz>
18529
18530 * tree-pass.h (pass_build_cgraph_edges): Declare.
18531 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
18532 (visited_nodes): Remove.
18533 (cgraph_create_edges): Move to cgraphbuild.c; rename to
18534 build_cgrpah_edges; make visited_nodes local.
18535 (cgraph_process_new_functions): DO not call initialize_inline_failed.
18536 (record_references_in_initializer): Move to cgraphbuild.c
18537 (initialize_inline_failed, rebuild_cgraph_edges,
18538 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
18539 (verify_cgraph_node): Make visited_nodes local.
18540 (cgraph_analyze_function): Do not call cgraph_create_edges and
18541 initialize_inline_failed.
18542 (cgraph_expand_function): Do not call cgraph_lower_function;
18543 assert that function is already lowered.
18544 * Makefile.in (cgraphbuild.o): New.
18545 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
18546 at the end of lowering passes.
18547
dc1f5a11
SB
185482007-01-06 Steven Bosscher <steven@gcc.gnu.org>
18549
18550 * ifcvt.c (cond_move_convert_if_block): New function, code
18551 factored out from...
18552 (cond_move_process_if_block): ...here. Call the new function
18553 on the THEN and ELSE blocks.
18554 (merge_if_block): Do not copy global_live_at_end, merge_blocks
18555 already takes care of this.
18556
59c0753d
MLI
185572007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18558
18559 PR c/19978
18560 * tree.h (TREE_OVERFLOW_P): New.
18561 * c-typeck.c (parser_build_unary_op): Warn only if result
18562 overflowed and operands did not.
18563 (parser_build_binary_op): Likewise.
18564 (convert_for_assignment): Remove redundant overflow_warning.
18565 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
18566
c2658540
MLI
185672007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18568
18569 * c-typeck.c (store_init_value): Split over two lines to follow
18570 the GNU coding style.
18571
c573f4d5
BK
185722007-01-05 Benjamin Kosnik <bkoz@redhat.com>
18573
18574 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
18575 __GXX_EXPERIMENTAL_CXX0X__.
18576 * doc/cpp.texi: Same.
18577
afe1a916
RG
185782007-01-05 Richard Guenther <rguenther@suse.de>
18579
18580 PR middle-end/27826
18581 * tree.c (get_narrower): Do not construct COMPONENT_REFs
18582 with mismatched types. Instead explicitly build a
18583 conversion NOP_EXPR.
18584
b3c6d2ea
ILT
185852007-01-05 Ian Lance Taylor <iant@google.com>
18586
18587 * c-common.c (decl_with_nonnull_addr_p): New function.
18588 (c_common_truthvalue_conversion): Call it.
18589 * c-typeck.c (build_binary_op): Likewise.
18590 * c-common.h (decl_with_nonnull_addr_p): Declare.
18591
698ac934
JJ
185922007-01-05 Jakub Jelinek <jakub@redhat.com>
18593
18594 PR c/30360
18595 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
18596 denom against 0.0.
18597
4b322f43
JB
185982007-01-05 Joel Brobecker <brobecker@adacore.com>
18599
18600 * doc/install.texi (Final install): Document the fact that
18601 the GNAT runtime should not be stripped.
18602
9477eb38
JH
186032007-01-04 Jan Hubicka <jh@suse.cz>
18604
18605 * tree-inline.c (fold_marked_statements): Update operand caches
18606 and EH after folding
18607
dfd0a3de
ILT
186082007-01-04 Ian Lance Taylor <iant@google.com>
18609
18610 * c-common.c (check_function_nonnull): Whitespace fix.
18611
59e50498
JH
186122007-01-04 Jan Hubicka <jh@suse.cz>
18613
18614 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
18615 comitted older version of patch.
18616 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
18617 function, celanup cfg and collect garbage.
18618
a87948f7
MS
186192007-01-04 Mike Stump <mrs@apple.com>
18620
18621 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
18622 (clean): Likewise.
18623
e4b6bec2
EC
186242007-01-04 Eric Christopher <echristo@apple.com>
18625
18626 * libgcc2.c (__bswapsi2): Use SItype.
18627 (__bswapdi2): Use DItype.
18628 * libgcc2.h: Update for above.
18629
d6c397b0
PB
186302007-01-04 Paul Brook <paul@codesourcery.com>
18631
18632 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
18633 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
18634 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
18635 umulsidi3, umulsidi3adddi, smulsi3_highpart,
18636 umulsi3_highpart): Make conditional on !arm_arch6.
18637 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
18638 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
18639 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
18640 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
18641 umulsi3_highpart_v6): New insns.
18642
bd7e4636
RS
186432007-01-04 Roger Sayle <roger@eyesopen.com>
18644
18645 * fold-const.c (fold_convert): When casting an expression to void,
18646 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
18647 have a type. Instead of attempting to build a NOP_EXPR, return
18648 these "special" trees directly.
18649
762c919f
JM
186502007-01-04 Joseph Myers <joseph@codesourcery.com>
18651
18652 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
18653 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
18654 rs6000_cost->fp not 0 as adjustment for outer NEG.
18655
3a40c18a
JH
186562007-01-04 Jan Hubicka <jh@suse.cz>
18657
18658 * cgraph.c (cgraph_release_function_body): New function.
18659 (cgraph_remove_node): Use it.
18660 * cgraph.h (cgraph_release_function_body): Declare.
18661 * cgraphunit.c (cgraph_expand_function): Use it.
18662 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
18663 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
18664 is initialized and while compilation of other function is running.
18665 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
18666 statement CFG annotations from here to ...
18667 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
18668
b06e8639
ZD
186692007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
18670
18671 * cfgloop.h (enum li_flags): Make the constants powers of two.
18672
b8a00a4d
JH
186732007-01-04 Jan Hubicka <jh@suse.cz>
18674
18675 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
18676 set.
18677 (fold_marked_statements): New function.
18678 (optimize_inline_calls, tree_function_versioning): Fold new statements.
b06e8639 18679 * tree-inline.h (copy_body_data): Add statements_to_fold.
b8a00a4d 18680
fa958513
DJ
186812007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
18682
18683 * config.gcc: Mention libgcc/config.host.
18684 * Makefile.in: Update comments mentioning libgcc.
18685 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
18686 (all.cross, start.encap, rest.encap, rest.cross): Update
18687 dependencies for libgcc move.
18688 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
18689 (clean-target, clean-target-libgcc): Delete.
18690 (srcdirify, GCC_EXTRA_PARTS): New macros.
18691 (libgcc-support, libgcc.mvars): New rules.
18692 (distclean): Remove mention of mklibgcc.
18693 (install): Don't reference INSTALL_LIBGCC.
18694 (install-common): Don't reference EXTRA_PARTS.
18695 (install-libgcc, install-multilib): Delete rules.
18696 * mklibgcc.in: Delete file.
18697 * doc/configfiles.texi: Don't mention mklibgcc.
18698
18699 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
18700 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
18701 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
18702 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
18703 (mklibgcc, ldblspecs): Likewise.
18704
18705 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
18706 (posixpre.def): Use $(T).
18707 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
18708 (SHLIB_SRC, SHLIB_INSTALL): Delete.
18709 (SHLIB_LINK): Make dummy.
18710 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
18711
18712 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
18713
18714 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
18715 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
18716 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
18717 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
18718
18719 * configure.ac (all_outputs): Remove mklibgcc.
18720 * configure: Regenerated.
18721
7816b87e
JC
187222007-01-03 Josh Conner <jconner@apple.com>
18723
18724 PR middle-end/29683
18725 * calls.c (compute_argument_addresses): Set stack and stack_slot
18726 for partial args, too.
18727 (store_one_arg): Use locate.size.constant for the size when
18728 generating a save_area.
18729
611021e1
RK
187302007-01-03 Robert Kennedy <jimbob@google.com>
18731
18732 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
18733 whose definitions are deleted due to basic block merging.
18734
a15908a4
PB
187352007-01-03 Paul Brook <paul@codesourcery.com>
18736
18737 PR target/16634
18738 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
18739 functions.
18740 (use_return_insn): Return 0 for Thumb interrupt functions.
18741 (print_multi_reg): Add rfe argument for IRQ returns.
18742 (arm_output_epilogue): Pop interrupt return address directly into PC.
18743 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
18744
5b3e6663
PB
187452007-01-03 Paul Brook <paul@codesourcery.com>
18746
18747 Merge from sourcerygxx-4_1.
18748 * config/arm/thumb2.md: New file.
18749 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
18750 Thumb-2.
18751 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
18752 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
18753 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
18754 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
18755 tables.
18756 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
18757 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
18758 comptibility.
18759 * config/arm/ieee754-sf.S: Ditto.
18760 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
18761 (thumb1_base_register_rtx_p): ... to this.
18762 (thumb_index_register_rtx_p): Rename...
18763 (thumb1_index_register_rtx_p): ... to this.
18764 (thumb_output_function_prologue): Rename...
18765 (thumb1_output_function_prologue): ... to this.
18766 (thumb_legitimate_address_p): Rename...
18767 (thumb1_legitimate_address_p): ... to this.
18768 (thumb_rtx_costs): Rename...
18769 (thumb1_rtx_costs): ... to this.
18770 (thumb_compute_save_reg_mask): Rename...
18771 (thumb1_compute_save_reg_mask): ... to this.
18772 (thumb_final_prescan_insn): Rename...
18773 (thumb1_final_prescan_insn): ... to this.
18774 (thumb_expand_epilogue): Rename...
18775 (thumb1_expand_epilogue): ... to this.
18776 (arm_unwind_emit_stm): Rename...
18777 (arm_unwind_emit_sequence): ... to this.
18778 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
18779 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
18780 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
18781 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
18782 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
18783 thumb2_output_casesi): New functions.
18784 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
18785 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
18786 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
18787 THUMB2_WORK_REGS): Define.
18788 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
18789 arm_condexec_mask, arm_condexec_masklen)): New variables.
18790 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
18791 (arm_override_options): Check new CPU capabilities.
18792 Set new architecture flag variables.
18793 (arm_isr_value): Handle v7m interrupt functions.
18794 (user_return_insn): Return 0 for v7m interrupt functions. Handle
18795 Thumb-2.
18796 (const_ok_for_arm): Handle Thumb-2 constants.
18797 (arm_gen_constant): Ditto. Use movw when available.
18798 (arm_function_ok_for_sibcall): Return false for v7m interrupt
18799 functions.
18800 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
18801 (thumb_find_work_register, arm_load_pic_register,
18802 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
18803 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
18804 print_multi_reg, output_mov_long_double_fpa_from_arm,
18805 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
18806 output_mov_double_fpa_from_arm, output_move_double,
18807 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
18808 output_return_instruction, arm_output_function_prologue,
18809 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
18810 arm_output_mi_thunk, thumb_set_return_address): Ditto.
18811 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
18812 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
18813 (arithmetic_instr, shift_op): Use arm_shift_nmem.
18814 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
18815 '!' and 'L'.
18816 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
18817 (thumb_expand_prologue): Use thumb_set_frame_pointer.
18818 (arm_file_start): Output directive for unified syntax.
18819 (arm_unwind_emit_set): Handle stack alignment instruction.
18820 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
18821 Add v6t2, v7, v7a, v7r and v7m.
18822 (RETLDM): Add Thumb-2 code.
18823 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
18824 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
18825 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
18826 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
18827 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
18828 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
18829 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
18830 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
18831 ADJUST_INSN_LENGTH): Define.
18832 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
18833 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
18834 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
18835 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
18836 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
18837 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
18838 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
18839 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
18840 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
18841 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
18842 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
18843 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
18844 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
18845 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
18846 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
18847 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
18848 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
18849 cortex-m3.
18850 * config/arm/arm-tune.md: Regenerate.
18851 * config/arm/arm-protos.h: Update prototypes.
18852 * config/arm/vfp.md: Enable patterns for Thumb-2.
18853 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
18854 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
18855 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
18856 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
18857 * config/arm/libunwind.S: Add Thumb-2 code.
18858 * config/arm/constraints.md: Update include Thumb-2.
18859 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
18860 * config/arm/ieee754-df.S: Ditto.
18861 * config/arm/bpabi.S: Ditto.
18862 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
18863 * config/arm/predicates.md (low_register_operand,
18864 low_reg_or_int_operand, thumb_16bit_operator): New.
18865 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
18866 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
18867 * config/arm/t-arm-elf: Add armv7 multilib.
18868 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
18869 Include thumb2.md.
18870 (UNSPEC_STACK_ALIGN, ce_count): New.
18871 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
18872 arm_zero_extendsidi2, arm_zero_extendqidi2): New
18873 insns/expanders.
18874 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
18875 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
18876 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
18877 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
18878 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
18879 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
18880 insns.
18881 * doc/extend.texi: Document ARMv7-M interrupt functions.
18882 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
18883
f8e7718c
JJ
188842007-01-03 Jakub Jelinek <jakub@redhat.com>
18885
18886 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
18887 (struct _Unwind_Context): Rename args_size to flags, remove
18888 signal_frame field, add a new args_size field and version field.
18889 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
18890 _Unwind_IsExtendedContext): New inline functions.
18891 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
18892 Assume by_value array is only present if _Unwind_IsExtendedContext.
18893 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
18894 _Unwind_IsSignalFrame.
18895 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
18896 (uw_update_context_1): Use _Unwind_SetSignalFrame.
18897 (uw_init_context_1): Initialize context->flags to
18898 EXTENDED_CONTEXT_BIT.
18899 * config/rs6000/linux-unwind.h (frob_update_context): Use
18900 _Unwind_SetSignalFrame.
18901
d9c2d296
AP
189022007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
18903
798d1cc9 18904 PR middle-end/30353
d9c2d296
AP
18905 * gimplify.c (gimplify_modify_expr_complex_part): Move below
18906 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
18907 the value.
18908
8a2fcf91
KH
189092007-01-03 Kazu Hirata <kazu@codesourcery.com>
18910
18911 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
18912 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
18913 RET, AT_SP): Remove.
18914 * config/i386/i386.md (*sse_prologue_save_insn): Use return
18915 instead of RET.
18916
a590ac65
KH
18917 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18918 * cfgbuild.c (find_basic_blocks): Likewise.
18919 * cfgrtl.c (rtl_create_basic_block): Likewise.
18920 * function.c (temp_slots_at_level): Likewise.
18921 * reg-stack.c (stack_regs_mentioned): Likewise.
18922 * regclass.c (allocate_reg_info): Likewise.
18923 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18924 set_bb_for_stmt, move_block_to_fn): Likewise.
18925 * tree-complex.c (tree_lower_complex): Likewise.
18926 * vec.h (VEC_safe_grow_cleared): New.
18927
d60ab196
KH
18928 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
18929
a590ac65 189302007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
03cb2019
ZD
18931
18932 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
18933 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
18934 to loop_version.
18935 * cfgloopmanip.c (scale_loop_frequencies): Export.
18936 (loopify): Scale the frequencies by prescribed coefficients.
18937 (set_zero_probability): New function.
18938 (duplicate_loop_to_header_edge): Improve updating of frequencies.
18939 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
18940 and frequencies according to arguments.
18941 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
18942 correctly.
18943 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
18944 * modulo-sched.c (sms_schedule): Set probabilities for entering
18945 versioned loop correctly.
18946 * tree-vect-transform.c (vect_transform_loop): Ditto.
18947 * cfgloop.h (loopify, loop_version): Declaration changed.
18948 (scale_loop_frequencies): Declared.
18949
7a388ee4
JH
189502007-01-02 Jan Hubicka <jh@suse.cz>
18951
18952 * cgraph.c: Include tree-flow.h
18953 (cgraph_add_new-function): Handle IPA_SSA mode; execute
18954 early_local_passes.
18955 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
18956 * tree-pass.h (pass_all_early_optimizations): Declare.
18957 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
18958 early_local_passes.
18959 (cgraph_analyze_function): Do early_local_passes.
18960 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
18961 Do not add referenced vars.
18962 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
18963 SSA form.
18964 (gate_all_early_local_passes): New gate.
18965 (pass_early_local_passes): Use new gate.
18966 (execute_early_local_optimizations): New functions.
18967 (gate_all_early_optimizations): New gate.
18968 (pass_all_early_optimizations): New pass.
18969 (execute_free_datastructures): Free SSA only when initialized.
18970 (gate_init_datastructures): Init only when optimizing.
18971 (tree_lowering_passes): Do early local passes when called late.
18972 * tree-profile.c (do_tree_profiling): Don't profile functions added
18973 late.
18974 (do_early_tree_profiling, pass_early_tree_profile): Kill.
18975 * tree-cfg.c (update_modified_stmts): Do not update when operands are
18976 not active.
18977 * passes.c (init_optimizations_passes): Reorder so we go into SSA
18978 during early_local_passes.
18979 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
18980
18981
ce7b00a8
CD
189822007-01-02 Carlos O'Donell <carlos@codesourcery.com>
18983
18984 * Makefile.in: Update copyright year.
18985
b3e7b87f
CD
189862007-01-02 Carlos O'Donell <carlos@codesourcery.com>
18987
18988 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
18989 in $(lang_checks) and check-consistency targets.
18990
ed1a2abd
JH
189912007-01-02 Jan Hubicka <jh@suse.cz>
18992
03cb2019
ZD
18993 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
18994 Do not add referenced vars.
18995 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
18996 are not active.
18997 * passes.c (init_optimization_passes): Put mudflap_2 after
18998 free_datastructures.
ed1a2abd 18999
de6bd996
JH
190002007-01-02 Jan Hubicka <jh@suse.cz>
19001
19002 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
19003 Set NOTHROW flag on call statements proved to be nothrow.
19004 Update statement of local calls so new pure/const functions are
19005 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
19006 goto receivers.
19007 (tree_rest_of_compilation): Register hooks and initialize bitmap
19008 early. Do not set after_inlining flag.
19009
a063525a
SE
190102007-01-02 Steve Ellcey <sje@cup.hp.com>
19011
19012 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
e4b6bec2 19013 HOST_BITS_PER_LONGLONG
a063525a 19014
b405ac80
MLI
190152007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19016
19017 PR c/19977
19018 * c-typeck.c (store_init_value): Don't emit pedantic overflow
19019 warning for non-static initializers.
e4b6bec2 19020
bd94cb6e
SB
190212007-01-02 Steven Bosscher <steven@gcc.gnu.org>
19022
19023 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
19024 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
19025 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
19026 Always use set_unique_reg_note to add REG_EQUAL notes.
19027
61465e75
KH
190282007-01-02 Kazu Hirata <kazu@codesourcery.com>
19029
19030 Revert:
19031 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
19032
19033 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
19034 * cfgbuild.c (find_basic_blocks): Likewise.
19035 * cfgrtl.c (rtl_create_basic_block): Likewise.
19036 * function.c (temp_slots_at_level): Likewise.
19037 * reg-stack.c (stack_regs_mentioned): Likewise.
19038 * regclass.c (allocate_reg_info): Likewise.
19039 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
19040 set_bb_for_stmt, move_block_to_fn): Likewise.
19041 * tree-complex.c (tree_lower_complex): Likewise.
19042 * vec.h (VEC_safe_grow_cleared): New.
19043
190442007-01-02 Ian Lance Taylor <iant@google.com>
fbc8d2d3
ILT
19045
19046 * c-common.c (c_common_truthvalue_conversion): When warning about
19047 using an assignment as a truth value, set TREE_NO_WARNING.
19048
b1ed4cb4
MLI
190492007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19050
19051 PR middle-end/7651
19052 * c.opt (Wold-style-declaration): New.
19053 * doc/invoke.texi (C-only Warning Options): New.
19054 (Wold-style-declaration): Document it.
19055 (Wextra): Enabled by -Wextra.
19056 * c-opts.c (c_common_post_options): Enabled by -Wextra.
19057 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
19058 -Wold-style-declaration.
e4b6bec2 19059
d887a682
KH
190602007-01-02 Kazu Hirata <kazu@codesourcery.com>
19061
19062 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
19063 * cfgbuild.c (find_basic_blocks): Likewise.
19064 * cfgrtl.c (rtl_create_basic_block): Likewise.
19065 * function.c (temp_slots_at_level): Likewise.
19066 * reg-stack.c (stack_regs_mentioned): Likewise.
19067 * regclass.c (allocate_reg_info): Likewise.
19068 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
19069 set_bb_for_stmt, move_block_to_fn): Likewise.
19070 * tree-complex.c (tree_lower_complex): Likewise.
19071 * vec.h (VEC_safe_grow_cleared): New.
19072
06d40de8
DG
190732007-01-02 Douglas Gregor <doug.gregor@gmail.com>
19074
5b081108 19075 * c-common.c (c_common_nodes_and_builtins): Since variants of
06d40de8 19076 void_type_node get built before it is given a name, we need to
e4b6bec2 19077 give those variants the name, too.
06d40de8
DG
19078 (complete_array_type): We need to work with the canonical main
19079 type of the array, from which we will build the qualified version.
19080 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
19081 * print-tree.c (print_node): Display canonical type information
19082 for each type.
19083 * stor-layout.c (layout_type): When we don't know the
19084 alignment of a type for which we're building an array, we end up
19085 guessing wrong, so make the type require structural equality.
19086 * tree.c (make_node_stat): When we build a new type, it is its
19087 own canonical type.
19088 (build_type_attribute_qual_variant): When building an attribute
19089 variant, its canonical type is the non-attribute variant. However,
19090 if the attributes are target-dependent and they differ, we need to
19091 use structural equality checks for this type.
19092 (build_qualified_type): A qualified type is not equivalent to its
19093 unqualified variant; set the canonical type appropriately.
19094 (build_distinct_type_copy): When building a distinct type from
19095 another type, the new type is its own canonical type.
19096 (build_variant_type_copy): When building a new type variant, we
19097 assume that it is equivalent to the original type.
19098 (build_pointer_type_for_mode): When building a pointer type, also
19099 build a canonical type pointer.
19100 (build_reference_type_for_mode): When building a reference type,
19101 also build a canonical type reference.
19102 (build_index_type): When we can't hash an index type (e.g.,
19103 because its maximum value is negative), the index type requires
19104 structural equality tests.
19105 (build_array_type): Build the canonical form of an array type.
19106 (build_function_type): Function types require structural equality,
e4b6bec2 19107 because they contain default arguments, attributes, etc.
06d40de8
DG
19108 (build_method_type_directly): Ditto for method types.
19109 (build_offset_type): Build the canonical offset type.
19110 (build_complex_type): Build the canonical vector type.
19111 (make_vector_type): Build the canonical vector type.
19112 * tree.h (TYPE_CANONICAL): New.
19113 (TYPE_STRUCTURAL_EQUALITY_P): New.
19114 (SET_TYPE_STRUCTURAL_EQUALITY): New.
19115 (struct tree_type): Added "canonical" field.
19116 * params.h (VERIFY_CANONICAL_TYPES): New.
19117 * doc/c-tree.texi (TYPE_CANONICAL): Document.
19118 (TYPE_STRUCTURAL_EQUALITY_P): Document.
19119 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
19120 * doc/invoke.texi (verify-canonical-types): Document --param
19121 parameter for verifying canonical types.
19122
eca0d5e8
JM
191232007-01-02 Joseph Myers <joseph@codesourcery.com>
19124
19125 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
19126 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
19127 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
19128 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
19129 tm_file.
19130 * config/rs6000/e500.h: New.
19131 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
19132 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
19133 Remove.
19134 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
19135 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
19136 TARGET_E500_DOUBLE): Remove.
19137 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
19138 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
19139 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
19140 * config/rs6000/rs6000.c (rs6000_override_options): Use
19141 CHECK_E500_OPTIONS.
19142
8ef65e3d
JM
191432007-01-02 Joseph Myers <joseph@codesourcery.com>
19144
19145 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
19146 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
19147 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
19148 rs6000_emit_cmove): Don't check TARGET_E500.
19149 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
19150 sordered): Don't check TARGET_E500.
19151
d8934cf1
EC
191522007-01-01 Eric Christopher <echristo@apple.com>
19153
19154 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
19155 HARD_REGISTER_NUM_P.
19156
cf06e5c1
RS
191572007-01-01 Roger Sayle <roger@eyesopen.com>
19158
19159 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
19160 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
19161 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
19162 eq/ne Y".
19163
e68ea32e
MS
191642007-01-01 Mike Stump <mrs@apple.com>
19165
19166 * configure.ac: Remove support for building with Apple's gcc-3.1.
19167
a446b4e8
JM
191682007-01-02 Joseph Myers <joseph@codesourcery.com>
19169
19170 PR middle-end/30311
19171 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
19172 REG is a hard register. Do not modify REG before calling
19173 subreg_nregs.
19174 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
19175 multiple of the size of YMODE for certain lowpart cases.
19176
c0893ec0
AP
191772007-01-01 Andrew Pinski <pinskia@gmail.com>
19178
19179 PR middle-end/30253
19180 * gimplify (voidify_wrapper_expr): Update for
e7073e64 19181 GIMPLE_MODIFY_STMT.
c0893ec0 19182
ae1e2d4c
AS
191832007-01-01 Andreas Schwab <schwab@suse.de>
19184
19185 PR target/29166
19186 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
19187 save of BR0 in extra_spill_size instead of spill_size.
19188 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
19189 area.
19190 (ia64_expand_epilogue): Restore BR0 from its new location.
19191
9bed0a34
AP
191922007-01-01 Andrew Pinski <pinskia@gmail.com>
19193
19194 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
19195 Use a temporary variable if the left hand side is not a gimple
19196 register.
19197
a441d616
AP
191982007-01-01 Andrew Pinski <pinskia@gmail.com>
19199
19200 * gimplify.c (gimplify_return_expr): Make the temporary variable
19201 for the return expression, a gimple register variable.
19202
95e2a53b
JH
192032007-01-01 Jan Hubicka <jh@suse.cz>
19204
19205 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
19206 INSN_LIST.
19207
5708d18d
MS
192082007-01-01 Mike Stump <mrs@apple.com>
19209
19210 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
19211 .literal16.
19212 * config/darwin.c (machopic_select_rtx_section): Use
19213 HAVE_GAS_LITERAL16.
19214 (darwin_mergeable_constant_section): Likewise.
19215 * configure: Regenerate.
19216 * config.in: Regenerate.
19217
03c72655
JH
192182007-01-01 Jan Hubicka <jh@suse.cz>
19219 Andrew Pinski <pinskia@gmail.com>
19220
19221 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
19222 before starting IPA passes.
This page took 2.50364 seconds and 5 git commands to generate.