]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2dd6f9ed 12008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
2
3 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
5 emit_library_call_value.
6 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
7 * tree.h (ECF_LIBCALL_BLOCK): Removed.
8 * calls.c (initialize_argument_information, precompute_arguments,
9 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
10 (precompute_arguments): Removed flags parameter.
11 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
12
77ad2905 132008-05-14 Richard Guenther <rguenther@suse.de>
14
15 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16 Make sure to register the store if the use is a PHI_NODE.
17
220144ca 182008-05-14 Olivier Hainque <hainque@adacore.com>
19
20 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
21 memory if the component is to be referenced in BLKmode according
22 to get_inner_reference.
23
34a0af10 242008-05-14 Adam Nemet <anemet@caviumnetworks.com>
25
26 * calls.c (emit_library_call_value_1): Restore code clearing
27 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence
28 once.
29
de4e1ab6 302008-05-14 Olivier Hainque <hainque@adacore.com>
31 Nicolas Roche <roche@adacore.com>
32
33 * configure.ac: Add support for a "gcc_subdir" variable in
34 config-lang.in, to denote a subdirectory where the language/GCC
35 integration files are to be found.
36 * configure: Regenerate.
37
a53e5ca3 382008-05-14 Ira Rosen <irar@il.ibm.com>
39
40 PR tree-optimization/36098
41 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
42 value for the first load in the group in case of a gap.
43 (vect_build_slp_tree): Check that there are no gaps in loads.
44
e29831db 452008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
46
47 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
48 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
49 expand_copysign_bit, ): Change call to emit_no_conflict_block to
50 emit_insn and remove unneeded code to construct extra args.
51 (emit_no_conflict_block): Removed.
52 * optabls.h: (emit_no_conflict_block): Removed.
53 * cse.c (cse_extended_basic_block): Remove search for
54 REG_NO_CONFLICT note.
55 * global.c: Removed incorrect comment added in revision 117.
56 * expr.c (convert_move): Change call to emit_no_conflict_block to
57 emit_insn.
58 * recog.c: Change comments so that they do not mention
59 REG_NO_CONFLICT.
60 * local_alloc.c (combine_regs): Removed last parameter.
61 (no_conflict_p): Removed.
62 (block_alloc): Removed note, no_conflict_combined_regno and set
63 local vars. Removed all code to process REG_NO_CONFLICT blocks.
64 (combine_regs): Removed already_dead and code to look for
65 REG_NO_CONFLICT notes.
66 * lower_subreg (remove_retval_note): Removed code to look for
67 REG_NO_CONFLICT block.
68 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
69 (resolve_clobber): Remove code to process libcalls that have
70 REG_NO_CONFLICT notes.
71 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
72 case.
73 * combine.c (can_combine_p, distribute_notes): Removed REG_NO_CONFLICT
74 case.
75 * config/cris/cris.md (movdi pattern): Changed
76 emit_no_conflict_block to emit_insns.
77 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
78 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
79 Ditto.
80 * reg-notes.def (NO_CONFLICT): Removed.
81
b5264126 822008-05-14 David S. Miller <davem@davemloft.net>
83
84 * config/sparc/sparc.c (sparc_profile_hook): If
85 NO_PROFILE_COUNTERS, don't generate and pass a label
86 into mcount.
87 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
88 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
89
8ecc497a 902008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
91
92 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
93
b5606623 942008-05-13 Uros Bizjak <ubizjak@gmail.com>
95
96 PR target/36222
97 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
98 and op1 expansion before vector concat to have less live pseudos.
99
0f4d0c21 1002008-05-13 H.J. Lu <hongjiu.lu@intel.com>
101
102 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
103 ix86_expand_vector_set if supported.
104
bcaa2770 1052008-05-13 Diego Novillo <dnovillo@google.com>
106 Kenneth Zadeck <zadeck@naturalbridge.com>
107
108 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
109
110 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
111 phinodes_print_statistics, init_ssanames, fini_ssanames,
b5606623 112 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
113 release_ssa_name, release_defs, replace_ssa_name_symbol,
bcaa2770 114 ssanames_print_statistics): Move ...
115 * tree-flow.h: ... here.
b5606623 116 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
117 Use FN instead of cfun.
bcaa2770 118 (make_ssa_name_fn): Rename from make_ssa_name.
b5606623 119 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
bcaa2770 120 * tree-flow-inline.h (make_ssa_name): Move from
b5606623 121 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
bcaa2770 122 * omp-low.c (expand_omp_parallel):
123 * tree-flow-inline.h (redirect_edge_var_map_result):
b5606623 124 * tree-ssa.c (init_tree_ssa): Add argument FN. Use it instead of cfun.
bcaa2770 125 Update all users.
126
fb9753dc 1272008-05-13 Tom Tromey <tromey@redhat.com>
128
129 PR preprocessor/22168:
130 * doc/cpp.texi (Top): Update menu.
131 (Alternatives to Wrapper #ifndef): New node.
132 (Other Directives): Document deprecation.
133 (Obsolete Features): Remove menu.
134 (Assertions): Merge node into Obsolete Features.
135 (Obsolete once-only headers): Move earlier; rename to Alternatives
136 to Wrapper #ifndef.
137 * doc/cppopts.texi: Update.
138 * c.opt (Wdeprecated): Enable for C and ObjC.
139 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
140 (C++ Dialect Options): Move -Wno-deprecated from here to...
141 (Warning Options): ... here.
142
4b475af8 1432008-05-13 Richard Guenther <rguenther@suse.de>
144
145 PR middle-end/36227
146 * fold-const.c (fold_sign_changed_comparison): Do not allow
147 changes in pointer-ness.
148
5bfdcfc8 1492008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
150
151 PR target/24713
152 * config/sh/sh.c (sh_expand_prologue): Don't clear
153 RTX_FRAME_RELATED_P for push insns.
154
012da5f6 1552008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
156
157 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
158
f2323747 1592008-05-12 Anatoly Sokolov <aesok@post.ru>
160
161 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
162 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
163 Use 'machine->is_leaf' instead of 'leaf_func_p'.
164
b4a46c88 1652008-05-12 H.J. Lu <hongjiu.lu@intel.com>
166
167 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
168 (*vec_concatv4sf_sse): This.
169 (*sse2_concatv2si): Renamed to ...
170 (*vec_concatv2si_sse2): This.
171 (*sse1_concatv2si): Renamed to ...
172 (*vec_concatv2si_sse): This.
173 (*vec_concatv2di_rex): Renamed to ...
174 (*vec_concatv2di_rex64): This.
175 (*vec_concatv2si_sse4_1): New.
176 (*vec_concatv2di_rex64_sse4_1): Likewise.
177
5612e2f1 1782008-05-12 Uros Bizjak <ubizjak@gmail.com>
179
180 PR rtl-optimization/36111
181 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
182 that was created for swappable operands.
183
f1984c57 1842008-05-12 Samuel Tardieu <sam@rfc1149.net>
185
186 PR ada/36001
187 * Makefile.in: Substitute GNATMAKE and GNATBIND.
188 * configure.ac: Add call to ACX_PROG_GNAT.
189
63433b97 1902008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
191
192 * optc-gen.awk: Fix comment typo.
193
715b4b24 1942008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
195
196 * pretty-print.c (pp_integer_with_precision): Use
197 HOST_LONG_LONG_FORMAT.
198
16aa7503 1992008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
200
201 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
202
54f3117f 2032008-05-10 H.J. Lu <hongjiu.lu@intel.com>
204
205 * config/i386/i386.c (bdesc_ptest): Removed.
206 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
207 (bdesc_args): Add __builtin_ia32_ptestz128,
208 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
209 (ix86_init_mmx_sse_builtins): Updated.
210 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
211 (ix86_expand_builtin): Updated.
212
9ac19c3a 2132008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
214
215 * tree-cfg.c (valid_fixed_convert_types_p): New function.
216 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
217
058d05d5 2182008-05-10 Uros Bizjak <ubizjak@gmail.com>
219
220 * value-prof.c (interesting_stringop_to_profile): Do not
221 return early for BUILT_IN_MEMPCPY.
222
9a27561f 2232008-05-09 H.J. Lu <hongjiu.lu@intel.com>
224
225 * calls.c (expand_call): Don't use callgraph to increase
226 preferred_stack_boundary.
227
228 * cgraph.h (cgraph_rtl_info): Use unsigned on
229 preferred_incoming_stack_boundary.
230
231 * final.c (rest_of_clean_state): Use unsigned on
232 preferred_stack_boundary.
233
14984eca 2342008-05-09 Tom Tromey <tromey@redhat.com>
235
236 PR preprocessor/22231:
237 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
238 proceeding.
239
5a4b7e1e 2402008-05-09 Uros Bizjak <ubizjak@gmail.com>
241
242 PR tree-optimization/36129
5612e2f1 243 * tree-ssa-ccp.c: Include value-prof.h.
5a4b7e1e 244 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
245 built-in function was folded to a constant.
5612e2f1 246 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
5a4b7e1e 247
afd80ffb 2482008-05-09 Jan Sjodin <jan.sjodin@amd.com>
249 Sebastian Pop <sebastian.pop@amd.com>
250
251 * tree-scalar-evolution.c: Document instantiate_scev.
252 (instantiate_parameters_1): Renamed instantiate_scev_1.
253 Don't use the same loop for instantiation_loop and evolution_loop.
254 (instantiate_scev): New.
255 (instantiate_parameters): Moved...
256 (resolve_mixers): Update call to instantiate_scev_1 to pass the
257 same loop twice. Maintains the semantics for this function.
258 * tree-scalar-evolution.h (instantiate_scev): Declare.
259 (instantiate_parameters): ...here. Now static inline.
260 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
261 instead of resolve_mixers.
262
5da71d4f 2632008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
264
265 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
266
72dd6141 2672008-05-09 Tomas Bily <tbily@suse.cz>
268
269 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
270 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
271 * tree-ssa-structalias.c (get_constraint_for): Likewise.
272 * c-common.c (c_common_truthvalue_conversion): Likewise.
273 * tree-object-size.c (compute_object_offset): Likewise.
274 * tree-inline.c (estimate_num_insns_1): Likewise.
275 * varasm.c (const_hash_1, compare_constant, copy_constant)
276 (compute_reloc_for_constant, output_addressed_constants)
277 (initializer_constant_valid_p): Likewise.
278 * c-omp.c (check_omp_for_incr_expr): Likewise.
279 * gimplify.c (gimplify_expr): Likewise.
280 * c-typeck.c (c_finish_return): Likewise.
281 * tree-vectorizer.c (supportable_widening_operation)
282 (supportable_narrowing_operation): Likewise.
283 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
284 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
285 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
286 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
287 (descr_info_loc): Likewise.
288 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
289 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
290 (fold_unary): Likewise.
291 * builtins.c (get_pointer_alignment): Likewise.
292 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
293 (instantiate_parameters_1): Likewise.
294 * tree.c (expr_align, stabilize_reference): Likewise.
295 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
296 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
297 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
298 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
299 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
5612e2f1 300 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
301 Likewise.
72dd6141 302 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
303 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
304 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
305 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
306 (forward_propagate_comparison)
307 (tree_ssa_forward_propagate_single_use_vars): Likewise.
308 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
309 * emit-rtl.c (component_ref_for_mem_expr)
310 (set_mem_attributes_minus_bitpos): Likewise.
311 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5612e2f1 312 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
313 Likewise.
72dd6141 314 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
315 (build_function_call, pointer_diff, build_compound_expr)
316 (c_finish_return): Likewise.
317 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
5612e2f1 318 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
319 Likewise.
72dd6141 320 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
321 * expr.c (is_aligning_offset): Likewise.
322 * tree-ssa-alias.c (is_escape_site): Likewise.
323 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
324 (check_all_va_list_escapes): Likewise.
325 * tree-ssa-loop-ivopts.c (determine_base_object)
326 (determine_common_wider_type): Likewise.
327 * dojump.c (do_jump): Likewise.
328 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
329 * tree-gimple.c (is_gimple_cast): Likewise.
330 * fold-const.c (decode_field_reference, )
331 (fold_sign_changed_comparison, fold_unary, fold_comparison)
332 (fold_binary): Likewise.
333 * tree-ssa-alias-warnings.c (find_alias_site_helper)
334 (already_warned_in_frontend_p): Likewise.
335 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
336 * tree.c (really_constant_p, get_unwidened): Likewise.
337 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
338 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
5612e2f1 339 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
340 Likewise.
341 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
342 CONVERT_EXPR_P.
72dd6141 343 (CONVERT_EXPR_P): Define.
344 (CASE_CONVERT): Define.
345
0b7b55ea 3462008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
347
348 PR middle-end/36117
5612e2f1 349 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
350 (delete_unmarked_insns): When deleting a call, call
0b7b55ea 351 delete_unreachable_blocks.
352 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5612e2f1 353 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
354
70393469 3552008-05-08 Richard Guenther <rguenther@suse.de>
356
357 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
358 (-ftree-salias): Likewise.
359 (salias-max-implicit-fields): Remove param documentation.
360 (salias-max-array-elements): Likewise.
361 * tree-pass.h (pass_create_structure_vars): Remove.
362 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
363 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
364 * tree-ssa-alias.c (create_structure_vars): Remove.
365 (gate_structure_vars): Likewise.
366 (pass_create_structure_vars): Likewise.
367 (gate_build_alias): Likewise.
368 (pass_build_alias): Adjust to run always and dump the function.
369 * common.opt (ftree-salias): Hide.
370 * passes.c (init_optimization_passes): Remove
371 pass_create_structure_vars, adjust comment.
372 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
373 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
374 * opts.c (decode_options): Do not set flag_tree_salias.
375 (common_handle_option): Add OPT_ftree_salias to the backward
376 compatibility section.
377
3423d8f7 3782008-05-08 Richard Guenther <rguenther@suse.de>
379
380 * tree-flow-inline.h (var_can_have_subvars): Move ...
381 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
382 * tree-flow.h (var_can_have_subvars): Remove.
383 (push_fields_onto_fieldstack): Remove.
384 (sort_fieldstack): Likewise.
385 (struct fieldoff): Move ...
386 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
387 alias_set and base_for_components fields.
388 (sort_fieldstack): Make static.
389 (push_fields_onto_fieldstack): Likewise. Remove code that
390 handles anything but RECORD_TYPEs. Remove alias_set and
391 base_for_components handling.
392 (create_variable_info_for): Adjust.
393
15e88abc 3942008-05-08 Seongbae Park <seongbae.park@gmail.com>
2953c811 395
15e88abc 396 * common.opt (Wframe-larger-than=): Shorten the help message
397 to one line.
398 * doc/invoke.texi (Wframe-larger-than=): Add more description.
399
7076cb5d 4002008-05-08 Rafael Espindola <espindola@google.com>
401
402 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
403 trap.
404 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
405 trap and that both operands are gimple values.
406 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
407 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
408 is a fp operation.
409
25a52e22 4102008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
411
412 * read-rtl.c (join_c_conditions): Return the first string if the
413 two strings are equal.
414
c7a4c804 4152008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
416
417 * gensupport.h (pred_data): Add a "num_codes" field.
418 (add_predicate_code): Declare.
419 * gensupport.c (add_predicate_code): New function.
420 (std_pred_table): Add an "allows_const_p" field.
421 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
422 Remove the (incomplete) list of such codes from the codes field.
423 (init_predicate_table): Use add_predicate_code. Add all
424 RTX_CONST_OBJs if allows_const_p is true.
425 * genrecog.c (process_define_predicate): Use add_predicate_code.
426
40efb338 4272008-05-08 David Daney <ddaney@avtrex.com>
428 Richard Sandiford <rsandifo@nildram.co.uk>
429
430 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
431 special case of constant zero operands.
432 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
433 old and new values. Special case constant zero values.
434 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
435 fails.
436 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
437 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
438
f35ba9d1 4392008-05-08 Paolo Bonzini <bonzini@gnu.org>
440
441 PR target/36090
442 * simplify-rtx.c (simplify_plus_minus): Create CONST of
443 similar RTX_CONST_OBJ before CONST_INT.
444
fbf51400 4452008-05-08 Steve Ellcey <sje@cup.hp.com>
446
447 * stmt.c (expand_stack_restore): Change sa mode if needed.
448
df2a16e5 4492008-05-08 Richard Guenther <rguenther@suse.de>
450
451 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
452 return type to bool.
453 (ix86_sol10_return_in_memory): Likewise.
454 (ix86_i386elf_return_in_memory): Likewise.
455 (ix86_i386interix_return_in_memory): Likewise.
456 * config/i386/i386.c (ix86_return_in_memory): Likewise.
457 (ix86_sol10_return_in_memory): Likewise.
458 (ix86_i386elf_return_in_memory): Likewise.
459 (ix86_i386interix_return_in_memory): Likewise.
460
60e2260d 4612008-05-08 Kai Tietz <kai.tietz@onevision.com>
462
19d05520 463 PR bootstrap/36180
60e2260d 464 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
465 fndecl argument.
19d05520 466 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
467 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
468 declared in front.
60e2260d 469
2afb4be3 4702008-05-08 Richard Guenther <rguenther@suse.de>
471
472 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
473 * tree-data-ref.h (struct dr_alias): Remove subvars field.
474 (DR_SUBVARS): Remove.
475 * tree-dfa.c (dump_subvars_for): Remove.
476 (debug_subvars_for): Likewise.
477 (dump_variable): Do not dump subvars.
478 (remove_referenced_var): Do not remove subvars.
479 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
480 (lookup_subvars_for_var): Remove.
481 (get_subvars_for_var): Likewise.
482 (get_subvars_at): Likewise.
483 (get_first_overlapping_subvar): Likewise.
484 (overlap_subvar): Likewise.
485 * tree-flow.h (subvar_t): Remove.
486 (struct var_ann_d): Remove subvars field.
487 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
488 argument. Remove special handling of SFTs.
489 (compute_tag_properties): Likewise.
490 (set_initial_properties): Likewise.
491 (compute_call_clobbered): Likewise.
492 (count_mem_refs): Likewise.
493 (compute_memory_partitions): Likewise.
494 (compute_flow_insensitive_aliasing): Likewise.
495 (setup_pointers_and_addressables): Likewise.
496 (new_type_alias): Likewise.
497 (struct used_part): Remove.
498 (used_portions): Likewise.
499 (struct used_part_map): Likewise.
500 (used_part_map_eq): Likewise.
501 (used_part_map_hash): Likewise.
502 (free_used_part_map): Likewise.
503 (up_lookup): Likewise.
504 (up_insert): Likewise.
505 (get_or_create_used_part_for): Likewise.
506 (create_sft): Likewise.
507 (create_overlap_variables_for): Likewise.
508 (find_used_portions): Likewise.
509 (create_structure_vars): Likewise.
510 * tree.def (STRUCT_FIELD_TAG): Remove.
511 * tree.h (MTAG_P): Adjust.
512 (struct tree_memory_tag): Remove base_for_components and
513 unpartitionable flags.
514 (struct tree_struct_field_tag): Remove.
515 (SFT_PARENT_VAR): Likewise.
516 (SFT_OFFSET): Likewise.
517 (SFT_SIZE): Likewise.
518 (SFT_NONADDRESSABLE_P): Likewise.
519 (SFT_ALIAS_SET): Likewise.
520 (SFT_UNPARTITIONABLE_P): Likewise.
521 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
522 (union tree_node): Remove sft field.
523 * alias.c (get_alias_set): Remove special handling of SFTs.
524 * print-tree.c (print_node): Remove handling of SFTs.
525 * tree-dump.c (dequeue_and_dump): Likewise.
526 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
527 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
528 * tree-predcom.c (set_alias_info): Do not set subvars.
529 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
530 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
531 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
532 (add_vars_for_offset): Remove.
533 (add_virtual_operand): Remove special handling of SFTs.
534 (add_call_clobber_ops): Likewise.
535 (add_call_read_ops): Likewise.
536 (get_asm_expr_operands): Likewise.
537 (get_modify_stmt_operands): Likewise.
538 (get_expr_operands): Likewise.
539 (add_to_addressable_set): Likewise.
540 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
541 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5612e2f1 542 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2afb4be3 543 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
544 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
545 (tree_node_structure): Likewise.
546 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
547 handling of SFTs.
548 (find_what_p_points_to): Likewise.
549
8d44e5fa 5502008-05-08 Sa Liu <saliu@de.ibm.com>
551
552 * config/spu/spu.md: Fixed subti3 pattern.
8d44e5fa 553
5949e049 5542008-05-08 Richard Guenther <rguenther@suse.de>
555
556 PR middle-end/36154
557 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
558 sure to create a representative for trailing arrays for PTA.
559
07018da0 5602008-05-08 Richard Guenther <rguenther@suse.de>
561
562 PR middle-end/36172
563 * fold-const.c (operand_equal_p): Two objects which types
564 differ in pointerness are not equal.
565
19d05520 5662008-05-08 Kai Tietz <kai.tietz@onevision.com>
22c61100 567
568 * calls.c (compute_argument_block_size): Add argument tree fndecl.
569 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
570 (emit_library_call_value_1): Add new variable fndecl initialized by
571 NULL_TREE. It should be the decl type of orgfun, but this information
572 seems not to be available here, so it uses the default calling abi.
573 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
574 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
575 by TARGET_RETURN_IN_MEMORY.
576 * config/i386/i386-interix.h: Likewise.
577 * config/i386/i386.h: Likewise.
578 * config/i386/i386elf.h: Likewise.
579 * config/i386/ptx4-i.h: Likewise.
580 * config/i386/sol2-10.h: Likewise.
581 * config/i386/sysv4.h: Likewise.
582 * config/i386/vx-common.h: Likewise.
583 * config/cris/cris.h: Removed #if 0 clause.
19d05520 584 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
22c61100 585 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
586 argument.
587 (ix86_sol10_return_in_memory): Likewise.
588 (ix86_i386elf_return_in_memory): New.
589 (ix86_i386interix_return_in_memory): New.
590 * config/mt/mt-protos.h (mt_return_in_memory): New.
591 * config/mt/mt.c: Likewise.
592 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
593 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
594 * config/bfin/bfin.h: Likewise.
595 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
596 argument.
597 * config/bfin/bfin.c: Likewise.
598 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
599 * config/alpha/unicosmk.h: Likewise.
600 * config/i386/cygming.h: Likewise.
601 * config/iq2000/iq2000.h: Likewise.
602 * config/mips/mips.h: Likewise.
603 * config/mn10300/mn10300.h: Likewise.
604 * config/rs6000/rs6000.h: Likewise.
605 * config/score/score.h: Likewise.
606 * config/spu/spu.h: Likewise.
607 * config/v850/v850.h: Likewise.
608 * defaults.h: Likewise.
609 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
19d05520 610 * expr.c (emit_block_move): Adjust use of
611 OUTGOING_REG_PARM_STACK_SPACE.
22c61100 612 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
613 OUTGOING_REG_PARM_STACK_SPACE.
614 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
615
957f873e 6162008-05-08 Jakub Jelinek <jakub@redhat.com>
617
618 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
619 on OMP_RETURN for OMP_FOR.
620
845c3089 621 PR debug/35896
622 * dwarf2out.c (dw_expand_expr, common_check): Removed.
623 (fortran_common): New function.
624 (gen_variable_die): Call fortran_common instead of common_check,
625 adjust for it returning tree instead of rtx. Formatting.
626
957f873e 6272008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
9c2a0c05 628
19d05520 629 PR rtl/7335
630 PR rtl/33826
631 * see.c (see_copy_insn): Copy new pure const attributes for new call.
632 * c-decl.c (merge_decls): Ditto.
633 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
634 to RTL_CONST_OR_PURE_CALL_P.
635 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
636 Initialized DECL_LOOPING_CONST_PURE.
637 (process_call_operands): Set tree_side_effects properly.
638 * tree.h (TREE_READONLY_DECL_P): Removed.
639 (DECL_IS_PURE): Renamed to DECL_PURE_P.
640 (DECL_LOOPING_OR_CONST_P): New macro.
641 (struct tree_function_decl): Added looping_const_or_pure_p.
642 (ECF_*) Renumbered.
643 (ECF_LOOPING_OR_CONST_P): New macro.
644 * rtlanal.c (pure_const_p): Removed.
645 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
646 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
647 to RTL_CONST_CALL_P.
648 * ipa-pure-const.c (pure_const_state_e): Added looping field.
649 (check_decl, check_tree, check_call, scan_function): Initialize
650 looping.
651 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
652 (static_execute): Set looping true for recursive functions.
653 Undo setting state to IPA_NEITHER for recursive functions.
654 * cse.c (cse_insn):
655 * ifcvt.c (noce_can_store_speculate_p): Changed
656 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
657 RTL_CONST_OR_PURE_CALL_P.
658 * dse.c (scan_insn): Ditto.
659 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
660 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
661 RTL_CONST_OR_PURE_CALL_P.
662 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
663 pure_call_p to RTL_CONST_CALL_P.
664 * gimplify.c (gimplify_call_expr): Clear side effects for
665 non-looping pure and constant calls.
666 * calls.c (emit_call_1): Set rtl flags from ecf flags.
667 (flags_from_decl_or_type): Set ecf flags from decl flags.
668 (initialize_argument_information): Turn off
669 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
670 Change const to pure if callee_copies is true rather than just
671 turning off const.
672 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
673 way of marking pure calls.
674 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
675 Remove hack that was supposed to fix pr7335 and remove old
676 way of marking pure calls.
677 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
678 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
679 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
680 RTL_CONST_OR_PURE_CALL_P.
681 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
682 * loop-invariant.c (find_exits, find_invariant_bb): Changed
683 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
684 * sched-deps.c (schedule_analyze): Ditto.
685 * rtl.h (struct rtx_def): Use call field, unchanging field, and
686 return_val field of calls to represent pure and const function info.
687 (CONST_OR_PURE_CALL_P): Deleted macro.
688 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
689 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
690 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
691 TREE_READONLY.
692 * tree-optimize.c (execute_fixup_cfg): Added test for
693 ECF_LOOPING_CONST_OR_PURE.
694 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
695 DECL_PURE_P.
696 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
697 effects for looping pure or const calls.
698 (verify_gimple_expr): Added verification code.
699 * config/alpha/alpha.c (alpha_legitimize_address,
700 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
701 RTL_CONST_CALL_P.
702 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
703 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
704 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
705 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
706 RTL_CONST_OR_PURE_CALL_P.
707 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
708 and const calls to be deleted.
9c2a0c05 709
19d05520 7102008-05-07 Uros Bizjak <ubizjak@gmail.com>
7c839b3f 711
712 PR target/35714
713 * config/i386/mmx.md (mmx_subv2sf3): New expander.
714 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
715 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
716 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
717 to handle nonimmediate operands.
718 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
719 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
720 to handle nonimmediate operands.
721 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
722 (mmx_pmulhrwv4hi3): New expander. Use
723 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
724 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
725 (sse2_umulv1siv1di3): New expander. Use
726 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
727 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
728 (mmx_eq<mode>3): New expander. Use
729 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
730 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
731 (mmx_uavgv8qi3): New expander. Use
732 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
733 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
734 (mmx_uavgv4hi3): New expander. Use
735 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
736
737 * config/i386/sse.md
2485795e 738 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 739 to handle nonimmediate operands.
2485795e 740 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 741 to handle nonimmediate operands.
2485795e 742 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 743 to handle nonimmediate operands.
2485795e 744 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 745 to handle nonimmediate operands.
2485795e 746 (sse2_unpckhpd_exp): New expander. Use
7c839b3f 747 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 748 (sse2_unpcklpd_exp): New expander. Use
7c839b3f 749 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 750 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 751 to handle nonimmediate operands.
7c839b3f 752 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
753 to handle nonimmediate operands.
754 (*sse2_<plusminus_insn><mode>3): Rename from
755 sse2_<plusminus_insn><mode>3 insn pattern.
756 (sse2_<plusminus_insn><mode>3): New expander. Use
757 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
758 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
759 (sse2_umulv2siv2di3): New expander. Use
760 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
761 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
762 (sse4_1_mulv2siv2di3): New expander. Use
763 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
764 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
765 (sse2_pmaddwd): New expander. Use
766 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
767 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
768 (sse2_eq<mode>3): New expander. Use
769 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
770 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
771 (sse4_1_eqv2di3): New expander. Use
772 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
773 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
774 (sse2_uavgv16qi3): New expander. Use
775 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
776 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
777 (sse2_uavgv16qi3): New expander. Use
778 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
779 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
780 (sse2_uavgv8hi3): New expander. Use
781 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
782 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
783 (ssse3_pmulhrswv8hi3): New expander. Use
784 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
785 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
786 (ssse3_pmulhrswv4hi3): New expander. Use
787 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
788
789 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
790 (<sse>_vmmul<mode>3): Ditto.
791 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
792 (divv2df3): Ditto.
793 (ssse3_pmaddubsw128): Use register_operand for operand 1.
794 (ssse3_pmaddubsw): Ditto.
795
2485795e 796 * config/i386/i386.c (struct_builtin_description)
797 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
798 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
799 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
800 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
801 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
802 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
803 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
804 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
805 (ix86_fixup_binary_operands): Assert that src1
7c839b3f 806 and src2 must have the same mode when swapped.
807 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
808 and ix86_binary_operator_ok. Do not force operands in registers
809 when optimizing.
810
c4d6511c 8112008-05-07 Jan Hubicka <jh@suse.cz>
812
813 * cgraph.c (dump_cgraph_node): Update.
814 * cgraph.h (cgraph_local_info): Break out inline summary.
815 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
816 hook.
817 * ipa-inline (inline_summary): New accestor function.
818 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
819 cgraph_decide_inlining, compute_inline_parameters): Update.
820 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
821
3c904dda 8222008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
823
824 Cleanup ColdFire scheduling support and add V4 pipeline model.
825
826 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
827 (define_attr cpu): Add cfv4 value.
828 (define_attr type, define_attr type1): Merge into a single 'type'
829 attribute. Update all uses.
830 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
831 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
832 Update all uses.
833 (define_attr opx_mem, define_attr opy_mem): Remove.
834 (define_attr op_mem): Clean up, update comment.
835 (define_attr size): Use specific values instead of general int.
836 (define_attr guess, define_attr split): Remove. Update all uses.
837 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
838 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
839 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
840 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
841 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
842 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
843 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
844 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
845 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
846 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
847 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
848 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
849 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
850 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
851 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
852 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
853 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
854 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
855 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
856 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
857 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
858 Update or set attributes.
859 (stack_tie): New fake instruction.
860
861 * config/m68k/m68k.h (TUNE_CFV4): New macro.
862 (m68k_sched_attr_size): Update declaration.
863 (m68k_sched_attr_type2): Remove.
864 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
865 Declare new bypass predicates.
866
867 * config/m68k/m68k.c (m68k_sched_issue_rate,
868 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
869 implementations.
870 (TARGET_SCHED_ISSUE_RATE,
871 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
872 (override_options): Handle scheduling for ColdFire V4 core.
873 (m68k_expand_prologue): Emit stack_tie.
874 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
875 'OP_TYPE_FPN'. Update all uses.
876 (sched_guess_p): Remove.
877 (sched_address_type): Handle symbolic addresses.
878 (sched_get_operand): New static function.
879 (sched_operand_type): Merge into sched_attr_op_type.
880 (sched_attr_op_type): Handle FP registers, handle quick constants,
881 update.
882 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
883 (m68k_sched_attr_size): Update. Move logic to ...
884 (sched_get_attr_size_int): New static function.
885 (sched_get_opxy_mem_type): New static function.
886 (m68k_sched_attr_op_mem): Update.
887 (m68k_sched_attr_type2): Remove.
888 (sched_cfv4_bypass_data): New static variable.
889 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
890 (m68k_sched_issue_rate): Implement scheduler hook.
891 (struct _sched_ib: enabled_p): New field.
892 (m68k_sched_variable_issue): Update. Handle V4.
893 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
894 sched_dump_class_func_t, sched_dump_split_class,
895 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
896 sched_dump_dfa_class, m68k_sched_dump): Remove.
897 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
898 hook.
899 (m68k_sched_init_global): Remove statisctics dumping, introduce
900 sanity check that all instructions have pipeline reservations. Handle
901 ColdFire V4 core.
902 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
903 Handle ColdFire V4 core.
904 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
905 New static functions.
906 (m68k_sched_address_bypass_p): New bypass predicate.
907 (sched_get_indexed_address_scale): New static function.
908 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
909
910 * cf.md: Update comments.
911 (define_attr type2): Remove. Use 'type' attribute instead.
912 Update all uses.
913 (cf_ib): Rename to cfv123_ib. Update all uses.
914 (cf_oep): Rename to cfv123_oep. Update all uses.
915 (cf_chr): Rename to cfv123_chr. Update all uses.
916 (cf_mem): Rename to cfv123_mem. Update all uses.
917 (cf_mac): Move to more appropriate place.
918 (cfv123_guess): New automaton and cpu_unit.
919 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
920 Update uses of 'size' attribute. Handle before reload scheduling.
921 (cfv123_guess): New dummy reservation for unhandled instructions.
922 (cfv4_*): Pipeline description of ColdFire V4 core.
923 (ignore): New reservation to handle 'ignore' type.
924
7de2c0c8 9252008-05-07 Ian Lance Taylor <iant@google.com>
926
927 PR middle-end/36013
928 * gimplify.c (find_single_pointer_decl_1): Don't look through
929 indirections.
930 (find_single_pointer_decl): Adjust comments.
931
790368c5 9322008-05-07 Jakub Jelinek <jakub@redhat.com>
933
7db628eb 934 PR middle-end/36137
935 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
936 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
937
790368c5 938 PR middle-end/36106
939 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
940 integral type rather than floating point, then VIEW_CONVERT_EXPR
941 to the floating point type.
942
790368c5 9432008-05-07 Uros Bizjak <ubizjak@gmail.com>
c08d707d 944
945 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
946 TFmode op0 to register.
947
333adf28 9482008-05-07 Alan Modra <amodra@bigpond.net.au>
949
950 * c-decl.c (grokdeclarator): Comment typo.
951
7231cbf7 9522008-05-06 Aldy Hernandez <aldyh@redhat.com>
953
954 * tree-flow.h: Remove prototype for computed_goto_p.
955 * tree-cfg.c (computed_goto_p): Make static.
956
1b57040b 9572008-05-06 H.J. Lu <hongjiu.lu@intel.com>
958
959 PR target/35657
4e82296c 960 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1b57040b 961 (contains_aligned_value_p): This. Handle _Decimal128.
962 (ix86_function_arg_boundary): Only align _Decimal128 to its
963 natural boundary and handle it properly.
964
d60eadfa 9652008-05-06 Martin Jambor <mjambor@suse.cz>
966
1b57040b 967 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
968 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
969 (ipcp_method_set_orig_node): Removed.
970 (ipcp_cval_get_cvalue_type): Removed.
971 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
972 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
973 (ipcp_cval_set_cvalue_type): Removed.
974 (ipcp_cval_get_cvalue): Removed.
975 (ipcp_cval_set_cvalue): Removed.
976 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
977 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
978 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
979 (ipcp_cval_meet): Renamed to ipa_lattice_meet
980 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
981 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
982 (ipcp_get_ith_lattice): Changed parameters.
983 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
984 (ipcp_lattice_from_jfunc): Changed parameters.
d60eadfa 985 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
986 (ipcp_method_cval_print): Added temporary variable info.
987 (ipcp_redirect): Removed already unused local variable caller.
988 (ipcp_redirect): New temporary variable orig_callee_info
989 (ipcp_redirect): Removed newly unused local variable callee.
990 (ipcp_redirect): Removed (a bit confusing) local variable type.
991 (ipcp_insert_stage): Added local variable info.
992 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
993 renamed too
994 (ipcp_formal_create): Removed.
995 (ipcp_method_cval_set): Removed.
996 (ipcp_propagate_stage): Renamed lattice variables.
997 (ipcp_method_cval_set_cvalue_type): Removed.
998 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
999 (ipcp_print_all_lattices): Changed printed strings to refer to
1000 lattices rather than cvals.
1001 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1002 (ipcp_propagate_const): Changed formal parameters.
1003 (build_const_val): Changed formal parameters.
1004 (ipcp_insert_stage): Removed useless variable cvalue
1005 (build_const_val): Changed formal parameters.
1006 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1007 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1008 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1009 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1010 (ipcp_print_func_profile_counts): Changed string from "method" to
1011 "function"
1012 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1013 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1014 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1015 (ipcp_structures_print): Renamed to ipcp_print_all_structures
1016 (ipcp_profile_print): Renamed to ipcp_print_profile_data
1017 (ipcp_lat_is_const): Changed parameters and made inline.
1018 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1019 (ipcp_redirect): Renamed to ipcp_need_redirect_p
1020 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
1021 the predicate condition directly
1022 (ipcp_propagate_stage): Added local variable args. Removed local
1023 variable callee. (Both are mere code simplifications.)
1024 (ipcp_method_dont_insert_const): Renamed to
1025 ipcp_node_not_modifiable_p.
1026 (ipcp_node_not_modifiable_p): Made inline.
1027 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1028 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1029 (ipcp_print_all_lattices): Removed variable cvalue
1030 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1031 Updated comments.
1032
b257ce27 10332008-05-06 Olivier Hainque <hainque@adacore.com>
1034
1035 * tree-sra.c (try_instantiate_multiple_fields): Early return
1036 if field has POINTER_TYPE.
1037
f3d1e86a 10382008-05-06 Kai Tietz <kai.tietz@onevision.com>
1039
1040 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1041 by using 'q' specifier for instruction.
1042 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1043
6c87a432 10442008-05-06 Anatoly Sokolov <aesok@post.ru>
1045
1046 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1047 Change mode of zero_extract from QImode to HImode.
1048 (sign bit tests peepholes): (Ditto.).
1049
2886ab73 10502008-05-06 Uros Bizjak <ubizjak@gmail.com>
1051
1052 * config/i386/mmx.md: Remove double backslashes from asm templates.
4e82296c 1053 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2886ab73 1054 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1055 to handle nonimmediate operands.
4e82296c 1056 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2886ab73 1057 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1058 to handle nonimmediate operands.
4e82296c 1059 (*mmx_<code>v2sf3_finite): New insn pattern.
1060 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2886ab73 1061 (mmx_<code>v2sf3): New expander. Use
1062 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1063 (mmx_<plusminus_insn><mode>3): New expander. Use
1064 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1065 (*mmx_<plusminus_insn><mode>3): New insn pattern.
2886ab73 1066 (mmx_add<mode>3): Removed.
1067 (mmx_ssadd<mode>3): Ditto.
1068 (mmx_usadd<mode>3): Ditto.
1069 (mmx_sub<mode>3): Ditto.
1070 (mmx_sssub<mode>3): Ditto.
1071 (mmx_ussub<mode>3): Ditto.
4e82296c 1072 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2886ab73 1073 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
1074 to handle nonimmediate operands.
4e82296c 1075 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2886ab73 1076 insn pattern.
1077 (mmx_smulv4hi3_highpart): New expander. Use
1078 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1079 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2886ab73 1080 insn pattern.
1081 (mmx_umulv4hi3_highpart): New expander. Use
1082 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1083 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2886ab73 1084 (mmx_<code>v4hi3): New expander. Use
1085 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1086 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2886ab73 1087 (mmx_<code>v8qi3): New expander. Use
1088 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1089 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2886ab73 1090 (mmx_<code><mode>3): New expander. Use
1091 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1092
0300832e 10932008-05-05 Jan Hubicka <jh@suse.cz>
1094
1095 PR tree-optimization/36118
1096 * passes.c (pass_init_dump_file): Fix dump header.
1097
6ec63422 10982008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1099
1100 PR middle-end/36141
2886ab73 1101 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1102 VCE for function decls.
6ec63422 1103
e0b803aa 11042008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1105
1106 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1107
801ff5b2 11082008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1109
1110 * config/i386/i386.md (sat_plusminus): New.
1111 (plusminus_insn): Likewise.
1112 (plusminus_mnemonic): Likewise.
1113 (addsub): Removed.
1114 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1115 (*<addsub><mode>3_cc_overflow): Renamed to ...
1116 (*<plusminus_insn><mode>3_cc_overflow): This.
1117 (*<addsub>si3_zext_cc_overflow): Renamed to ...
1118 (*<plusminus_insn>si3_zext_cc_overflow): This.
1119
e0b803aa 1120 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
801ff5b2 1121 (<plusminus_insn><mode>3): This.
1122 (*<addsub><mode>3): Renamed to ...
1123 (*<plusminus_insn><mode>3): This.
1124 (<sse>_vm<addsub><mode>3): Renamed to ...
1125 (<sse>_vm<plusminus_insn><mode>3): This.
1126 (sse3_h<addsub>v4sf3): Renamed to ...
1127 (sse3_h<plusminus_insn>v4sf3): This.
1128 (sse3_h<addsub>v2df3): Renamed to ...
1129 (sse3_h<plusminus_insn>v2df3): This.
1130 (<plusminus_insn><mode>3): New.
1131 (*<plusminus_insn><mode>3): Likewise.
1132 (sse2_<plusminus_insn><mode>3): Likewise.
1133 (add<mode>): Removed.
1134 (*add<mode>3): Likewise.
1135 (sse2_ssadd<mode>3): Likewise.
1136 (sse2_usadd<mode>3): Likewise.
1137 (sub<mode>3): Likewise.
1138 (*sub<mode>3): Likewise.
1139 (sse2_sssub<mode>3): Likewise.
1140 (sse2_ussub<mode>3): Likewise.
1141
2915f97e 11422008-05-05 Benjamin Kosnik <bkoz@redhat.com>
1143
801ff5b2 1144 * gthr-single.h: Add in required interface elements as per gthr.h.
1145 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1146 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1147 Generalize UNUSED macro.
1148 (__gthread_once): Add.
1149 (__gthread_key_create): Add.
2886ab73 1150 (__gthread_key_delete): Add.
801ff5b2 1151 (__gthread_getspecific): Add.
2886ab73 1152 (__gthread_setspecific): Add.
2915f97e 1153
50f39ec6 11542008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
1155
2915f97e 1156 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1157 the same size types for the indirect reference on the rhs, then
1158 create a VCE.
50f39ec6 1159
56dffa8c 11602008-05-05 Uros Bizjak <ubizjak@gmail.com>
1161
1162 * config/i386/i386.md
1163 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1164 one insn template instead of template series.
1165 (*xordi_1_rex64): Ditto.
1166 (*xordi_2_rex64): Ditto.
1167
960a79c4 11682008-05-05 Ira Rosen <irar@il.ibm.com>
1169
56dffa8c 1170 PR tree-optimization/36119
960a79c4 1171 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1172 in case of SLP.
1173
7309a3bb 11742008-06-04 Jan Hubicka <jh@suse.cz>
1175
1176 tree-optimization/36100
1177 * tree-pass.h (pass_O0_always_inline): Declare.
1178 * ipa-inline.c (inline_transform): Remove dead code.
1179 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1180 pass_O0_always_inline): New.
1181 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1182
a3d42209 11832008-05-04 Kai Tietz <kai.tietz@onevision.com>
1184
1185 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1186 mnemonic in this_param move for TARGET_64BIT.
1187
501ec29a 11882008-05-04 Uros Bizjak <ubizjak@gmail.com>
1189
1190 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1191 (*strmovsi_rex_1): Ditto.
1192 (*strsetsi_1): Ditto.
1193 (*strsetsi_rex_1): Ditto.
1194
1195 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1196 adddicc expanders using SWI mode iterator.
1197
bb157d27 11982008-05-04 H.J. Lu <hongjiu.lu@intel.com>
1199
1200 PR target/36121
501ec29a 1201 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1202 argument handling.
bb157d27 1203
1168681b 12042008-05-04 David S. Miller <davem@davemloft.net>
1205
1206 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1207 (sparc*-*-linux*): Use linux.h in tm_file.
1208 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1209 compiler defaulting to 32-bit.
1210 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1211 no longer needed.
1212 * config/sparc/linux.h: Remove definitions now obtained
1213 properly from linux.h
1214 * config/sparc/linux64.h: Likewise.
1215 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1216 don't want this setting for 32-bit builds in a biarch compiler.
1217 * doc/install.texi: Add sparc-linux to list of targets
1218 supporting --enable-targets=all.
1219
94f4bf58 12202008-05-03 Andrew Pinski <pinskia@gmail.com>
1221
1222 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1223
31f7fbf0 12242008-05-03 H.J. Lu <hongjiu.lu@intel.com>
1225
1226 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1227 after V4SI_FTYPE_V8HI.
1228 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1229 case V4SI_FTYPE_V2DF.
1230
957f873e 12312008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
1449dbde 1232
1233 * doc/invoke.texi (max-flow-memory-locations): Removed.
1234 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1235
e629070d 12362008-05-03 Richard Guenther <rguenther@suse.de>
1237
1238 PR middle-end/34973
1239 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1240
bbb5db40 12412008-05-02 David S. Miller <davem@davemloft.net>
1242
1243 * config.gcc (need_64bit_hwint): Document libcpp dependency.
1244
8e31b4b2 12452008-05-02 Simon Baldwin <simonb@google.com>
1246
1247 PR bootstrap/36108
1248 * c-common.h (warn_array_subscript_range): Removed.
1249 * c-common.c (warn_array_subscript_range): Ditto.
1250 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1251 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1252
875a66b2 12532008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1254
1255 * config/i386/i386.c (ix86_special_builtin_type): New.
1256 (bdesc_special_args): Likewise.
1257 (ix86_expand_special_args_builtin): Likewise.
1258 (ix86_init_mmx_sse_builtins): Updated.
1259 (ix86_expand_builtin): Updated.
1260 (ix86_expand_store_builtin): Removed.
1261 (ix86_expand_unop_builtin): Likewise.
1262
1263 * config/i386/mm3dnow.h (__v2sf): Moved to ...
1264 * config/i386/mmintrin.h (__v2sf): Here.
1265
1266 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1267 const __v2sf.
1268 (_mm_loadl_pi): Likewise.
1269 (_mm_storeh_pi): Replace __v2si with __v2sf.
1270 (_mm_storel_pi): Likewise.
1271
1272 * doc/extend.texi: Correct __builtin_ia32_loadhps,
1273 __builtin_ia32_loadlps, __builtin_ia32_storehps,
1274 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1275 __builtin_ia32_loadlpd.
1276
12772008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1278
1279 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1280 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1281 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
1282 (ix86_init_mmx_sse_builtins): Updated.
1283 (ix86_expand_args_builtin): Likewise.
1284 (ix86_expand_builtin): Likewise.
1285 (ix86_expand_unop1_builtin): Renamed to ...
1286 (ix86_expand_unop_vec_merge_builtin): This.
1287
fba7ae09 12882008-05-01 Jan Hubicka <jh@suse.cz>
1289
1290 PR bootstrap/36100
1291 * ipa-inline.c (inline_generate_summary): Make static.
1292 (inline_transform): Do not call inlining at -O0; make static.
1293 * passes.c (execute_todo): Add sanity check.
1294 (execute_one_ipa_transform_pass): Execute proper flags.
1295
c67bf066 12962008-05-01 Eric Botcazou <ebotcazou@adacore.com>
1297
1298 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1299 (DECL_NONADDRESSABLE_P): Likewise.
1300 * alias.c (record_component_aliases): Fix comment.
1301
98cb064a 13022008-05-01 Simon Baldwin <simonb@google.com>
1303
1304 * c-common.h (warn_array_subscript_range): New function.
1305 * c-common.c (warn_array_subscript_range): Ditto.
1306 * tree-vrp.c (check_array_ref): Corrected code to agree with
1307 comment, ignoring only arrays of size 0 or size 1.
1308 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1309
49698f18 13102008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1311
1312 * config/i386/i386.c (ix86_builtin_type): Replace
1313 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1314 (bdesc_args): Updated.
1315 (ix86_init_mmx_sse_builtins): Likewise.
1316 (ix86_expand_args_builtin): Likewise.
1317
1318 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1319 with __v1di.
1320
1321 * doc/extend.texi: Correct __builtin_ia32_palignr.
1322
2424d00f 13232008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1324
1325 PR target/36095
1326 * config/i386/i386.c (bdesc_crc32): Removed.
1327 (ix86_expand_crc32): Likewise.
1328 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1329 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1330 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
1331 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1332 UINT_FTYPE_UINT_UCHAR.
1333 (bdesc_args): Updated. Add crc32 builtins.
1334 (ix86_init_mmx_sse_builtins): Updated.
1335 (ix86_expand_args_builtin): Updated to support subreg.
1336
1337 * doc/extend.texi: Correct __builtin_ia32_crc32di.
1338
68e3904e 13392008-05-01 Jan Hubicka <jh@suse.cz>
1340
1341 * tree-pass.h (opt_pass): Add IPA_PASS.
1342 (varpool_node, cgraph_node): Forward declare.
1343 (ipa_opt_pass): Define.
1344 (pass_ipa_inline): Turn into ipa_opt_pass.
1345 (pass_apply_inline): Remove.
1346 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1347 (apply_inline): Turn into ....
1348 (inline_transform): ... this one.
1349 (inline_generate_summary): New function.
1350 (pass_apply_inline): Remove.
1351 * function.h (ipa_opt_pass): Forward declare structure; typedef;
1352 vector.
1353 (struct function): Add ipa_transforms_to_apply.
1354 * passes.c (register_one_dump_file): Work on IPA_PASS.
1355 (init_optimization_passes): Remove pass_inline_parameters and
1356 pass_apply_inline.
1357 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1358 (execute_one_pass) ... here; apply transforms when possible.
1359 (add_ipa_transform_pass, execute_ipa_summary_asses,
1360 execute_one_ipa_transform_pass): New.
1361 (execute_ipa_pass_list): Update for IPA_PASS type.
1362
95a18f4e 13632008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1364
1365 * config/i386/i386.c (ix86_builtin_type): Add
1366 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1367 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1368 (bdesc_args): Add SSE4a builtins.
1369 (ix86_init_mmx_sse_builtins): Updated.
1370 (ix86_expand_args_builtin): Likewise.
1371 (ix86_expand_builtin): Likewise.
1372
30063220 13732008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1374
1375 * config/i386/i386.c (ix86_builtin_type): Add
1376 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1377 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1378 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1379 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1380 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1381 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1382 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1383 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1384 and DI_FTYPE_DI_DI_INT.
1385 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1386 (ix86_init_mmx_sse_builtins): Updated.
1387 (ix86_expand_args_builtin): Likewise.
1388 (ix86_expand_builtin): Likewise.
1389 (ix86_expand_binop_imm_builtin): Removed.
1390
1391 * doc/extend.texi: Correct __builtin_ia32_palignr128.
1392
acc0a673 13932008-04-30 Richard Guenther <rguenther@suse.de>
1394
1395 PR tree-optimization/32921
1396 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1397
6025a5e6 13982008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
1399
1400 * config/arm/arm.c (arm_unwind_emit): Use
1401 crtl->all_throwers_are_sibcalls instead of
1402 cfun->all_throwers_are_sibcalls.
1403 (arm_output_fn_unwind): Likewise.
1404 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1405 instead of cfun->uses_pic_offset_table.
1406 (frv_expand_prologue): Likewise.
1407 (frv_frame_pointer_required): Likewise.
1408 (frv_expand_fdpic_call): Likewise.
1409 (frv_emit_movsi): Likewise.
1410 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1411 cfun->returns_pcc_struct instead of
1412 current_function_returns_pcc_struct.
1413 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1414 instead of cfun->calls_eh_return.
1415 (m32c_pushm_popm): Likewise.
1416 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1417 "extern" declaration.
1418
912f109f 14192008-04-30 Richard Guenther <rguenther@suse.de>
1420
1421 PR tree-optimization/21636
1422 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1423 constant address.
1424 (evaluate_stmt): Print the likely value.
1425 (ccp_visit_stmt): Avoid excessive vertical spacing.
1426
55c10931 14272008-04-30 Rafael Espindola <espindola@google.com>
1428
1429 * builtins.c (fold_call_expr): Return realret.
1430 * tree-ssa-threadedge.c
1431 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1432 __builtin_object_size.
1433
0bfd146e 14342008-04-30 Seongbae Park <seongbae.park@gmail.com>
1435
1436 * gcc.c (wrapper_string): New variable.
1437 (insert_wrapper): New function.
1438 (execute): New option -wrapper.
1439 * doc/invoke.texi (Overall Options): New driver option -wrapper.
1440
19872d0b 14412008-04-30 Nathan Froyd <froydnj@codesourcery.com>
1442
501ec29a 1443 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1444 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1445 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1446 from...
1447 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
1448 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1449 config/rs6000/e500crtres64gprctr.asm,
1450 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1451 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1452 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1453 config/rs6000/e500crtsav64gprctr.asm,
1454 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1455 config/rs6000/e500crtsavg64gprctr.asm: New files.
1456 * config/rs6000/t-ppccomm: Add build rules for new files.
1457 (LIB2FUNCS_STATIC_EXTRA): Add new files.
1458 * config/rs6000/t-netbsd: Add build rules for new files.
1459 (LIB2FUNCS_STATIC_EXTRA): New variable.
1460 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1461 (CRTSAVRES_DEFAULT_SPEC): Likewise.
1462 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
19872d0b 1463
6f50184d 14642008-04-30 H.J. Lu <hongjiu.lu@intel.com>
1465
1466 * config/i386/i386.c (ix86_builtin_type): Add
1467 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1468 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1469 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1470 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1471 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1472 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1473 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1474 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1475 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1476 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1477 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1478 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1479 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1480 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1481 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1482 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1483 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1484 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1485 V1DI_FTYPE_V2SI_V2SI.
1486 (bdesc_2arg): Moved to ...
1487 (bdesc_args): Here.
1488 (ix86_init_mmx_sse_builtins): Updated.
1489 (ix86_expand_args_builtin): Updated. Take a pointer
1490 to const struct builtin_description. Handle comparison
1491 builtin functions.
501ec29a 1492 (ix86_expand_sse_compare): Take a new argument for swapping operands.
6f50184d 1493 (ix86_expand_builtin): Updated.
1494
1495 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1496 (ssse3_pmaddubsw128): This.
1497 (ssse3_pmaddubswv4hi3): Renamed to ...
1498 (ssse3_pmaddubsw): This.
1499
501ec29a 1500 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
6f50184d 1501 (__builtin_ia32_packssdw128): Likewise.
501ec29a 1502 (__builtin_ia32_packuswb128): Likewise.
6f50184d 1503 (__builtin_ia32_pmaddubsw): Likewise.
1504 (__builtin_ia32_pmaddubsw128): Likewise.
1505
c9686d06 15062008-04-30 Richard Guenther <rguenther@suse.de>
1507
1508 PR tree-optimization/14847
1509 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1510 (recognize_bits_test): Use it.
1511 (recognize_single_bit_test): Likewise.
1512
1fc19b80 15132008-04-30 Martin Jambor <mjambor@suse.cz>
1514
1515 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1516 instead of setting number of formal parameters to zero.
1517 (ipcp_init_stage): Do not set the number of actual parameters to zero
1518 either.
1519 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1520 which are called with variable number of arguments.
1521 (ipcp_insert_stage): Explicitely skipping all nodes which are
1522 called with variable number of arguments.
1523 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
1524 number of parameters.
1525
1526 * ipa-prop.h (struct ipa_node_params): Added flag
1527 called_with_var_arguments
1528 (ipa_set_param_count): Added. Changed sole setter to use it.
1529 (ipa_get_param_count): Added. All readers of param_count
1530 converted to use it instead.
1531 (ipa_set_called_with_variable_arg): Added.
1532 (ipa_is_called_with_var_arguments): Added.
1533 (ipa_get_ith_param): Added. All readers of param_decls converted
1534 to use it instead.
1535 (ipa_set_cs_argument_count): Added, sole writer to argument_count
1536 changed to use it.
1537 (ipa_get_cs_argument_count): Added, all readers of argument_count
1538 changed to cal it.
1539 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
1540 to use it.
1541
1542 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1543 (struct ipcp_lattice): Renamed cval_type to type
1544 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1545
1546 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1547 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1548 (ipcp_insert_stage): Changed the type of variable cvalue to tree
1549 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1550 (build_const_val): Changed the type of parameter cvalue to tree
1551 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1552 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1553
1554 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
1555 constant
1556
1557 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1558 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1559 (ipa_add_method): Renamed to ipa_push_func_to_list
1560 (ipa_remove_method): Renamed to ipa_pop_func_from_list
1561 (ipa_callsite_param_count): Removed.
1562 (ipa_callsite_param_count_set): Removed.
1563 (ipa_callsite_param): Removed.
1564 (ipa_callsite_callee): Removed.
1565 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1566 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1567 (ipa_method_formal_count): Removed.
1568 (ipa_method_formal_count_set): Removed.
1569 (ipa_method_get_tree): Removed.
1570 (ipa_method_tree_map_create): Removed.
1571 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1572 (ipa_create_param_decls_array): Creates the array itself
1573 (ipa_create_param_decls_array): Temporary variable info instead of
1574 a few dereferences.
1575 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1576 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1577 (get_type): Removed.
1578 (ipa_jf_get_info_type): Removed.
1579 (ipa_node_create): Renamed to ipa_create_node_params
1580 (ipa_free): Renamed to ipa_free_all_node_params
1581 (ipa_nodes_create): Renamed to ipa_create_all_node_params
1582 (ipa_edges_create): Renamed to ipa_create_all_edge_args
1583 (ipa_edges_free): Renamed to ipa_free_all_edge_args
1584 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1585 (ipa_free_all_node_params): Deallocation to jump_functions moved to
1586 ipa_free_all_edge_args
1587 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1588 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1589 (ipa_create_methodlist_node): Removed.
1590 (ipa_methodlist_method): Removed.
1591 (ipa_methodlist_method_set): Removed.
1592 (ipa_methodlist_next_method): Removed.
1593 (ipa_methodlist_next_method_set): Removed.
1594 (ipa_method_is_modified): Removed.
1595 (ipa_method_modify_create): Removed.
1596 (ipa_method_modify_init): Temporary variable info instead of a few
1597 dereferences.
1598 (ipa_detect_param_modifications): Temporary variable info instead of
1599 a few dereferences.
1600 (ipa_compute_jump_functions): Temporary variable info instead of
1601 a few dereferences.
1602 (ipa_method_modify_set): Removed.
1603 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1604 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
1605 than craph_node as the first parameter.
1606 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1607 (ipa_method_modify_init): Removed.
1608 (ipa_compute_jump_functions): Added a temp variable instead of
1609 repeatadly dereferencing the cgraph_edge.aux pointer
1610 (ipa_callsite_param_set_type): Removed.
1611 (ipa_compute_jump_functions): i renamed to index and moved to
1612 an inner block
1613 (ipa_callsite_param_set_info_type_formal): Removed.
1614 (ipa_callsite_param_set_info_type): Removed.
1615 (ipa_callsite_param_map_create): Removed.
1616 (ipa_callsite_tree): Removed.
1617 (ipa_callsite_caller): Removed.
1618 (ipa_pop_func_from_list): return_method removed to return_func
1619
1620 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1621 prefixed all values with IPA_. Changed all users.
1622 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
1623 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
1624 and FORMAL_IPATYPE IPA_PASS_THROUGH.
1625 (union parameter_info): Renamed to jump_func_value.
1626 (union jump_func_value): Renamed value to constant
1627 (struct ipa_jump_func): Renamed info_type to value
1628 (struct ipa_node): Renamed to ipa_node_params
1629 (struct ipa_node_params): Renamed ipa_arg_num to param_count
1630 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1631 (struct ipa_node_params): Renamed ipa_mod to modified_flags
1632 (struct ipa_edge): Renamed to ipa_edge_args
1633 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1634 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1635 (struct ipa_methodlist): Renamed to ipa_func_list
1636 (struct ipa_func_list): method_p renamed to node, next_method
1637 renamed to next
1638 (ipa_methodlist_p): Removed, switched all users to struct pointer
1639 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1640
cd30e128 16412008-04-30 Alan Modra <amodra@bigpond.net.au>
1642
1643 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1644 (rs6000_emit_epilogue): Use backchain to restore only when we
1645 have a large frame. Make use of frame pointer to restore if we
1646 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1647
f005400e 16482008-04-29 Paolo Bonzini <bonzini@gnu.org>
1649
1650 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1651 Add mode to zero_extract.
1652 (sign bit tests peepholes): (Ditto.).
1653
ea4dd78d 16542008-04-29 H.J. Lu <hongjiu.lu@intel.com>
1655
1656 * config/i386/i386.c (ix86_builtins): Replace Prescott New
1657 Instructions in comments with SSE3.
1658 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
1659 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1660 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1661 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1662 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1663 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1664 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1665 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1666 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1667 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1668 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1669 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1670 (bdesc_sse_args): Renamed to ...
1671 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1672 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1673 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1674 IX86_BUILTIN_FABSQ.
1675 (bdesc_1arg): Moved to ...
1676 (bdesc_args): Here.
1677 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
1678 Instructions in comments with SSE3.
1679 (ix86_expand_sse_operands_builtin): Renamed to ...
1680 (ix86_expand_args_builtin): This. Updated.
1681 (ix86_expand_unop1_builtin): Update comments.
1682 (ix86_expand_builtin): Updated.
1683
b2a225ba 16842008-04-29 Richard Guenther <rguenther@suse.de>
1685
1686 PR tree-optimization/36078
1687 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1688 Update virtual SSA form after cleaning up the CFG.
1689
f4cd9b29 16902008-04-29 Richard Guenther <rguenther@suse.de>
1691
1692 PR middle-end/15255
1693 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1694
d0cfbbf2 16952008-04-29 Richard Guenther <rguenther@suse.de>
1696
1697 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1698 (compute_may_aliases): Do not call finalize_ref_all_pointers.
1699 (compute_flow_insensitive_aliasing): Do not treat
1700 PTR_IS_REF_ALL pointers special.
1701 (get_smt_for): Likewise.
1702 (may_alias_p): Re-structure.
1703 (is_escape_site): A ref-all pointer conversion is not an escape site.
1704 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1705 PTR_IS_REF_ALL pointers special.
1706 * tree-ssa-structalias.h (struct alias_info): Remove
1707 ref_all_symbol_mem_tag field.
1708 (PTR_IS_REF_ALL): Remove.
1709
c79abec2 17102008-04-29 Richard Guenther <rguenther@suse.de>
1711
1712 PR middle-end/36077
1713 * fold-const.c (extract_muldiv_1): In combining division constants
1714 make sure to never overflow.
1715
d458baea 17162008-04-29 Nick Clifton <nickc@redhat.com>
1717
1718 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1719
13c2c394 17202008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1721
1722 PR bootstrap/35169
1723 * optc-gen.awk: Work around HP-UX/IA awk bug.
1724
f6ecd416 17252008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
1726
1727 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1728 2008-04-25 commit.
1729
e263da54 17302008-04-28 Uros Bizjak <ubizjak@gmail.com>
1731
1732 PR target/36073
1733 * config/i386/i386.md
1734 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1735 Change operand 1 predicate to nonimmediate_operand.
1736
ae093573 17372008-04-28 Jakub Jelinek <jakub@redhat.com>
1738
1739 PR debug/36060
1740 * dwarf2out.c (struct die_struct): Mark as chain_circular through
1741 die_sub field.
1742 * gengtype.c (walk_type, write_func_for_structure): Handle
1743 chain_circular.
1744 * doc/gty.texi: Document chain_circular.
1745
b06d96b5 17462008-04-28 Richard Guenther <rguenther@suse.de>
1747
1748 PR tree-optimization/36066
1749 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1750 SCEV and loop.
1751
a369a55c 17522008-04-28 Uros Bizjak <ubizjak@gmail.com>
1753
1754 PR target/36064
e263da54 1755 * config/i386/i386.md
1756 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
a369a55c 1757 Use match_scratch instead of match_operand for operands 3 and 4.
1758
d88fd237 17592008-04-27 Richard Guenther <rguenther@suse.de>
1760
1761 PR tree-optimization/18754
1762 PR tree-optimization/34223
1763 * tree-pass.h (pass_complete_unrolli): Declare.
1764 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1765 loop size before and after unconditionally of UL_NO_GROWTH in effect.
1766 Rewrite loop into loop closed SSA form if it is not already.
1767 (tree_unroll_loops_completely): Re-structure to iterate over
1768 innermost loops with intermediate CFG cleanups.
1769 Unroll outermost loops only if requested or the code does not grow
1770 doing so.
1771 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1772 loops are available.
1773 (tree_vectorize): Instead do so here.
1774 (tree_complete_unroll): Also unroll outermost loops.
1775 (tree_complete_unroll_inner): New function.
1776 (gate_tree_complete_unroll_inner): Likewise.
1777 (pass_complete_unrolli): New pass.
1778 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1779 uses outside of the loop.
1780 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1781 form if it is available.
1782 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
1783 * passes.c (init_optimization_passes): Schedule complete inner
1784 loop unrolling pass before the first CCP pass after final inlining.
1785
38475469 17862008-04-27 Nathan Sidwell <nathan@codesourcery.com>
1787
1788 * targhooks.h (default_emutls_var_fields,
1789 default_emutls_var_init): Declare.
1790 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
1791 * target.h (struct gcc_target): Add struct emutls member.
1792 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
1793 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
1794 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
1795 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
1796 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
1797 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
1798 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
1799 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
1800 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
1801 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
1802 emit debug information.
1803 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
1804 * varasm.c: Include targhooks.h.
1805 (emutls_object_section, emutls_tmpl_section): New.
1806 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
1807 (EMUTLS_SEPARATOR): New.
1808 (prefix_name): New.
1809 (get_emutls_object_name): New.
1810 (default_emutls_var_fields): New, broken out of ...
1811 (get_emutls_object_type): ... here. Adjust to use target hooks.
1812 (get_emutls_init_templ_addr): Adjust to use target hooks.
1813 (emutls_decl): Adjust to use target hooks.
1814 (emutls_finish): Likewise.
1815 (default_emutls_var_init): New, broken out of ...
1816 (assemble_variable): ... here. Adjust to use target hooks.
1817 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
1818 SECCAT_EMUTLS_TMPL.
1819 * c-common.c (handle_section_attribute): Prevent overriding
1820 sections for emulated tls with special sections.
1821 * config/i386/i386.c (x86_64_elf_select_section): Add
1822 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
1823 (x86_64_elf_unique_section): Likewise.
1824 * config/vxworks.c: Include tree.h.
1825 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
1826 (vxworks_override_options): Set TLS scheme.
ae093573 1827 * doc/tm.texi (Emulated TLS): New node.
38475469 1828
7e3b64b4 18292008-04-26 Simon Baldwin <simonb@google.com>
1830
1831 PR c/35652
1832 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
1833 with propagated string constants.
1834
500d8ed2 18352008-04-26 Uros Bizjak <ubizjak@gmail.com>
1836
1837 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
1838 constraint for operand 2 when operand 0 is memory operand.
1839 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
1840 operand 0 is memory operand.
1841 (fix_trunc<mode>_i387_with_temp): Ditto.
1842 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
1843 operand 2 when operand 1 is memory operand.
1844 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
1845 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
1846 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
1847 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1848 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
1849 operands 2,3 and 4 when operand 1 is memory operand.
1850 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
1851 is memory operand.
1852 (fistdi2_floor_with_temp): Ditto.
1853 (fist<mode>2_floor_with_temp): Ditto.
1854 (fistdi2_ceil_with_temp): Ditto.
1855 (fist<mode>2_ceil_with_temp): Ditto.
1856 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
1857
346c9aaf 18582008-04-26 David Daney <ddaney@avtrex.com>
1859
1860 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
1861 unspec_volitile.
1862 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
1863 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1864 UNSPEC_UPDATE_GOT_VERSION): Renumber.
1865 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
1866 (compare_and_swap_12): New insn.
1867 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
1868 * config/mips/mips.c (mips_force_binary): New function.
1869 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
1870 (mips_expand_compare_and_swap_12): New function.
1871 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
1872
18d50ae6 18732008-04-25 Jan Hubicka <jh@suse.cz>
1874
1875 PR testsuite/35843
1876 * cfgexpand.c (pass_expand): Turn into RTL pass.
1877 * passes.c (execute_one_pass): Do pass typechecking after execution.
1878 * tree-pass.h (pass_expand): Turn into RTL pass.
1879
1880 * function.h (struct rtl_data): Move here fields
1881 accesses_prior_frames, calls_eh_return, saves_all_registers,
1882 has_nonlocal_goto, has_asm_statement, is_thunk,
1883 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
1884 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
1885 arg_pointer_save_area_init from struct function; turn into bool.
1886 (struct function): Move
1887 calls_eh_return, saves_all_registers, has_nonlocal_goto,
1888 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
1889 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
1890 tail_call_emit, arg_pointer_save_area_init
1891 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
1892 (current_function_returns_struct, current_function_returns_pcc_struct,
1893 current_function_calls_setjmp, current_function_calls_alloca,
1894 current_function_accesses_prior_frames,
1895 current_function_calls_eh_return, current_function_is_thunk,
1896 current_function_stdarg, current_function_profile,
1897 current_function_limit_stack, current_function_uses_pic_offset_table,
1898 current_function_uses_const_pool, current_function_has_nonlocal_label,
1899 current_function_saves_all_registers,
1900 current_function_has_nonlocal_goto,
1901 current_function_has_asm_statement): Remove accesor macros.
1902 * ra-conflict.c (global_conflicts): Update.
1903 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
1904 (suitable_for_tail_call_opt_p): Update.
1905 * builtins.c (expand_builtin_return_addr): Update.
1906 (expand_builtin_setjmp_setup): Update.
1907 (expand_builtin_nonlocal_goto): Update.
1908 * final.c (final_start_function): Update.
1909 (profile_function): Update.
1910 (leaf_function_p): Update.
1911 (only_leaf_regs_used): Update.
1912 * df-scan.c (df_get_exit_block_use_set): Update.
1913 * dojump.c (clear_pending_stack_adjust): Update.
1914 * tree-stdarg.c (gate_optimize_stdarg): Update.
1915 * gimple-low.c (lower_function_body): Update.
1916 * global.c (compute_regsets): Update.
1917 (global_alloc): Update.
1918 * dwarf2out.c (dwarf2out_begin_prologue): Update.
1919 * expr.c (expand_assignment): Update.
1920 * dse.c (dse_step0): Update.
1921 (dse_step1): Update.
1922 * c-decl.c (store_parm_decls): Update.
1923 * local-alloc.c (combine_regs): Update.
1924 (find_free_reg): Update.
1925 * function.c (assign_parms_augmented_arg_list): Update.
1926 (assign_parm_find_data_types): Update.
1927 (assign_parms): Update.
1928 (allocate_struct_function): Update.
1929 (expand_function_start): Update.
1930 (expand_function_end): Update.
1931 (get_arg_pointer_save_area): Update.
1932 (thread_prologue_and_epilogue_insns): Update.
1933 (rest_of_match_asm_constraints): Update.
1934 * stor-layout.c (variable_size): Update.
1935 * gcse.c (gcse_main): Update.
1936 (bypass_jumps): Update.
1937 * gimplify.c (gimplify_function_tree): Update.
1938 * calls.c (emit_call_1): Update.
1939 (expand_call): Update.
1940 * bt-load.c (compute_defs_uses_and_gen): Update.
1941 * except.c (sjlj_assign_call_site_values): Update.
1942 (sjlj_emit_function_enter): Update.
1943 (can_throw_external): Update.
1944 (set_nothrow_function_flags): Update.
1945 (expand_builtin_unwind_init): Update.
1946 (expand_eh_return): Update.
1947 (convert_to_eh_region_ranges): Update.
1948 (output_function_exception_table): Update.
1949 * emit-rtl.c (gen_tmp_stack_mem): Update.
1950 * cfgexpand.c (expand_used_vars): Update.
1951 (tree_expand_cfg): Update.
1952 * cfgcleanup.c (rest_of_handle_jump): Update.
1953 * explow.c (allocate_dynamic_stack_space): Update.
1954 * varasm.c (assemble_start_function): Update.
1955 (force_const_mem): Update.
1956 (mark_constant_pool): Update.
1957 * tree-optimize.c (tree_rest_of_compilation): Update.
1958 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
1959 * tree-cfg.c (notice_special_calls): Update.
1960 (is_ctrl_altering_stmt): Update.
1961 (tree_can_make_abnormal_goto): Update.
1962 (tree_purge_dead_abnormal_call_edges): Update.
1963 * config/alpha/predicates.md: Update.
1964 * config/alpha/alpha.c (alpha_sa_mask): Update.
1965 (alpha_sa_size): Update.
1966 (alpha_does_function_need_gp): Update.
1967 (alpha_expand_prologue): Update.
1968 (alpha_start_function): Update.
1969 (alpha_output_function_end_prologue): Update.
1970 (alpha_expand_epilogue): Update.
1971 * config/frv/frv.c (frv_stack_info): Update.
1972 (frv_expand_epilogue): Update.
1973 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
1974 (s390_register_info): Update.
1975 (s390_frame_info): Update.
1976 (s390_init_frame_layout): Update.
1977 (s390_can_eliminate): Update.
1978 (save_gprs): Update.
1979 * config/spu/spu.c (spu_split_immediate): Update.
1980 (need_to_save_reg): Update.
1981 (spu_expand_prologue): Update.
1982 (spu_expand_epilogue): Update.
1983 * config/sparc/sparc.md: Update.
1984 * config/sparc/sparc.c (eligible_for_return_delay): Update.
1985 (sparc_tls_got): Update.
1986 (legitimize_pic_address): Update.
1987 (sparc_emit_call_insn): Update.
1988 (sparc_expand_prologue): Update.
1989 (output_return): Update.
1990 (print_operand): Update.
1991 (sparc_function_ok_for_sibcall): Update.
1992 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
1993 * config/m32r/m32r.md: Update.
1994 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
1995 (m32r_compute_frame_size): Update.
1996 (m32r_expand_prologue): Update.
1997 (m32r_expand_epilogue): Update.
1998 (m32r_legitimize_pic_address): Update.
1999 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2000 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2001 * config/i386/i386.c (ix86_frame_pointer_required): Update.
2002 (gen_push): Update.
2003 (ix86_save_reg): Update.
2004 (ix86_compute_frame_layout): Update.
2005 (ix86_expand_prologue): Update.
2006 (ix86_expand_epilogue): Update.
2007 * config/sh/sh.c (output_stack_adjust): Update.
2008 (calc_live_regs): Update.
2009 (sh5_schedule_saves): Update.
2010 (sh_expand_prologue): Update.
2011 (sh_expand_epilogue): Update.
2012 (sh_setup_incoming_varargs): Update.
2013 (sh_allocate_initial_value): Update.
2014 (sh_get_pr_initial_val): Update.
2015 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2016 * config/sh/sh.md (label:): Update.
2017 * config/avr/avr.c (out_movhi_mr_r): Update.
2018 * config/crx/crx.h (enum): Update.
2019 * config/xtensa/xtensa.h (along): Update.
2020 * config/stormy16/stormy16.c Update.
2021 (xstormy16_compute_stack_layout): Update.
2022 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2023 (fr30_expand_prologue): Update.
2024 * config/cris/cris.c (cris_conditional_register_usage): Update.
2025 (cris_reg_saved_in_regsave_area): Update.
2026 (cris_initial_frame_pointer_offset): Update.
2027 (cris_simple_epilogue): Update.
2028 (cris_expand_prologue): Update.
2029 (cris_expand_epilogue): Update.
2030 (cris_expand_pic_call_address): Update.
2031 (cris_asm_output_symbol_ref): Update.
2032 (cris_asm_output_label_ref): Update.
2033 * config/cris/cris.md Update.
2034 * config/iq2000/iq2000.c (compute_frame_size): Update.
2035 (iq2000_expand_epilogue): Update.
2036 * config/mt/mt.h (save_direction): Update.
2037 * config/mn10300/mn10300.c (mn10300_function_value): Update.
2038 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2039 (ia64_secondary_reload_class): Update.
2040 * config/m68k/m68k.c (m68k_save_reg): Update.
2041 (m68k_expand_prologue): Update.
2042 (m68k_expand_epilogue): Update.
2043 (legitimize_pic_address): Update.
2044 * config/rs6000/rs6000.c (rs6000_got_register): Update.
2045 (first_reg_to_save): Update.
2046 (first_altivec_reg_to_save): Update.
2047 (compute_vrsave_mask): Update.
2048 (compute_save_world_info): Update.
2049 (rs6000_stack_info): Update.
2050 (spe_func_has_64bit_regs_p): Update.
2051 (rs6000_ra_ever_killed): Update.
2052 (rs6000_emit_eh_reg_restore): Update.
2053 (rs6000_emit_allocate_stack): Update.
2054 (rs6000_emit_prologue): Update.
2055 (rs6000_emit_epilogue): Update.
2056 (rs6000_output_function_epilogue): Update.
2057 (output_profile_hook): Update.
2058 (rs6000_elf_declare_function_name): Update.
2059 * config/rs6000/rs6000.h (rs6000_args): Update.
2060 * config/rs6000/rs6000.md: Update.
2061 * config/mcore/mcore.c (mcore_expand_prolog): Update.
2062 * config/arc/arc.c (arc_output_function_epilogue): Update.
2063 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2064 * config/darwin.c (machopic_function_base_name): Update.
2065 * config/score/score3.c (score3_compute_frame_size): Update.
2066 (rpush): Update.
2067 (rpop): Update.
2068 (score3_epilogue): Update.
2069 * config/score/score7.c (score7_compute_frame_size): Update.
2070 (score7_prologue): Update.
2071 (score7_epilogue): Update.
2072 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2073 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2074 * config/arm/arm.c (use_return_insn): Update.
2075 (require_pic_register): Update.
2076 (arm_load_pic_register): Update.
2077 (arm_compute_save_reg0_reg12_mask): Update.
2078 (arm_compute_save_reg_mask): Update.
2079 (thumb1_compute_save_reg_mask): Update.
2080 (output_return_instruction): Update.
2081 (arm_output_function_prologue): Update.
2082 (arm_output_epilogue): Update.
2083 (arm_get_frame_offsets): Update.
2084 (arm_expand_prologue): Update.
2085 (thumb_pushpop): Update.
2086 (thumb_exit): Update.
2087 (thumb1_expand_prologue): Update.
2088 (thumb1_expand_epilogue): Update.
2089 (arm_unwind_emit): Update.
2090 (arm_output_fn_unwind): Update.
2091 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2092 * config/arm/arm.md: Update.
2093 * config/pa/pa.md: Update.
2094 * config/pa/pa.c (legitimize_pic_address): Update.
2095 (compute_frame_size): Update.
2096 (hppa_expand_prologue): Update.
2097 (hppa_expand_epilogue): Update.
2098 (borx_reg_operand): Update.
2099 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2100 (HARD_REGNO_RENAME_OK): Update.
2101 * config/mips/mips.c (mips_global_pointer): Update.
2102 (mips_save_reg_p): Update.
2103 (mips_compute_frame_info): Update.
2104 (mips_frame_pointer_required): Update.
2105 (mips_expand_prologue): Update.
2106 (mips_expand_epilogue): Update.
2107 (mips_can_use_return_insn): Update.
2108 (mips_reorg_process_insns): Update.
2109 * config/v850/v850.c (compute_register_save_size): Update.
2110 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2111 * config/mmix/mmix.c (along): Update.
2112 (mmix_expand_epilogue): Update.
2113 * config/bfin/bfin.c (legitimize_pic_address): Update.
2114 (must_save_p): Update.
2115 (stack_frame_needed_p): Update.
2116 (add_to_reg): Update.
2117 (bfin_expand_prologue): Update.
2118 * stmt.c (expand_asm_operands): Update.
2119 * reload1.c (reload): Update.
2120 (init_elim_table): Update.
2121
9407e9ac 21222008-04-25 Bob Wilson <bob.wilson@acm.org>
2123
2124 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2125
f96e219b 21262008-04-25 H.J. Lu <hongjiu.lu@intel.com>
2127
501ec29a 2128 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
f96e219b 2129 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
2130 (mov<mode>): Removed.
2131 (*movv4sf_internal): Likewise.
2132 (*movv2df_internal): Likewise.
2133
29ed6076 21342008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2135
2136 * config.gcc (crx-*-elf): Remove deprecation.
2137
a64de0e6 21382008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
2139
2140 * config/i386/cygming-crtend.c (register_frame_ctor): Register
2141 __gcc_deregister_frame with atexit.
2142 (deregister_frame_dtor): Remove.
2143
d636296f 21442008-04-24 Nathan Froyd <froydnj@codesourcery.com>
ff84f6db 2145 Nathan Sidwell <nathan@codesourcery.com>
2146
48d0a424 2147 * config/rs6000/rs6000.opt (mspe): Remove Var property.
ff84f6db 2148 (misel): Likewise.
48d0a424 2149 * config/rs6000/rs6000.h (rs6000_spe): Declare.
ff84f6db 2150 (rs6000_isel): Likewise.
48d0a424 2151 * config/rs6000/rs6000.c (rs6000_spe): New variable.
ff84f6db 2152 (rs6000_isel): New variable.
48d0a424 2153 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
ff84f6db 2154
d991e6e8 21552008-04-24 Jakub Jelinek <jakub@redhat.com>
2156
2157 PR c++/35758
2158 * c-common.c (handle_vector_size_attribute): Call
2159 lang_hooks.types.reconstruct_complex_type instead of
2160 reconstruct_complex_type.
2161 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2162 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2163 * langhooks.h (struct lang_hooks_for_types): Add
2164 reconstruct_complex_type hook.
2165 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2166 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2167
d43cee80 21682008-04-24 Richard Guenther <rguenther@suse.de>
2169
2170 * c-common.h (check_builtin_function_arguments): Declare.
2171 * c-common.c (validate_nargs): New function.
2172 (check_builtin_function_arguments): Likewise.
2173 * c-typeck.c (build_function_call): Call
2174 check_builtin_function_arguments.
2175 * builtins.c (fold_builtin_classify): Remove error reporting code.
2176 (fold_builtin_unordered_cmp): Likewise.
2177 (fold_builtin_1): Likewise.
2178 (fold_builtin_n): Likewise.
2179
5791999f 21802008-04-24 Jakub Jelinek <jakub@redhat.com>
2181
2182 PR tree-optimization/36008
2183 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2184 the original op1, rather than delta by step.
2185
e06f9c34 21862008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
48d0a424 2187 Sebastian Pop <sebastian.pop@amd.com>
e06f9c34 2188
2189 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2190 eliminate_local_variables_stmt, eliminate_local_variables,
2191 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2192 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2193 of code delimited by two edges in the CFG.
2194 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2195 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2196 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
2197 the case of parallelisation of reductions.
2198 (expr_invariant_in_region_p): New.
2199
2200 * tree-flow.h (gather_blocks_in_sese_region): Declared.
2201 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2202
664af971 22032008-04-24 Ira Rosen <irar@il.ibm.com>
48d0a424 2204 Richard Guenther <rguenther@suse.de>
664af971 2205
2206 PR tree-optimization/36034
2207 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2208 incapable of dealing with loads with gaps.
2209
ced5bc56 22102008-04-24 Rafael Espindola <espindola@google.com>
2211
2212 * tree-flow.h (vrp_evaluate_conditional): Change signature.
2213 * tree-ssa-propagate.c (fold_predicate_in): Update call to
2214 vrp_evaluate_conditional.
2215 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
48d0a424 2216 (vrp_evaluate_conditional): Split the cond argument.
2217 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2218 (simplify_stmt_for_jump_threading): Update call to
ced5bc56 2219 vrp_evaluate_conditional.
2220
06d44c00 22212008-04-24 Ira Rosen <irar@il.ibm.com>
2222
2223 PR tree-optimization/35982
2224 * tree-vect-analyze.c (vect_check_interleaving): Check that the
2225 interleaved data-refs are of the same type.
2226
d351f137 22272008-04-24 Danny Smith <dannysmith@users.net>
2228
48d0a424 2229 * c-format.c (check_format_info_main): Use strncmp rather than a
2230 magic prefix to handle multichar length specs.
d351f137 2231 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2232 Don't prefix "I64" and "I32" with '\0'.
2233
85637477 22342008-04-24 Jakub Jelinek <jakub@redhat.com>
2235
2236 PR target/36015
2237 * config/i386/i386.c (init_cumulative_args): Don't pass anything
2238 in registers for -m32 only if stdarg_p (fntype).
2239
39925406 22402008-04-24 Uros Bizjak <ubizjak@gmail.com>
2241
2242 PR rtl-optimization/36006
2243 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2244 temp to op0 in order to avoid invalid rtx sharing.
2245
c7d4e749 22462008-04-23 Paolo Bonzini <bonzini@gnu.org>
2247
2248 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
2249 check TREE_INVARIANT.
2250 * tree-gimple.c (is_gimple_address): New.
2251 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2252 * tree-gimple.h (is_gimple_address): New.
2253 * tree.h (decl_address_invariant_p): New.
2254 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2255 (build_string): Likewise.
2256 (decl_address_invariant_p): New, from is_gimple_invariant_address.
2257 (tree_invariant_p_1): Likewise.
2258 (save_expr): Use it.
2259 (tree_invariant_p): New.
2260 (skip_simple_arithmetic): Use it.
2261 (stabilize_reference_1): Use it.
2262 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2263 simplify.
2264 (build1_stat): Drop code to compute TREE_INVARIANT.
2265 (build2_stat): Drop code to compute TREE_INVARIANT.
2266 (build3_stat): Drop code to compute TREE_INVARIANT.
2267 (build4_stat): Drop code to compute TREE_INVARIANT.
2268 (build5_stat): Drop code to compute TREE_INVARIANT.
2269 (build7_stat): Drop code to compute TREE_INVARIANT.
2270 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2271 * tree.h (struct tree_base): Remove invariant_flag.
2272 (TREE_INVARIANT): Remove.
2273 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2274 (fold_builtin_expect): Check TREE_CONSTANT.
2275 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2276 * c-tree.h (c_expr_to_decl): Drop third parameter.
2277 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2278 (build_c_cast): Don't set TREE_INVARIANT.
2279 (pop_init_level): Don't set TREE_INVARIANT.
2280 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2281 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2282 TREE_CONSTANT.
2283 (gimplify_init_constructor): Don't set TREE_INVARIANT.
2284 (gimplify_addr_expr): Adjust comment.
2285 * tree-mudflap.c (mf_build_string):
2286 * print-tree.c (print_node): Don't print TREE_INVARIANT.
2287 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2288 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2289 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2290 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2291 * langhooks.h (struct lang_hooks): Drop third parameter from
2292 expr_to_decl.
2293
4f8f2f76 22942008-04-23 Richard Guenther <rguenther@suse.de>
2295
2296 PR tree-optimization/27799
2297 PR tree-optimization/32921
2298 PR tree-optimization/32624
2299 * tree-ssa-structalias.c (merge_smts_into): Only merge the
2300 SMTs aliases and the tag itself into the solution.
2301 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2302 merge the points-to solution back into the SMT aliases.
2303 (may_alias_p): Use alias_set_subset_of instead of
2304 aliases_conflict_p. A pointer which points to
2305 memory with alias set zero may access any variable.
2306
6c711ccf 23072008-04-23 Richard Guenther <rguenther@suse.de>
2308
2309 * alias.c (alias_set_subset_of): Correctly handle asking
2310 if zero is a subset of an alias set with zero child.
2311 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2312 (compute_flow_insensitive_aliasing): Correctly walk all
2313 pointers. Do not unnecessarily union sets.
2314
2802826e 23152008-04-23 Richard Guenther <rguenther@suse.de>
2316
2317 PR middle-end/36021
2318 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2319
1aa0d4ff 23202008-04-22 Tomas Bily <tbily@suse.cz>
2321
39925406 2322 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2323 unreachable case.
2324 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2325 NON_LVALUE_EXPR.
2326 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2327 * tree-ssa-structalias.c (get_constraint_for): Likewise.
2328 * tree-inline.c (estimate_num_insns_1): Likewise.
2329 * varasm.c (const_hash_1, compare_constant, copy_constant)
2330 (compute_reloc_for_constant, output_addressed_constants): Likewise.
2331 * emit-rtl.c (component_ref_for_mem_expr)
2332 (set_mem_attributes_minus_bitpos): Likewise.
2333 * expr.c (highest_pow2_factor, expand_expr_real_1, )
2334 (is_aligning_offset): Likewise.
2335 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2336 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2337 * dojump.c (do_jump): Likewise.
2338 * builtins.c (get_pointer_alignment, get_memory_rtx)
2339 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2340 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1aa0d4ff 2341
08491912 23422008-04-23 Jakub Jelinek <jakub@redhat.com>
2343
2344 PR rtl-optimization/36017
2345 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2346 expanding the library call.
2347
7ded8d6e 23482008-04-22 Ian Lance Taylor <iant@google.com>
2349
2350 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2351 than size_in_bytes.
2352
dd7bfdc0 23532008-04-22 Pat Haugen <pthaugen@us.ibm.com>
2354
2355 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2356 of LR/CTR moves for Power6.
2357
957f873e 23582008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
023c2d03 2359
2360 PR middle-end/36003
2361 * passes.c (init_optimization_passes): Remove
2362 pass_fast_rtl_byte_dce.
2363
6e22f3c7 23642008-04-22 Uros Bizjak <ubizjak@gmail.com>
2365
2366 PR target/29096
2367 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2368 builtin functions to generate faster code.
2369 (_mm_cvtpu16_ps): Ditto.
2370 (_mm_cvtpi32x2_ps): Ditto.
2371
12f2d5e9 23722008-04-22 Nick Clifton <nickc@redhat.com>
2373
2b945500 2374 * common.opt (ftree-loop-distribution): Add Optimization
2375 attribute.
2376
ca852515 2377 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2378 (frv_expand_builtin_va_start): Likewise.
2379
12f2d5e9 2380 * config/arm/arm.c (thumb_find_work_register): Fix location of
2381 argument register count.
2382
2ccdedfd 23832008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2384
2385 Support scheduling for ColdFire V1 and V3 microarchitecture.
2386 Improve scheduling of multiplication instructions.
2387
2388 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
2389 (mac): New instruction attribute.
2390 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2391 (m68k_sched_mac): New variable.
2392 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2393 Handle cfv1 and cfv3.
2394 (max_insn_size): New static variable.
2395 (struct _sched_ib): New type.
2396 (sched_ib): New static variable.
2397 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2398 to fields of 'struct _sched_ib sched_ib'. Update all uses.
2399 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2400 Update.
2401 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2402 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
2403 new variables. Update.
2404 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2405 Add modeling of cfv3 instruction buffer. Update.
2406 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2407 * config/m68k/m68k.h (TUNE_CFV3): New macro.
2408 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2409 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2410 a particular reservation applies to.
2411 (type2): Reorganize attribute values. Rename alu to alu_reg,
2412 alu_l to alu, move_l to omove. Join move to alu. Split mul
2413 to mul_l and mul_w.
2414 (cf_ib_*): Simplify description of instruction buffer.
2415 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2416 (cf_mem): Split into cf_mem1 and cf_mem2.
2417 (cf_v2_move_??): Rename to cfv12_alu_??.
2418 (cf_v2_move_l_??): Rename to cfv12_omove_??.
2419 (cf_v2_mul_??): Remove reservations.
2420 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2421 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2422 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2423 appropriate place.
2424 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2425 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2426 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2427 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2428 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2429 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2430 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2431 expansions of the above reservations for instructions of sizes
2432 1, 2 and 3 words.
2433
a86fc23b 24342008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2435
2436 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2437
fe66e922 24382008-04-21 Adam Nemet <anemet@caviumnetworks.com>
2439
2440 * coverage.c: Include tree-pass.h.
2441 (coverage_counter_alloc): Print da_file_name to the dump file.
2442
957f873e 24432008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
fe66e922 2444
349621f0 2445 * sbitmap.c (sbitmap_range_empty_p): New function.
2446 * sbitmap.h (sbitmap_range_empty_p): New function.
fe66e922 2447 * bitmap.h: Now includes obstack.h.
349621f0 2448
fe66e922 24492008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
957f873e 2450 Kenneth Zadeck <zadeck@naturalbridge.com>
bf1f8fbc 2451
2452 * dbgcnt.def (ra_byte_scan): Added.
2453 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2454 when the last hit happens for a counter.
2455 * timevar.def (TV_DF_BYTE_LR): New variable.
2456 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2457 * passes.c (pass_fast_rtl_byte_dce): New pass.
2458 * fwprop.c (update_df): Added mode to call df_ref_create.
2459 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2460 DF_REF_EXTRACT_OFFSET.
2461 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
2462 DF_BYTE_LR_OUT, df_byte_lr): New macro.
2463 (df_mm): New enum.
2464 (df_ref_extract): Added mode field.
2465 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2466 DF_REF_EXTRACT_OFFSET.
2467 (DF_REF_EXTRACT_MODE): New macro.
2468 (df_byte_lr_bb_info): New structure.
2469 (df_print_byte_regset, df_compute_accessed_bytes,
2470 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2471 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2472 df_byte_lr_simulate_uses,
2473 df_byte_lr_simulate_artificial_refs_at_top,
2474 df_byte_lr_simulate_artificial_refs_at_end,
2475 df_compute_accessed_bytes): New function.
2476 (df_ref_create): Add parameter.
2477 (df_byte_lr_get_bb_info): New inline function.
2478 * df-scan.c (df_ref_record, df_uses_record,
2479 df_ref_create_structure): Added mode parameter.
2480 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
2481 df_defs_record, df_uses_record, df_get_conditional_uses,
2482 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2483 df_entry_block_defs_collect, df_exit_block_uses_collect):
2484 Added mode parameter to calls to df_ref_record, df_uses_record,
2485 df_ref_create_structure.
39925406 2486 (df_ref_equal_p, df_ref_compare): Added test for modes.
bf1f8fbc 2487 (df_ref_create_structure): Added code to set mode. Renamed
2488 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2489 DF_REF_EXTRACT_OFFSET.
2490 * df-core.c (df_print_byte_regset): New function.
2491 * df-byte-scan.c: New file.
2492 * df-problems.c (df_rd_transfer_function): Removed unnecessary
2493 calls to BITMAP_FREE.
2494 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2495 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2496 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
2497 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
2498 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2499 df_byte_lr_local_compute, df_byte_lr_init,
2500 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
2501 df_byte_lr_transfer_function, df_byte_lr_free,
2502 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2503 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
2504 df_byte_lr_simulate_uses,
2505 df_byte_lr_simulate_artificial_refs_at_top,
2506 df_byte_lr_simulate_artificial_refs_at_end): New function.
2507 * dce.c (byte_dce_process_block): New function.
2508 (dce_process_block): au is now passed in rather than computed
2509 locally. Changed loops that look at artificial defs to not look
2510 for conditional or partial ones, because there never are any.
2511 (fast_dce): Now is able to drive byte_dce_process_block or
2512 dce_process_block depending on the kind of dce being done.
2513 (rest_of_handle_fast_dce): Add parameter to fast_dce.
2514 (rest_of_handle_fast_byte_dce): New function.
2515 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2516 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2517
798b415d 25182008-04-21 Daniel Franke <franke.daniel@gmail.com>
2519
2520 PR fortran/35019
2521 * gcc.h: Added fortran options that take arguments to
2522 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2523 macros.
2524
5749b7fb 25252008-04-20 Eric Botcazou <ebotcazou@adacore.com>
2526
2527 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2528 scalarization if on the LHS and not a full access.
2529
0c8e56a8 25302008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2531
5749b7fb 2532 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
0c8e56a8 2533
d31e54f1 25342008-04-18 Rafael Espindola <espindola@google.com>
5749b7fb 2535
d31e54f1 2536 * tree-vrp.c (find_case_label_index): Fix the binary search.
2537 (find_case_label_range): New.
2538 (vrp_visit_switch_stmt): Use find_case_label_range.
2539 (simplify_switch_using_ranges): Use find_case_label_range.
2540
65903740 25412008-04-18 Eric Botcazou <ebotcazou@adacore.com>
2542
2543 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2544 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2545
662dbd74 25462008-04-18 Tom Tromey <tromey@redhat.com>
2547
2548 PR libcpp/15500:
2549 * doc/cpp.texi (Implementation-defined behavior): Mention
2550 -finput-charset.
2551
9fa14f44 25522008-04-18 Ian Lance Taylor <iant@google.com>
2553
2554 * fold-const.c (pointer_may_wrap_p): New static function.
2555 (fold_comparison): Add another test for pointer overflow. Use
2556 pointer_may_wrap_p to disable some false positives.
2557
924bbf02 25582008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
2559
2560 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2561 (fname_as_string): Match updated cpp_interpret_string prototype.
2562 (fix_string_type): Support char16_t* and char32_t*.
2563 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2564 derivative) nodes. Register as builtin if C++0x.
2565 (c_parse_error): Support CPP_CHAR{16,32}.
2566 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
2567 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2568 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2569 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2570 CTI_CHAR32_ARRAY_TYPE>: New elements.
2571 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2572 char32_type_node, signed_char32_type_node, char16_array_type_node,
2573 char32_array_type_node): New defines.
2574 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2575 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2576 (lex_string): Support CPP_STRING{16,32}, match updated
2577 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2578 (lex_charconst): Support CPP_CHAR{16,32}.
2579 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2580 and CPP_STRING{16,32}.
2581
6a88da51 25822008-04-18 Paolo Bonzini <bonzini@gnu.org>
2583
2584 PR bootstrap/35457
2585 * aclocal.m4: Regenerate.
2586 * configure: Regenerate.
2587
edb7afe8 25882008-04-18 Jan Hubicka <jh@suse.cz>
2589
2590 * except.c (dw2_size_of_call_site_table,
2591 sjlj_size_of_call_site_table): Use vector API for call_site_record.
2592
2593 * cgraphbuild.c (build_cgraph_edges): Update.
2594 * tree-pass.h: Update comment.
2595 * final.c (leaf_function_p): Update.
2596 (leaf_renumber_regs): Update.
2597 (rest_of_clean_state): Update.
2598 * omp-low.c (expand_omp_parallel): Update.
2599 * ipa-reference.c (analyze_function): Update.
2600 * reorg.c (find_end_label): Update.
2601 (optimize_skip): Update.
2602 (fill_simple_delay_slots): Update.
2603 (fill_simple_delay_slots): Update.
2604 (make_return_insns): Update.
2605 (dbr_schedule): Update.
2606 * gimple-low.c (record_vars_into): Update.
2607 * cfgbuild.c (make_edges): Update.
2608 * function.c (assign_stack_local): Update.
2609 (assign_parm_adjust_stack_rtl): Update.
2610 (locate_and_pad_parm): Update.
2611 (allocate_struct_function): Do not initialize stack_alignment_needed
2612 and preferred_stack_boundary here.
2613 (stack_protect_prologue): Update.
2614 (stack_protect_epilogue): Update.
2615 (expand_function_start): Initialize stack_alignment_needed,
2616 preferred_stack_boundary and max_jumptable_ents.
2617 (expand_function_end): Update.
2618 (free_after_compilation): Do not NULLify epilogue_delay_list.
2619 * function.h (struct rtl_data): Add stack_protect_guard,
2620 stack_alignment_needed,
2621 preferred_stack_boundary, epilogue_delay_list.
2622 (struct function): Remove value_histograms, stack_alignment_needed,
2623 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2624 last_label_uid,
2625 unexpanded_var_list, stack_protect_guard.
2626 (current_function_epilogue_delay_list): Remove.
2627 * ipa-type-escape.c (analyze_function): Update.
2628 * gimplify.c (pop_gimplify_context): Update comment.
2629 * calls.c (expand_call): Update.
2630 (emit_library_call_value_1): Update.
2631 * except.c (set_nothrow_function_flags): Update.
2632 * cfgexpand.c (get_decl_align_unit): Update.
2633 (create_stack_guard): Update.
2634 (estimated_stack_frame_size): Update.
2635 (expand_used_vars): Update.
2636 (tree_expand_cfg): Free histogram earliers, init expansion variables.
2637 * explow.c (allocate_dynamic_stack_space): Update.
2638 * tree-ssa-live.c (remove_unused_locals): Update.
2639 * varasm.c (mark_constant_pool): Update.
2640 * tree-inline.c (remap_decls): Update.
2641 (initialize_cfun): Update.
2642 (declare_return_variable): Update.
2643 (inline_forbidden_p): Update.
2644 (expand_call_inline): Update.
2645 (declare_inline_vars): Update.
2646 (tree_function_versioning): Update.
2647 * tree-flow.h (value_histograms): New.
2648 (VALUE_HISTOGRAMS): New macro.
2649 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2650 last_label_uid.
2651 * tree-cfg.c (set_bb_for_stmt): Update.
2652 (replace_by_duplicate_decl): Update.
2653 (move_block_to_fn): Update.
2654 (new_label_mapper): Update.
2655 (dump_function_to_file): Update.
2656 * ipa-struct-reorg.c (build_data_structure): Update.
2657 * cfgrtl.c (print_rtl_with_bb): Update.
2658 * reload1.c (reload): Update.
2659 (reload): Update.
2660 * config/i386/i386.c (setup_incoming_varargs_64,
2661 ix86_compute_frame_layout): Update.
2662 * config/arc/arc.c (arc_output_function_epilogue): Update.
2663
4f364038 26642008-04-18 Marius Strobl <marius@FreeBSD.org>
2665
2666 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2667 for FreeBSD as well.
2668 * gthr-posix95.h: Likewise.
2669
a6c18cd6 26702008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
2671
2672 PR rtl-optimization/35838
2673 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2674 out the byte offset of the first subreg.
2675
cdb04b84 26762008-04-17 Uros Bizjak <ubizjak@gmail.com>
2677
2678 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2679 to split_ti instead of three separate calls with single member arrays.
2680 (subti3 splitter): Ditto.
2681 (adddi3 splitter): Ditto with split_di.
2682 (subdi3 splitter): Ditto.
2683 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2684 two separate calls with single member arrays. Swap match_dup
2685 operands 1 and 2 to better fit into the array.
2686 (negdi2 splitter): Ditto with split_di.
2687 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
2688 two separate calls with single member arrays. Swap match_dup operands
2689 6 and 7 to better fit into the array.
2690
382e3eba 26912008-04-17 H.J. Lu <hongjiu.lu@intel.com>
2692
2693 * config/i386/i386.c (sse_builtin_type): New.
2694 (bdesc_sse_args): Likewise.
2695 (bdesc_sse_3arg): Removed.
2696 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2697 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2698 IX86_BUILTIN_ROUNDPS.
2699 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
2700 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
2701 IX86_BUILTIN_ROUNDPS.
2702 (ix86_expand_sse_4_operands_builtin): Removed.
2703 (ix86_expand_sse_operands_builtin): New.
2704 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2705 and CODE_FOR_sse4_1_roundps.
2706 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2707 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
2708
0dd5aca6 27092008-04-17 Alan Modra <amodra@bigpond.net.au>
2710
2711 PR target/35907
2712 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2713 regs before frame pop when needed. If use_backchain_to_restore_sp
2714 then load backchain into a temp reg to restore vr and vrsave. Add
2715 code to restore vr after frame pop if possible.
2716
659ce413 27172008-04-17 Richard Guenther <rguenther@suse.de>
2718
2719 * tree-vn.c (expressions_equal_p): Do not check type
2720 equality or compatibility before calling operand_equal_p.
2721 * fold-const.c (operand_equal_p): Check equivalence of
2722 integer constants before bailing out due to signedness or
2723 precision differences.
2724 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2725 spurious differences in type qualification. Ignore types
2726 for COMPONENT_REFs at all.
2727
9037a84c 27282008-04-17 Christian Bruel <christian.bruel@st.com>
2729
2730 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2731 msw_skip comparison.
2732
520c4c09 27332008-04-16 Jakub Jelinek <jakub@redhat.com>
2734
e264d515 2735 PR c/35739
2736 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2737 reg type.
2738
520c4c09 2739 PR tree-optimization/35899
2740 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2741 rather than TREE_OPERAND.
2742
5628aad4 27432008-04-16 Uros Bizjak <ubizjak@gmail.com>
2744
2745 PR target/35944
2746 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2747 temporary registers. Change operand predicate to general_operand.
2748 (remainderxf3): Ditto.
2749
00ae4124 27502008-04-16 Richard Guenther <rguenther@suse.de>
2751
2752 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2753 * tree-affine.c (aff_combination_expand): Look through some
2754 conversions.
2755
7df7561b 27562008-04-15 Doug Kwan <dougkwan@google.com>
2757
2758 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2759 for hex printing.
2760 * tree-pretty-print.c (dump_generic_node): Ditto.
2761 * final.c (output_addr_const): Ditto.
2762 * dwarf2out.c (output_cfi): Ditto.
2763 * c-pretty-print.c (pp_c_integer_constant): Ditto.
2764 * print-rtl.c (print_rtx): Ditto.
2765 * print-tree.c (print_node_brief, print_node): Ditto.
2766 * c-common.c (match_case_to_enum_1): Ditto.
2767 * sched-vis.c (print_value): Ditto.
2768 * config/i386/i386.c (print_operand): Cast to long unsigned int
2769 for hex printing.
2770
c5aaf380 27712008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
2772 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
2773 MS Windows VirtualProtect function.
2774
4dd3de56 27752008-04-15 Jan Hubicka <jh@suse.cz>
2776
2777 * gengtype.c (write_root): Param_is argument is OK.
2778 * expr.c (expand_expr_real_1): Update call of get_exception_*.
2779 * function.h: Include varray.h
2780 (rtl_eh): New stucture based on except.c one.
2781 (call_site_record): New forward declaration and vector type.
2782 * calls.c (emit_call_1): Do not call
2783 note_current_region_may_contain_throw.
2784 * except.c (eh_status): Remove cur_region, try_region since they are
2785 unused.
2786 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
2787 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
2788 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
2789 Remove call_site_data_used, call_site_data_size.
2790 Turn call_site_record into vector in function.h.
2791 (note_current_region_may_contain_throw): Remove.
2792 (get_exception_pointer, get_exception_filter): Do not take struct
2793 function argument; update.
2794 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
2795 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
2796 build_post_landing_pads, dw2_build_landing_pads,
2797 sjlj_assign_call_site_values, sjlj_mark_call_sites,
2798 sjlj_emit_function_enter, sjlj_emit_function_enter,
2799 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
2800 sjlj_build_landing_pads, finish_eh_generation,
2801 remove_exception_handler_label, remove_eh_handler,
2802 maybe_remove_eh_handler, add_reachable_handler,
5628aad4 2803 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
2804 add_action_record, collect_one_action_chain, add_call_site,
2805 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4dd3de56 2806 sjlj_output_call_site_table, output_function_exception_table,
2807 * except.h (note_current_region_may_contain_throw): Remove
2808 (get_exception_pointer, get_exception_filter): Do not take struct
2809 function argument.
2810 * Makefile.in (GTFILES): Put varargs before struct function.
2811
220322c1 28122008-04-15 Eric Botcazou <ebotcazou@adacore.com>
2813
2814 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
2815 punt for STRING_CST.
2816 (get_constraint_for): Deal with STRING_CST here instead.
2817
fc50275a 28182008-04-15 Richard Guenther <rguenther@suse.de>
2819
2820 * tree-ssa-propagate.c (substitute_and_fold): Substitute
2821 statements in a basic-block with a backward walk. Do not
2822 substitute into dead statements but instead remove those.
2823
77975172 28242008-04-15 Richard Guenther <rguenther@suse.de>
2825
2826 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2827 to zero, thus disable creation of SFTs.
2828
154edec0 28292008-04-15 Eric Botcazou <ebotcazou@adacore.com>
2830
2831 * tree-predcom.c (suitable_reference_p): Return false if the
2832 reference can throw.
2833
1f93c018 28342008-04-15 Jakub Jelinek <jakub@redhat.com>
2835
2836 PR c/35751
2837 * c-decl.c (finish_decl): If extern or static var has variable
2838 size, set TREE_TYPE (decl) to error_mark_node.
2839
d14c123b 28402008-04-15 Rafael Espindola <espindola@google.com>
2841
1f93c018 2842 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d14c123b 2843 variable arg1.
2844
fb05ee87 28452008-04-15 Richard Guenther <rguenther@suse.de>
2846
2847 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
2848 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
2849 (visit_reference_op_load): Do walk vuse-vdef chains on
2850 vn_reference_lookup.
2851 (visit_reference_op_store): But do not here.
2852 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
2853 vn_reference_lookup.
2854 (vn_lookup_with_vuses): But do so here.
2855
d0fe3bd7 28562008-04-14 Ian Lance Taylor <iant@google.com>
2857
2858 * fold-const.c (fold_overflow_warning): Remove assertion.
2859
b71600b1 28602008-04-15 Ben Elliston <bje@au.ibm.com>
2861
2862 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
2863 temp1 local variables.
2864
28652008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
3c3b31c6 2866
2867 PR target/35661
2868 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
2869 ".text.unlikely" section as executable.
2870
aaff414b 28712008-04-14 James E. Wilson <wilson@tuliptree.org>
2872
2873 * config/ia64/ia64.c (rtx_needs_barrier): Handle
2874 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
2875 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
2876 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
2877 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
2878 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
2879 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
2880
e867fa7f 28812008-04-14 Ian Lance Taylor <iant@google.com>
2882
2883 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
2884 * fold-const.c (fold_comparison): If appropriate, test
2885 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
2886 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
2887 reassociating a pointer type.
2888 * doc/invoke.texi (Optimize Options): Document that
2889 -fstrict-overflow applies to pointer wraparound.
2890
393edb51 28912008-04-13 Jan Hubicka <jh@suse.cz>
2892
2893 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
2894
415d43a4 28952008-04-12 Andrew Pinski <pinskia@gmail.com>
2896
2897 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
2898 we are going to "save the world".
2899
8c6db08a 29002008-04-13 Hans-Peter Nilsson <hp@axis.com>
2901
2902 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
2903 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
2904 operand 0 constraint, not "=".
2905
1f6c309f 29062008-04-11 James E. Wilson <wilson@tuliptree.org>
2907
2908 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
2909
07509ef3 29102008-04-11 H.J. Lu <hongjiu.lu@intel.com>
2911
2912 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
2913 of size of positions_needed * CHAR_BIT.
2914
4e43e20a 29152008-04-11 H.J. Lu <hongjiu.lu@intel.com>
2916
2917 PR middle-end/35897
2918 * dse.c (store_info): Change positions_needed to unsigned
2919 HOST_WIDE_INT.
2920 (lowpart_bitmask): New.
2921 (record_store): Cast to unsigned HOST_WIDE_INT for
2922 positions_needed. Assert width <= size of positions_needed *
2923 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
2924 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
2925 lowpart_bitmask to set mask.
2926
87943377 29272008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
2928
2929 * config/bfin/constraints.md: New file.
2930 * config/bfin/bfin.md: Include it.
2931 (adddi3): Use satisfies_constraint functions instead of the old macros.
2932 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
2933 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
2934 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
2935 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
2936 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
2937 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
2938 EXTRA_CONSTRAINT): Delete.
2939 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
2940 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
2941 of the old macros.
2942 * config/bfin/bfin.c: Include "tm-constrs.h".
2943 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
2944 Use satisfies_constraint functions instead of the old macros.
2945 * doc/md.texi (Blackfin Constraints): Update file name reference.
2946
ffeeba75 29472008-04-11 Richard Guenther <rguenther@suse.de>
2948
2949 PR tree-optimization/35869
2950 * tree-vrp.c (execute_vrp): Move switch statement update after
2951 jump threading. Schedule another cfg cleanup run.
2952
1ccba7b7 29532008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
2954
2955 PR c/35744
2956 * attribs.c (decl_attributes): Return early on errorneous node.
2957
83901169 29582008-04-10 Oleg Ryjkov <olegr@google.com>
2959
2960 * tree.h (struct tree_base): Added a new flag default_def_flag.
2961 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
2962
fc7383ad 29632008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
2964
2965 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
2966
4f0b6f04 29672008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2968
2969 PR target/35768
2970 * pa.md: Define mode iterator P. Define mode attribute dwc.
2971 (dcacheflush): Update pattern to use iterator P and attribute dwc.
2972 (icacheflush): Likewise.
2973 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
2974 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
2975
5dfbd18f 29762008-04-11 Ben Elliston <bje@au.ibm.com>
2977
2978 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
2979
984bd637 29802008-04-10 Rafael Espindola <espindola@google.com>
2981
1f93c018 2982 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
984bd637 2983 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
2984 (extract_range_from_expr): The same.
2985
40e4a59d 29862008-04-10 Adam Nemet <anemet@caviumnetworks.com>
2987
2988 * config/mips/mips.md (GPR2): New mode iterator.
2989 (seq): Add comment.
2990 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
2991 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
2992 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
2993 Rewrite these to take two modes, the mode of comparison and the
2994 mode of the destination.
2995 * config/mips/mips.c (mips_expand_scc): Instead of having
2996 paradoxical subreg as destination, expand "narrowing" scc if mode
2997 of comparison is SI and target is requested in DI mode.
2998 (mips_emit_int_order_test): Update comment. Make mode of
2999 comparison match CMP0 rather than TARGET. When creating inverse
3000 target use mode of TARGET.
3001
44d32dba 30022008-04-10 Adam Nemet <anemet@caviumnetworks.com>
3003
3004 * gcov-dump.c (tag_summary): Only print summaries for the first
3005 GCOV_COUNTERS_SUMMABLE counters.
3006
f9162d6c 30072008-04-10 Uros Bizjak <ubizjak@gmail.com>
3008
3009 * config/i386/i386.md (absneg): New code iterator.
3010 (absnegprefix): New code attribute.
3011 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3012 patterns using absneg code iterator.
3013 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3014 using absneg code iterator.
3015 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3016 *neg<mode>2 patterns using absneg code iterator.
3017 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3018 *negextendsfdf2 patterns using absneg code iterator.
3019 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3020 *negextendsfxf2 patterns using absneg code iterator.
3021 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3022 *negextendsfdf2 patterns using absneg code iterator.
3023 * config/i386/sse.md (<code><mode>2): Macroize expander from
3024 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
3025
175ddbd8 30262008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
3027
3028 * config/s390/s390.h: Remove the remains of the recent search
3029 & replace action of current_function_outgoing_args_size.
3030
5c919262 30312008-04-10 Ira Rosen <irar@il.ibm.com>
3032
3033 PR tree-optimization/35821
3034 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3035 NEW_STMT_LIST is not NULL.
3036
f3b662a5 30372008-04-09 David Edelsohn <edelsohn@gnu.org>
3038
3039 PR libstdc++/35597
3040 * toplev.c (process_options): Remove -ffunction-sections debugging
3041 warning.
3042
eeadedeb 30432008-04-09 Peter Bergner <bergner@vnet.ibm.com>
3044
3045 PR middle-end/PR28690
3046 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3047 than gen_rtx_fmt_ee to perform more canonicalizations.
3048
c4c94b80 30492008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3050
3051 PR driver/35665
3052 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3053
04ba083d 30542008-04-09 Richard Guenther <rguenther@suse.de>
3055
3056 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3057 (dump_function_to_file): Dump function arguments with types.
3058
ff5dd140 30592008-04-08 Richard Guenther <rguenther@suse.de>
3060
3061 * fold-const.c (fold_widened_comparison): Do not allow
3062 sign-changes that change the result.
3063
d44615ce 30642008-04-08 Janis Johnson <janis187@us.ibm.com>
3065
3066 PR target/35839
3067 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3068 kinds of indirect references.
3069
b3b9cde3 30702008-04-08 David Edelsohn <edelsohn@gnu.org>
3071
3072 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3073 GNU Fortran language string.
3074
18f22ec3 30752008-04-08 Rafael Espindola <espindola@google.com>
3076
3077 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3078 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3079 * tree.h (tree_call_nonnegative_warnv_p): New.
3080
a9f6414b 30812008-04-08 Jan Hubicka <jh@suse.cz>
3082
3083 * function.c (free_after_compilation): Clear out regno_reg_rtx
3084 pointer.
3085
d7cbf087 30862008-04-08 Peter Bergner <bergner@vnet.ibm.com>
3087
3088 Revert
3089 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3090
3091 PR middle-end/PR28690
3092 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3093 same precedence as REG_POINTER and MEM_POINTER operands.
3094
63a29e85 30952008-04-08 Richard Guenther <rguenther@suse.de>
3096
3097 PR middle-end/35834
3098 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3099 for adding index to base.
3100
11d6399c 31012008-04-08 Kai Tietz <kai.tietz@onevision.com>
3102
3103 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3104 (MINGW_ENABLE_EXECUTE_STACK): New.
3105 (IN_LIBGCC2): For libgcc include windows.h file for
3106 function declarations.
3107
fbedf334 31082008-04-08 Hans-Peter Nilsson <hp@axis.com>
3109
3110 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3111 and tem2 if tem1 is not a REG or MULT.
3112
abe32cce 31132008-04-08 Jan Hubicka <jh@suse.cz>
3114
3115 * function.h (incomming_args): Break out of struct function.
3116 (function_subsections): Break out of struct function.
3117 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3118 return_rtx and hard_reg_initial_vals from struct function.
3119 Kill inl_max_label_num.
3120 (current_function_pops_args, current_function_args_info,
3121 current_function_args_size, current_function_args_size,
3122 current_function_pretend_args_size,
3123 current_function_outgoing_args_size,
3124 current_function_internal_arg_pointer, current_function_return_rtx):
3125 Kill compatibility accestor macros.
3126 * builtins.c (expand_builtin_apply_args_1): Update.
3127 (expand_builtin_next_arg): Update.
3128 * df-scan.c (df_get_call_refs): Update.
3129 * dbxout.c (dbxout_function_end): Update.
3130 * dwarf2out.c (dwarf2out_switch_text_section): Update.
3131 (output_line_info): Update.
3132 (secname_for_decl): Update.
3133 (dwarf2out_var_location): Update.
3134 * function.c (free_after_compilation): Update.
3135 (assign_parm_find_stack_rtl): Update.
3136 (assign_parms): Update.
3137 (expand_dummy_function_end): Update.
3138 (expand_function_end): Update.
3139 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3140 (expand_call): Update.
3141 (emit_library_call_value_1): Update.
3142 (store_one_arg): Update.
3143 * varasm.c (initialize_cold_section_name): Update.
3144 (unlikely_text_section): Update.
3145 (unlikely_text_section_p): Update.
3146 (assemble_start_function): Update.
3147 (assemble_end_function): Update.
3148 (default_section_type_flags): Update.
3149 (switch_to_section): Update.
3150 * integrate.c (set_decl_abstract_flags): Update.
3151 (get_hard_reg_initial_val): Update.
3152 (has_hard_reg_initial_val): Update.
3153 (allocate_initial_values): Update.
3154 * resource.c (init_resource_info): Update.
3155 * config/alpha/alpha.c (NUM_ARGS): Update.
3156 (direct_return): Update.
3157 (alpha_va_start): Update.
3158 (alpha_sa_size): Update.
3159 (alpha_initial_elimination_offset): Update.
3160 (alpha_expand_prologue): Update.
3161 (alpha_start_function): Update.
3162 (alpha_expand_epilogue): Update.
3163 (unicosmk_initial_elimination_offset):
3164 * config/alpha/alpha.md (call expander): Update.
3165 * config/s390/s390.c (s390_register_info): Update.
3166 (s390_register_info): Update.
3167 (s390_frame_info): Update.
3168 (s390_initial_elimination_offset): Update.
3169 (s390_build_builtin_va_list): Update.
3170 (s390_va_start): Update.
3171 * config/spu/spu.c (direct_return): Update.
3172 (spu_expand_prologue): Update.
3173 (spu_initial_elimination_offset): Update.
3174 (spu_build_builtin_va_list): Update.
3175 (spu_va_start): Update.
3176 * config/sparc/sparc.c (sparc_init_modes): Update.
3177 (sparc_compute_frame_size): Update.
3178 (function_value): Update.
3179 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3180 * config/i386/i386.md (return expander): Update.
3181 * config/i386/i386.c (ix86_va_start): Update.
3182 (ix86_can_use_return_insn_p): Update.
3183 (ix86_compute_frame_layout): Update.
3184 (ix86_expand_epilogue): Update.
3185 * config/sh/sh.c (output_stack_adjust): Update.
3186 (calc_live_regs): Update.
3187 (sh_expand_prologue): Update.
3188 (sh_builtin_saveregs): Update.
3189 (sh_va_start): Update.
3190 (initial_elimination_offset): Update.
3191 (sh_allocate_initial_value): Update.
3192 (sh_function_ok_for_sibcall): Update.
3193 (sh_get_pr_initial_val): Update.
3194 * config/sh/sh.md (return expander): Update.
3195 * config/avr/avr.c (frame_pointer_required_p): UPdate.
3196 * config/crx/crx.c (crx_compute_frame): UPdate.
3197 (crx_initial_elimination_offset): UPdate.
3198 * config/xtensa/xtensa.c (compute_frame_size): Update
3199 (xtensa_builtin_saveregs): Update.
3200 (xtensa_va_start): Update.
3201 (order_regs_for_local_alloc): Update.
3202 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3203 (xstormy16_expand_builtin_va_start): Update.
3204 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3205 * config/m68hc11/m68hc11.md (return expanders): Update.
3206 * config/m68hc11/m68hc11.c (expand_prologue): Update.
3207 (expand_epilogue): Update.
3208 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3209 (cris_simple_epilogue): Update.
3210 (cris_expand_prologue): Update.
3211 (cris_expand_epilogue): Update.
3212 * config/iq2000/iq2000.c (iq2000_va_start): Update.
3213 (compute_frame_size): Update.
3214 * config/mt/mt.c (mt_compute_frame_size): Update.
3215 * config/mn10300/mn10300.c (expand_prologue): Update.
3216 (expand_epilogue): Update.
3217 (initial_offset): Update.
3218 (mn10300_builtin_saveregs):
3219 * config/mn10300/mn10300.md (return expander): Update.
3220 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3221 (ia64_initial_elimination_offset): Update.
3222 (ia64_initial_elimination_offset): Update.
3223 (ia64_expand_prologue): Update.
3224 * config/m68k/m68k.md (return expander): Update.
3225 * config/rs6000/rs6000.c (rs6000_va_start): Update.
3226 (rs6000_stack_info): Update.
3227 * config/mcore/mcore.c (layout_mcore_frame): Update.
3228 (mcore_expand_prolog): Update.
3229 * config/arc/arc.c (arc_compute_frame_size): Update.
3230 * config/score/score3.c (score3_compute_frame_size): Update.
3231 * config/score/score7.c (score7_compute_frame_size): Update.
3232 * config/arm/arm.c (use_return_insn): Update.
3233 (thumb_find_work_register): Update.
3234 (arm_compute_save_reg_mask): Update.
3235 (arm_output_function_prologue): Update.
3236 (arm_output_epilogue): Update.
3237 (arm_size_return_regs): Update.
3238 (arm_get_frame_offsets): Update.
3239 (arm_expand_prologue): Update.
3240 (thumb_exit): Update.
3241 (thumb_unexpanded_epilogue): Update.
3242 (thumb1_output_function_prologue): Update.
3243 * config/pa/pa.md (return expander): Update.
3244 * config/pa/pa.c (compute_frame_size): Update.
3245 (hppa_builtin_saveregs): Update.
3246 * config/mips/mips.c (mips_va_start): Update.
3247 (mips16_build_function_stub): Update.
3248 (mips_compute_frame_info): Update.
3249 (mips_restore_gp): Update.
3250 (mips_output_function_prologue): Update.
3251 (mips_expand_prologue): Update.
3252 * config/v850/v850.c (compute_frame_size): Update.
3253 (expand_prologue): * config/mmix/mmix.c (along): update.
3254 (mmix_initial_elimination_offset): update.
3255 (mmix_reorg): update.
3256 (mmix_use_simple_return): update.
3257 (mmix_expand_prologue): update.
3258 (mmix_expand_epilogue): Update.
3259 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3260 (emit_link_insn): Update.
3261
cb373d8c 32622008-04-08 Anatoly Sokolov <aesok@post.ru>
3263
3264 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
3265 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
3266 instructions.
3267 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
3268 atmega103 device.
3269
fd6ffb7c 32702008-04-07 Jan Hubicka <jh@suse.cz>
3271
3272 * function.h (rtl): Rename to x_rtl.
3273 (crtl): New define.
3274 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3275 frame_offset, stack_check_probe_note, arg_pointer_save_area,
3276 used_temp_slots avail_temp_slots, temp_slot_level,
3277 nonlocal_goto_handler_labels): Update accesstors.
3278 (rtl): New global variable.
3279 (struct function): Move some fileds to rtl_data.
3280 (get_arg_pointer_save_area): Update prototype.
3281 * builtins.c (expand_builtin_setjmp_receiver): Update call of
3282 get_arg_pointer_save_area.
3283 * expr.c (init_expr): Update
3284 * function.c (get_frame_size): Update
3285 (assign_stack_local): Update
3286 (expand_function_end): Update.
3287 (get_art_pointer_save_area): Update
3288 * function.h
3289 * emit-rtl.c (rtl): Declare.
3290 (regno_reg_rtx): Declare.
3291 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3292 Update.
3293 (gen_reg_rtx): Update.
3294 * varasm.c (n_deferred_constatns): Update accestor.
3295 (init_varasm_status): Do not allocate varasm_status.
3296 (force_const_mem, get_pool_size, output_constant_pool): Update.
3297 * stmt.c (force_label_rtx): Do not use x_ prefixes.
3298 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3299 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3300 * sparc/sparc.h (INIT_EXPANDERS): Update.
3301 * ia64/ia64.h (INIT_EXPANDERS): Update.
3302
92d21e32 33032008-04-07 James E. Wilson <wilson@tuliptree.org>
3304
3305 * reload.c (push_secondary_reload): Add missing break to for loop.
3306
ae12ddda 33072008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3308
3309 PR middle-end/PR28690
3310 * rtlanal.c: Update copyright years.
3311 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3312 as REG_POINTER and MEM_POINTER operands.
3313 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3314 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3315 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3316 * gcse.c: Update copyright years.
3317 (pre_delete): Call gen_reg_rtx_and_attrs.
3318 (hoist_code): Likewise.
3319 (build_store_vectors): Likewise.
3320 (delete_store): Likewise.
3321 * loop-invariant.c (move_invariant_reg): Likewise.
3322 Update copyright years.
3323
ae3049cd 33242008-04-07 Uros Bizjak <ubizjak@gmail.com>
3325
3326 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3327 control string instead of quoted.
3328
957f873e 33292008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
6cbc0aeb 3330
ae3049cd 3331 * doc/rtl.texi: Rewrite of subreg section.
3332
814cfa37 33332008-04-07 Kai Tietz <kai.tietz@onevision.com>
3334
ae3049cd 3335 PR/35842
3336 * config/i386/i386.c (legitimize_pic_address): Add treating
3337 of dllimport SYM_REF's.
3338 (legitimize_dllimport_symbol): Add prototype.
814cfa37 3339
27e9f331 33402008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3341
3342 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
3343 reference in constructor with non self-referential type.
3344
ff3ae375 33452008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3346
3347 Removal of Return with Depressed Stack Pointer support
3348 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3349 (ECF_SP_DEPRESSED): Likewise.
3350 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3351 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3352 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3353 (expand_call): Do not test ECF_SP_DEPRESSED.
3354 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3355 * function.c (keep_stack_depressed): Delete.
3356 (handle_epilogue_set): Likewise.
3357 (update_epilogue_consts): Likewise.
3358 (emit_equiv_load): Likewise.
3359 (thread_prologue_and_epilogue_insns): Remove support for Return with
3360 Depressed Stack Pointer.
3361 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3362
48674266 33632008-04-06 Richard Guenther <rguenther@suse.de>
3364
3365 PR tree-optimization/35400
3366 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3367 information from SSA_NAMEs.
3368
4f0e2214 33692008-04-06 Anatoly Sokolov <aesok@post.ru>
3370
3371 * config/avr/avr.h (avr_mega_p): Remove declaration.
3372 (AVR_MEGA): Remove macro.
3373 * config/avr/avr.c (avr_mega_p): Remove variable.
3374 (avr_override_options): Remove inicializion of avr_mega_p.
3375 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3376 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3377 (avr_jump_mode): (Ditto.).
3378 (avr_output_progmem_section_asm_op): (Ditto.).
3379 (avr_asm_init_sections): (Ditto.).
3380 (avr_asm_init_sections): (Ditto.).
3381 (avr_rtx_costs): (Ditto.).
3382 * config/avr/avr.md: (Ditto.).
3383 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
3384 '__AVR_MEGA__'.
3385
d8b498d3 33862008-04-06 Richard Guenther <rguenther@suse.de>
3387
3388 PR tree-optimization/35842
3389 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3390 is_gimple_invariant_address.
3391
00c6e780 33922008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3393
3394 * gcc.c (default_compilers): Sync Fortran extensions list with
3395 that in fortran/lang-specs.h.
3396 * doc/invoke.texi: Likewise.
3397 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3398 * dwarf2out.c (gen_compile_unit_die): Likewise.
3399
58f96ec3 34002008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
3401
3402 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3403
e1dbffbf 34042008-04-05 Uros Bizjak <ubizjak@gmail.com>
3405
3406 PR target/12329
3407 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3408 attribute is used for nested functions.
3409
5d48fdb4 34102008-04-05 Jan Hubicka <jh@suse.cz>
3411
3eedda05 3412 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3413
5d48fdb4 3414 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3415 letter argument.
3416 (dump_files): Update.
3417 (enable_rtl_dump_file): Do not accept letter argument.
3418 * tree-pass.h (dump_file_info): Remove letter argument.
3419 * toplev.c (decode_d_option): Update -da handling.
3420 * toplev.h (enable_rtl_dump_file): Update prototype.
3421 * passes.c (register_one_dump_file): Do not accept IPA argument; work
3422 it out based on pass type.
3423 (register_dump_files_1): Likewise.
3424 (init_optimization_passes): Update register_one_dump_file calls.
e1dbffbf 3425 (execute_one_pass): Sanity check that IPA passes are called at IPA
3426 level and RTL passes at RTL level.
5d48fdb4 3427 (execute_pass_list): IPA pass can not be after or subpass of
3428 GIMPLE/RTL pass.
3429 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3430 disallov RTL subpasses of IPA subpasses.
3431
eb5bb63e 34322008-04-05 Ben Elliston <bje@au.ibm.com>
3433
3434 * tree-cfg.c (need_fake_edge_p): Return false for calls to
3435 builtins that return exactly once and do not throw. Cache call to
3436 call_expr_flags.
3437
67f57040 34382008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3439
3440 PR rtl-optimization/34916
3441 PR middle-end/35519
3442 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3443 between instruction pairs.
3444
96a7f216 34452008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
3446
3447 * doc/invoke.texi: Document -mbitops for SH.
3448 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3449 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3450 * config/sh/sh.c (print_operand): Add %t operand code.
3451 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3452 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3453 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3454 (extendqihi2): Likewise.
3455 (movqi_i): Likewise.
3456 (insv): Use bset, bclr and bst instructions for SH2A if possible.
3457 (extv): Use bld instruction for SH2A if possible.
3458 (extzv): Likewise.
3459 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3460 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3461 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3462 (bset.b, bclr.b): Define peepholes.
3463 * config/sh/sh.opt (mbitops): New option.
3464
d35d5b75 34652008-04-04 Janis Johnson <janis187@us.ibm.com>
3466
3467 PR target/35620
3468 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3469 and view convert expression.
3470
5018e7cd 34712008-04-04 Jakub Jelinek <jakub@redhat.com>
3472
3473 PR target/35364
3474 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3475
1d9ef704 34762008-04-04 H.J. Lu <hongjiu.lu@intel.com>
3477
3478 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3479
3480 * config/i386/cpuid.h (bit_AES): New.
3481 (bit_PCLMUL): Likewise.
3482
3483 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3484 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
3485 SSE2 if AES or PCLMUL is enabled.
3486 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3487 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3488 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3489 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3490 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3491 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3492 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3493 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3494 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3495 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3496 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3497 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3498 __builtin_ia32_aeskeygenassist128 and
3499 __builtin_ia32_pclmulqdq128.
3500 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3501 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3502 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
3503
3504 * config/i386/i386.h (TARGET_AES): New.
3505 (TARGET_PCLMUL): Likewise.
3506 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3507
3508 * config/i386/i386.md (UNSPEC_AESENC): New.
3509 (UNSPEC_AESENCLAST): Likewise.
3510 (UNSPEC_AESDEC): Likewise.
3511 (UNSPEC_AESDECLAST): Likewise.
3512 (UNSPEC_AESIMC): Likewise.
3513 (UNSPEC_AESKEYGENASSIST): Likewise.
413347ff 3514 (UNSPEC_PCLMUL): Likewise.
1d9ef704 3515
3516 * config/i386/i386.opt (maes): New.
3517 (mpclmul): Likewise.
3518
3519 * config/i386/sse.md (aesenc): New pattern.
3520 (aesenclast): Likewise.
3521 (aesdec): Likewise.
3522 (aesdeclast): Likewise.
3523 (aesimc): Likewise.
3524 (aeskeygenassist): Likewise.
3525 (pclmulqdq): Likewise.
3526
3527 * config/i386/wmmintrin.h: New.
3528
3529 * doc/extend.texi: Document AES and PCLMUL built-in function.
3530
3531 * doc/invoke.texi: Document -maes and -mpclmul.
3532
b75409ba 35332008-04-04 Paolo Bonzini <bonzini@gnu.org>
3534
3535 * function.c (free_after_parsing): Replace with
3536 cxx_push_function_context from C++ front-end.
3537 (allocate_struct_function): Don't call langhook.
3538 * langhooks.h (struct lang_hooks_for_functions): Delete.
3539 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3540 member "function".
3541 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3542 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3543 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3544 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3545 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3546 remove LANG_HOOKS_FUNCTION_INITIALIZER.
3547 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3548
3549 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3550 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3551
87d31deb 35522008-04-04 Jakub Jelinek <jakub@redhat.com>
3553
3554 PR c/35440
3555 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3556 for all types.
3557
226c5ce4 35582008-04-04 Richard Guenther <rguenther@suse.de>
3559
3560 PR middle-end/35823
3561 * fold-const.c (optimize_minmax_comparison): Use the correct
3562 type for the constant in the simplified comparison.
3563
4c8b808d 35642008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
3565
3566 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3567 Pass L2 size as "--param l2-cache-size" to the compiler.
3568 (decode_l2_cache): New function to decode L2 cache parameters using
3569 0x8000006 extended cpuid function.
3570 (detect_caches_amd): Determine parameters of L2 cache using
3571 decode_l2_caches function.
3572 (decode_caches_intel): Decode L2 cache parameters.
3573 (detect_caches_intel): Determine L2 cache parameters using
3574 decode_caches_intel and decode_l2_caches functions.
3575
da19f93f 35762008-04-03 Bob Wilson <bob.wilson@acm.org>
3577
3578 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3579 secondary input reload for subword loads from the constant pool.
3580
3a58582a 35812008-04-03 Janis Johnson <janis187@us.ibm.com>
3582
2bedfb20 3583 PR target/35713
3584 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3585 constants of the appropriate size for runtime calculations.
3586
3a58582a 3587 PR c/35712
3588 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3589 decimal-float literal constant zero.
3590
e7327393 35912008-04-03 Jakub Jelinek <jakub@redhat.com>
3592
3cc31756 3593 PR c/35738
3594 * c-parser.c (c_parser_omp_atomic): Call
3595 default_function_array_conversion on the RHS.
3596
e7327393 3597 PR middle-end/35818
3598 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3599 call is_variable_sized if decl has incomplete type.
3600
e0d72b88 36012008-04-03 H.J. Lu <hongjiu.lu@intel.com>
3602
3603 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3604
21d7f1af 36052008-04-03 Adam Nemet <anemet@caviumnetworks.com>
3606
3607 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3608 iterators.
ae3049cd 3609 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
21d7f1af 3610 (sgt<u>): Merge sgt and sgtu into new expander.
3611 (sgt, sgtu): Remove expanders.
ae3049cd 3612 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
21d7f1af 3613 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3614 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3615 *sgtu_<mode>_mips16 into new pattern.
3616 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3617 (sge<u>): Merge sge and sgeu into new expander.
3618 (sge, sgeu): Remove expanders.
3619 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3620 new pattern.
3621 (*sge_<mode>, second *sge_<mode>): Remove patterns.
3622 (slt<u>): Merge slt and sltu into new expander.
3623 (slt, sltu): Remove expanders.
ae3049cd 3624 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
21d7f1af 3625 (*slt_<mode>, *sltu_<mode>): Remove patterns.
3626 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3627 *sltu_<mode>_mips16 into new pattern.
3628 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3629 (sle<u>): Merge sle and sleu into new expander.
3630 (sle, sleu): Remove expanders.
ae3049cd 3631 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
21d7f1af 3632 (*sle_<mode>, *sleu_<mode>): Remove patterns.
3633 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3634 *sleu_<mode>_mips16 into new pattern.
3635 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3636
d5b52ebc 36372008-04-03 Jan Hubicka <jh@suse.cz>
3638
3639 PR tree-optimization/35795
3640 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3641 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3642 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3643 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3644 * score/score3.c (score3_output_mi_thunk): Likewise.
3645 * score/score7.c (score7_output_mi_thunk): Likewise.
3646 * mips/mips.c (mips_output_mi_thunk): Likewise.
3647
0d27ac1e 36482008-04-03 Richard Guenther <rguenther@suse.de>
3649
3650 * tree-vrp.c (extract_range_from_unary_expr): Handle all
3651 conversions. Simplify code.
3652
6c5df66e 36532008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
3654
3655 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3656
6fb2153a 36572008-04-03 Tom Tromey <tromey@redhat.com>
3658 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3659
3660 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3661 * config/bfin/t-bfin-linux (generated_files): Add
3662 linux-sysroot-suffix.h.
3663 * doc/install.texi (Prerequisites): Require make 3.80.
3664 * doc/sourcebuild.texi (Front End Directory): Document new
3665 variable.
3666 * Makefile.in (generated_files): New variable.
3667 (ALL_HOST_OBJS): New variable.
3668 ($(ALL_HOST_OBJS)): New target.
3669
32020b10 36702008-04-03 Paolo Bonzini <bonzini@gnu.org>
3671
d5b52ebc 3672 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3673 (remap_block): Call id->transform_lang_insert_block instead
3674 of langhook.
3675 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3676 Set id.transform_lang_insert_block to NULL.
3677 (clone_body): Move to cp/optimize.c
3678 * tree-inline.h (struct copy_body_data): Change
3679 transform_lang_insert_block to function pointer.
3680 (copy_generic_body, copy_decl_no_change): Export.
3681 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3682 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3683 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3684
3685 * c-tree.h (insert_block): Kill.
3686 * c-decl.c (insert_block): Kill.
32020b10 3687
d2764e2d 36882008-04-03 Paolo Bonzini <bonzini@gnu.org>
3689
d5b52ebc 3690 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3691 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3692 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3693 argument.
3694 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3695 argument, call {push,pop}_function_context from here.
3696 * c-parser.c: Use c_{push,pop}_function_context.
3697
3698 * function.c (push_function_context_to): Move meat ...
3699 (push_function_context): ... here. Simplify.
3700 * function.c (pop_function_context_from): Move meat ...
3701 (pop_function_context): ... here. Simplify.
3702 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3703 leave_nested).
3704 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3705 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3706 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3707 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2764e2d 3708
3fc499d6 37092008-04-03 Ben Elliston <bje@au.ibm.com>
3710
3711 * expmed.c (extract_force_align_mem_bit_field): Remove.
3712
469b75f7 37132008-04-03 Richard Guenther <rguenther@suse.de>
3714
3715 PR middle-end/35800
3716 * expr.h (try_casesi): Adjust prototype.
3717 * expr.c (try_casesi): Take fallback label as extra parameter.
3718 Use that for gen_casesi if default_label is NULL.
3719 * stmt.c (expand_case): Pass fallback label to try_casesi,
3720 make sure to fill gaps with a fallback label if default_label
3721 is not present.
3722
bdc98a90 37232008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
3724
3725 PR target/35801
3726 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3727
6b2813fb 37282008-04-03 Ben Elliston <bje@au.ibm.com>
3729
3730 * expmed.c (extract_split_bit_field): Remove if (0) code.
3731 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3732 (do_ds_constraint): Likewise.
3733
34c3de48 37342008-04-02 Joseph Myers <joseph@codesourcery.com>
3735
3736 * doc/cppopts.texi (-dU): Document.
3737 * c-common.h (flag_dump_macros): Update comment.
3738 * c-opts.c (handle_OPT_d): Handle -dU.
3739 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3740 dump_queued_macros, cb_used_define, cb_used_undef): New.
3741 (init_pp_output): Handle -dU.
3742 (cb_line_change): Call dump_queued_macros.
3743 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3744
48310879 37452008-04-02 Anatoly Sokolov <aesok@post.ru>
3746
3747 * config/avr/predicates.md (io_address_operand): New predicate.
3748 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3749 * config/avr/avr.c (avr_io_address_p): Remove function.
3750 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
3751 'avr_io_address_p' function.
3752 (out_movhi_r_mr): (Ditto.).
3753 (out_movqi_mr_r): (Ditto.).
3754 (out_movhi_mr_r): (Ditto.).
3755 (avr_address_cost): (Ditto.).
3756
470d0bc8 37572008-04-02 Uros Bizjak <ubizjak@gmail.com>
3758
3759 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3760 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3761 in 32bit mode when XMM registers are available to avoid store
3762 forwarding stalls.
3763 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3764 corresponding post-reload splitters.
3765
b1417d7e 37662008-04-02 H.J. Lu <hongjiu.lu@intel.com>
3767
3768 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3769 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
3770 __builtin_ia32_roundss.
3771 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3772 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3773 __builtin_ia32_roundss.
3774 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3775 IX86_BUILTIN_SHUFPD here.
3776
b6bc2701 37772008-04-02 H.J. Lu <hongjiu.lu@intel.com>
3778
3779 * config/i386/i386.md (plogic): New.
3780 (plogicprefix): Likewise.
3781
3782 * config/i386/mmx.md (mmx_<code><mode>3): New.
3783 (mmx_and<mode>3): Removed.
3784 (mmx_ior<mode>3): Likewise.
3785 (mmx_xor<mode>3): Likewise.
3786
3787 * config/i386/sse.md (<code><mode>3): New.
3788 (*<code><mode>3): Likewise.
3789 (*<code><mode>3): Likewise.
3790 (<code><mode>3): Likewise.
3791 (*sse_<code><mode>3): Likewise.
3792 (*sse2_<code><mode>3): Likewise.
3793 (<code>tf3): Likewise.
3794 (*<code>tf3): Likewise.
3795 (and<mode>3): Likewise.
3796 (*and<mode>3): Likewise.
3797 (ior<mode>3): Removed.
3798 (*ior<mode>3): Likewise.
3799 (xor<mode>3): Likewise.
3800 (*xor<mode>3): Likewise.
3801 (*and<mode>3): Likewise.
3802 (*ior<mode>3): Likewise.
3803 (*xor<mode>3): Likewise.
3804 (and<mode>3): Likewise.
3805 (*sse_and<mode>3): Likewise.
3806 (*sse2_and<mode>3): Likewise.
3807 (andtf3): Likewise.
3808 (*andtf3): Likewise.
3809 (ior<mode>3): Likewise.
3810 (*sse_ior<mode>3): Likewise.
3811 (*sse2_ior<mode>3): Likewise.
3812 (iortf3): Likewise.
3813 (*iortf3): Likewise.
3814 (xor<mode>3): Likewise.
3815 (*sse_xor<mode>3): Likewise.
3816 (*sse2_xor<mode>3): Likewise.
3817 (xortf3): Likewise.
3818 (*xortf3): Likewise.
3819
72c30859 38202008-04-02 Richard Guenther <rguenther@suse.de>
3821
3822 PR tree-optimization/14495
3823 PR tree-optimization/34793
3824 * tree-vrp.c (struct switch_update): New structure.
3825 (to_remove_edges, to_update_switch_stmts): New VECs.
3826 (simplify_switch_using_ranges): New function. Remove not taken
3827 case labels and edges.
3828 (simplify_stmt_using_ranges): Call it.
3829 (identify_jump_threads): Mark edges we have queued for removal
3830 so we don't thread them.
3831 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
3832 case label vector.
3833 * tree-cfg.c (group_case_labels): Deal with missing default label.
3834 (tree_verify_flow_info): Allow missing default label.
3835 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
3836 (emit_case_nodes): Likewise.
3837 (expand_case): Do not rely on the default label to be present.
3838 * expr.c (try_casesi): Deal with NULL default_label.
3839 (do_tablejump): Likewise.
3840
b6d7b6c5 38412008-04-02 Richard Guenther <rguenther@suse.de>
3842
3843 PR tree-optimization/14495
3844 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
3845 SWITCH_EXPR here ...
3846 (vrp_visit_switch_stmt): ... but here (new function).
3847 (find_case_label_index): New helper function.
3848 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
3849
217c0c86 38502008-04-02 Paolo Bonzini <bonzini@gnu.org>
3851
3852 * fwprop.c: Fix ISO-C99ism.
3853
794723c1 38542008-04-02 Paolo Bonzini <bonzini@gnu.org>
3855
3856 PR bootstrap/35752
3857 * Makefile.in (objdir): Set it here.
3858 * configure.ac: Not here. Find dynamic linker characteristics.
3859 * exec-tool.in: Use them.
3860 * aclocal.m4: Regenerate.
3861 * configure: Regenerate.
3862
1a105fae 38632008-04-02 Paolo Bonzini <bonzini@gnu.org>
3864
3865 * expr.c (expand_var): Delete it.
3866 * expr.h (expand_var): Delete prototype.
3867 * function.c (expand_function_start): Use expand_decl instead.
3868 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
3869 langhook.
3870
f533acbe 38712008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
3872
3873 PR rtl-optimization/35542
3874 * fwprop.c (forward_propagate_and_simplify): Replace
3875 loc_reg_mentioned_in_p with reg_mentioned_p.
3876
f8f13645 38772008-04-02 Paolo Bonzini <bonzini@gnu.org>
3878
f533acbe 3879 PR rtl-optimization/35281
f8f13645 3880 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
3881 (propagate_rtx_1): Handle PR_HANDLE_MEM.
3882 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
3883 (varying_mem_p): Move above propagate_rtx.
3884 (all_uses_available_at): Do not check MEMs.
3885
a00913c7 38862008-04-02 Rafael Espindola <espindola@google.com>
3887
3888 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
3889 (register_edge_assert_for_2): Split the cond argument.
3890 (register_edge_assert_for_1): Adjust for the change in
3891 register_edge_assert_for_2.
3892 (register_edge_assert_for): Split the cond argument.
3893 (find_switch_asserts): Adjust for the change in
3894 register_edge_assert_for.
3895
c8c521bb 38962008-04-02 Kai Tietz <kai.tietz@onevision.com>
3897
3898 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1f93c018 3899 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
c61eb773 3900 offsets for 64-bit mingw.
1f93c018 3901 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
c61eb773 3902 abi for x86_64-pc-mingw.
c8c521bb 3903
22cdb855 39042008-04-02 Richard Guenther <rguenther@suse.de>
3905
3906 * tree-vrp.c (extract_range_from_assert): Make sure to not
3907 produce range min/max with TREE_OVERFOW set.
3908 If merging a anti-range and a range keep the anti-range if
3909 the range covers all values of the type.
3910 (register_edge_assert_for_2): Only allow sign-changing
3911 conversions in detecting canonical range checks. Also
3912 register an assert for the unsigned name if useful.
3913
3914 PR tree-optimization/35787
3915 * tree-vrp.c (vrp_val_max): New function.
3916 (vrp_val_min): Likewise.
3917 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
3918 (vrp_val_is_min): Likewise.
3919 (supports_overflow_infinity): Use vrp_val_{min,max}.
3920 (negative_overflow_infinity): Likewise.
3921 (positive_overflow_infinity): Likewise.
3922 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
3923 (is_positive_overflow_infinity): Likewise.
3924 (is_overflow_infinity): Likewise.
3925 (avoid_overflow_infinity): Use vrp_val_{min,max} and
3926 vrp_val_is_{min,max}.
3927 (set_and_canonicalize_value_range): Canonicalize anti-ranges
3928 to ranges if possible. Avoid empty ranges.
3929
10494d65 39302008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3931
3932 PR middle-end/35705
3933 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
3934 the expression is a function address.
3935
a12691f0 39362008-04-01 George Helffrich <george@gcc.gnu.org>
3937
ae093573 3938 PR fortran/35154, fortran/23057
a12691f0 3939 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
3940 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
3941 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
3942 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
3943 in common.
3944 (dbxout_syms): Check for COMMON-based symbol and wrap in
3945 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
3946 in bracket for efficiency.
3947
3948 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
3949 using DW_TAG_common_block + member offset.
3950 (add_pubname_string): New function.
3951 (dw_expand_expr): New function to find block name and offset for
3952 COMMON var.
3953 (common_check): New function to check whether symbol in Fortran COMMON.
3954 (gen_variable_die): If COMMON, use DW_TAG_common_block.
3955
fa3b771a 39562008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
3957
3958 PR c/35436
3959 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
3960
dbec73a5 39612008-04-02 Ben Elliston <bje@au.ibm.com>
3962
3963 * config/v850/v850.md (casesi): Remove if (0) code.
3964 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3965 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
3966
3a8f2ab9 39672008-04-01 Uros Bizjak <ubizjak@gmail.com>
3968
3969 * config/i386/i386.md (rex64suffix): New mode attribute.
3970 (floathi<mode>2): Disable expander for SSE math.
3971 (*floathi<mode>2_1): New insn insn_and_split pattern.
3972 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
3973 corresponding post-reload splitters.
3974 (*floathi<mode>2_i387): New macroized insn pattern.
3975 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
3976 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
3977 insn_and_split pattern.
3978 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
3979 New macroized instruction patterns and corresponding post-reload
3980 splitters.
3981 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
3982 and corresponding post-reload splitters.
3983 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
3984 New macroized instruction patterns.
3985 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
3986 macroized instruction patterns and corresponding post-reload splitters.
3987 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
3988 corresponding post-reload splitters.
3989 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
3990 New macroized instruction patterns.
3991 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
3992 corresponding post-reload splitters.
3993 (*floatsi<mode>2_i387): New macroized instruction patterns.
3994
9409fce7 39952008-04-01 H.J. Lu <hongjiu.lu@intel.com>
3996
3997 * config/i386/i386.md (smaxmin): New.
3998 (umaxmin): Likewise.
3999 (maxminiprefix): Likewise.
4000 (maxminfprefix): Likewise.
4001 (<code><mode>3): Likewise.
4002 (smin<mode>3): Removed.
4003 (smax<mode>3): Likewise.
4004
4005 * config/i386/mmx.md (mmx_<code>v2sf3): New.
4006 (mmx_<code>v4hi3): Likewise.
4007 (mmx_<code>v8qi3): Likewise.
4008 (mmx_smaxv2sf3): Removed.
4009 (mmx_sminv2sf3): Likewise.
4010 (mmx_umaxv8qi3): Likewise.
4011 (mmx_smaxv4hi3): Likewise.
4012 (mmx_uminv8qi3): Likewise.
4013 (mmx_sminv4hi3): Likewise.
4014
4015 * config/i386/sse.md (<addsub><mode>3): New.
4016 (*<addsub><mode>3): Likewise.
4017 (<sse>_vm<addsub><mode>3): Likewise.
4018 (<maxmin><mode>3): Likewise.
4019 (*<maxmin><mode>3_finite): Likewise.
4020 (*<maxmin><mode>3): Likewise.
4021 (<sse>_vm<maxmin><mode>3): Likewise.
4022 (sse3_h<addsub>v4sf3): Likewise.
4023 (sse3_h<addsub>v2df3): Likewise.
4024 (<maxmin>v16qi3): Likewise.
4025 (*<maxmin>v16qi3): Likewise.
4026 (<maxmin>v8hi3): Likewise.
4027 (*<maxmin>v8hi3): Likewise.
4028 (*sse4_1_<maxmin><mode>3): Likewise.
4029 (*sse4_1_<maxmin><mode>3): Likewise.
4030 (add<mode>3): Removed.
4031 (*add<mode>3): Likewise.
4032 (<sse>_vmadd<mode>3): Likewise.
4033 (sub<mode>3): Likewise.
4034 (*sub<mode>3): Likewise.
4035 (<sse>_vmsub<mode>3): Likewise.
4036 (smin<mode>3): Likewise.
4037 (*smin<mode>3_finite): Likewise.
4038 (*smin<mode>3): Likewise.
4039 (<sse>_vmsmin<mode>3): Likewise.
4040 (smax<mode>3): Likewise.
4041 (*smax<mode>3_finite): Likewise.
4042 (*smax<mode>3): Likewise.
4043 (<sse>_vmsmax<mode>3): Likewise.
4044 (sse3_haddv4sf3): Likewise.
4045 (sse3_haddv2df3): Likewise.
4046 (sse3_hsubv4sf3): Likewise.
4047 (sse3_hsubv2df3): Likewise.
4048 (umaxv16qi3): Likewise.
4049 (*umaxv16qi3): Likewise.
4050 (smaxv8hi3): Likewise.
4051 (*smaxv8hi3): Likewise.
4052 (*sse4_1_smax<mode>3): Likewise.
4053 (*sse4_1_umax<mode>3): Likewise.
4054 (uminv16qi3): Likewise.
4055 (*uminv16qi3): Likewise.
4056 (sminv8hi3): Likewise.
4057 (*sminv8hi3): Likewise.
4058 (*sse4_1_smin<mode>3): Likewise.
4059 (*sse4_1_umin<mode>3): Likewise.
4060
d3ec693f 40612008-04-01 Rafael Espindola <espindola@google.com>
4062
4063 * tree-cfg.c (verify_expr): remove in_phi.
9409fce7 4064 (verify_stmt): Don't call walk_tree with verify_expr. Use
d3ec693f 4065 is_gimple_min_invariant instead of is_gimple_val.
4066
eae7da65 40672008-04-01 Joseph Myers <joseph@codesourcery.com>
4068
4069 * doc/include/gpl_v3.texi: Update for manpage generation.
4070 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
4071 gpl.texi.
4072 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
4073 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
4074 gpl_v3.texi instead of gpl.texi.
4075 (gpl.pod): New.
4076
f2225b1a 40772008-04-01 Jakub Jelinek <jakub@redhat.com>
4078
4079 PR pch/13675
4080 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
4081
7433d1d6 40822008-04-01 Rafael Espindola <espindola@google.com>
4083
4084 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
4085 (extract_code_and_val_from_cond): Use
4086 extract_code_and_val_from_cond_with_ops.
4087
1321f22c 40882008-04-01 Jan Hubicka <jh@suse.cz>
4089
4090 * function.c (free_after_compilation): Free epilogue_delay_list.
4091 (prepare_function_start): Assert that previous compilation was freed.
4092
08d2afb4 40932008-04-01 Jan Hubicka <jh@suse.cz>
4094 Jim Wilson <wilson@tuliptree.org>
4095 Andreas Tobler <andreast@gcc.gnu.org>
4096
4097 PR middle-end/35781
4098 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4099 rtl.emit instead cfun->emit.
4100 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4101 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4102
21b45faa 41032008-04-01 Ben Elliston <bje@au.ibm.com>
4104
4105 * doc/c-tree.texi (Function Basics): Fix grammatical error.
4106
3e3a0e9c 41072008-03-31 Seongbae Park <seongbae.park@gmail.com>
4108
4109 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4110 New options
4111 (fprofile-use): Add var flag_profile_use
3a8f2ab9 4112 * coverage.c (coverage_begin_output): Do not open a gcno file for
4113 output only if -ftest-coverage is set.
3e3a0e9c 4114 Do not add getpwd() to gcda file path.
3a8f2ab9 4115 (build_gcov_info): Check the new flag
3e3a0e9c 4116 flag_profile_datafile_relative_path.
4117 (coverage_init): Use profile_data_prefix.
4118 Read profile counter only if flag_profile_use is set.
4119 * opts.c (common_handle_option): New option fprofile-use=,
4120 fprofile-dir=, fprofile-generate=.
4121 * toplev.c (profile_data_prefix): New variable definition.
4122 * toplev.h (profile_data_prefix): New declaration.
4123 * doc/invoke.tex (Option Summary, Optimization Options):
4124 Add new options.
4125
4e508025 41262008-03-31 James E. Wilson <wilson@tuliptree.org>
4127
3a8f2ab9 4128 * varasm.c (output_constant_pool_1): In LABEL_REF check,
4129 use tmp consistently.
4bd8d9a1 4130
4e508025 4131 PR target/35695
4132 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4133 * config/ia64/ia64.c (rtx_needs_barrier): Handle
4134 UNSPEC_FR_RECIP_APPROX_RES.
4135 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4136
e911c0fe 41372008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
4138
4139 PR c/35750
4140 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4141
70a866cf 41422008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
4143
4144 PR middle-end/30186
4145 * fold-const.c (fold_indirect_ref_1): Support accessing non first
4146 element of the vector via a pointer.
4147
168de4c5 41482008-03-31 Ian Lance Taylor <iant@google.com>
4149
3a8f2ab9 4150 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
168de4c5 4151
b079a207 41522008-03-31 Jan Hubicka <jh@suse.cz>
4153
4154 * builtins.c (expand_builtin_setjmp_receiver): Update call of
4155 get_arg_pointer_save_area.
4156 * expr.c (init_expr): Just clear out rtl.expr.
4157 * function.c (free_after_compilation): Clear out whole RTL structure.
4158 (get_func_frame_size): Merge into ...
4159 (get_frame_size): ... this one.
4160 (assign_stack_local_1): Merge into ...
4161 (assign_stack_local): ... this one.
4162 (expand_function_end): Update call of get_arg_pointer_save_area.
4163 (get_art_pointer_save_area): Remove cfun argument.
4164 * function.h (emit_status): regno_pointer_align does not need length
4165 attribute. Move x_regno_reg_rtx to ...
4166 (regno_reg_rtx): ... new global array.
4167 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4168 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3a8f2ab9 4169 apply_args_value, forced_labels, stack_pointer_delta):
4170 Update accestors.
b079a207 4171 (struct varasm_status): Move here from varasm.c
4172 (struct rtl_data): New. Move here some fields from struct function.
4173 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4174 frame_offset, stack_check_probe_note, arg_pointer_save_area,
4175 used_temp_slots avail_temp_slots, temp_slot_level,
4176 nonlocal_goto_handler_labels): Update accesstors.
4177 (rtl): New global variable.
4178 (struct function): Move some fileds to rtl_data.
4179 (get_arg_pointer_save_area): Update prototype.
4180 * emit-rtl.c (rtl): Declare.
4181 (regno_reg_rtx): Declare.
3a8f2ab9 4182 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4183 Update.
b079a207 4184 (gen_reg_rtx): Update.
4185 (init_virtual_regs): Do not tate emit_status argument.
4186 (init_emit): Do not allocate emit.
4187 * varasm.c (varasm_statuc): Move to function.h.
4188 (n_deferred_constatns): Update accestor.
4189 (init_varasm_status): Do not allocate varasm_status.
4190 (force_const_mem, get_pool_size, output_constant_pool): Update.
4191 * stmt.c (force_label_rtx): Do not use x_ prefixes.
4192 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4193
13ecee21 41942008-03-31 Zdenek Dvorak <ook@ucw.cz>
4195
4196 PR rtl-optimization/35729
4197 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4198 references.
4199
0010688c 42002008-03-31 H.J. Lu <hongjiu.lu@intel.com>
4201
4202 PR target/32000
4203 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4204 load/store if memory is unaligned.
4205 (*movti_rex64): Likewise.
4206
4207 * config/i386/predicates.md (misaligned_operand): New.
4208
435e1a75 42092008-03-31 Andrew Pinski <pinskia@gmail.com>
4210
4211 PR tree-opt/35431
4212 * tree-ssa-phiopt.c (conditional_replacement): Return early for
4213 complex types.
4214
80538812 42152008-03-31 Jan Beulich <jbeulich@novell.com>
4216
4217 * config/ia64/constraints.md: Add 'j' constraint.
4218 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4219 (movdi_internal): Likewise.
4220
ae4400fc 42212008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
4222
4223 PR c/35748
4224 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4225
7b18adb1 42262008-03-30 H.J. Lu <hongjiu.lu@intel.com>
4227
4228 PR target/35757
4229 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4230 proper error message for the third argument on blendpd and
4231 blendps.
4232
4233 * config/i386/sse.md (blendbits): New.
4234 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4235
54bd17de 42362008-03-30 Eric Botcazou <ebotcazou@adacore.com>
4237
4238 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4239
8db0c0ff 42402008-03-30 Richard Guenther <rguenther@suse.de>
4241
4242 PR middle-end/31023
4243 * fold-const.c (fold_sign_changed_comparison): Do leave
4244 conversions to base-types alone.
4245
29c144d1 42462008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
4247
4248 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4249 the link register if one altivec register is be saved.
4250
55007e96 42512008-03-30 Ben Elliston <bje@au.ibm.com>
4252
4253 * final.c (final_scan_insn): Remove if (0) code.
4254
b3cafa91 42552008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
4256
4257 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4258
18861bde 42592008-03-28 H.J. Lu <hongjiu.lu@intel.com>
4260
4261 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4262 of V4SFmode to ix86_binary_operator_ok.
4263
d173d680 42642008-03-28 Uros Bizjak <ubizjak@gmail.com>
4265
4266 * config/i386/i386.c (override_options): Initialize
4267 ix86_veclib_handler to ix86_veclibabi_svml when
4268 -mveclibabi=svml is used.
4269 (ix86_veclibabi_svml): New function for SVML ABI style
4270 vectorization support.
4271 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4272
93116081 42732008-03-28 Rafael Espindola <espindola@google.com>
4274
4275 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4276 (tree_binary_nonnegative_warnv_p): Make it public.
4277 (tree_single_nonnegative_warnv_p): Make it public.
4278 (tree_invalid_nonnegative_warnv_p): Make it public.
4279 (tree_unary_nonzero_warnv_p): Make it public.
4280 (tree_binary_nonzero_warnv_p): Make it public
4281 (tree_single_nonzero_warnv_p): Make it public.
4282 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4283 (extract_range_from_binary_expr): Split the expr argument.
4284 (extract_range_from_unary_expr): Split the expr argument.
4285 (extract_range_from_comparison): Split the expr argument.
4286 (extract_range_from_expr): Use the new aux functions.
4287 (vrp_evaluate_conditional_warnv): Use
4288 vrp_evaluate_conditional_warnv_with_ops.
4289 * tree.h (tree_unary_nonzero_warnv_p): Declare.
4290 (tree_binary_nonzero_warnv_p): Declare.
4291 (tree_single_nonzero_warnv_p): Declare.
4292 (tree_expr_nonzero_warnv_p): Declare.
4293 (tree_unary_nonnegative_warnv_p): Declare.
4294 (tree_binary_nonnegative_warnv_p): Declare.
4295 (tree_single_nonnegative_warnv_p): Declare.
4296 (tree_invalid_nonnegative_warnv_p): Declare.
4297
bed8bec4 42982008-03-28 Richard Guenther <rguenther@suse.de>
4299
4300 PR tree-optimization/30317
4301 PR tree-optimization/30911
4302 PR tree-optimization/34793
4303 * tree-vrp.c (set_and_canonicalize_value_range): New function.
4304 (struct assert_locus_d): New member EXPR.
4305 (register_new_assert_for): Add EXPR parameter to support
4306 ASSERT_EXPR <name, expr OP limit>.
4307 (register_edge_assert_for_1): Adjust callers.
4308 (find_assert_locations): Likewise.
d173d680 4309 (process_assert_insertions_for): Build condition from expression.
bed8bec4 4310 (extract_range_from_assert): Handle ASSERT_EXPRs
4311 of the form ASSERT_EXPR <name, expr OP limit>.
4312 (register_edge_assert_for_2): New helper registering
4313 asserts for comparisons. Recognize range tests of the form
4314 (unsigned)i - CST1 OP CST2.
4315 (register_edge_assert_for_1): Use it.
4316 (register_edge_assert_for): Likewise.
4317 (needs_overflow_infinity): Integer sub-types
4318 do not need overflow infinities.
4319 (vrp_val_is_max): The extreme values of integer sub-types
4320 are those of the base type.
4321 (vrp_val_is_min): Likewise.
4322 * tree.def (ASSERT_EXPR): Document extra allowed conditional
4323 expressions.
4324
55f3f40f 43252008-03-28 Nick Clifton <nickc@redhat.com>
4326
12f2d5e9 4327 PR target/31110
55f3f40f 4328 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
d173d680 4329 Return GENERAL_REGS for stack adjustment reloads.
55f3f40f 4330
cb47bce8 43312008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4332
4333 PR target/31334
4334 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4335 const_vector when all the vectors are constant.
4336
a22be2c5 43372008-03-27 Bob Wilson <bob.wilson@acm.org>
4338
4339 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4340 comparisons.
4341 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4342 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4343 (scc_sf): New.
4344 (s<code>_sf): Use new scc_sf attribute for opcode names.
4345
21886706 43462008-03-27 Tom Tromey <tromey@redhat.com>
4347
4348 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4349 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4350 config/spu/t-spu-elf, config/i386/t-interix,
4351 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4352 config/i386/x-darwin, config/i386/x-mingw32,
4353 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4354 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4355 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4356 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4357 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4358 config/rs6000/x-darwin, config/rs6000/t-rs6000,
4359 config/score/t-score-elf, config/arm/t-strongarm-pe,
4360 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4361 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4362 Revert automatic dependency patch.
4363
4f0ebb16 43642008-03-27 H.J. Lu <hongjiu.lu@intel.com>
4365
4366 PR target/35657
4367 * config/i386/i386.c (ix86_function_arg_boundary): Align
4368 decimal floating point to its natural boundary.
4369
dd691fd8 43702008-03-27 Richard Guenther <rguenther@suse.de>
4371
4372 PR middle-end/35716
4373 * fold-const.c (fold_comparison): Restrict distinct decl
4374 comparison folding to VAR_DECLs and PARM_DECLs. Do not
4375 solely rely on operand_equal_p.
4376
059a60f3 43772008-03-27 Richard Guenther <rguenther@suse.de>
4378
4379 PR c/32511
4380 * c-common.c (handle_weak_attribute): Reject combination of
4381 weak and inline.
4382
590d65aa 43832008-03-27 Richard Guenther <rguenther@suse.de>
4384
4385 PR tree-optimization/32810
4386 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4387 conversions from DECL_INITIAL.
4388 (fold_const_aggregate_ref): Likewise from constructor elements.
4389
063a8bce 43902008-03-27 Zdenek Dvorak <ook@ucw.cz>
4391
4392 * tree-affine.h (aff_combination_expand): Declare.
4393 (get_inner_reference_aff): Likewise.
4394 * tree-affine.c (aff_combination_expand): Split out from
4395 tree_to_aff_combination_expand.
4396 (get_inner_reference_aff): New function.
4397 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
d173d680 4398 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4399 (struct lim_aux_data): sm_done field removed.
4400 (mem_ref_loc_p, mem_ref_locs_p): New types.
4401 (struct mem_ref): Added id, stored, accesses_in_loop,
4402 indep_loop, dep_loop, indep_ref, dep_ref fields.
4403 Removed is_stored, locs and next fields.
4404 (memory_accesses): New variable.
4405 (movement_possibility): Do not allow moving statements
4406 that store to memory.
4407 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4408 New functions.
4409 (determine_max_movement): For statements with memory references,
4410 find the outermost loop in that the reference is independent.
4411 (move_computations_stmt): Mark the virtual operands for renaming.
4412 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4413 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4414 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4415 add_vop_ref_mapping, create_vop_ref_mapping_loop,
4416 create_vop_ref_mapping, analyze_memory_references,
4417 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4418 get_all_locs_in_loop, ref_always_accessed_p,
4419 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4420 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4421 store_motion_loop, store_motion): New functions.
4422 (struct vop_to_refs_elt): New type.
4423 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4424 memref_hash, memref_eq, hoist_memory_references): Rewritten.
4425 (schedule_sm): Replaced by...
4426 (execute_sm): ... this.
4427 (determine_lsm_ref, hoist_memory_references,
4428 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4429 find_more_ref_vops, free_mem_ref, free_mem_refs,
4430 determine_lsm_loop, determine_lsm): Removed.
4431 (tree_ssa_lim_finalize): Free data structures used by store motion.
4432 (tree_ssa_lim): Call analyze_memory_references. Use
4433 store_motion instead of determine_lsm.
063a8bce 4434
58a8c75f 44352008-03-27 Paolo Bonzini <bonzini@gnu.org>
4436
4437 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4438 rename tmake_file to m68hc11/t-m68hc11.
4439 (mcore): Set inhibit_libc to true.
4440 * config.host (alpha*-dec-*vms*): Set extra_programs.
4441 (interix3*): Don't use host_xmake_file.
4442 * configure.ac: Let config.gcc override inhibit_libc.
4443 * configure: Regenerate.
4444
4445 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4446 * config/t-openbsd-thread: Remove commented out lines.
4447
4448 * config/x-interix: Remove.
4449
4450 * config/m68hc11/t-m68hc11-gas: Rename to...
4451 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
4452
4453 * config/mcore/t-mcore: Remove T_CFLAGS.
4454 * config/mcore/t-mcore-pe: Likewise.
4455
b9146087 44562008-03-27 Paolo Bonzini <bonzini@gnu.org>
4457
4458 * configure.ac: Replace custom __GNU_SOURCE test with
4459 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
4460 * aclocal.m4: Regenerate.
4461 * configure: Regenerate.
4462 * config.in: Regenerate.
4463
ffdf1c47 44642008-03-27 Richard Guenther <rguenther@suse.de>
4465
4466 * fold-const.c (target.h): Include.
4467 (fold_comparison): Fold comparison of addresses of decls
4468 that bind locally or of constants. Consolidate address folding code.
4469 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4470 results from fold_binary_to_constant.
4471 (compare_values_warnv): Likewise.
4472
d159b72d 44732008-03-27 Andrew Pinski <pinskia@gmail.com>
4474
4475 PR middle-end/35429
4476 * fold-const.c (fold_truthop): Check for integeral types when folding
4477 a == 0 && b == 0 and a != 0 || b != 0 .
4478
bed74a71 44792008-03-26 Eric Botcazou <ebotcazou@adacore.com>
4480
4481 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4482
7e8061cf 44832008-03-26 Andreas Schwab <schwab@suse.de>
4484
4485 * doc/invoke.texi: Fix use of @item vs. @itemx.
4486
f731500e 44872008-03-26 Tom Tromey <tromey@redhat.com>
4488
4489 * Makefile.in (build/gensupport.o, build/print-rtl.o,
4490 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4491 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4492 build/gencodes.o, build/genconditions.o, build/genconfig.o,
4493 build/genconstants.o, build/genemit.o, build/genextract.o,
4494 build/genflags.o, build/genmddeps.o, build/genopinit.o,
4495 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4496 options.h.
4497
e7d6ed86 44982008-03-26 Richard Guenther <rguenther@suse.de>
4499
4500 Revert
4501 2008-03-26 Richard Guenther <rguenther@suse.de>
4502
4503 * fold-const.c (target.h): Include.
4504 (fold_comparison): Fold comparison of addresses of two decls
4505 that bind locally. Consolidate address folding code.
4506
3fa759a9 45072008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4508
4509 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4510 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4511 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4512 dconstsqrt2, dconstthird, dconste and/or dconst10.
4513 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4514 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4515 dconstsqrt2, dconste): Delete.
4516 (init_emit_once): Likewise. Simplify initializing dconstm1.
4517 Constify variable.
4518 * real.c (get_real_const): New.
4519 * real.h (dconst3, dconst10, dconstm2, dconstthird,
4520 dconstsqrt2, dconste): Delete.
4521 (real_value_const, get_real_const): New.
4522
3a8a26d5 45232008-03-26 H.J. Lu <hongjiu.lu@intel.com>
4524
4525 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4526
4527 * config/i386/i386.c (ix86_function_arg_boundary): Check
4528 BIGGEST_ALIGNMENT instead of 128.
4529 (setup_incoming_varargs_64): Likewise.
4530
ae69189e 45312008-03-26 Tom Tromey <tromey@redhat.com>
4532
4533 * Makefile.in (DEPFILES): Add missing '/'.
4534
60f42188 45352008-03-26 Richard Guenther <rguenther@suse.de>
4536
4537 * fold-const.c (target.h): Include.
4538 (fold_comparison): Fold comparison of addresses of two decls
4539 that bind locally. Consolidate address folding code.
4540
a0ebe2ee 45412008-03-26 Nick Clifton <nickc@redhat.com>
4542
4543 PR target/31232
4544 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4545 not allow INT+INT as a legitimate addressing mode.
4546
e607210a 45472008-03-26 Richard Guenther <rguenther@suse.de>
4548
4549 * tree-flow.h (widen_bitfield): Remove declaration.
4550 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4551 (widen_bitfield): Remove function.
4552 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4553 code.
4554
f082efb4 45552008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
4556
5c00ef9c 4557 PR target/31558
f082efb4 4558 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4559 error_mark_node's.
4560
1e32b0c4 45612008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
4562
4563 PR rtl-optimization/35232
4564 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4565 (forget_old_reloads_1, forget_marked_reloads): Don't clear
4566 reg_reloaded_call_part_clobbered here.
4567 (reload_regs_reach_end_p): New function.
4568 (reload_reg_rtx_for_input): New variable.
4569 (reload_reg_rtx_for_output): Likewise.
4570 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4571 when reassigning a pseudo register. Load reloadreg from
4572 reload_reg_rtx_for_input, moving the mode and register
4573 calculation to...
4574 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
4575 instead of the original when deciding whether an input reload
4576 would be a no-op or whether an output reload can be deleted.
4577 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4578 when setting up new_spill_reg_store. Load it from
4579 reload_reg_rtx_for_output, moving the mode and register
4580 calculation to...
4581 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
4582 instead of the original when deciding whether an output reload
4583 would be a no-op. Do the same when modifying insn notes.
4584 Use rtx_equal_p instead of == to compare the registers.
4585 (inherit_piecemeal_p): Take a mode and two register numbers
4586 as argument.
4587 (emit_reload_insns): Clear new_spill_reg_store for every hard
4588 register in the reload register. Remove spill registers
4589 from reg_reloaded_valid before considering whether to record
4590 inheritance information for them. Use reload_reg_rtx_for_output
4591 instead of reg_rtx when recording output reloads. Use
4592 reload_reg_rtx_for_input instead of reg_rtx when recording
4593 input reloads. Set or clear reg_reloaded_call_part_clobbered
4594 at the same time as setting reg_reloaded_valid.
4595 (delete_output_reload): Add a new_reload_reg parameter and use it
4596 instead of rld[j].reg_rtx.
4597 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4598 calls accordingly.
4599
72490eb6 46002008-03-25 Tom Tromey <tromey@redhat.com>
4601
4602 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4603 (build/genattr.o): Likewise.
4604 (build/genattrtab.o): Likewise.
4605 (build/gencodes.o): Likewise.
4606 (build/genconfig.o): Likewise.
4607 (build/genconstants.o): Likewise.
4608 (build/genemit.o): Likewise.
4609 (build/genextract.o): Likewise.
4610 (build/genflags.o): Likewise.
4611
1bdc4996 46122008-03-25 Bob Wilson <bob.wilson@acm.org>
4613
4614 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4615 instead of size_int for integer types.
4616 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
4617 to match type of MINUS_EXPR.
4618
ac26af35 46192008-03-25 Tom Tromey <tromey@redhat.com>
4620
4621 * configure: Rebuilt.
4622 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4623 Makefile.
4624
277b05bb 46252008-03-25 Tom Tromey <tromey@redhat.com>
4626
4627 * config/x-solaris (host-solaris.o): Update.
4628 * config/x-linux (host-linux.o): Update.
4629 * config/x-hpux (host-hpux.o): Update.
4630 * config/x-darwin (host-darwin.o): Update.
4631 * config/v850/t-v850e (v850-c.o): Update.
4632 * config/v850/t-v850 (v850-c.o): Update.
4633 * config/t-vxworks (vxworks.o): Update.
4634 * config/t-sol2 (sol2-c.o, sol2.o): Update.
a4be8081 4635 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
277b05bb 4636 * config/spu/t-spu-elf (spu-c.o): Update.
4637 (spu.o): Remove.
4638 * config/sh/t-symbian (sh-c.o): Update.
4639 (symbian.o): Update.
4640 * config/sh/t-sh (sh-c.o): Update.
4641 * config/score/t-score-elf (score7.o, score3.o): Update.
4642 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4643 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4644 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4645 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4646 (rs6000.o): Remove.
4647 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4648 * config/m32c/t-m32c (m32c-pragma.o): Update.
4649 * config/ia64/t-ia64 (ia64-c.o): Update.
4650 * config/i386/x-mingw32 (host-mingw32.o): Update.
4651 * config/i386/x-i386 (driver-i386.o): Update.
4652 * config/i386/x-darwin (host-i386-darwin.o): Update.
4653 * config/i386/x-cygwin (host-cygwin.o): Update.
4654 * config/i386/t-nwld (nwld.o): Update.
4655 * config/i386/t-netware (netware.o): Update.
4656 * config/i386/t-interix (winnt.o): Update.
4657 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4658 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4659 msformat-c.o): Update.
4660 * config/bfin/t-bfin-linux (generated_files): Add
4661 linux-sysroot-suffix.h.
4662 * config/arm/t-wince-pe (pe.o): Update.
4663 * config/arm/t-strongarm-pe (pe.o): Update.
4664 * config/arm/t-pe (pe.o): Update.
4665 * config/arm/t-arm (arm-c.o): Update.
4666 * doc/install.texi (Prerequisites): Require make 3.80.
4667 * Makefile.in: Remove .o targets.
4668 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4669 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4670 (simple_generated_h, simple_generated_c): Move earlier.
4671 (generated_files): New variable.
4672 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4673 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4674 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4675 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4676 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4677 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4678 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4679 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4680 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4681 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4682 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4683 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4684 (.c.o): Remove.
4685 (COMPILE.base, COMPILE): New variables.
4686 (%.o): New pattern rule.
4687 (ALL_HOST_OBJS): New variable.
4688 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4689 (dummy-checksum.o, cc1-checksum.o): Remove.
4690 (DRIVER_SHLIB): New variable.
4691 (DRIVER_DEFINES): Use it.
4692 (gencondmd.c): Move out of build/.
4693 (s-conditions): Update.
4694 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4695 (ALL_BUILD_OBJS): Likewise.
4696 (build/%.o): Use BUILDCOMPILE.
4697 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4698 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4699 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4700 build/gencheck.o, build/gencodes.o, build/genconditions.o,
4701 build/genconfig.o, build/genconstants.o, build/genemit.o,
4702 build/genextract.o, build/genflags.o, build/genmddeps.o,
4703 build/genopinit.o, build/genoutput.o, build/genpeep.o,
4704 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4705 build/gen-protos.o, build/scan.o, build/fix-header.o,
4706 build/scan-decls.o): Simplify.
4707 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4708 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4709 prefix.o, toplev.o): Reduce to variable setting.
a4be8081 4710 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
277b05bb 4711 ($(out_object_file), gcc-options.o): New targets.
a4be8081 4712 ($(ALL_HOST_OBJS)): New target. Include dependency files.
277b05bb 4713 * configure: Rebuilt.
a4be8081 4714 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4715 * doc/sourcebuild.texi (Front End Directory): Document new variable.
277b05bb 4716
ebd21de4 47172008-03-25 Douglas Gregor <doug.gregor@gmail.com>
4718
a4be8081 4719 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4720 complain when we hit an error, return ERROR_MARK_NODE.
ebd21de4 4721
bc1c5420 47222008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
4723
4724 * config/sh/constraints.md (Pso, Psz): New constraints.
4725 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4726 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4727
5897d9f3 47282008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
4729
a4be8081 4730 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
5897d9f3 4731 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4732
5f3ca2f6 47332008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
4734
4735 * config/sh/sh.md (prefetch): Add condition for SH2A target.
4736 (prefetch_sh2a): New.
4737
419b390c 47382008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
4739 Naveen.H.S <naveen.hs@kpitcummins.com>
4740
4741 * config/sh/constraints.md (I28): New constraint.
4742 * config/sh/sh.c (broken_move): Add support for movi20s.
a4be8081 4743 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
419b390c 4744
5241f4ad 47452008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
4746 Jayant Sonar <Jayant.sonar@kpitcummins.com>
4747 Naveen.H.S <naveen.hs@kpitcummins.com>
4748
4749 * config/sh/sh.c (SH_ATTRIBUTES): Define.
4750 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4751 (print_operand): Handle resbank in %@ operand code.
4752 (sh_encode_section_info): New.
4753 (push_regs): Add conditions for resbank.
4754 (sh_expand_epilogue): Likewise.
4755 (sh_insert_attributes): Likewise.
4756 (sh_attribute_table): Likewise.
4757 (sh_handle_resbank_handler_attribute): New.
4758 (sh2a_handle_function_vector_handler_attribute): New.
4759 (sh2a_is_function_vector_call): New.
4760 (sh2a_get_function_vector_number): New.
4761 (sh2a_function_vector_p): New.
4762 (sh_cfun_resbank_handler_p): New.
4763 * config/sh/sh.md (calli): Emit jsr/n if possible.
4764 (calli_tbr_rel): New.
4765 (calli_pcrel): Emit jsr/n if possible.
4766 (return_i): Emit rts/n if possible.
4767 (call_valuei_tbr_rel): New.
4768 (call_valuei_pcrel): Add condition for SH2A target.
4769 (call_value): Likewise.
4770 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4771 (sh2a_get_function_vector_number): Likewise.
4772 (sh2a_is_function_vector_call): Likewise.
4773 * doc/extend.texi: Document TBR relative addressing of SH2A.
4774 (resbank): Add description for SH2A.
4775
80296012 47762008-03-24 Richard Guenther <rguenther@suse.de>
4777
4778 PR c/22371
4779 * gimplify.c (gimplify_modify_expr): For frontend type-correct
4780 pointer assignments change conversions according to middle-end rules.
4781 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4782 * configure.ac: Include type checking in yes.
4783 * configure: Regenerate.
4784
43404f28 47852008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4786
4787 * diagnostic.c (diagnostic_count_diagnostic): Delete.
4788 (diagnostic_report_diagnostic): Update. Handle ICEs here.
4789
0a824f63 47902008-03-24 Nathan Sidwell <nathan@codesourcery.com>
4791
4792 * gthr-vxworks.h (UNUSED): Define.
4793
ffc0b1ed 47942008-03-23 H.J. Lu <hongjiu.lu@intel.com>
4795
d173d680 4796 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
ffc0b1ed 4797
9d5b78d0 47982008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
4799
4800 * doc/extend.texi (Function Attributes): Add missing comma in the
4801 example of the "alloc_size" attribute.
4802
933a719e 48032008-03-23 Uros Bizjak <ubizjak@gmail.com>
4804
4805 Revert:
4806 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
4807
4808 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4809 32bit host.
4810
4811 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
4812
4813 PR target/35496
4814 * stor-layout.c (update_alignment_for_field): Set minimum alignment
4815 of the underlying type of a MS bitfield layout to the natural
4816 alignment of the type.
4817
4818 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
4819
4820 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4821 to their natural alignment to avoid store forwarding stalls.
4822
0a685b29 48232008-03-22 Richard Guenther <rguenther@suse.de>
4824
4825 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
4826 For PHI nodes verify the address is invariant.
4827 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
4828 (get_symbol_constant_value): Use is_gimple_min_invariant.
4829 (maybe_fold_stmt_indirect): Likewise.
4830
10d4de0e 48312008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
4832
4833 PR rtl-optimization/33927
4834 * Makefile.in (dse.o): Depend on $(TM_P_H).
4835 * expr.h (extract_low_bits): Declare.
4836 * expmed.c (extract_low_bits): New function.
4837 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
4838 * dse.c: Include tm_p.h.
4839 (find_shift_sequence): Remove the read_reg argument and return the
4840 read value. Emit the instructions instead of returning them.
4841 Iterate on new_mode rather than calculating it each time.
4842 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
4843 source to NEW_MODE and extract_low_bits to convert the shifted
4844 value to READ_MODE.
4845 (replace_read): Allow the load and store to have different mode
4846 classes. Use extract_low_bits when SHIFT == 0. Create the shift
4847 or extraction instructions before trying the replacement. Update
4848 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
4849
941c7853 48502008-03-22 Uros Bizjak <ubizjak@gmail.com>
4851
4852 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4853 to their natural alignment to avoid store forwarding stalls.
4854
3a1e8d7a 48552008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
4856
3a30a2a9 4857 PR target/27946
3a1e8d7a 4858 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
4859 encouraging but not allowing gprs for input;
4860 change the input constraint to !f#r.
4861 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
4862 gprs for output;
4863 change the output constraint to !f#r.
4864
89ba852b 48652008-03-21 Uros Bizjak <ubizjak@gmail.com>
4866
4867 PR target/13958
4868 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
4869 corresponding post-reload splitters.
4870 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
4871 when x87 FP math is selected.
4872 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
4873 New function prototype.
4874 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
4875 unreachable function to ease macroization of insn patterns.
4876
4cc34f6b 48772008-03-21 Martin Jambor <mjambor@suse.cz>
4878
4879 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
4880 reference dumps if ddr is NULL or dependence is unknown.
4881
d9f903b8 48822008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
4883
4884 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
4885 unsigned extension into account.
4886 (ATOMIC_COMPARE_AND_SWAP): Likewise.
4887 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
4888 Do computations on a scratch register.
4889
71d9af81 48902008-03-21 Richard Guenther <rguenther@suse.de>
4891
4892 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4893 Use is_gimple_min_invariant instead of TREE_INVARIANT.
4894 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
4895 * tree-ssa-dom.c (record_equality): Likewise.
4896 * tree-inline.c (copy_body_r): Likewise.
4897 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
4898 TREE_INVARIANT.
4899
5b54eabf 49002008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
4901
4902 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
4903 as 'delete_unused' argument.
4904
8ac2d49b 49052008-03-20 Richard Guenther <rguenther@suse.de>
4906
4907 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
4908 special casing of constant qualifiers.
4909 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
4910 care about them in general.
4911 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
4912 regardless of their type.
4913 (fold_stmt_r): Forcefully fold *& if we end up with that.
4914
9d6f81ac 49152008-03-20 Paul Brook <paul@codesourcery.com>
4916
4917 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
4918 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
4919 linker flags.
4920 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
4921 definition.
4922 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
4923 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
4924
f63eb5d3 49252008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
4926
4927 * common.opt (Wmudflap): New option.
4928 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
4929 (mx_register_decls): Likewise.
4930 (mudflap_finish_file): Likewise.
4931 * doc/invoke.texi: Document -Wno-mudflap.
4932
49332008-03-20 Kai Tietz <kai.tietz@onevision.com>
635c5a98 4934
4935 * c-format.c (replace_format_name_to_system_name): New.
4936 (cmp_attribs): New.
4937 (convert_format_name_to_system_name): New.
4938 (decode_format_attr): Add use of convert_format_name_to_system_name.
4939 (format_types_orig): Add gnu_ prefix to names.
4940 (check_format_info_main): Special treating of \0 escaped names for
4941 supporting multi-character format specifiers as I32, I64.
4942 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
4943 (gnu_target_overrides_format_attributes): New.
4944 * c-format.h: Add structure target_ovr_attr to hold
4945 system specific formatter names.
4946 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
4947 msformat-c.o file to c_target_objs and cxx_target_objs.
4948 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4949 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
4950 (TARGET_N_FORMAT_TYPES): New.
4951 * config/i386/msformat-c.c: New.
4952 * config/i386/t-cygming: Add build rule for msformat-c.o.
4953 * doc/extend.texi: Add new format names gnu_* and ms_* and
4954 further details.
4955 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4956
877e1093 49572008-03-20 Ira Rosen <irar@il.ibm.com>
4958
4959 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
4960 optimizations turned on under -O3.
4961 (ftree-vectorize): Add that the flag is turned on with -O3.
4962
73b5bf07 49632008-03-20 Ben Elliston <bje@au.ibm.com>
4964
4965 * regmove.c (try_auto_increment): Fix spelling error in comment.
4966 * final.c (final_scan_insn): Likewise.
4967
59047d58 49682008-03-20 Uros Bizjak <ubizjak@gmail.com>
4969
4970 PR target/14552
4971 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
4972 allocator preferences for "y" and "r" class registers.
4973 ("*mov<mode>_internal"): Ditto.
4974 ("*movv2sf_internal_rex64"): Ditto.
4975 ("*movv2sf_internal"): Ditto.
4976
c0e7e9f7 49772008-03-19 Michael Matz <matz@suse.de>
4978
4979 PR middle-end/35616
4980 * calls.c (expand_call): Check overlap of arguments with call
4981 address for sibcalls.
4982
bb51041c 49832008-03-19 Uros Bizjak <ubizjak@gmail.com>
4984
4985 PR target/35496
4986 * stor-layout.c (update_alignment_for_field): Set minimum alignment
4987 of the underlying type of a MS bitfield layout to the natural
4988 alignment of the type.
4989
20099e35 49902008-03-19 Jan Hubicka <jh@suse.cz>
4991
4992 PR other/35094
4993 * toplev.c (decode_d_option): Handle all CPP flags.
4994 * tree-vrp.c: Update tree_pass descriptors.
4995 * regrename.c: Update tree_pass descriptors.
4996 * fwprop.c: Update tree_pass descriptors.
4997 * doc/invoke.texi: Remove documentation of dropped -d? flags.
4998 * tree-into-ssa.c: Update tree_pass descriptors.
4999 * tree-dump.c: Update tree_pass descriptors.
5000 * tree-complex.c: Update tree_pass descriptors.
5001 * tree-dump.h: Update tree_pass descriptors.
5002 * see.c: Update tree_pass descriptors.
5003 * cgraphbuild.c: Update tree_pass descriptors.
5004 * tracer.c: Update tree_pass descriptors.
5005 * tree-loop-distribution.c: Update tree_pass descriptors.
5006 * cgraph.c: Update tree_pass descriptors.
5007 * postreload-gcse.c: Update tree_pass descriptors.
5008 * postreload.c: Update tree_pass descriptors.
5009 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
5010 * tree-tailcall.c: Update tree_pass descriptors.
5011 * tree-pass.h (tree_opt_pass): Rename to ...
5012 (opt_pass) ... this one; add "type" field and remove letter field.
5013 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
5014 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
5015 all_lowering_passes): Update declaration.
5016 * ipa-cp.c: Update tree_pass descriptors.
5017 * final.c: Update tree_pass descriptors.
5018 * omp-low.c: Update tree_pass descriptors.
5019 * tree-ssa-dse.c: Update tree_pass descriptors.
5020 * ipa-reference.c: Update tree_pass descriptors.
5021 * tree-ssa-uncprop.c: Update tree_pass descriptors.
5022 * auto-inc-dec.c: Update tree_pass descriptors.
5023 * reorg.c: Update tree_pass descriptors.
5024 * cgraphunit.c: Update tree_pass descriptors.
5025 * tree-ssa-copyrename.c: Update tree_pass descriptors.
5026 * tree-ssa-ccp.c: Update tree_pass descriptors.
5027 * df-core.c: Update tree_pass descriptors.
5028 * mode-switching.c: Update tree_pass descriptors.
5029 * tree-nomudflap.c: Update tree_pass descriptors.
5030 * modulo-sched.c: Update tree_pass descriptors.
5031 * ipa-pure-const.c: Update tree_pass descriptors.
5032 * cse.c: Update tree_pass descriptors.
5033 * web.c: Update tree_pass descriptors.
5034 * tree-stdarg.c: Update tree_pass descriptors.
5035 * tree-ssa-math-opts.c: Update tree_pass descriptors.
5036 * tree-ssa-dom.c: Update tree_pass descriptors.
5037 * tree-nrv.c: Update tree_pass descriptors.
5038 * tree-ssa-alias.c: Update tree_pass descriptors.
5039 * loop-init.c: Update tree_pass descriptors.
5040 * gimple-low.c: Update tree_pass descriptors.
5041 * ipa-inline.c: Update tree_pass descriptors.
5042 * tree-ssa-sink.c: Update tree_pass descriptors.
5043 * global.c: Update tree_pass descriptors.
5044 * ifcvt.c: Update tree_pass descriptors.
5045 * jump.c: Update tree_pass descriptors.
5046 * predict.c: Update tree_pass descriptors.
5047 * tree-ssa-loop.c: Update tree_pass descriptors.
5048 * recog.c: Update tree_pass descriptors.
5049 * dse.c: Update tree_pass descriptors.
5050 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
5051 * tree-eh.c: Update tree_pass descriptors.
5052 * regmove.c: Update tree_pass descriptors.
5053 * local-alloc.c
5054 * function.c: Update tree_pass descriptors.
5055 * tree-vectorizer.c: Update tree_pass descriptors.
5056 * gcse.c: Update tree_pass descriptors.
5057 * ipa-type-escape.c: Update tree_pass descriptors.
5058 * tree-if-conv.c: Update tree_pass descriptors.
5059 * init-regs.c: Update tree_pass descriptors.
5060 * ipa.c: Update tree_pass descriptors.
5061 * tree-ssa-phiopt.c: Update tree_pass descriptors.
5062 * rtl-factoring.c: Update tree_pass descriptors.
5063 * lower-subreg.c: Update tree_pass descriptors.
5064 * bt-load.c: Update tree_pass descriptors.
5065 * tree-dfa.c: Update tree_pass descriptors.
5066 * except.c: Update tree_pass descriptors.
5067 * emit-rtl.c: Update tree_pass descriptors.
5068 * cfgexpand.c: Update tree_pass descriptors.
5069 * tree-cfgcleanup.c: Update tree_pass descriptors.
5070 * cfgcleanup.c: Update tree_pass descriptors.
5071 * tree-ssa-pre.c: Update tree_pass descriptors.
5072 * tree-sra.c: Update tree_pass descriptors.
5073 * tree-mudflap.c: Update tree_pass descriptors.
5074 * tree-ssa-copy.c: Update tree_pass descriptors.
5075 * cfglayout.c: Update tree_pass descriptors.
5076 * tree-ssa-forwprop.c: Update tree_pass descriptors.
5077 * tree-ssa-dce.c: Update tree_pass descriptors.
5078 * tree-ssa.c: Update tree_pass descriptors.
5079 * regclass.c: Update tree_pass descriptors.
5080 * integrate.c: Update tree_pass descriptors.
5081 * tree-optimize.c: Update tree_pass descriptors.
5082 * tree-ssa-phiprop.c: Update tree_pass descriptors.
5083 * tree-object-size.c: Update tree_pass descriptors.
5084 * combine.c: Update tree_pass descriptors.
5085 * tree-outof-ssa.c: Update tree_pass descriptors.
5086 * bb-reorder.c: Update tree_pass descriptors.
5087 * stack-ptr-mod.c: Update tree_pass descriptors.
5088 * var-tracking.c: Update tree_pass descriptors.
5089 * tree-profile.c: Update tree_pass descriptors.
5090 * tree-vect-generic.c: Update tree_pass descriptors.
5091 * reg-stack.c: Update tree_pass descriptors.
5092 * sched-rgn.c: Update tree_pass descriptors.
5093 * tree-ssa-structalias.c: Update tree_pass descriptors.
5094 * tree-cfg.c: Update tree_pass descriptors.
5095 * passes.c (current_pass): Update declaration.
5096 (finish_optimization_passes): Update.
5097 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5098 (register_one_dump_file, register_dump_files_1, next_pass_1):
5099 Update arguments.
5100 (init_optimization_passes): Update handling of new types.
5101 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5102 * ipa-struct-reorg.c: Update tree_pass descriptors.
5103 * tree-ssa-reassoc.c: Update tree_pass descriptors.
5104 * combine-stack-adj.c: Update tree_pass descriptors.
5105 * cfgrtl.c: Update tree_pass descriptors.
5106 * dce.c: Update tree_pass descriptors.
5107 * tree-ssanames.c: Update tree_pass descriptors.
5108
25084579 51092008-03-19 Richard Guenther <rguenther@suse.de>
5110
5111 PR middle-end/35609
60f42188 5112 * tree-ssa.c (walk_data): New structure.
5113 (warn_uninitialized_var): If not always_executed warn with "maybe"
25084579 5114 instead of "is".
5115 (execute_early_warn_uninitialized): Compute post-dominators.
5116 Initialize always_executed before processing each basic block.
5117
671cfe26 51182008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
5119
5120 PR target/35504
5121 * config/i386/i386.c (x86_this_parameter): Calculate correct location
5122 of "this" pointer when "regparm = N" or "fastcall" is in effect.
5123
dd518ada 51242008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5125
5126 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5127
dcfc697f 51282008-03-18 Paolo Bonzini <bonzini@gnu.org>
5129
671cfe26 5130 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5131 is true.
5132 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5133 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5134 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
5135 target after ignore has been set, and move there also the commputation
5136 of subtarget and original_target.
5137 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5138 (LANG_HOOKS_INITIALIZER): Remove it.
5139 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
dcfc697f 5140
b9e98b8a 51412008-03-18 Richard Guenther <rguenther@suse.de>
5142
5143 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5144 found an expression with constants, note that in the VN for the lhs.
5145 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5146 fold them to constants if possible. Run cleanup_cfg if done so.
5147 (execute_pre): Return todo.
5148 (do_pre): Likewise.
5149 (execute_fre): Likewise.
5150 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5151 of constants.
5152 (get_prop_source_stmt): Look through pointer conversions.
5153
4a1849e3 51542008-03-18 Jan Hubicka <jh@suse.cz>
5155
5156 * tree-pretty-print.c: Include predict.h.
5157 (dump_generic_node): Dump predictor.
5158 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5159 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5160 * gimple-low.c (lower_stmt): Likewise.
5161 * expr.c (expand_expr_real): Likewise.
5162 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5163 them.
5164 (build_predict_expr, build_predict_expr): New.
5165 * predict.h (predictor_name, build_predict_expr): Update.
5166 * c-typeck.c (c_finish_bc_stmt): Add prediction.
5167 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5168 * predict.def (PRED_CONTINUE): Update hitrate.
5169 * tree.def (PREDICT_EXPR): Define.
5170 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5171 do not handle BIND_EXPR.
5172 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5173 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5174 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5175 operands.
5176
a6eaabef 51772008-03-18 Michael Matz <matz@suse.de>
5178
5179 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5180
ffb04365 51812008-03-18 Richard Guenther <rguenther@suse.de>
5182
5183 * tree-gimple.h (is_gimple_invariant_address): Declare.
5184 (is_gimple_constant): Likewise.
5185 * tree-gimple.c (is_gimple_constant): New function.
5186 (is_gimple_invariant_address): Likewise.
5187 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5188 and is_gimple_invariant_address.
5189 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5190 previous change.
5191 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5192 an addressable base.
5193
0c378ed9 51942008-03-18 Jakub Jelinek <jakub@redhat.com>
5195
5196 PR middle-end/35611
5197 * gimplify.c (gimplify_expr): Gimplify second operand of
5198 OMP_ATOMIC_LOAD.
5199
0b4a6afc 52002008-03-17 Richard Guenther <rguenther@suse.de>
5201
5202 PR tree-optimization/19637
5203 * fold-const.c (fold_unary): Remove restrictions of removing
5204 intermediate pointer-conversions (P2)(P1)P0.
5205 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5206 conversion to void pointer.
5207 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5208
e845094d 52092008-03-16 James E. Wilson <wilson@tuliptree.org>
5210
5211 PR debug/31510
5212 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5213 emulated thread local variables.
5214
25080779 52152008-03-16 Richard Guenther <rguenther@suse.de>
5216
5217 PR middle-end/35607
5218 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5219 expand TREE_INVARIANT operations that are not gimple invariant.
5220
7290f090 52212008-03-16 Hans-Peter Nilsson <hp@axis.com>
5222
5223 * doc/extend.texi (Alignment): Say that the ABI controls
5224 the __alignof__ for non-strict-alignment targets rather
5225 than being a recommendation.
5226
49a83a87 52272008-03-15 Paul Brook <paul@codesourcery.com>
5228
5229 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5230 annotations.
5231 (arm_output_fn_unwind): Mark functions that can not be unwound.
5232
72e333b2 52332008-03-15 Paul Brook <paul@codesourcery.com>
5234
5235 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5236 extension instructions.
5237
04236c3a 52382008-03-15 Richard Guenther <rguenther@suse.de>
5239
5240 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5241 and fold constant aggregate refs.
5242 (fold_const_aggregate_ref): Handle string constants
5243 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
5244 (evaluate_stmt): Simplify now that ccp_fold folds constant
5245 aggregate refs.
5246
8b054d5a 52472008-03-15 Paul Brook <paul@codesourcery.com>
5248
5249 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5250 (extzv): Use gen_extzv_t2.
5251 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5252
e004838d 52532008-03-15 Richard Guenther <rguenther@suse.de>
5254
5255 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5256 (fold_const_aggregate_ref): Likewise.
5257 (get_value): Return NULL if we don't have any values.
5258 (ccp_finalize): Set const_val to NULL after freeing it.
5259 * tree-flow.h (get_symbol_constant_value): Declare.
5260 (fold_const_aggregate_ref): Likewise.
5261 * tree-ssa-sccvn.c (try_to_simplify): Use them.
5262
b7488229 52632008-03-15 Richard Guenther <rguenther@suse.de>
5264
5265 PR middle-end/35593
5266 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5267 to not produce negative array indices if not allowed. Add
5268 parameter to indicate that.
5269 (maybe_fold_offset_to_component_ref): Allow negative array
5270 indices only for the first member of a structure.
5271 (maybe_fold_offset_to_reference): Allow negative array indices.
5272 (maybe_fold_stmt_addition): Likewise.
5273
90ef7269 52742008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
bb51041c 5275 Anatoly Sokolov <aesok@post.ru>
90ef7269 5276
1f93c018 5277 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
90ef7269 5278 (avr_arch): Add ARCH_AVR6.
5279 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5280 (initial_elimination_offset): Initialize and use 'avr_pc_size'
5281 instead of fixed value 2.
5282 (print_operand_address): Use gs() asm specifier instead of pm().
5283 (avr_assemble_integer): (Ditto.).
5284 (avr_output_addr_vec_elt): (Ditto.).
5285 (print_operand): Handle "!" code.
1f93c018 5286 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
90ef7269 5287 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5288 (AVR_HAVE_EIJMP_EICALL): Define.
5289 (AVR_3_BYTE_PC): Redefine.
5290 (AVR_2_BYTE_PC): (Ditto.).
5291 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5292 (LINK_SPEC): Add atmega2560 and atmega2561.
5293 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
5294 (crtm2561.o).
1f93c018 5295 * config/avr/avr.md (call_insn): Use eicall instead of icall
90ef7269 5296 for 3 byte PC devices.
5297 (call_value_insn): (Ditto.).
5298 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5299 (indirect_jump): Use only for for 2 byte PC devices.
5300 (*tablejump): (Ditto.).
5301 (*indirect_jump_avr6): Add insn.
5302 (*tablejump_rjmp): Don't use for 3 byte PC devices.
1f93c018 5303 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
90ef7269 5304 instead of ijmp for 3 byte PC devices.
5305 (__tablejump2__): (Ditto.).
1f93c018 5306 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
90ef7269 5307 (MULITLIB_DIRNAMES): (Ditto.).
5308 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5309
28a2ab9f 53102008-03-15 Uros Bizjak <ubizjak@gmail.com>
5311
5312 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5313 "sse2_umulsidi3". Use V1DI mode for operand 0.
5314 ("mmx_psadbw"): Use V1DI mode for operand 0.
5315 * config/i386/i386-modes.def (V1SI): New vector mode.
5316 * config/i386/i386.c (struct builtin_description)
5317 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5318 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5319 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5320 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5321 v1di_ftype_v8qi_v8qi type.
5322 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5323
5324 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5325 __builtin_ia32_pmuludq]: Fix the mode of return value.
5326
a77a3698 53272008-03-15 Richard Guenther <rguenther@suse.de>
5328
5329 PR middle-end/35595
5330 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5331 being a PHI_NODE.
5332
2c613040 53332008-03-14 Bob Wilson <bob.wilson@acm.org>
5334
5335 * doc/invoke.texi (Option Summary, Xtensa Options): Document
5336 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5337 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5338 unless TARGET_SERIALIZE_VOLATILE is enabled.
5339 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5340 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5341 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5342
404d6be4 53432008-03-14 Richard Guenther <rguenther@suse.de>
5344
5345 PR tree-optimization/34172
5346 * tree-flow.h (refs_may_alias_p): Declare.
5347 (get_single_def_stmt): Likewise.
5348 (get_single_def_stmt_from_phi): Likewise.
5349 (get_single_def_stmt_with_phi): Likewise.
5350 * tree-dfa.c (refs_may_alias_p): New function.
5351 (get_single_def_stmt): Likewise.
5352 (get_single_def_stmt_from_phi): Likewise.
5353 (get_single_def_stmt_with_phi): Likewise.
5354 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5355 (vn_reference_lookup_1): New helper function.
5356 (vn_reference_lookup): Walk the virtual use-def chain to
5357 continue searching for a match if the def does not alias the
5358 reference we are looking for.
5359
a7af6b24 53602008-03-14 David Edelsohn <edelsohn@gnu.org>
5361
5362 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
5363 archive and Perzl. Update The Written Word listing.
5364
1d9353f3 53652008-03-14 Richard Guenther <rguenther@suse.de>
5366
5367 PR tree-optimization/34043
5368 PR tree-optimization/33989
5369 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5370 when doing FRE.
5371 (bitmap_find_leader): Use extra argument to verify dominance
5372 relationship inside a basic-block.
5373 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5374 (find_leader_in_sets): Adjust.
5375 (create_component_ref_by_pieces): Take extra argument for
5376 dominance check, handle lookup failures.
5377 (find_or_generate_expression): Likewise.
5378 (create_expression_by_pieces): Likewise.
5379 (insert_into_preds_of_block): Adjust.
5380 (create_value_expr_from): If asked for, verify all operands
5381 are in the blocks AVAIL_OUT set.
5382 (make_values_for_stmt): Check for SSA_NAMEs that are life
5383 over an abnormal edge.
5384 (compute_avail): Remove such check.
5385 (do_SCCVN_insertion): New function.
5386 (eliminate): If we do not find a leader suitable for replacement
5387 insert a replacement expression from SCCVN if available.
5388 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5389 (struct vn_ssa_aux): Add needs_insertion flag.
5390 * tree-ssa-sccvn.c (may_insert): New global flag.
5391 (copy_reference_ops_from_ref): Value-number union member access
5392 based on its size, not type and member if insertion is allowed.
5393 (visit_reference_op_load): For a weak match from union type
5394 punning lookup a view-converted value and insert a SSA_NAME
5395 for that value if that is not found.
5396 (visit_use): Make dumps shorter. Do not disallow value numbering
5397 SSA_NAMEs that are life over an abnormal edge to constants.
5398 (free_scc_vn): Release inserted SSA_NAMEs.
5399 (run_scc_vn): New flag to specify whether insertion is allowed.
5400 Process SSA_NAMEs in forward order.
5401 * tree-ssa-loop-im.c (for_each_index): Handle invariant
5402 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5403 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5404 pointer type to/from integral types that do not change the
5405 precision to regular conversions.
5406
c9f96750 54072008-03-13 Uros Bizjak <ubizjak@gmail.com>
5408
5409 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5410 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5411 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5412 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5b2ddfe1 5413 input arguments and the mode of return value. Built-in functions
5414 that operate on whole 64-bit MMX register now use V1DI mode.
c9f96750 5415
3992c686 54162008-03-13 Alon Dayan <alond@il.ibm.com>
5417 Olga Golovanevsky <olga@il.ibm.com>
5418
5419 PR tree-optimization/35041
5420 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5421 to locate the right position in a statement.
5422
517b0286 54232008-03-13 Uros Bizjak <ubizjak@gmail.com>
5424
5425 PR target/34000
5426 PR target/35553
5427 * config/i386/xmmintrin.h: Change all static inline functions to
5428 extern inline and add __gnu_inline__ attribute.
5429 * config/i386/bmintrin.h: Ditto.
5430 * config/i386/smmintrin.h: Ditto.
5431 * config/i386/tmmintrin.h: Ditto.
5432 * config/i386/mmintrin-common.h: Ditto.
5433 * config/i386/ammintrin.h: Ditto.
5434 * config/i386/emmintrin.h: Ditto.
5435 * config/i386/pmmintrin.h: Ditto.
5436 * config/i386/mmintrin.h: Ditto.
5437 * config/i386/mm3dnow.h: Ditto.
5438
a4890dc9 54392008-03-13 Jakub Jelinek <jakub@redhat.com>
5440
5441 PR middle-end/35185
5442 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5443 (lower_omp_2): New function.
5444 (lower_omp_1, lower_omp): Rewritten.
5445
ebba2dc7 54462008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
5447
5448 PR 35054
5449 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5450 with the phrase "Microsoft Windows compilers".
5451 (Push/Pop Macro Pragmas): New subsection. Document
5452 #pragma push_macro and pragma pop_macro.
5453
1c4adc7a 54542008-03-12 Paul Brook <paul@codesourcery.com>
5455
5456 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5457
1d9e8561 54582008-03-12 Paul Brook <paul@codesourcery.com>
5459
5460 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5461 (thumb2_alusi3_short): Exclude PLUS and MINUS.
5462 (thumb2_addsi_shortim): Rename ...
5463 (thumb2_addsi_short): ... to this. Allow register operands.
5464 (thumb2_subsi_short): New pattern.
5465 (thumb2_one_cmplsi2_short,
5466 thumb2_negsi2_short): New patterns and peepholes.
5467
e077db18 54682008-03-12 Paul Brook <paul@codesourcery.com>
5469
e077db18 5470 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5471
96b39775 54722008-03-12 Uros Bizjak <ubizjak@gmail.com>
5473
5474 * config/i386/i386.md (int_cond): New code iterator.
5475 (fp_cond): Ditto.
5476 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5477 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5478 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5479 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5480 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5481 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5482 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5483 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5484
bb21ed29 54852008-03-12 Paul Brook <paul@codesourcery.com>
5486
5487 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5488 instead of {arm,thumb}_compute_save_reg_mask.
5489 (output_return_instruction): Ditto.
5490 (thumb_unexpanded_epilogue): Ditto.
5491 (thumb1_expand_prologue): Ditto.
5492 (thumb1_output_function_prologue): Ditto.
5493 (arm_set_return_address): Ditto.
5494 (thumb_set_return_address): Ditto.
5495 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
5496 regs to achieve stack alignment.
5497 (thumb1_compute_save_reg_mask): Fix compiler warning.
5498 (arm_output_epilogue): Use offsets->saved_regs_mask.
5499 Adjust stack pointer by poping call clobered registers.
5500 (arm_expand_prologue): Use offsets->saved_regs_mask.
5501 Adjust stack pointer by pushing extra registers.
a4890dc9 5502 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
bb21ed29 5503
92b2f241 55042008-03-12 Paolo Bonzini <bonzini@gnu.org>
5505
5506 PR tree-opt/35422
5507 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5508 conversion to the operands of a multiplication.
5509
a2fd87ad 55102008-03-12 Richard Guenther <rguenther@suse.de>
5511
5512 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5513 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5514 * timevar.def (TV_TREE_PHIPROP): Add.
5515 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5516 pass description. Use TV_TREE_PHIPROP.
5517 * tree-ssa-forwprop.c: Remove phiprop code.
5518
e8a588af 55192008-03-12 Jakub Jelinek <jakub@redhat.com>
5520
5521 PR middle-end/35549
5522 * omp-low.c (maybe_lookup_decl): Constify first argument.
5523 (use_pointer_for_field): Change last argument from bool to
5524 omp_context *. Disallow shared copy-in/out in nested
5525 parallel if decl is shared in outer parallel too.
5526 (build_outer_var_ref, scan_sharing_clauses,
5527 lower_rec_input_clauses, lower_copyprivate_clauses,
5528 lower_send_clauses, lower_send_shared_vars): Adjust callers.
5529
c6ba58f9 55302008-03-12 Victor Kaplansky <victork@il.ibm.com>
5531 Ira Rosen <irar@il.ibm.com>
5532
5533 * tree-vectorizer.c (free_stmt_vec_info): New function.
5534 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5535 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5536 * tree-vectorizer.h (free_stmt_vec_info): Declare.
5537 * tree-vect-transform.c (vectorizable_conversion): Free
5538 vec_oprnds0 if it was allocated.
5539 (vect_permute_store_chain): Remove unused VECs.
5540 (vectorizable_store): Free VECs that are allocated in the..
5541 function.
5542 (vect_transform_strided_load, vectorizable_load): Likewise.
5543 (vect_remove_stores): Simplify the code.
5544 (vect_transform_loop): Move code to vect_remove_stores().
5545 Call vect_remove_stores() and free_stmt_vec_info().
5546
feb01ed5 55472008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5548
5549 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5550 TARGET_HPUX. Revise comment.
5551 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5552 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5553 Use sr4 variant of `be' instruction when not generating PIC code.
5554 (attr_length_call): Adjust for above change.
5555
6219f064 55562008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5557
5558 * ipa-reference.c (static_execute): Remove module_statics_const and
5559 associated setting code.
5560
47b5db9d 55612008-03-11 Uros Bizjak <ubizjak@gmail.com>
5562
5563 PR target/35540
5564 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
59047d58 5565 predicate for operand 1.
5566 (paritysi2_cmp): Use register_operand predicate for operand 2.
47b5db9d 5567 Use earlyclobber modifier for operand 1. Remove support for
5568 memory operands.
59047d58 5569 (paritydi2_cmp): Use register_operand predicate for operand 3.
47b5db9d 5570 Use earlyclobber modifier for operand 1. Remove support for
5571 memory operands.
5572
6640ca58 55732008-03-11 Paul Brook <paul@codesourcery.com>
47b5db9d 5574 Vladimir Prus <vladimir@codesourcery.com>
6640ca58 5575
5576 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5577 (arm_compute_save_reg0_reg12_mask): Always
5578 check if register 11 must be saved. Always safe hard frame pointer
5579 when frame_pointer_needeed.
5580 (arm_compute_save_reg_mask): Save IP and PC
5581 only with apcs frames.
5582 (arm_output_epilogue): Adjust Thumb2 codepath to
5583 be also invoked and work for ARM non-apcs frames.
5584 (arm_expand_prologue): Don't bother saving IP
5585 for non-apcs frame, since it's not clobbered by
5586 prologue code. Implement non-apcs frame
5587 layout.
5588
8ae2fa3b 55892008-03-11 Paolo Bonzini <bonzini@gnu.org>
5590
5591 PR rtl-optimization/35281
5592 * expr.c (convert_move): Use a new pseudo for the intermediate
5593 from_mode->word_mode result.
5594
c616456b 55952008-03-11 Paolo Bonzini <bonzini@gnu.org>
5596
6640ca58 5597 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5598 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5599 * toplev.c (compile_file): Don't call it.
c616456b 5600
e06aee53 56012008-03-11 Uros Bizjak <ubizjak@gmail.com>
5602
5603 PR middle-end/35526
5604 * expr.c (store_expr): Call emit_block_move if the mode
5605 of "temp" RTX is BLKmode.
5606
06240723 56072008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
e06aee53 5608 Richard Guenther <rguenther@suse.de>
06240723 5609
5610 PR tree-optimization/31358
5611 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5612 the step with a NULL_TREE.
5613 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5614 to sizetype if type is a pointer type.
5615 (add_candidate_1): Don't convert the base and step to
5616 the generic type if the orginal type is a pointer type.
5617 (add_iv_value_candidates): Use sizetype for the step
5618 if type is a pointer type.
5619 (cand_value_at): Likewise.
5620 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5621 for pointer types.
5622 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5623 Don't convert the tem affine to the type.
5624 (add_elt_to_tree): Use sizetype for the step if a pointer.
5625 Use POINTER_PLUS_EXPR for pointers.
5626 (aff_combination_to_tree): Use sizetype for the step if a
5627 pointer.
5628
267858a7 56292008-03-10 Vladimir Makarov <vmakarov@redhat.com>
5630
5631 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5632 Remove commutativity hint.
5633
b821e790 56342008-03-10 Jakub Jelinek <jakub@redhat.com>
5635
50389d5d 5636 PR c/35438
5637 PR c/35439
5638 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5639 errorneous type. Check that v is a VAR_DECL.
5640
b821e790 5641 PR middle-end/35099
5642 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5643
ff949d47 56442008-03-10 H.J. Lu <hongjiu.lu@intel.com>
5645
5646 PR tree-optimization/35494
5647 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5648 may be overriden at link and run time.
5649
466e11c3 56502008-03-10 Richard Guenther <rguenther@suse.de>
5651
5652 PR tree-optimization/34677
5653 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5654 (poolify_tree): Likewise.
5655 (modify_expr_template): Likewise.
5656 (poolify_modify_stmt): Likewise.
5657 (insert_fake_stores): Handle all component-ref style stores
5658 in addition to INDIRECT_REF. Also handle complex types.
5659 Do not poolify the inserted load.
5660 (realify_fake_stores): Do not rebuild the tree but only
5661 make it a SSA_NAME copy.
5662 (init_pre): Remove initialzation of modify_expr_template.
5663 Do not allocate modify_expr_node_pool.
5664 (fini_pre): Do not free modify_expr_node_pool.
5665
2c2d2f40 56662008-03-10 Paul Brook <paul@codesourcery.com>
5667
5668 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5669 to avoid conflicts.
5670
934a1e72 56712008-03-10 Paul Brook <paul@codesourcery.com>
e06aee53 5672 Mark Shinwell <shinwell@codesourcery.com>
934a1e72 5673
934a1e72 5674 * config/arm/cortex-r4.md: New.
5675 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5676 insn attributes.
5677 * config/arm/arm.md: Include cortex-r4.md.
5678 (insn): Add smmls, sdiv and udiv values.
5679 (generic_sched): Don't use generic scheduling for Cortex-R4.
5680 (arm_issue_rate): New function.
5681 (TARGET_SCHED_ISSUE_RATE): Define.
5682
767297d1 56832008-03-10 Sebastian Pop <sebastian.pop@amd.com>
5684
5685 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5686
10bf6100 56872008-03-10 Richard Guenther <rguenther@suse.de>
5688
5689 * tree-ssa-pre.c (get_sccvn_value): Simplify.
5690 (compute_avail): Do not add stmt uses to AVAIL_OUT.
5691
550a64af 56922008-03-10 Paolo Bonzini <bonzini@gnu.org>
5693
5694 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5695 Set default to true.
5696
2c3b9819 56972008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5698
5699 * c.opt (Wsynth): Deprecate.
5700 * doc/invoke.texi (Option Summary, Warning Options): Document
5701 -Wno-format-contains-nul.
5702
e2cb4221 57032008-03-09 Uros Bizjak <ubizjak@gmail.com>
5704
5705 PR target/35496
2f6e3388 5706 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
e2cb4221 5707 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5708
5c93936e 57092008-03-09 Ira Rosen <irar@il.ibm.com>
5710
5711 * config/rs6000/rs6000.c (builtin_description): Rename vector
5712 left shift operations.
5713 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5714 (altivec_vsl<VI_char>): Rename to ...
5715 (ashl<mode>3): ... new name.
5716 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5717 gen_ashlv4si3.
5718 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5719
a961cdc2 57202008-03-08 Richard Guenther <rguenther@suse.de>
5721
5722 * coverage.h (tree_coverage_counter_addr): Declare.
5723 * coverage.c (tree_coverage_counter_addr): New function.
5724 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5725 before using again.
5726 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5727 (tree_gen_one_value_profiler): Likewise.
5728 (tree_gen_ic_profiler): Likewise.
5729 (tree_gen_average_profiler): Likewise.
5730 (tree_gen_ior_profiler): Likewise.
5731
51a23cfc 57322008-03-08 Richard Guenther <rguenther@suse.de>
5733
5734 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5735 (vn_binary_op_insert): Likewise.
5736 (vn_unary_op_lookup): Likewise.
5737 (vn_unary_op_insert): Likewise.
5738 (vn_nary_op_lookup): Declare.
5739 (vn_nary_op_insert): Likewise.
5740 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5741 and binary hashes, use a single obstack for unary_op_pool
5742 and binary_op_pool.
5743 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5744 a single struct vn_nary_op_s. Store tree code length and
5745 a variable number of operands.
5746 (struct vn_reference_op_struct): Remove unused op2.
5747 (vn_reference_op_eq): Do not compare op2.
5748 (vn_reference_op_compute_hash): Do not compute hash of op2.
5749 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5750 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5751 with vn_nary_op_compute_hash.
5752 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5753 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5754 vn_nary_op_lookup.
5755 (vn_unary_op_insert, vn_binary_op_insert): Replace with
5756 vn_nary_op_insert.
5757 (visit_unary_op): Call nary functions.
5758 (visit_binary_op): Likewise.
5759 (process_scc): Adjust for struct vn_tables_s changes.
5760 (allocate_vn_table): Likewise.
5761 (free_vn_table): Likewise.
5762 * tree-vn.c (vn_add): Call nary functions.
5763 (vn_lookup): Likewise.
5764
ce096d07 57652008-03-08 Jakub Jelinek <jakub@redhat.com>
5766
5767 PR target/35498
5768 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5769 wdst back after sync_compare_and_swapqhi_internal.
5770
7916ca8a 57712008-03-08 Uros Bizjak <ubizjak@gmail.com>
5772
5773 PR target/22152
5774 * config/i386/i386-modes.def (V1DI): New vector mode.
5775 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5776 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5777 (MMXMODE248): Ditto.
5778 (MMXMODE): Add V1DI mode.
5779 (mmxvecsize): Change DI mode to V1DI mode.
5780 ("mov<mode>): Use MMXMODEI8 mode iterator.
5781 ("*mov<mode>_internal_rex64"): Ditto.
5782 ("*mov<mode>_internal"): Ditto.
5783 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
5784 ("mmx_sub<mode>3"): Ditto.
5785 ("mmx_adddi3"): Remove insn pattern.
5786 ("mmx_subdi3"): Ditto.
5787 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
5788 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
5789 ("mmx_ashl<mode>3"): Ditto.
5790 ("mmx_lshrdi3"): Remove insn pattern.
5791 ("mmx_ashldi3"): Ditto.
5792 * config/i386/i386.c (classify_argument): Handle V1DImode.
5793 (function_arg_advance_32): Ditto.
5794 (function_arg_32): Ditto.
5795 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
5796 mmx_addv1di3 insn pattern.
5797 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
5798 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
5799 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
5800 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
5801 Remove definitions of built-in functions.
5802 (V1DI_type_node): New node.
5803 (v1di_ftype_v1di_int): Ditto.
5804 (v1di_ftype_v1di_v1di): Ditto.
5805 (v2si_ftype_v2si_si): Ditto.
5806 (v4hi_ftype_v4hi_di): Remove node.
5807 (v2si_ftype_v2si_di): Ditto.
5808 (ix86_init_mmx_sse_builtins): Handle V1DImode.
5809 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
5810 Redefine builtins using def_builtin_const with *_ftype_*_int node.
5811 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
5812 Add new builtins using def_builtin_const.
5813 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
5814 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
5815 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
5816 * config/i386/mmintrin.h (__v1di): New typedef.
5817 (_mm_add_si64): Cast arguments to __v1di type.
5818 (_mm_sub_si64): Ditto.
5819 (_mm_sll_pi16): Cast __count to __v4hi type.
5820 (_mm_sll_pi32): Cast __count to __v2si type.
5821 (_mm_sll_si64): Cast arguments to __v1di type.
5822 (_mm_srl_pi16): Cast __count to __v4hi type.
5823 (_mm_srl_pi32): Cast __count to __v2si type.
5824 (_mm_srl_si64): Cast arguments to __v1di type.
5825 (_mm_sra_pi16): Cast __count to __v4hi type.
5826 (_mm_sra_pi32): Cast __count to __v2si type.
5827 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
5828 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
5829 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
5830 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
5831 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
5832 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
5833 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
5834 (_mm_srai_pi32): Use __builtin_ia32_psradi.
5835 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
5836 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5837 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5838 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
5839
4d170403 58402008-03-07 Joseph Myers <joseph@codesourcery.com>
5841
5842 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
5843
55100279 58442008-03-07 Peter Bergner <bergner@vnet.ibm.com>
5845
5846 PR target/35373
5847 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
5848 reg+const addressing for Altivec modes. Don't generate reg+reg
5849 addressing for TFmode or TDmode quantities.
5850
29f51994 58512008-03-07 Paolo Bonzini <bonzini@gnu.org>
5852
5853 * c-common.c (vector_types_convertible_p): Call langhook
5854 instead of comptypes.
5855
6e6e51e5 58562008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
5857
5858 PR tree-opt/35402
5859 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
5860 integral and scalar float variables which have a
5861 NULL DECL_INITIAL.
5862
bf2e2aa9 58632008-03-06 Nathan Froyd <froydnj@codesourcery.com>
5864
5865 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
5866 dwarf_register_span hook when emitting unwind information for
5867 register-to-memory saves.
5868 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
5869 (rs6000_frame_related): Remove call to spe_synthesize_frame.
5870
83c5f690 58712008-03-06 Jakub Jelinek <jakub@redhat.com>
5872
5873 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
5874 for the same VAR_DECL.
5875
167057eb 58762008-03-06 Tom Tromey <tromey@redhat.com>
5877
5878 * treelang: Delete.
5879 * doc/standards.texi (Standards): Don't mention treelang.
5880 * doc/invoke.texi (Overall Options): Don't mention treelang.
5881 * doc/install.texi (Prerequisites): Don't mention bison or
5882 treelang.
5883 (Configuration): Don't mention treelang.
5884 (Building): Likewise.
5885 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
5886
8178351b 58872008-03-06 Paolo Bonzini <bonzini@gnu.org>
5888
5889 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
5890 word-extractions out of a multi-word object.
5891
70337474 58922008-03-06 Richard Guenther <rguenther@suse.de>
5893
5894 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
5895 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
5896 result type and precision.
5897 * expr.c (get_inner_reference): Set unsignedp based on the result
5898 type of BIT_FIELD_REF.
5899 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
5900 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
5901 (try_instantiate_multiple_fields): Likewise. Use the correct type
5902 for BIT_FIELD_REF.
5903 (sra_build_assignment): Likewise.
5904 (sra_build_elt_assignment): Likewise.
5905 (sra_explode_bitfield_assignment): Likewise.
5906 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
5907 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
5908 set BIT_FIELD_REF_UNSIGNED.
5909 (vectorizable_load): Likewise.
5910
b357aba8 59112008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
5912
5913 * cse.c (cse_extended_basic_block): Invalidate artificial defs
5914 at bb start.
5915
1e020227 59162008-03-06 Richard Guenther <rguenther@suse.de>
5917
5918 * alias.c (struct alias_set_entry): Move has_zero_child field
5919 to pack with alias_set.
5920
4a8f8ebf 59212008-03-05 H.J. Lu <hongjiu.lu@intel.com>
5922
5923 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5924 32bit host.
5925
f701cb4d 59262008-03-05 Ian Lance Taylor <iant@google.com>
5927
5928 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
5929
957f873e 59302008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
30de5b55 5931
5932 * fwprop.c (update_df): Support width and offset parameters of
5933 df_ref_create.
5934 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
5935 global_conflicts): Change DF_REF_EXTRACT to either
5936 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
5937 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5938 * df-scan.c (df_ref_record, df_defs_record,
5939 df_ref_create_structure, df_def_record_1, df_uses_record,
5940 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
5941 df_bb_refs_collect, df_entry_block_defs_collect,
5942 df_exit_block_uses_collect): Support new width and offset fields.
5943 (ref_extract_pool): New storage pool.
5944 (df_free_ref): New function.
5945 (df_reg_chain_unlink, df_free_collection_rec,
5946 df_sort_and_compress_refs): Call df_free_ref.
5947 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
5948 of df_ref_extract.
5949 (df_ref_create_structure): Allocate df_ref_extract if offset and
5950 width fields are used.
5951 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
5952 (df_uses_record): Get offset and width from ZERO_EXTRACT
5953 and SIGN_EXTRACT.
5954 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
5955 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
5956 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5957 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
5958 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
5959 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5960 (df_ref_extract): New structure.
5961 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
5962 (df_ref_create): Add width and offset parameters.
5963
a306ee43 59642008-03-05 Richard Guenther <rguenther@suse.de>
5965
5966 * tree-ssa-structalias.c (get_constraint_for_component_ref):
5967 Use ranges_overlap_p.
5968 (offset_overlaps_with_access): Rename
5969 to ranges_overlap_p and move ...
5970 * tree-flow-inline.h (ranges_overlap_p): ... here.
5971
5972 * tree.h (get_inner_reference, handled_component_p): Update
5973 comments.
5974
5975 * tree.h (record_component_aliases, get_alias_set,
5976 alias_sets_conflict_p, alias_sets_must_conflict_p,
5977 objects_must_conflict_p): Move declarations ...
5978 * alias.h (record_component_aliases, get_alias_set,
5979 alias_sets_conflict_p, alias_sets_must_conflict_p,
5980 objects_must_conflict_p): ... here.
5981 Include coretypes.h.
5982 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
5983
d03ba86f 59842008-03-05 Aldy Hernandez <aldyh@redhat.com>
5985
5986 * cfg.c: Include tree-flow.h.
5987 (remove_edge_raw): Call redirect_edge_var_map_clear.
5988 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
5989 * tree-flow-inline.h (redirect_edge_var_map_def): New.
5990 (redirect_edge_var_map_result): New.
5991 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
5992 PENDING_STMT use with redirect_edge_var_map_*.
5993 * tree-ssa.c (edge_var_maps): New definition.
5994 (redirect_edge_var_map_add): New.
5995 (redirect_edge_var_map_clear): New.
5996 (redirect_edge_var_map_dup): New.
5997 (redirect_edge_var_map_vector): New.
5998 (redirect_edge_var_map_destroy): New.
5999 (ssa_redirect_edge): Replace PENDING_STMT use with
6000 redirect_edge_var_map_*.
6001 (flush_pending_stmts): Same.
6002 (delete_tree_ssa): Destroy edge var map.
6003 * tree-flow.h (struct _edge_var_map): New.
6004 Define edge_var_map vector type.
6005 Declare redirect_edge_var_map_* prototypes.
6006 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6007 * tree-cfg.c (reinstall_phi_args): Replace
6008 PENDING_STMT use with redirect_edge_var_map_*.
6009
7cf3d282 60102008-03-05 Richard Guenther <rguenther@suse.de>
6011
6012 PR tree-optimization/35472
6013 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
6014 whose single use_stmt has a overlapping set of loaded and
6015 stored symbols as that use_stmt might be a noop assignment then.
6016
2349cd3e 60172008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
6018
6019 * gthr-rtems.h: Implement __gthread_mutex_destroy.
6020
70d2daf7 60212008-03-05 Richard Guenther <rguenther@suse.de>
6022
6023 PR c++/35336
6024 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
6025 should be constants.
6026 * tree-cfg.c (verify_expr): Verify it.
6027 * fold-const.c (fold_truthop): Remove code generating
6028 BIT_FIELD_REFs of structure bases.
6029 (fold_binary): Likewise.
6030 (fold_ternary): Position and size of BIT_FIELD_REFs are
6031 always host integers.
6032 (make_bit_field_ref): Remove.
6033 (optimize_bit_field_compare): Remove.
6034 (all_ones_mask_p): Remove.
6035
a08778a2 60362008-03-05 Gabor Loki <loki@gcc.gnu.org>
6037
6038 PR gcc/33009
6039 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
6040 (split_block_and_df_analyze): New. Split basic block and rebuild
6041 dataflow.
6042 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
6043 SPLIT_BLOCK.
6044 (split_pattern_seq): Likewise.
6045 (erase_matching_seqs): Likewise.
6046 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
6047
ad7c187a 60482008-03-04 Geoff Keating <geoffk@apple.com>
6049
6050 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
6051 declaration and code.
6052 (tree_invalid_nonnegative_warnv_p): Likewise.
6053
57c56476 60542008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
6055
6056 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
6057 examples. Truncate option-names then causing overfull hbox.
6058
d4f869a6 60592008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6060
6061 PR target/35222
6062 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
6063 on hpux10.
6064 * configure: Rebuilt.
6065
ea1a85df 60662008-03-04 Rafael Espindola <espindola@google.com>
6067
6068 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
6069 (tree_unary_nonnegative_warnv_p): New.
6070 (tree_binary_nonnegative_warnv_p): New.
6071 (tree_single_nonnegative_warnv_p): New.
6072 (tree_invalid_nonnegative_warnv_p): New.
6073 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
6074
88d4fcc4 60752008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6076
6077 PR 28322
6078 * opts.c (handle_option): Postpone 'unknown option' errors only for
6079 warning options.
6080
f98d7ce9 60812008-03-04 H.J. Lu <hongjiu.lu@intel.com>
6082
6083 PR target/35453
6084 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
6085 (_SIDD_XXX): This.
6086
937bceaf 60872008-03-04 Rafael Espindola <espindola@google.com>
6088
6089 * fold-const.c (tree_unary_nonzero_warnv_p): New.
6090 (tree_binary_nonzero_warnv_p): New.
6091 (tree_single_nonzero_warnv_p): New.
6092 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6093
01e93ec4 60942008-03-04 Uros Bizjak <ubizjak@gmail.com>
6095
6096 PR middle-end/35456
6097 * fold-const.c (fold_cond_expr_with_comparison): Prevent
6098 transformations for modes that have signed zeros.
6099 * ifcvt.c (noce_try_abs): Ditto.
6100
cfb92464 61012008-03-04 Joseph Myers <joseph@codesourcery.com>
6102
6103 * config/i386/i386.c (override_options): Force
6104 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6105
fb1b7d77 61062008-03-04 Jan Hubicka <jh@suse.cz>
6107
6108 PR c++/35262
6109 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6110 in last commit.
6111
9b980db1 61122008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6113
6114 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
bb51041c 6115 label to probe the stack.
9b980db1 6116
abefb712 61172008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6118
6119 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6120 (__gthr_win32_mutex_destroy): Declare.
6121 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6122 __gthr_win32_mutex_destroy.
6123 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
6124
99e909be 61252008-03-03 Jan Hubicka <jh@suse.cz>
6126
6127 PR c++/35262
6128 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6129 aggressive on inlining cold calls.
6130
802d9f2f 61312008-03-03 Richard Guenther <rguenther@suse.de>
6132
6133 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6134 struct copies into the expression table.
6135 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6136 (try_to_simplify): Likewise.
6137 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6138 integral and pointer arguments which do not change the
6139 precision to NOP_EXPRs.
6140 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6141 VIEW_CONVERT_EXPR case.
6142
663608f5 61432008-03-02 Sebastian Pop <sebastian.pop@amd.com>
6144
6145 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6146 defined in a loop at depth 0 is invariant.
6147 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6148 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6149 be called at loop depth 0.
6150
e46a4556 61512008-03-02 Jakub Jelinek <jakub@redhat.com>
6152
6153 PR driver/35420
6154 * gcc.c (process_command): Update copyright notice dates.
6155 * gcov.c (print_version): Likewise.
6156 * gcov-dump.c (print_version): Likewise.
6157 * mips-tfile.c (main): Likewise.
6158 * mips-tdump.c (main): Likewise.
6159
07317e69 61602008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6161
6162 PR 24924
6163 * c-common.c (flag_permissive): Delete.
6164 (constant_expression_warnings): Check flags first.
6165 (constant_expression_error): New.
6166 * c-common.h (flag_permissive): Delete.
6167 (constant_expression_error): Declare.
6168 * flags.h (flag_permissive): Declare. Update description.
6169 * diagnostic.c (pedwarn): Update.
6170 (permerror): New.
6171 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6172 (permissive_error_kind): New.
6173 * toplev.c (flag_permissive): Define. Update description.
6174 * toplev.h (permissive_error_kind): Declare.
6175 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6176 (pedwarn_c90): Use pedantic_warning_kind.
6177 * c-opts.c (c_common_post_options): flag_permissive does not affect
6178 flag_pedantic_errors.
6179
462a0c31 61802008-03-02 Joseph Myers <joseph@codesourcery.com>
6181
6182 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6183 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6184 __absvsi2, __absvDI2): Use unsigned arithmetic.
6185
64cf91f5 61862008-03-02 Andi Kleen <ak@suse.de>
e06aee53 6187 Richard Guenther <rguenther@suse.de>
64cf91f5 6188
6189 * struct-equiv.c: Remove file.
6190 * cfg_cleanup.c (condjump_equiv_p): Remove.
6191 * Makefile.in (OBJS-common): Remove struct-equiv.o.
6192 (struct-equiv.o): Remove rule.
6193 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6194 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
6195 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6196
ba0b5cfc 61972008-03-01 Alexandre Oliva <aoliva@redhat.com>
6198
6199 * ifcvt.c (noce_process_if_block): Try to handle only the then
6200 block if the else block exists but isn't suitable.
6201
71239661 62022008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6203
6204 PR gcc/35063
6205 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6206 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6207 regression from previous patch.
6208
1cd3a344 62092008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6210
6211 PR gcc/35063
6212 * gthr.h: Add __gthread_mutex_destroy as a function that must be
6213 implemented.
6214 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6215 * gthr-single.h (__gthread_mutex_destroy): Likewise.
6216 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6217 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6218 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6219 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6220 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6221 (__gthread_mutex_destroy_function): Rename to
6222 __gthread_mutex_destroy.
6223 * gthr-dce.h (__gthread_mutex_destroy): Call
6224 pthread_mutex_destroy.
6225 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6226 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6227 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6228
a2bdd643 62292008-03-01 Alexandre Oliva <aoliva@redhat.com>
6230
6231 * df-scan.c (df_ref_chain_change_bb): Simplify.
6232 (df_insn_change_bb): Add new_bb argument. Simplify. Call
6233 set_block_for_insn if there's any change.
6234 * df.h ((df_insn_change_bb): Fix prototype.
6235 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6236 df_insn_change_bb, don't call set_block_for_insn.
6237 * emit-rtl.c (reorder_insns): Likewise.
6238 * haifa-sched.c (move_insn): Likewise.
6239
c8707f08 62402008-03-01 Alexandre Oliva <aoliva@redhat.com>
6241
6242 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6243
200ad982 62442008-03-01 Alexandre Oliva <aoliva@redhat.com>
6245
6246 * tree-flow-inline.h (next_readonly_imm_use): Return
6247 NULL_USE_OPERAND_P after the end.
6248
0045e505 62492008-03-01 Richard Guenther <rguenther@suse.de>
6250
6251 PR tree-optimization/35411
6252 * tree-sra.c (sra_build_assignment): Split conversion to
6253 final type to a separate statement if we are not assigning
6254 to a register.
6255
4a2f7014 62562008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
6257
6258 * fold-const.c (fold_convertible_p): Correct the logic to follow
6259 that in fold_convert().
6260
e8e0078c 62612008-02-29 Douglas Gregor <doug.gregor@gmail.com>
6262
6263 PR c++/35315
6264 * tree-inline.c (build_duplicate_type): When we make a
6265 duplicate type, make it unique in the canonical types system.
6266
26cb3d1c 62672008-02-29 Tom Tromey <tromey@redhat.com>
6268
6269 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6270 input_file_stack_history, input_file_stack_restored): Remove.
6271 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6272 * input.h (struct file_stack): Remove.
6273 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6274 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6275 Likewise.
6276 * diagnostic.h (struct diagnostic_context) <last_module>: Change
6277 type.
6278 (diagnostic_last_module_changed): Add 'map' argument.
6279 (diagnostic_set_last_function): Likewise.
6280 * diagnostic.c (undiagnostic_report_current_module): Iterate using
6281 line map, not input_file_stack.
6282 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6283
a09d6770 62842008-02-29 Paul Brook <paul@codesourcery.com>
6285
6286 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6287
a7aa526d 62882008-02-29 Paul Brook <paul@codesourcery.com>
6289
6290 * config/arm/ieee754-df.S (muldf3): Use RET macros.
6291
d4cdfd27 62922008-02-29 Richard Guenther <rguenther@suse.de>
6293
6294 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6295 vn_lookup_or_add.
6296 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6297 value for comparing for a store match.
6298 (simplify_unary_expression): Do nothing for SSA_NAMEs.
6299 (try_to_simplify): Do not do a full-blown reference lookup.
6300
607ac910 63012008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6302
6303 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6304 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6305
6306 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6307
2fcf1fbb 63082008-02-29 Sebastian Pop <sebastian.pop@amd.com>
6309
6310 * tree-loop-linear.c (try_interchange_loops): Compare memory access
6311 strides against cache sizes.
6312
583c0935 63132008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6314
6315 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6316 constant to fpul.
6317
ad76ccf5 63182008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
6319
6320 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6321 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6322 is smaller than the original promoted value.
6323 (simplify_subreg): If OP is a SUBREG, try to preserve its
6324 SUBREG_PROMOTED_VAR_P information.
6325
b9584939 63262008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
6327
6328 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6329 (VN_INFO_GET): Allocate new objects on the obstack.
6330 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
6331 for rpo_numbers_temp, for consistency.
6332 (free_scc_vn): Free the obstack.
6333
801c5610 63342008-02-28 Sebastian Pop <sebastian.pop@amd.com>
6335
6336 * doc/invoke.texi: Document -ftree-loop-distribution.
6337 * tree-loop-distribution.c: New.
6338 * tree-pass.h (pass_loop_distribution): New.
6339 * graphds.h (struct graph): Add htab_t indices.
6340 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6341 * tree-vectorizer.c (rename_variables_in_loop): Extern.
6342 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6343 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6344 * tree-data-ref.c (debug_data_dependence_relations): New.
6345 (dump_data_dependence_relation): Also print data references.
6346 (free_data_ref): Extern.
6347 (same_access_functions): Moved...
6348 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6349 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6350 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6351 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6352 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6353 (stmts_from_loop): Skip LABEL_EXPR.
01e93ec4 6354 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6355 New.
801c5610 6356 (build_rdg): Initialize rdg->indices htab.
6357 (free_rdg, stores_from_loop, ref_base_address,
6358 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6359 have_similar_memory_accesses_1, ref_base_address_1,
6360 remove_similar_memory_refs): New.
6361 * tree-data-ref.h: Depend on tree-chrec.h.
6362 (debug_data_dependence_relations, free_data_ref): Declared.
6363 (same_access_functions): ... here.
01e93ec4 6364 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6365 New.
801c5610 6366 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6367 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6368 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6369 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6370 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6371 rdg_vertex_for_stmt): Declared.
6372 (struct rdg_edge): Add level.
6373 (RDGE_LEVEL): New.
6374 (free_rdg, stores_from_loop, remove_similar_memory_refs,
01e93ec4 6375 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6376 Declared.
801c5610 6377 (rdg_has_similar_memory_accesses): New.
6378 * tree-vect-analyze.c: Remove unused static decls.
6379 * lambda.h (dependence_level): New.
6380 * common.opt (ftree-loop-distribution): New.
6381 * tree-flow.h (mark_virtual_ops_in_bb,
6382 slpeel_tree_duplicate_loop_to_edge_cfg,
6383 rename_variables_in_loop): Declared.
6384 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6385 (OBJS-common): Add tree-loop-distribution.o.
6386 (tree-loop-distribution.o): New rule.
6387 * tree-cfg.c (mark_virtual_ops_in_bb): New.
6388 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6389 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6390
9c467f13 63912008-02-28 Joseph Myers <joseph@codesourcery.com>
6392
6393 PR target/33963
6394 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6395 other than structures and unions.
6396
c0ff55b3 63972008-02-28 Richard Guenther <rguenther@suse.de>
6398
6399 Revert:
6400 2008-02-26 Richard Guenther <rguenther@suse.de>
6401
6402 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6403 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6404 (lookup_decl_from_uid): Declare.
6405 (remove_decl_from_map): Likewise.
6406 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6407 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6408 (decl_for_uid_map): New global hashtable mapping DECL_UID
6409 to the decl tree.
6410 (init_ttree): Allocate it.
6411 (insert_decl_to_uid_decl_map): New helper function.
6412 (make_node_stat): Insert new decls into the map.
6413 (copy_node_stat): Likewise.
6414 (lookup_decl_from_uid): New function.
6415 (remove_decl_from_map): Likewise.
6416 (print_decl_for_uid_map_statistics): New helper.
6417 (dump_tree_statistics): Call it.
6418
6419 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6420 (referenced_var_iterator): Adjust.
6421 (FOR_EACH_REFERENCED_VAR): Adjust.
6422 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6423 (num_referenced_vars): Adjust.
6424 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6425 (first_referenced_var): Remove.
6426 (end_referenced_vars_p): Likewise.
6427 (next_referenced_var): Likewise.
6428 (referenced_var_iterator_set): New helper function.
6429 * tree-dfa.c (referenced_var_lookup): Adjust.
6430 (referenced_var_check_and_insert): Likewise.
6431 (remove_referenced_var): Likewise.
6432 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6433 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6434 (verify_call_clobbering): Likewise.
6435 (verify_memory_partitions): Likewise.
6436 (init_tree_ssa): Allocate bitmap instead of hashtable for
6437 referenced_vars.
6438 (delete_tree_ssa): Adjust.
6439 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6440 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6441 (compute_tag_properties): Likewise.
6442 (set_initial_properties): Likewise.
6443 (find_partition_for): Likewise.
6444 (update_reference_counts): Likewise.
6445 (dump_may_aliases_for): Likewise.
6446 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6447 (add_call_clobber_ops): Likewise.
6448 (add_call_read_ops): Likewise.
6449 (get_asm_expr_operands): Likewise.
6450 * tree-into-ssa.c (dump_decl_set): Likewise.
6451 (update_ssa): Likewise.
6452 * tree-sra.c (scan_function): Likewise.
6453 (decide_instantiations): Likewise.
6454 (scalarize_parms): Likewise.
6455 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6456 (dsa_named_for): Likewise.
6457 * tree-ssa-structalias.c (update_alias_info): Likewise.
6458 (merge_smts_into): Likewise.
6459
16b35285 64602008-02-27 David Daney <ddaney@avtrex.com>
6461
6462 PR target/34409
6463 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6464 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6465 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6466 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6467 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6468
d243d9c9 64692008-02-27 Uros Bizjak <ubizjak@gmail.com>
6470
6471 PR target/25477
6472 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6473 (BUILT_IN_NEXTTOWARD): Remove.
6474 (BUILT_IN_NEXTTOWARDF): Ditto.
6475 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6476 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
6477
de9ebaea 64782008-02-27 Tom Tromey <tromey@redhat.com>
6479
6480 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6481 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6482
5f398d1f 64832008-02-27 Jan Beulich <jbeulich@novell.com>
6484
6485 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6486 update the respective field on newdecl.
6487
9cc5df33 64882008-02-27 Revital Eres <eres@il.ibm.com>
6489
6490 PR rtl-optimization/34999
6491 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6492 crossing edges that ends with a call insn.
6493 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6494 call insn and clear the EDGE_CROSSING flag of the crossing edge
6495 when fixing fallthru edges.
6496
c2f5179d 64972008-02-27 Richard Guenther <rguenther@suse.de>
6498
c0ff55b3 6499 PR middle-end/35390
c2f5179d 6500 * fold-const.c (fold_unary): Return the correct argument,
6501 converted to the result type.
6502
6295ca72 65032008-02-27 Richard Guenther <rguenther@suse.de>
6504
6505 PR middle-end/34971
6506 * expr.c (expand_expr_real_1): Assert on rotates that operate
6507 on partial modes.
6508 * fold-const.c (fold_binary): Use the types precision, not the
6509 bitsize of the mode if folding rotate expressions. Build rotates
6510 only for full modes.
6511
146a4308 65122008-02-27 Jakub Jelinek <jakub@redhat.com>
6513
6514 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6515 and CPP_PRAGMA_EOL.
6516 * c-pragma.c (pragma_ns_name): New typedef.
6517 (registered_pp_pragmas): New variable.
6518 (c_pp_lookup_pragma): New function.
6519 (c_register_pragma_1): If flag_preprocess_only, do nothing
6520 for non-expanded pragmas, for expanded ones push pragma's
6521 namespace and name into registered_pp_pragmas vector.
6522 (c_invoke_pragma_handler): Register OpenMP pragmas even when
6523 flag_preprocess_only, don't register GCC pch_preprocess
6524 pragma if flag_preprocess_only.
6525 * c-opts.c (c_common_init): Call init_pragma even if
6526 flag_preprocess_only.
6527 * c-pragma.c (c_pp_lookup_pragma): New prototype.
6528 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6529 cpp_register_pragma if flag_preprocess_only.
6530
784c0df4 65312008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6532
6533 PR c/28800
6534 * c-parser.c (c_parser_translation_unit): Warn for empty
6535 translation unit, not empty source file.
6536
aaa37ad6 65372008-02-26 Paul Brook <paul@codesourcery.com>
6538
6539 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6540 operand for Thumb-2.
6541 * config/arm/arm.h (reg_class): Add CORE_REGS.
6542 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6543 (BASE_REG_CLASS): Use CORE_REGS.
6544 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6545 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6546 (REGNO_OK_FOR_INDEX_P): Exclude SP.
6547 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
6548 ARM_REGNO_OK_FOR_INDEX_P.
6549 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6550 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6551 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6552 (ldm/stm peepholes): Ditto.
6553 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6554 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6555 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6556 * config/arm/constraints.md: Enable "k" constraint on ARM.
6557
7effebe0 65582008-02-27 Ben Elliston <bje@au.ibm.com>
6559
6560 * config/rs6000/rs6000.c: Annotate cache line size field in all
6561 instances of struct processor_costs.
6562
4ff06051 65632008-02-26 David Edelsohn <edelsohn@gnu.org>
6564
6565 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6566 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6567 jump_bypass): New counters.
6568 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6569 * dce.c (gate_ud_dce): Same.
6570 (gate_fast_dce): Same.
6571 * dse.c (gate_dse1): New function.
6572 (gate_dse2): New function.
6573 (gate_dse): Merge results of new gate functions.
6574 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6575 (gate_handle_jump_bypass): Add dbg_cnt.
6576 (gate_handle_gcse): Add dbg_cnt.
6577 * ifcvt.c (gate_handle_if_conversion): Same.
6578 (gate_handle_if_after_combine): Same.
6579 (gate_handle_if_after_reload): Same.
6580 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6581
0fc88469 65822008-02-26 Edmar Wienskoski <edmar@freescale.com>
6583
6584 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6585 line sizes.
6586 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6587
3ef0a05e 65882008-02-26 Jason Merrill <jason@redhat.com>
6589
6590 PR c++/35315
6591 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
6592 alone if it's the naming decl for the type's main variant.
6593
9c85a98a 65942008-02-26 Tom Tromey <tromey@redhat.com>
6595
6596 * system.h (USE_MAPPED_LOCATION): Poison.
6597 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6598 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6599 (make_goto_expr_edges): Likewise.
6600 (remove_bb): Likewise.
6601 (execute_warn_function_return): Likewise.
6602 * basic-block.h (struct edge_def) <goto_locus>: Change type to
6603 location_t.
6604 * c-common.c (fname_decl): Remove old location code.
6605 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6606 location code.
6607 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6608 variant.
6609 (ASM_INPUT_SOURCE_LOCATION): Likewise.
6610 (gen_rtx_ASM_INPUT): Likewise.
6611 (gen_rtx_ASM_INPUT_loc): Likewise.
6612 (get_rtx_asm_OPERANDS): Remove.
6613 * cfglayout.c (insn_locators_alloc): Remove old location code.
6614 (set_curr_insn_source_location): Likewise.
6615 (curr_insn_locator): Likewise.
6616 * print-tree.c (print_node): Remove old location code.
6617 * tree-mudflap.c (mf_varname_tree): Remove old location code.
6618 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6619 * cfgexpand.c (expand_gimple_cond_expr): Don't use
6620 location_from_locus.
6621 (construct_exit_block): Remove old location code.
6622 * emit-rtl.c (force_next_line_note): Remove old location code.
6623 * profile.c (branch_prob): Remove old location code.
6624 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6625 LOC_LINE): Remove old-location variants.
6626 * langhooks.c (lhd_print_error_function): Remove old location
6627 code.
6628 * configure, config.in: Rebuilt.
6629 * configure.ac (--enable-mapped-location): Remove.
6630 * c-decl.c (c_init_decl_processing): Remove old location code.
6631 (finish_function): Likewise.
6632 * recog.c (decode_asm_operands): Remove old location code.
6633 * c-pch.c (c_common_read_pch): Remove old location code.
6634 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6635 variants.
6636 * gimple-low.c (lower_function_body): Remove old location code.
6637 * toplev.c (unknown_location): Remove.
6638 (push_srcloc): Remove old-location variant.
6639 (process_options): Remove old location code.
6640 (lang_dependent_init): Likewise.
6641 * input.h (UNKNOWN_LOCATION): Move definition.
6642 (location_t): Undeprecate.
6643 (source_locus): Remove.
6644 (location_from_locus): Remove.
6645 (struct location_s): Remove.
6646 Remove all old-location code.
6647 (input_line, input_filename): Remove.
6648 * final.c (final_scan_insn): Remove old location code.
6649 * diagnostic.c (diagnostic_build_prefix): Remove
6650 USE_MAPPED_LOCATION test.
6651 * tree.h (gimple_stmt) <locus>: Now a location_t.
6652 (tree_exp) <locus>: Likewise.
6653 (DECL_IS_BUILTIN): Remove old-location variant.
6654 (annotate_with_file_line, annotate_with_locus): Likewise.
6655 (expr_locus, set_expr_locus): Update.
6656 * tree.c (build1_stat): Remove old location code.
6657 (last_annotated_node): Remove.
6658 (annotate_with_file_line): Remove old-location variant.
6659 (annotate_with_locus): Likewise.
6660 (expr_location): Remove old location code.
6661 (set_expr_location): Likewise.
6662 (expr_has_location): Likewise.
6663 (expr_locus): Likewise.
6664 (set_expr_locus): Likewise.
6665 (expr_filename): Don't use location_from_locus.
6666 (expr_lineno): Likewise.
6667 * rtl-error.c (location_for_asm): Remove old location code.
6668 * c-lex.c (cb_line_change): Remove old location code.
6669 (fe_file_change): Likewise.
6670 (cb_def_pragma): Likewise.
6671 (c_lex_with_flags): Likewise.
6672 * gengtype.c (do_typedef): Don't special-case location types.
6673 (define_location_structures): Remove.
6674 (main): Don't call define_location_structures.
6675 * tree-pretty-print.c (dump_implicit_edges): Remove old location
6676 code.
6677
c0394294 66782008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6679
bb51041c 6680 PR 26264
c0394294 6681 * builtins.def (BUILT_IN_STDARG_START): Remove.
6682 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6683 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6684 * tree-inline.c (inline_forbidden_p_1): Likewise.
6685
20308404 66862008-02-26 Richard Guenther <rguenther@suse.de>
6687
6688 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6689 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6690 (lookup_decl_from_uid): Declare.
6691 (remove_decl_from_map): Likewise.
6692 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6693 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6694 (decl_for_uid_map): New global hashtable mapping DECL_UID
6695 to the decl tree.
6696 (init_ttree): Allocate it.
6697 (insert_decl_to_uid_decl_map): New helper function.
6698 (make_node_stat): Insert new decls into the map.
6699 (copy_node_stat): Likewise.
6700 (lookup_decl_from_uid): New function.
6701 (remove_decl_from_map): Likewise.
6702 (print_decl_for_uid_map_statistics): New helper.
6703 (dump_tree_statistics): Call it.
6704
6705 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6706 (referenced_var_iterator): Adjust.
6707 (FOR_EACH_REFERENCED_VAR): Adjust.
6708 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6709 (num_referenced_vars): Adjust.
6710 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6711 (first_referenced_var): Remove.
6712 (end_referenced_vars_p): Likewise.
6713 (next_referenced_var): Likewise.
6714 (referenced_var_iterator_set): New helper function.
6715 * tree-dfa.c (referenced_var_lookup): Adjust.
6716 (referenced_var_check_and_insert): Likewise.
6717 (remove_referenced_var): Likewise.
6718 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6719 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6720 (verify_call_clobbering): Likewise.
6721 (verify_memory_partitions): Likewise.
6722 (init_tree_ssa): Allocate bitmap instead of hashtable for
6723 referenced_vars.
6724 (delete_tree_ssa): Adjust.
6725 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6726 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6727 (compute_tag_properties): Likewise.
6728 (set_initial_properties): Likewise.
6729 (find_partition_for): Likewise.
6730 (update_reference_counts): Likewise.
6731 (dump_may_aliases_for): Likewise.
6732 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6733 (add_call_clobber_ops): Likewise.
6734 (add_call_read_ops): Likewise.
6735 (get_asm_expr_operands): Likewise.
6736 * tree-into-ssa.c (dump_decl_set): Likewise.
6737 (update_ssa): Likewise.
6738 * tree-sra.c (scan_function): Likewise.
6739 (decide_instantiations): Likewise.
6740 (scalarize_parms): Likewise.
6741 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6742 (dsa_named_for): Likewise.
6743 * tree-ssa-structalias.c (update_alias_info): Likewise.
6744 (merge_smts_into): Likewise.
6745
75130fc7 67462008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6747
6748 PR 34351
6749 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6750 * c-opts.c (c_common_handle_option): Wall enables
6751 Wvolatile-register-var.
6752 * common.opt: Move Wvolatile-register-var to...
6753 * c.opt: ...here.
6754
17c66687 67552008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6756
6757 * common.opt (Wlarger-than=): New.
6758 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6759 -Wlarger-than=.
6760 * opts.c (common_handle_option): Handle -Wlarger-than=.
6761 * optc-gen.awk: Likewise.
6762 * opth-gen.awk: Likewise.
6763 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6764 * tree-optimize.c (tree_rest_of_compilation): Likewise.
6765
6cbbbc89 67662008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6767
6768 * c-common.c (match_case_to_enum_1): Add appropriate
6769 OPT_W* parameter to warning.
6770 (c_do_switch_warnings): Likewise.
6771 * c-typeck.c (warning_init): Add one more parameter following
6772 'warning' function.
6773 (push_init_level): Update call to warning_init.
6774 (pop_init_level): Likewise.
6775 (add_pending_init): Likewise.
6776 (output_init_element: Likewise.
6777
ddb48b82 67782008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6779
6780 PR 28322
6781 * toplev.c (toplev_main): If there are warnings or error, print
6782 errors for ignored options.
6783 * opts.c (ignored_options): New static variable.
6784 (postpone_unknown_option_error): New.
6785 (print_ignored_options): New.
6786 (handle_option): Postpone errors for unknown -Wno-* options.
6787 * opts.h (print_ignored_options): Declare.
6788
7ecd9299 67892008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
6790
6791 * config/mips/mips.md (loadgp_blockage, blockage): Change type
6792 to "ghost".
6793
3a0e28bd 67942008-02-25 Richard Guenther <rguenther@suse.de>
6795
6796 Revert:
6797 2008-02-25 Richard Guenther <rguenther@suse.de>
6798
6799 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6800 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6801 (lookup_decl_from_uid): Declare.
6802 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6803 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6804 (decl_for_uid_map): New global hashtable mapping DECL_UID
6805 to the decl tree.
6806 (init_ttree): Allocate it.
6807 (insert_decl_to_uid_decl_map): New helper function.
6808 (make_node_stat): Insert new decls into the map.
6809 (copy_node_stat): Likewise.
6810 (lookup_decl_from_uid): New function.
6811 (print_decl_for_uid_map_statistics): New helper.
6812 (dump_tree_statistics): Call it.
6813
6814 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6815 (referenced_var_iterator): Adjust.
6816 (FOR_EACH_REFERENCED_VAR): Adjust.
6817 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6818 (num_referenced_vars): Adjust.
6819 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6820 (first_referenced_var): Remove.
6821 (end_referenced_vars_p): Likewise.
6822 (next_referenced_var): Likewise.
6823 (referenced_var_iterator_set): New helper function.
6824 * tree-dfa.c (referenced_var_lookup): Adjust.
6825 (referenced_var_check_and_insert): Likewise.
6826 (remove_referenced_var): Likewise.
6827 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6828 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6829 (verify_call_clobbering): Likewise.
6830 (verify_memory_partitions): Likewise.
6831 (init_tree_ssa): Allocate bitmap instead of hashtable for
6832 referenced_vars.
6833 (delete_tree_ssa): Adjust.
6834 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6835 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6836 (compute_tag_properties): Likewise.
6837 (set_initial_properties): Likewise.
6838 (find_partition_for): Likewise.
6839 (update_reference_counts): Likewise.
6840 (dump_may_aliases_for): Likewise.
6841 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6842 (add_call_clobber_ops): Likewise.
6843 (add_call_read_ops): Likewise.
6844 (get_asm_expr_operands): Likewise.
6845 * tree-into-ssa.c (dump_decl_set): Likewise.
6846 (update_ssa): Likewise.
6847 * tree-sra.c (scan_function): Likewise.
6848 (decide_instantiations): Likewise.
6849 (scalarize_parms): Likewise.
6850 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6851 (dsa_named_for): Likewise.
6852 * tree-ssa-structalias.c (update_alias_info): Likewise.
6853 (merge_smts_into): Likewise.
6854
7e959c84 68552008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
6856
6857 PR fortran/29549
6858 * doc/invoke.texi (-fcx-limited-range): Document new option.
6859 * toplev.c (process_options): Handle -fcx-fortran-rules.
bb51041c 6860 * common.opt: Add documentation for -fcx-fortran-rules.
7e959c84 6861
a8806066 68622008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
6863
6864 PR c/35162
6865 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
6866 actual behaviour and C99.
6867
b30c4a87 68682008-02-26 Ben Elliston <bje@au.ibm.com>
6869
6870 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
6871 (ASM_CPU_POWER6_SPEC): Likewise.
6872 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
6873 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
6874 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
6875
8ca26bdd 68762008-02-25 Richard Guenther <rguenther@suse.de>
6877
6878 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6879 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6880 (lookup_decl_from_uid): Declare.
6881 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6882 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6883 (decl_for_uid_map): New global hashtable mapping DECL_UID
6884 to the decl tree.
6885 (init_ttree): Allocate it.
6886 (insert_decl_to_uid_decl_map): New helper function.
6887 (make_node_stat): Insert new decls into the map.
6888 (copy_node_stat): Likewise.
6889 (lookup_decl_from_uid): New function.
6890 (print_decl_for_uid_map_statistics): New helper.
6891 (dump_tree_statistics): Call it.
6892
6893 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6894 (referenced_var_iterator): Adjust.
6895 (FOR_EACH_REFERENCED_VAR): Adjust.
6896 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6897 (num_referenced_vars): Adjust.
6898 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6899 (first_referenced_var): Remove.
6900 (end_referenced_vars_p): Likewise.
6901 (next_referenced_var): Likewise.
6902 (referenced_var_iterator_set): New helper function.
6903 * tree-dfa.c (referenced_var_lookup): Adjust.
6904 (referenced_var_check_and_insert): Likewise.
6905 (remove_referenced_var): Likewise.
6906 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6907 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6908 (verify_call_clobbering): Likewise.
6909 (verify_memory_partitions): Likewise.
6910 (init_tree_ssa): Allocate bitmap instead of hashtable for
6911 referenced_vars.
6912 (delete_tree_ssa): Adjust.
6913 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6914 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6915 (compute_tag_properties): Likewise.
6916 (set_initial_properties): Likewise.
6917 (find_partition_for): Likewise.
6918 (update_reference_counts): Likewise.
6919 (dump_may_aliases_for): Likewise.
6920 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6921 (add_call_clobber_ops): Likewise.
6922 (add_call_read_ops): Likewise.
6923 (get_asm_expr_operands): Likewise.
6924 * tree-into-ssa.c (dump_decl_set): Likewise.
6925 (update_ssa): Likewise.
6926 * tree-sra.c (scan_function): Likewise.
6927 (decide_instantiations): Likewise.
6928 (scalarize_parms): Likewise.
6929 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6930 (dsa_named_for): Likewise.
6931 * tree-ssa-structalias.c (update_alias_info): Likewise.
6932 (merge_smts_into): Likewise.
6933
5fe61d21 69342008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
6935
6936 PR target/35258
6937 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
6938 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
6939 * alias.h (nonoverlapping_memrefs_p): Likewise.
6940
cab0c612 69412008-02-25 Jan Beulich <jbeulich@novell.com>
6942
d243d9c9 6943 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
cab0c612 6944 * config/i386/netware-libgcc.exp: Add __bswap?i2,
6945 __emultls_get_address, __emultls_register_common,
6946 __floatundi?f, and _Unwind_GetIPInfo.
6947 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
6948 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
6949 (gen_regparm_prefix): Likewise.
6950 (i386_nlm_encode_section_info): Sync with
6951 config/i386/winnt.c:i386_pe_encode_section_info().
6952 (i386_nlm_maybe_mangle_decl_assembler_name): New.
6953 i386_nlm_mangle_decl_assembler_name): New.
6954 (netware_override_options): New.
6955 * config/i386/netware.h (netware_override_options): Declare.
6956 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
6957 (i386_nlm_mangle_decl_assembler_name): Declare.
6958 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
6959
5243b29d 69602008-02-25 Ben Elliston <bje@au.ibm.com>
6961
6962 PR other/32948
6963 * c-decl.c (grokdeclarator): Remove unused local variables
6964 `typedef_type' and `type_as_written'.
6965 * bb-reorder.c
6966 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
6967 unused local variable `has_hot_blocks'.
6968 (fix_crossing_conditional_branches): Remove unused local variable
6969 `prev_bb'.
6970
620d0bf8 69712008-02-25 Uros Bizjak <ubizjak@gmail.com>
6972
6973 PR middle-end/19984
6974 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
6975 using DEF_C99_BUILTIN.
6976 (BUILT_IN_NANF): Ditto.
6977 (BUILT_IN_NANL): Ditto.
6978
84004523 69792008-02-25 Ayal Zaks <zaks@il.ibm.com>
34d8410f 6980 Revital Eres <eres@il.ibm.com>
84004523 6981
6982 * modulo-sched.c (calculate_must_precede_follow): Address TODO
6983 regarding the order of two dependent insns in the same row.
6984
23f65835 69852008-02-25 Eric Botcazou <ebotcazou@adacore.com>
6986
6987 * stor-layout.c (layout_decl): Do not bump the alignment of a
6988 bit-field to more than byte alignment if it is packed.
6989
b18d68e3 69902008-02-24 David Edelsohn <edelsohn@gnu.org>
6991
6992 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
6993 e300c2 and e300c3.
6994
100b67da 69952008-02-24 Diego Novillo <dnovillo@google.com>
6996
6997 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
6998
6999 PR 33738
7000 * tree-vrp.c (vrp_evaluate_conditional): With
7001 -Wtype-limits, emit a warning when comparing against a
7002 constant outside the natural range of OP0's type.
7003 * c.opt (Wtype-limits): Move ...
7004 * common.opt (Wtype-limits): ... here.
7005
2aeab935 70062008-02-24 Edmar Wienskoski <edmar@freescale.com>
73edc44b 7007
7008 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
7009 * config/rs6000/e300c2c3.md: New file.
7010 * config/rs6000/rs6000.c (processor_costs): Add new costs for
7011 e300c2 and e300c3.
7012 (rs6000_override_options): Add e300c2 and e300c3 cases to
7013 processor_target_table. Do not allow usage of Altivec or Spe
7014 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
7015 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
7016 * config/rs6000/rs6000.h (processor_type): Add
7017 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
7018 (ASM_CPU_SPEC): Add e300c2 and e300c3.
7019 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
7020 and ppce300c3. Include e300c2c3.md.
7021
070270ea 70222008-02-23 David Edelsohn <edelsohn@gnu.org>
7023
7024 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
7025 instead of TARGET_STRICT_ALIGN.
7026
64ec1b61 70272008-02-23 Joseph Myers <joseph@codesourcery.com>
7028
7029 * explow.c (memory_address): Assert that the generated address is
7030 valid.
7031
6aee6ac8 70322008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7033
7034 PR target/25477
7035 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
7036 * config/darwin-ppc-ldouble-patch.def: New file.
7037 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
7038 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
7039 SUBTARGET_INIT_BUILTINS if defined.
620d0bf8 7040 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
7041 New functions.
6aee6ac8 7042
3d72a1b5 70432008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7044
7045 PR rtl-opt/33512
7046 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
7047 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
7048
c12ee0c6 70492008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7050
7051 PR pch/35027
7052 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
7053 file" warning condtional on -Winvalid-PCH.
7054
05b481df 70552008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
7056
7057 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
7058
78624f54 70592008-02-23 Uros Bizjak <ubizjak@gmail.com>
7060
7061 PR target/22076
7062 PR target/34256
7063 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
7064 prevent reload from using MMX registers.
7065 (*mov<mode>_internal): Ditto.
7066 (*movv2sf_internal_rex64): Ditto.
7067 (*movv2sf_internal): Ditto.
7068
ed3f349a 70692008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7070
7071 PR documentation/31569
7072 * doc/install.texi2html: Use makeinfo --no-number-sections.
7073
e720c3f0 70742008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7075
7076 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
7077 ensure that we can address an entire entity > 8 bytes. Don't
7078 generate reg+reg addressing for such data.
7079
dc3be372 70802008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7081
7082 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
7083 strings when optimizing for size, unless the target cares about
7084 alignment.
7085
af3f5a19 70862008-02-22 Tom Tromey <tromey@redhat.com>
7087
7088 * regclass.c (current_pass): Remove declaration.
7089
9e926232 70902008-02-22 Anatoly Sokolov <aesok@post.ru>
7091
7092 * config/avr/libgcc.S (__RAMPZ__): Define.
7093 (__do_copy_data): Add for devices with 128KB code memory.
7094
b9cd27b3 70952008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7096
7097 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7098 Use spe_abi.
7099 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7100
e8cb528f 71012008-02-22 Hans-Peter Nilsson <hp@axis.com>
7102
7103 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7104 GENNONACR_REGS.
7105
067d82a2 71062008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7107
7108 PR c/19999
7109 * c-typeck.c (build_binary_op): Warn about floating point
7110 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7111
f9c1a520 71122008-02-21 Janis Johnson <janis187@us.ibm.com>
7113
7114 PR target/34526
7115 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7116 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7117 add vrsave.
7118 (rs6000_override_options): Set altivec_abi as default, not override,
7119 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7120 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7121 is used; use new member spe_abi.
7122 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7123 spe_abi and altivec_abi.
7124
c7dcbde4 71252008-02-22 Tomas Bily <tbily@suse.cz>
7126
7127 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7128
d45cdac2 71292008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7130
7131 PR bootstrap/35273
7132 * config.build (build_file_translate): Set to `CMD //c' only if
7133 it works.
7134 * Makefile.in (build_file_translate): Improve comment.
7135
f3cb8b1d 71362008-02-21 Jan Hubicka <jh@suse.cz>
7137
7138 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7139 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7140 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7141
6ef19463 71422008-02-21 Michael Matz <matz@suse.de>
7143
7144 PR target/35264
7145 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7146
3da2a73c 71472008-02-21 Uros Bizjak <ubizjak@gmail.com>
7148
7149 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7150 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7151 as insn constraint.
7152 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7153 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7154 SSE_VEC_FLOAT_MODE_P as insn constraint.
7155 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7156 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7157 sse4a_movntdf using MODEF mode iterator.
7158 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7159 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7160 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7161 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7162 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7163 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7164 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7165
751ff693 71662008-02-21 Richard Guenther <rguenther@suse.de>
7167
7168 * tree.def (PAREN_EXPR): New tree code.
7169 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7170 and PAREN_EXPR.
7171 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7172 * expr.c (expand_expr_real_1): Likewise.
7173 * tree-inline.c (estimate_num_insns_1): Likewise.
7174 * tree-complex.c (expand_complex_move): Likewise.
7175 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7176 as plain x.
7177
64c985e4 71782008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7179
7180 PR target/35225
7181 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7182
af122d60 71832008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7184
7185 PR target/35190
7186 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7187
7188 * config/sh/sh.c (find_barrier): Don't go past
7189 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7190
610e569b 71912008-02-20 DJ Delorie <dj@redhat.com>
7192
7193 * config/h8300/h8300.md (insv): Force source operand to be a register.
7194
7195 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7196 as a jump, not as a plain insn.
7197
6fdade09 71982008-02-20 Seongbae Park <seongbae.park@gmail.com>
7199
7200 * doc/invoke.texi (Warning Options): Add new option
7201 -Wframe-larger-than=.
7202 (-Wframe-larger-than): Document.
7203
7204 * flags.h (warn_frame_larger_than, frame_larger_than_size):
7205 Add declarations for new option variables.
7206
7207 * final.c (final_start_function): Check the frame size
7208 before emission and issue a Wframe-larger-than warning.
7209
7210 * opts.c (warn_frame_larger_than, frame_larger_than_size):
7211 Add definitions for new option variables.
7212 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7213
7214 * common.opt (Wframe-larger-than=): New option.
7215
82cc8ae1 72162008-02-20 Uros Bizjak <ubizjak@gmail.com>
7217
7218 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7219 (<sse>_div<mode>3): Ditto.
7220 (<sse>_vmdiv<mode>3): Ditto.
7221 (<sse>_vmsqrt<mode>2): Ditto.
7222 (*smax<mode>3): Ditto.
7223 (sse5_frcz<mode>2): Ditto.
7224 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
7225 as insn constraint.
7226
c7f617c2 72272008-02-20 Richard Guenther <rguenther@suse.de>
7228
7229 PR middle-end/35265
7230 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7231 be happy with INTEGRAL_TYPE_P.
7232
a145256a 72332008-02-20 Richard Guenther <rguenther@suse.de>
7234
7235 * fold-const.c (split_tree): Associate floatig-point expressions
7236 if flag_associative_math is set.
7237
46ef5347 72382008-02-20 Richard Guenther <rguenther@suse.de>
7239
7240 * tree.h (fold_real_zero_addition_p): Declare.
7241 * fold-const.c (fold_real_zero_addition_p): Export.
7242 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7243 floating-point operations with zero and one.
7244
c898f165 72452008-02-20 Paolo Bonzini <bonzini@gnu.org>
7246
a55f1b4b 7247 * doc/install.texi: Correct references to CFLAGS, replacing them
7248 with BOOT_CFLAGS. Document flags used during bootstrap for
7249 target libraries.
c898f165 7250
2a466fea 72512008-02-20 Uros Bizjak <ubizjak@gmail.com>
7252
7253 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7254 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7255 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7256 insn constraint.
7257 (smin<mode>3): Ditto from similar patterns.
7258 (smax<mode>3): Ditto.
7259 (*ieee_smin<mode>3): Ditto.
7260 (*ieee_smax<mode>3): Ditto.
7261 * config/i386/sse.md (sse): New mode attribute.
7262 (mov<mode>): Macroize expander from movv4sf and movv2df using
7263 SSEMODEF2P mode iterator.
7264 (<sse>_movnt<mode>): Ditto from similar patterns. Use
7265 SSE_VEC_FLOAT_MODE_P as insn constraint.
7266 (storent<mode>): Ditto.
7267 (storent<mode>): Macroize expander from storentsf and storentdf using
7268 MODEF mode iterator.
7269 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7270 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7271 (abs<mode>2): Ditto from similar patterns.
7272 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7273 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7274 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7275 (<sse>_vmsqrt<mode>2): Ditto.
7276 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7277 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7278 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7279 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7280 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7281 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7282 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7283 insn constraint.
7284 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7285 iterator and SSE_FLOAT_MODE_P as insn constraint.
7286 (<sse>_ucomi): Ditto from similar patterns.
7287 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7288 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7289 SSE_VEC_FLOAT_MODE_P as insn constraint.
7290 (vcond<mode>): Ditto from similar patterns.
7291 (and<mode>3, *and<mode>3): Ditto.
7292 (<sse>_nand<mode>3): Ditto.
7293 (ior<mode>3, *ior<mode>3): Ditto.
7294 (xor<mode>3, *xor<mode>3): Ditto.
7295 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7296 iterator and SSE_FLOAT_MODE_P as insn constraint.
7297 (*nand<mode>3): Ditto from similar patterns.
7298 (*ior<mode>3): Ditto.
7299 (*xor<mode>3): Ditto.
7300
8c85798c 73012008-02-20 Ira Rosen <irar@il.ibm.com>
7302
7303 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7304 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7305 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7306
3ed4a4a1 73072008-02-19 Jan Hubicka <jh@suse.cz>
7308
2d5652e4 7309 * predict.c (tree_bb_level_predictions): Remove variable next
7310 mistakely introduced by previous commit.
3ed4a4a1 7311
d704ea82 73122008-02-19 Jan Hubicka <jh@suse.cz>
7313
7314 * predict.c (predict_paths_leading_to): Rewrite.
7315 (predict_paths_for_bb): New.
7316 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7317
fbf9447e 73182008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7319
7320 PR bootstrap/35218
7321 * Makefile.in (build_file_translate): New.
7322 (gcc-vers.texi): Use it for translating $(abs_srcdir).
7323 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7324 * configure.ac (build_file_translate): Substitute it.
7325 * configure: Regenerate.
7326
f82220c2 73272008-02-19 Jan Hubicka <jh@suse.cz>
7328
7329 PR rtl-optimization/34408
d704ea82 7330 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7331 invalid sharing.
f82220c2 7332
d4c3b5cd 73332008-02-19 Jan Hubicka <jh@suse.cz>
7334
7335 PR middle-end/28779
d704ea82 7336 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7337 call_expr.
d4c3b5cd 7338
1158320c 73392008-02-19 H.J. Lu <hongjiu.lu@intel.com>
7340
7341 PR Ada/35186
7342 * config/i386/i386-modes.def: Revert the last DI alignment
7343 change until Ada people can look into it.
7344
d06cb02d 73452008-02-19 Nick Clifton <nickc@redhat.com>
7346
7347 * opts.c (print_specific_help): Fix typo in --help text.
7348
beb96ec8 73492008-02-19 Jakub Jelinek <jakub@redhat.com>
7350
7351 PR target/35239
7352 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7353 32-bit inline asm without asm alternatives for host GCC < 3.0.
7354
971c637a 73552008-02-19 Richard Guenther <rguenther@suse.de>
7356
7357 PR tree-optimization/34989
7358 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7359 Allow propagation to INDIRECT_REF if we can simplify only.
7360
23ce1cf6 73612008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7362
7363 * c-common.c (warn_for_collisions_1): Use appropriate option when
7364 warning.
7365
86895a67 73662008-02-19 Nick Clifton <nickc@redhat.com>
7367
7368 PR other/31349
2d5652e4 7369 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
86895a67 7370 (handle_options): Fix indentation.
7371 (print_filtered_help): If no language-specific options were
7372 displayed tell the user how to list all the options supported by
7373 the language's front-end.
7374 (print_specific_help): Fix indentation and remove duplicate line.
7375 (common_handle_option): Handle the -v option.
7376 For --help enable the display of undocumented options if the -v
7377 switch has been included on the command line.
7378 For --help= check for overlaps in the arguments between the option
7379 classes and the language names and issue a warning when they
7380 cannot be disambiguated.
7381 * c.opt (v): Pass on to the common option handler.
7382
34c7f568 73832008-02-19 Revital Eres <eres@il.ibm.com>
7384
7385 * modulo-sched.c (sms_schedule): Change dump message when
7386 create_ddg function fails.
7387 (try_scheduling_node_in_cycle): Rename row to cycle.
7388 (print_partial_schedule): Rename CYCLE to ROW.
7389
90bd1b58 73902008-02-19 Christian Bruel <christian.bruel@st.com>
2d5652e4 7391 Zdenek Dvorak <ook@ucw.cz>
7392
7393 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7394
bd416d70 73952008-02-19 Uros Bizjak <ubizjak@gmail.com>
7396
7397 PR target/33555
7398 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7399 (*x86_movdicc_0_m1_se): Ditto.
7400
2a5abea1 74012008-02-19 Uros Bizjak <ubizjak@gmail.com>
7402
7403 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7404 (CMPtype): Define as __gcc_CMPtype.
7405 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7406 (CMPtype): Define as __gcc_CMPtype.
7407
a7779e75 74082008-02-19 Hans-Peter Nilsson <hp@axis.com>
7409
7410 Support valgrind 3.3 for --enable-checking=valgrind.
7411 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7412 here.
7413 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7414 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7415 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7416 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7417 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7418 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7419 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7420 respectively.
7421 * ggc-zone.c: Similar.
7422 * ggc-page.c: Similar.
7423
7addba43 74242008-02-19 Paul Brook <paul@codesourcery.com>
7425
7426 PR target/35071
7427 * config/arm/ieee754-df.S: Fix do_it typo.
7428 * config/arm/ieee754-sf.S: Fix do_it typo.
7429
4e06f6f8 74302008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7431
7432 PR target/35189
7433 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7434 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7435 (OPTION_MASK_ISA_SSE_SET): Likewise.
7436 (OPTION_MASK_ISA_SSE2_SET): Likewise.
7437 (OPTION_MASK_ISA_SSE3_SET): Likewise.
7438 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7439 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7440 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7441 (OPTION_MASK_ISA_SSE4_SET): Likewise.
7442 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7443 (OPTION_MASK_ISA_SSE5_SET): Likewise.
7444 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7445 (OPTION_MASK_ISA_MMX_UNSET): Updated.
7446 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7447 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7448 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7449 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7450 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7451 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7452 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7453 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7454 (OPTION_MASK_ISA_SSE4): Removed.
7455 (ix86_handle_option): Turn on bits in ix86_isa_flags and
2f6e3388 7456 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
4e06f6f8 7457 (override_options): Don't turn on implied SSE/MMX bits in
7458 ix86_isa_flags.
7459
dbbcdcd5 74602008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7461
7462 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7463 32bit host.
7464
beebc64a 74652008-02-18 Joey Ye <joey.ye@intel.com>
7466
7467 PR middle-end/34921
7468 * tree-nested.c (insert_field_into_struct): Set type alignment
7469 to field alignment if the former is less than the latter.
7470
8d705311 74712008-02-18 Jakub Jelinek <jakub@redhat.com>
7472
7473 * BASE-VER: Set to 4.4.0.
7474
7a5a9c54 74752008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7476
7477 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7478 * doc/cfg.texi: Likewise.
7479 * doc/extend.texi: Likewise.
7480 * doc/gty.texi: Likewise.
7481 * doc/invoke.texi: Likewise.
7482 * doc/loop.texi: Likewise.
7483 * doc/md.texi: Likewise.
7484 * doc/passes.texi: Likewise.
7485 * doc/rtl.texi: Likewise.
7486 * doc/sourcebuild.texi: Likewise.
7487 * doc/tm.texi: Likewise.
7488 * doc/tree-ssa.texi: Likewise.
7489
89cd38e0 74902008-02-17 Richard Guenther <rguenther@suse.de>
7491
7492 PR middle-end/35227
7493 * tree-complex.c (init_parameter_lattice_values): Handle parameters
7494 without default definition.
7495
d149d356 74962008-02-17 Richard Guenther <rguenther@suse.de>
7497
7498 PR tree-optimization/35231
7499 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7500 if A | B != 1.
7501
a3c40304 75022008-02-17 Uros Bizjak <ubizjak@gmail.com>
7503
7504 Revert:
a3c40304 7505 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
7506 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7507 libgcc_cmp_return mode.
7508
a2e4e045 75092008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7510
7511 PR c/28368
7512 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7513
8e2e6800 75142008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
7515
7516 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7517 multilibs.
7518
a81d4cba 75192008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7520
7521 * doc/c-tree.texi: Use `@.' where appropriate.
7522 * doc/extend.texi: Likewise.
7523 * doc/install.texi: Likewise.
7524 * doc/invoke.texi: Likewise.
7525 * doc/loop.texi: Likewise.
7526 * doc/makefile.texi: Likewise.
7527 * doc/md.texi: Likewise.
7528 * doc/passes.texi: Likewise.
7529 * doc/standards.texi: Likewise.
7530 * doc/tm.texi: Likewise.
7531
d74e6897 75322008-02-15 Jakub Jelinek <jakub@redhat.com>
7533
7534 PR middle-end/35196
7535 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7536 in entry_bb.
7537 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7538 rather than in entry_bb.
7539
c12b3bc6 75402008-02-15 Uros Bizjak <ubizjak@gmail.com>
7541
7542 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7543 libgcc_cmp_return mode.
7544
a5268989 75452008-02-15 Jakub Jelinek <jakub@redhat.com>
7546
7547 PR middle-end/35130
7548 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7549 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7550
b75537fb 75512008-02-15 Richard Guenther <rguenther@suse.de>
c12b3bc6 7552 Zdenek Dvorak <ook@ucw.cz>
b75537fb 7553
7554 PR tree-optimization/35164
7555 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7556 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7557 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7558 Only propagate addresses which do not have abnormal SSA_NAMEs
7559 in their operands.
7560
86891459 75612008-02-15 Joseph Myers <joseph@codesourcery.com>
7562
7563 PR target/35088
7564 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7565
a4cb010f 75662008-02-15 Jan Hubicka <jh@suse.cz>
7567
7568 PR middle-end/35149
7569 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7570
b3f75873 75712008-02-15 Uros Bizjak <ubizjak@gmail.com>
7572
7573 PR middle-end/34621
7574 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7575 when calculating alignment_pad.
7576
46de89e7 75772008-02-15 Uros Bizjak <ubizjak@gmail.com>
7578
7579 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7580 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7581 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7582 and STACK_BOUNDARY define.
7583
b8989bc3 75842008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
7585
7586 PR preprocessor/35061
7587 * c-pragma.c (handle_pragma_pop_macro): Check that
7588 pushed_macro_table has been allocated.
7589
0e41e637 75902008-02-14 Eric Botcazou <ebotcazou@adacore.com>
7591
7592 PR middle-end/35136
7593 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7594 (force_gimple_operand): Likewise.
7595 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7596 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7597 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7598 (find_interesting_uses_address): Check addressability and alignment
7599 of the base expression only after substituting bases of IVs into it.
7600
7e507322 76012008-02-14 Michael Matz <matz@suse.de>
7602
7603 PR target/34930
7604 * function.c (instantiate_virtual_regs_in_insn): Reload address
7605 before falling back to reloading the whole operand.
7606
7338c728 76072008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
7608
7609 * config/s390/s390.c (s390_mainpool_start): Emit the pool
7610 before the first section switch note.
7611
83d10720 76122008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7613
49a55c95 7614 * doc/bugreport.texi: Update copyright years.
7615 * doc/c-tree.texi: Likewise.
7616 * doc/cfg.texi: Likewise.
7617 * doc/cpp.texi: Likewise.
7618 * doc/cppinternals.texi: Likewise.
7619 * doc/fragments.texi: Likewise.
7620 * doc/frontends.texi: Likewise.
7621 * doc/gcc.texi: Likewise.
7622 * doc/gty.texi: Likewise.
7623 * doc/hostconfig.texi: Likewise.
7624 * doc/implement-c.texi: Likewise.
7625 * doc/libgcc.texi: Likewise.
7626 * doc/loop.texi: Likewise.
7627 * doc/makefile.texi: Likewise.
7628 * doc/options.texi: Likewise.
7629 * doc/passes.texi: Likewise.
7630 * doc/rtl.texi: Likewise.
7631 * doc/sourcebuild.texi: Likewise.
7632 * doc/standards.texi: Likewise.
7633 * doc/tree-ssa.texi: Likewise.
7634 * doc/trouble.texi: Likewise.
7635
83d10720 7636 * doc/extend.texi: Use @: or add comma where appropriate.
7637 * doc/invoke.texi: Likewise.
7638 * doc/tm.texi: Likewise.
7639
2a4fe7b7 76402008-02-14 Alan Modra <amodra@bigpond.net.au>
7641
7642 PR target/34393
7643 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7644 to a reg.
7645
4ebee9e4 76462008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
7647
7648 * doc/md.texi (clz, ctz): Add reference.
7649 * doc/rtl.texi (clz, ctz): Likewise.
7650
a1a0674f 76512008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7652
7653 PR other/35148
7654 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7655 srcdir.
7656
86428198 76572008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
7658
7659 * config/s390/s390.c (struct constant_pool): New field
7660 emit_pool_after added.
7661 (s390_mainpool_start): Set the emit_pool_after flag according
7662 to the section switch notes.
7663 (s390_mainpool_finish): Consider emit_pool_after when emitting
7664 the literal pool at the end of the function.
7665 (s390_chunkify_start): Force literal pool splits at section
7666 switch notes.
7667
86079287 76682008-02-13 Michael Matz <matz@suse.de>
7669
7670 PR debug/35065
7671 * var-tracking.c (clobber_variable_part): Correctly traverse the
7672 list.
7673
bfce1236 76742008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7675
7676 PR 29673
7677 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7678 Add -fdump-ipa-inline.
7679 * tree-dump.c (dump_files): Remove tree-inlined dump.
7680 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7681
e3e3ee4b 76822008-02-12 Richard Guenther <rguenther@suse.de>
7683
7684 PR tree-optimization/35171
7685 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7686 default defs.
7687
d06ed0b1 76882008-02-12 Richard Guenther <rguenther@suse.de>
7689
7690 PR middle-end/35163
7691 * fold-const.c (fold_widened_comparison): Use get_unwidened in
7692 value-preserving mode. Disallow final truncation.
7693
06b0fbf1 76942008-02-12 Eric Botcazou <ebotcazou@adacore.com>
7695
7696 PR middle-end/35136
7697 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7698 code from here to...
7699 (force_gimple_operand): ...here.
7700
3f982e5a 77012008-02-12 Jakub Jelinek <jakub@redhat.com>
7702
194bd83c 7703 PR c++/35144
7704 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7705 non-compatible pointers.
7706 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7707 different FIELD_DECLs, try harder by comparing field offsets, sizes
7708 and types.
7709
3f982e5a 7710 PR inline-asm/35160
7711 * function.c (match_asm_constraints_1): Don't replace the same input
7712 multiple times.
7713
637dc5b6 77142008-02-12 Anatoly Sokolov <aesok@post.ru>
7715
7716 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7717 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7718 (expand_epilogue): Restore RAMPZ register.
7719 * config/avr/avr.md (RAMPZ_ADDR): New constant.
7720
41992f82 77212008-02-11 Kai Tietz <kai.tietz@onevision.com>
7722
6144731c 7723 * config/i386/cygwin.asm: (__alloca): Correct calling
41992f82 7724 convention and alignment.
7725 (__chkstk): Force 8 byte stack alignment.
7726
3de988b5 77272008-02-11 Uros Bizjak <ubizjak@gmail.com>
efd43187 7728 Richard Guenther <rguenther@suse.de>
3de988b5 7729
7730 PR tree-optimization/33992
7731 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7732 the zero we compare against.
7733
6144731c 77342008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
7735
7736 PR libfortran/35063
7737 * gthr-win32.h (__gthread_mutex_destroy_function): New function
7738 to CloseHandle after unlocking to prevent accumulation of handle
7739 count.
7740
3e478718 77412008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7742
7743 PR middle_end/34150
7744 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7745 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
7746 and update LABEL_NUSES during and after reload.
7747
76d5115a 77482008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
7749
7750 PR middle-end/34627
ae731b4f 7751 * combine.c (simplify_if_then_else): Make sure the comparison is
76d5115a 7752 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7753
e506f1d4 77542008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
7755
7756 PR bootstrap/35051
7757 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7758 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7759 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7760 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7761 * tree.h (get_type_static_bounds): Likewise.
7762
bfbab40c 77632008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7764
7765 * doc/invoke.texi (Option Summary, C++ Dialect Options)
7766 (Objective-C and Objective-C++ Dialect Options, Warning Options):
7767 Make -Wfoo language annotations match what the compiler outputs.
7768
c7386c28 77692008-02-08 Sa Liu <saliu@de.ibm.com>
7770
7771 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
7772 intrinsics spu_convts, spu_convtu, spu_convtf.
c7386c28 7773
9bc2537d 77742008-02-08 Hans-Peter Nilsson <hp@axis.com>
7775
7776 * doc/extend.texi (Function Attributes) <noinline>: Mention
7777 asm ("") as method to keep calls.
7778
30b0f428 77792008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7780
7781 PR other/32754
7782 * doc/options.texi (Options): Replace references to opts.sh with
7783 optc-gen.awk.
7784 * opts-common.c: Likewise.
7785 * optc-gen.awk: Likewise.
7786
8364148d 77872008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
7788
7789 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
7790
77912008-02-07 Richard Henderson <rth@redhat.com>
e8e27646 7792
7793 PR rtl-opt/33410
7794 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
7795 EXPR_LIST for the REG_EQUAL instead of a comparison with a
7796 funny mode.
7797
4251ed76 77982008-02-07 Uros Bizjak <ubizjak@gmail.com>
7799
7800 PR tree-optimization/35085
7801 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
7802 for operand entry oe2 in addition to operand entry oe3 in order to
7803 expose more opportunities for vectorizer sum reduction.
7804
6ca01c3b 78052008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7806
7807 PR other/35107
7808 * Makefile.in (LIBS): Remove $(GMPLIBS).
7809 (cc1-dummy, cc1): Add $(GMPLIBS).
7810
1dbb4355 78112008-02-06 Jan Hubicka <jh@suse.cz>
7812
5f704018 7813 PR target/23322
1dbb4355 7814 * i386.md (moddf_integer): Do not produce partial memory stalls for
7815 targets where it hurts.
7816
4c8054f4 78172008-02-06 Uros Bizjak <ubizjak@gmail.com>
7818
7819 PR target/35083
7820 * optabs.c (expand_float): Do not check for decimal modes when
7821 expanding unsigned integer through signed conversion.
7822
48f4cf85 78232008-02-06 Nick Clifton <nickc@redhat.com>
7824
7825 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
7826 inside the clobber with a match_operand and duplicated operand
7827 number in the constraint.
7828 (ineqbranchsi): Delete redundant comment.
7829
3b7a17d9 78302008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
7831
f04beaef 7832 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
7833 builtin_define ("__USE_INIT_FINI__").
7834 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
7835 -msx multilibs.
3b7a17d9 7836 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
7837
b518f2ae 78382008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7839
7840 PR documentation/30330
7841 * doc/invoke.texi (C++ Dialect Options)
7842 (Objective-C and Objective-C++ Dialect Options, Warning Options):
7843 For each warning option -Wfoo that allows -Wno-foo, ensure both
7844 -Wfoo and -Wno-foo are listed in the option index. Fix index
7845 entry of -Wswitch-default, index -Wnormalized= including the
7846 `=', and -Wlarger-than-@var{len} including @var{len}.
7847
840638ec 78482008-02-05 Uros Bizjak <ubizjak@gmail.com>
7849
7850 * config/i386/i386.md (floatunssisf2): Use
7851 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
7852 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
7853 Macroize expander using MODEF mode iterator.
7854
09885372 78552008-02-05 Diego Novillo <dnovillo@google.com>
7856
7857 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
7858
7859 PR 33738
840638ec 7860 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
09885372 7861
ceb21d85 78622008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7863
7864 PR other/35070
7865 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
7866
df3ba0fe 78672008-02-05 H.J. Lu <hongjiu.lu@intel.com>
7868
7869 PR target/35084
7870 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
7871 to indicate if a message should be generated.
7872 (init_cumulative_args): Updated.
7873 (function_value_32): Likewise.
7874
79f7a0b8 78752008-02-05 Joseph Myers <joseph@codesourcery.com>
7876
7877 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
7878
470195a4 78792008-02-05 Uros Bizjak <ubizjak@gmail.com>
7880
7881 PR target/35083
7882 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
7883 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
7884
82ec0d8f 78852008-02-04 Diego Novillo <dnovillo@google.com>
7886
7887 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
7888
7889 PR 33738
7890 * tree-vrp.c (vrp_evaluate_conditional): With
7891 -Wtype-limits, emit a warning when comparing against a
7892 constant outside the natural range of OP0's type.
7893
bbf511cd 78942008-02-04 Richard Guenther <rguenther@suse.de>
7895
7896 PR middle-end/33631
7897 * expr.c (count_type_elements): Give for unions instead of
7898 guessing.
7899
5bad702f 79002008-02-04 Richard Guenther <rguenther@suse.de>
7901
7902 PR middle-end/35043
7903 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
7904 to TYPE_DOMAINs base type instead of using bitsizetype here.
7905
930e8175 79062008-02-03 Jason Merrill <jason@redhat.com>
7907
7908 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
7909
c55906eb 79102008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7911
7912 PR other/29972
7913 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
7914 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
7915 (RS/6000 and PowerPC Options): Fix typos and markup.
7916 * doc/passes.texi (Tree-SSA passes): Likewise.
7917
ce53880e 79182008-02-02 Michael Matz <matz@suse.de>
7919
7920 PR target/35045
7921 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
7922 from record_last_reg_set_info.
7923 (record_last_reg_set_info): Take an RTX argument, iterate over all
7924 constituent hardregs.
7925 (record_last_set_info, record_opr_changes): Change calls to
7926 new signature or to record_last_reg_set_info_regno.
7927
957fb083 79282008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7929
7930 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
7931
dec9a6b8 79322008-02-01 Hans-Peter Nilsson <hp@axis.com>
7933
7934 PR rtl-optimization/34773
7935 * reg-notes.def (EQUAL): Mention significance of combination of
7936 REG_EQUAL and REG_RETVAL.
7937 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
7938 insn that has a REG_RETVAL.
7939
6ccd4361 79402008-02-01 Roger Sayle <roger@eyesopen.com>
7941
7942 PR bootstrap/33781
7943 * configure.ac (--enable-fixed-point): Disable unless explicitly
7944 requested on IRIX.
7945 * configure: Regenerate.
7946
39e88a5d 79472008-02-01 Richard Guenther <rguenther@suse.de>
7948
7949 PR other/35042
7950 * invoke.texi (-finline-limit): Remove no longer true parts
7951 of the documentation. Note that there is no default value.
7952
2f5beddc 79532008-02-01 Andrew Pinski <pinskia@gmail.com>
7954 Mark Mitchell <mark@codesourcery.com>
7955 Ben Elliston <bje@au.ibm.com>
7956
7957 PR c/29326
7958 * doc/extend.texi (Other Builtins): Document.
7959
d40533b6 79602008-01-31 Tom Browder <tom.browder@gmail.com>
7961
7962 * doc/c-tree.texi (Types): Fix grammar.
7963 (Expression trees): Ditto.
7964 * doc/passes.texi (Tree-SSA passes): Ditto.
7965
7966 * doc/configterms.texi (Configure Terms): Fix typo.
7967 * doc/cpp.texi (Common Predefined Macros): Ditto.
7968 * doc/md.texi (Machine Constraints): Ditto.
7969
7970 * doc/makefile.texi (Makefile): Add comma.
7971
38cd7009 79722008-01-31 Tom Browder <tom.browder@gmail.com>
7973 Gerald Pfeifer <gerald@pfeifer.com>
7974
7975 * doc/sourcebuild.texi (Front End): Remove references to CVS
7976 and CVSROOT/modules.
7977 (Texinfo Manuals): Replace reference to CVS by one to SVN.
7978 (Back End): Remove reference to CVS.
7979
0d399d52 79802008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
7981
7982 PR target/34900
7983 * config/mips/mips.c (gen_load_const_gp): New function, taking a
7984 comment from...
7985 (mips16_gp_pseudo_reg): ...here.
7986 * config/mips/mips.md (load_const_gp): Replace with...
7987 (load_const_gp_<mode>): ...this :P-based insn.
7988
c75a5ac5 79892008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7990
7991 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
7992 options. Minor fixes.
7993 (-std): Move reference to standards closer to where language
7994 standards are first mentioned.
7995
53716799 79962008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
7997
7998 PR rtl-optimization/34995
7999 * reload.c (alternative_allows_const_pool_ref): Take an rtx
8000 parameter and return a bool. If the rtx parameter is nonnull,
8001 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
8002 (find_reloads): Update call accordingly. Pass the new operand
8003 if it needed no address reloads, otherwise pass null.
8004
e14d689c 80052008-01-30 Richard Henderson <rth@redhat.com>
8006
8007 PR c/34993
8008 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
8009 for unbounded arrays.
8010
9424a8b9 80112008-01-30 Silvius Rus <rus@google.com>
8012
8013 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
8014
89beb200 80152008-01-30 Jan Hubicka <jh@suse.cz>
8016
8017 PR target/34982
8018 * i386.c (init_cumulative_args): Use real function declaration when
8019 calling locally.
8020
9a9cbcd2 80212008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
8022
8023 PR rtl-optimization/34998
8024 * global.c (build_insn_chain): Treat non-subreg_lowpart
8025 SUBREGs of pseudos as clobbering all the words covered by the
8026 SUBREG, not just all the bytes.
8027 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
8028 original df_ref rather than an extract parameter.
8029 (global_conflicts): Update call accordingly.
8030
365b8932 80312008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
8032
8033 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
8034 the overflow check to make it easier to read.
8035 (__fixtfdi): Change the type of the ll member in union
8036 long_double to UDItype_x.
8037
c55e2943 80382008-01-30 Jakub Jelinek <jakub@redhat.com>
8039
117ef3d7 8040 PR middle-end/34969
8041 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
8042 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
8043 * tree-inline.c (fold_marked_statements): Call
8044 cgraph_update_edges_for_call_stmt if folding a call statement.
8045 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
8046 debug_generic_stmt calls, reset it back afterwards.
8047
c55e2943 8048 PR c/35017
8049 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
8050 static decls.
8051 * c-typeck.c (build_external_ref): Don't pedwarn about
8052 static vars in current function's scope.
8053
5bcb8578 80542008-01-29 Joseph Myers <joseph@codesourcery.com>
8055
8056 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
8057
94023798 80582008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
8059
8060 PR c/35002
8061 * ipa-struct-reorg.c: Fix spelling.
8062 * params.def: Ditto.
8063
ed6049c8 80642008-01-29 Richard Guenther <rguenther@suse.de>
8065
8066 PR middle-end/35006
8067 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
8068 field.
8069 * tree-inline.c (remap_type): Increment remapping_type_depth
8070 around remapping types.
8071 (copy_body_r): Only add referenced variables if they are referenced
8072 from code, not types.
8073
830a6615 80742008-01-29 Douglas Gregor <doug.gregor@gmail.com>
8075
8076 PR c++/34055
8077 PR c++/34103
8078 PR c++/34219
8079 PR c++/34606
8080 PR c++/34753
8081 PR c++/34754
8082 PR c++/34755
8083 PR c++/34919
8084 PR c++/34961
8085 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
8086 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
8087
48bffadc 80882008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
8089
8090 PR target/34412
8091 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
8092 pointer for tiny stack.
8093
260cf6df 80942008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8095
8096 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8097
345ff830 80982008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8099
8100 * config/vx-common.h: Fix typo in comment.
8101
c5f257af 81022008-01-28 Ian Lance Taylor <iant@google.com>
8103
8104 PR c++/34862
8105 PR c++/33407
8106 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8107 coalesce pointers if they have different DECL_NO_TBAA_P values.
8108 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8109 between variables with different DECL_NO_TBAA_P values.
8110
c64b5439 81112008-01-28 Nathan Froyd <froydnj@codesourcery.com>
8112
8113 PR 31535
8114 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8115 are not legitimate small data references on SPE targets.
8116
bcedfa23 81172008-01-28 David Daney <ddaney@avtrex.com>
8118
8119 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8120
fe30b803 81212008-01-28 David Daney <ddaney@avtrex.com>
8122
8123 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
8124
453829c7 81252008-01-27 Joseph Myers <joseph@codesourcery.com>
8126
8127 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8128 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8129 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8130 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8131 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8132 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8133 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8134 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8135
511934f9 81362008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8137
8138 * basic-block.h (condjump_equiv_p): Fix comment.
8139
ba810638 81402008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8141
8142 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8143 print_generic_stmt_indented): Fix comment.
8144
e214b635 81452008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8146
8147 * configure.ac (__stack_chk_fail): Add detecion for availability
8148 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8149 * configure: Regenerate.
8150
b32b308d 81512008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
8152
8153 PR middle-end/34688
8154 * final.c (output_addr_const): Handle TRUNCATE.
8155
3c2818b0 81562008-01-26 Zdenek Dvorak <ook@ucw.cz>
8157
8158 PR target/34711
8159 * tree-ssa-loop-ivopts.c (comp_cost): New type.
8160 (zero_cost, infinite_cost): New constants.
8161 (struct cost_pair): Change type of cost to comp_cost.
8162 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8163 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8164 New functions.
8165 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8166 split_address_cost, ptr_difference_cost, difference_cost,
8167 get_computation_cost_at, get_computation_cost,
8168 determine_use_iv_cost_generic, determine_use_iv_cost_address,
8169 determine_use_iv_cost_condition, determine_use_iv_costs,
8170 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8171 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8172 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8173 Change type of cost to comp_cost.
8174 (determine_iv_cost): Increase cost of non-original ivs, instead
8175 of decreasing the cost of original ones.
8176 (get_address_cost): Indicate the complexity of the addressing mode
8177 in comp_cost.
8178 (try_add_cand_for): Prefer using ivs not specific to some object.
8179 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8180
b32b308d 81812008-01-26 Peter Bergner <bergner@vnet.ibm.com>
bc5e6ea1 8182 Janis Johnson <janis187@us.ibm.com>
8183
8184 PR target/34814
8185 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8186 (TARGET_INSTANTIATE_DECLS): Likewise.
8187 * target.h (expand_to_rtl_hook): New target hook.
8188 (instantiate_decls): Likewise.
8189 * function.c (instantiate_decl): Make non-static. Rename to...
8190 (instantiate_decl_rtl): ... this.
8191 (instantiate_expr): Use instantiate_decl_rtl.
8192 (instantiate_decls_1): Likewise.
8193 (instantiate_decls): Likewise.
8194 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8195 * function.h (instantiate_decl_rtl): Add prototype.
8196 * cfgexpand.c (target.h): New include.
8197 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8198 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8199 (TARGET_INSTANTIATE_DECLS): Likewise.
8200 (TARGET_INITIALIZER): New target hooks added.
8201 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8202 New prototype.
8203 * config/rs6000/rs6000.c (tree-flow.h): New include.
8204 (machine_function): Add sdmode_stack_slot field.
8205 (rs6000_alloc_sdmode_stack_slot): New function.
8206 (rs6000_instantiate_decls): Likewise.
8207 (rs6000_secondary_memory_needed_rtx): Likewise.
8208 (rs6000_check_sdmode): Likewise.
8209 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8210 (TARGET_INSTANTIATE_DECLS): Likewise.
8211 (rs6000_hard_regno_mode_ok): Allow SDmode.
8212 (num_insns_constant): Likewise. Handle _Decimal32 constants.
8213 (rs6000_emit_move): Handle SDmode.
8214 (function_arg_advance): Likewise.
8215 (function_arg): Likewise.
8216 (rs6000_gimplify_va_arg): Likewise. Add special handling of
8217 SDmode var args for 32-bit compiles.
8218 (rs6000_secondary_reload_class): Handle SDmode.
8219 (rs6000_output_function_epilogue): Likewise.
8220 (rs6000_function_value): Simplify if statement.
8221 (rs6000_libcall_value): Likewise.
8222 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8223 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8224 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8225 (movsd_hardfloat): New define_insn.
8226 (movsd_softfloat): Likewise.
8227 (movsd_store): Likewise.
8228 (movsd_load): Likewise.
8229 (extendsddd2): Likewise.
8230 (extendsdtd2): Likewise.
8231 (truncddsd2): Likewise.
8232 (movdd_hardfloat64): Fixup comment.
8233 (UNSPEC_MOVSD_LOAD): New constant.
8234 (UNSPEC_MOVSD_STORE): Likewise.
8235
37aea014 82362008-01-26 Jakub Jelinek <jakub@redhat.com>
8237
8238 PR c++/34965
8239 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8240 TRUTH_XOR_EXPR.
8241 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8242 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8243 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8244 and TRUTH_XOR_EXPR.
8245
0cc77516 82462008-01-26 David Edelsohn <edelsohn@gnu.org>
8247
8248 PR target/34794
8249 * config.gcc: Separate AIX 5.3 from AIX 6.1.
8250 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8251 __LONGDOUBLE128 too.
8252 * config/rs6000/aix61.h: New file.
8253
e03d813f 82542008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8255
8256 PR rtl-optimization/34959
8257 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8258 popcount and parity rtxes the same mode as their operand.
8259 Truncate or extend the result to the return value's mode
8260 if necessary.
8261
5eec32fe 82622008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8263
8264 PR target/34981
8265 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8266 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8267 to GOT_VERSION_REGNUM.
8268 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8269 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8270 * config/mips/mips.c (mips_emit_call_insn): New function.
8271 (mips_call_tls_get_addr): Call mips_expand_call directly.
8272 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8273 emit_call_insn.
8274 (mips16_build_call_stub): Likewise. Return the call insn or null.
8275 (mips_expand_call): Update the call to mips16_build_call_stub
8276 accordingly and a remove redundant condition. Assert that MIPS16
8277 stubs do not use lazy binding. Use mips_emit_call_insn and return
8278 the call insn.
8279 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8280 TARGET_USE_GOT.
8281 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8282 (mips_avoid_hazard): Remove hazard_set handling.
8283 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8284 (UNSPEC_RESTORE_GP): ...this.
8285 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8286 (FAKE_CALL_REGNO): Rename to...
8287 (GOT_VERSION_REGNUM): ...this.
8288 (type): Add "ghost" value. Add an associated insn reservation.
8289 (hazard_set): Remove.
8290 (exception_receiver): Rename to...
8291 (restore_gp): ...this and update the unspec identifier accordingly.
8292 (exception_receiver, nonlocal_got_receiver): New expanders.
8293 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
8294 FAKE_CALL_REGNO. Remove hazard_set attribute.
8295 (set_got_version, update_got_version): New patterns.
8296
26b142a4 82972008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
8298
8299 PR target/34970
8300 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8301
74a4b47f 83022008-01-25 Joseph Myers <joseph@codesourcery.com>
8303
8304 PR other/31955
8305 * doc/install.texi2html: Generate gcc-vers.texi.
8306
2cc20bba 83072008-01-25 DJ Delorie <dj@redhat.com>
8308
8309 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8310
99c77e32 83112008-01-25 Joseph Myers <joseph@codesourcery.com>
8312
8313 * config/c4x: Remove directory.
8314 * config.gcc (crx-*, mt-*): Mark obsolete.
8315 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8316 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8317 sh-*-rtemscoff*): Remove cases.
8318 * defaults.h (C4X_FLOAT_FORMAT): Remove.
8319 * real.c (encode_c4x_single, decode_c4x_single,
8320 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8321 c4x_extended_format): Remove.
8322 * real.h (c4x_single_format, c4x_extended_format): Remove.
8323 * doc/extend.texi (interrupt, naked): Remove mention of attributes
8324 on C4x.
8325 (Pragmas): Remove comment about c4x pragmas.
8326 * doc/install.texi (c4x): Remove target-specific instructions.
8327 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8328 * doc/md.texi (Machine Constraints): Remove C4x documentation.
8329 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8330 refer to C4x source files as examples.
8331 (C4X_FLOAT_FORMAT): Remove documentation.
8332
ced0033c 83332008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
8334
8335 * config/bfin/bfin.c (override_options): Reorder tests so that
8336 flag_pic gets enabled for -msep-data.
8337
5c9c131f 83382008-01-25 Richard Guenther <rguenther@suse.de>
8339
8340 PR middle-end/32244
8341 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8342 to its bitfield precision if required.
8343
b43fc0dc 83442008-01-25 Jakub Jelinek <jakub@redhat.com>
8345
8346 PR middle-end/33880
8347 * tree-nested.c (walk_omp_for): New function.
8348 (convert_nonlocal_reference, convert_local_reference): Call
8349 walk_omp_for on OMP_FOR.
8350 (convert_call_expr): Call walk_body on OMP_FOR's
8351 OMP_FOR_PRE_INIT_BODY.
8352
8090c12d 83532008-01-25 Richard Guenther <rguenther@suse.de>
8354
8355 PR tree-optimization/34966
8356 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8357 default defs and PHI_NODEs we have to insert after the
8358 defining statement.
8359
bcf954af 83602008-01-24 Nick Clifton <nickc@redhat.com>
8361
8362 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8363 Provide a default definition.
8364 (LIBGCC2_UNITS_PER_WORD): Likewise.
8365
8366 * config/stormy16/stormy16.c: Include df.h for the prototype
8367 for df_regs_ever_live_p.
8368 (xstormy16_expand_builtin_va_start): Convert the stack offset
8369 into a component_ref and then use POINTER_PLUS_EXPR to add it
8370 to the incoming_virtual_args_rtx.
8371 (xstormy16_gimplify_va_arg_expr): Rename to
8372 xstormy16_gimplify_va_arg_expr.
8373 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8374 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8375 xstormy16_gimplify_va_arg_expr.
8376 Fix up some formatting issues.
8377
8378 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8379 Move to predicates.md.
8380 (xs_hi_general_operand): Likewise.
8381 (xs_hi_nonmemory_operand): Likewise.
8382 * config/stormy16/predicates.md:
8383 (xstormy16_carry_plus_operand): New predicate.
8384 (xs_hi_general_operand): New predicate.
8385 (xs_hi_nonmemory_operand): New predicate.
8386 * config/stormy16/stormy16-protos.h:
8387 (xstormy16_carry_plus_operand): Delete prototype.
8388 (xs_hi_general_operand): Likewise.
8389 (xs_hi_nonmemory_operand): Likewise.
8390
8391 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8392 modifiers as they are no longer needed and they can trigger
8393 reload spill failures.
8394
8395 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8396 with a match_operand in order to help reload.
8397
8398 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8399 constraint with 'e' for the 8th alternative as this version of
8400 the mov.w instruction only accepts the lower 8 registers.
8401
72412d4b 84022008-01-25 Uros Bizjak <ubizjak@gmail.com>
8403
8404 PR target/34856
8405 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8406 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8407 vector elements.
8408
b22f2ff4 84092008-01-25 Jakub Jelinek <jakub@redhat.com>
8410
8411 PR middle-end/33333
8412 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8413
009b0c6d 84142008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8415
8416 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8417 New functions.
8418 (remove_structure): Update allocations list before removing structure.
8419
864a494e 84202008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8421
8422 * ipa-struct-reorg.c (is_safe_cond_expr,
8423 create_new_stmts_for_cond_expr): Use integer_zerop function,
8424 that recognize not only zero-pointer, but zero-integer too.
8425
98bdcbcf 84262008-01-25 Ben Elliston <bje@au.ibm.com>
8427
8428 PR other/22232
8429 * fixproto: Escape "." in sed expression that strips leading "./".
8430
79d52444 84312008-01-24 H.J. Lu <hongjiu.lu@intel.com>
8432
8433 PR driver/34904
8434 * gcc.c (SWITCH_OK): Removed.
8435 (SWITCH_LIVE): Changed to bit.
8436 (SWITCH_FALSE): Likewise.
8437 (SWITCH_IGNORE): Likewise.
8438 (switchstr): Change live_cond to unsigned int.
8439 (process_command): Replace SWITCH_OK with 0.
8440 (do_self_spec): Likewise.
8441 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8442 (give_switch): Likewise.
8443 (used_arg): Likewise.
8444 (do_spec_1): Set the SWITCH_IGNORE bit.
8445 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8446 bits. Set the SWITCH_LIVE bit.
8447
6cb659b1 84482008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
8449
8450 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8451
66bc4f2f 84522008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
8453
8454 PR tree-optimization/34472
8455 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8456 parameter to a "bool *" and set *DATA to false if there is
8457 an unsafe access. Do not delete the structure here.
8458 (check_cond_exprs): Delete it here instead.
8459 (check_cond_exprs, exclude_cold_structs): Do not increase
8460 I when removing a structure.
8461
098e8492 84622008-01-24 Uros Bizjak <ubizjak@gmail.com>
8463
8464 PR target/34856
8465 * config/i386/i386.c (ix86_expand_vector_init): Consider only
8466 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8467
4b53147e 84682008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
8469
8470 PR middle-end/34934
8471 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8472 a fixed vector for stack.
8473
0af13ed4 84742008-01-24 Ben Elliston <bje@au.ibm.com>
8475
8476 PR c++/25701
8477 * doc/gcc.texi (Software development): Add a direntry for g++.
8478
631d7bf1 84792008-01-23 Hans-Peter Nilsson <hp@axis.com>
8480
248c1389 8481 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8482 stale and straggling -fforce-addr comments above.
8483
631d7bf1 8484 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8485 define.
8486 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8487 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8488
f4aea3f4 84892008-01-23 Michael Matz <matz@suse.de>
8490
8491 PR debug/34895
8492 * dwarf2out.c (force_type_die): Use modified_type_die instead of
8493 gen_type_die.
8494
c7108d79 84952008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
8496
8497 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8498 malloc result type.
8499
b1eb5c83 85002008-01-23 Anatoly Sokolov <aesok@post.ru>
8501
8502 * config/avr/avr.c (avr_current_arch): New variable.
8503 (avr_arch_types): Add 'avr31' and 'avr51' entries.
8504 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8505 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8506 (avr_override_options): Init 'avr_current_arch'.
8507 (base_arch_s): Move from here...
8508 * config/avr/avr.h (base_arch_s): ... here. Add new members
8509 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
8510 'mega' to 'have_jmp_call'.
8511 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
8512 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
8513 macros.
8514 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
8515 architectures.
8516 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8517 MULTILIB_MATCHES): (Ditto.).
8518
46beef9a 85192008-01-23 Richard Guenther <rguenther@suse.de>
8520
8521 PR middle-end/31529
8522 * cgraphunit.c (cgraph_reset_node): Always mark the node
8523 not reachable if it is not queued already.
8524
f5c2bcb7 85252008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
8526
8527 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8528 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8529 (cputype_selected): New static variable.
8530 (bfin_handle_option): Set it if -mcpu is used.
8531 (override_option): Select default set of workarounds if no cpu type
8532 selected on the command line.
8533 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27bedcb4 8534
8535 From Michael Frysinger <michael.frysinger@analog.com>
8536 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8537 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8538
8539 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8540 for bf547, bf523, bf524, and bf526.
8541 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
8542 bf526.
8543 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8544 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8545 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8546 __ADSPBF547__ and __ADSPBF54x__ for bf547.
8547 * doc/invoke.texi (Blackfin Options): Document that
8548 -mcpu now accept bf547, bf523, bf524, and bf526.
8549
3888eedd 85502008-01-22 Eric Botcazou <ebotcazou@adacore.com>
8551
8552 PR rtl-optimization/34628
8553 * combine.c (try_combine): Stop and undo after the first combination
8554 if an autoincrement side-effect on the first insn has effectively
8555 been lost.
8556
e74b57b1 85572008-01-22 David Edelsohn <edelsohn@gnu.org>
8558
8559 PR target/34529
8560 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8561 Offset addresses are not valid for Altivec or paired float modes.
8562
06faa2fe 85632008-01-22 Jakub Jelinek <jakub@redhat.com>
8564
bb436d4e 8565 PR c++/34607
8566 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8567 if DECL_INITIAL (decl) is error_mark_node.
8568
2cb0e5d9 8569 PR c++/34914
8570 * c-common.c (handle_vector_size_attribute): Only allow
8571 integral, scalar float and fixed point types. Handle OFFSET_TYPE
8572 the same way as pointer, array etc. types.
8573 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8574
06faa2fe 8575 PR c++/34917
8576 * tree.c (build_type_attribute_qual_variant): Call
8577 build_qualified_type if attributes are equal, but quals are not.
8578
a54ab330 85792008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8580
8581 PR 32102
8582 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8583 * flags.h (warn_strict_aliasing): Remove.
8584 (warn_strict_overflow): Remove.
8585 * opts.c (warn_strict_aliasing): Remove.
8586 (warn_strict_overflow): Remove.
8587 * c-opts.c (c_common_handle_option): -Wall only sets
8588 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8589 (c_common_post_options): Give default values to -Wstrict-aliasing
8590 and -Wstrict-overflow if they are uninitialized.
8591 * common.opt (Wstrict-aliasing): Specify Var and Init.
8592 (Wstrict-overflow): Likewise.
8593
957f873e 85942008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
f437e46d 8595
8596 PR rtl-optimization/26854
8597 PR rtl-optimization/34400
8598 PR rtl-optimization/34884
8599 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8600 DF_RD->gen.
8601 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8602 (df_rd_bb_info.expanded_lr_out): Deleted
8603 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8604 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
8605 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8606 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8607 Removed code to allocate, initialize or free expanded_lr_out.
8608 (df_rd_bb_local_compute_process_def): Restructured to make more
8609 understandable.
8610 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8611 sets if the sets are being trimmed.
8612
c7871c82 86132008-01-22 H.J. Lu <hongjiu.lu@intel.com>
8614
8615 PR bootstrap/32287
8616 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8617 (as_vers): Likewise.
8618 * configure: Regenerated.
8619
df3f0669 86202008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8621
8622 PR middle-end/33092
8623 * tree-pass.h (pass_build_alias): New pass.
8624 * tree-ssa-alias.c (gate_build_alias): New.
8625 (pass_build_alias): New.
8626 * passes.c (init_optimization_passes): Add pass_build_alias after
8627 pass_create_structure_vars.
8628
d1191819 86292008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
8630
8631 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8632 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8633 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8634 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8635 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8636 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8637 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8638 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8639 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8640 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8641 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8642 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8643 * config/s390/s390.md (FP_ALL): New mode iterator.
8644 (_d): New mode attribute.
8645 ("*signbit<mode>2>"): Changed mode of first operand.
8646 ("isinf<mode>2"): Changed mode of first operand.
8647 ("*TDC_insn"): Adaptation for DFP modes.
8648
f47ba5b1 86492008-01-22 Ben Elliston <bje@au.ibm.com>
8650
8651 * tree.c (check_qualified_type): Improve function description.
8652
0bc060a4 86532008-01-21 Jason Merrill <jason@redhat.com>
8654
8655 PR c++/34196
8656 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8657 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8658 if it is set.
8659
1c64e82e 86602008-01-21 DJ Delorie <dj@redhat.com>
8661
8662 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8663 return zero.
8664
2a2aef73 86652008-01-21 Richard Guenther <rguenther@suse.de>
8666
8667 PR middle-end/34856
8668 * tree-cfg.c (verify_expr): Allow all invariant expressions
8669 instead of just constant class ones as reference argument.
8670 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8671 like any other constant.
8672 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8673
d8d756b9 86742008-01-21 H.J. Lu <hongjiu.lu@intel.com>
8675
8676 * regmove.c (fixup_match_1): Update call crossed frequencies.
8677
62437c86 86782008-01-21 Richard Guenther <rguenther@suse.de>
8679
8680 PR c/34885
8681 * tree-inline.c (setup_one_parameter): Deal with mismatched
8682 types using a VIEW_CONVERT_EXPR.
8683
f25ba2cf 86842008-01-21 Alon Dayan <alond@il.ibm.com>
8685 Olga Golovanevsky <olga@il.ibm.com>
8686
8687 PR tree-optimization/34701
8688 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8689 when the structure size is not a power of 2.
8690
957f873e 86912008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
dbc72697 8692
8693 * doc/install.texi: Add doc for --enable-checking=df.
8694
c556495e 86952008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
8696
8697 PR rtl-optimization/34808
8698 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8699
d8f69cf6 87002008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
8701
8702 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8703 input.
8704
957f873e 87052008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2e49e3bc 8706
8707 PR rtl-optimization/26854
8708 PR rtl-optimization/34400
8709 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8710 DF_RD->gen.
8711 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8712 (df_rd_bb_info.expanded_lr_out): New.
8713 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8714 * loop_iv.c (iv_analysis_loop_init): Ditto.
8715 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8716 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8717 Added code to allocate, initialize or free expanded_lr_out.
8718 (df_rd_bb_local_compute_process_def): Restructured to make
8719 more understandable.
8720 (df_rd_confluence_n): Add code to do nothing with fake edges and
8721 code to no apply invalidate_by_call sets if the sets are being trimmed.
8722 (df_lr_local_finalize): Renamed to df_lr_finalize.
8723 (df_live_local_finalize): Renamed to df_live_finalize.
8724
d2f3e075 87252008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
8726
8727 PR target/34831
8728 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8729 deciding whether to use reciprocal instructions.
8730
4e971a07 87312008-01-19 Uros Bizjak <ubizjak@gmail.com>
8732
8733 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8734 dwarf2out_note_section_used if cold_text_section is NULL.
8735
b3a3ddec 87362008-01-19 Jakub Jelinek <jakub@redhat.com>
8737
8738 PR gcov-profile/34610
8739 * tree-cfg.c (make_edges): Mark both outgoing edges from
8740 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8741 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8742 from OMP_FOR and OMP_CONTINUE outgoing edges.
8743
8744 * tree-profile.c (tree_profiling): Return early if
8745 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
8746 at the end.
8747 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8748 from cfun to child_cfun.
8749 * function.h (struct function): Add after_tree_profile bit.
8750
cb20fbcc 87512008-01-19 Anatoly Sokolov <aesok@post.ru>
8752
8753 * config/avr/avr.S (_exit): Disable interrupt.
8754
a7bc23c0 87552008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
8756 Steven Bosscher <stevenb.gcc@gmail.com>
8757
8758 PR rtl-optimization/26854
8759 PR rtl-optimization/34400
8760 * df-problems.c (df_live_scratch): New scratch bitmap.
8761 (df_live_alloc): Allocate df_live_scratch when doing df_live.
8762 (df_live_reset): Clear the proper bitmaps.
8763 (df_live_bb_local_compute): Only process the artificial defs once
8764 since the order is not important.
8765 (df_live_init): Init the df_live sets only with the variables
8766 found live by df_lr.
8767 (df_live_transfer_function): Use the df_lr sets to prune the
8768 df_live sets as they are being computed.
8769 (df_live_free): Free df_live_scratch.
8770
7765591b 87712008-01-18 Ian Lance Taylor <iant@google.com>
8772
8773 * common.opt: Add fmerge-debug-strings.
8774 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8775 flag_merge_debug_strings rather than flag_merge_constants.
8776 * doc/invoke.texi (Option Summary): Mention
8777 -fmerge-debug-strings.
8778 (Debugging Options): Document -fmerge-debug-strings.
8779
68d6de5b 87802008-01-18 Ian Lance Taylor <iant@google.com>
8781
8782 PR c++/33407
8783 * tree.h (DECL_IS_OPERATOR_NEW): Define.
8784 (struct tree_function_decl): Add new field operator_new_flag.
8785 * tree-inline.c (expand_call_inline): When inlining a call to
8786 operator new, force the return value to go into a variable, and
8787 set DECL_NO_TBAA_P on that variable.
8788 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
8789
af30c139 87902008-01-18 Uros Bizjak <ubizjak@gmail.com>
8791
8792 PR debug/34484
8793 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
8794 DWARF2_DEBUGGING_INFO.
8795 (dwarf2out_note_section_used): Ditto. Add prototype.
8796 (have_multiple_function_sections, text_section_used,
8797 cold_text_section_used, *cold_text_sections): Move declarations
8798 before their uses.
8799
1650f4d3 88002008-01-17 Bob Wilson <bob.wilson@acm.org>
92f6e056 8801
8802 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
8803 field and add signal_ra.
8804 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
8805 assignments to frame state pc. Move end of stack check after
8806 MD_FALLBACK_FRAME_STATE_FOR.
8807 (uw_update_context_1): Use frame state signal_regs if set, instead
8808 of checking signal_frame flag.
8809 (uw_update_context): Use frame state signal_ra if set.
8810 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
8811 * config/xtensa/linux-unwind.h: New file.
8812
1650f4d3 88132008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
c15d54d8 8814
8815 * modulo-sched.c (get_sched_window): Fix comment typo.
8816
ea5876d9 88172008-01-17 Andrew MacLeod <amacleod@redhat.com>
8818
8819 PR tree-optimization/34648
8820 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
8821
d5f9ff99 88222008-01-17 Anatoly Sokolov <aesok@post.ru>
8823
8824 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
8825 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
8826
a9e21c4c 88272008-01-17 Seongbae Park <seongbae.park@gmail.com>
8828
8829 PR rtl-optimization/34400
8830 * df-core.c (df_worklist_dataflow_overeager,
8831 df_worklist_dataflow_doublequeue): New functions.
8832 (df_worklist_dataflow): Two different worklist solvers.
8833 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
8834 New param.
8835
9d6f50ba 88362008-01-16 Sebastian Pop <sebastian.pop@amd.com>
8837
8838 PR testsuite/34821
8839 * doc/invoke.texi: Document the dependence on pthread for fopenmp
8840 and ftree-parallelize-loops.
8841
fa7f4c0c 88422008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
8843
8844 PR rtl-optimization/34826
8845 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
8846
74748e47 88472008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
8848
8849 * global.c (find_reg): Mark the eh regs as used if necessary.
8850 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
8851 * ra.h (struct allocno): no_eh_reg field added. Changed
8852 no_stack_reg type to bitfield.
8853
a13ff590 88542008-01-17 Eric Botcazou <ebotcazou@adacore.com>
8855
8856 * tree.c (substitute_in_expr): Add missing 'break'.
8857
119368d7 88582008-01-17 Richard Guenther <rguenther@suse.de>
8859
8860 PR tree-optimization/34825
8861 * tree-ssa-math-opts.c (is_division_by): Do not recognize
8862 x / x as division to handle.
8863
9f4dc59e 88642008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8865
8866 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
8867 "-pthread" is specified.
8868 * pa-hpux11.h (LIB_SPEC): Likewise.
8869
1650f4d3 88702008-01-16 Janis Johnson <janis187@us.ibm.com>
2379ccd9 8871 Peter Bergner <bergner@vnet.ibm.com>
8872
8873 PR rtl-optimization/33796
8874 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
8875
a2060dc3 88762008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8877
8878 PR libgfortran/34699
8879 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
8880 static links.
8881 * pa-hpux10.h (LINK_SPEC): Likewise.
8882 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
8883
0cfec3e9 88842008-01-16 Richard Guenther <rguenther@suse.de>
8885
8886 PR middle-end/32628
8887 * fold-const.c (fold_convert_const_int_from_int): Do not
8888 set overflow if that occured only because of a sign extension
8889 change when converting from/to a sizetype with the same
8890 precision and signedness.
8891
d848c04f 88922008-01-16 Uros Bizjak <ubizjak@gmail.com>
8893
8894 PR debug/34249
8895 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
8896 location address to the correct place. Update copyright year.
8897
b44df49a 88982008-01-16 Sebastian Pop <sebastian.pop@amd.com>
8899
8900 * lambda-code.c (lambda_transform_legal_p): Handle the case of
8901 no dependences in the dependence_relations vector.
8902
a8587796 89032008-01-16 Jan Hubicka <jh@suse.cz>
8904
8905 PR rtl-optimization/31396
8906 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
8907 * cfg.c (dump_reg_info): Print it.
8908 * regs.h (struct reg_info_t): add freq_calls_crossed.
8909 (REG_FREQ_CALLS_CROSSED): New macro.
8910 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
8911 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
8912 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8913 regmove_optimize): Update call crossed frequencies.
8914 * local-alloc.c (struct qty): Add freq_calls_crossed.
8915 (alloc_qty): Copute freq_calls_crossed.
8916 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
8917 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
8918 * ra.h (struct allocno): Add freq_calls_crossed.
8919
061202f8 89202008-01-16 Sebastian Pop <sebastian.pop@amd.com>
8921
8922 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
8923 libgomp when compiling with ftree-parallelize-loops.
8924 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
8925
c782188f 89262008-01-16 Richard Guenther <rguenther@suse.de>
8927
8928 PR tree-optimization/34769
8929 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
8930 * tree.c (int_cst_value): Instead make this function more
8931 permissive in what it accepts as valid input. Document this
8932 function always sign-extends the value.
8933
db812c94 89342008-01-16 Jakub Jelinek <jakub@redhat.com>
4e971a07 8935 Richard Guenther <rguenther@suse.de>
db812c94 8936
8937 PR c/34668
8938 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
8939 (gimple_fold_indirect_ref_rhs): ... this.
8940 (gimple_fold_indirect_ref): New function with foldings
8941 that preserve lvalueness.
8942 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
8943 * tree-flow.h (gimple_fold_indirect_ref): Declare.
8944 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
8945 to fold an INDIRECT_REF, fall back to the old use of
8946 fold_indirect_ref_1.
8947
e34df749 89482008-01-16 Sebastian Pop <sebastian.pop@amd.com>
8949
8950 * tree-data-ref.c (subscript_dependence_tester_1): Call
8951 free_conflict_function.
8952 (compute_self_dependence): Same.
8953
9bf03e06 89542008-01-16 Uros Bizjak <ubizjak@gmail.com>
8955
8956 PR debug/34249
8957 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
8958 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
8959 function global.
8960 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
8961 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
8962 for DWARF2_UNWIND_INFO targets.
8963
36d43c4a 89642008-01-16 Richard Guenther <rguenther@suse.de>
8965
8966 PR c/34768
8967 * c-typeck.c (common_pointer_type): Do not merge inconsistent
8968 type qualifiers for function types.
8969
6f22df65 89702008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
8971
8972 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
8973 loop_iterator li from previous commit.
8974
89752008-01-15 Sebastian Pop <sebastian.pop@amd.com>
d46d3c1c 8976
8977 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
8978
d4fcfd16 89792008-01-12 Sebastian Pop <sebastian.pop@amd.com>
8980
8981 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
8982 (parallelize_loops): Don't parallelize irreducible components.
8983
c9d90c25 89842008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8985
8986 PR c++/24924
8987 * c-opts (c_common_post_options): Do not enable CPP
8988 flag_pedantic_errors by default.
8989
d2c970fe 89902008-01-14 Eric Botcazou <ebotcazou@adacore.com>
8991
8992 PR rtl-optimization/31944
8993 * cse.c (remove_pseudo_from_table): New function.
8994 (merge_equiv_classes): Use above function to remove pseudo-registers.
8995 (invalidate): Likewise.
8996
3ff99faa 89972008-01-13 Richard Guenther <rguenther@suse.de>
8998
8999 PR middle-end/34601
9000 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
9001 instead of TYPE_MODE to deal with calls from expand_one_error_var.
9002
3e179c53 90032008-01-13 Uros Bizjak <ubizjak@gmail.com>
9004
9005 * gcse.c (cprop_jump): Call validate_unshare_change instead of
9006 validate_change to unshare the source of the PC set.
9007
b513c084 90082008-01-12 Jan Hubicka <jh@suse.cz>
9009
9010 PR middle-end/32135
9011 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
9012 references above array bounds. This might trigger bounds checks for
9013 pointers to arrays.
9014
c2df357d 90152008-01-12 Sebastian Pop <sebastian.pop@amd.com>
9016
9017 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
9018 new_replaceable_dependencies.
9019
36e37a87 90202008-01-12 Doug Kwan <dougkwan@google.com>
9021
9022 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
9023 instead of OPT_Wreturn_type in warning due to ignored return type
9024 qualifiers.
9025 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
9026 options included in -Wextra.
9027 * c.opt: New option -Wignored_qualifiers.
9028 * doc/invoke.texi (Warning Options, -Wextra): Add new option
9029 -Wignore_qualifiers.
9030 (-Wignored-qualifiers): Document.
9031 (-Wreturn-type): Remove description of functionality now handled
9032 by -Wignored-qualifiers.
9033
134ae613 90342008-01-12 Eric Botcazou <ebotcazou@adacore.com>
9035
9036 PR ada/33788
9037 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
9038 NOP_EXPR if it is between integral types with the same precision.
9039
f9f517cc 90402008-01-12 Jan Hubicka <jh@suse.cz>
9041
9042 PR other/28023
9043 * invoke.texi (max-inline-recursive-depth): Fix default value.
9044
33f263f5 90452008-01-12 Zdenek Dvorak <ook@ucw.cz>
9046
9047 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
9048 correct type.
9049
0d1c6644 90502008-01-11 Bob Wilson <bob.wilson@acm.org>
9051
9052 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
9053
6090393c 90542008-01-11 James E. Wilson <wilson@specifix.com>
9055
9056 PR target/26015
9057 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
9058
a0a028c2 90592008-01-11 Anatoly Sokolov <aesok@post.ru>
9060
9061 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
9062 save/restore frame pointer register and don't use 'call-prologues'
9063 optimization in function with "OS_task" attribute.
9064
13a68d5b 90652008-01-11 Eric Botcazou <ebotcazou@adacore.com>
9066
9067 PR middle-end/31309
9068 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
9069 when copying to memory.
9070
1ae2ffa7 90712008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
9072
9073 PR rtl-optimization/30905
9074 * cfgcleanup.c: Include dce.h
9075 (crossjumps_occured): New global variable.
9076 (try_crossjump_bb): Exit loop after finding a fallthru edge.
9077 If something changed, set crossjumps_occured to true.
9078 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
9079 Don't add/remove fake edges to exit here...
9080 (cleanup_cfg): ...but do it here, when crossjumping.
9081 Run a fast DCE when successful crossjumps occured in the latest
9082 iteration of try_optimize_cfg.
9083
12661815 90842008-01-11 Richard Guenther <rguenther@suse.de>
9085
9086 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
9087 (struct vn_unary_op_s): Likewise.
9088 (vn_reference_insert): Free old reference on hash collision.
9089
5bed1dca 90902008-01-10 Raksit Ashok <raksit@google.com>
9091
9092 PR rtl-optimization/27971
7650360f 9093 * combine.c (find_split_point): Split PLUS expressions which are
9094 inside a MEM rtx, and whose first operand is complex.
5bed1dca 9095
4a6a8336 90962008-01-10 DJ Delorie <dj@redhat.com>
9097
9098 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9099 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9100 (m32c_hard_regno_ok): Call the underlying function.
9101
5c6e4974 91022008-01-10 Richard Guenther <rguenther@suse.de>
9103
9104 PR middle-end/34683
9105 * tree-cfg.c (tree_merge_blocks): Do not go through the
9106 full-blown folding and stmt updating path if we just deal
9107 with virtual operands.
9108 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9109 test for abnormal SSA_NAMEs.
9110
cd6659e3 91112008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
9112
9113 PR middle-end/34641
9114 * reload.c (push_reload): Add assertions. All constants from
9115 reg_equiv_constant should have been used for replacing the respective
9116 pseudo earlier.
9117 (find_reloads_address): Invoke find_reloads_address_part for
9118 constant taken from the reg_equiv_constant array.
9119
6d6adc82 91202008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
9121
9122 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9123 field (valnum) the first in the struct. Replace bools with
9124 unit bit fields.
9125
b050ae3e 91262008-01-10 Richard Guenther <rguenther@suse.de>
9127
9128 PR tree-optimization/34651
9129 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
9130 types and ordering for masking and converting.
9131
77727654 91322008-01-09 Sebastian Pop <sebastian.pop@amd.com>
9133
9134 PR tree-optimization/34017
9135 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9136 also for PHI_NODE expressions.
9137
cc9c1c51 91382008-01-09 Jan Hubicka <jh@suse.cz>
9139
9140 PR tree-optimization/34708
9141 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9142 based on number of case labels.
9143 (init_inline_once): Remove switch_cost.
9144 * tree-inline.h (eni_weights_d): Remove switch_cost.
9145
e8b8bad7 91462008-01-09 Richard Guenther <rguenther@suse.de>
9147 Andrew Pinski <andrew_pinski@playstation.sony.com>
9148
9149 PR middle-end/30132
9150 * gimplify.c (gimplify_cond_expr): Do not create an addressable
9151 temporary if an rvalue is ok or an lvalue is not required.
9152
8b58aec5 91532008-01-09 Richard Guenther <rguenther@suse.de>
9154
9155 PR middle-end/34458
9156 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9157 adjust return type.
9158
b2ee3594 91592008-01-09 Richard Guenther <rguenther@suse.de>
9160
9161 PR middle-end/34679
9162 * tree.c (host_integerp): Check for sizetype only if the
9163 type is an integer type.
9164
3e6bab0c 91652008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
9166
9167 PR debug/26364
9168 * opts.c (decode_options): Disable inlining of functions called
9169 once if not in unit-at-a-time mode.
9170
f72a5ea4 91712008-01-09 Alexandre Oliva <aoliva@redhat.com>
9172
9173 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9174
454a1307 91752008-01-08 Richard Guenther <rguenther@suse.de>
9176
9177 PR middle-end/31863
9178 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9179 out early if the result will be unused.
9180
1615433d 91812008-01-08 Uros Bizjak <ubizjak@gmail.com>
9182
9183 PR target/34709
9184 Revert:
9185
9186 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
9187 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9188 for TARGET_RECIP.
9189
e96df6c2 91902008-01-08 Jan Sjodin <jan.sjodin@amd.com>
9191
1615433d 9192 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9193 for vectorization tuned.
e96df6c2 9194
911908dc 91952008-01-08 Richard Guenther <rguenther@suse.de>
9196
9197 PR tree-optimization/34683
9198 * tree-ssa-operands.c (operand_build_cmp): Export.
9199 * tree-ssa-operands.h (operand_build_cmp): Declare.
9200 * tree-vn.c (vuses_compare): Remove.
9201 (sort_vuses): Use operand_build_cmp.
9202 (sort_vuses_heap): Likewise.
9203 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9204 to re-use old VEC if available. Do not sort already sorted VUSEs.
9205 (vdefs_to_vec): Do not sort already sorted VDEFs.
9206
d7c85fac 92072008-01-08 Jakub Jelinek <jakub@redhat.com>
9208
9209 PR middle-end/34694
9210 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9211
c7f0e882 92122008-01-08 Uros Bizjak <ubizjak@gmail.com>
9213
9214 PR target/34702
9215 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9216 limitations of reciprocal sequences on x86 targets.
9217
b5ea3701 92182008-01-08 Richard Guenther <rguenther@suse.de>
9219
9220 PR tree-optimization/34683
9221 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9222
a7df40d7 92232008-01-07 Jakub Jelinek <jakub@redhat.com>
9224
9225 PR target/34622
9226 * config/darwin.c (darwin_mergeable_string_section): Don't use
9227 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9228
5921cbdf 92292008-01-07 Uros Bizjak <ubizjak@gmail.com>
9230
9231 PR target/34682
9232 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9233 negxf2. Macroize expander using X87MODEF mode iterator. Change
9234 predicates of op0 and op1 to register_operand.
c7f0e882 9235 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
9236 expander using X87MODEF mode iterator. Change predicates of
9237 op0 and op1 to register_operand.
5921cbdf 9238 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9239 corresponding patterns and macroize using MODEF macro. Change
9240 predicates of op0 and op1 to register_operand and remove
9241 "m" constraint. Disparage "r" alternative with "!".
9242 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9243 macroize using X87MODEF macro. Change predicates of op0 and op1
9244 to register_operand and remove "m" constraint. Disparage "r"
9245 alternative with "!".
9246 (absneg splitter with memory operands): Remove.
9247 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9248 patterns and macroize using X87MODEF mode iterator.
9249 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9250 Change predicate of op1 to register_operand.
9251 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
c7f0e882 9252 for memory operands.
5921cbdf 9253
1dd6dd88 92542008-01-07 Nathan Froyd <froydnj@codesourcery.com>
9255
9256 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9257
b041d147 92582008-01-07 Richard Guenther <rguenther@suse.de>
9259
9260 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9261 fields.
9262
3ee3dfa4 92632008-01-07 Richard Guenther <rguenther@suse.de>
9264
9265 PR tree-optimization/34683
9266 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9267 VOPs of the needed size to save memory. Use VEC_quick_push
9268 to save compile-time.
9269 (vdefs_to_vec): Likewise.
9270
ca03fed0 92712008-01-07 Sa Liu <saliu@de.ibm.com>
3ee3dfa4 9272
5921cbdf 9273 * config/spu/spu.md (divdf3): Genetate inline code for double
9274 division. The implementation doesn't handle INF or NAN, therefore it
9275 only applies when -ffinite-math-only is given.
ca03fed0 9276
be46c846 92772008-01-06 Paolo Carlini <pcarlini@suse.de>
9278
9279 PR libstdc++/34680
9280 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9281 * doc/cpp.texi ([Common Predefined Macros]): Document.
9282
9edaf48c 92832008-01-06 Uros Bizjak <ubizjak@gmail.com>
9284
9285 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9286 order to use commutative addition instead of subtraction.
9287
aa620173 92882008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
9289 Mircea Namolaru <namolaru@il.ibm.com>
9290 Vladimir Yanovsky <yanov@il.ibm.com>
9291 Revital Eres <eres@il.ibm.com>
9292
9293 PR tree-optimization/34263
9294 * tree-outof-ssa.c (process_single_block_loop_latch,
9295 contains_tree_r): New functions.
9296 (analyze_edges_for_bb): Call process_single_block_loop_latch
9297 function to empty single-basic-block latch block if possible.
9298
459609ab 92992008-01-05 Uros Bizjak <ubizjak@gmail.com>
9300
9301 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9302 for TARGET_RECIP.
9303 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9304
35160457 93052008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9306
9307 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9308
5f98e2aa 93092008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9310
9311 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9312
640fba6f 93132008-01-05 Jakub Jelinek <jakub@redhat.com>
9314
9315 PR tree-optimization/34618
9316 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9317 flag from T.
9318
1a086819 93192008-01-05 Uros Bizjak <ubizjak@gmail.com>
9320
9321 PR target/34673
9322 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9323 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
9324 Update copyright year.
9325
9326 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9327 Update copyright year.
9328 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9329 using NR fixup.
9330
f831baaf 93312008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
9332
9333 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9334 edge does not point to current bb before changing need_assert.
9335
cd3f90e2 93362008-01-04 Richard Guenther <rguenther@suse.de>
9337
9338 PR middle-end/34029
9339 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9340 for verifying purposes if they are is_gimple_min_invariant.
9341
5b56c905 93422008-01-04 Aldy Hernandez <aldyh@redhat.com>
9343
9344 PR tree-optimization/34448
9345 PR tree-optimization/34465
9346 * gimplify.c (gimplify_init_constructor): Add new parameter
9347 notify_temp_creation. Use it.
9348 (gimplify_modify_expr_rhs): Take volatiles into account when
9349 optimizing constructors.
9350 Do not optimize constructors if gimplify_init_constructor will dump to
9351 memory.
9352 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9353 * gcc.c-torture/compile/pr34448.c: New.
9354
dfbb5324 93552008-01-04 Jakub Jelinek <jakub@redhat.com>
9356
9357 PR gcov-profile/34609
9358 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9359 return_slot if result is TREE_ADDRESSABLE.
9360
1bbc673e 93612008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
9362
9363 * config/mips/mips.md (sqrt_condition): Tweak comment.
9364 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
9365
78c2e180 93662008-01-03 Tom Tromey <tromey@redhat.com>
9367
dfbb5324 9368 PR c/34457
78c2e180 9369 * c-common.c (c_type_hash): Handle VLAs.
9370
186f5fff 93712008-01-03 Jan Hubicka <jh@suse.cz>
9372
9373 PR tree-optimization/31081
9374 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9375 0 when inlining and not inlining to first basic block.
9376 (remap_decl): When var is initialized to 0, don't set default_def.
9377 (expand_call_inline): Set entry_bb.
9378 * tree-inline.h (copy_body_data): Add entry_bb.
9379
361c9aad 93802008-01-03 Jakub Jelinek <jakub@redhat.com>
9381
e3a37aef 9382 PR c++/34619
9383 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9384 before returning.
9385
361c9aad 9386 PR tree-optimization/29484
9387 * tree-inline.c (inline_forbidden_p_2): New function.
9388 (inline_forbidden_p): Disallow inlining if some static var
9389 has an address of a local LABEL_DECL in its initializer.
9390 * doc/extend.texi (Labels as Values): Document &&foo behaviour
9391 vs. inlining.
9392
e1feff4f 93932008-01-03 Sebastian Pop <sebastian.pop@amd.com>
bfe20447 9394
9395 PR tree-optimization/34635
9396 * tree-data-ref.c (add_other_self_distances): Make sure that the
9397 evolution step is constant.
9398
fbe86b1b 93992008-01-03 Jakub Jelinek <jakub@redhat.com>
9400
9401 PR middle-end/34608
f831baaf 9402 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
fbe86b1b 9403
99f35fae 94042008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
9405
9406 * tree-sra.c (scalarize_init): Insert the generate_element_init
9407 statements after the generate_element_zero statements.
9408
20e67c9a 94092008-01-02 Richard Guenther <rguenther@suse.de>
9410
9411 PR middle-end/34093
9412 PR middle-end/31976
9413 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9414 for very large number of operands instead of ICEing.
9415
02be515c 94162008-01-02 Arthur Norman <acn1@cam.ac.uk>
9417
f831baaf 9418 PR target/34013
a4890dc9 9419 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
02be515c 9420 while stack probing.
9421
799bdf64 94222008-01-01 Douglas Gregor <doug.gregor@gmail.com>
9423
02be515c 9424 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
f831baaf 9425 in C++0x mode.
799bdf64 9426
65e47be2 94272008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
9428
9429 PR libmudflap/26442
9430 * tree-mudflap.c (mx_register_decls): Guard warning by
9431 !DECL_ARTIFICIAL check.
9432
25a3b4c5 94332008-01-01 Jakub Jelinek <jakub@redhat.com>
9434
9435 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9436 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9437 sse5_perm<mode>): Fix constraints.