1 2007-12-14 Jakub Jelinek <jakub@redhat.com>
4 * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
5 DImode comparisons against constant with all 1's in the lower word.
7 2007-12-14 Uros Bizjak <ubizjak@gmail.com>
9 * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
10 constraint for operand2. Use nonimm_not_xmm0_operand constraint
11 for operand 4. Update arguments in the call to
12 gen_sse4_2_pcmpestr_cconly.
13 (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
15 (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
16 Use nonimm_not_xmm0_operand constraint for operand 3. Update
17 arguments in the call to gen_sse4_2_pcmpistr_cconly.
18 (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
20 2007-12-14 Richard Guenther <rguenther@suse.de>
23 * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
24 parameter to say whether to unlink immediate uses.
25 * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
26 mark the artificial stmt as modified. Unlink immediate uses
28 * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
29 * tree-ssa-pre.c (insert_fake_stores): Likewise.
31 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr>
34 * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
35 * tree-complex.c (init_dont_simulate_again): Return true if there are
36 uninitialized loads generated by gimplify_modify_expr_complex_part.
37 * tree-gimple.c (is_gimple_reg_type): Return false for complex types
39 * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
40 (warn_uninit): ...here. Use ssa_undefined_value_p.
41 * tree-ssa-pre.c (is_undefined_value): Delete.
42 (phi_translate_1): Use ssa_undefined_value_p.
43 (add_to_exp_gen): Likewise.
44 (make_values_for_stmt): Likewise.
45 * tree-flow.h (ssa_undefined_value_p): Declare.
47 2007-12-13 Andrew Pinski <pinskia@gmail.com>
48 David Daney <ddaney@avtrex.com>
51 * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
54 2007-12-13 Jakub Jelinek <jakub@redhat.com>
56 PR rtl-optimization/32636
57 * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
58 regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
60 2007-12-13 Uros Bizjak <ubizjak@gmail.com>
61 Richard Guenther <rguenther@suse.de>
64 * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
65 _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
66 _mm_shuffle_epi32): Cast non-constant input values to either __m64,
67 __m128, __m128i or __m128d in a macro version of the intrinsic.
68 Cast constant input values to int.
69 * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
70 * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
71 _mm_roti_epi32, _mm_roti_epi64): Ditto.
72 * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
73 _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
74 _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
75 _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
76 _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
77 _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
78 _mm_cmpestrs, _mm_cmpestrz): Ditto.
79 * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
80 * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
81 _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
82 * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
83 _mm_round_ps, _mm_round_ss): Ditto.
85 2007-12-13 Richard Guenther <rguenther@suse.de>
87 PR tree-optimization/34450
88 * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
89 * invoke.texi (sccvn-max-scc-size): Document.
90 * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
91 * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
93 * tree-ssa-sccvn.c (params.h): Include.
94 (DFS): Return true if all went well, return false as soon as
95 a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
96 (run_scc_vn): Return true if all went well, return false if
97 we aborted during DFS.
98 * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
99 successfully, otherwise bail out.
101 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
103 * ipa-struct-reorg.c (is_candidate): Print information to dump
104 file when the type is initialized.
105 (get_stmt_accesses): Likewise when a structure has bitfields
106 or field access is too complicate.
107 (safe_cond_expr_check): Likewise for unsafe condition expressions.
108 (exclude_cold_structs): Likewise for cold structures.
109 (collect_structures): Suppress redundant print when there are
110 no structures to transform.
111 (do_reorg): Print to dump file a number of structures that
113 (dump_new_types): Print a number of new types to replace
114 an original structure type.
116 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
118 * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
119 option and struct-reorg-cold-struct-ratio parameter.
121 2007-12-13 Torbjorn Granlund <tege@swox.com>
123 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
124 ZERO_EXTEND when computing costs for widening multiplication.
126 2007-12-13 Richard Earnshaw <rearnsha@arm.com>
129 * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
130 exit when using hard FPA.
131 * config/arm/ieee754-df.S (floatdidf): Likewise.
133 2007-12-12 Jakub Jelinek <jakub@redhat.com>
136 * doc/install.texi: Document that for MinGW only runtime 3.12 and
139 2007-12-12 David Edelsohn <edelsohn@gnu.org>
141 * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
143 2007-12-12 Aldy Hernandez <aldyh@redhat.com>
145 PR tree-optimization/32901
146 * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
147 are assigning from a constant constructor.
148 Fix wrapping in function comment.
150 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
152 * config/s390/s390.c (s390_O_constraint_str): Limit the range
153 for 'On' to -4G+1..-1.
154 * config/s390/constraints.md: Adjust comment accordingly.
156 2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
158 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
161 2007-12-11 Kai Tietz <kai.tietz@onevision.com>
163 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
164 target same as 32-bit.
166 2007-12-10 Jakub Jelinek <jakub@redhat.com>
168 PR tree-optimization/34371
169 * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
171 (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
172 * tree-vectorizer.c (set_prologue_iterations,
173 slpeel_tree_peel_loop_to_edge): Call unshare_expr on
174 LOOP_VINFO_NITERS_UNCHANGED before using it.
176 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
179 * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
180 (ix86_expand_setmem): Likewise.
182 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
184 PR rtl-optimization/34302
185 * auto-inc-dec.c (attempt_change): Change place where move is
188 2007-12-10 Jakub Jelinek <jakub@redhat.com>
190 * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
191 Fortran multi-dimensional arrays use DW_AT_ordering
194 2007-12-10 Paolo Bonzini <bonzini@gnu.org>
197 * config/i386/i386.c (override_options): Enable -fvect-cost-model.
199 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
201 * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
202 array, registers that are members of global_regs are also members of
203 fixed_regs array. Use REGPARM_MAX to check that no regparm hard
204 register is taken by a fixed register variable. Check up to and
205 including DI_REG when adjusting regparm value due to fixed regs usage.
206 (rep_prefix_usable): Check fixed_regs array, not global_regs array for
207 available hard registers.
208 (ix86_expand_strlen): Ditto.
209 * config/i386/i386.md (strmov): Ditto.
212 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
214 * genopinit.c: Include tm_p.h in generated file.
216 * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
217 to extract the integer from operands[2].
218 (vec_setv2di_internal): Likewise.
220 * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
221 (arm_init_neon_builtins): Move code after declarations.
223 2007-12-10 Hans-Peter Nilsson <hp@axis.com>
225 * reload.c (find_reloads_address_1): To properly mark as an
226 autoincdec, pass X for non-NULL OUT in call to push_reload for
227 autoincdec which can't be trivially used as an address.
229 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
230 Hans-Peter Nilsson <hp@axis.com>
232 * caller-save.c (insert_one_insn): If inserting before a call_insn
233 then the registers containing the arguments of the call are
234 live_throughout in the new insn.
236 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
240 * pa.md: Consolidate HImode and QImode move patterns into one pattern
241 each, eliminating floating-point alternatives.
242 * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
244 * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
245 * pa.c (pa_secondary_reload): Use an intermediate general register
246 for copies to/from floating-point register classes. Simplify code
247 SHIFT_REGS class. Provide additional comments.
248 (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
249 * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
250 (SECONDARY_MEMORY_NEEDED): Delete define.
251 (INT14_OK_STRICT): Define.
252 (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
254 (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
255 (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
257 (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
258 Align DImode offsets when generating 64-bit code.
259 * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
260 (CANNOT_CHANGE_MODE_CLASS): Define.
261 * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
262 (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
264 2007-12-09 Jakub Jelinek <jakub@redhat.com>
267 * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
268 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
269 * langhooks.h (struct array_descr_info): Forward declaration.
270 (struct lang_hooks_for_types): Add get_array_descr_info field.
271 * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
272 (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
274 * dwarf2out.h (struct array_descr_info): New type.
275 * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
276 DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
277 (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
279 (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
280 and gen_descr_array_type_die.
282 2007-12-08 Richard Guenther <rguenther@suse.de>
284 PR tree-optimization/34391
285 * tree-vect-transform.c (vect_setup_realignment): Mark new
286 symbols for renaming.
288 2007-12-07 Bob Wilson <bob.wilson@acm.org>
290 * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
291 (ASM_OUTPUT_DWARF_PCREL): Define.
293 2007-12-07 Richard Guenther <rguenther@suse.de>
296 * opts.c (common_handle_option): Handle OPT_fforce_addr.
298 2007-12-07 Aldy Hernandez <aldyh@redhat.com>
300 * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
301 (LEGITIMIZE_RELOAD_ADDRESS): Same.
303 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
306 * doc/install.texi: Explain how to check for a clean environment when
309 2007-12-07 Richard Guenther <rguenther@suse.de>
311 * tree-profile.c (gcov_type_tmp_var): New global variable.
312 (tree_gen_edge_profiler): Use a single shared variable decl per
313 function for edge counter incrementing.
314 (tree_profiling): Re-set the shared variable.
316 2007-12-06 Bob Wilson <bob.wilson@acm.org>
318 * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
320 2007-12-06 Tom Tromey <tromey@redhat.com>
323 * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
325 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
327 * config/mips/mips.c (mips_function_ok_for_sibcall): Check
328 targetm.binds_local_p as well as DECL_EXTERNAL.
330 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
332 * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
333 (set_prologue_iterations): New. Set the prologue iterations to total
334 number of scalar iterations if the cost model check indicates that
335 scalar code should be generated.
336 (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
337 generating the cost condition for epilog. Call
338 set_prologue_iterations to generate cost condition for prolog.
339 (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
340 * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
341 (slpeel_tree_peel_loop_to_edge): Update declaration.
342 (set_prologue_iterations): New declaration.
343 * tree-vect-analyze.c (vect_analyze_loop_form): Update
344 LOOP_VINFO_NITERS_UNCHANGED.
345 * tree-vect-transform.c
346 (vect_estimate_min_profitable_iters): Add new parameter and
347 code to check if run time cost model test is needed.
348 Remove code that adds builtin vectorization cost to scalar
349 outside cost for the run time cost model test. If run time
350 cost model test is needed add the appropriate guard cost to
351 the scalar outside cost. The guard cost depends on whether
352 the guard is generated at versioning or at prolog generation
353 or at epilog generation. Change cost model equation to include
355 (conservative_cost_threshold): New. Return the less conservative
356 profitability threshold between the cost model threshold and the
357 user defined vectorization threshold.
358 (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
359 (vect_do_peeling_for_alignment): Same.
360 (vect_loop_versioning): Same.
361 (vect_create_cond_for_align_checks): ANDs the cost model condition
362 with the alignment condition.
363 (vect_transform_loop): Call loop versioning only when there is a
364 misalignment or an aliasing problem.
366 2007-12-06 Jakub Jelinek <jakub@redhat.com>
369 * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
370 (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
371 BUILT_IN_VA_COPY and BUILT_IN_VA_END.
373 * target.h (struct ggc_target): Add expand_builtin_va_start hook.
374 * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
375 (TARGET_INITIALIZER): Add it.
376 * builtins.c (expand_builtin_va_start): Use
377 targetm.expand_builtin_va_start hook instead of
378 EXPAND_BUILTIN_VA_START macro.
379 * alpha/alpha.c (alpha_va_start): Made static.
380 (override_options): Clear targetm.expand_builtin_va_start if
382 (TARGET_EXPAND_BUILTIN_VA_START): Define.
383 * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
384 * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
385 * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
386 * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
387 * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
388 (xtensa_va_start): Made static.
389 * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
390 * pa/pa-protos.h (hppa_va_start): Remove prototype.
391 * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
392 * pa/pa.c (hppa_va_start): Made static, add prototype.
393 (TARGET_EXPAND_BUILTIN_VA_START): Define.
394 * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
395 (TARGET_EXPAND_BUILTIN_VA_START): Define.
396 * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
397 * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
398 * i386/i386.c (override_options): Clear
399 targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
400 (ix86_va_start): Made static.
401 (TARGET_EXPAND_BUILTIN_VA_START): Define.
402 * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
403 * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
404 * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
405 * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
406 * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
407 (TARGET_EXPAND_BUILTIN_VA_START): Define.
408 * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
409 * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
410 (TARGET_EXPAND_BUILTIN_VA_START): Define.
411 (rs6000_override_options): Clear targetm.expand_builtin_va_start if
412 DEFAULT_ABI != ABI_V4.
413 * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
414 * spu/spu.c (spu_va_start): Made static, add prototype.
415 (TARGET_EXPAND_BUILTIN_VA_START): Define.
416 * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
417 * spu/spu-protos.h spu_va_start): Remove prototype.
418 * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
419 * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
421 * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
422 (TARGET_EXPAND_BUILTIN_VA_START): Define.
423 * s390/s390-protos.h (s390_va_start): Remove prototype.
424 * s390/s390.c (s390_va_start): Made static.
425 (TARGET_EXPAND_BUILTIN_VA_START): Define.
426 * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
427 * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
428 * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
429 * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
430 (TARGET_EXPAND_BUILTIN_VA_START): Define.
431 * arc/arc.c (arc_va_start): Made static, add prototype.
432 (TARGET_EXPAND_BUILTIN_VA_START): Define.
433 * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
434 * arc/arc-protos.h (arc_va_start): Remove prototype.
435 * mt/mt-protos.h (mt_va_start): Remove prototype.
436 * sparc/sparc.c (sparc_va_start): Made static, add prototype.
437 (TARGET_EXPAND_BUILTIN_VA_START): Define.
438 * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
439 * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
440 * sh/sh.c (sh_va_start): Made static, add prototype.
441 (TARGET_EXPAND_BUILTIN_VA_START): Define.
442 * sh/sh-protos.h (sh_va_start): Remove prototype.
443 * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
444 * mips/mips-protos.h (mips_va_start): Remove prototype.
445 * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
446 * mips/mips.c (mips_va_start): Made static.
447 (TARGET_EXPAND_BUILTIN_VA_START): Define.
449 2007-12-06 Uros Bizjak <ubizjak@gmail.com>
451 * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
452 "flag_tree_parallelize_loops > 1".
454 2007-12-06 Zdenek Dvorak <ook@ucw.cz>
455 Dorit Nuzman <dorit@il.ibm.com>
456 Jakub Jelinek <jakub@redhat.com>
458 PR tree-optimization/34005
459 * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
460 * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
461 (gimplify_pure_cond_expr): New function.
462 (generic_expr_could_trap_p): New function.
463 (gimplify_cond_expr): Call gimplify_pure_cond_expr.
464 (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
466 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
468 * config/s390/s390.c (s390_emit_stack_tie): New function.
469 (s390_emit_prologue): Emit a stack tie when writing to the
471 * config/s390/s390.md ("stack_tie"): New insn definition.
473 2007-12-06 Ben Elliston <bje@au.ibm.com>
476 * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
478 2007-12-05 Jakub Jelinek <jakub@redhat.com>
481 * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
482 number of bits set in C1 if a mode mask for some mode can be used
485 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
487 * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
490 2007-12-05 Richard Guenther <rguenther@suse.de>
492 PR tree-optimization/34138
493 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
494 Do not forward propagate addresses if that changes volatileness of
497 2007-12-05 Uros Bizjak <ubizjak@gmail.com>
500 * config/i386/i386.c (ix86_function_regparm): Also check for fixed
501 registers when checking that regparm registers are available.
502 Lower regparm value due to fixed registers usage in addition to
505 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
507 * sparseset.c: Include config.h and system.h before sparseset.h.
508 * sparseset.h: Remove inclusion of system.h.
510 2007-12-05 Jakub Jelinek <jakub@redhat.com>
511 Richard Sandiford <rsandifo@nildram.co.uk>
513 * optabs.c (init_insn_codes): New function.
515 (init_optab, init_optabv): Don't call new_optab.
516 (init_convert_optab): Don't clear the insn codes.
517 (init_optabs): Call init_insn_codes.
519 2007-12-04 Jakub Jelinek <jakub@redhat.com>
521 * omp-low.c (optimize_omp_library_calls): New function.
522 (expand_omp_parallel): Call it if optimizing.
525 * stmt.c (expand_stack_restore): Call expand_normal on var to get
526 rtx for it instead of assuming it will be a VAR_DECL.
528 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
530 * c-parser (c_parser_statement_after_labels): Move error from here...
531 (c_parser_label): ... to here. Check that the declaration is not
532 actually just another label.
534 2007-12-04 Richard Guenther <rguenther@suse.de>
538 * tree-ssa-operands.c (get_addr_dereference_operands): If we
539 fall back to using the SMTs aliases, make sure to add virtual
540 operands for the SMT itself.
541 (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
542 clear the loaded and stored symbols bitmaps.
544 2007-12-04 Ben Elliston <bje@au.ibm.com>
546 * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
548 2007-12-04 Ben Elliston <bje@au.ibm.com>
550 * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
552 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
555 * doc/invoke.texi: Remove -fforce-addr documentation.
556 * expr.c (emit_move_insn): Remove use of flag_force_addr.
557 (expand_expr_real_1): Same.
558 (do_tablejump): Same.
559 Call memory_address instead of memory_address_noforce.
560 * expr.h (memory_address_noforce): Remove prototype.
561 * explow.c (memory_address): Remove support for flag_force_addr.
562 (validize_mem): Same.
563 (memory_address_noforce): Remove.
564 * common.opt: Add dummy documentation for -fforce-addr.
565 * combine.c (can_combine_p): Remove -fforce-addr comment.
566 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
568 * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
569 relating to memory_address_noforce.
570 * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
571 * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
573 2007-12-03 Jakub Jelinek <jakub@redhat.com>
575 * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
576 with !ctx->is_nested.
577 (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
578 even if !ctx->is_nested.
579 (lower_copyprivate_clauses, lower_send_clauses,
580 lower_send_shared_vars): Call lookup_decl_in_outer_ctx
584 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
585 (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
586 and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
587 (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
588 (X & C2) << C1 into (X << C1) & (C2 << C1) and
589 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
592 PR tree-optimization/33453
593 * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
594 for pointer addition.
595 * tree-parloops.c (canonicalize_loop_ivs): Likewise.
596 (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
599 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
601 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
604 2007-12-03 Razya Ladelsky <razya@il.ibm.com>
606 * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
608 2007-12-03 Jakub Jelinek <jakub@redhat.com>
611 * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
612 * common.opt (ftree-store-copy-prop): Use the same help text as for
615 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
616 Revital Eres <eres@il.ibm.com>
618 * modulo-sched.c (calculate_must_precede_follow,
619 try_scheduling_node_in_cycle): New functions.
620 (sms_schedule_by_order): Call the new functions.
621 (ps_insn_find_column): Use must_follow and must_precede only if
623 (ps_insn_advance_column): Likewise.
625 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
626 Revital Eres <eres@il.ibm.com>
628 * modulo-sched.c (get_sched_window): Fix the direction of the
629 scheduling window and add dump info.
631 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
633 * config/sh/sh.md (cmpgeusi_t): Fix condition.
635 2007-11-30 Jan Hubicka <jh@suse.cz>
637 * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
639 2007-11-30 Seongbae Park <seongbae.park@gmail.com>
641 PR rtl-optimization/34171
642 * cfgrtl.c (update_bb_for_insn_chain): New function,
643 refactored from update_bb_for_insn.
644 (update_bb_for_insn): Call update_bb_for_insn.
645 (rtl_merge_blocks, try_redirect_by_replacing_jump):
646 Replace a loop with update_bb_for_insn_chain call.
647 (cfg_layout_merge_blocks): Add a call to
648 update_bb_for_insn_chain. Replace the for loop
649 with a call to update_bb_for_insn_chain.
651 2007-11-30 Ben Elliston <bje@au.ibm.com>
653 * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
655 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
657 PR tree-optimization/34244
658 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
659 (record_numbers_of_iterations): New function.
660 (execute_vrp): Cache the numbers of iterations of loops.
661 * tree-scalar-evolution.c (scev_reset_except_niters): New function.
662 (scev_reset): Use scev_reset_except_niters.
663 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
665 2007-11-29 Jan Hubicka <jh@suse.cz>
666 Jakub Jelinek <jakub@redhat.com>
668 PR tree-optimization/33434
669 * tree-inline.c (setup_one_parameter): If the value passed to
670 a parameter is never used, don't set it up.
672 2007-11-29 Jakub Jelinek <jakub@redhat.com>
675 * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
676 * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
678 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
680 * Makefile.in: Use separate vpath lines for each path.
682 2007-11-29 Ben Elliston <bje@au.ibm.com>
684 * SERVICE: Update URL.
686 2007-11-28 Jakub Jelinek <jakub@redhat.com>
688 PR tree-optimization/34140
689 * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
690 loop->header has virtual phi nodes.
692 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
695 * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
696 of GP register, if valid and fixed.
699 2007-06-21 David Daney <ddaney@avtrex.com>
702 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
703 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
704 (exception_receiver): Renamed to ...
705 (nonlocal_goto_receiver): ... this.
707 2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
708 Joey Ye <joey.ye@intel.com>
711 * config/i386/i386.c (function_arg_32): Don't pass aggregate
712 arguments in ECX/EDX for fastcall.
714 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
716 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
718 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
719 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
721 2007-11-28 Ben Elliston <bje@au.ibm.com>
723 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
724 (maix32): Add Negative(maix64).
726 2007-11-27 Jakub Jelinek <jakub@redhat.com>
728 PR tree-optimization/34016
729 * tree-ssa-loop.c (pass_linear_transform): Add
730 TODO_update_ssa_only_virtuals to todo_flags_finish.
732 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
734 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
735 * config/avr/avr.h (LINK_SPEC): Likewise.
736 (CRT_BINUTILS_SPECS): Likewsie.
737 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
739 2007-11-27 Jakub Jelinek <jakub@redhat.com>
742 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
743 MEM_SIZE is set on all MEMs.
745 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
747 * config/s390/s390.opt (mhard-float): Add the option to be
748 overridden. That was missing in my last patch.
750 2007-11-27 Richard Guenther <rguenther@suse.de>
752 PR tree-optimization/34241
753 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
754 to only delete real conversion chains.
756 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
758 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
759 mhard-float, mlong-double-64, mlong-double-128): Add the
760 option to be overridden.
762 2007-11-27 Richard Guenther <rguenther@suse.de>
764 * builtins.c (fold_builtin_1): Verify the argument types
765 of BUILT_IN_ISNORMAL.
766 (fold_builtin_n): Verify the number of arguments to variadic
769 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
771 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
772 * doc/invoke.texi (Blackfin Options): Document the effects.
774 2007-11-27 Ben Elliston <bje@au.ibm.com>
776 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
777 (m64): Add Negative(m32).
778 * config/rs6000/darwin.opt (m32): Add Negative(m64).
779 (m64): Add Negative(m32).
781 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
783 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
785 2007-11-26 Michael Meissner <michael.meissner@amd.com>
788 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
789 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
790 to get the mode for loading a pseudo register with a count rather
791 than duplicating code.
793 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
795 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
796 * config/avr/avr.h (LINK_SPEC): Likewise.
797 (CRT_BINUTILS_SPECS): Likewsie.
798 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
800 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
802 * c-common.c (conversion_warning): Use get_unwidened instead of
805 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
808 * c-parser.c (struct c_parser): New bit in_if_block.
809 (c_parser_compound_statement_nostart): Handle unexpected 'else'
811 (c_parser_statement_after_labels): Set in_if_block to false while
813 (c_parser_if_body): Don't call c_parser_statement_after_labels if
814 a semicolon is found, just consume it. Don't call
815 c_parser_statement_after_labels if an open brace is found, call
816 c_parser_compound_statement instead.
817 (c_parser_else_body): New.
818 (c_parser_if_statement): Set in_if_block to true when parsing the
819 body of the 'if' statement. Use c_parser_else_body.
821 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
824 * c-decl.c (store_parm_decls): Pass 'false' for the new
825 allocate_struct_function parameter.
826 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
827 * tree-parloops.c (create_loop_fn): Likewise.
828 * function.c (push_function_context_to, push_struct_function,
829 init_function_start): Likewise.
830 (allocate_struct_function): Add boolean parameter.
831 * tree.h (allocate_struct_function): Add boolean parameter.
832 * function.h (struct function): Move returns_struct and
833 returns_pcc_struct to the end of the structure definiton.
835 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
838 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
839 virtual registers are already instantiated.
840 (truncxf<mode>2): Ditto.
841 (floatsi<mode>2): Ditto.
845 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
848 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
849 the address before it is clobbered.
851 2007-11-26 Nick Clifton <nickc@redhat.com>
853 * config/mn10300/mn10300.md: (call_internal): Remove mode on
854 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
855 (call_value_internal): Remove mode on operands 0 and 1 in order to
856 match UNPSEC'ed calls generated in PIC mode.
857 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
860 2007-11-26 Richard Guenther <rguenther@suse.de>
863 * builtins.c (expand_builtin_pow): Use expand_expr to expand
864 the result of build_call_expr.
866 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
867 Revital Eres <eres@il.ibm.com>
870 * bb-reorder.c (insert_section_boundary_note): Clear
871 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
873 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
875 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
877 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
879 * dwarf2asm.c (splay_tree_compare_strings): New function.
880 (dw2_force_const_mem): Use it.
882 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
884 * tree.c (type_hash_add): Don't violate strict aliasing rules.
886 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
889 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
890 matches between anonymous union fields.
892 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
894 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
895 declarations and blocks only after inlining. Check that
896 non-empty blocks are not dropped.
897 * tree-inline.c (expand_call_inline): Check that functions are
898 not inlined too late.
900 2007-11-26 Ben Elliston <bje@au.ibm.com>
902 * unwind-dw2-fde.c: Fix comment typo.
903 * unwind-generic.h: Likewise, fix comment typos.
905 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
907 * tree-sra.c (scalarize_use): Adjust the vpos argument to
908 sra_explode_bitfield_assignment in cases where the type is
909 wider than the bitfield.
911 2007-11-25 Richard Guenther <rguenther@suse.de>
913 * tree.h (struct tree_block): Move locus member next to flags.
914 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
915 (SCOPE_LIST_CONCAT): Likewise.
916 (pop_scope): Likewise.
917 * function.c (instantiate_decls_1): Likewise.
918 (setjmp_vars_warning): Likewise.
919 * emit-rtl.c (set_used_decls): Likewise.
920 * tree-inline.c (add_lexical_block): Likewise.
922 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
924 * rtlanal.c (label_is_jump_target_p): Return true for a matching
926 * reorg.c (fill_slots_from_thread): Correct last change to use
927 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
928 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
929 * jump.c (mark_jump_label_1): Add comment for last change
930 regarding JUMP_LABEL setting.
931 * gcse.c (add_label_notes): Remove conditional that the label is
932 mentioned in insn before adding regnote.
933 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
934 single_set insn only feeding a label to a jump through a
935 register that dies there.
937 2007-11-23 Dirk Mueller <dmueller@suse.de>
938 Richard Guenther <rguenther@suse.de>
941 * tree-vrp.c (check_array_ref): Move check for valid location..
942 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
944 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
946 * reload.c (find_reloads_address_1) <autoincdec cases>:
947 Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
949 2007-11-23 Richard Guenther <rguenther@suse.de>
950 Michael Matz <matz@suse.de>
952 PR tree-optimization/34176
953 * alloc-pool.h (empty_alloc_pool): Declare.
954 * alloc-pool.c (empty_alloc_pool): New function.
955 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
956 valid table if a lookup from the optimistic table failed.
957 (vn_unary_op_lookup): Likewise.
958 (vn_binary_op_lookup): Likewise.
959 (vn_phi_lookup): Likewise.
960 (process_scc): Clear optimistic tables before every iteration.
962 2007-11-23 Richard Guenther <rguenther@suse.de>
964 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
965 (merge_alias_info): Do verification only if checking is
966 enabled. Merge flow-sensitive alias information in simple cases.
967 * tree-ssa-operands.c (get_addr_dereference_operands): Also
968 complain about missing NMTs.
970 2007-11-23 Jakub Jelinek <jakub@redhat.com>
973 * c-common.c (conversion_warning): For INTEGER_TYPE to
974 INTEGER_TYPE conversions call get_narrower on expr to avoid
975 spurious warnings from binop shortening or when the implicit
976 conversion can't change the value.
978 2007-11-22 Joseph Myers <joseph@codesourcery.com>
981 * c-decl.c (set_array_declarator_inner): Don't give error for
982 static or type qualifiers in abstract declarator. Remove
983 abstract_p parameter.
984 * c-tree.h (set_array_declarator_inner): Update prototype.
985 * c-parser.c (c_parser_direct_declarator_inner): Update call to
986 set_array_declarator_inner.
987 * doc/standards.texi: Update for C99 TC3.
989 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
991 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
992 line in my edit of the last change.
994 2007-11-22 Jakub Jelinek <jakub@redhat.com>
997 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
998 and TREE_READONLY on the fn decl rather than passing a chain
1001 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
1003 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
1005 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
1007 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1008 of ix86_arch and ix86_tune into a switch statement.
1009 (enum processor_type): Default PROCESSOR_I386 to 0.
1010 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1011 of "ix86_tune == PROCESSOR_K6".
1012 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1015 2007-11-22 Tom Tromey <tromey@redhat.com>
1017 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1018 avoid writing into string allocated by ggc_alloc_string.
1020 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
1023 * config/sh/sh.md (binary_sf_op): Remove.
1024 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1025 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1026 and gen_binary_sf_op1.
1028 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
1030 * regclass.c (init_reg_autoinc): Fix typo preventing test of
1031 secondary output reload when setting forbidden_inc_dec_class.
1033 2007-11-21 Richard Guenther <rguenther@suse.de>
1035 PR tree-optimization/34148
1036 * tree-ssa-structalias.c (create_variable_info_for): Do not use
1037 field-sensitive PTA for single-element structures.
1038 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1039 SFTs for single-element structures.
1041 2007-11-20 Richard Guenther <rguenther@suse.de>
1044 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1045 of the signed INT_CST_LT.
1046 * stmt.c (expand_case): Likewise.
1047 (estimate_case_costs): Likewise.
1049 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
1051 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1052 its binary representation.
1054 2007-11-20 Richard Guenther <rguenther@suse.de>
1056 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1059 2007-11-20 Thiemo Seufer <ths@mips.com>
1061 * config/mips/mips.c (mips_file_start): Add support for
1062 flagging 32-bit code with -mfp64 floating-point.
1064 2007-11-20 Jakub Jelinek <jakub@redhat.com>
1067 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1068 (c_gimplify_expr): Use it.
1070 2007-11-20 Ben Elliston <bje@au.ibm.com>
1072 * config/spu/spu_mfcio.h: Fix typo.
1074 2007-11-20 Ben Elliston <bje@au.ibm.com>
1076 * unwind.inc: Comment that unwind-sjlj.c includes this file.
1078 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1079 Ben Elliston <bje@au.ibm.com>
1081 * config/spu/mfc_tag_release.c: New file.
1082 * config/spu/mfc_multi_tag_release.c: Likewise.
1083 * config/spu/mfc_multi_tag_reserve.c: Likewise.
1084 * config/spu/mfc_tag_release.c: Likewise.
1085 * config/spu/mfc_tag_reserve.c: Likewise.
1086 * config/spu/mfc_tag_table.c: Likewise.
1087 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1088 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1089 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1090 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1091 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1092 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1093 mfc_multi_tag_release): Likewise.
1094 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1095 __mfc_multi_tag_release): Declare.
1097 2007-11-19 Jason Merrill <jason@redhat.com>
1099 PR debug/28834, debug/29436, c/32326
1100 * tree.c (build_type_attribute_qual_variant): Refuse to make
1101 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
1102 * doc/extend.texi (Type Attributes): Don't encourage people to add
1103 attributes to struct/enum types in a typedef. Fix
1104 transparent_union example.
1106 * tree-inline.c (remap_type_1): Remove code that's redundant with
1108 (build_duplicate_type): Set id.copy_decl.
1109 * c-common.c (handle_transparent_union_attribute): Simplify logic.
1111 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
1113 * config/rs6000/rs6000.c (invalid_e500_subreg,
1114 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1115 rs6000_legitimize_address, rs6000_legitimize_reload_address,
1116 rs6000_legitimate_address, function_arg_advance,
1117 spe_build_register_parallel, rs6000_spe_function_arg,
1118 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1119 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1120 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1121 TDmode similarly to DFmode and TFmode.
1122 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1123 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1125 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
1127 * stor-layout.c (lang_adjust_rli): Delete.
1128 (set_lang_adjust_rli): Likewise.
1129 (layout_type): Do not call lang_adjust_rli hook.
1130 * tree.h (set_lang_adjust_rli): Delete.
1132 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
1134 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1135 n_dregs_to_save and n_pregs_to_save.
1136 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
1137 all callers changed.
1138 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1139 able to save single D/P registers that aren't saved by the push/pop
1142 2007-11-19 Richard Guenther <rguenther@suse.de>
1144 PR tree-optimization/34099
1145 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1146 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1147 if only one operand is undefined.
1149 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1151 PR tree-optimization/34036
1152 * opts.c (set_fast_math_flags): Do not set flags in common
1153 with set_unsafe_math_optimizations_flags, invoke it directly.
1154 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1155 and flag_signed_zeros.
1156 * toplev.c (process_options): Force flag_associative_math to 0 and
1157 warn, if it is set and either flag_trapping_math or flag_signed_zeros
1159 * doc/invoke.texi (Optimize Options): Document the new behavior
1160 of -funsafe-math-optimizations, that -fassociative-math requires
1161 both -fno-signed-zeros and -fno-trapping-math and make it clear
1162 that -fno-trapping-math requires -fno-signaling-nans. Refactor
1163 documentation of -ffast-math.
1165 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1167 PR rtl-optimization/34132
1168 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1172 * optabs.h (optab_table): Change type to struct optab from optab.
1173 (convert_optab_table): Similarly.
1174 Adjust all _optab macros to expand to addresses of optab_table
1175 resp. convert_optab_table elements rather than the values of the
1177 * optabs.c (optab_table): Change typype to struct optab from optab.
1178 If compiled by recent GCC, initialize all the insn_code fields in
1179 the array using designated range initializers.
1180 (convert_optab_table): Similarly.
1181 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1182 set_conv_libfunc): Into libfunc_entry's optab field store index within
1183 optab_table resp. convert_optab_table array instead of difference
1184 between two separately malloced addresses.
1185 (new_optab): Add op argument, don't return anything. Initialize
1186 just the insn_code field in handlers array and only when needed.
1187 (init_optab, init_optabv): Add op argument, don't return anything.
1188 Adjust new_optab caller.
1189 (new_convert_optab): Removed.
1190 (init_convert_optab): Add op argument, don't return anything, don't
1191 call new_convert_optab. If needed, initialize insn_code field in
1193 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1195 (debug_optab_libfuncs): Adjust uses of optab_table and
1196 convert_optab_table arrays.
1198 2007-11-18 Richard Guenther <rguenther@suse.de>
1200 PR tree-optimization/34127
1201 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1202 Make code match up the comments, require compatibility of the
1205 2007-11-17 Richard Guenther <rguenther@suse.de>
1208 * fold-const.c (extract_muldiv_1): Do not move negative
1209 constants inside ABS_EXPR.
1211 2007-11-16 Ian Lance Taylor <iant@google.com>
1213 * collect2.c (dump_file): If a demangled symbol is followed by a
1214 space, make sure we output at least one space.
1216 2007-11-16 Richard Guenther <rguenther@suse.de>
1219 * fold-const.c (fold_binary): Use correct types for folding
1220 1 << X & Y to Y >> X & 1.
1222 2007-11-16 Richard Guenther <rguenther@suse.de>
1224 PR tree-optimization/33870
1225 * tree.h (struct tree_memory_tag): Add base_for_components flag.
1226 (struct tree_struct_field_tag): Remove nesting_level field.
1227 (SFT_NESTING_LEVEL): Remove.
1228 (SFT_BASE_FOR_COMPONENTS_P): Add.
1229 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
1230 base_for_components flag.
1231 (push_fields_onto_fieldstack): Remove nesting_level parameter.
1232 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
1234 (create_overlap_variables_for): Deal with it.
1235 * tree-dfa.c (dump_subvars_for): Likewise.
1236 (dump_variable): Likewise.
1237 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1238 Set base_for_components for first elements of sub-structures.
1239 (create_variable_info_for): Handle base_for_components.
1240 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1241 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1242 * tree-ssa-operands.c (ref_nesting_level): Remove.
1243 (add_vars_for_offset): Remove full_ref parameter, always add
1244 the offset of the pointed-to SFT.
1245 (add_virtual_operand): Adjust for changed signature of
1246 add_vars_for_offset.
1248 2007-11-16 Sa Liu <saliu@de.ibm.com>
1250 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
1251 floatunssidf2 and floatunsdidf2.
1253 2007-11-16 Richard Guenther <rguenther@suse.de>
1255 PR tree-optimization/34113
1256 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1257 Use correct conversion direction for checking type compatibility.
1259 2007-11-16 Richard Guenther <rguenther@suse.de>
1261 PR tree-optimization/34099
1262 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1263 that produce UNDEFINED result if at least one of its operands
1264 is UNDEFINED. By default the result is only UNDEFINED if all
1265 operands are UNDEFINED.
1267 2007-11-16 Jakub Jelinek <jakub@redhat.com>
1270 * gcc.c (init_spec): Don't initialize asm_debug here...
1271 (main): ... but here.
1273 2007-11-07 Tom Tromey <tromey@redhat.com>
1275 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
1276 * tree-parloops.c (create_loop_fn): Use set_cfun.
1277 * gengtype.c (open_base_files): Emit #undef cfun.
1278 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1279 * function.h (cfun): New define.
1280 * function.c: Undefine cfun.
1282 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
1284 * config/avr/avr.c (avr_mcu_types): Add attiny88.
1285 * config/avr/avr.h (LINK_SPEC): Likewise.
1286 (CRT_BINUTILS_SPECS): Likewsie.
1287 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1289 2007-11-15 Jakub Jelinek <jakub@redhat.com>
1292 * tree-ssa-ccp.c (optimize_stack_restore): New function.
1293 (execute_fold_all_builtins): Call optimize_stack_restore for
1294 BUILT_IN_STACK_RESTORE.
1296 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
1298 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1299 propagation into an address; that's done in should_replace_address.
1301 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1303 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1304 * config/spu/spu.c (legitimate_const): Remove.
1305 (classify_immediate): Inline call to legitimate_const.
1306 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
1307 for any constant, not just -512 .. 511.
1309 2007-11-15 Sa Liu <saliu@de.ibm.com>
1311 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1312 condition from HONOR_NANS test.
1313 * config/spu/spu.md (ceq_df): Always generate comparison code
1314 inline, including checks for NaNs and infinities.
1316 (cgt_v2df): Likewise.
1317 (cmpdf): Make this expander unconditional.
1319 2007-11-15 Richard Guenther <rguenther@suse.de>
1321 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1322 to only create SFTs if we also create variable infos for PTA.
1323 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1325 2007-11-15 Richard Guenther <rguenther@suse.de>
1327 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1328 type for TBAA pruning.
1329 (find_what_p_points_to): Call set_uids_in_ptset with the original
1330 pointer, not the decl of the solution we collapsed to.
1332 2007-11-14 David Daney <ddaney@avtrex.com>
1334 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1337 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1340 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1341 for registers in BR_REGS class.
1343 2007-11-14 Jakub Jelinek <jakub@redhat.com>
1346 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1347 init_ssa_operands has not been called for cfun.
1349 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1351 PR tree-optimization/34046
1352 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1353 scaling if the old probability is greater than the new base.
1355 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
1357 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
1358 unused edges after loop duplication.
1360 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
1362 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1363 (enum target_cpu_default): ... this enum.
1364 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
1365 * config/i386/i386.c (override_options): ... here.
1366 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1367 TARGET_CPU_DEFAULT_i486.
1369 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
1371 * global.c (rest_of_handle_global_alloc): Fix comment typos.
1372 * config/sh/sh.c (sh_rtx_costs): Likewise.
1373 * ChangeLog: Likewise.
1375 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
1377 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1378 should not be of pointer type.
1380 2007-11-13 Michael Meissner <michael.meissner@amd.com>
1382 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1384 2007-11-13 Sterling Augustine <sterling@tensilica.com>
1385 Bob Wilson <bob.wilson@acm.org>
1387 * config/xtensa/unwind-dw2-xtensa.c: New.
1388 * config/xtensa/unwind-dw2-xtensa.h: New.
1389 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1390 (DWARF2_UNWIND_INFO): Remove.
1391 (DWARF_FRAME_REGISTERS): Define.
1392 (EH_RETURN_DATA_REGNO): Define.
1393 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1395 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1397 2007-11-13 Jakub Jelinek <jakub@redhat.com>
1399 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1400 -fsched-stalled-insns.
1402 PR tree-optimization/34063
1403 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1404 as first chrec_fold_plus operand rather than second.
1406 2007-11-13 Diego Novillo <dnovillo@google.com>
1408 PR tree-optimization/33870
1409 * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1410 Remove field in_nested_struct.
1411 (struct tree_struct_field_tag): Add field nesting_level.
1412 (sft_in_nested_struct): Remove.
1413 (sft_nesting_level): Define.
1414 (sft_unpartitionable_p): Define.
1415 * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1416 partitionable, return long_max.
1417 (compute_memory_partitions): Do not partition sfts marked
1419 (create_sft): Add argument nesting_level. Set
1420 sft_nesting_level with it. Update all users.
1421 (create_overlap_variables_for): Show nesting level.
1422 * tree-dfa.c (dump_subvars_for): Likewise.
1423 (dump_variable): Likewise. Show whether the sft is
1424 partitionable or not.
1425 * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1426 Add field nesting_level.
1427 * tree-ssa-structalias.c (struct variable_info): Remove
1428 field in_nested_struct.
1429 (push_fields_onto_fieldstack): Add argument nesting_level.
1430 Update all users. Update documentation. Update pair->nesting_level
1431 with nesting_level. Make recursive calls with nesting_level + 1.
1432 (set_uids_in_ptset): If an sft is added to the points-to set,
1433 mark it as unpartitionable.
1434 * tree-ssa-operands.c (ref_nesting_level): New.
1435 (add_vars_for_offset): Call it. Add argument full_ref. Update
1436 callers. If var is inside a nested structure and the nesting level
1437 of full_ref is lower than the nesting level of var,
1438 adjust offset by the offset of var.
1440 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
1442 PR tree-optimization/32582
1443 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
1445 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
1447 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
1448 functions can be used as constant.
1450 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1452 PR rtl-optimization/34035
1453 * cse.c (cse_cfg_altered): New global variable.
1454 (cse_jumps_altered): Make boolean.
1455 (recorded_label_ref): Likewise.
1456 (cse_insn): Adjust for above changes.
1457 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
1458 if dead edges have been purged.
1459 (cse_main): Change return value specification and adjust code.
1460 (rest_of_handle_cse): Adjust for above change.
1461 (rest_of_handle_cse2): Likewise.
1462 * gcse.c (rest_of_handle_gcse): Likewise.
1464 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1465 Michael Meissner <michael.meissner@amd.com>
1467 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
1468 get the appropriate suffix for the coms* instruction.
1469 (sse5_pcmov_<mode>): Restrict operands of pcmov
1470 for scalar case to be only xmm registers and not memory.
1472 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
1473 constraints to follow the mnemonics for the pcmov instruction
1475 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
1478 * config/mips/mips.c (mips_return_fpr_single): New function.
1479 (mips_function_value): Use it when returning single-field
1481 (mips_expand_call): Handle the PARALLELs created by
1482 mips_return_fpr_single.
1484 2007-11-12 Richard Guenther <rguenther@suse.de>
1487 * fold-const.c (fold_binary): If testing for non-negative
1488 operands with tree_expr_nonnegative_warnv_p make sure to
1489 use op0 which has all (sign) conversions retained.
1491 2007-11-12 Richard Guenther <rguenther@suse.de>
1494 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
1495 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
1497 2007-11-12 Ira Rosen <irar@il.ibm.com>
1499 PR tree-optimization/33953
1500 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
1501 allocate vec_oprnds1 according to the number of created vector
1502 statements. In case of shift with scalar argument, store scalar
1503 operand for every vector statement to be created for the SLP node.
1506 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
1508 * gcse.c (CUID_INSN): Remove.
1510 (alloc_gcse_mem): Don't allocate cuid_insn.
1511 (free_gcse_mem): Don't free cuid_insn.
1513 2007-11-10 Jakub Jelinek <jakub@redhat.com>
1516 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
1520 * tree-inline.h (copy_body_data): Add regimplify field.
1521 * tree-inline.c (copy_body_r): Set id->regimplify to true
1522 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
1524 (copy_bb): Clear id->regimplify before walk_tree, if it is
1525 set afterwards, regimplify the whole statement.
1527 PR tree-optimization/33680
1528 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
1529 if the added cast involves variable length types.
1531 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
1532 Maxim Kuvyrkov <maxim@codesourcery.com>
1534 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
1535 instead of TRUE_BARRIER for jumps. Add register dependencies
1536 even when reg_pending_barrier is set.
1538 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
1540 * haifa-sched.c (haifa_classify_insn): Rename to ...
1541 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
1542 handle PARALLELs by recursing. Use it ...
1543 (haifa_classify_insn): ... here. Reimplement.
1545 2007-11-09 Richard Guenther <rguenther@suse.de>
1547 * bitmap.h (bitmap_single_bit_set_p): Declare.
1548 * bitmap.c (bitmap_single_bit_set_p): New function.
1549 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
1550 (maybe_create_global_var): Use bitmap_empty_p.
1552 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
1553 Jakub Jelinek <jakub@redhat.com>
1555 PR rtl-optimization/34012
1556 * fwprop.c (try_fwprop_subst): Do not replace if the new
1557 SET_SRC has a higher cost than the old one.
1559 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1561 PR rtl-optimization/33732
1562 * reload.c (push_reload): Check that the REG_DEAD note was referring
1563 to a hardreg or to a pseudo that has been assigned exactly one hardreg
1564 before considering it in order to select the reload register.
1565 (combine_reloads): Likewise.
1566 (find_dummy_reload): Likewise.
1568 2007-11-09 Richard Guenther <rguenther@suse.de>
1570 * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
1571 (struct ptr_info_def): Likewise.
1572 (enum escape_type): Also use bit zero.
1574 2007-11-09 Richard Guenther <rguenther@suse.de>
1576 PR tree-optimization/33604
1577 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1578 Disregard changes in CV qualifiers of pointed to types for
1579 forward propagating ADDR_EXPRs.
1580 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
1583 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
1585 * dse.c (find_shift_sequence): Always choose an integer mode for
1587 (replace_read): Require both the read and store mode to be
1588 integer ones. Remove a then-redundant FLOAT_P check.
1590 2007-11-08 Richard Guenther <rguenther@suse.de>
1592 * tree-dfa.c (remove_referenced_var): If removing a
1593 variable which has subvars, also remove those from
1594 the referenced vars. Do not create a variable annotation.
1596 2007-11-08 Bob Wilson <bob.wilson@acm.org>
1598 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
1599 argument for gen_entry calls.
1600 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
1601 (entry): Use the new attribute value. Remove unused first operand.
1603 2007-11-08 Tom Tromey <tromey@redhat.com>
1605 * c-parser.c (c_parser_translation_unit): Use location in error.
1606 (c_parser_external_declaration): Likewise.
1607 (c_parser_declaration_or_fndef): Likewise.
1608 (c_parser_enum_specifier): Likewise.
1609 (c_parser_struct_or_union_specifier): Likewise.
1610 (c_parser_struct_declaration): Likewise.
1611 (c_parser_typeof_specifier): Likewise.
1612 (c_parser_parms_list_declarator): Likewise.
1613 (c_parser_asm_string_literal): Likewise.
1614 (c_parser_braced_init): Likewise.
1615 (c_parser_initelt): Likewise.
1616 (c_parser_compound_statement_nostart): Likewise.
1617 (c_parser_statement_after_labels): Likewise.
1618 (c_parser_do_statement): Likewise.
1619 (c_parser_asm_statement): Likewise.
1620 (c_parser_conditional_expression): Likewise.
1621 (c_parser_unary_expression): Likewise.
1622 (c_parser_sizeof_expression): Likewise.
1623 (c_parser_postfix_expression): Likewise.
1624 (c_parser_postfix_expression_after_paren_type): Likewise.
1625 (c_parser_objc_class_instance_variables): Likewise.
1626 (c_parser_objc_method_definition): Likewise.
1627 (c_parser_objc_methodprotolist): Likewise.
1628 (c_parser_pragma): Likewise.
1629 (c_parser_omp_clause_num_threads): Likewise.
1630 (c_parser_omp_clause_schedule): Likewise.
1631 (c_parser_omp_all_clauses): Likewise.
1632 (c_parser_omp_sections_scope): Likewise.
1633 (c_parser_label): Use location of label, not colon.
1635 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
1638 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
1641 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1644 * ipa-pure-const.c (static_execute): Added code to keep recursive
1645 functions from being marked as pure or const.
1646 * ipa-utils.c (searchc): Fixed comment.
1648 2007-11-08 Tom Tromey <tromey@redhat.com>
1650 * common.opt (fshow-column): Default to 0.
1651 * configure: Rebuilt.
1652 * configure.ac (--enable-mapped-location): Default to 'yes'.
1654 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1656 * common.opt: Add pointer to doc/options.texi.
1657 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
1658 -fipa-reference): Add or correct doc. Sorted options list for -Os
1661 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
1664 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
1665 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
1666 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
1667 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
1668 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
1669 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
1670 to TARGET_BIG_ENDIAN_DEFAULT.
1671 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
1672 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
1673 to TARGET_BIG_ENDIAN_DEFAULT.
1675 2007-11-07 Diego Novillo <dnovillo@google.com>
1677 * tree.h (struct tree_struct_field_tag): Move field
1678 in_nested_struct ...
1679 (struct tree_memory_tag): ... here.
1681 2007-11-07 Diego Novillo <dnovillo@google.com>
1684 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
1685 (SFT_IN_NESTED_STRUCT): Define.
1686 * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
1687 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
1688 * tree-ssa-structalias.c (struct variable_info): Likewise.
1689 (push_fields_onto_fieldstack): If OFFSET is positive,
1690 set in_nested_struct.
1691 (create_variable_info_for): Copy setting of
1692 in_nested_struct from the field offset object.
1693 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
1694 variable info object.
1695 * tree-ssa-operands.c (add_vars_for_offset): If VAR
1696 belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
1698 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1700 PR rtl-optimization/33737
1701 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1702 target block after computing the probabilities of outgoing edges.
1703 Cap the frequency to BB_FREQ_MAX.
1704 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1705 frequency of the basic block if it has been reused.
1707 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1709 PR rtl-optimization/33822
1710 * rtl.h (REG_OFFSET): Fix comment.
1711 * var-tracking.c (INT_MEM_OFFSET): New macro.
1712 (var_mem_set): Use it.
1713 (var_mem_delete_and_set): Likewise.
1714 (var_mem_delete): Likewise.
1715 (same_variable_part_p): Likewise.
1716 (vt_get_decl_and_offset): Likewise.
1717 (offset_valid_for_tracked_p): New predicate.
1718 (count_uses): Do not track locations with invalid offsets.
1719 (add_uses): Likewise.
1720 (add_stores): Likewise.
1722 2007-11-07 Tom Tromey <tromey@redhat.com>
1724 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1725 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1727 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
1728 Andrey Belevantsev <abel@ispras.ru>
1730 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1731 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1732 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1733 Save calculated max_asap in it.
1734 (sms_schedule): Calculate maxii using max_asap.
1736 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
1738 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1739 with -mhard-dfp/-mno-hard-dfp.
1741 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1742 Jakub Jelinek <jakub@redhat.com>
1745 * haifa-sched.c (check_sched_flags): Remove.
1746 (sched_init): Don't call it.
1748 2007-11-06 Diego Novillo <dnovillo@google.com>
1750 * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
1751 * tree-ssa-operands.c: Tidy top-level comments.
1752 (add_vop): Likewise.
1753 (add_vars_for_offset): Tidy parameter formatting..
1754 (get_addr_dereference_operands): Likewise.
1755 (get_indirect_ref_operands): Likewise.
1756 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1757 <OMP_ATOMIC_STORE>: Likewise.
1759 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
1762 * config/i386/driver-i386.c: Test for __GNUC__ instead of
1763 GCC_VERSION which is always defined.
1765 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1768 * reload1.c (find_reloads): Also check in_reg when handling a
1769 simple move with an input reload and a destination of a hard register.
1771 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1773 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1774 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1775 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1776 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1777 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1778 (m68k_sched_attr_type2): New function.
1779 (sched_adjust_cost_state): New static variable.
1780 (m68k_sched_adjust_cost): New static function implementing
1782 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1783 New static variables.
1784 (m68k_sched_variable_issue): New static function implementing
1786 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1787 (sched_dump_split_class): New static function.
1788 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1790 (sched_dump_dfa_class, m68k_sched_dump): New static function.
1791 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1792 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1793 m68k_sched_dfa_post_advance_cycle): New static functions implementing
1796 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1797 (CPU_UNITS_QUERY): Define.
1799 * config/m68k/cf.md: New file.
1800 * config/m68k/m68.md (cf.md): New include.
1802 2007-11-06 Tom Tromey <tromey@redhat.com>
1804 PR c++/32256, PR c++/32368:
1805 * function.c (saved_in_system_header): New global.
1806 (push_cfun): Save in_system_header.
1807 (pop_cfun): Restore in_system_header.
1808 (push_struct_function): Save in_system_header.
1810 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
1814 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1815 (complete_array_type): Set canonical type appropriately.
1816 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1817 C and C++ front ends now have different versions of this function,
1818 because the C++ version needs to maintain canonical types here.
1820 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
1822 * tree-parloops.c (reduction_info): Remove reduction_init field.
1823 (initialize_reductions): Remove creation of the reduction_init variable.
1824 (struct data_arg): Remove.
1825 (add_field_for_reduction, create_stores_for_reduction): New functions.
1826 (add_field_for_name): Remove reduction handling.
1827 (separate_decls_in_loop): Call add_field_for_reduction,
1828 create_stores_for_reduction.
1830 2007-11-06 Jakub Jelinek <jakub@redhat.com>
1832 PR tree-optimization/33458
1833 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1834 !is_gimple_val PHI argument, gimplify it and insert it on edge.
1836 PR tree-optimization/33993
1837 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1838 rather than build_constructor_from_list if all list values are
1840 (get_initial_def_for_induction): Use build_vector instead of
1841 build_constructor_from_list.
1843 2007-11-05 Mark Mitchell <mark@codesourcery.com>
1846 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
1847 (DECL_FINI_PRIORITY): Likewise.
1848 * tree.c (decl_init_priority_lookup): Remove assert.
1849 (decl_fini_priority_insert): Likewise.
1850 * cgraphunit.c (static_ctors): Make it a VEC.
1851 (static_dtors): Likewise.
1852 (record_cdtor_fn): Adjust accordingly.
1853 (build_cdtor): Generate multiple functions for each initialization
1855 (compare_ctor): New function.
1856 (compare_dtor): Likewise.
1857 (cgraph_build_cdtor_fns): Sort the functions by priority before
1858 calling build_cdtor.
1859 (cgraph_build_static_cdtor): Put the priority in the function's name.
1861 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
1864 * common.opt: Add shared and pie.
1866 2007-11-05 Bob Wilson <bob.wilson@acm.org>
1868 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1869 replace references to virtual_stack_vars_rtx in goto_handler.
1871 2007-11-05 Paul Brook <paul@codesourcery.com>
1873 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1874 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1875 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
1876 arm_lang_output_object_attributes_hook.
1877 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1878 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1879 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1881 * config/arm/t-arm.c (arm.o): New rule.
1882 * config/arm/arm-c.c: New file.
1884 2007-11-05 Nick Clifton <nickc@redhat.com>
1885 Sebastian Pop <sebastian.pop@amd.com>
1887 PR tree-optimization/32540
1888 PR tree-optimization/33922
1889 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1890 * tree-ssa-pre.c: Include params.h.
1891 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1892 to limit the maximum length of the PA set for a given block.
1893 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1894 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1896 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
1898 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1899 __fixunssfDI): Make return type unsigned.
1900 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1901 __fixunssfDI): Make return type unsigned.
1903 2007-11-05 Jakub Jelinek <jakub@redhat.com>
1905 PR tree-optimization/33856
1906 * tree-data-ref.c (get_references_in_stmt): Don't add
1907 REFERENCE_CLASS_P trees to references vector if get_base_address
1908 returns NULL on them.
1910 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
1912 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1914 2007-11-04 Andrew Pinski <pinskia@gmail.com>
1917 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1918 for TRUTH_NOT_EXPR to type.
1920 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
1922 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1924 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1927 * dwarf2out.c (add_calling_convention_attribute): Change
1928 second argument. Set calling convention to DW_CC_program for
1929 Fortran main program.
1930 (gen_subprogram_die): Adjust to new prototype for
1931 add_calling_convention_attribute.
1933 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
1935 PR tree-optimization/33987
1936 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1938 (vectorizable_reduction): Add type check.
1940 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1943 * c-parser.c (c_parser_statement_after_labels): Error if a
1944 declaration is parsed after a label.
1946 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
1949 * reorg.c (emit_delay_sequence): Do not clear the locator on
1950 the jump instruction.
1952 2007-11-03 Jakub Jelinek <jakub@redhat.com>
1955 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1956 current sched region.
1958 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1960 * config/ia64/ia64.c (struct reg_write_state): Change into
1961 unsigned short bitfields rather than unsigned int, decrease
1962 first_pred to just 10 bits.
1963 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1964 into two char array.
1965 (rws_insn_set, rws_insn_test): New functions.
1966 (in_safe_group_barrier): New variable.
1967 (rws_update): Remove first argument, always set rws_sum array.
1968 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
1969 or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
1970 (rtx_needs_barrier): Use rws_insn_test macro.
1971 (safe_group_barrier_needed): Don't save/restore rws_sum array,
1972 instead set/clear in_safe_group_barrier flag.
1974 2007-11-02 Bob Wilson <bob.wilson@acm.org>
1976 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1977 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1978 pointer or frame pointer.
1979 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1980 (MUST_USE_SJLJ_EXCEPTIONS): Define.
1981 (DWARF2_UNWIND_INFO): Define.
1982 (INCOMING_RETURN_ADDR_RTX): Define.
1983 (DWARF_FRAME_RETURN_COLUMN): Define.
1985 2007-11-02 Tom Tromey <tromey@redhat.com>
1987 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1990 2007-11-02 Diego Novillo <dnovillo@google.com>
1992 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1993 argument from function pointer ANALYZE_EXPR. Update all users.
1994 * cgraph.c (debug_cgraph_node): New.
1995 (debug_cgraph): New.
1997 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1999 PR rtl-optimization/33648
2000 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2001 the newly created basic block.
2003 2007-11-01 Richard Guenther <rguenther@suse.de>
2005 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2007 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
2009 PR rtl-optimization/33828
2010 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2011 of VBEIN and VBEOUT.
2013 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2015 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2016 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2017 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2019 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
2021 * gcc.c (getenv_spec_function): Escape the environment variable's
2024 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2026 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2027 show that CSE means common subexpression elimination. Change wording
2028 for -fsee and define LCM. Remove capitalization of optimizations
2029 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2031 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2034 * doc/sourcebuild.texi (Test Directives): Document that xfail
2035 has no effect for dg-do except when dg-do-what is "run".
2037 2007-11-01 Tom Tromey <tromey@redhat.com>
2039 * c-decl.c (grokdeclarator): Set decl source locations.
2040 * c-parser.c (c_parser_enum_specifier): Set location.
2041 (c_parser_struct_or_union_specifier): Likewise.
2043 2007-11-01 Tom Tromey <tromey@redhat.com>
2045 * print-tree.c (print_node): Print column number.
2047 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2050 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2051 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2052 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2054 PR rtl-optimization/33673
2055 * gcse.c (cprop_jump): If a conditional jump has been optimized
2056 into unconditional jump, make the remaining normal edge fallthru
2057 and delete the jump insn.
2059 2007-11-01 Ben Elliston <bje@au.ibm.com>
2061 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2062 (set_mem_attrs_from_reg): Likewise.
2064 2007-11-01 Michael Matz <matz@suse.de>
2066 PR tree-optimization/33961
2067 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2068 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2069 (add_or_mark_expr): New argument 'store', using it to search
2071 (nt_init_block): Adjust calls to add_or_mark_expr.
2073 2007-10-31 Jakub Jelinek <jakub@redhat.com>
2076 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2077 for the first push_operand.
2079 2007-10-31 Revital Eres <eres@il.ibm.com>
2081 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2082 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2083 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2084 movmisalignv2sf, vcondv2sf): New.
2085 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2086 UNSPEC_EXTODD_V2SF): Define new constants.
2087 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2088 paired_emit_vector_cond_expr): New.
2089 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2090 * config/rs6000/rs6000.c (paired_expand_vector_move,
2091 paired_emit_vector_cond_expr, paired_emit_vector_compare):
2093 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2095 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
2097 PR tree-optimization/32377
2098 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2099 work also for unknown number of iterations.
2100 (analyze_subscript_affine_affine): Clean up. Don't fail when the
2101 number of iterations is not known.
2103 2007-10-31 Richard Guenther <rguenther@suse.de>
2106 * fold-const.c (extract_muldiv_1): Make sure to not introduce
2107 new undefined integer overflow.
2108 (fold_binary): Avoid useless conversion.
2110 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
2113 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2115 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
2117 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2119 * config/s390/s390.c: (override_options): Replace
2120 -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2121 * config/s390/s390.opt: Likewise.
2122 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2125 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2127 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2129 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2131 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2132 optimization options.
2133 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2134 enabled by -O. Document -fdce and -fdse.
2136 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2139 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2140 convert second operand of COMPOUND_EXPR to the original type of
2143 2007-10-30 Richard Guenther <rguenther@suse.de>
2145 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2146 of loop adding SFTs as virtual operands.
2148 2007-10-30 Richard Guenther <rguenther@suse.de>
2150 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2152 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2154 PR tree-optimization/32893
2155 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2156 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2158 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2160 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2162 (sub_ddmmss): Likewise.
2163 (umul_ppmm): Likewise.
2164 (udiv_qrnnd): Likewise.
2166 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2169 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2170 directives must come before dg-additional-sources.
2172 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2174 PR tree-optimization/33723
2175 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2176 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2178 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
2180 PR tree-optimization/33614
2181 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2182 if they can't be reduced to VECTOR_CSTs and aren't legitimate
2183 initializer constants.
2185 2007-10-29 Richard Guenther <rguenther@suse.de>
2187 PR tree-optimization/33870
2188 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2189 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2192 2007-10-29 Richard Guenther <rguenther@suse.de>
2194 * passes.c (init_optimization_passes): Exchange store_copy_prop
2196 * tree-pass.h (pass_store_copy_prop): Remove.
2197 * tree-ssa-copy.c (do_store_copy_prop): Remove.
2198 (stmt_may_generate-copy): Do not handle store_copy_prop.
2199 (get_copy_of_val): Likewise.
2200 (set_copy_of_val): Likewise.
2201 (copy_prop_visit_assignment): Likewise.
2202 (copy_prop_visit_stmt): Likewise.
2203 (copy_prop_visit_phi_node): Likewise.
2204 (init_copy_prop): Likewise.
2205 (execute_copy_prop): Likewise.
2206 (do_copy_prop): Remove.
2207 (gate_store_copy_prop): Likewise.
2208 (store_copy_prop): Likewise.
2209 (pass_store_copy_prop): Likewise.
2210 (pass_copy_prop): Call execute_copy_prop.
2211 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2212 * common.opt (ftree-store-copy-prop): Mark obsolete.
2213 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2215 2007-10-29 Ian Lance Taylor <iant@google.com>
2217 * ifcvt.c (noce_can_store_speculate_p): New static function.
2218 (noce_process_if_block): Call it.
2219 (if_convert): Remove recompute_dominance parameter. Change all
2222 2007-10-29 Richard Guenther <rguenther@suse.de>
2224 * tree-flow-inline.h (get_subvar_at): Use binary search.
2225 (get_first_overlapping_subvar): New function to binary search
2226 for the first overlapping subvar.
2227 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2228 just handle adding subvars for a pointed-to subvar. Optimize
2229 and use get_first_overlapping_subvar.
2230 (add_vars_for_bitmap): Fold into single caller.
2231 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2232 and non pointed-to bits of add_vars_for_offset.
2234 2007-10-29 Revital Eres <eres@il.ibm.com>
2236 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2238 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
2239 Zdenek Dvorak <ook@ucw.cz>
2242 reduction support for automatic parallelization.
2244 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2246 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2247 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2248 and OMP_ATOMIC_STORE.
2249 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2250 * gimple-low.c (lower_stmt): Same.
2251 * gimplify.c (gimplify_expr): Same.
2252 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2253 gimplify_omp_atomic_mutex): Remove.
2254 (gimplify_omp_atomic): Change it to simply gimplify the
2255 statement instead of expanding it.
2256 * omp-low.c: Add includes to optabs.h, cfgloop.h.
2257 (expand_omp_atomic, expand_omp_atomic_pipeline,
2258 goa_stabilize_expr, expand_omp_atomic_mutex,
2259 expand_omp_atomic_fetch_op): New functions to implement
2260 expansion of OMP_ATOMIC.
2261 (expand_omp, build_omp_regions_1): Add support for
2262 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2263 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2265 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2267 * tree-parloops.c: add include to tree-vectorizer.h.
2268 (reduction_info): New structure for reduction.
2269 (reduction_list): New list to represent list of reductions per loop.
2270 (struct data_arg): New helper structure for reduction.
2271 (reduction_info_hash, reduction_info_eq, reduction_phi,
2272 initialize_reductions, create_call_for_reduction,
2273 create_phi_for_local_result, create_call_for_reduction_1,
2274 create_loads_for_reductions, create_final_loads_for_reduction):
2276 (loop_parallel_p): Identify reductions, add reduction_list parameter.
2277 (separate_decls_in_loop_name): Support reduction variables.
2278 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2279 call create_loads_for_reduction for each reduction.
2280 (canonicalize_loop_ivs): Identify reductions, add reduction_list
2282 (transform_to_exit_first_loop): Add reduction support, add
2283 reduction_list parameter.
2284 (gen_parallel_loop): Add reduction_list parameter. Add call
2285 separate_decls_in_loop with
2286 the new argument. Traverse reductions and call
2287 initialize_reductions, create_call_for_reduction.
2288 (parallelize_loops): Create and delete the reduction list.
2289 (add_field_for_name): Change use of data parameter. Add fields for
2291 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2292 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2293 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2294 * tree-inline.c (estimate_num_insns_1): add cases for
2295 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2296 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2297 * tree-ssa-operands.c (get_addr_dereference_operands):
2298 New function. Subroutine of get_indirect_ref_operands.
2299 (get_indirect_ref_operands): Call get_addr_dereference_operands.
2300 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2303 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
2305 * config/cris/cris.c: Include df.h.
2306 (cris_address_cost): Add gcc_assert for canonicalization
2307 assumptions. For PLUS with MULT or register, correct
2308 test for register in other arm. Tweak comments.
2310 2007-10-28 Richard Guenther <rguenther@suse.de>
2312 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2313 telling if the var is to be treated as points-to location.
2314 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2315 (add_virtual_operand): Only recurse into MPTs if aliases
2318 2007-10-28 Richard Guenther <rguenther@suse.de>
2320 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2321 (add_vars_for_bitmap): Do not recurse further. Only add vars
2322 for pointed-to SFTs.
2323 (add_virtual_operand): Re-instantiate loop to add operands for
2324 aliases. Recurse into MPTs.
2325 (get_indirect_ref_operands): If we fall back to use a pointers
2326 SMT, make sure to not prune based on the access offset and size.
2328 2007-10-28 Andrew Pinski <pinskia@gmail.com>
2331 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2332 the eh information on the statement.
2334 2007-10-28 Richard Guenther <rguenther@suse.de>
2336 * tree-flow.h (subvar_t): Make it a VEC.
2337 (struct subvar): Remove.
2338 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2339 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2341 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2342 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2343 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2344 (set_initial_properties): Likewise.
2345 (setup_pointers_and_addressables): Likewise.
2346 (new_type_alias): Likewise.
2347 (create_overlap_variables_for): Likewise.
2348 * tree-dfa.c (dump_subvars_for): Likewise.
2349 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2350 (get_expr_operands): Likewise.
2351 (add_to_addressable_set): Likewise.
2352 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2354 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
2356 PR tree-optimization/33920
2357 * tree-if-conv.c (tree_if_conversion): Force predicate of single
2358 successor bb to true when predecessor bb has NULL predicate.
2359 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2361 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2363 * config/mips/mips.md: Add combiner patterns for DImode extensions
2364 of HImode and QImode truncations. Reformat HImode <- QImode pattern
2367 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2370 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2372 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
2374 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2375 LIBCALL notes if they are about to be moved to the same insn.
2377 2007-10-27 Richard Guenther <rguenther@suse.de>
2379 PR tree-optimization/33870
2380 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2381 duplication. Remove redundant call to access_can_touch_variable.
2382 (add_vars_for_bitmap): New helper for recursing over MPT contents.
2383 (add_virtual_operand): Use it.
2385 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2388 * pa.h (ASM_PN_FORMAT): Delete define.
2390 2007-10-26 Janis Johnson <janis187@us.ibm.com>
2392 * doc/invoke.texi (Option Summary, optimizations): Remove
2393 -fbounds-check. Add -fassociative-math, -freciprocal-math,
2394 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
2395 -fsplit-wide-types to match later entry. Break up a long line.
2396 (Option Summary, code gen options) Add -fno-stack-limit. Add
2397 missing @gol to the end of a line.
2398 (Optimization Options): Remove -fbounds-check, which is also
2399 documented under Code Generation Options. Remove =n from
2400 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
2401 to -fcprop-registers to match other options, and say when it is
2402 enabled rather than disabled. Remove extra index entry for
2403 -fno-cx-limited-range. Add index entries for -fstack-protector
2404 and -fstack-protector-all.
2405 (Code Gen Options): Add index entry for -ftls-model.
2407 2007-10-26 Anatoly Sokolov <aesok@post.ru>
2409 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2410 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2411 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2412 expand_epilogue, output_movhi): Don't handle 'main' function.
2413 (avr_attribute_table): Add 'OS_task' function attribute.
2414 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2416 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2417 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2419 * config/avr/avr.opt (minit-stack): Remove.
2421 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
2423 * tree-nested.c (get_trampoline_type): Fix thinko.
2425 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
2428 * tree.c (build_offset_type): Build canonical type based on the
2429 TYPE_MAIN_VARIANT of the base type.
2431 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
2433 * reorg.c (emit_delay_sequence): Move insn locator from the
2434 first insn to the sequence.
2436 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
2438 * ipa-pure-const.c (check_decl): Return immediately when
2439 pure_const_state has been set to IPA_NEITHER.
2441 2007-10-25 Ira Rosen <irar@il.ibm.com>
2443 PR tree-optimization/33833
2444 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
2445 and convert init to sizetype in inner_base construction.
2447 2007-10-25 Richard Guenther <rguenther@suse.de>
2449 * tree-flow.h (mem_sym_stats): Remove.
2450 (dump_mem_sym_stats_for_var): Declare.
2451 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
2452 (mem_sym_stats): Move ...
2453 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
2454 (mem_sym_score): Rename from ...
2455 (pscore): ... this. Remove.
2456 (dump_mem_sym_stats_for_var): New function. Dump the score, but
2457 not the frequencies.
2458 (compare_mp_info_entries): Make sort stable by disambiguating
2461 2007-10-25 Ira Rosen <irar@il.ibm.com>
2463 PR tree-optimization/33866
2464 * tree-vect-transform.c (vectorizable_store): Check operands of all
2465 the stmts in the group of strided accesses. Get def stmt type for each
2466 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
2468 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
2470 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
2471 (Yt): Rename register constraint to Y2.
2472 * config/i386/sse.md: Use renamed register constraints.
2473 * config/i386/mmx.md: Ditto.
2474 * config/i386/i386.md: Ditto.
2476 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
2478 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
2480 2007-10-24 Chao-ying Fu <fu@mips.com>
2482 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
2483 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
2485 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
2486 Olga Golovanevsky <olga@il.ibm.com>
2488 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
2489 the compiler that wr.wrap and wr.domain are initialized in
2492 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
2494 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
2495 to print gcov_type values.
2497 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
2499 * config/avr/avr.h: Do not include progmem_section definition when
2500 building with IN_TARGET_LIBS.
2502 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
2505 * config/mips/mips.c (mips_lo_sum_offset): New structure.
2506 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
2507 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
2508 (mips_orphaned_high_part_p: New functions.
2509 (mips_avoid_hazard): Don't check INSN_P here.
2510 (mips_avoid_hazards): Rename to...
2511 (mips_reorg_process_insns): ...this. Cope with
2512 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
2513 or turn them into nops.
2514 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
2515 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
2516 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
2517 (mips_override_options): Set flag_delayed_branch to 0.
2519 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
2521 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
2522 MIPS-specific implementation details.
2523 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
2524 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
2525 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
2526 for targets with movmemsi.
2527 (MOVE_BY_PIECES_P): Define.
2528 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
2529 (mips_block_move_loop): Add a bytes_per_iter argument.
2530 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
2531 Update call to mips_block_move_loop.
2533 2007-10-24 Michael Matz <matz@suse.de>
2536 * var-tracking.c (variable_union): Don't break after one loop
2537 iteration but only when a difference is found.
2538 (dump_variable): Also print DECL_UID.
2540 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
2542 * ipa-type-escape.h: Expose function
2543 is_array_access_through_pointer_and_index.
2545 (is_array_access_through_pointer_and_index):
2546 Add three new parameters. Add support of
2547 POINTER_PLUS_EXPR tree code.
2549 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
2551 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
2552 * tree-pass.h: Add pass_ipa_struct_reorg.
2553 * common.opt: Add ipa-struct-reorg flag.
2554 * Makefile.in: Add ipa-strcut-reorg.o compilation.
2555 * passes.c: Add pass pass_ipa_struct_reorg.
2556 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
2557 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2559 2007-10-24 Ira Rosen <irar@il.ibm.com>
2561 PR tree-optimization/33804
2562 * tree-vect-transform.c (vectorizable_operation): Remove the
2563 checks that the vectorization is worthwhile from the transformation
2566 2007-10-24 Ira Rosen <irar@il.ibm.com>
2568 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
2569 vectype cannot be determined for the scalar type.
2570 (vect_analyze_slp_instance): Likewise.
2571 * tree-vect-transform.c (vect_model_reduction_cost): Change the
2572 return type to bool. Return false if vectype cannot be determined
2573 for the scalar type.
2574 (vect_get_constant_vectors): Return false if vectype cannot be
2575 determined for the scalar type.
2576 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
2577 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
2578 vectorizable_reduction): Likewise.
2580 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2582 * config.gcc: For a FreeBSD target, parse the value of ${target}
2583 to determine the value of FBSD_MAJOR, instead of adding an
2584 explicit check for every possible FreeBSD major version.
2586 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
2588 PR rtl-optimization/33846
2589 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
2591 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
2593 PR tree-optimization/33860
2594 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
2595 interleaved accesses in case the dr is inside the inner-loop during
2596 outer-loop vectorization.
2598 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
2600 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
2601 Document MEM_POINTER. Replace mentions of "integrated"
2602 field with "return_val". Delete outdated stuff.
2604 2007-10-23 David Edelsohn <edelsohn@gnu.org>
2606 * config/rs6000/rs6000.c (rs6000_override_options): Set
2607 rs6000_altivec_abi on AIX.
2608 (conditional_register_usage): Set VR20:31 fixed on AIX.
2610 2007-10-23 Richard Guenther <rguenther@suse.de>
2612 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
2615 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
2616 David S. Miller <davem@davemloft.net>
2618 * df-scan.c (df_get_call_refs): Mark global registers as both a
2619 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
2621 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
2623 PR tree-optimization/33834
2624 PR tree-optimization/33835
2625 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
2626 stmts need to be checked for success seperately.
2627 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
2628 Remove the check that stmt is not LIVE.
2629 (vectorizable_assignment, vectorizable_induction): Likewise.
2630 (vectorizable_operation, vectorizable_type_demotion): Likewise.
2631 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
2633 (vectorizable_live_operation): Check that op is not NULL.
2635 2007-10-22 Janis Johnson <janis187@us.ibm.com>
2637 * doc/invoke.texi (Optimization Options): In the summary, show
2638 that the value for options -falign-jumps, -falign-labels,
2639 -falign-loops, -falign-functions, -fsched-stalled-insns, and
2640 -fsched-stalled-insns-dep is optional. In the summary, show that
2641 -fsched-stalled-insns takes an optional argument and that
2642 -fparallelize-loops takes an argument. Add opindex for several
2643 optimization options, and fix typos in the opindex commands for
2644 several others. In the descriptions for -fsched-stalled-insns
2645 and -fsched-stalled-insns-dep, show the options with and without
2648 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
2650 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
2652 * config/avr/avr.h (LINK_SPEC): Likewise.
2653 (CRT_BINUTILS_SPECS): Likewsie.
2654 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2656 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2658 PR rtl-optimization/33644
2659 * cfgcleanup.c: Do not include dce.h.
2660 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
2661 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
2662 * dce.c (something_changed): Delete.
2663 (libcall_dead_p): New predicate.
2664 (delete_unmarked_insns): Use it to delete dead libcalls.
2665 Deal with REG_LIBCALL and REG_RETVAL notes.
2666 (prescan_libcall_for_dce): New function.
2667 (prescan_insns_for_dce): Use it to deal with libcalls.
2668 (mark_reg_dependencies): Do nothing special for libcalls.
2669 (dce_process_block): Likewise.
2670 (fast_dce): Delete unused local variable.
2671 (run_fast_dce): Do not return a value.
2672 * dce.h (struct df): Delete.
2673 (run_fast_dce): Adjust prototype.
2674 * optabs.c (libcall_id): Delete.
2675 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
2676 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
2677 * reload1.c (reload): Delete REG_LIBCALL_ID case.
2678 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
2679 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
2680 notes instead of REG_LIBCALL_ID notes.
2681 * reg-notes.def (LIBCALL_ID): Delete.
2682 * Makefile.in (see.o): Add dce.h dependency.
2683 (cfgcleanup.o): Remove dce.h dependency.
2685 2007-10-22 Michael Matz <matz@suse.de>
2687 PR tree-optimization/33855
2688 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
2691 2007-10-22 Ira Rosen <irar@il.ibm.com>
2693 PR tree-optimization/33854
2694 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2695 FLOAT_EXPR to the list of promotion operations.
2697 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
2701 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2702 (print_reg): Print register prefix only with AT&T asm syntax.
2703 Support pc_rtx for RIP register.
2704 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2705 relative addressing. Always print segment register prefix with AT&T
2706 asm syntax and never with Intel asm syntax.
2707 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
2708 Fix prefix for 16-byte XFmode operands.
2709 (output_addr_const_extra): Support Intel asm syntax.
2710 (x86_file_start): Don't use register prefix with Intel asm syntax.
2711 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2712 ("return_internal_long"): Fix Intel asm syntax output.
2713 ("set_got_rex64"): Support Intel asm syntax.
2714 ("set_rip_rex64"): Likewise.
2715 ("set_got_offset_rex64"): Likewise.
2716 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2718 ("*tls_global_dynamic_64"): Likewise.
2719 ("*tls_local_dynamic_base_64"): Likewise.
2720 ("*load_tp_si")("*load_tp_di"): Likewise.
2721 ("*add_tp_si")("*add_tp_di"): Likewise.
2722 ("*tls_dynamic_lea_64"): Likewise.
2723 ("*sibcall_value_1_rex64_v"): Likewise.
2724 ("stack_tls_protect_set_si"): Likewise.
2725 ("stack_tls_protect_set_di"): Likewise.
2726 ("stack_tls_protect_test_si"): Likewise.
2727 ("stack_tls_protect_test_di"): Likewise.
2728 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2730 ("*movv2sf_internal_rex64"): Likewise.
2731 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2732 (__get_cpuid_max): Likewise.
2734 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2736 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2737 the STRICT_P argument type "bool" rather than "int".
2738 (mips_legitimate_address_p): Likewise.
2739 (fp_register_operand, lo_operand): Delete.
2740 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2741 (mips_emit_scc): Rename to...
2742 (mips_expand_scc): ...this.
2743 (gen_conditional_branch): Rename to...
2744 (mips_expand_conditional_branch): ...this.
2745 (gen_conditional_move): Rename to...
2746 (mips_expand_conditional_move): ...this.
2747 (mips_gen_conditional_trap): Rename to...
2748 (mips_expand_conditional_trap): ...this and take an rtx code instead
2749 of an operands array.
2750 (mips_expand_call): Give the SIBCALL_P argument type "bool"
2752 (mips_emit_fcc_reload): Rename to...
2753 (mips_expand_fcc_reload): ...this.
2754 (init_cumulative_args): Rename to...
2755 (mips_init_cumulative_args): ...this and remove the libname argument.
2756 (function_arg_advance): Rename to...
2757 (mips_function_arg_advance): ...this.
2758 (function_arg): Rename to...
2759 (mips_function_arg): ...this and use "rtx" instead of
2761 (function_arg_boundary): Rename to...
2762 (mips_function_arg_boundary): ...this.
2763 (mips_expand_unaligned_load): Rename to...
2764 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2765 and BITPOS arguments type "HOST_WIDE_INT".
2766 (mips_expand_unaligned_store): Rename to...
2767 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2768 and BITPOS arguments type "HOST_WIDE_INT".
2769 (override_options): Rename to...
2770 (mips_override_options): ...this.
2771 (print_operand): Rename to...
2772 (mips_print_operand): ...this.
2773 (print_operand_address): Rename to...
2774 (mips_print_operand_address): ...this.
2775 (mips_output_ascii): Remove the PREFIX argument.
2776 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2778 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2779 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
2780 of "struct rtx_def *".
2781 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2783 (build_mips16_call_stub): Delete.
2784 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2785 (mips_use_ins_ext_p): Give the second and third arguments type
2786 "HOST_WIDE_INT" rather than "rtx".
2787 * config/mips/mips.h: Update after the above changes. Tweak comments
2789 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2790 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2791 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2792 element type from "char" to "bool".
2793 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2794 (mips_cpu_info_table): Delete.
2795 * config/mips/mips.md: Update after the above changes. Tweak some
2797 * config/mips/mips-ps-3d.md: Likewise.
2798 * config/mips/mips.c: Tweak comments and formatting.
2799 Use NULL-like macros rather than 0 in various places.
2800 (mips_section_threshold): Rename to...
2801 (mips_small_data_threshold): ...this and give it an unsigned type.
2802 (num_source_filenames): Remove explicit initialization.
2803 (sdb_label_count): Likewise.
2804 (sym_lineno): Delete.
2805 (set_noat): Make static.
2806 (mips_branch_likely): Likewise, and give it type "bool".
2807 (mips_isa_info): Rename to...
2808 (mips_isa_option_info): ...this.
2809 (mips_flag_delayed_branch): Rename to...
2810 (mips_base_delayed_branch): ...this.
2811 (mips_split_addresses): Delete.
2812 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2813 element type from "char" to "bool".
2814 (mips_regno_to_class): Add an explicit array size.
2815 (mips16_flipper): Change from type "int" to type "bool".
2816 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2817 (mips_tls_operand_p): Rename to...
2818 (mips_tls_symbol_p): ...this.
2819 (mips_global_symbol_p): Remove redundant "const".
2820 (mips_offset_within_alignment_p): Simplify.
2821 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2822 to STRICT_P and give it type bool.
2823 (mips_valid_base_register_p): Likewise.
2824 (mips_classify_address): Likewise.
2825 (mips_legitimate_address_p): Likewise.
2826 (mips16_unextended_reference_p): Take the offset as an
2827 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
2828 (mips_const_insns): Use IN_RANGE.
2829 (mips_force_temporary): Remove an unnecessary copy_rtx.
2830 (mips16_gp_pseudo_reg): Simplify.
2831 (mips_split_symbol): Remove an unnecessary copy_rtx.
2832 (mips_legitimize_tls_address): Only create registers if we need them.
2833 (mips_legitimize_address): Use mips_split_plus.
2834 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
2835 variable COST to NUM_OPS.
2836 (mips_legitimize_move): Use gen_lowpart.
2837 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2838 (m16_check_op): Use IN_RANGE.
2839 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2840 (mips_split_doubleword_move): Pass booleans to mips_subword.
2841 (mips_output_move): Store the mode in a local variable.
2842 Explicitly assert that this function does not deal with
2843 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
2844 cases more consistent.
2845 (mips_relational_operand_ok_p): Rename to...
2846 (mips_int_order_operand_ok_p): ...this.
2847 (mips_canonicalize_comparison): Rename to...
2848 (mips_canonicalize_int_order_test): ...this.
2849 (mips_emit_int_relational): Rename to...
2850 (mips_emit_int_order_test): ...this. Store the mode in a local
2852 (mips_reverse_fp_cond_p): Rename to...
2853 (mips_reversed_fp_cond): ...this.
2854 (mips_emit_compare): Make the order of the statements more consistent.
2855 (mips_emit_scc): Rename to...
2856 (mips_expand_scc): ...this.
2857 (gen_conditional_branch): Rename to...
2858 (mips_expand_conditional_branch): ...this.
2859 (gen_conditional_move): Rename to...
2860 (mips_expand_conditional_move): ...this. Build the condition
2861 separately from the main pattern.
2862 (mips_gen_conditional_trap): Rename to...
2863 (mips_expand_conditional_trap): ...this and take an rtx code instead
2864 of an operands array. Simplify.
2865 (init_cumulative_args): Rename to...
2866 (mips_init_cumulative_args): ...this. Use memset rather than a
2867 copy from a zeroed static. Use prototype_p and stdarg_p.
2868 (mips_arg_info): Rename to...
2869 (mips_get_arg_info): ...this and put the INFO argument first.
2870 (function_arg): Rename to...
2871 (mips_function_arg): ...this and use "rtx" instead of
2872 "struct rtx_def *". Only split structures into chunks if
2873 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2874 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
2875 comparison with REAL_TYPE. Rename local variable REG to REGNO
2876 and make it unsigned.
2877 (function_arg_advance): Rename to...
2878 (mips_function_arg_advance): ...this.
2879 (function_arg_boundary): Rename to...
2880 (mips_function_arg_boundary): ...this.
2881 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2883 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2884 comparison with REAL_TYPE.
2885 (mips_function_value): Remove the FUNC argument. Rename local
2886 variable UNSIGNEDP to UNSIGNED_P.
2887 (mips_return_in_memory): Use IN_RANGE.
2888 (mips_setup_incoming_varargs): Pass a boolean rather than an int
2889 to FUNCTION_ARG_ADVANCE.
2890 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2891 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
2892 SIZE and RSIZE if needed.
2893 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2895 (build_mips16_function_stub): Rename to...
2896 (mips16_build_function_stub): ...this.
2897 (build_mips16_call_stub): Rename to...
2898 (mips16_build_call_stub): ...this. Make static, and return a
2899 "bool" rather than an "int". Rename the ARG_SIZE argument to
2900 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
2901 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
2902 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2904 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
2905 are not sibling ones.
2906 (mips_emit_fcc_reload): Rename to...
2907 (mips_expand_fcc_reload): ...this.
2908 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2910 (mips_expand_unaligned_load): Rename to...
2911 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2912 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
2914 (mips_expand_unaligned_store): Rename to...
2915 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2916 and BITPOS arguments type "HOST_WIDE_INT".
2917 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2918 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2920 (mips_init_split_addresses): Replace with...
2921 (mips_split_addresses_p): ...this new function.
2922 (mips_init_relocs): Check mips_split_addresses_p () rather than
2923 mips_split_addresses. Always initialize mips_split_p with booleans.
2924 (print_operand_reloc): Rename to...
2925 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
2927 (print_operand): Rename to...
2928 (mips_print_operand): ...this.
2929 (print_operand_address): Rename to...
2930 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
2931 (mips_in_small_data_p): Simplify.
2932 (mips_output_ascii): Remove the PREFIX argument and "register"
2933 keywords. Use the STRING parameter directly and cast to
2935 (mips16e_collect_argument_save_p): Use IN_RANGE.
2936 (mips_function_has_gp_insn): Simplify.
2937 (mips_set_return_address): Use BITSET_P.
2938 (mips_restore_gp): Use a separate statement to pick the base
2940 (mips_output_function_prologue): Use a local FRAME variable.
2941 (mips_save_reg): Pass booleans to mips_subword.
2942 (mips_expand_prologue): Use a local FRAME variable. Use
2943 cprestore_size to detect when .cprestore is needed.
2944 (mips_restore_reg): Use GP_REG_FIRST.
2945 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2946 rather than "int". Use local FRAME and REGNO variables.
2947 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2948 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2950 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2951 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2952 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2953 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2954 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2955 (builtin_description): Rename to...
2956 (mips_builtin_description): ...this.
2957 (mips_bdesc): Rename to...
2958 (mips_ps_bdesc): ...this.
2959 (sb1_bdesc): Rename to...
2960 (mips_sb1_bdesc): ...this.
2961 (dsp_bdesc): Rename to...
2962 (mips_dsp_bdesc): ...this.
2963 (dsp_32only_bdesc): Rename to...
2964 (mips_dsp_32only_bdesc): ...this.
2965 (bdesc_map): Rename to...
2966 (mips_bdesc_map): ...this.
2967 (bdesc_arrays): Rename to...
2968 (mips_bdesc_arrays): ...this.
2969 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2970 Tweak error message.
2971 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2972 Rename local variables I and J to OPNO and ARGNO respectively.
2973 Assert that the number of arguments is no more than the number of
2975 (mips_expand_builtin_compare): Use an array of arguments rather
2976 than an array of operands. Assert that the number of operands is
2978 (add_constant): Rename to...
2979 (mips16_add_constant): ...this. Use XNEW.
2980 (dump_constants_1): Rename to...
2981 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
2982 (dump_constants): Rename to...
2983 (mips16_emit_constants): ...this.
2984 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2985 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2986 Assign mips16_p to was_mips16_p.
2987 (mips_parse_cpu): Tweak warning message.
2988 (override_options): Rename to...
2989 (mips_override_options): ...this. Move the mips_cost initialization
2990 out of the "shared with GAS" block. Quote option names in error
2992 (mips_conditional_register_usage): Make local variable REGNO unsigned.
2993 (mips_order_regs_for_local_alloc): Remove register keyword.
2995 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2997 * system.h (IN_RANGE): Cast each argument individually.
2999 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3001 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
3002 MIPS16 code unless using o32 or o64.
3004 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3006 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
3007 for modes smaller than 4 bytes.
3008 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
3011 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3013 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
3014 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
3015 (ASM_OUTPUT_ALIGNED_BSS): Delete.
3016 * config/mips/mips.c (mips_output_aligned_bss): Delete.
3018 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3020 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
3021 sibling calls to "mips16" functions if the function satisfies
3022 const_call_insn_operand.
3024 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3026 * config/mips/mips.c (mips_va_start): Fix types in calls
3029 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3031 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
3034 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3036 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
3037 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
3038 instead of checking mips_isa.
3040 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3042 * doc/invoke.texi (-mpaired-single): Don't say that the option
3043 requires 64-bit code.
3044 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
3045 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
3046 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
3047 V2SF if ISA_MIPS32R2.
3048 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
3049 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
3050 to ISA_HAS_NMADD_NMSUB.
3051 (mips_split_doubleword_move): Handle V2SF.
3052 (mips_modes_tieable_p): New function.
3053 (override_options): Report a warning rather than an error when
3054 -mpaired-single is used on ISAs that don't support it; use
3055 ISA_HAS_PAIRED_SINGLE to check that case.
3056 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
3057 and DF move splitters with a single MOVE64 splitter, thereby adding
3058 a V2SF splitter too.
3059 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
3060 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
3061 (HALFMODE): Add V2SF.
3062 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
3063 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
3064 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
3065 (movv2sf_hardfloat_32bit): New pattern.
3066 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
3067 TARGET_DOUBLE_FLOAT conditions.
3069 2007-10-20 Jakub Jelinek <jakub@redhat.com>
3071 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
3072 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
3073 64-bit register in 64-bit libgcc.
3075 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
3077 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
3078 * config/avr/avr.h (LINK_SPEC): Likewise.
3079 (CRT_BINUTILS_SPECS): Likewsie.
3080 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3082 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3084 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
3085 and -Wfatal-errors together.
3087 2007-10-20 Alan Modra <amodra@bigpond.net.au>
3090 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
3091 change for vrsave, ie restore after frame pop.
3093 2007-10-19 David S. Miller <davem@davemloft.net>
3095 * config/sparc/niagara2.md: Fix copyright notice.
3097 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
3099 PR tree-optimization/23820
3100 PR tree-optimization/24309
3101 PR tree-optimization/33766
3102 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
3103 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
3104 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
3105 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
3106 * tree-loop-linear.c (perfect_loop_nest_depth): New.
3107 (linear_transform_loops): Use perfect_loop_nest_depth.
3108 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
3109 should have a single condition: their exit.
3111 2007-10-19 Richard Guenther <rguenther@suse.de>
3115 * stor-layout.c (layout_type): Assert that aggregates do not
3116 have their alias sets set.
3117 * alias.c (get_alias_set): Return alias set zero for incomplete
3118 types, return the alias set of the element for incomplete array
3119 types, but do not remember these.
3121 2007-10-19 Richard Guenther <rguenther@suse.de>
3124 2007-10-19 Richard Guenther <rguenther@suse.de>
3127 * tree.c (build_array_type): Do not re-layout unbound array
3130 2007-10-19 Richard Guenther <rguenther@suse.de>
3133 * tree.c (build_array_type): Do not re-layout unbound array types.
3135 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3137 * config/mips/mips.c (mips_canonicalize_comparison): Check
3138 mips_relational_operand_ok_p before trying to rewrite the test.
3139 Only calculate PLUS_ONE if needed.
3140 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
3143 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3145 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
3148 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3150 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
3151 the call uses the incoming value of $2.
3153 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3155 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
3156 rather then gen_rtx_MEM.
3157 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
3159 (mips_set_return_address): Likewise.
3160 (mips_restore_gp): Likewise.
3162 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3164 * config/mips/mips.c (gpr_mode): Delete.
3165 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
3166 instead of gpr_mode.
3167 (mips_for_each_saved_reg): Likewise.
3168 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3169 (override_options): Don't initialize gpr_mode.
3170 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
3172 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3174 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3176 (mips_class_max_nregs): Calculate the smallest consituent register
3177 size and use that to determine an upper bound on the number of
3180 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3182 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
3184 (mips_expand_epilogue): ...here.
3185 (mips_mdebug_abi_name): New function, split out from...
3186 (mips_file_start): ...here.
3187 (mips_hard_regno_mode_ok_p): New function, split out from...
3188 (override_options): ...here.
3189 (mips_expand_builtin_1): New function, split out from...
3190 (mips_expand_buitin): ...here. Abort if we don't recognize
3193 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3195 * config/mips/mips.c (build_mips16_function_stub): Load the
3196 target address into $1 before transfering the arguments.
3197 Don't use ".set noreorder".
3198 (build_mips16_call_stub): Likewise.
3200 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3202 * config/mips/mips.c (mips_output_32bit_xfer): New function.
3203 (mips_output_64bit_xfer): Likewise.
3204 (mips16_fp_args): Rename to...
3205 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
3206 with a DIRECTION argument. Use mips_output_32bit_xfer and
3207 mips_output_64bit_xfer.
3208 (build_mips16_function_stub): Update accordingly.
3209 (mips16_fpret_double): Delete.
3210 (build_mips16_call_stub): Update after above changes.
3211 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
3212 of mips16_fpret_double. Use GP_REG_RETURN.
3214 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3216 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
3217 use asm_out_file instead.
3218 (build_mips16_function_stub): Likewise.
3219 (build_mips16_call_stub, mips_output_function_prologue): Update
3222 2007-10-18 David S. Miller <davem@davemloft.net>
3224 Add Niagara-2 support.
3225 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
3226 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
3227 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
3228 (include): Add inclusion of niagara2.md
3229 * config/sparc/sparc.c (niagara2_costs): New.
3230 (sparc_override_options): Add niagara2 entry to cpu_default[]
3231 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
3232 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
3233 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
3234 (sparc_initialize_trampoline): Handle niagara2 like niagara.
3235 (sparc64_initialize_trampoline): Likewise.
3236 (sparc_use_sched_lookahead): Likewise.
3237 (sparc_issue_rate): Likewise.
3238 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
3240 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
3241 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
3242 TARGET_CPU_niagara2.
3243 (PROCESSOR_NIAGARA2): New.
3244 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
3245 (BRANCH_COST): Likewise.
3246 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
3247 * config/sparc/sol2.h: Likewise.
3248 * config/sparc/niagara2.md: New file.
3250 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3252 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
3254 (mips_compute_frame_info): Remove associated code.
3255 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
3257 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3259 * config/mips/mips-protos.h (compute_frame_size): Delete.
3260 * config/mips/mips.h: Update comments.
3261 * config/mips/mips.c (mips_frame_info): Remove initialized.
3262 (compute_frame_size): Rename to...
3263 (mips_compute_frame_info): ...this and make static. Remove the
3264 SIZE argument and return no value. Remove the setting of initialized.
3265 Update rest of file accordingly.
3266 (mips_set_return_address): Don't call compute_frame_size.
3267 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
3268 Don't call compute_frame_size.
3270 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3272 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
3273 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
3274 mips_hard_frame_pointer_required.
3275 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
3276 large MIPS16 frames.
3277 * config/mips/mips.c (mips_frame_pointer_required): New function.
3279 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3281 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
3282 and hard_frame_pointer_offset.
3283 (mips_debugger_offset): Use hard_frame_pointer_offset.
3284 (mips16e_collect_argument_save_p): Likewise.
3285 (compute_frame_size): Initialize arg_pointer_offset and
3286 hard_frame_pointer_offset.
3287 (mips_initial_elimination_offset): Use them.
3288 (mips_output_function_prologue): Use hard_frame_pointer_offset.
3289 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3291 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3293 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
3295 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
3296 "unsigned int" rather than "int" and put them with the other
3297 register-related fields. Put expanded comments above fields
3298 rather than to their right.
3299 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
3300 with a NUM_REGS_PTR argument.
3301 (mips16e_save_restore_pattern_p): Update accordingly.
3302 (compute_frame_size): Clarify frame diagram. Rewrite.
3304 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3306 * config/mips/mips-ftypes.def: New file.
3307 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
3308 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
3309 (mips_function_type): Redefine using mips-ftypes.def.
3310 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
3311 (mips_builtin_vector_type): New function.
3312 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
3313 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
3314 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
3315 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
3317 (mips_build_function_type): New function.
3318 (mips_init_builtins): Use it to create types lazily.
3320 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3322 * config/mips/mips.h (set_volatile): Delete.
3323 * config/mips/mips.c (set_volatile): Delete.
3324 (mips_print_operand_punctuation): New function, split out from
3325 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
3326 Use the same character ordering in the code and the comments.
3327 Use a recursive call to handle '*'. Abort on unknown characters.
3328 (mips_init_print_operand_punct): New function, split out from
3330 (mips_print_int_branch_condition): New function, split out from
3331 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
3332 to report unexpected codes.
3333 (mips_print_float_branch_condition): New function, split out from
3334 print_operand. Use output_operand_lossage to report unexpected codes.
3335 (print_operand): Rework to use a case statement. Use the
3336 same letter ordering in the code and the comments. Use
3337 output_operand_lossage to report unexpected codes and
3338 reverse_condition to handle inverted branch conditions.
3339 (override_options): Use mips_init_print_operand_punct.
3341 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3343 * config/mips/mips.h: Move variable declarations to end of file and
3344 enclose them all in #ifndef USED_FOR_TARGET.
3345 * config/mips/mips.c: Reorder functions into more logical groups,
3346 and so that callees appear before callers. Put the targetm
3347 initializer at the end of the file. Remove forward static
3348 declarations where possible.
3349 (mips_init_builtins): Add "static" to definition.
3350 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
3352 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3354 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
3355 (TARGET_MAX_ANCHOR_OFFSET): Delete.
3356 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
3357 (mips_set_mips16_mode): Initialize min_anchor_offset and
3358 max_anchor_offset directly to constants.
3360 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3362 * config/mips/mips.c: Delete trailing whitespace.
3364 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3366 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
3367 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
3369 * config/mips/mips.md (load_call<mode>): Don't make the unspec
3370 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
3372 2007-10-18 David Daney <ddaney@avtrex.com>
3374 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
3375 reg_offset variable to calculate register locations.
3377 2007-10-18 Richard Guenther <rguenther@suse.de>
3379 * tree-ssa.c (uid_ssaname_map_eq): New function.
3380 (uid_ssaname_map_has): Likewise.
3381 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
3382 * tree-flow.h (struct gimple_df): Make default_defs a
3384 * tree-dfa.c (gimple_default_def): Deal with it.
3385 (set_default_def): Likewise.
3387 2007-10-18 Richard Guenther <rguenther@suse.de>
3389 * tree-flow.h (struct gimple_df): Make referenced_vars
3391 (uid_decl_map_eq): Declare.
3392 (uid_decl_map_hash): Likewise.
3393 * tree-ssa.c (uid_decl_map_eq): New function.
3394 (uid_decl_map_hash): Likewise.
3395 (init_tree_ssa): Make referenced_vars a uid_decl_map.
3396 * tree-flow-inline.h (first_referenced_var): Deal with
3397 the referenced_vars representation change.
3398 (next_referenced_var): Likewise.
3399 * tree-dfa.c (referenced_var_lookup): Likewise.
3400 (referenced_var_check_and_insert): Likewise.
3401 (remove_referenced_var): Likewise.
3403 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
3405 * config/mips/mips.c (mips_dwarf_register_span): New.
3406 (TARGET_DWARF_REGISTER_SPAN): Define.
3408 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
3410 * config.gcc : update score-*-elf(extra_objs).
3411 * config/score/mac.md : Remove.
3412 * config/score/misc.md : Remove.
3413 * config/score/score7.md : Remove.
3414 * config/score/score-mdaux.h : Remove.
3415 * config/score/score-mdaux.c : Remove.
3416 * config/score/score-version.h : Remove.
3417 * config/score/score-generic.md : New.
3418 * config/score/score3.h : New.
3419 * config/score/score3.c : New.
3420 * config/score/score7.h : New.
3421 * config/score/score7.c : New.
3422 * config/score/mul-div.S : add flush_cache score3 support.
3423 * config/score/elf.h : Fix some typos.
3424 * config/score/score.md : merge score3 and score7 pattern.